当前位置:文档之家› 第8章 关系数据理论

第8章 关系数据理论

第8章 关系数据理论
第8章 关系数据理论

第8章关系数据理论

第8章关系数据理论

8.1引言

8.2基本知识

8.3关系规范化设计理论-范式

8.4 关系规范化的步骤

8.5 模式的分解

8.1引言

一、概念回顾

二、关系模式的形式化定义

三、什么是数据约束

四、关系模式的简化定义

一、概念回顾

?关系

–从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。?关系模式:对关系的描述。

?关系数据库:基于关系模型的数据库,利用关系来描述现实世界。

–从形式上看,它由一组关系组成。

?关系数据库的模式:定义这组关系的关系模式的全体。

二、关系模式的形式化定义

关系模式由五部分组成,即它是一个五元组:

R(U, D, DOM, F)

R:关系名

U:组成该关系的属性名集合

D:属性组U中属性所来自的域

DOM:属性向域的映象集合

F:属性间数据的约束条件的集合

三、什么是数据约束

一种是通过对数据的取值范围来实现。

另一种是通过数据之间的各种联系来实现,

四、关系模式的简化表示

●关系模式R(U, D, DOM, F)

简化为一个三元组:

R(U, F)

r 满足F时,r称为关系模式R(U, F)的●当且仅当U上的一个关系

一个关系

第8章关系数据理论

?8.1引言

?8.2基本知识

?8.3关系规范化设计理论-范式

?8.4 关系规范化的步骤

?8.5 模式的分解

8.2 基本知识

8.2.1 函数依赖

8.2.2 码

8.2.3 函数依赖的推理规则

8.2.1 函数依赖

一、函数依赖

二、平凡函数依赖与非平凡函数依赖

三、完全函数依赖与部分函数依赖

四、传递函数依赖

一、函数依赖

定义8.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。

若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。

X称为这个函数依赖的决定属性集(Determinant)。

Y=f(x)

说明

1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所

有关系实例均要满足的约束条件。

2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。

例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立

3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数

依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。

函数依赖(续)

例: Student(Sno, Sname, Ssex, Sage, Sdept)

假设不允许重名,则有:

Sno →Ssex,Sno →Sage , Sno →Sdept,

Sno ←→Sname, Sname →Ssex,Sname →Sage

Sname →Sdept

但Ssex →Sage

若X→Y,并且Y→X, 则记为X←→Y。

若Y不函数依赖于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

平凡函数依赖与非平凡函数依赖(续)–对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖。

三、完全函数依赖与部分函数依赖

定义8.2 在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有

X’Y, 则称Y完全函数依赖于X,记作X fY。

若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。

完全函数依赖与部分函数依赖(续)

例: 在关系SC(Sno, Cno, Grade)中,

由于:Sno →Grade,Cno →Grade,

因此:(Sno, Cno) fGrade

四、传递函数依赖

定义8.3 在关系模式R(U)中,如果X→Y,Y→Z,且Y X,Y→X,则称Z传递函数依赖于X。

注: 如果Y→X,即X←→Y,则Z直接依赖于X。

例: 在关系Std(Sno, Sdept, Mname)中,有:

Sno →Sdept,Sdept →Mname

Mname传递函数依赖于Sno

8.2.2 码

定义8.4 设K为关系模式R中的属性或属性组合。若K fU,则K称为R的一

个侯选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。

?主属性与非主属性

?ALL KEY

外部码

定义8.5 关系模式R 中属性或属性组X 并非R的码,但X 是另一个关系模式的码,则称X 是R 的外部码(Foreign key)也称外码

?主码又和外部码一起提供了表示关系间联系的手段。

8.2.3 函数依赖的推理规则

1.自反律:

若Y ?X?U,则X →Y。

2.增广律:

若X ?U , Y ?U , Z?U且X→Y,则XZ→YZ。

3.传递律:

若X→Y及Y→Z,则X→Z。

8.2.3 函数依赖的推理规则

根据1,2,3这三条推理规则可以得到下面三条推理规则:

4.合并规则:由X→Y,X→Z,有X→YZ。

(2,3)

5. 伪传递规则:由X→Y,WY→Z,有XW→Z。

(2,3)

6. 分解规则:由X→Y及Z?Y,有X→Z。

(1,A3)

8.2.3 函数依赖的推理规则

根据合并规则和分解规则,可得引理

引理X→A1 A2…A k成立的充分必要条件是X→A i成立

(i=l,2,…,k)。

8.3关系规范化设计理论-范式

8.3.1 概述

8.3.2 1NF

8.3.3 2NF

8.3.4 3NF

8.3.5 BCNF

8.3.6 这几种范式的关系

8.3.1 概述

任何一个关系模式都可能有多个表(关系)组成,一个关系模式到底需要有多少个表呢?而一个表到底需要有哪些属性呢?这是我们学习范式以后就可以确定的。

