主码(primary key):是表中的一个或多个字段,它的值用于唯一标识表中的某一条记录。
超码(super key): 表中一个或多个属性的集合,可以在一个实体集中唯一标识一个实体。
候选码(candidate key):若关系的某一属性或属性组的值能唯一标识一个元祖,而其任何真子集都不能再标识,则称该属性组为候选码。
(真子集:如果A是B的子集,并且B中至少有一个元素不属于A,那么集合A叫做集合B的真子集。)
笛卡尔积:设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成的有序对,所有这样的有序对组成的集合。例:假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。
内连接也叫连接,还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。
内连接的语法:
select fieldlist from table1 [inner] join table2 on table1.column=table2.column
SELECT COUNT(*) FROM S WHERE DEPT=‘计算机’
注意:COUNT(*)用来统计元组的个数。此函数不消除重复行,也不允许使用DISTINCT关键字
关系数据库规范化:
码是由一个或多个属性组成的可唯一标识元组的最小属性组。
若候选码多于一个,则选定其中的一个为主码(primary Key)
包含在任一候选码中的属性,叫主属性(prime Attribute)
不包含在任何码中的属性称为非主属性(Nonprime Attribute)或非码属性(Non―key Attribute)
关系模式中,最简单的情况,单个属性是码,称为单码(Single Key)
最极端的情况,整个属性组是码,称为全码(All―Key)
函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的所有关系r都存在: 对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。
或者说,属性X函数决定属性Y,记作X→Y。 其中X叫决定因素,Y叫被决定因素。
关系规范化的三大范式:
第一范式(1NF)
如果关系模式R中属性具有原子性(不可分),则R满足第一范式,简称1NF(First Normal Form),记作R∈1NF。
注:1NF是对关系的最低要求,不满足1NF的关系是非规范化关系
第二范式(2NF)
如果一个关系R属于1NF,且它的所有非主属性都完全函数依赖于R的任一候选码,则R属于第二范式,记作R∈2NF。
第三范式(2NF)
如果关系模式R属于2NF,且它的每一个非主属性都不传递依赖于任何候选码,则称R是第三范式,记作R∈3NF。
改进的3NF——BCNF
设关系模式R(U,F)∈1NF,若F的任一函数依赖X→Y中X都包含了R的一个码,则称R∈BCNF。 换言之,在关系模式R中,如果每一个决定因素都包含码,则R∈BCNF。
函数依赖公理:Armstrong公理系统
A1(自反律): 若Y属于X,则X→Y;
A2(增广律): 若X→Y,则XZ→YZ;
A3(传递律): 若X→Y,Y→Z,则X→Z
由Armstrong公理系统,可以得到以下三个推论:
· 合成规则: 若X→Y,X→Z,则X→YZ;
· 分解规则: 若X→YZ,则X→Y,X→Z;
· 伪传递规则: 若X→Y,WY→Z,则XW→Z。
关系数据库中候选码的求解规则:
对于给定的关系R(U, F),可将其属性分为四类:
L类:仅出现在函数依赖集F的左部的属性。
R类:仅出现在函数依赖集F的右部的属性。
LR类:在函数依赖集F的左右两边均出现的属性。
N类:在函数依赖集F的左右两边均未出现的属性。
掌握这四条黄金法则:
若X是仅在左边出现的属性,则X必定在任何候选码中。
若X是L类属性, XF+ =U,则X为R的唯一候选码。
若X是N类属性,则X必为R的任一候选码的成员。
若X是L类和N类属性组成的属性集,且XF+ =U,则X必为R的唯一候选码。