关系数据模型与关系运算(一)
一、域
域是一组具有相同数据类型的值得集合。
二、笛卡尔积
可能你并没看懂,看个例子:
你可以理解成笛卡尔积理解成属性组合。
三、关系的性质
定义就不说了,关系就是笛卡尔积得有限子集,不说的原因是因为会把你绕过去。直接看性质:
- 同一属性的数据具有同质性,即同一属性为同一类型,来自同一个域;(2)同一关系的各属性名不能重复;
- 关系中属性顺序可以任意交换,即关系中的属性的位置具有顺序无关性;
- 关系中不允许出现相同的元组﹐即关系中不能有重复的行﹔
- 关系中元组顺序可以任意交换,即关系中的元组位置具有顺序无关性﹔
- 关系中每一个属性值都是不可分解的。
如果属性可以再分,那么就不是一个关系,比如:电话可再分
四、关系的键与关系的完整性
4.1 总的关系
4.2 超键
在一个关系中能唯一标识元组的属性组合。超键可能有多余的属性,一个属性可以作为一个超键,多个属性组合在一起也可以作为超键。
举个例子:比如这个s表
学号sno是唯一标识的属性,性别名字这些都可能重复;并且(sno,sname,sex)这样的组合也可以是唯一标识的元组,确定学号,姓名,性别,肯定能确定这个人了。因此,学号作为超键。
注意: 你应该知道除了(sno,sname,sex)这样的组合,还可以是(sno,sname)之类的,只要组合中由sno就能唯一标识。
4.3 候选键
如果一个属性或者属性组合能唯一标识元组,且不包含多余属性,那么这个属性或属性组合成为候选键。候选键是没有多余属性的超键。
一个表可以有多个候选键,一个候选键既可以由一个属性构成也可以由多个属性构成。
举个例子,还是我们上面的那样一个s表,上面我们说到可以通过学号查出这个人,别的不能,我们才叫他超键。
候选键什么意思呢?就是除了学号,还可以通过名字确定出这个人,也就是说学生表中没有相同性命的人,这样(姓名,学号)就叫做候选键。
4.4 主键
一个关系中有可能有多个候选键,就随机选其中一个关系为主键。
比如上面候选键可以是:(姓名),(姓名,学号),(学号) 我们随机选:姓名 作为主键。
4.5 外键
又叫做外关键字。若某个组属性组F是关系R的主键,F又在关系S中出现,则成为F是S外键。
就是字面意思,前面的定义懂了,这就能懂了。
五、关系的完整性
5.1 实体完整性
指关系中元组的主键属性值不能为空,且主键值不能重复,在sql中用主键(primary key )实现。
5.2 参照完整性
指若某个属性组F是关系R的主键,F又在关系S中出现,则F是S的外键,F在S中可能取值:空值;等于R的某个主键值,并称基本关系R为被参照关系火主表,基本关系S为参照关系或副表。(理解背下来)
5.3 用户定义的完整性
用户定义的完整性规则主要包括:
- check约束
- 默认值default
- 唯一值unique
- 不为空not null
等约束,唯一性约束一般用unique;默认就是default.字面意思,没啥好解释的。
文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。
原文链接:chuanchuan.blog.csdn.net/article/details/122248350
- 点赞
- 收藏
- 关注作者
评论(0)