数据库设计理论与实践<四>数据库基本术语及其概念
一、关系模型
非关系模型
+ 其关系操作:一次一记录
关系模型
+ 其定义:最重要的一种数据模型。关系数据库模型系统采用关系模型作为数据的组织方式。
+ 其关系操作(特点:基于集合操作的方式 := 一次集合):
查询操作(query/最主要操作)+插入操作(insert)+删除操作(delete)+修改操作(update)
+ 查询操作的分类
+ select - 选择(基本操作1)
+ project - 投影(基本操作2)
+ join - 连接
+ divide - 除
+ union - 并(基本操作3)
+ except - 差(基本操作4)
+ intersection - 交
+ 笛卡尔积(基本操作5)
+ 其关系数据语言的分类
+ 其完整性约束
+ 1实体完整性[必须满足 | 关系的2个不变性]:1)主码唯一;2)主码的主属性不能为空;3)实体完整性是针对【基本关系】而言的。
+ 1个基本表通常对应现实世界的1个实体集。
+ 2参照完整性[必须满足 | 关系的2个不变性]:参照完整性,本质上就是:定义外码与主码之间的引用规则【即 不允许引用不存在的实体】
+ 对于参照关系R中的每个元组在外码【属性(组)】F上的取值必须:
1)或取空值;2)或等于被参照关系S中的某一元组的主码值; 3)参照关系R与被参照关系S不一定是不同的关系
+ 3用户自定义完整性:由用户自定义的数据约束。比如性别只能用男、女表示,人的年龄在0-120之间。常见的用户自定义完整性有NOT NULL,UNIQUE,CHECK等
+ 其数据结构:关系
关系:表(表,可分类为:实体+关系)的1种;1个关系。笛卡尔积【一组域D1xD2xD3x...xDn={(d1,d2,d3,...,dn) | di∈Di,i=1,2,3,...,n} 】的有限子集。
+ 规范化的关系,简称为:范式(Normal Form,NF)
+ 关系(动态的、随时间不断变化的) := 关系模式在某一时刻的状态或内容
+ 关系模式(静态的、稳定的) := 关系的描述 := R(U , D , DOM, F) := 简记为 R(U) := R(A1,A2,A3, ..., An)
+ R:关系名
+ U:组成该关系的属性名集合 (即 各属性名)
+ Ai:属性名
+ D:U中属性所来自的域 (域名/列名)
+ DOM:属性向域的映像集合 (属性向域的映像)
+ 关系的限定如下:
+ 1关系必须为有限集合。(无限关系在数据库系统中是无意义的)
+ 2列间无序(即 属性间的无序性 := 列的顺序无所谓)
+ 3列是同质的(即 每列的分量是同一类型的数据,来自同一个域)
+ 4不同的列可出自同一个域(称 其中的每1列为1个属性,不同的属性要给予不同的属性名)
+ 5候选码的唯一性:任意2个元组(记录)的候选码不能取相同的值
+ 6行间无序(行的次序可任意交换)
+ 7分量的原子性:每个分量都必须是不可再分的数据项
元组:一行;一条记录。
属性:一列。其中,1个属性值,可称为1个分量。
【码(键,key)】:表中的某个属性组,可以唯一地确定一个元组。
域(domain):一组具有相同数据类型的值的集合。如:大学生年龄属性的域是(15-45岁),性别的域是(男,女)。
分量:元组中的1个属性值。关系的每一分量必须是不可再分割的数据项。
关系模式:对关系的描述。形如:职工(职工编号,姓名,性别,电话)
【候选码】:若关系中的某一属性组能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
【主码/主键】:primary key,若一个关系有多个候选码,则选其中一个为主码。
【外键/外码】:foreign key,假设表A的某个属性attr是另一表B中的主码,且A和B有某种联系,则称attr是关系模式A的外码。
【全码】:all key,关系模式中所有属性构成这个关系模式的候选码,这一属性组被称为全码。
主属性:primary attribute,候选码中诸个属性称为主属性。
【非候选码】
非主属性/非码属性:不包含在任何候选码中的属性,称为非主属性。
实体:客观存在的对象。比如一个学生,一位老师
实体型:对实体的描述,比如学生(学号,姓名,院系)
实体集:实体的集合
参照表:外码所在的表
被参照表:外码所引用(foreign key references)的表
【注意事项】
码/候选码/主码/全码:但凡涉及称呼带"码"字的,均是属性组的概念,不是单个属性(单列)的概念!
二、参考文献
1.王珊.萨师煊.数据库理论概论.高等教育出版社
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!