8.3.1 概述(续)

?范式是符合某一种级别的关系模式的集合。

?关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。

?范式的种类:

第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

BC范式(BCNF)

第四范式(4NF)

第五范式(5NF)

8.3.1 概述(续)

?各种范式之间存在联系:

?某一关系模式R为第n范式,可简记为R?nNF。

8.3.2 1NF

?1NF的定义

如果一个关系模式R的所有属性都是不可分的基本数据项,则R?

1NF。

?第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。

?若一个关系模式中的所有关系是属于1NF,则称该关系模式也属于

1NF

8.3.2 1NF(续)

如何把不属于1NF的关系转化为属于1NF

8.3.2 1NF(续)

但是满足第一范式的关系模式并不一定是一个好的关系模式。

8.3.2 1NF(续)

例: 关系模式SLC(Sno, Sdept, Sloc, Cno, Grade)

Sloc为学生住处,假设每个系的学生住在同一个地方。

?函数依赖包括:

(Sno, Cno) f Grade

Sno →Sdept

(Sno, Cno) P Sdept

Sno →Sloc

(Sno, Cno) P Sloc

Sdept →Sloc

8.3.2 1NF(续)

8.3.2 1NF(续)

?SLC的码为(Sno, Cno)

?SLC满足第一范式。

?非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)

SLC不是一个好的关系模式

(1) 插入异常

假设Sno=005,Sdept=SC,Sloc=A的学生还未选课,因课程号是主属性,因此该学生的信息无法插入SLC。

(2) 删除异常

假定某个学生本来只选修了103号课程这一门课。现在因身体不适,他连103号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。

SLC不是一个好的关系模式

(3) 数据冗余度大

如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。

(4) 修改复杂

例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部Sdept、Sloc信息。

8.3.2 1NF(续)

?原因

非主属性(Sdept、Sloc)部分函数依赖于码。

?解决方法

SLC分解为两个关系模式,以消除非主属性对码的部分函数依赖

SC(Sno,Cno,Grade)

SL(Sno,Sdept,Sloc)

8.3.2 1NF(续)

8.3.2 1NF(续)

通过分解得到的SC,SL可使原本存在的问题得到一定程度的解决。

?插入异常解决

?删除异常解决

?修改复杂解决

?数据冗余减小

8.3.2 1NF(续)

函数依赖图:

8.3关系规范化设计理论-范式

?8.3.1 概述

?8.3.2 1NF

?8.3.3 2NF

?8.3.4 3NF

?8.3.5 BCNF

?8.3.6 这几种范式的关系

8.3.3 2NF

一、2NF的定义

定义5.6 若关系模式R?1NF,并且每一个非主属性都完全函数依赖于R的码,则R?2NF。

例:SLC(Sno, Sdept, Sloc, Cno, Grade) ?1NF

SLC(Sno, Sdept, Sloc, Cno, Grade) ?2NF SC (Sno,Cno,Grade)?2NF

SL(Sno,Sdept,Sloc)?2NF

8.3.3 2NF (续)

二、定理:若关系模式R?1NF,且候选码只有一个属性,则R ?2NF。

8.3.3 2NF (续)

?采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。

?但并不能完全消除关系模式中的各种异常情况和数据冗余,还存在一定的问题。

三、还存在的问题

8.3.3 2NF (续)

四、存在问题的原因

函数依赖:

Sno→Sdept

Sdept→Sloc

Sno→Sloc

Sloc传递函数依赖于Sno,即SL中存在非主属性对码的传递函数依赖。

8.3.3 2NF (续)

函数依赖图:

8.3.3 2NF (续)

五、解决方法

采用投影分解法,把SL分解为两个关系模式,以消除非主属性对码的传递函数依赖:

SD(Sno,Sdept)

DL(Sdept,Sloc)

SD的码为Sno,DL的码为Sdept。

8.3.3 2NF (续)

8.3.3 2NF (续)

通过分解得到的关系模式,既没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖,使原本存在的问题得到一定程度的解决。

?插入异常解决

?删除异常解决

?修改复杂解决

?数据冗余减小

8.3.3 2NF (续)

SD的码为Sno,DL的码为Sdept。

8.3关系规范化设计理论-范式

?8.3.1 概述

?8.3.2 1NF

?8.3.3 2NF

?8.3.4 3NF

?8.3.5 BCNF

?8.3.6 这几种范式的关系

8.3.4 3NF

一、3NF的定义

定义5.8 若关系模式?2NF,且不存在非主属性对码的传递函数依赖,则R ?3NF。

例,SL(Sno, Sdept, Sloc) ?2NF

SL(Sno, Sdept, Sloc) ?3NF

SD(Sno,Sdept)?3NF

