当前位置:文档之家› 数据库范式与关系模式规范标准示范

数据库范式与关系模式规范标准示范

数据库范式与关系模式规范标准示范
数据库范式与关系模式规范标准示范

第七章补充讲义一、范式举例

例1:已知R,请问R为几范式?

BCNF。(25改成15还是BCNF.如:课程号与学号)

例2:已知R,请问R为几范式?

2NF。有部分依赖。

例3:已知R,请问R为几范式?

BCNF。

例4:R(X,Y,Z),F={XY->Z},R为几范式?

BCNF。

例5:R(X,Y,Z),F={Y->Z,XZ->Y},R为几范式?

3NF。R的候选码为{XZ,XY},(R中所有属性都是主属性,无传递依赖)

二、求闭包

数据库设计人员在对实际应用问题调查中,得到的结论往往是零散的、不规范的(直观问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距,为此,从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的

规范化程度。

例1.已知关系模式R(U、F),其中,U={A,B,C,D,E}; F={AB→ C, B→ D, EC → B , AC→B} ,求(AB)+F.

解:设X(0)=AB

○1计算X(1),在F中找出左边为AB子集的FD,其结果是:AB→C,B→D

∴X(1)=X(0)UB=ABUCD=ABCD 显然,X(1)≠X(0)

○2计算X(2),在F中找出左边为ABCD子集的FD,其结果是:C→E,AC→B

∴X(2)=X(1)UB=ABCDUBE=ABCDE 显然,X(2)=U

所以,(AB)+ F=ABCDE.(等于U,所以AB是唯一候选关键字)

例2.设有关系模式R(U、F),其中U={A,B,C,D,E,I};F={A→D,AB→E,B→E,CD→I,E→C},计算(AE)+

解:令X={AE},X(0)=AE

○1在F中找出左边是AE子集的FD,其结果是:A→D,E→C

∴X(1)=X(0)UB=X(0)UDC=ACDE 显然,X(1)≠X(0)

○2在F中找出左边是ACDE子集的FD,其结果是:CD→I

∴X(2)=X(1)UI=ACDEI

显然,X(2)≠X(1),但F中未用过的函数依赖的左边属性已含有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI.

因为,X(3)=X(2),所以,算法结束。

三、求最小依赖集

最小依赖集是对函数依赖集合进行规范的结果,这样才能对一般关系模式进行准确分析。

例1.设函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},求与F等价的最小函数依赖集。

解:○1将F中依赖右部属性单一化:

F1= AB C AB→E

HB→P A→C

D→H GP→B

D→G EP→A

ABC→P CDE→P

ABC→G

○2由于有A→C,所以AB→C为多余成份:

所以F2= AB→E HB→P

A→C D→H

GP→B D→G

EP→A ABC→P

CDE→P ABC→G

○3经过分析认为F2中无多余依赖,则:

Fmin=F2为最小函数依赖集。即Fmin={ AB→E ,HB→P, A→C ,D→H, GP→B ,D→G, EP→A , ABC→P,CDE→P,ABC→G}.

例2.已知F={A→B,B→A,B→C,A→C,C→A},求Fmin.

解:○1F1= A→B A→C

B A B→C

A

○2Fmin1= A→B A→C

B→A C→A

Fmin2= A→B C→A

B→C

例3.已知F={A→C,C→A,B→AC,D→AC},求Fmin。

解:○1将F中依赖的右部属性单一化:

F1= A→C C→A

B→A B→C

D→A D→C

○2由于B→A,A→C,所以B→C是多余成份。

又由于D→A,A→C,所以D→C是多余成份。

所以F2= A→C C→A

B→A D→A

因为F2中所有依赖的左部都是单属性,所以不存在依赖左部的有多余属性。

所以Fmin=A→C C→A

B→A D→A

即Fmin={A→C,C→A,B→A ,D→A}.

例4.设有关系模式R(U,F),其中:U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E},求F

的最小依赖集。

解:○1将F中依赖右部属性单一化:

F1= E→G H

G→E H

F→E FH

F→G

○2由于有F→E,FH→E为多余成份:(不是因为有H→E,而是,F后面加一个H和不加一样)所以F2= E→G H→E

G→E H→G

F→E F→G

○3由于F2中,F→E和F→G以及H→E和H→G之一为多余,则:

Fmin1={E→G,G→E,F→G,H→G}

Fmin2={E→G,G→E,F→E,H→E} Fmin3,Fmin4同理。

四、求候选码

1. 候选关键字求解理论

对于给定的关系R(A1,A2,…,An)和函数依赖集F,可将其属性分为四类:

●L类:仅出现在F的函数依赖左部的属性

●R类:仅出现在F的函数依赖右部的属性

●N类:在F的函数依赖左右两边均未出现的属性

●LR类:在F的函数依赖左右两边均出现的属性

定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选关键字成员。

推论1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X包含了R 的全部属性,则X必为R的唯一候选关键字。

定理2:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选关键字中。

定理3:设有关系模式R及其函数依赖集F,若X是R的N类属性,则X必包含在R的任一候选关键字中。

推论2:对于给定的关系模式R及其函数依赖集F,若X是R的N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的唯一候选关键字。

2. 单属性依赖集图论求解法(多属性不行)

I:关系模式R,R的单属性函数依赖集F。

O:R的所有候选关键字。

算法:

○1求F的最小依赖集Fmin。

○2构造FDG(函数依赖图)。

○3从图中找出关键属性集X(X可为空)。

○4查看G中有无独立回路,若无则输出X即为R的唯一候选关键字,转○6,若有,则转○5。○5从各独立回路中各取一结点对应的属性与X组合成一候选关键字,并重复这一过程取尽所有可解的组合,即为R的全部候选关键字。

○6结束。

3.多属性依赖集候选关键字求解法

I:关系模式R及其函数依赖集F。

O:R的所有候选关键字。

算法:

○1将R的所有属性分为L,R,N和LR四类,并令X代表L,N两类,Y代表LR类。

