用于描述实体、属性、实体之间的联系。
从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一 个子集。
基于关系模型的数据库,利用关系来描述现实世界。
从形式上看,它由一组关系组成。(多张表组成一个数据库嘛~)
R(U,D,DOM,F)
字符 | 含义 |
---|---|
R | 关系名,是符号化的元组语义 |
U | 组成该关系的属性名的集合,一组属性 |
D | 属性组U中属性所来自的域 |
DOM | 属性向域的映象集合 |
F | 属性间数据的依赖关系集合(关系内部属性与属性之间的一种约束关系,主要分函数依赖和多值依赖) |
由于D、DOM与模式设计关系不大,所以常常把关系模式看作一个三元组:R。
当且仅当U上的一个关系r 满足F时,r称为关 系模式 R(U, F)的一个关系。
学生的学号(Sno)、所在系(Sdept)、系主任姓名 (Mname)、课程名(Cname)、 成绩(Grade)
单一的关系模式 : Student
U ={ Sno, Sdept, Mname, Cname, Grade }
Sno | Cname | Grade | Sdept | name |
---|---|---|---|---|
设R(U)是一个属性集U上的关系模式,X和Y是U的子 集。若对于R(U)的任意一个可能的关系r,r中不可能存在两 个元组在X上的属性值相等, 而在Y上的属性值不等, 则 称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 X称为这个函数依赖的决定属性集(Determinant)。 Y=f(x)
x可唯一确定y
在关系模式R(U)中,对于U的子集X和Y:
如果X->Y,但Y 不包含于 X,则称X->Y是非平凡的函数依赖
若X→Y,但Y 包含于X, 则称X→Y是平凡的函数依赖
在关系SC(Sno, Cno, Grade)中:
类型 | 示例 |
---|---|
非平凡函数依赖 | (Sno, Cno) → Grade |
平凡函数依赖 | (Sno, Cno) → Sno |
平凡函数依赖 | (Sno, Cno) → Cno |
易知:对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的 语义。所以我们默 认讨论非平凡函数依赖。
在关系模式R(U)中,如果X -> Y,并且对 于X的任何一个真子集X’,都有 X’ !-> Y, 则称Y完全函数依赖于X。 若X→Y,但Y不完全函数依赖于X,则称Y部分 函数依赖于X。
在关系SC(Sno, Cno, Grade)中,:
由于:Sno ->Grade,Cno -> Grade
因此:(Sno, Cno) 函数确定 Grade,Grade 函数依赖于(Sno, Cno)
在关系模式R(U)中,如果X->Y,Y->Z, 且Y !-> X,Y->X,则称Z传递函数依赖于X。
ps : 如果Y->X, 即X<–>Y,则Z直接依赖于X。可以双向的传递就不是传递函数依赖了。
在关系Std(Sno, Sdept, Mname)中:
有: Sno -> Sdept,Sdept -> Mname
Mname传递函数依赖于Sno。
设K为关系模式R中的属性或属性组合。若 K 函数确定 U,则K称为R的一个侯选码(Candidate Key)。 若关系模式R有多个候选码,则选定其中的一个做为主 码(Primary key)。
关系模式 R 中属性或属性组 X 并非 R 的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码 主码又和外部码一起提供了表示关系间联系的手段。