DL(Sdept,Sloc)?3NF

8.3.4 3NF (续)

二、定理若R?2NF,且非主属性至多有一个,则R?3NF

8.3.4 3NF (续)

三、说明

?若R?3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。

?如果R?3NF,则R也是2NF。

?采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。

8.3.4 3NF (续)

四、存在问题

将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。假定一个教师只教一门课程,但一门课程可以由多个老师分担。

四、存在问题(续)

1.插入异常:教师的课没人选,则相应信息插入不进来。

2.删除异常:若全部学生毕业,则课程和教师信息也被删除。

3.修改复杂:若教师改变,则要修改多次(选该老师的学生人数)

4.数据冗余。

8.3.4 3NF (续)

五、存在问题的原因

Sno,Cno →Tno, Tno →Cno Sno,Cno →Grade

Sno,Tno →Cno, Tno →Cno Sno,Tno →Grade

存在着候选码中的主属性对不包括该主属性的其它候选码的部分函数依赖问题。

8.3.4 3NF (续)

六、解决的方法

消除候选码中的主属性对不包括该主属性的其它候选码的部分函数依赖问题。

8.3.4 3NF (续)

8.3关系规范化设计理论-范式

?8.3.1 概述

?8.3.2 1NF

?8.3.3 2NF

?8.3.4 3NF

?8.3.5 BCNF

?8.3.6 这几种范式的关系

8.3.5 BC范式(BCNF)

一、定义:

设关系模式R?1NF,如果对于R的每一个非平凡函数依赖X→Y,X都是候选码,则R?BCNF。

二、定理

若R?3NF,且只有一个候选码,则R?BCNF

8.3.5 BCNF(续)

三、BCNF 的性质

?R中的所有属性(主,非主属性)都完全函数依赖于码

?任何属性都仅仅依赖于候选码

8.3.5 BCNF(续)

例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。

?每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:

(S,J)→T,(S,T)→J,T→J

8.3.5 BCNF(续)

BCNF

STJ?3NF

?(S,J)和(S,T)都可以作为候选码

?S、T、J都是主属性

STJ?BCNF

?T→J,T是决定属性集,T不是候选码

BCNF

解决方法:将STJ分解为二个关系模式:

SJ(S,J) ?BCNF,TJ(T,J)?BCNF

没有任何属性对码的部分函数依赖和传递函数依赖

3NF与BCNF的关系

?如果关系模式R?BCNF,

必定有R?3NF

?如果R?3NF,且R只有一个候选码,

则R必属于BCNF。

8.3关系规范化设计理论-范式

?8.3.1 概述

?8.3.2 1NF

?8.3.3 2NF

?8.3.4 3NF

?8.3.5 BCNF

?8.3.6 这几种范式的关系

8.3.6这几种范式的关系

8.4 关系规范化的步骤

?关系数据库的规范化理论是数据库逻辑设计的工具。

?一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这只是最基本的规范化。

?规范化程度可以有多个不同的级别

规范化的步骤(续)

?规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题

?一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化

规范化的步骤(续)

1、把客观世界信息描述为其列属性都是不可分的数据项,即R ?1NF。

规范化的步骤(续)

2、

1NF

↓消除非主属性对码的部分函数依赖

2NF

↓消除非主属性对码的传递函数依赖

3NF

↓消除主属性对码的部分和传递函数依赖

BCNF

规范化的步骤(续)

?不能说规范化程度越高的关系模式就越好

?在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式

?上面的规范化步骤可以在其中任何一步终止

8.5 模式的分解

?把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的

?只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义

关系模式分解的标准

三种模式分解的等价定义

⒈分解具有无损连接性

⒉分解要保持函数依赖

⒊分解既要保持函数依赖,又要具有无损连接性

模式的分解(续)

例: SL(Sno,Sdept,Sloc)

F={ Sno→Sdept,Sdept→Sloc,Sno→Sloc}

SL?2NF

存在插入异常、删除异常、冗余度大和修改复杂等问题

分解方法可以有多种

模式的分解(续)

SL ────────────────

Sno Sdept Sloc

────────────────

95001 CS A

95002 IS B

95003 MA C

95004 IS B

95005 PH B

────────────────

模式的分解(续)

1. SL分解为下面三个关系模式:

SN(Sno)

SD(Sdept)

SO(Sloc)

分解后的关系为:

SN ──────SD ──────SO ──────

Sno Sdept Sloc ──────────────────

95001 CS A

95002 IS B

95003 MA C

95004 PH ─────

95005 ──────

──────

模式的分解(续)

分解后的数据库丢失了许多信息

例如无法查询95001学生所在系或所在宿舍。如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息

模式的分解(续)

2. SL分解为下面二个关系模式:

NL(Sno, Sloc)

DL(Sdept, Sloc)