○2求X+,若X包含了R的全部属性,则X即为R的唯一候选关键字,转○5,否则,转○3。○3在Y中取一属性A,求(XA)+.若它包含了R的全部属性,则转○4,否则,调换一属性反

复进行这一过程,直到试完所有Y 中的属性。

○4若已找出所有候选关键字,则转○

5,否则在Y 中依次取2个,3个…,求它们的属性闭包,直到其闭包包含R 的全部属性。 ○5停止,输出结果。

例1.设R =(O,B,I,S,Q,D),F={S →D,D →S,I →B,B →I,B →O,O →B},求R 的所有候选关键字。 解:○1Fmin ={ S →D,D →S,I →B,B →I,B →O,O →B}. ○2构造FDG.

○3关键属性集{Q}. (原始点和孤立点统称关键点。) ○4有两个独立回路,SDS,IBOBI.

所以 R 的所有候选关键字为:QSI,QSB, QSO,QDI,QDB,QDO.

例2. 设R={X,Y,Z},F={X →Y,Y →X},求R 的所有候选关键字。 解:○1Fmin={X →Y,Y →X}。 ○2构造FDG

3关键属性{Z}. ○

4有1个独立回路, 1).候选关键字个数=各独立回路中结点个数乘积=2 (1个回路,2个结点)。 2).候选关键字所含属性个数=关键属性个数+独立回路个数=1+1=2。 所以R 的所有候选关键字为:

ZX,ZY.

例3.设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选关键字。

解:经考虑F发现,A,C两属性是L类属性,由定理知,AC必是R的一候选关键字字成员。

又因(AC)+=ABCD,所以AC是R的唯一候选关键字。

例4.设有关系模式R(A,B,C,D,E,P),F={A→D,E→D,D→B,BC→D,DC→A},求R的所有候选关键字。

解:经考察发现,C,E两属性是L类属性,故C,E必在R的任何候选关键字中,又P 是N类属性,故P也必在R的任何候选关键字中。

又因(CEP)+=ABCDEP 所以CEP是R的唯一候选关键字。

五、模式分解

对存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。在分解处理中会涉及一些新问题,为使分解后的模式保持原模式所满足的特性,要求分解处理具有无损联接性和保持函数依赖性。即分解后的关系模式子集,应能通过自然连接运算恢复原状。1、关系模式规范化时一般应遵循以下原则:

(1)关系模式进行无损连接分解。关系模式分解过程中数据不能丢失或增加,必须把全局关系模式中的所有数据无损地分解到各个子关系

模式中,以保证数据的完整性。

(2)保持原来模型的函数依赖关系。因为这些函数依赖关系是数据模型反映的客观事物的固有属性,一般是不能舍弃的。

(3)合理选择规范化程度。考虑到存取效率,低级模式造成的冗余度很大,既浪费了存储空间,又影响了数据的一致性,因此希望一个子

模式的属性越少越好,即取高级范式;若考虑到查询效率,低级范

式又比高级范式好,此时连接运算的代价较小,这是一对矛盾,所

以应根据情况,合理选择规范化程度。

2、对模式分解的两个基本要求:

模式分解可以提高关系模式的规范化程度,但是必须考虑如下问题:

○1避免信息丢失:简单的说,就是模式R分解为R1,R2,…,Rn后,将R1,R2,…Rn自然连接还应该等于模式R。这就是“无损失联接”准则。

○2避免数据关系丢失:简单地说,就是模式R分解为R1,R2,…,Rn后,函

数依赖集合F也被对应分解为F1,F2,…,Fn,应满足F与各Fi(i=1,2,…n)的并集等价,即满足F+=(UFi )+ 。这就是“保持函数依赖”准则。

关系模式的规范化过程是通过对关系模式的分解来实现的,但是把低一级的关系模式分解为若干个高一级关系模式的方法并不是唯一的。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才有意义。

3、关系模式分解的三个定义:

(1)分解具有“无损联接性”。

(2)分解要“保持函数依赖”。

(3)分解既要“保持函数依赖性”,又要具有“无损连接性”。

规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:

●若要求分解具有无损联接性,那么模式分解一定能够达到4NF。

●若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能达到BCNF。

●若要求分解具有无损联接性又保持函数依赖,则模式分解一定能够达到3NF,但不一定能达到BCNF。

我们希望最好能够既要“保持函数依赖”,又要具有“无损联接性”,从上面结论可以看到只能达到3NF,至于能否达到BCNF或更高,要看具体情况。这就是在数据库设计中一般采用“基于3NF的数据设计方法”的根本原因。

4、模式设计方法的原则:

关系模式R相对于函数依赖集F分解成ρ={R1,R2,…Rk},应具有以下特性:

(1) ρ中每个关系模式Ri上应有某种范式性质(3NF或BCNF)

(2) 无损联接

(3) 保持函数依赖集

(4) 最小性(ρ中模式个数应最少和模式中属性总数应最少)

一个好的设计方法应符合下列3个原则:表达性,分离性,最小冗余性。

5、模式分解的算法:

算法一:把关系模式无损分解成BCNF

输入:关系模式R和函数依赖集F

输出:R的一个无损分解ρ={R1,R2,…,Rk}

方法:设关系模式R(U,F)

(1)置初值:ρ={R}。

(2)对于关系模式R的分解ρ(初始时ρ={R}),如果ρ中有一个关系模式Ri相对于∏Ri(F)不是BCNF。由定义可知,Ri中存在一个非平凡FD X→Y,有X不包含码。此时把R i分解成XY和Ri-Y两个模式。重复上述过程,一直到ρ中每一个模式都是BCNF。

(3) 算法结束,ρ就是分解结果。

例1:R(U,F),U=ABCDE F={AB→C,B→D,D→E},码是AB。

分解过程如下:

(1)先分出DE,ρ={R1(ABCD),R2(DE)}

