大学的注册办公室维护关于以下实体的数据:(a)课程,包括编号、名称、学分、课程提纲和选修条件;(b)课程提供,包括课程编号、年、学期、节数、教师(可能多个)、时间和教室;(c)学生,包括学生标识、名字和计划;(d)教师,包括标识号、名字、系和职称。此外,学生课程的登记和学生所选的每门课的成绩评定都要适当地建模。
请画出该系统的E-R图,将E-R图转化为关系模式并进行必要的模式合并
个
(courseofferings实体集,应用双矩形表示)
Student(sid, name, program)
Course(courseno, title, credits, syllabus)
Instructor(iid, name, dept, title)
Courseofferings(courseno, year, semester, secno, room, time)
Enrols(sid, courseno, year, semester, secno, grade)
Teaches(iid, courseno, year, semester, secno)
Requires(maincourse_courseno, prerequisite_courseno)
Compute the closure of the following set F of functional dependencies
for relation schema R = (A, B, C, D, E).
A→BC
CD→E
B→D
E→A
List the candidate keys for R.
Starting with A → BC, we can conclude: A → B and A → C.
Since A → B and B → D, A → D (decomposition, transitive)
Since A → CD and CD → E, A → E (union, decomposition, transitive)
Since A → A, we have (reflexive)
A → ABCDE from the above steps (union)
Since E → A, E → ABCDE (transitive)
Since CD → E, CD → ABCDE (transitive)
Since B → D and BC → CD, BC → ABCDE (augmentative, transitive).
Therefore, any functional dependency with A, E, BC, or CD on the left hand side of the arrow is in F+, no matter which other attributes appear in the FD.
Allow * to represent any set of attributes in R, then F+ is BD → B, BD → D,
C → C,
D → D, BD → BD, B → D, B → B, B → BD, and all FDs of
the form A?→ α, BC?→ α, CD?→ α, E?→ αwhere α is any subset of {A, B, C, D, E}. The candidate keys are A, BC, CD, and E.
a B+ = { BDACE}
b A->BCD, A->ABCD,BC->DE, ABCD->ABCDE
A->ABCDE
AF->ABCDEF
所以
c A->BCD中D无关属性BC->DE中C无关D无关
A->BC
B->D
B->E
D->A
A->BC
B->DE
D->A
D (ABC) (BDE)(DA)(AF)
E (ABCD)(AF)(AE)
正则覆盖定义和计算方法
?定义5.11正则覆盖(canonical cover)F c是一个依赖集,使得F逻
辑蕴涵F
c 中的所有依赖,F
c
逻辑蕴涵F中的所有依赖,而且必
须具有下列特性:
–F c中的任何函数依赖都不包含无关属性;
–F c中函数依赖的左半部都是唯一的,即F c中不存在
两个依赖α1→β1和α2→β2,且α1=α2。
?根据上述性质,计算F的正则覆盖F c分为两个步骤:
–合并函数依赖:将F中所有形如α1→β1、α1→β2的
函数依赖合并为α1→β1β2,得到新函数依赖集F'。
–去除无关属性:对F'中的每个函数依赖,依次判断
是否包含无关属性。若发现无关属性,则用去除
无关属性后的函数依赖代替F'中的原函数依赖。
?例:r(R)=r(A, B, C, D, G, H),F={AB→GH, CD→GH, D→B},r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。
–r(R)?BCNF,因为AB→GH的决定属性AB不是超码。r(R)可分解为:
?r1(R1)=r1(A, B, G, H),F1={AB→GH} ——AB
是候选码
?r2(R2)=r2(A, B, C, D),F2={D→B} ——
ACD是候选码
——丢失函数依赖CD→GH!
–r2(R2)?BCNF(D→B的决定属性D不是超码)。r2(R2)可分解为:
?r21(R21)=r21(D, B),F21={D→B} ——
D是候选码
?r22(R22)=r22(A, C, D) ,F22={?} ——
ACD是候选码
最后,r1(A, B, G, H)、r21(D, B)和r22(A, C, D)都属于BCNF。
?例:r(R)=r(A, B, C, D, G, H),F={AB→GH, CD→GH, D→B},r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。
r(R)?BCNF,因为AB→GH的决定属性AB不是超码。r(R)可分解为:
?r1(R1)=r1(A, B, G, H),F1={AB→GH} ——AB
是候选码
?r2(R2)=r2(A, B, C, D),F2={D→B} ——
ACD是候选码
——丢失函数依赖CD→GH!
–r2(R2)?BCNF(D→B的决定属性D不是超码)。r2(R2)可分解为:
?r21(R21)=r21(D, B),F21={D→B} ——
D是候选码
?r22(R22)=r22(A, C, D) ,F22={?} ——
ACD是候选码
最后,r1(A, B, G, H)、r21(D, B)和r22(A, C, D)都属于BCNF。
r(R)=r(A, B, C, D, G, H),F={A→BC, DG→H , D→A}, r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。
–r(R)?BCNF(因为候选码为DG,所以A→BC的决定属性A 不是超码)。按上述算法,r(R)可分解为
?r1(R1)=r1(A, B, C),F1={A→BC} ——A是候
选码
?r2(R2)=r2(A, D, G, H),F2={DG→H , D→A}—DG是
候选码
–r2(R2)?BCNF(因为D→A的决定属性D不是超码)。按上述算法,r2(R2)可分解为
?r21(R21)=r21(D, A),F21={D→A} ——D
是候选码
?r22(R22)=r22(D, G, H),F22={DG→H} ——DG是候
选码
–最后,r1(A, B, C)、r21(D, A)和r22(D, G, H)都属于BCNF
–
3NF分解算法形式化描述如下
?计算F的一个正则覆盖F c;
?i:=0;
?for each α→β∈F c do
? if αβ?R j, j=1,2,…,i
? i := i+1;
? R i := αβ;
?if 没有任何R j(j=1,2,…, i)包含r(R)的候选码
? i := i+1;
? R i := r(R)的任一候选码;
?return (R1,R2, ... , R i)
?r(R)=r(A, B, C, D),F={AB→CD, B→C, AC→B},判断关系模式r(R)是否属于3NF范式?并进行3NF分解。
–AB和AC都为r(R)的候选码,故F中全部依赖都满足3NF定义中的条件,因此r(R)∈3NF。可根据3NF算法将r(R)分解成
满足3NF范式的较小关系模式:
?步骤1. 计算F c:经检测知,AB→CD中的C是右无关属性,去除后得F c={AB→D, B→C, AC→B}。
?步骤2. 根据上述三个函数依赖依次进行分解得:
?r1(R1)=r1(A,B,D),F c1={AB→D} ——AB
为候选码
?r2(R2)= r2(B, C),F c2={B→C}
——B为候选码
?r3(R3)= r3(A, C, B),F c3={AC→B} ——
AC为候选码
?步骤3. 由于r(R)的候选码AB已被r1(R1)包含,或
r(R)的候选码AC已被r3(R3)包含,故分解结束。
–因此,r(R)的分解结果为r1(A,B, D)、r2(B,C)和r3(A,C,
B)。
?r(R)=r(A, B, C, D, G, H),F c={A→BC, DG→H, D→A},判断r(R)是否属于3NF范式?如果不是,则进行3NF分解。
–由于F c中存在部分依赖和传递依赖,故r(R)?3NF。可根据3NF算法将r(R)分解成满足3NF范式的关系模式:
?步骤1. 根据上述三个函数依赖依次进行分解得:
–r1(R1)= r1(A, B, C),F c1={A→BC} ——
A为主码
–r2(R2)= r2(D, G, H),F c2={DG→H} ——
DG为主码
–r3(R3)= r3(D, A),F c3={D→A}
——D为主码
?步骤2. 由于r(R)的候选码DG已被r2(D,G,H)包含,
故分解结束。
–因此,r(R)的分解结果为r1(A,B, C)、r2(D,G,H)和r3(D,
A)。
设有关系模式R(A,B,C,D,E),R的一个函数依
赖集为F = { A→D,A→B,E→D,D→B,BC→D,DC→A },
(a)求R的候选关键字;
(b)将R分解为3NF,并且保持函数依赖性。解(a)求关键字:必须有CE
再求CE关于F的闭包,得(CE)+= CEDBA 所以CE是一个候选关键字。
若此时还不等于R的属性集U,怎么办?(b)分解R:
(1)先对F极小化:
①分解右部为单属性:不需要;
②去掉多余函数依赖:A→B多余;
③去掉左部多余属性:没有。
所以极小函数依赖集为:
F = { A→D,E→D,D→B,BC→D,DC→A } (2)分离无关属性:没有。
(3)判是否需分解:需要。
(4)分解:
{AD,ED,DB,BCD,DCA}
{AD,ED,DB,BCD,DCA}
BCNF: R(I,J,K,L,M,N)
F={K→M,J→N,JK→L,N→I}
分解R使属于BCNF且具有无损连接性。
∵JK +=JKLMNI (J +=JNI ,K +=KM )∴JK 是R 的主键 1)、取N →I ,N 不是主键 S 1={N ,I}∈BCNF , F 1={N →I} S 2={JKLMN},F 2={K →M ,J →N ,JK →L} S 2中JK +=JKLMN ∴JK 是主键
2、取K →M S 21={K ,M}∈BCNF , F 21={K →M} S 22={JKLN},F 22={J →N ,JK →L},键为JK
3、取J →N S 221={J ,N} ∈BCNF ,F 221={J →N} S 222={J ,K ,L} ∈BCNF ,F 222={JK →L} 对R 的分解ρ={S 1、S 21、S 221、S 222}∈BCNF 具有无损连接性
设有关系模式R(A ,B ,C ,D),其上的函数依赖集: F ={A →C ,C →A ,B →AC ,D →AC} (1).计算(AD)+
。
(2).求F 的正则等价依赖集Fc 。 (3).求R 的关键字。
(4).将R 分解使其满足BCNF 且无损连接性。
(5).将R 分解成满足3NF 并具有无损连接性与保持依赖性。 解:
(1).令X ={AD},X(0)=AD ,X(1)=ACD ,X(2)=ACD ,故(AD)+
=ACD 。 (2).将F 中的函数依赖右部属性单一化: A →C C →A F1= B →A B →C D →A D →C
在Fl 中去掉多余的函数依赖:
∵B →A ,A →C ∴B →C 是多余的。 又∵D →A ,A →C ∴D →C 是多余的。
A →C C →A F2=
B →A D →A
函数依赖集的最小集不是惟一的,本题中还可以有其他答案。
∵F2中所有依赖的左部却是单属性,∴不存在依赖左部有多余的属性 ∴ A →C C →A F=
B →A D →A
(3). ∵BD 在F 中所有函数依赖的右部均未出现
∴候选关键字中一定包含BD ,而(BD)+
=ABCD ,因此,BD 是R 惟一的候选关键字。 (4). 考虑A →C
∵AC 不是BCNF(AC 不包含候选关键字BD),将ABCD 分解为AC 和ABD 。 AC 已是BCNF ,进一步分解ABD ,选择B →A ,把ABD 分解为AB 和BD 。 此时AB 和AD 均为BCNF ∴ρ={AC ,AB ,BD}。
(5).由(2)可求出满足3NF 的具有依赖保持性的分解为ρ={AC ,BD ,DA}。
令ρ=ρ∪{BD},BD 是R 的候选关键字 ∴p ={AC ,BA ,DA ,BD}。
15.己知关系模式R(CITY ,ST ,ZIP)和函数依赖集: F ={(CITY ,ST )→ZIP ,ZIP →CITY} 试找出R 的两个候选关键字。
解:设U =(CITY ,ST ,ZIP),F 中函数依赖的左边是CITY ,ST ,ZIP : · 由于ZIP →CITY ,去掉CITY ,故(ST ,ZIP)可能是候选关键字。 (ST ,ZIP)+
={ST ,ZIP ,CITY},∴(ST ,ZIP)→U 。
又ST +
=ST ,ZIP +={ZIP ,CITY},故(ST ,ZIP)是一个候选关键字。
·由于(CITY ,ST )→ZIP ,去掉ZIP ,故(CITY ,ST)可能是候选关键字。 (CITY ,ST)+={CITY ,ST ,ZIP},∴(CITY ,ST)→U 。 又CITY +
=CITY ,ST +
=ST ,故(CITY ,ST)是一个候选关键字。
因此,R 的两个候选关键字是(ST ,ZIP)和(CITY ,ST)。
设关系模式R(A,B,C,G,H,R,S,T),
F = { C T,CS G,HT R,HR C,HS R }
求:(a)R的一个侯选关键字;
(b)将R分解为3NF,并且保持函数依赖性。
(a)求关键字:设X为候选关键字,则必有X =U。F+
-X只能取F中函数依赖右部的属性,X+X F +
而F 要等于U,
至少应有ABHS X。
求ABHS关于F的闭包有:(ABHS) = ABHSRCTG=U F
+
所以ABHS是一个候选关键字。
(b)分解R:(1) 先对F极小化:F已是最小依赖集。
(2) 分离无关属性:AB未在F中出现,分离出去。
(3) 判是否需分解:需要。
(4) 分解:按左部相同的原则分组。
则={ R1(A,B), R2(C,T),R3(C,S,G), R4(H,T,R), R5(H, R, C), R6(H,S,R) }为一个保持函数依赖且达到3NF 的分解。
设有关系模式R(U,F),其中:
U ={A ,B ,C ,D ,E ,P},F ={A →B ,C →P ,E →A ,CE →D} 求出R 的所有候选关键字。
解:根据候选关键字的定义:如果函数依赖X →U 在R 上成立,且不存在任何X ’ X ,使得X →U 也成立,则称X 是R 的一个候选关键字。由此可知,候选关键字只可能由A ,C ,E 组成,但有E →A ,所以组成候选关键字的属性可能是CE 。 计算可知:(CE)+
=ABCDEP ,即CE →U
而:C +
=CP ,E +=ABE ∴R 只有一个候选关键字CE 。
4.设有关系模式R(C ,T ,S ,N ,G),其上的函数依赖集: F={C →T ,CS →G ,S →N} 求出R 的所有候选关键字。
解:根据候选关键字的定义,R 的候选关键字只可能由F 中各个函数依赖的左边属性组成,即C ,S ,所以组成候选关键字的属性可能是CS 。 计算可知:(CS)+
=CGNST ,即CS →U 而:C +
=CT ,S +=NS
∴R 只有一个候选关键字CS 。
5.设有关系模式R(A ,B ,C ,D ,E),其上的函数依赖集: F ={A →BC ,CD →E ,B →D ,E →A} (1).计算B +。
(2).求出R 的所有候选关键字。 解:
(1).令X ={B},X(0)=B ,X(1)=BD ,X(2)=BD ,故B +
=BD 。
(2).根据候选关键字定义,R 的候选关键字只可能由F 中各个函数依赖的左边属性组成,即A ,B ,C ,D ,E ,由于A →BC(A →B ,A →C),B →D ,E →A ,故: ·可除去A ,B ,C ,D ,∴组成候选关键字的属性可能是E 。 计算可知:E
十
=ABCDEE ,即E →U ,∴E 是一个候选关键字。
·可除去A ,B ,E ,∴组成候选关键字的属性可能是CD 。
计算可知:(CD)+
=ABCDE ,即CD →U ,但C +
=C ,D +
=D ,∴CD 是一个候选关键字。 ·可除去B ,C ,D ,E ,∴组成候选关键字的属性可能是A 。 计算可知:A +
=ABCDE ,即A →U ,∴A 是一个候选关键字。
·可除去A ,D ,E ,∴组成候选关键字的属性可能是BC 。
计算可知:(BC)+
=ABCDE ,即CD →U ,但B +
=BD ,C +
=C ,∴BC 是一个候选关键字。 R 的所有候选关键字是A ,BC ,CD ,E 。
6.设有关系模式R(U ,F),其中:
U ={A ,B ,C ,D ,E},F ={A →D ,E →D ,D →B ,BC →D ,DC →A} (1).求出R 的候选关键字。
(2).判断ρ={AB ,AE ,CE ,BCD ,AC}是否为无损连接分解? 解:
(1).(CE)+
=ABCDE ,则CE →U ,而C +
=C ,E +
=DE =BDE ,根据候选关键字定义,CE 是R 的候选关键字。
(2). ρ的无损连接性判断表如下表所示,由此判断不具有无损连接性。
7.设有关系框架R(A ,B ,C ,D ,E)及其上的函数相关性集合F ={A →C ,B →D ,C →D ,DE →C ,CE →A},试问分解ρ={R1(A ,D),R2(A ,B),R3(B ,E),R4(C ,D ,E),R5(A ,E)}是否为R 的无损连接分解?
解:p 的无损连接性判断结果表如下表所示,由此判断不具有无损连接性。
8.设有函数依赖集F ={AB →CE ,A →C ,GP →B ,EP →A ,CDE →P ,HB →P ,D →HG ,ABC →PG},计算属性集D 关于F 的闭包D +
。
解:令X={D},X(0)=D 。
在F 中找出左边是D 子集的函数依赖,其结果是:D →HG ,∴X(1)=X(0)HG=DGH , 显然有X(1)≠X(0)。
在F 中找出左边是DGH 子集的函数依赖,未找到,则X(2)=DGH 。由于X(2)=X(1),
则:D +
=DOH
9.已知关系模式R 的全部属性集U={A ,B ,C ,D ,E ,G}及函数依赖集: F ={AB →C ,C →A ,BC →D ,ACD →B ,D →EG ,BE →C ,CG →BD ,CE →AG}
求属性集闭包(BD)+
。
解:令X ={BD},X(0)=BD ,X(1)=BDEG ,X(2)=BCDEG ,X(3)=ABCDEG ,故(BD)+
=ABCDEG 。 10.设有函数依赖集F={D →G ,C →A ,CD →E ,A →B),计算闭包D +
,C +
,A +
,(CD)+
,(AD)+
,(AC)+
,(ACD)+
。 解:
令X ={D},X(0)=D ,X(1)=DG ,X(2)=DG ,故D +
=DG 。
令X ={C},X(0)=C ,X(1)=AC ,X(2)=ABC ,X(3)=ABC ,故C +
=ABC 。 令X ={A},X(0)=A ,X(1)=AB ,X(2)=AB ,故A +
=AB 。
令X ={CD},X(0)=CD ,X(1)=CDG ,X(2)=ACDG ,X(3)=ACDEG ,X(4)=ABCDEG , 故(CD)+
=ABCDEG 。
令X ={AD},X(0)=AD ,X(1)=ABD ,X(2)=ABDG ,X(3)=ABDG ,故(AD)+
=ABDG 。 令X ={AC},X(0)=AC ,X(1)=ABC ,X(2)=ABC ,故(AC)+
=ABC 。
令X ={ACD},X(0)=ACD ,X(1)=ABCD ,X(2)=ABCDG ,X(3)=ABCDEG ,故(ACD)+
=ABCDEG 。
11.设有函数依赖集F ={AB →CE ,A →C ,GP →B ,EP →A ,CDE →P ,HB →P ,D →H ,ABC →PG ,求与F 等价的最小函数依赖集。
解:(1).将F 中依赖右部属性单一化: AB →C HB →P AB →E D →H F1= A →C D →G GP →B ABC →P EP →A ABC →G CDE →P
(2).对于AB →C ,由于有A →C ,则为多余的: AB →E HB →P A →C D →H F2= GP →B D →G EP →A ABC →P CDE →P ABC →G
(3).通过分析没有多余的依赖,则: AB →E HB →P A →C D →H F3= GP →B D →G EP →A ABC →P CDE →P ABC →G
12.设有关系模式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 ,G →E ,F →E ,F →G ,H →E ,H →G ,FH →E} (2).对于FH →E ,由于有F →E ,则为多余的,则: F2={E →G ,G →E ,F →E ,F →G ,H →E ,H →G}
(3).由于E →G ,所以在F2中的F →E 和F →G 以及H →E 和H →G 之一是多余的,则: F3={E →G ,G →E ,F →G ,H →G} 或F3={E →G ,G →E ,F →G ,H →E} 或F3={E →G ,G →E ,F →E ,H →E}
或F3={E →G ,G →E ,F →E ,H →G}
13.设有关系模式R(U ,F),其中:
U ={A ,B ,C ,D},F ={A →B ,B →C ,D →B},把R 分解成BCNF 模式集: (1).如果首先把R 分解成{ACD ,BD},试求F 在这两个模式上的投影。 (2).ACD 和BD 是BCNF 吗?如果不是,请进一步分解。 解:
(1).ΠACD (F)={A →C ,D →C} ΠBD (F)={D →B} (2).BD 已是BCNF 。
ACD 不是BCNF 。模式ACD 的候选关键字是AD 。考虑A →C ,A 不是模式ACD 的候选关键字,所以这个函数依赖不满足BCNF 条件。将ACD 分解为AC 和AD ,此时AC 和AD 均为BCNF 。
14.设有关系模式R(A ,B ,C ,D),其上的函数依赖集: F ={A →C ,C →A ,B →AC ,D →AC} (1).计算(AD)+
。
(2).求F 的最小等价依赖集Fm 。 (3).求R 的关键字。
(4).将R 分解使其满足BCNF 且无损连接性。
(5).将R 分解成满足3NF 并具有无损连接性与保持依赖性。 解:
(1).令X ={AD},X(0)=AD ,X(1)=ACD ,X(2)=ACD ,故(AD)+
=ACD 。
(2).将F 中的函数依赖右部属性单一化:
A →C C →A F1=
B →A B →
C
D →A D →C
在Fl 中去掉多余的函数依赖:
∵B →A ,A →C ∴B →C 是多余的。 又∵D →A ,A →C ∴D →C 是多余的。
A →C C →A F2=
B →A D →A
函数依赖集的最小集不是惟一的,本题中还可以有其他答案。
∵F2中所有依赖的左部却是单属性,∴不存在依赖左部有多余的属性 ∴ A →C C →A F=
B →A D →A
(3). ∵BD 在F 中所有函数依赖的右部均未出现
∴候选关键字中一定包含BD ,而(BD)+
=ABCD ,因此,BD 是R 惟一的候选关键字。 (4). 考虑A →C
∵AC 不是BCNF(AC 不包含候选关键字BD),将ABCD 分解为AC 和ABD 。 AC 已是BCNF ,进一步分解ABD ,选择B →A ,把ABD 分解为AB 和BD 。 此时AB 和AD 均为BCNF ∴ρ={AC ,AB ,BD}。
(5).由(2)可求出满足3NF 的具有依赖保持性的分解为ρ={AC ,BD ,DA}。
令ρ=ρ∪{BD},BD 是R 的候选关键字 ∴p ={AC ,BA ,DA ,BD}。
15.己知关系模式R(CITY ,ST ,ZIP)和函数依赖集: F ={(CITY ,ST )→ZIP ,ZIP →CITY} 试找出R 的两个候选关键字。
解:设U =(CITY ,ST ,ZIP),F 中函数依赖的左边是CITY ,ST ,ZIP : · 由于ZIP →CITY ,去掉CITY ,故(ST ,ZIP)可能是候选关键字。 (ST ,ZIP)+
={ST ,ZIP ,CITY},∴(ST ,ZIP)→U 。
又ST +
=ST ,ZIP +={ZIP ,CITY},故(ST ,ZIP)是一个候选关键字。
·由于(CITY ,ST )→ZIP ,去掉ZIP ,故(CITY ,ST)可能是候选关键字。
(CITY ,ST)+
={CITY ,ST ,ZIP},∴(CITY ,ST)→U 。 又CITY +
=CITY ,ST +
=ST ,故(CITY ,ST)是一个候选关键字。 因此,R 的两个候选关键字是(ST ,ZIP)和(CITY ,ST)。
16.设有关系模式R(A ,B ,C ,D ,E),R 的函数依赖集: F ={A →D ,E →D ,D →B ,BC →D ,CD →A} (1).求R 的候选关键字。 (2).将R 分解为3NF 。 解:
(1).设U =(A ,B ,C ,D ,E),由于(CE)+
=ABCDE ,C +
=C ,E +
=BDE
∴R 的候选关键字是CE 。
(2).求出最小依赖集F ′={A →D ,E →D ,D →B ,BC →D ,CD →A} 将R 分解的3NF :ρ={AD ,DE ,BD ,BCD ,ACD}。 17.设有关系模式R(U ,V ,W ,X ,Y ,Z),其函数依赖集: F ={U →V ,W →z ,Y →U ,WY →X},现有下列分解: (1). ρl ={WZ ,VY ,WXY ,UV} (2). ρ2={UVY ,WXYZ}
判断上述分解是否具有无损连接性。 解:
(1). ρ1
(2). ρ2的无损连接性判断表如下所示,由此判断ρ2具有无损连接性。
18.已知R(Al ,A2,A3,A4,A5)为关系模式,其上函数依赖集:
F ={Al →A3,A3→A4,A2→A3,A4A5→A3,A3A5→A1}
ρ={Rl(Al ,A4),R2(A1,A2),R3(A2,A3),R4(A3,A4,A5),R5(Al ,A5)} 判断ρ是否具有无损连接性。
解:ρ的无损连接性判断表如下所示,由此判断ρ不具有无损连接性。
19.设有关系模式R(B,O,I,S,Q,D},其上函数依赖集:
F={S→D,I→B,IS→Q,B→O}
如果用SD,IB,ISQ,BO代替R,这样的分解是具有无损连接吗?
解:ρ={Rl(S,D),R2(I,B),R3(I,S,Q),R4(B,O) }
ρ
20.设有关系模式R(F,G,H,I,J),R的函数依赖集:
F={F→I,J→I,I→G,GH→I,IH→F}
(1).求出R的所有候选关键字。
(2).判断ρ={FG,FJ,JH,IGH,FH}是否为无损连接分解?
(3).将R分解为3NF,并具有无损连接性和依赖保持性。
解:
(1).从F中看出,候选关键字中至少包含J和H(因为它们不依赖于谁),计算:
令X={JH},X(0)=JH,X(1)=IJH,X(2)=GIJH,X(3)=FGIJH
∴候选关键字只有JH。
(2). ρ的无损连接性判断表如下所示,由此判断ρ不具有无损连接性。
(3).求出最小依赖集F′={F→I,J→I,I→Gl GH→I,IH→F}
∴满足3NF且具有依赖保持性的分解为:
ρ={FI,JI,IG,GHI,IHE}
ρ的无损连接性判断结果如下所示,由此判断ρ不具有无损连接性。
如何画数据库ER图 数据库设计中重要的一环首先就是概念设计,也就是说,要从实际问题出发,排除非本质的东西,抽象出现实的数据结构之客观规律——即画出数据结构图——ER图。这是数据库设计的重点,也是数据库设计的难点。 那么,如何才能正确地反映客观现实,将ER图画好呢? 答案是,必须进行正确的需求分析。那么如何进行需求分析呢?需求分析一般有两种方法,一种是结构化分析(SA),一种是面向对象分析(OOA).通过这两种方法的实施以后,都可以得到比较正确的ER图。现在以下面的实际问题为例,通过结构化分析(SA)方法的应用,讲述如何得到比较正确的ER图。 校务管理系统ER图画法如下步骤: 在要建立的系统中,有以下功能: 1.管理老师的功能:录入老师情况(姓名.地址.所教课程), 老师缺课记录(名字.时间.原因. 课程) 2.管理学生的功能: 录入学生情况 ( 姓名 . 所选课程 . 成绩 ) 3.教务主任的功能 : 查询统计 1: 教师情况 2: 学生总成绩 3: 学生平均成绩 要求: 1)用结构化方法画出系统顶层图、 0 层图,数据字典。 2)画出该系统的数据模型ER图。 一、结构化分析的需求分析 1)分析实际情况 根据实际情况,我们得到一下情况: (一)教师任课流程:
(二)学生选择课程流程: 2)画数据流图 (一、)顶层数据流图
3)画数据字典DD(略)和软件初始结构图 1基本数据=学生基本信息|教师基本信息|课程基本信息|教室基本信息2教师任课信息=教师任课数据|教师考勤信息 3学生选课请求和成绩=学生选课请求|学生成绩 学生基本信息=学号+姓名+性别+年龄+专业+班级 。。。。。。
数据库er图怎么画 导语: 在进行数据库设计时,最重要的一个环节就是概念的设计,也就是绘制出整个数据的结构,此时就需要用到E-R模型图,也是实体关系图。那么,在众多的设计工具中,有什么软件可以用来设计数据库E-R图呢? 免费获取免费数据库设计软件:https://www.wendangku.net/doc/3017670004.html,/software-diagram-tool/databasediagram/ 专业的数据库er图绘制软件 亿图图示专家是一款非常实用的绘制实体关系图、Chen-ERD图、ORk图、数据库模型图、Express-G图以及Martin ERD图的工具。亿图软件内置了大量的标准实体关系符号及各种工具,可以更加快速的创建ER模型图,在功能上可以 媲美微软的Visio。
配置需求: Windows 7, 8, 10, XP, Vista, Citrix Mac OSX 10.10+ Linux Debia n, Ubu ntu, Fedora, Cen tOS, Ope nSUSE, Mi nt, Kn oppix, RedHat, Gen 及o 更多 用亿图图示设计数据库E-R 图有哪些优势? 1、 亿图软件内置了大量的模型图符号和模型图模板,以及更多的在线模板,可 快速创建实体关系模型图即ER 模型图。 2、 通过拖拽就能简单的说明实体关系图,操作十分简单、智能化。 3、 连接线可自动吸附到图形上,让绘图更加的轻松、快捷。 4、 内置丰富的模板和实例,以及更多的网页在线模板,可免费下载使用。 5、 可以通过浮动按钮,快速对文字、图形属性进行修改,比如:字体、大小、 颜色、边框类型、图层位置、对齐方式等等。 ■ e Id * IV ■
实验项目三:MIS的数据组织与管理 *****系统组 实验课程:管理信息系统实验 实验项目:MIS的数据组织与管理 项目组名: 所在学院:***学院 所在班级:**** 指导老师:李红霞 小组成员: 学号姓名 (组长)
一、新系统的数据流程图的数据字典: 填写借阅记录
二、数据库和表的分析: 先从零层数据流程图可以看出,图书管理员通过多条数据流与图书馆管理信息系统联系,而在图书馆中,读者才是直接与图书接触者,读者通过在计算机上简单的书目查询,就可以轻松的找到想要的书。要是有的书,读者没有找到,就可以通过在图书管理系统中的信息平台留言,进而,管理员获取消息后进行改进,做好图书的优质服务。 在一层数据流程图中详细的介绍了管理员及读者运用计算机较好的利用图书信息系统,办公室——读者管理系统——读者库——图书维护系统——图书管理员,是对管理员的线路指导,采编室——图书采编系统——图书库——图书查询——读者——读者留言系统——留言库——图书管理员,借阅室——图书借阅系统——借阅库——图书预定系统——读者,都是对图书在读者和管理员之间能够比较顺畅的流通而详细的做了布置。系统的大部分的工作利用计算机管理,效率高,减少误差,能够及时的得到读者的反馈信息,及时对做得不足的地方进行改进。如果有的图书缺货了,在计算机中能较快的反映,减少管理员的工作量,提高工作的效率,也节约图书馆的成本。 三、数据库的概念结构设计:
图书馆系统的物理结构如下: (2)图书管理人员信息表 (3)图书信息表 (5)借阅记录表 六、选用熟悉的小型数据库工具、数据库实施: 1.新建数据库 新建一个数据库有两种方法:一种是创建一个空数据库,即建立一个没有表、查询、窗体和报表等内容的数据库;另一种方法是使用Access中提供的数据库模板创建数据库,即通过对向导所提出的选项和不同选择来设计窗体、查询和报表等,从而建立一个完整的数据库。这里我们将使用第一种方法:
原则1:ER图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。例如,图中独立实体“部门”、“职员”分别变为部门关系、职员关系。 部门关系 原则2:ER图中的从实体及相应的“的”联系变换为一个关系,从实体的属性加上主实体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:M的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。例如: 原则3:1:M联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。例如,在员工关系中增加“所属部门号”这个外来码反映1:M联系所属职员关系。 员工关系
在部门关系中增加“主管工号”这个外来码反映1:1联系主管与部门关系。 原则4:M:M联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。 分录关系
有工程和职工两个实体,工程实体有工程号、工程名、预算等属性;职工实体有职工号、姓名、性别、职务、小时工资率等属性。假设一名职工参加多个工程项目,且一个工程项目有多名职工参加;按照职工的小时工资率以及在每一项工程中完成的工时发酬金;职工的职务决定小时工资率。 (1)根据语义设计E-R模型,要求标出实体的属性和联系方式; (2)将E-R模型转换成一组关系模式,并指出主码和外码; (3)判断每个关系模式属于第几范式。 (1) E-R图如下: (2)工程(工程号,工程名,预算)(1分) 职工(职工号,姓名,性别,职务,小时工资率)(2分) 酬金(职工号,工程号,工时)(2分) (3)工程和酬金是3NF (3分) 职工是2NF (2分)
一、概念数据模型概述 数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实世界 2)容易为人所理解 3)便于计算机实现 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。 1)数据结构表达为实体和属性; 2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作; 3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等); 二、实体、属性及标识符的定义 实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。 每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。 实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。 实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。实体是实体类型的一
实例7 销售管理系统 要提高市场竞争力,即要有好的产品质量,同时也要有好的客户服务。企业要作到能及时相应客户的产品需求,更具需求迅速生产,按时交货,就必须有一个好的计划,使得市场销售和生产制造2个环节能够很好地协调配合。 销售管理是商业企业经营管理中的核心关节,也是一个企业能否取得效益的关键。如果能做到合理生产、及时销售、库存量最小、减少积压,那么企业就能取得最佳的效益。由此可见,销售管理决策的正确与否直接影响了企业的经济效益。 在手工管理的情况下,销售人员很难对客户作出正确的供货承诺,同时企业的生产部门也缺少一份准确的生产计划,目前的生产状况和市场的需求很难正确的反映到生产中去,部门之间的通讯也经常部畅通。这在激烈竞争的市场中是非常不利的。企业销售管理系统就是在这种状况下出现的。它利用计算机的技术,使得企业生产、库存和销售能够有利结合起来,产销连接,提高企业的效率和效益。 第一节系统设计 一、系统客户要求 系统开发的目标是实现企业销售管理的系统化、规化和自动化。这是在用户要求的基础上提出来的,用户要求如下。 ●产销衔接。利用销售管理系统后,要求能够对整个生产过程进行 实时的监控,特别是一些半产品和热销产品的库存量和生产能力。对于即将生产 完成的产品,能够提前将信息由生产部门传递到销售部门,这样销售部门可以根 据客户订单的要求,提前做好发货的准备;对也不能按时完成的产品,系统自动 向经理发出警报,以便及时采取措施。 ●产品库存。通过本系统能够清楚的看到企业库存中的产品数量、 存放地点等信息。使得生产部门和销售部门都能够根据库存信息做出决策。 ●订单管理。对于销售部门输入的订单能够通过电脑以这跟踪下去。 企业做到以销定产,在库存中备有一定的储备量。 ●客户管理。能够对企业的顾客有一个清楚地了解,通过客户管理 分保持和客户良好的关系。即使得到客户反馈的意见,上交有关部门及时处理。 ●发货计划。根据客户订单的要求和企业现有的库存,制定发货数 量、发货顺序等计划。 ●生产计划。根据客户订单的要求和企业现有的库存、制定企业的 生产计划。 二、系统开发目标 在上面用户要求的基础上,得到下面的系统目标。 ●●产销管理。能够对整个生产过程进行实时的监控,特别是一些半产品 和热销产品的库存量和生产能力。加强企业生产部门和销售部门之间的联系和沟 通。
教学管理系统 一、系统功能需求 学校教务管理系统是针对学校的大量信息处理工作而开发的管理软件,完成的主要功能如下: (1) 学生基本信息管理:能够对学生基本信息进行输入、删除、修改。学生基本信息包括:学号、姓名、性别、出生日期、入学成绩、所在系号。 (2) 系部基本信息管理:系部的基本信息输入、修改、删除。系部基本信息包括:系号、系名称、系的简介。 (3) 课程信息管理:课程信息的输入、修改、删除。课程信息包括:课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间。 (4) 教职工信息管理:教职工信息的输入、修改、删除。教职工信息包括:职工号、姓名、性别、出身年月、所在系号、职称、技术专长。 (5) 选课管理:学号、学生、课程号、课程名称、上课教师姓名、系号 每学期所选课程的学分不能超过15分。学生可以同时选修一门或多门课程。可以同时为多个学生选修某一门或某几门课程。可以删除和修改选课信息。 (6) 成绩管理可以按课程输入和修改成绩,也可以按学生输入和修改成绩。 (7) 信息查询 可以按学号、姓名、系号查询学生基本信息。 可以按职工号、姓名、系号查询教职工基本信息。 可以按系号、系名称查询系的基本信息。 可以按课程号、课程名称、上课教师姓名查询课程基本信息。 按学号、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。若查询涉及多门课程,则按课程分组。 每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。 (8) 统计报表 a、成绩报表:内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩。 能按课程号、课程名称、教师姓名输出对应课程的成绩报表。 b、能够根据课程、授课教师统计成绩>=90分、>=80分、>=70分、>=60分及不及格学生的人数及比例。 二、任务描述 1、根据需求描述,完成数据概念模型设计,画出E-R图; 2、优化E-R图,给出数据逻辑模型; 3、将逻辑模型转换成物理模型并创建数据库和数据表。要求数据表能尽量实现数 据完整性要求。
学院商学院专业计算机科学与技术 班级 1 学号20108170 学生姓名刘小全刘磊龚轩明指导教师屈智成 1 需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构以及数据处理的流程,为后面的具体设计打下基础。 在仔细分析调查有关图书馆管理信息需求的基础上,我们主要考虑以下几个方面的需求: 1) 用户需求:图书用户要求计算机系统和SQL Server所工作的范围; 2) 应用资源:数据库应用的平台包括物理平台和图书等; 3) 应用质量和可靠性要求:包括操作人员素质和系统的纠错能力等 1.1 项目名称:图书馆信息管理系统 1.2 项目背景和内容概要 对图书馆管理信息系统进行详细地分析后,我们将系统分为以下几个模块:借阅管理模块、借书证信息管理模块、图书信息管理模块、系统管理模块。其主要功能如下: ●借阅管理模块主要功能如下: 1).可以为读者办理,修改,注销借书证,输入读者借书证基本信息等,定制读者 的借阅权限。 2).可以通过借书证查询图书信息、借出图书信息,借阅图书。 3).通过借书证还书,管理员可以通过对借阅信息的管理对到期还未还的书,通过 查询读者的借书证信息查询读者联系方式发出催还通知。 ●借书证信息管理模块主要功能如下: 1).读者基本信息的输入,如:读者姓名、性别、单位等。 2).读者信息的修改、注销等功能。 3).添加新的读者及其信息等。 ●图书信息管理模块主要功能如下: 1).定制书籍的各种信息管理,如:书名、作者、出版信息等。 2).书籍信息的修改,新图书的入库管理和图书的注销等。 ●系统管理模块主要功能如下: 1).用户登录。 2).修改密码。 3).添加用户。
数据库概念设计 ER图 注:提交时,将文件名命名为(数据库系统概论ER图练习:学号+姓名+日期) 第一题:参考 大学实行学分制,学生可根据自己的情况选课。每名学生可同时选修多门课程,每门课程可由多位教师主讲;每位教师可讲授多门课程。 指出学生与课程的联系类型。 指出课程与教师的联系类型。 若每名学生有一位教师指导,每个教师指导多名学生,则学生与教师是何联系? 在原E-R图上补画教师与学生的联系,并完善E-R图。
第二题:将ER图转化为关系模式 单位 职工 第三题:画ER图 职工:职工号、姓名、地址和所在部门 部门:部门所有职工、部门名、经理和销售的产品 产品:产品名、制造商、价格、型号和产品内部编号 制造商:制造商名称、地址、生产的产品名和价格 部门有很多职工,职工仅在一个部门工作; 部门销售多种产品,这些产品也在其它部门销售; 制造商生产多种产品,其它制造商也制造这些产品。
画ER图 第四题:画ER图 科室:科名、科地址、科电话、医生姓名 病房:病房号、床位号、所属科室名 医生:姓名、职称、所属科室名、年龄、工作证号 病人病历号、姓名、性别、诊断、主臂医生、病房号一个科室有多个病房、多个医生; 一个病房只能属于一个科室; 一个医生只属于一个科室,但可负责多个病人的诊治;
一个病人的主管医生只有一个。 完成如下设计: 设计该计算机管理系统的E-R图。 将该E-R图转换为关系模式结构。 指出转换结果申每个关系模式的候选码。 第五题:画ER图 某田径运动会组委会需要一运动会管理系统,现提出如下需求。该系统中存在运动队和运动会两方面的实体。 1.运动队方面 运动队:队名、教练姓名 队员:编号、姓名、性别、项名 其中,一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般有一个教练,一个队员可参加多个项目 2.运动会方面 运动队:队编号、队名、教练姓名 项目:项目名、参加运动队编号、场地 其中,一个项目可由多个队参加,一个运动队可参加多个项目,一个项目一个比赛场地。现要求:(1).分别设计运动队和运动会的局部ER图。
E-R事例 1、某商业集团的销售管理系统 数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 (1)试画出ER图,并在图上注明属性、联系的类型。 (2)将ER图转换成关系模型,并注明主键和外键。 解:(1) ER图如图7.1所示。 图7.1 (2)这个ER图可转换4个关系模式: 商店(商店编号,商店名,地址) 职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商品(商品号,商品名,规格,单价) 销售(商店编号,商品号,月销售量)
2、设某商业集团的仓库管理系统 数据库有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。 公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 (1)试画出ER图,并在图上注明属性、联系的类型。 (2)将ER图转换成关系模型,并注明主键和外键。 解:(1) ER图如图7.2所示。 图7.2 (2)这个ER图可转换3个关系模式: 公司(公司编号,公司名,地址) 仓库(仓库编号,仓库名,地址,公司编号) 职工(职工编号,姓名,性别,仓库编号,聘期,工资)
如何画数据库 ER 图 数据库设计中重要的一环首先就是概念设计,也就是说,要从实际问题出发,排除非本质的东西,抽象出现实的数据结构之客观规律——即画出数据结构图——ER 图。这是数据库设计的重点,也是数据库设计的难点。 那么,如何才能正确地反映客观现实,将 ER 图画好呢? 答案是,必须进行正确的需求分析。那么如何进行需求分析呢?需求分析一般有两种方法,一种是结构化分析(SA),一种是面向对象分析(OOA).通过这两种方法的实施以后,都可以得到比较正确的 ER 图。现在以下面的实际问题为例,通过结构化分析(SA)方法的应用,讲述如何得到比较正确的 ER 图。 校务管理系统 ER 图画法如下步骤: 在要建立的系统中,有以下功能: 1.管理老师的功能:录入老师情况(姓名.地址.所教课程), 老师缺课记录(名字.时间.原因. 课程) 2.管理学生的功能: 录入学生情况 ( 姓名 . 所选课程 . 成绩 ) 3.教务主任的功能 : 查询统计 1: 教师情况 2: 学生总成绩 3: 学生平均成绩 要求: 1)用结构化方法画出系统顶层图、 0 层图,数据字典。 2)画出该系统的数据模型 ER 图。 一、结构化分析的需求分析 1)分析实际情况 根据实际情况,我们得到一下情况: (一) 教师任课流程:
(二)学生选择课程流程: 2)画数据流图 (一、)顶层数据流图
3)画数据字典DD(略)和软件初始结构图 1基本数据=学生基本信息|教师基本信息|课程基本信息|教室基本信息2教师任课信息=教师任课数据|教师考勤信息 3学生选课请求和成绩=学生选课请求|学生成绩 学生基本信息=学号+姓名+性别+年龄+专业+班级 。。。
7、一个图书馆借阅管理数据库要求提供下述服务: (1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。 (2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。 我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。 (3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。 根据以上情况和假设,试作如下设计: (1)构造满足需求的E-R图。 (2)转换为等价的关系模式结构。 答:(1)满足上述需求的E-R图如图11所示。 (2)转换为等价的关系模式结构如下: 借书人(借书证号,姓名,单位) 图书(书号,书名,数量,位置,出版社名) 出版社(出版社名,电报编号,电话可,邮编,地址) 借阅(借书证号,书号,借书日期,还书日期)
8、工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息: (1)一个工厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。 (2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。 (3)一个车间生产多种产品,产品有产品号和价格。 (4)一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。 (5)一个产品由多种零件组成,一种零件也可装配出多种产品。 (6)产品与零件均存入仓库中。 (7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。 试:(1)画出该系统的E-R图。 (2)给出相应的关系模式。 (3)画出该系统的层次模式图。 答:(1)该系统的E-R图如图12所示。 各实体的属性为: 工厂:厂名、厂长姓名 车间:车间号、车间主任姓名、地址、电话 工人:职工号、姓名、年龄、性别、工种 仓库:仓库号、仓库主任姓名、电话 零件:零件号、重量、价格 产品:产品号、价格 (2)相应的关系模式如下: 工厂(厂名、厂长姓名) 车间(车间号、车间主任姓名、地址、电话、厂名) 工人(职工号、姓名、年龄、性别、工种、车间号)
第一部分PowerDesigner概念数据模型基础 一、概念数据模型概述 数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实世界 2)容易为人所理解 3)便于计算机实现 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。 CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。 1)数据结构表达为实体和属性; 2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作; 3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等); 二、实体、属性及标识符的定义 实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。 每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。 实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。 实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。 实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。
时序图: 1、在Logical View中创建如下的包结构: 2、根据用例模型的包结构,在Use-Case Realizations中创建相应的包结构: 3、将用例模型中每个包中的用例转换为设计模型中的用例实现,并建立实现跟踪关系。这里在入库管理模块中创建对应的用例实现: 在入库管理模块中使用类图来创建实现依赖:
4、完成以上步骤后,就实现了用例模型到设计模型的转换。 (分包) 5、现在开始对每个用例分别使用时序图和类图进行设计。 注意:在用例设计前,可以将公共的类识别出来,便于在不同用例间重用。 5.1、使用时序图进行设计 5.1.1、在用例实现下创建基本流的时序图。 5.1.2、在基本流中画出主角(Actor),以及边界类、控制类和实体类。 5.1.2、根据软件实现规约中的用例事件流,分析对应的边界类、控制类和实体类分别是什么?这里实际就是登录界面(边界类)、账号(实体类)和登录控制(控制类)。
5.1.3、因为项目采用分层架构,因此加入服务层的类;数据存储采用数据库,因此加入数据库。 5.1.4、使用DAO模式改进数据库访问的设计。
现在就已经完成了时序图的分析,开始将对象转换为相应的类。这里DBMS和功能界面不需要转为类。 5.1.4、以登录界面为例,在登录界面上右键菜单中打开其设置界面,先择New… 设置类名,并可以在Attributes、Operations中设置属性和方法。
在设计模型中将有相应的类: 5.1.6、绘制用例所有使用类的类图:
(合包) 5.1.5、将所有用例实现中的所有类标识完成后,使用分层架构来组织类: 其中实体类图一定要画,所有实体类将作为ER图中绘制的基础。 最终类图中不仅有类,类有属性和方法,以及类之间的关系。 ER图: ER图的实体、关系来源于设计模型中的实体类,以及实体类的关系。1、首先使用CDM画ER模型。
数据库概念结构及逻辑结构设计习题 例1:现有图书管理的信息如下: 图书信息包括:书号、书名、作者、出版社、所属类别、单价。 出版社信息包括:社号、社名、地址、电话。 读者信息包括:借书证号、姓名、性别、所属院系。 一个出版社可以出版多种书籍,但每本书只能在一个出版社出版,出版应有出版日期和责任编辑。一个读者可以借阅多本图书,一本图书可以有多个人借阅。借阅信息包括:借书日期、还书日期。 根据以上信息,要求完成以下任务:(1)确定实体及其包含属性,以及各实体的码。(2)确定各实体之间的联系,并设计图书管理情况的E-R图。 解:(1)本例包括图书、出版社、读者三个实体,其中图书实体包含书号、书名、作者、出版社、所属类别、单价6个属性,其中书号为码;出版社实体包含社号、社名、地址、电话4个属性,其中社号为码;读者实体包含借书证号、姓名、性别、所属院系4个属性,其中借书证号为码。(2)出版社与图书两个实体之间为1:n联系,联系名为出版,该联系含有出版日期和责任编辑两个属性;读者与图书两个实体之间为m:n联系,联系名为借阅,该联系含有借书日期、还书日期2个属性。
例2:设有如下运动队和运动会两个方面的实体集: 运动队方面: 运动队:队编号、队名、教练名; 运动员:姓名、性别、项目; 其中,一个运动队有多个运动员,一个运动员仅属于一个运动队,一个队一般有一个教练。 运动会方面: 运动员:编号、姓名、性别; 项目:项目名、比赛场地; 其中,一个项目可由多个运动员参加,一个运动员可参加多个项目,一个项目在一个比赛场地进行,每场比赛都有名次和成绩。 要求:分别设计运动队和运动会两个局部E-R图。 (1)设计局部E-R图, (2)合并消除冲突,生成初步E-R图,(属性冲突,命名冲突和结构冲突) (3)优化初步E-R图,消除冗余(分析法、规范化理论中的函数依赖概念),生成基本E-R图。
1.设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。 公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 (1)试画出E-R图,并在图上注明属性、联系的类型。 (2)将E-R图转换成关系模型。 解:(1) E-R图 (2)这个E-R图可转换3个关系模式: 公司(公司编号,公司名,地址) 仓库(仓库编号,仓库名,地址,公司编号) 职工(职工编号,姓名,性别,仓库编号,聘期,工资) 2. 为某百货公司设计一个E-R模型。 百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。 实体类型“商店”的属性有:店号、店名、店址、店经理。 实体类型“商品”的属性有:商品号、品名、单价、产地。 实体类型“职工”的属性有:工号、姓名、性别、工资。 在联系中应反映出职工参加某商店工作的开始时间、商店销售商品的月销售量。 (1)试画出反映商店、商品、职工实体类型及其联系类型的E-R图。 (2)将E-R图转换成关系模型。
转换为等价的关系模式结构如下: 商店(店号,店名,店址,店经理) 商品(商品号,品名,单价,产地) 职工(工号,姓名,性别,工资,店号,开始时间) 经营(店号,工号,月销售量) 3.某体育运动锦标赛有来自世界各国运动员组成的体育代表团参赛各类比赛项目,包括以下信息: 代表团:团编号、地区、住所 运动员:运动员编号、姓名、年龄、性别 比赛项目:项目编号、项目名、级别 项目类别:类别编号类别名、主管 其中,一个代表团由若干运动员组成,一名运动员可以参加多个比赛项目,每名运动员参加每个比赛项目会有一个比赛成绩和名次,每个项目类别包含多个比赛项目,每个比赛项目只能属于一个项目类别。 (1)试为该锦标赛的比赛情况设计一个ER图 (2)将E-R图转换成关系模型,并注明主键和外键。 解:满足上述需求的ER图如图所示:
[ 如何画数据库ER图 数据库设计中重要的一环首先就是概念设计,也就是说,要从实际问题出发,排除非本质的东西,抽象出现实的数据结构之客观规律——即画出数据结构图——ER图。这是数据库设计的重点,也是数据库设计的难点。 那么,如何才能正确地反映客观现实,将ER图画好呢? 答案是,必须进行正确的需求分析。那么如何进行需求分析呢?需求分析一般有两种方法,一种是结构化分析(SA),一种是面向对象分析(OOA).通过这两种方法的实施以后,都可以得到比较正确的ER图。现在以下面的实际问题为例,通过结构化分析(SA)方法的应用,讲述如何得到比较正确的ER图。 ( 一 ) 校务管理系统 的系统中,有以下功能: 1.管理老师的功能:录入老师情况(姓名.地址.所教课程), 老师缺课记录(名字.时间.原因. 课程) 2.管理学生的功能: 录入学生情况 ( 姓名 . 所选课程 . 成绩 ) 3.教务主任的功能 : 查询统计 1: 教师情况 2: 学生总成绩 3: 学生平均成绩 要求: 1)用结构化方法画出系统顶层图、 0 层图,数据字典。 2)画出该系统的数据模型ER图。 一、结构化分析的需求分析 1)分析实际情况 根据实际情况,我们得到一下情况: (一)教师任课流程: (二)学生选择课程流程:
2)画数据流图(一、)顶层数据流图 (二)0层数据流图
3)画数据字典DD(略)和软件初始结构图 1基本数据=学生基本信息|教师基本信息|课程基本信息|教室基本信息2教师任课信息=教师任课数据|教师考勤信息 3学生选课请求和成绩=学生选课请求|学生成绩 学生基本信息=学号+姓名+性别+年龄+专业+班级 。。。。。。 4)根据数据流图画ER图(属性略) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2005-9-22
第1题: 设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。 ①试画出ER图,并注明属性和联系类型。(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分) 商店(商店编号,商店名,地址,电话) 顾客(顾客编号,姓名,地址,年龄,性别) 消费(商店编号,顾客编号,消费金额,日期) 第2题: 假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程号、课程名。 ①试画出ER图,并注明属性和联系类型。(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分)
学生(学号,姓名,地址,年龄,性别) 课程(课程号,课程名) 教师(职工号,教师姓名,职称,课程) 选课(学号,课程号,成绩) 第3题: 设某商业公司数据库中有三个实体集,一是”公司”实体集,属性有公司编号、公司名、地址等;二是”仓库”实体集,属性有仓库编号、仓库名、地址等;三是”职工”实体集,属性有职工编号、姓名、性别等。每个公司有若干个仓库,每个仓库只能属于1个公司,每个仓库可聘用若干职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 ①试画出E-R图(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分)
宿舍管理系统: 实体集:{学生,楼长,宿舍,外来人员,公寓学生会,纪律,辅导员}对应属性:(第一个为主键) 学生:学号,床号,宿舍号,姓名。 楼长:工号,职务,姓名,电话。 宿舍:宿舍号,楼层,人员。 外来人员:外来编号,姓名,性别,被访人,访问者。 公寓学生会:电话,会长,人员,职务。 纪律:就寝,卫生。 辅导员:工号,所管班级。 实体对应关系模式: 宿舍(宿舍号,楼层,人员) 学生(学号,床号,宿舍号,姓名) 楼长(工号,职务,姓名,电话)
宿舍(宿舍号,楼层,人员) 外来人员(外来编号,姓名,性别,被访人,访问者) 公寓学生会(电话,会长,人员,职务) 纪律(就寝,卫生) 辅导员(编号,所管班级) 实体对应关系模式: 来访(学号,外来编号) 住宿(宿舍号,学号,工号) 管理(宿舍号,学号) 协助(工号,会长) 协作(工号,编号) 遵守纪律(学号,纪律) 现在我们用几个简单的例子来实现并体会我们组的这个宿舍管理系统。 各个实体间都存在相互依赖的关系,比如学生,学生早上出门离开宿舍要接受管理,到楼长处登记是否外带电脑,楼长和学生会存在相互协助的关系,学生会监督学生的住宿行为维护宿舍安全,又比如外来人员,外来人员进去宿舍要登记,与学生间存在访问和被访问的关系。再说很重要又容易被忽视的一个关键点,辅导员实体,辅导员实体连接着学生与楼长之间的关系,学生接受辅导员的管理,辅导员协作楼长的工作,楼长像宿管科反应,辅导员接受信息反馈给学生,以维持学生住宿环境,和住宿质量等等,宿舍管理系统是一个庞大的内容,我们只是以数据库为基础稍加分析,以便更好的理解和学习数据库技术。
第1题: 设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。 ①试画出ER图,并注明属性和联系类型。(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分) 商店(商店编号,商店名,地址,电话) 顾客(顾客编号,姓名,地址,年龄,性别) 消费(商店编号,顾客编号,消费金额,日期) 第2题: 假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程号、课程名。 ①试画出ER图,并注明属性和联系类型。(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分) 学生(学号,姓名,地址,年龄,性别) 课程(课程号,课程名) 教师(职工号,教师姓名,职称, 课程) 选课(学号,课程号,成绩) 第3题: 设某商业公司数据库中有三个实体集,一是”公司”实体集,属性有公司编号、公司名、地址等; 二是”仓库”实体集,属性有仓库编号、仓库名、地址等;三是”职工”实体集,属性有职工编号、姓名、性别等。每个公司有若干个仓库,每个仓库只能属于1个公司,每个仓库可聘用若干职工,每 个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 ①试画出E-R图(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分)
仓库(仓库编号,仓库名,地址,公司编号) 公司(公司编号,公司名,地址) 职工(职工编号,姓名,性别, 仓库编号,聘期,工资) 第4题: 某研究所有多名科研人员,每一个科研人员只属于一个研究所,研究所有多个科研项目,每个科研项目有多名科研人员参加,每个科研人员可以参加多个科研项目。科研人员参加项目要统计工作量。“研究所”有属性:编号,名称、地址, “科研人员”有属性:职工号、姓名、性别、年龄,职称。“科研项目”有属性: 项目号、项目名、经费。 ①试画出ER图,并注明属性和联系类型。(5分) ②将E-R图转换成关系模型,并注明主码和外码(5分) 研究所(编号,名称,地址) 科研人员(职工号,姓名,性别,年龄,职称, 编号) 科研项目(项目号,项目名,经费, 编号) 参^加(职工号,项目号,工作量) 第5题: 现有学生报考系统,实体“考生”有属性:准考证号、姓名、年龄、性别,实体“课程”有属性:课程编号、名称、性质。一名考生可以报考多门课程,考 运动员 m 项目号名称最好成绩
腹有诗书气自华 数据库er 图怎么画 导语: 在进行数据库设计时,最重要的一个环节就是概念的设计,也就是绘制出整个数据的结构,此时就需要用到E-R 模型图,也是实体关系图。那么,在众多的设计工具中,有什么软件可以用来设计数据库E-R 图呢? 免费获取免费数据库设计软件:https://www.wendangku.net/doc/3017670004.html,/software-diagram-tool/databasediagram/ 专业的数据库er 图绘制软件 亿图图示专家是一款非常实用的绘制实体关系图、Chen-ERD 图、ORM 图、数据库模型图、Express-G 图以及Martin ERD 图的工具。亿图软件内置了大量的标准实体关系符号及各种工具,可以更加快速的创建ER 模型图,在功能上可以媲美微软的Visio 。
配置需求: Windows 7, 8, 10, XP, Vista, Citrix Mac OSX 10.10+ Linux Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Mint, Knoppix, RedHat, Gentoo及更多 用亿图图示设计数据库E-R图有哪些优势? 1、亿图软件内置了大量的模型图符号和模型图模板,以及更多的在线模板,可快速创建实体关系模型图即ER模型图。 2、通过拖拽就能简单的说明实体关系图,操作十分简单、智能化。 3、连接线可自动吸附到图形上,让绘图更加的轻松、快捷。 4、内置丰富的模板和实例,以及更多的网页在线模板,可免费下载使用。 5、可以通过浮动按钮,快速对文字、图形属性进行修改,比如:字体、大小、颜色、边框类型、图层位置、对齐方式等等。 腹有诗书气自华
ER图练习题 1、某大学实现学分制,学生可根据自己情况选课。每名学生可同时选修多门课程,每门课程可由多位教师主讲;每位教师可讲授多门课程。其不完整的E-R图如图1所示。 (1)指出学生与课程的联系类型。 (2)指出课程与教师的联系类型。 (3)若每名学生有一位教师指导,每个教师指导多名学生,则学生与教师是如何联系? (4)在原E-R图上补画教师与学生的联系,并完善E-R图。 答: (1)学生与课程联系类型是多对多联系。 (2)课程与教师的联系类型是多对多联系。 (3)学生与教师的联系类型是一对多联系。 (4)完善本题E-R图的结果如图2所示。 2、将如图3所示的E-R图转换为关系模式,菱形框中的属性自己确定。 答:本题的E-R图转换为如下的关系模式: 单位(单位号,地址,电话) 职工(职工号,姓名,性别,年龄,单位号)
3、假定一个部门的数据库包括以下信息: (1)职工的信息:职工号、姓名、地址和所在部门。 (2)部门的信息:部门所有职工、部门名、经理和销售的产品。(3)产品的信息:产品名、制造商、价格、型号及产品的内部编号。(4)制造商的信息:制造商名称、地址、生产的产品名和价格。 试画出这个数据库的E-R图。 答:本题对应的E-R图如图 4所示。 4、某医院病房计算机管理中心需要如下信息: 科室:科名、科地址、科电话、医生姓名 病房:病房号、床位号、所属科室名 医生:姓名、职称、所属科室名、年龄、工作证号
病人:病历号、姓名、性别、诊断、主管医生、病房号 其中,一个科室有多少个病房、多少个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。 完成如下设计: (1)设计该计算机管理系统的E-R图 (2)将该E-R图转换为关系模式结构。 (3)指出转换结果中每个关系模式的候选码。 答:(1)本题的E-R图如图5所示。 (2)对应的关系模式结构如下: 科室(科名,科地址,科电话) 病房(病房号,床位号,科室名) 医生(工作证号,姓名,职称,科室名,年龄) 病人(病历号,姓名,性别,主管医生,病房号) (3)每个关系的候选码如下: 科室的候选码是科名。 病房的候选码是科室名+病房号。 医生的候选码是工作证。 病人的候选码是病历号。 5、设有如下实体: 学生:学号、单位名称、姓名、性别、年龄、选修课名