分解后的关系为:

NL ────────────DL ────────────

Sno Sloc Sdept Sloc

────────────────────────

95001 A CS A

95002 B IS B

95003 C MA C

95004 B PH B

95005 B ──────────────────────

模式的分解(续)

NL DL

─────────────

Sno Sloc Sdept

─────────────

95001 A CS

95002 B IS

95002 B PH

95003 C MA

95004 B IS

95004 B PH

95005 B IS

95005 B PH

模式的分解(续)

NL DL比原来的SL关系多了3个元组

无法知道95002、95004、95005

究竟是哪个系的学生

元组增加了,信息丢失了

第三种分解方法

3. 将SL分解为下面二个关系模式:

ND(Sno, Sdept)

NL(Sno, Sloc)

分解后的关系为:

模式的分解(续)

ND ────────────NL ──────────

Sno Sdept Sno Sloc ──────────────────────

95001 CS 95001 A

95002 IS 95002 B

95003 MA 95003 C

95004 IS 95004 B

95005 PH 95005 B ───────────────────────

模式的分解(续)

ND NL

──────────────

Sno Sdept Sloc

──────────────

95001 CS A

95002 IS B

95003 MA C

95004 CS A

95005 PH B

──────────────

与SL关系一样,因此没有丢失信息

具有无损连接性的模式分解

?关系模式R被分解为R1,R2,…,R n

若R与R1、R2、…、Rn自然连接的结果相等,则称关系

模式R的这个分解具有无损连接性

?具有无损连接性的分解保证不丢失信息

?无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题

模式的分解(续)

第三种分解方法具有无损连接性

问题:

这种分解方法没有保持原关系中的函数依赖

SL中的函数依赖Sdept→Sloc

没有投影到关系模式ND、NL上

保持函数依赖的模式分解

设关系模式R被分解为若干个关系模式

R1,R2,…,R n

(其中U=U1∪U2∪…∪U n,且不存在U i U j,F i为F在U i上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖F i所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的。

第四种分解方法

将SL分解为下面二个关系模式:

ND(Sno, Sdept)

DL(Sdept, Sloc)

这种分解方法就保持了函数依赖。

模式的分解(续)

?如果一个分解具有无损连接性,则它能够保证不丢失信息。

?如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。?分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。

模式的分解(续)

第一种分解方法既不具有无损连接性,也未保持函

数依赖,它不是原关系模式的一个等价分解

第二种分解方法保持了函数依赖,但不具有无损连

接性

第三种分解方法具有无损连接性,但未持函数依赖

第四种分解方法既具有无损连接性,又保持了函数

依赖

说明

?若要求分解具有无损连接性,那么模式分解一定能够达到4NF。?若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。

?若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能

数据库第六章关系数据理论习题讲解

第六章关系数据理论 (我们数据库老师给的资料,蛮有用的,分享下) 一、求最小依赖集 例:设有依赖集:F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG},计算与其等价的最小依赖集。 解: 1、将依赖右边属性单一化,结果为: F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→A,CE→G } 2、在F1中去掉依赖左部多余的属性。对于CE→A,由于C→A成立,故E是多余的;对于ACD→B,由于(CD)+=ABCEDG,故A是多余的。删除依赖左部多余的依赖后:F2={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→G } 3、在F2中去掉多余的依赖。对于CG→B,由于(CG)+=ABCEDG,故CG→B是多余的。删除依赖左部多余的依赖后: F3={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G } CG→B与CD→B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。 二、求闭包 例:关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+。 解:令X={AE},X(0)=AE; 计算X(1);逐一扫描F集合中各个函数依赖,在F中找出左边是AE子集的函数依赖,其结果是:A→D,E→C。于是X(1)=AE∪DC=ACDE; 因为X(0)≠ X(1),且X(1)≠U,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD→I。于是X(2)=ACDE∪I=ACDEI。 虽然X(2)≠X(1),但在F中未用过的函数依赖的左边属性已没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。 三、求候选键 例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。解:首先求属性的闭包: (A)+=AB,(B)+ =B,(C)+ =CD,(D)+ =D (AB)+ =AB,(AC)+=ABCD=U,(AD)+ =ABD,(BC)+ =BCD,(BD)+ =BD,(CD)+ =CD (ABD)+ =ABD,(BCD)+ =BCD, 因(AC)+=ABCD=U,且(A)+=AB,(C)+ =CD,由闭包的定义,AC→A,AC→B,AC →B,AC→D,由合并规则得AC→ABCD=U; 由候选码的定义可得AC为候选码。

第6章关系数据理论习题