(2)再从R1中分出BD,ρ={R1(ABC),R2(DE),R3(BD)}

(3)R1,R2,R3都属于BCNF,分解完成。

例2:设有关系模式R(U,F),其中:

U={C,T,H,R,S,G} F={CS→G,C→T,TH→R,HR→C,HS→R}

将其无损联接地分解为BCNF。

解:R上只有一个侯选键HS。

(1)令ρ={CTHRSG}。

(2)ρ中的模式不是BCNF。

(3)考虑CS→G,这个函数依赖不满足BCNF条件(CS不包含侯选键HS),将CTHRSG分解为CSG和CTHRS。计算∏CSG(F)和∏CTHRS(F),前者的最小覆盖是:CS→G;后者的最小覆盖是:C→T,HR→C,TH→R,HS→R。模式CTHRS的侯选关键字是HS。

CSG已是BCNF,进一步分解CTHRS。选择C→T,把CTHRS分解成CT 和CHRS,计算∏CT(F)和∏CHRS(F),前者的最小覆盖是:C→T;后者的最小覆盖是:HC→R,HS→R,HR→C。模式CHRS的侯选关键字是HS。

CT已是BCNF,再分解CHRS。选择HC→R,把CHRS分解成CHR和CHS,计算∏CHR(F)和∏CHS(F),前者的最小覆盖是:CH→R,HR→C;后者的最小覆盖是:HS→C。这时CHR和CHS均为BCNF。

(4)ρ={CSG,CT,CHR,CHS}。(HS→R,HS→HR HR→C =>HS→C)

算法二:把一个关系模式分解为3NF,使它具有依赖保持性。

输入:关系模式R和R的最小依赖集Fmin。

输出:R的一个分解ρ={R1,R2,…Rk},Ri为3NF(i=1,…,k),ρ具有

依赖保持性。

达到3NF保持函数依赖分解的方法:

设关系模式R(U,F):

(1)将F化为最小函数依赖集,令F=Fmin。

(2)把在F中不出现的属性从U中去掉,属性集合仍然为U。

(3)对照F中的函数依赖集,将所有函数依赖左端相同的划为一组,相应的右端以及函数依赖均归入该组。

(4)这些分组就是分解后的模式组成。

(5)这种分解方法得到的就是达到3NF且保持函数依赖的分解。

例1:F={B—>G,CE→B,C→A,CE→G,B→D,C→D},码是CE,分解成三个模式。

R1:U1=BDG,F1={B→G,B→D}

R2:U2=ACD,F2={C→A,C→D}

R3:U3=BCEG,F3={CE→B,CE→G}

分解后,R1,R2,R3均达到3NF,且分解符合保持函数依赖的规则。

例2: 设有关系模式R(U,F),其中:U={C,T,H,R,S,G} F={CS→G,C→T,TH→R,HR→C,HS→R},将其保持依赖性分解为3NF。

解:(1)求出F的最小依赖集,Fmin={CS→G,C→T,TH→R,HR→C,HS→R}。

(2)无。

(3)R1:U1=CSG,F1={CS→G}

U2=CT,F2={C→T}

U3=THR,F3={TH→R}

U4=HRC,F4={HR→C}

U5=HSR,F5={HS→R}

(4) ρ={CSG,CT,THR,HRC,HSR}

算法三:把一个关系模式分解为3NF,使它既具有无损联接性又具有依赖保持性。

设关系模式R(U,F):

①对于关系模式R和R上成立的FD集F,先求出F的最小依赖集,然

后再把最小依赖集中那些左部相同的FD用合并性合并起来。

②对最小依赖集中,每个FD X Y去构成一个模式XY。

③在构成的模式集中,如果每个模式都不包含R的候选键,那么把候选

键作为一个模式放入模式集中。

这样得到的模式集是关系模式R的一个分解,并且这个分界既是无损分解,又能保持FD。

检验无损联接性的方法:

输入:关系模式R(A1,A2,…,An),它的函数依赖集F以及分解ρ={R1,R2,…,Rk}。

输出:确定ρ是否具有无损联接性。

设关系模式R(U,F):

(1)构造一个k行n列的表,若i行对应于关系模式Ri,第j列对应于属性Aj。如果Aj∈Ri,则在第i行第j列上放符号aj,否则放符号bij。(2)逐个检查F中的每一个函数依赖,并修改表中的元素。其方法如下:取F 中一个函数依赖X—>Y,在X的分量中寻找相同的行,然后将这些行中

Y的分量改为相同的符号,如果其中有aj,则将bij改为aj;若其中无aj,则改为bij。

这样反复进行,如果发现某一行变成了a1,a2,…,ak,则分解ρ具有无损联接性;如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样的行,则分解ρ不具有无损联接性。

例1:对于上例的关系模式R(U,F),将其无损联接性和依赖保持性分解为3NF。

解:依据算法:

(1)由上例求出依赖保持性分解为:ρ={CSG,CT,THR,HRC,HSR} (2)判断其无损联接性如下图所示:

(在已知F={CS→G,C→T,TH→R,HR→C,HS→R}

①看CS上相同的,再改G的成分——没有

看C上相同的,再改T的成分——2个a2①

看TH上相同的,再改R的成分——没有

看HR上相同的,再改C的成分——2个a1①

看HS上相同的,再改R的成分——没有

②再看CS上相同的,再改G的成分——有一个a6②

看C上相同的,再改T的成分——有一个a2②,其它未发生变化,略)

关系数据库理论

第4部分关系数据库理论 复习习题与讲解资料 【主讲教师:钱哨】 一.考试大纲考点要求 1 了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 3 掌握第一范式( 1NF )、第二范式( 2NF )和第三范式( 3NF )的定义,能判别关系模式的范式等级。 4 掌握关系模式的分解(规范到 3NF )的步骤、分解的原则和分解的方法。 二.单项选择题 1. 为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是()。 A. 关系规范化理论 B. 关系代数理论 C.数理逻辑 D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是()。 A. 长度不变的 B. 不可分解的 C.互相关联的 D. 互不相关的 3. 已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→ A },该关系模式的候选关键字是()。 A.AB B. BE C.CD D. DE

