关系结构及形式化定义
关系
域:一组具有相同数据类型的值的集合。
域这个东西,可以理解成数值的范围,像int,double,.... 属性与域是密不可分的,因为属性值来自域。
笛卡儿积:各个域中的分量的组合。(个人理解的)
下面给三个域:
D1=老师集合(属性)={大神(分量),大牛(分量)}
D2=专业集合{软件工程,网路工程}
D3=学生集合{小白,渣渣,酥酥}
它们笛卡儿积为:D1*D2*D3={
(大神,软件工程,小白)这就是一个元组---就是那个一行。
元组的个数=2*2*3;各个域中分量个数的乘级
}
关系: 笛卡儿积中的子集在各个域上的关系。(个人理解,就是一个表)
在关系中一般都有主键,主键就是可以唯一地标识一个元组的属性。(唯一能标识一行的属性,像学号,身份证等)
下面的蓝字抄的课本上概念,不知道什么时候能用到,还是了解了解吧。
若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。
候选码的诸属性 称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。
三种关系类型:
基本表,查询表,视图表。
基本表的性质:
1.列是同质的。(出自同一个域)
2.不同的列可以来自同一个域。
3.列的顺序无所谓。
4.行的顺序无所谓。
5.任意两个候选码不能取相同的值。(就是主键不能相同)
6.分量必须原子值。(最小的单位,不能再分了)
关系操作
增 删 改 查
查:选择,投影,连接,除,并,差,交,笛卡儿积等。
选择,投影,并,差,笛卡儿积是5种基本操作。
目前几乎都用SQL语句。
关系的完整性
实体完整性:主键不为空。
参照完整性:
引入外键的概念,属性param 在表A处于非主键地位,在表B中处于主键地位。这样称属性
param是表A的外键。
1.表B中param属性可以为空值。
2.表A中param属性值必须取自表B中的主键值。
用户定义完整性
关系代数
集合运算(并,差,交,笛卡儿积)
简单的并差交,不再细说了。
笛卡儿积,只要掌握将列相加,行相乘,就行了。
关系运算(选择,投影,连接,除运算)
选择:对行的操作。
投影: 对列的操作。去重。
连接:
1.等值连接:属性值相同
2.自然连接:属性值相同,属性相同。(去除重复的列)。
除运算:
引出象集的概念,元组中除去该属性,其他属性的集合,构成一个单元,众多个这样的集合组成象集。
1.找象集。
2.相同的列。
3.包含的元素。
4.去掉相同的列。