练习一。 指出下列关系模式是第几范式 (1)R(X,Y,Z) FD={XY→Z} 其典型实例就是我们的SC(Sno,Cno,Grade) 参考解答: R(X,Y,Z)的主码为XY,非主属性为Z。 关系模式R(X,Y,Z)中不存在非主属性对码的部分函数依赖——>属于二范式 关系模式R(X,Y,Z)中不存在非主属性对码的传递函数依赖——>属于三范式 关系模式R(X,Y,Z)中起决定作用的只有码——>属于BC范式 故在函数依赖范围内,关系模式R(X,Y,Z)属于BC范式 (2)R(X,Y,Z) FD={ Y→Z, XZ→Y } 参考解答: R(X,Y,Z)的主码为XZ,非主属性为Y 属于第三范式:因为其中不存在非主属性(Y)对码(XZ)的部分函数依赖和传递函数依赖; 但不属于BC范式:因为起决定作用的除了码以外还有非主属性(Y) (3)R(X,Y,Z) FD={ Y→Z, Y→X, X→YZ } 参考解答: R(X,Y,Z)的候选码为Y和X,非主属性为Z 不存在非主属性对码的部分函数依赖和传递函数依赖,故属于三范式 又,起决定作用的只有码,所以也是BC范式 (4)R(X,Y,Z) FD={ X→Y, X→Z } 参考解答: 典型实例Student(Sno,Sname,Ssex) R(X,Y,Z)的候选码为X,非主属性为Y和Z 不存在非主属性对码的部分函数依赖和传递函数依赖,故属于三范式 又,起决定作用的只有码,所以也是BC范式 (5)R(W,X,Y,Z) FD={ X→Z, WX→Y } 参考解答: 典型实例S_C(Sno,Cno,Grade,,Cname) R(W,X,Y,Z)的候选码为WX,非主属性为Y和Z 因为非主属性Z不是完全依赖于码(WX),而是依赖于码中的一部分(X), 所以存在非主属性对码的部分函数依赖,故没有达到二范式,仅属于一范式 (6)R(A,B,C,D) ,FD={B→D, AB→C } 参考解答: 典型实例S_C(Sno,Cno ,Grade,,Cname) R(W,X,Y,Z)的候选码为WX,非主属性为Y和Z 因为非主属性Z不是完全依赖于码(WX),而是依赖于码中的一部分(X), 所以存在非主属性对码的部分函数依赖,故没有达到二范式,仅属于一范式

数据库第六章习题综合要点

第六章结构化程序设计 一、选择题 1、WAIT命令用于让用户输入一个。 A)数字 B)字符 C)字符串 D)以上都是 2、在交互式输入命令中,可以接受逻辑型数据的命令包括______。 A)INPUT和ACCEPT B)WAIT和INPUT C)INPUT和@…GET D)INPUT和@…SAY 3、执行命令 ACCEPT″请输入数据:″TO XYZ 时,可以通过键盘输入的内容包括______。 A)字符串 B)数值和字符串 C)数值,字符串和逻辑值 D)数值,字符串,逻辑值和表达式 4、执行命令INPUT″请输入数据:″TO AAA时,如果要通过键盘输入字符串,应当使用的定 界符包括______。 A)单引号 B)单引号或双引号 C)单引号、双引号或方括弧 D)单引号、双引号、方括弧或圆点 5、在VFP中,可以通过键盘接受数值的命令有_______。 A)ACCEPT B)ACCEPT和WAIT C)INPUT和ACCEPT D)INPUT和 @ 5,10 SAY...GET.. 6、比较WAIT、ACCEPT和INPUT三条命令,需要以回车键表示输入结束的命令是_____。 A)WAIT、ACCEPT、INPUT B)WAIT、ACCEPT C)ACCEPT、INPUT D)INPUT、WAIT 7、以下关于ACCEPT命令的说明,正确的是______。 A)将输入作为字符接收 B)将输入作为数值接收 C)将输入作为逻辑型数据接收 D)将输入作为备注型接收 8、结构化程序设计所规定的三种基本控制结构是_______。 A)输入,处理,输出 B)树型,网型,环型 C)顺序,选择,循环 D)主程序,子程序,函数 9、能将高级语言编写的源程序转换成目标程序的是_______。 A)编程程序 B)编译程序 C)解释程序 D)链接程序 10、VFP中的DO CASE-ENDCASE语句属于_______。 A)顺序结构 B)选择结构 C)循环结构 D)模块结构 11、当前数据库中有五个字段:学号(C,4)、姓名(C,6)、政治(N,3.0)、英语(N,3.0)、数 学(N,3.0),记录指针指向一个非空的记录。要使用SCATTER TO X命令把当前记录的字段值存到数组X中,数组X ______。 A)不必事先定义 B)必须用DIMENSION X 事先定义 C)必须用DIMENSION X(5)事先定义 D)必须用DIMENSION X(1),X(2),X(3),X(4),X(5)事先定义 12、要判断数值型变量Y是否能够被7整除,错误的条件表达式为______。 A)MOD(Y,7)=0 B)INT(Y/7)=Y/7 C)0=MOD(Y,7) D)INT(Y/7)=MOD(Y, 7) 13、在VFP中,命令文件的扩展名是______。