4. 设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主键为SNO和CNO,其满足()。 A. 1NF B.2NF C. 3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A. (S,C) B. (T,R) C. (T,P) D. (T,S) 6. 关系模式中,满足2NF的模式()。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7. 关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 9. 如果A->B ,那么属性A和属性B的联系是()。 A. 一对多 B. 多对一 C.多对多 D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 11. 候选关键字的属性可以有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 12. 关系模式的任何属性()。 A. 不可再分 B. 可以再分 C. 命名在关系模式上可以不唯一 D. 以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最

数据库三大范式讲解

数据库三大范式说明 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 实质上,设计范式用很形象、很简洁的话语就能说清楚,道明白。本节课将对范式进行通俗地说明,以一个简单论坛的数据库为例来讲解怎样将这些范式应用于实际项目中。 范式说明: 第一范式(1NF): 数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。 第二范式(2NF): 数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖

于任意一组候选关键字。 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系: (学号, 课程名称) →(姓名, 年龄, 成绩, 学分) 这个数据库表不满足第二范式,因为存在如下决定关系: (课程名称) →(学分) (学号) →(姓名, 年龄) 即存在组合关键字中的字段决定非关键字的情况。 由于不符合2NF,这个选课关系表会存在如下问题: (1) 数据冗余: 同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。 (2) 更新异常: 若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。 (3) 插入异常: 假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。 (4) 删除异常: 假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。 把选课关系表SelectCourse改为如下三个表: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分); 选课关系:SelectCourse(学号, 课程名称, 成绩)。 这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。 另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。

数据库系统原理及应用教程第四版课后答案

第一章 1、(1)数据:数据用于载荷信息的物理符号。 (2)数据的特征;○1数据有“型”与“值”之分;○2数据受数据类型与取值范围的约束;○3数据有定性表示与定量之分;○4数据应具有载体与多种表现形式。 3、(1)数据管理的功能: ○1组织与保存数据功能,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期的被保存; ○2数据维护功能,即根据需要随时进行插入新数据,修改原数据与删除失效数据的操作; ○3数据查询与数据统计功能,即快速的得到需要的正确数据,满足各种使用要求;○4数据的安全与完整性控制功能,即能保护数据的安全与完整性。 (2)数据管理的目标:收集完整的信息,将信息用数据表示,按数据结构合理科学的组织并保存数据;为各种使用快速地提供需要的数据,并保护数据的安全与完整性。 4、(1)数据库:就是数据管理的新方法与技术,她就是一个按数据结构来存储与管理数据的计算机软件系统。 (2)数据库中的数据具有的特点:○1数据库中的数据具有整体性,即数据库中的数据要保持自身完整的数据结构;○2数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。 5、(1)数据库管理系统:它就是专门用于管理数据库的计算机管理软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询与统计等操作功能,并完成对数据完整性、安全性进行操作的功能。 (2)数据库管理系统主要功能:就是数据存储、数据操作与数据控制功能。其数据存储与数据操作就是:数据库的定义功能,指未说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指大批数据录入到数据库的操作,它使得库中含有需要保护的数据记录;数据库维护功能,指对数据的插入、删除与修改操纵,其操作做能满足库中信息变化或更新的需求;数据库查询与统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据库泄露与破坏,也就就是避免数据被人偷瞧、篡改或破坏;数据库完整性控制功能,指为了保证数据库中的数据的正确、有效与相容,防止不合语意的错误数据被输入或输出。 14、(1)数据库系统的软件由几部分组成?数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件与用户数据库。 (2)作用:①操作系统或汉字操作系统:操作系统就是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法与汉字信息的处理方法。②数据库管理系统与主语言系统:数据库管理系统就是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统就是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。③应用开发工具软件:应用开发工具就是DBMS系统为应用开发人员与最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询与视图设计器等,它们为数据库系统的开发与使用提供了良好的环境与帮助。④应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们就是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理与处理操作。(3)关系:

专科《数据库原理与应用》_试卷_答案

专科《数据库原理与应用》 一、(共66题,共150分) 1. 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中在( ),程序员可能需要设计数据在内存中的物理地址。(2分) A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 .标准答案:C 2. 在关系模式中,如果属性A和B存在1对1的联系,则存在( ) 依赖关系。(2分) A. B. C. D.以上都不是 .标准答案:C 3. 关系模型支持( ) 的数据结构。(2分) A.线性结构 B.树结构 C.图结构 D.集合结构 .标准答案:D 4. 在数据库三级模式结构中,内模式是( ) 的视图。(2分) A.计算机世界 B.信息世界 C.现实世界终端用户 D.数据库管理员 .标准答案:A 5. 关系模型的参照完整性要求( ) 。(2分) A.一个关系必须有外码 B.外码必须是父关系的主属性 C.外码所在的关系即子关系必须和父关系是不同关系 D.外码或为空或为父关系对应主码的值 .标准答案:B 6. SQL语言中的DELETE命令属于( ) 。(2分) A.数据定义语言 B.数据操作语言 C.数据控制语言 D.数据查询语言 .标准答案:B 7. ( ) 是数据库系统概论的直接先导课程之一。(2分) A.大学物理 B.汇编语言 C.数据结构 D.模拟电路 .标准答案:C 8. 数据库管理系统简称DBMS,下列系统软件中,( ) 是具有DBMS功能的软件。(2分) A.Microsoft Office Word B.Microsoft Office PowerPoint C.Microsoft Office Outlook D.Microsoft Office Access .标准答案:D 9. SQL语言的数据查询语言SELECT命令语法接近自然语言,下列子句中( ) 是SELECT命令语法规定必须有的部分。(2分) A.FROM子句 B.GROUP BY子句 C.ORDER BY子句 D.INTO子句 .标准答案:A 10. 下面术语中( ) 是数据库系统原理与应用课程的关键词。(2分) A.数据模型 B.编程语言 C.软件体系结构 D.数据转换 .标准答案:A 11. 因为关系数据库的查询优化技术,用户程序员不用了解数据库中数据的物理存储结构,也能编写高效率的程序。(2分) ( ) .标准答案:正确 12. 关系操作中的投影运算必须有两个关系同时参与运算才能得到正确的结果。(2分) ( ) .标准答案:错误 13. DBTG中的系是一棵二级树,表示的是系主记录型(Owner)和成员记录型(member)之间一对多的关系,但两个记录之间可以定义多个系。(2分) ( ) .标准答案:正确 14. DBMS作为一种大型的系统软件,可以通过相关技术绕过操作系统,直接管理存储在硬盘上的数据。(2分) ( ) .标准答案:错误 15. 数据模型的是三要素指,数据结构、数据操作和完整性约束条件。其中数据结构是描述系统的静态特性的,数据操作是描述系统动态特性的。(2分) ( ) .标准答案:正确 16. 在数据库中,数据独立性是指数据之间相互独立,互不依赖。(2分) ( ) .标准答案:错误 17. SQL语言的视图对应三级模式的外模式,表对应模式,所以用户程序只能使用视图而不能直接使用表来查询和操作数据库中的数据。(2分) ( )

