数据库原理复习串讲(8)
发布时间:2021-06-08
发布时间:2021-06-08
设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X和Y为属性集U上的子集。若X Y,同时X的一个真子集X’且也能够函数决定Y,即存在X’ Y,则称X部分函数决定Y,或Y部分函数依赖于X,记作:
。否则若不存在一个真子
集X’,使得X’也能够函数决定Y,则称X完全函数决定Y,或者Y完全函数依赖于X。记作:。 传递函数依赖:设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X、Y
X,Y Z,则存在和Z为属性集U上的子集。若X Y,Y Z,且Y
传递函数决定Z,或者说Z传递函数依赖于X。
,称X
2第一范式(INF)、第二范式(2NF)、第三范式(3NF)、BCNF范式。
第一范式(INF):如果一个关系R的所有属性都是不可再分的基本数据项,则称关系R属于第一范式,记作R 1NF。
第二范式(2NF):如果关系R ∈1NF,并且关系R的每一个非主属性不部分依赖于候选键,则R属于第二范式,记作:R∈2NF
第三范式(3NF):如果关系R∈2NF,且每一个非主属性都不传递依赖于候选键,则R属于第三范式,记作R∈3NF。 BCNF范式:如果关系R∈1NF,且R中每一个决定因子都是候选键,则R属于BC范式,记作R∈BCNF。
3. 仅满足1NF的关系存在哪些操作异常?是什么原因引起的? 满足1NF的关系存在: (1)数据冗余与更新异常 (2)插入异常 (3)删除异常
原因:没有遵循“一事一地” 存放的原则。即一个关系模式描述一个实体或实体间的一种联系.
具体实例
4. 设有一个教师任课的关系,其关系模式如下:
TDC(T#,TNAME,TITLE,D#,DNAME,DLOC,C#,CNAME,CREDIT)
其中各个属性分别表示:教师编号、教师姓名、职称、系编号、系名称、系地址、课程号、课程名、学分。假设:一个教师有唯一的教师编号、一个系有唯一的系编号、一门课程有唯一的课程号,一个系有若干名教师,但一个教师只能属于一个系,一个教师可以担任多门课程的教学,同时任意一门课程可以由多名教师承担。
请问:
(1)写出该关系的函数依赖,分析是否存在部分依赖,是否存在传递依赖?
答:主键为:(T#,D#,C#)
T# TNAME, T# TITLE,T# D# D# DNAME, D# DLOC C# CNAME, C# CREDIT
存在很多部分依赖,也存在传递依赖
(2)该关系的设计是否合理?存在哪些问题?
答: 不合理:
存在数据冗余:一个教师上多门课程,教师信息、系信息、课程信息重复存储。 存在插入异常:教师没有开课,不能插入,教师没有部门,不能插入