第六章__关系数据理论(1)

第六章 关系数据理论 习题 1.理解并给出下列术语的定义: 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All-key )、1NF 、2NF 、3NF 、BCNF 、多值依赖、4NF 。 2.联立一个关于系、学生、班级、学会等诸信息的关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系名、系号、办公室地点、人数。 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干学生,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 指出各关系的候选码、外部码,有没有全码存在? 3.试由Armstrong 公理系统推导下面三条推理规则: (1)合并规则:若X Z →,X Y →,则有X YZ → (2)伪传递规则:由X Y →,WY Z →,有XW Z → (3)分解规则:X Y →,Z Y ?,有X Z → 4.关于多值依赖的另一种定义试: 给定一个关系模式R (X ,Y ,Z ),其中X ,Y ,Z 可以是属性或属性组合。 设x X ∈,y Y ∈,z Z ∈,xy 在R 中的像集伪: {.|..}xz Y r Y r X x r Z z r R ==∧=∧∈ 定义 R (X ,Y ,Z )当且仅当xz xz Y Y '=对于每一组(x ,z ,z ')都成立,则Y 对X 多值依赖,记作X Y →→。这里,允许Z 为空集,在Z 为空集时,称为平凡的多值依赖。 请证明这里的定义和《概论》5。2。7节中定义5。9是等价的。 5.试举出3个多值依赖的实例。 *6.试证明书上给出的关于FD 和MVD 公理系统的A 4,A 6和A 8。 *7.设关系模式为R (U ,F ),X ,Y 为属性集,X ,Y U ∈。 证明:(1)F X X +? (2)()F F F X X +++= (3)若X Y ?则F F X Y ++ = (4)F U U += *8.设关系模式R (U ,F ),若,则 F X X +=称X 相对于F 是饱和的。定义饱和集{|}F F X X X ?+==,试证明{|}F F X X U ?+=?。 9.图6.12表示一个公司各部门的层次结构。

第六章关系数据理论

补充题 1设有下列关系模式和相应的函数依赖集: (1)R(A,B,C,D),F={A B→C,C→D,D→A} (2)R(A,B,C,D),F={B→C,B→D} (3)R(A,B,C,D),F={A B→C,B C→D,C D→A,A D→B} (4)R(A,B,C,D),F={A→B,B→C,C→D,D→A} (5)R(A,B,C,D,E),F={A B→C,D E→C,B→D} (6)R(A,B,C,D),F={A B→C,C→D,D→E} 请判断它们最高属于什么范式?为什么? 解: (1)是3N F,但不是B C N F。因为该关系模式的码为A B,B C和B D,所有属性均为主属性,是3N F。但由于C→D,D→A中的左边不包含候选码,所以不是B C N F。 (2)是2N F,不是3N F。因为该关系模式的码为A B,由函数依赖B→C,B→D,可得C,D部分函数依赖于A B,所以在关系模式中存在非主属性对码的部分函数依赖,不满足3N F。 (3)3N F,也是B C N F。在该关系模式中,A B,C D,A D,B C都是侯选码,所有属性均为主属性,所以不存在非主属性对码的传递依赖。所以是3N F。因为所有的函数依赖的左部都包含侯选码,所以该关系模式是B C N F。 (4)是3N F,也是B C N F。在该关系模式中,A,B,C和D均为侯选码,它们也都是主属性,所以是3N F。也是B C N F。 (5)是1N F,不是2N F.该关系模式的侯选码为A B E,由函数依赖A B→C可知在该关系模式中存在非主属性对侯选码的部分函数依赖,所以不是2N F。(6)是2N F,不是3N F。该关系模式的侯选码为A B,因为存在非主属性对侯选码的传递依赖,所以不是3N F。 【习6-2】建立关于系、学生、班级、学会等诸信息的一个关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系名、系号、系办公室地点、人数。 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区。每个学生可以参加若干个学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的最小函数依赖集,指出是否存在传递函数,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖。 指出各关系的候选码、外码,有没有全码存在? 解: (1)学生关系 学生(学号,姓名,出生年月,系名,班号,宿舍区) 候选码:学号 外码:系名,班号 最小函数依赖集F'={学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区} 存在传递函数依赖:

第六章关系数据库理论