关系数据库设计

目录 一 Codd的RDBMS12法则——RDBMS的起源 二关系型数据库设计阶段 三设计原则 四命名规则 数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。 从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA)。根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,如果追其原因,笔者个人猜测是因为数据库的规范化,与OO的部分思想雷同(如内聚)。而DBA,设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定。如标题所示,本文旨在分享一名开发者的数据库设计经验,并不涉及复杂的SQL语句或DBMS使用,因此也不会局限到某种DBMS产品上。真切地希望这篇文章对开发者能有所帮助,也希望读者能帮助笔者查漏补缺。 一?Codd的RDBMS12法则——RDBMS的起源 Edgar Frank Codd(埃德加·弗兰克·科德)被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。在1985年,Codd 博士发布了12条规则,这些规则简明的定义出一个关系型数据库的理念,它们被作为所有关系数据库系统的设计指导性方针。 1.信息法则?关系数据库中的所有信息都用唯一的一种方式表示——表中的值。 2.保证访问法则?依靠表名、主键值和列名的组合,保证能访问每个数据项。 3.空值的系统化处理?支持空值(NULL),以系统化的方式处理空值,空值不依赖于数据类型。 4.基于关系模型的动态联机目录?数据库的描述应该是自描述的,在逻辑级别上和普通数据采用同样 的表示方式,即数据库必须含有描述该数据库结构的系统表或者数据库描述信息应该包含在用 户可以访问的表中。 5.统一的数据子语言法则?一个关系数据库系统可以支持几种语言和多种终端使用方式,但必须至少 有一种语言,它的语句能够一某种定义良好的语法表示为字符串,并能全面地支持以下所有规 则:数据定义、视图定义、数据操作、约束、授权以及事务。(这种语言就是SQL) 6.视图更新法则?所有理论上可以更新的视图也可以由系统更新。 7.高级的插入、更新和删除操作?把一个基础关系或派生关系作为单个操作对象处理的能力不仅适应 于数据的检索,还适用于数据的插入、修改个删除,即在插入、修改和删除操作中数据行被视 作集合。 8.数据的物理独立性?不管数据库的数据在存储表示或访问方式上怎么变化,应用程序和终端活动都 保持着逻辑上的不变性。 9.数据的逻辑独立性?当对表做了理论上不会损害信息的改变时,应用程序和终端活动都会保持逻辑 上的不变性。 10.数据完整性的独立性?专用于某个关系型数据库的完整性约束必须可以用关系数据库子语言定 义,而且可以存储在数据目录中,而非程序中。

数据库范式

范式 就关系数据库而言,一贯认为:从其他元素中消除数据冗余问题,去除重复往往以减少冗余, 从特定的表中最小化冗余意味着摆脱不必要的数据。 商业上来讲,主要目标是通常保存空间和组织的数据可用性和可管理性,而不牺牲性能。此外,要求强烈繁忙的应用程序和最终用户的需要往往需要以多种方式打破规则的范式,以满足性能要求。第三范式以外的范式常常被忽视和有时甚至是第三范式本身就是多余的。 范式是一个升级的过程,每个上层的模式都是建立在下一级范式之上的。 消除数据冗余的影响如下: ?物理空间需要存储的数据减少。 ?数据变得更有组织。 ?范式化允许修改少量的数据(即单记录)。换言之,一个表的具体字段记录更新时,会影响其他引用他的表。 首先我们对一些概念性的东西来进行一个总结,通过对这些概念的理解,从来从根本上做到合理的数据库设计: 异常 ●添加异常:当我们添加一条记录的时候,他依赖的主表记录还没有记录,而该记录 已经插入成功。 ●删除异常:当我们的主表记录删除,而依赖他的子表没有清空对应的记录。 ●更新异常:当我们的主表记录有更新草组,而已来他的子表没有相应的更新记录。依赖,决定因子 ●函数依赖:当Y的值由X决定的时候,我们就说Y函数依赖于X,这就类似于一个 线性方程:Y=X+1;类似的ERD图中,我们这样表示,很清楚的看 到表Category,中的主键是CategoryID,他决定着其他字段的值Name和Pic, 我们就说Name或者Pic 函数依赖于CategoryID,他们之间就是一个函数依赖关 系。 ●决定因素:如上例中,CategoryID就是一个决定因素,他决定其他字段的值,Y=X +1中,X就决定着Y的值,虽然加了一个常量。

(完整word版)数据库系统原理及应用教程第四版课后答案

