《2015年数据库原理答案.pdf》由会员分享,可在线阅读,更多相关《2015年数据库原理答案.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章2.6 设有关系R和 S:S A B C 1 457 2 3计算 RUS,R-S,RDS,RXS,71 3,2,。BV 5 (R),R 施1 S,R s解:RUSA B C R-SA B C3 6 73 6 72 5 72 5 77 2 34 4 34 4 33 4 5RXS R.A R.BR nsABC723R.C S.A S.B S.C367345367723257345257723723345723723443345443723Bn3.2(S)C5432。B 5 (R)A B CS.B S.C_7 2 r4 4 3RXS R.A R.BS.A22R.C2.7 设有关系R 和 S:R
2、txiSABcTR ABabcbde计算 R X S,R X S,OA=C(R X S),S X ROBC解:RXS A B C RXS R.ABCa b c aa b d aR.B S.Bb bb bCcdc b c c b b cc b d c b b dd e aS X R B Cb cb d2.1 7设有4个关系:S (S#,S N A M E,A G E,S E X)S C (S#,c n,S C O R E)C (C#,C N A M E,T#)T(T#,T N A M E,T I T L E)试用关系代数表达式表示下列查询语句:检索年龄小于1 7岁的女学生的学号和姓名。检索年男学
3、生所学课程的课程号和课程名。检索男学生所学课程的任课教师的工号和姓名。检索至少选修两门课程的学生学号。检索至少有学号为S 2和S 4学生选修的课程的课程号。检索W A N G同学不学的课程的课程号。检索全部学生都选修的课程的课程号与课程名。检索选修课程包含LIU老师所授全部课程的学生学号。解:“s#.SNAME(。AGE 17八SE X=F(S)(2)H e#,CNAME (0 SE X=M(SX SC X C)(3)L IT#,TNAME(。SEX-M,(SX SCX CX T)(4)JT I(0 1=4 A 2#5(s c x s c)(5)JT 2(O 1=S2 A4=S4A 2=5(S
4、C X SC)(6)Jlc#(C)c#(0 SNAME=WANG(S X S C)3 T c#,CNAME(C x(n s#.c#(SC)n s#(S)31 S#,C#(SC)+n C#(0 TNAME=LIU(C X T)2.2 1在教学数据库的关系S、S C、C中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。试写出该查询的关系代数表达式。画出查询表达式的语法树。使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。解:关系代数表达式为:31 CNAME.TE ACHE R(。SE X=F(SX SC X C X T)上述的关系代数表达式为:31 CNAME.TEACHE
5、R(0 SEX=T(n L(0 S.S#=SC.S#A SC.C#=C.C#(S X SC)X C)此处L 为 S、SC、C 中全部属性(公共属性只取一次)。上述关系代数表达式的语法树如图2.2所示。SEX=FCNAME,TE ACHES.S#=SC.S#ASC.C#=C.#AC.T#=T.T#图22JI 上述的关系代数表达式为:优化后的语法树如图2.3所示。图2.3-JI0XJIS#0SE X=FS第三章3.2对于教学数据库的4个基本表S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)C(C#,CNAME,Ttt)CNAME,TNAME0C.T#=T.T#-_JI71CNA
6、ME,T#T#,TNAME0SC.C#=C.C#Xcsc.c#s.s#=sc.s#一一JIs#,c#s cT(T#,T N A M E,T I T L E)试用S Q L 的查询语句表达下列查询:试用关系代数表达式表示下列查询语句:检索年龄小于1 7 岁的女学生的学号和姓名。检索年男学生所学课程的课程号和课程名。检索男学生所学课程的任课教师的工号和姓名。检索至少选修两门课程的学生学号。检索至少有学号为S 2 和 S 4 学生选修的课程的课程号。检索W A N G 同学不学的课程的课程号。检索全部学生都选修的课程的课程号与课程名。检索选修课程包含L I U 老师所授全部课程的学生学号。解:SE
7、LE CT S#,SNAMEFROM SWHE RE AGE 10ORDER BY 2 DESC,1;SELECT SNAMEFROM SWHERE S#ALL(SELECT S#FROM SWHERE SNAME=WANG)AND AGE X.S#AND Y.AGE(SELECT AVG(AGE)FROM SWHERE SEX=F);SELECT SNAME,AGEFROM SWHERE SEX=MAND AGE ALL(SE LE CT AGEFROMSWHE RE SE X=F);3.8对于下面的关系R 和 S,试求出下列各种联接操作的执行结果:R NATURAL INNER JOIN
8、S R NATURAL RIGHT OUTER JOIN S R RIGHT OUTER JOIN S USING(C)R INNER JOIN S R F U L L O U T E R J O I N S O N f a l s eRA B C SB C Dai bi Cia?b?C2a3 b3 c3bi ci dib2 C2 d2l54 C4相A BDB cAI24ddd124ccc12bba iEnu lDAd2c5C 2I2bb12aaBs.I-It-II-Hii1rIuuunnn71xTXITnnuuucc1 11 11 112mITniBR.124bbb1TIXlxIITxxTu
9、uunnnxTI-IIX123t-Hr-It-HbbbuuunnnAa a 2a 3u lu lu lnnnI2I124124PDIQ1GIQIdIQIdIQIQ1G124124124bbbbbbbbbcR.BR.111222333bbbbbbbbb111322333aaaaaaaaaB工A12cc3.1 2 试用S Q L 更新语句表达对3.2 题教学数据库中关系S、S C、C、T的更新操作:往关系C中插一个课程元组L C 8 L C+:叮6,)。检索所授每门课程平均成绩均大于8 0 分的教师姓名,并把检索到的值送往另一个已存在的表F A C U L T Y (T N A M E)o 在 S
10、 C 中删除尚无成绩的选课元组。把选修L I U 老师课程的女同学选课元组全部删去。把 M A T H S 课不及格的成绩全改为6 0 分。把低于所有课程总平均成绩的女同学成绩提高5%。在 表 S C中修改C4 课程的成绩,若成绩小于等于7 0 分时提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个U PDA T E语句实现,另一种方法是用带CA S E操作的一个U PDA T E语句实现)。在 表 S C中,当某个成绩低于全部课程的平均成绩时,提高5 沆解:IN S ER T IN T O CV A LU ES(C8 ,V C+,T 6);IN S ER T IN T O
11、 FA CU LT Y(T N A ME)SELECT DISTINCT TNAMEFROM T XWHERE NOT EXIST(SELECT*FROM SC,C,T YWHERE SC.C#=C.C#AND C.T#=T.#AND X.T#=Y.T#GROUP BY T#,C.C#HAVING AVG(SECOR)=80);DELETE FROM SCWHERE SCORE IS NULL;DELETE FROM SCWHERE S#IN(SELECT S#FROM S WHERE SEX=F)AND C#IN(SELECT C#FROM C,T WHERE C.T#=T.#AND TNA
12、ME=LIU);UPDATE SCSET SCORE=60WHERE SCORE60AND C#IN(SELECT C#FROM C WHERE CNAME=MATHS);UPDATE SCSET SCORE=SCORE*1.0 5WHERE S#IN(SELECT S#FROM S WHERE SEX=F)AND SCORE70;UPDATE SCSET SCORE=SCORE*1.0 5WHERE C#=C4 AND SCORE70 THEN 1.0 4ELSE 1.0 5ENDWHERE C#=C4;UPDATE SCS ET S COR E=S COR E*1.0 5W HER E S
13、 C0 R E(S ELECT A V G(S COR E)FR OM S C);3.1 3设数据库中有三个关系:职工表 EMP(E#,EN A ME,A GE,S EX,ECIT Y),其属性分别表示职工工号、姓名、年龄、性别和籍贯。工作表 W OR KS (E#,C#,S A LA R Y),其属性分别表示职工工号、工作的公司编号和工资。公司表 COMP(C#,CN A ME,CIT Y),其属性分别表示公司编号、公司名称和公司所在城市。试用S QL语句写出下列操作:用CR EA T E T A B LE语句创建上述三个表,需指出主键和外键。检索超过5 0岁的男职工的工号和姓名。假设每个职
14、工只能在一个公司工作,检索工资超过1 0 0 0元的男性职工工号和姓名。假设每个职工可在多个公司工作,检索在编号为C 4和C 8公司兼职的职工工号和姓名。检 索 在“联华公司”工作、工资超过1 0 0 0元的男性职工的工号和姓名。假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数.显示(E#,N U M,S U M_S A LA R Y),分别表示工号、公司数目和工资总数。工 号 为E 6的职工在多个公司工作,试检索至少在E 6职工兼职的所有公司工作的职工工号。检索联华公司中低于本公司平均工资的职工工号和姓名。在每一公司中为5 0岁以上职工加薪1 0 0元(若职工为多个公司工作
15、,可重复加)。在EMP表和W OR KS表中删除年龄大于6 0岁的职工有关元组。解:CR EA T E T A B LE EMP(E#CHA R (4)N OT N U LL,FOR EIGN KEY(E#)R EFER EN CES EMP(E#),EN A MECHA R(8)N OT N U LL,A GES MA LLIN T,S EXCHA R(l),ECIT YCHA R(2 0),PR IMA R Y KEY(E#);CR EA T E T A B LE COMP(C#CHA R(4)N OT N U LL,CN A MECHA R (2 0)N OT N U LL,CIT YC
16、HA R(2 0),PR IMA R Y KEY(C#);CR EA T E T A B LE W OR KS(E#CHA R(4)N OT N U LL,C#CHA R(4)N OT N U LL,S A LA R YS MA LLIN T,PR IMA R Y KEY(E#,C#),QN Vs.S 8 H3.s mx o m 0 HHHMC 1 W 0 3.S J I H O MW U H(右v q v so A VIo g HS)A mnv ssQN VsU H 3CQt t a .mns a x g HM0d w o j mS MX OM-v d w g0 W V N 0tt0 J3
17、0 q 0 s二(若.A*.zOMV#0 x.u-z.0 H0 HMzs y N OM-*Je ms)s i s wIONi9-W U普0 X 0 HMkS MHOM-*j昌g s)S IS 1 X 0 JON 0汽HMX S上上。M茎x J 3 0-J0 S畜.d n。居S X X OM W OX HA X V-Jv s w ns s v(A mnv s)w f l s W i ns v(苫)I Nn oJttgn g-J g s r w-nxffslQN Vo o s a x v w sQN V-恒太济解-也W V N J QN V3U H3m.ON V#0.牛茎v 0 X 0 HM0so
18、s工七。M v d w g0 W V N 0.vttg.V JO0 W S89*0s-3-Hs.r ns茎U H SCQQN V茎.r a HS M H M3S X X OMcaS MX OM50);DELETE FROM WORKSWHERE E#IN(SELECT E#FROM EMP WHERE AGE60);DELETE FROM EMPWHERE AGE60;3.14对第3.13 题中的关系建立一个有关女职工信息的视图EMPJYOMAN,属性包括(E#,ENAME,C#,CNAME,SALARY)然后对视图EMP_WOMAN操作,检索每一位女职工的工资总数。(假设每个职工可在多个公司
19、兼职)解:CREATE VIEW EMP_WOMANAS SELECT A.E#,A.ENAME,C.C#,CNAME,SALARYFROM EMP A,WORKS B,COMP CWHERE A.E#=B.E#AND B.C#=C.CttAND SEX=F;SELECT E#,SUM(SALARY)FROM EMP_WOMANGROUP BY E#;3.1 5 对于3.2 题的教学数据库中基本表SC,建立一个视图:CREATE VIEW S_SCORE(S#,C_NUM,AVG_SCORE)AS SELECT Sit,COUNT(C#),AVG(SCORE)FROM SCGROUP BY S
20、#;试判断下列查询和更新操作是否允许执行。如允许,写出转换到基本表SC上的相应操作。SELECT*FROM S_SCORE;SELECT S#,C_NUMFROM S_SCOREWHERE AVG_SCORE80;SELECT S#,AVG_SCOREFROM S_SCOREWHERE CNUM(SELECT C_NUMFROM S_SCOREWHERE S#=S4);UPDATE S_SCORESET S#=S3 WHERE S#=S4;DELETE FROM S_SCOREWHERE C_NUM4;答:允许查而。相应的操作如下:SELECT S#,COUNT(C#)AS C_NUM,AVG
21、(SCORE)AS AVG_SCOREF R O M S CG R O U P B Y S#;允许查询。相应的操作如下:S E L E C T S#,C O U N T (C#)A S C _ N U MF R O M S CG R O U P B Y S#H A V I N G A V G (S C O R E)8 0;允许查询。相应的操作如下:S E L E C T S#,A V G (S C O R E)A S A V G _ S C O R EF R O M S CG R O U P B Y S#H A V I N G C O U N T (C#)(S E L E C T C O U
22、N T (C#)F R O M S CG R O U P B Y S#H A V I N G S#=S 4);不允许。C _ N U M是对S C中的学生选修门数进行统计,在未更改S C表时,要在视图S _ G R A D E中更改门数,是不可能的。不允许。在视图S _ S C O R E中删除选修门数在4门以上的学生元组,势必造成SC中这些学生学习元组的删除,这不一定是用户的原意,因此使用分组和聚合操作的视图,不允许用户执行更新操作。第四章4.8 设关系模式R(ABCD),F 是 R 上成立的FD集,F=A-B,CB,则相对于F,试写出关系模式R 的关键码。并说明理由。解:R 的关键码为AC
23、D。因为从已知的F,只能推出ACD一ABCD。4 .10 设关系模式 R(A B C D)上 F D 集为 F,并且 F=A B-*C,C-D,D-A o 试从F求出所有非平凡的F D。试求R的所有候选键。试求R的所有不是候选键的超键。解:从已知的F可求出非平凡的F D有7 6个。譬如,左边是 C 的 F D 有 6 个:C-A,C-D,C-A D,C-A C,C-C D,C-A C D。左边是D的F D有2个:D f A,D-A D o左边是 A B 的 F D 有 12 个:A B-C,A B D,A B C D,A B A C,.。感兴趣的读者可以自行把这7 6个F D写齐。候选犍是能函
24、数决定所有属性的不含多余属性的属性集。根据这个概念可求出R的候选键有三个:A B、B C和B D oR的所有不是候选键的超键有四个:A B C、A B D、B C D和A B C D。4.1 3设关系模式R (A B C D),F是R上成立的F D集,F=A-*B,B-C),试写出属性集B D的闭包(B D)+。试写出所有左部是B的函数依赖(即形为“B-?”)。解:从已知的F,可推出BDB C D,所以(BD)+=BCD。由于B+=BC,因此左部是B 的FD有四个:B 小,B B,B C,B BCo4.14 设关系模式 R(A B C D E)上 F D 集为 F,并且 F=A f B C,C
25、 D-E,B-D,E-*A o 试 求 R的候选键。试 求 B+的值。解:R的候选键有四个:A、E、C D 和 B C。B+=B D o4.1 5 设有关系模式R (A B C).其关系r 如图4.1所小。试判断下列三个F D 在关系r 中是否成立?A-B B C A B A根据关系r,你能断定哪些F D 在关系模式R上不成立?图4.1解:在关系r中,AfB成立,B C f A 不成立,B f A 不成立。在关系r中,不成立的F D 有:B-A,C-A,C-B,C-A B,B C-A。4.1 7 设关系模式R (A B C)分解成P=A B,B C ),如果R上 的 FD集 F=A-B ,那么
26、这个分解是损失分解。试举出R的一个关系r,不满足m 0(r)=r。解:这个反例r 可以举测试时的初始表格:A B(r)X J TB C(r)有四个元组:ABcABaia2bnBCb?ia2ABcaia2bi3aia2asb2ia2bi3b2ia2as即 mP(r)#r。4.1 9 设关系模式R (A B C),F是 R上成立的F D 集,F=(A-C,BTC ,试分别求F在模式AB和 AC上的投影。答:“AB(F)=6(即不存在非平凡的F D)“AC(F)=A C 4.2 0 设关系模式R (A B C),F是 R上成立的F D 集,F=B A,C A ,P=A B,B C 是 R上的一个分解
27、,那么分解P 是否保持F D 集 F?并说明理由。答:已知 F=B-A,C A,而 RAB(F)=B A ,n B C(F)=6,显然,分解P 丢失了 F D C-A。4.21设关系模式R (A B C),F是 R上成立的F D 集,F=B-C,C A ,那么分解P=A B,A C 相对于F,是否无损分解和保持F D?并说明理由。答:已知 F=B-C,C A ,而 8AB(F)=6,n AC(F)=C A 显然,这个分解丢失了 F D B-C用测试过程可以知道,P 相对于F是损失分解。4.2 2 设关系模式R(A B C D),F是 R上成立的F D 集,F=A B,B-C,A-D,D C ,
28、P=A B,A C,B D 是 R 的一个分解。相对于F,P 是无损分解吗?为什么?试求F在P 的每个模式上的投影。P 保持F吗?为什么?答:用测试过程可以知道,P 相对于F是损失分解。AB(F)=A B ,n AC(F)=A C ,“BD(F)=6。显然,分解P 不保持F D 集 F,丢失了 B-C、A D和 D C等三个F D。4.23 设关系模式 R (A B C D),R 上的 F D 集 F=A-C,D-C,B D A ,试说明P=A B,A C D,B C D 相对于F是损失分解的理由。答:据已知的F集,不可能把初始表格修改为有一个全a 行的表格,因此P 相对于 F是损失分解。4.
29、24 设关系模式 R(A B C D)上 F D 集为 F,并且 F=A-B,B-*C,D-B 。R 分解成P=A C D,B D ,试求F 在 A C D 和 B D 上的投影。A C D 和B D 是 B C N F 吗?如不是,试分解成B C N F。解:F 在模式A C D 上的投影为 A f C,D f C),F 在模式B D 上的投影为 D-B o由于模式A C D 的关键码是A D,因此显然模式A C D 不是B C N F。模式A C D 应分解成 A C,A D 或 C D,A D 。但是这个分解不保持F D,丢失了 F D D f C 或A f C。另外,模式B D 已是B
30、CN F。4.2 5 设关系模式口(八8,口),P=AB,BC,CD)是 R的一个分解。设 F l=A-B,B-C,F 2=B-*C,CD 。如果F l 是R 上的F D 集,此时P是否无损分解?若不是,试举出反例。如 果 F 2 是 R 上的F D 集呢?解:据 c h a s e 过程可知,相对于F l,R 分解成P是损失分解。据构造初始表的规则,这个反例可以是下面的表格:rABcD110001100011对于这个r 而言,显然r W m。(r)。据 c h a s e 过程可知,相对于F 2,R 分解成P是无损分解。4.2 6 设关系模式R(ABCD),F是R上成立的F D 集,F=AB
31、CD,A D 。试说明R不是2 N F 模式的理由。试把R分解成2 N F 模式集。答:从已知F D 集 F,可知R的候选键是A B。另外,ABD是一个局部依赖,因此R不是2 N F 模式。此时R应分解成=AD,ABC),P是 2 N F 模式集。4.2 7 设关系模式R (ABC),F是 R上成立的F D 集,F=C-B,B-A 。试说明R不是3 N F 模式的理由。试把R分解成3 N F 模式集。答:从已知F D 集 F,可知R的候选键是C。从 CB 和 BA,可知CA 是一个传递依赖,因此R不是3 N F 模式。此时R应分解成 P=CB,BA,P是3 N F 模式集。4.2 8设有关系模
32、式R (职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题:(1)根据上述规定,写出模式R的基本F D和关键码;(2)说 明R不 是2 N F的理由,并 把R分解成2 N F模式集;(3)进而分解成3 N F模式集。解:(1)基本的F D有三个:(职工编号,日期)一 日营业额职工编号 一 部 门 名部 门 名 一 部门经理R的关键码为(职工编号,日期)。(2)R中有两个这样的F D:(职工编号,日期)f(部门名,部门经理)职 工 编
33、号 一(部门名,部门经理)可见前一个F D是局部依赖,所 以R不 是2 N F模式。R应分解成R 1 (职工编号,部门名,部门经理)R 2 (职工编号,日期,日营业额)此处,R 1和R 2都是2 N F模式。(3)R 2已是3 N F模式。在R 1中,存在两个F D:职 工 编 号 一 部门名部 门 名 一 部 门 经 理因此,“职 工 编 号 一 部门经理”是一个传递依赖,R 1不 是3 N F模式。R 1应分解成R 1 1 (职工编号,部门名)R 1 2 (部门名,部门经理)这样,P=R l l,R 1 2,R 2 是一个3 N F模式集。4.2 9设有关系模式R (运动员编号,比赛项目,
34、成绩,比赛类别,比赛主管)存储运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:(1)根据上述规定,写出模式R的基本F D和关键码;(2)说 明R不 是2 N F的理由,并 把R分解成2 N F模式集;(3)进而分解成3 N F模式集。解:(1)基本的F D有三个:(运动员编号,比赛项目)一 成绩比赛项目一比赛类别比 赛 类 别 一 比赛主管R的关键码为(运动员编号,比赛项目)。(2)R中有两个这样的F D:(运动员编号,比赛项目)一(比赛类别,比赛主管)比 赛 项 目 一(
35、比赛类别,比赛主管)可见前一个FD是局部依赖,所以R 不是2NF模式。R 应分解成R1(比赛项目,比赛类别,比赛主管)R2(运动员编号,比赛项目,成绩)这里,R1和 R2都是2NF模式。(3)R 2已是3NF模式。在 R1中,存在两个FD:比赛项目一 比赛类别比赛类别一比赛主管因此,“比赛项目一 比赛主管”是一个传递依赖,R1不是3NF模式。R1应分解成R11(比赛项目,比赛类别)R12(比赛类别,比赛主管)这样,P=RI1,R12,R2 是一个3NF模式集。4.3 0 设关系模式R(A BCD),在 R 上有五个相应的FD集及分解:(1)F=BC,DA,P=BC,AD(2)F=AB-C,C一
36、A,C一D,P=ACD,BC)(3)F=A 一 BC,CAD,P=ABC,AD)(4)F=A-B,B-C,C一D,P=AB,ACD(5)F=A-B,B-C,CD,P=AB,AD,CD 试对上述五种情况分别回答下列问题:确 定 R 的关键码。是否无损分解?是否保持FD集?确 定 P 中每一模式的范式级别。解:(1)R 的关键码为BD。P 不是无损分解。P 保持FD集 F。P 中每一模式已达到BCNF级别。(2)R 有两个关键码:AB和 BC。P 是无损分解。因为“A C D(F)=C-A,C-D,”B C(F)=6 (没有非平凡的 FD),所以P 不保持F D,丢失了 A B-C。P 中两模式均
37、已达到BCNF级别。(3)R 有两个关键码:A 和 C P 是无损分解。因为 口 A B C(F)=A-BC,C f A,n AD(F)=A-D ,所以 P保持FDo 在模式ABC中,关键码是A 或 B C,属性全是主属性,但有传递依赖(A fBC,B C-A)。因此模式ABC是 3N F,但不是BCNFo而模式AD显然已是BCNF。(4)R 的关键码为A。P 是无损分解。因为 RAB(F)=A-B ,n ACD(F)=A-C,C-D ,从这两个依赖集推不出原来的B-C,因此P 不保持F D,丢失了 B-C。模 式 AB是 BCNF,模式ACD不是3N F,只达到2NF级别。(5)R的关键码为
38、A。P不是无损分解。因 为“A B(F)=A fB ,nAD(F)=A-D,n CD(F)=C-D ,从这三个依赖集推不出原来的B-C,因此P不保持F D,丢失了 B-Co P中每个模式均是BCNF级别。第五章5.1 3设某商业集团数据库中有三个实体集。一 是“商店”实体集,属性有商店编号、商店名、地址等;二 是“商品”实体集,属性有商品号、商品名、规格、单价等;三 是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工
39、只能在一个商店工作,商店聘用职工有聘期和月薪。(1)试画出E R图,并在图上注明属性、联系的类型。(2)将E R图转换成关系模型,并注明主键和外键。解:(1)E R图如图5.1所示。商店商品 职工图5.1(2)这 个E R图可转换4个关系模式:商 店(商店编号,商 店 名,地址)职 工(职工编号,姓 名,性别,业绩,商店编号,聘 期,月薪)商 品(商品号,商 品 名,规格,单价)销 售(商店编号,,商尾号,月 销 售 量)5.1 4设某商业集团数据库中有三个实体集。是“公司”实体集,属性有公司编号、公司名、地址等;二 是“仓库”实体集,属性有仓库编号、仓库名、地址等;三 是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。i.试画出E R图,并在图上注明属性、联系的类型。ii.将E R图转换成关系模型,并注明主键和外键。解:(1)E R图如图5.2所示。司=ALL(SE LE CT COUNT(C#)FROM S,SCWHE RE S.S#=SC.S#AND SE X=,MGROUP BY S.S#);