第六章关系数据理论 1、理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码、1NF、2NF、3NF、BCNF。 答:函数依赖:设R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。 完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。 传递依赖:在关系R (U)中,如果X→Y(Y?X),Y→X,Y→Z,则称Z对X传递函数依赖。 候选码、主码:设K为R(U,F)中的属性或属性组合,若K→U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。 外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。 全码:整个属性组是码,称为全码(All-key)。 1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF 2NF:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的关键字,则R∈2NF。 3NF:关系模式R 中若不存在这样的关键字X、属性组Y及非主属性Z(Z?Y),使得X→Y,Y→X,Y→Z 成立,则称R∈3NF。 BCNF:设关系模式R∈1NF,如果对于R的每个函数依赖X→Y,若Y?X,则X必含有候选关键字,那么R∈BCNF。 2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区; 描述班级的属性有:班号、专业名、系名、人数、入校年份; 描述系的属性有:系名、系号、系办公室地点、人数; 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 指出各关系的候选码、外部码,有没有全码存在? 答:1、关系模式: (1)学生:Student ( sno, sname, sbirth, deptname, clsno, sdorm ) 其中:sno_学号,sname_姓名,sbirth_出生年月,deptname_系名,clsno_班级号,sdorm_宿舍区,(2)班级:Class ( clsno, spec, deptname, clsnum, clsdate ) 其中:clsno_班级号,spec_专业名,deptname_系名,clsnum_班级人数,clsdate_入校年份,(3)系:Dept ( deptno, deptname, deptaddr, deptnum ) 其中:deptno_系号,deptname_系名,deptaddr_系办公地点,deptnum_系人数,

第六章 关系数据库设计理论

第六章关系数据库设计理论 一、填空题 1、()和()是对关系模式进行分解的两个基本原则。 2、通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫( )。 3、如何一个关系模式R(),则这个关系属于1NF。 4、要使关系模式属于2NF,就要消除()。 5、要使关系模式属于3NF,即就要消除()又要消除()。 6、若关系模式R属于1NF,且(),则R关系模式属于BCNF。 7、BCNF在函数依赖范围内已实现了模式的彻底分解,消除了()和()。 二、单选题 1、现有学生关系Student,属性包括学号(Sno),姓名(Sname),所在系(Sdept),系主任姓名(Mname),课程名(Cname)和成绩(Grade)。这些属性之间存在如下联系:一个学号只对应一个学生;通过学生只对应一个系;一个系只对应一个系主任;一个学生的一门课程只对应一个成绩;学生名可以重复;系名不可重复;课程名吧重复。则以下不正确的函数依赖是() A. Sno→Sdept B. Sno→Mname C. Sname→Sdept D.Sno,Cname→Grade 2、下面关于函数依赖的描述,错误的是()。 A.在函数依赖A→B中,A称为决定因素。 B.在关系R中,属性B依赖于属性A,则说明当属性A的值确定之后,属性B的值也随之确定。 C.函数依赖具有传递性。 D.在关系R中,如果属性A依赖于属性B,这种依赖记为:A→B。 A. F1→F2 B. F1 F2→F5 C. F3 F4→F5 D. F2 F3→F4 4、关系R包含属性{A1,A2,A3,A4,A5},其中{A1,A2}为主码,则下面的说法正确的是()。 A. {A1}或者{A2}有可能单独成为R的主码 B.{A1,A2,A3}必然也是R的主码 C. R中绝不可能出现在A1,A2上取值完全相同的元组 D. R的所有元组中,A1或者A2的值都是不能重复的 5、下面关于主码的说法错误的是()。 A. 一个关系的主码是唯一的; B. 一个关系的主码指定值之后,对应的元组也就确定了 C. 关系R的主码的任何真子集都不可能是关系R的主码 D. 在保存学生学籍信息的关系中,学生姓名对应的属性不适合单独作为主码

第六章 关系数据理论