第一章 1、(1)数据:数据用于载荷信息的物理符号。 (2)数据的特征;○1数据有“型”和“值”之分;○2数据受数据类型和取值范围的约束;○3数据有定性表示和定量之分;○4数据应具有载体和多种表现形式。 3、(1)数据管理的功能:○1组织和保存数据功能,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期的被保存;○2数据维护功能,即根据需要随时进行插入新数据,修改原数据和删除失效数据的操作;○3数据查询和数据统计功能,即快速的得到需要的正确数据,满足各种使用要求;○4数据的安全和完整性控制功能,即能保护数据的安全和完整性。 (2)数据管理的目标:收集完整的信息,将信息用数据表示,按数据结构合理科学的组织并保存数据;为各种使用快速地提供需要的数据,并保护数据的安全和完整性。 4、(1)数据库:是数据管理的新方法和技术,他是一个按数据结构来存储和管理数据的计算机软件系统。 (2)数据库中的数据具有的特点:○1数据库中的数据具有整体性,即数据库中的数据要保持自身完整的数据结构;○2数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。 5、(1)数据库管理系统:它是专门用于管理数据库的计算机管理软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行操作的功能。 (2)数据库管理系统主要功能:是数据存储、数据操作和数据控制功能。其数据存储和数据操作是:数据库的定义功能,指未说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指大批数据录入到数据库的操作,它使得库中含有需要保护的数据记录;数据库维护功能,指对数据的插入、删除和修改操纵,其操作做能满足库中信息变化或更新的需求;数据库查询和统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据库泄露和破坏,也就是避免数据被人偷看、篡改或破坏;数据库完整性控制功能,指为了保证数据库中的数据的正确、有效和相容,防止不合语意的错误数据被输入或输出。 14、(1)数据库系统的软件由几部分组成?数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和用户数据库。 (2)作用:①操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。②数据库管理系统和主语言系统:数据库管理系统是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。③应用开发工具软件:应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。④应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。(3)关系:

《数据库系统原理及应用》习题集及参考答案要点

《数据库系统原理及应用》习题集及参考答案 一、简答题 1、什么是数据库管理系统? 一种负责数据库的建立、操作、管理和维护的软件系统。 2、数据库系统有哪几种模式?分别用来描述什么? (1)外模式 是用户的数据视图,用来描述数据的局部逻辑结构,是模式的子集。 (2)模式 是所有用户的公共数据视图,用来描述数据库中全体数据的全局逻辑结构和特征。(3)内模式 又称存储模式,描述数据的物理结构及存储方式 3、什么是事务?事务有哪些特征? 答:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 事务的特征:原子性、一致性、隔离性、持续性。 4、POWER BUILDER中事务对象有何作用? 答:PowerBuider的事务对象是应用程序与数据库之间进行通信的桥梁,在应用程序初启时,系统自动创一个为SQLCA(SQL Communication Area, SQL通讯区)的全局事务对象,该对象在应用程序的任何地方都可以访问 应用程序与数据库的所有通信都需要通过事务对象来完成,除了直接使用系统的缺省事务对SQLCA外,开发人员也可以创建自己的事务对象。 5、SQL SERVER中INSERTED表和DELETED表有何用? 答:触发器中用到两种特殊的表:删除表和插入表触发器中使用名为“deleted"和“inserted"来参照这些表;删除表存储受DELTE和UPDATE语句影响的行的副本当执行DELETE或UPDA TE语句时,行从触发器表中删除并传递到删除表中。删除表和触发器表通常没有共有的行。 插入表存储受INSERT和UPDA TE语句影响的行的副本当执行一NSERT或UPDA T语句时,新行同时增加到插入表和触发器表中。插入表中的行是触发器表中新行的副本可使用删除表和插入表中的行来参照相关表中的行, 或测试被删除或插入行中的值。 6、数据库系统由哪几部分构成? 答:数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 7、什么是候选码?什么是主码?主码只能有一个属性吗? 答:能唯一标识实体的属性或属性组称为超码,其任意真子集都不能成为超码的最小超码称为候选码;

关系数据库设计理论

第6章关系数据库设计理论 本章主要讲解在关系数据库的设计过程中,如何减少数据冗余,避免出现异常,该如何对数据库模式进行中心设计。 1.深入理解函数依赖和键码的概念。学会计算属性的封闭集。 2.模式设计是本章的重点。了解数据冗余和更新异常产生的根源;理解关系模式规范化的途径;准确理解第一范式、第二范式、第三范式和BC范式的含义、联系与区别; 深入理解模式分解的原则;熟练掌握模式分解的方法,能正确而熟练的将一个关系模式分解成属于第三范式或BC范式的模式。 3.了解多值依赖和第四范式的概念,掌握把关系模式分解成属于第四范式的模式的方法。 本章主要的知识点包括: 知识点1 函数依赖 知识点2 模式设计 知识点3 多值依赖 学习要点1、函数依赖 1.1函数依赖的定义 如果关系R的两个元组在属性A1,A2,… An上一致(也就是,两个元组在这些属性所对应的各个分量具有相同的值),则它们在另一个属性B上也一致。那么,我们就说在关系R中属性B函数依赖于属性A1A2…An。记做A1A2…An ,也可以说“A1,A2,…,An函数决定B”。A1A2…An称为决定因素。 举例: 在这个关系中,学号确定后,学生的姓名及所在的系就都确定了。属性中的这种依赖关系就是函数依赖。在本例中存在下列函数依赖。 ?Sno SN ame ?Sno S dept ?S dept Mname ?Sno C name Grade 1.2 关系的键码如一个或多个属性的集合{A1,…,An}满足如下条件,称该集合为关系R的键码: 1. 这些属性函数决定该关系的所有其它属性。 2. {A1,…,An}的任何真子集都不能函数决定R的所有其它属性,键码必须是最小的。 1.3 超键码包含键码的属性集称为“超键码” 。

数据库范式理解例题

范式分解 主属性:包含在任一候选关键字中的属性称主属性。 非主属性:不包含在主码中的属性称为非主属性。 函数依赖: 是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数 y = f(x) 一样,x的值给定后,y的值也就唯一地确定了。 如果属性集合Y中每个属性的值构成的集合唯一地决定了属性集合X中每个属性的值构成的集合,则属性集合X函数依赖于属性集合Y,计为:Y→X。属性集合Y中的属性有时也称作函数依赖Y→X的决定因素(determinant)。例:身份证号→姓名。部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 完全函数依赖: 在R(U)中,如果Y函数依赖于X,并且对于X的任何一个真子集X',都有Y不函数依赖于X',则称Y对X完全函数依赖。否则称Y对X部分函数依赖。

【例】; 举个例子就明白了。假设一个学生有几个属性 SNO 学号 SNAME 姓名 SDEPT系 SAGE 年龄 CNO 班级号 G 成绩 对于(SNO,SNAME,SDEPT,SAGE,CNO,G)来说,G完全依赖于(SNO, CNO), 因为(SNO,CNO)可以决定G,而SNO和CNO都不能单独决定G。 而SAGE部分函数依赖于(SNO,CNO),因为(SNO,CNO)可以决定SAGE,而单独的SNO也可以决定SAGE。 传递函数依赖: 设R(U)是属性集U上的关系,x、y、z是U的子集,在R(U)中,若x→y,但y→x,若y→z,则x→z,称z传递函数依赖于x,记作X→TZ。 如果X->Y, Y->Z, 则称Z对X传递函数依赖。 计算X+ (属性的闭包)算法: a.初始化,令X+ = X; b.在F中依次查找每个没有被标记的函数依赖,若“左边属性集”包含于X+ ,则令X+ = X+∪“右边属性集”, 并为访问过的函数依赖设置标记。

关系数据库理论

关系数据库理论

————————————————————————————————作者:————————————————————————————————日期:

第4部分关系数据库理论 复习习题与讲解资料 【主讲教师:钱哨】 一.考试大纲考点要求 1了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 3 掌握第一范式(1NF )、第二范式( 2NF )和第三范式(3NF )的定义,能判别关系模式的范式等级。 4 掌握关系模式的分解(规范到3NF )的步骤、分解的原则和分解的方法。 二.单项选择题 1.为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是( ) 。A. 关系规范化理论 B. 关系代数理论 C.数理逻辑D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是( ) 。 A. 长度不变的B. 不可分解的 C.互相关联的 D. 互不相关的 3.已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→A },该关系模式的候选关键字是( ) 。 A.AB B. BE C.CDD.DE

4.设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SA GE,SDPART,SCORE)的主键为SNO和CNO,其满足( )。 A.1NF B.2NF C.3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A.(S,C)B. (T,R) C.(T,P) D. (T,S) 6.关系模式中,满足2NF的模式( ) 。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7.关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A.1NF B.2NF C.3NF D. BCNF 9.如果A->B ,那么属性A和属性B的联系是( ) 。 A.一对多B. 多对一 C.多对多D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有( )。 A.多个B.0个 C.1个D.1个或多个 11.候选关键字的属性可以有()。 A. 多个B. 0个 C.1个D. 1个或多个 12. 关系模式的任何属性()。 A.不可再分 B. 可以再分C. 命名在关系模式上可以不唯一D.以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最高达到( )。 A.1NFB.2NF C.3NFD. BCNF

数据库-范式

1:Redundancy(冗余),可能带来的问题:冗余存储(redundant storage),插入/删除/更新异常(insert/delete/update anomalies) 冗余来源于完整性约束(Integrity constraints), 特别是函数依赖(functional dependencies) 2:函数依赖(functional dependency简写为FD)的定义:在一个关系模式R的所有关系实例中任取两个元组,如果他们的X属性的投影完全相同,则Y一定相同,则有X决定Y,或称Y依赖于X,用关系代数表示为: for every allowable instance r of R: 例:Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked),以下简写为Hourly_Emps(SNLRWH),的一个函数依赖为:S--> SNLRWH 3:关于函数依赖的三个定理及两个推论: Armstrong’s Axioms: 自反律: 如果Y X,则有X—>Y 增广律: 如果X→Y,则对于任意的Z有XZ→YZ 传递律: 如果X→Y and Y→Z,则X→Z 推论: 两个推论的证明: (1):Union:可以直接使用定义证明。设r是R的任意一个关系,s,t是r的任意两个元组,若s[X]=t[X],由X→Y可得s[Y]=t[Y],

由X→Z可得s[Z]=t[Z],则有s[YZ]=t[YZ],即当s[X]=t[X]时一定可以得到s[YZ]=t[YZ],则根据函数依赖的定义可以有X→YZ。 (2):Decomposition: Y?YZ,由自反律得YZ→Y,又X→YZ,由传递律得X→Y 同理可证X→Z。 4:函数依赖集的闭包: 5:属性闭包的定义: X的属性闭包记为+X,是一个属性集合,集合中的元素A要求 X→A 在函数依赖F的属性闭包中(求属性闭包要注意是在哪个函数依赖的基础上求的)。 6:计算属性闭包的算法: 为什么需要属性闭包:对于函数依赖闭包的求解是一个NP难度问题,经常不需要求一个函数依赖的属性闭包,而只需要判断一个函数依赖

第二章 关系数据库基本原理