一单项选择题 1 关系规范化中的删除操作异常是指___①______,插入操作异常是指____②_______。 A 不该删除的数据被删除 B 不该插入的数据被插入 C 应该删除的数据未被删除 D 应该插入的数据未被插入 2 设计性能较优的关系模式称为规范化,规范化主要的理论依据是____________。 A 关系规范化理论 B 关系运算理论 C 关系代数理论 D 数理逻辑 3 规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一个属性都是_______________。 A 互不相关的 B 不可分解的 C 长度可变的 D 互相关联的 4 关系数据库规范化是为解决关系数据库中____________问题而引入的。 A 插入、删除和更新异常以及数据冗余 B 提高查询速度 C 减少数据操纵的复杂性 D 保证数据的安全性和完整性 5 规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及__________缺陷。 A 数据的不一致性 B 结构不合理 C 冗余度大 D 数据丢失 6 当关系模式R属于3NF,则下列说法中____________是正确的。 A 它一定消除了插入和删除异常 B 仍存在一定的插入和删除异常 C 一定属于BCNF D A和C都是 7 关系模型中的关系模式至少是______________。 A 1NF B 2NF C 3NF D BCNF 8 在关系数据库中,数据函数依赖范畴内关系模式的最高范式必定是_______________。 A 1NF B 2NF C 3NF D BCNF 9 在关系模式R中,若其函数依赖集中所有候选关键字都是决定因素,则R最高范式是 _____________________。 A 1NF B 2NF C 3NF D BCNF 10 当B属性函数依赖于A属性时,则属性A与B之间的联系类型为 ________________。 A 1:1 B 1:N C M:N D 以上都不是 11 在关系模式中,如果属性A和B存在1:1的联系,则说_____________。 A A→ B B B→A C A←→B D 以上都不是 12 候选关键字中的属性称为_______________。 A 非主属性 B 主属性 C 复合属性 D 关键属性 13 关系模式中各级模式之间的关系为______________________。 A 3NF?2NF?1NF B 3NF?1NF?2NF C 1NF?2NF?3NF D 2NF?1NF?3NF 14 关系模式中,满足2NF的模式,__________________。 A 可能是1NF B 必定是1NF C 必定是3NF D必定是BCNF 15 关系模式R中的属性全部是主属性,则R的最高范式必定是________________。 A 2NF B 3NF C BCNF D 4NF 16 消除了部分依赖的1NF的关系模式必定是_______________。 A 1NF B 2NF C 3NF D 4NF 17 关系模式的候选关键字可以有__________,主关键字有_____________。 A 0个 B 1个 C 1个或多个 D 多个 18 候选关键字中的属性可以有__________________。 A 0个 B 1个 C 1个或多个 D 多个 19 关系模式的分解_____________。

第6章关系数据库理论 1 . 理解并给出下列术语的定

第6章关系数据库理论 1 .理解并给出下列术语的定义: 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码. 1 NF 、2NF 、3NF 、BcNF 、多值依赖、4NF 。 答: 定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等, 则称X函数确定Y或Y函数依赖于X,记作X→Y。(即只要X上的属性值相等,Y上的值 一定相等。) 术语和记号: X→Y,但Y不是X的子集,则称X→Y是非平凡的函数依赖。若不特别声明,总是讨论非 平凡的函数依赖。 X→Y,但Y是X的子集,则称X→Y是平凡的函数依赖。 若X→Y,则X叫做决定因素(Determ。inant)。 若X→Y,Y→X,则记作X←→Y 若Y不函数依赖于X,则记作X Y。 定义2:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖 定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。 定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。 (即1NF消除了非主属性对码的部分函数依赖则成为2NF)。 定义5:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的 子集)使得X→Y,Y X,Y→Z成立,则称R∈3NF。 定义6:关系模式R∈1NF 。若X.Y 且Y 不是X 的子集时,X 必含有码,则 R∈BCNF。 定义7:关系模式R∈1NF,如果对于R的每个非平凡多值依赖X..Y(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R∈4NF。 2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会 有一个入会年份。

数据库第六章关系数据理论习题讲解

第六章关系数据理论 (我们数据库老师给的资料,蛮有用的,分享下) 一、求最小依赖集 例:设有依赖集:F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG},计算与其等价的最小依赖集。 解: 1、将依赖右边属性单一化,结果为: F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→A,CE→G } 2、在F1中去掉依赖左部多余的属性。对于CE→A,由于C→A成立,故E就是多余的;对于ACD →B,由于(CD)+=ABCEDG,故A就是多余的。删除依赖左部多余的依赖后: F2={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→G } 3、在F2中去掉多余的依赖。对于CG→B,由于(CG)+=ABCEDG,故CG→B就是多余的。删除依赖左部多余的依赖后: F3={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G } CG→B与CD→B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。 二、求闭包 例:关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+。解:令X={AE},X(0)=AE; 计算X(1);逐一扫描F集合中各个函数依赖,在F中找出左边就是AE子集的函数依赖,其结果就是:A→D,E→C。于就是X(1)=AE∪DC=ACDE; 因为X(0)≠X(1),且X(1)≠U,所以在F中找出左边就是ACDE子集的函数依赖,其结果就是:CD→I。于就是X(2)=ACDE∪I=ACDEI。 虽然X(2)≠X(1),但在F中未用过的函数依赖的左边属性已没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。 三、求候选键 例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。 解:首先求属性的闭包: (A)+=AB, (B)+ =B, (C)+ =CD, (D)+ =D (AB)+ =AB,(AC)+=ABCD=U,(AD)+ =ABD,(BC)+ =BCD,(BD)+ =BD,(CD)+ =CD (ABD)+ =ABD,(BCD)+ =BCD, 因(AC)+=ABCD=U,且(A)+=AB,(C)+ =CD,由闭包的定义,AC→A,AC→B,AC→B,AC→D,由合并规则得AC→ABCD=U; 由候选码的定义可得AC为候选码。

相关主题
文本预览
相关文档 最新文档