第二章关系数据库基本原理 一、选择题 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.在关系模式中,实现“关系中不允许出现相同的元组”的约束是()约束。 A、候选键 B、主键 C、键 D、超键 7.约束“年龄限制在18~30岁之间”属于DBMS的()功能。 A、安全性 B、完整性 C、并发控制 D、恢复 8.反映现实世界中实体及实体间联系的信息模型是()。 A、关系模型 B、层次模型 C、网状模型 D、E-R模型 9.关系数据模型的3个组成部分中,不包括()。 A、完整性规则 B、数据结构 C、数据操作 D、并发控制 10.如何构造出一个合适的数据逻辑结构是()主要解决的问题。 A、关系数据库优化 B、数据字典 C、关系数据库规范化理论 D、关系数据库查询 11.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的 联系类型是()。 A、多对多 B、一对一 C、多对一 D、一对多 12.关系模式的任何属性()。 A、不可再分 B、可以再分 C、命名在关系模式上可以不唯一 D、以上都不是 13.一个m:n联系转换为一个关系模式。关系的关键字为()。 A、某个实体的关键字 B、各实体关键字的组合 C、n端实体的关键字 D、任意一个实体的关键字 14.候选关键字的属性可以有()。 A、多个 B、0个 C、1个 D、1个或多个 15.关系模型中有三类完整性约束:实体完整性、参照完整性和域完整性。定义外部关键字 实体的是哪一类完整性()? A、实体完整性 B、域完整性 C、参照完整性 D、实体完整性、参照完整性和域完整性 16.设已知F={C→A,CG→D,CG→B,CE→A,ACD→B},从中去掉哪些函数依赖关系后得到 的新的函数依赖集合F1与F是等价的()。

数据库范式练习题

1、请简述满足1NF、2NF和3NF的基本条件。并完成下题:某信息一览表如下, 第一范式的关系应满足的基本条件是元组中的每一个分量都必须是不可分割的数据项。 第二范式,指的是这种关系不仅满足第一范式,而且所有非主属性完全依赖于其主码。 第三范式,指的是这种关系不仅满足第二范式,而且它的任何一个非主属性都不传递依赖于任何主关键字。 考生情况(考生编号,姓名,性别,考生学校) 考场情况(考场号,考场地点) 考场分配(考生编号,考场号) 成绩(考生编号,考试成绩,学分) 2、某信息一览表如下,其是否满足3NF,若不满足请将其化为符合3NF的关系。 配件关系:(配件编号,配件名称,型号规格) 供应商关系(供应商名称,供应商地址) 配件库存关系(配件编号,供应商名称,单价,库存量) 3、简述满足1NF、2NF和3NF的基本条件。并完成下题:已知教学关系, 教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩),试问该关系的主键是什么,属于第几范式,为什么?如果它不属于3NF,请把它规范到3NF。 4、请确定下列关系的关键字、范式等级;若不属于3NF,则将其化为3NF 。 例1.仓库(仓库号,面积,电话号码,零件号,零件名称,规格,库存数量)例1答案: 仓库号+零件号;1NF; 仓库(仓库号,面积,电话号码)

零件(零件号,零件名称,规格) 保存(仓库号,零件号,库存数量) 例2. 报名(学员编号,学员姓名,培训编号,培训名称,培训费,报名日期),每项培训有多个学员报名,每位学员可参加多项培训。 例2答案: 学员编号+培训编号;1NF; 学员(学员编号,学员姓名) 培训(培训编号,培训名称,培训费) 报名(学员编号,培训编号,报名日期) 5、请确定下列关系的关键字、范式等级;若不属于3NF,则将其化为3NF,要求每个关系写一条记录。 (部门编号,部门名称,所在城市,员工编号,员工姓名,项目编号,项目名称,预算,职务,加入项目的日期) [注]职务指某员工在某项目中的职务。 部门(部门编号,部门名称,所在城市) 员工(员工编号,员工姓名,部门编号) 项目(项目编号,项目名称,预算) 工作(员工编号,项目编号,职务,加入项目的日期)

关于关系数据库模式分解与范式的总结

1.关系模式设计不规范会带来一系列的问题 数据冗余 更新异常 插入异常 删除异常 因此需要一个标准的模式来解决这些问题,引入模式分解来解决存在问题。 2.无损连接的概念比较好懂,就是要保证模式分解后仍然可以根据分解后的关系回退回分解前。这可以保证分解过程没有丢失信息,不会破坏和更改已经存在的。 而检验无损连接的方法分为两种: ①当R分解为两个关系模式R1和R2时,有一种简便的方法可以测试无损连接性 p={R1,R2} p是无损连接的分解当且仅当下面之一满足 (R1 ∩R2)→(R1-R2) (R1 ∩R2)→(R2-R1) 其中R1 ∩R2指模式的交,返回公共属性 R2-R1表示模式的差集,返回属于R2但不属于R1的属性集 也可以理解为R1∩R2的结果是R的超码,即该结果可以推出全部R属性。 ②当R分解为多个关系模式时,可以使用chase算法:

举个栗子 R(A,B,C,D,E) R1(A,D), R2(A,B), R3(B,E), R4(C,D,E), R5(A,E) F={A→C, B→C, C→D, DE→C, CE→A} 判断R分解为p={R1,R2,R3,R4,R5}是否是无损连接的分解?第一步,构造初始表。

第二步,处理表 A→C:将b23,b53改为b13 B→C:将b33改为b13 C→D:将b24,b34,b54改为a4 DE→C:将第3行和第5行的C改为a3 CE→A:将第3行和第4行的A改为a1 处理后BE行将全变为a,证明为无损连接。 3.函数依赖(FD)的表现形式是x→y,可以根据函数的概念理解,当x属性的值相同时,可以断定y也一定相同。在实际关系模式中,x与y会存在逻辑上的相关性,如一个学号会对应一个姓名。要理解函数依赖是关系模式的内涵,保持函数依赖才能保持关系模式中存在的关系。 举个栗子: R(city, street, zip), F={(city,street)→zip, zip→city} 分解为p={R1(street,zip),R2(city,zip)} 在R1中插入(’a’,’100081’)和(’a’,’100082’)

数据库三范式

数据库三范式 1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。 说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 1.2 第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖] 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。 第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。 1.3 第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖] 满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。 II、范式应用实例剖析 下面以一个学校的学生系统为例分析说明,这几个范式的应用。首先第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS 中设计出不符合第一范式的数据库都是不可能的。 首先我们确定一下要设计的内容包括那些。学号、学生姓名、年龄、性别、课程、

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