数据库原理与应用 下载本文

1、设R={A,B,C},F={A→C,B→C},ρ={AB,AC},分解是否无损联接分解?试说明理由。 设R1=AB,R2=AC,因为R1∩R2=A,R2-R1=C,而A→C(已知),故R1∩R2→R2-R1成立,根据定理,分解ρ为无损联接分解。

2、试给出一关系模式R(U),说明该模式满足3NF但不满足BCNF。

设某关系模式R(ABC),函数依赖F={A→B,B→A,A→C},A为关键字,不存在非主属性对关键字的部分依赖和传递现象,R(U)属于3NF,但有B→A,而B为决定因素但不是关键字,故该关系模式不满足BCNF要求。

3、证明关系模式R(U)满足BCNF则必满足3NF。

满足BCNF就没有主属性对主键的部分传递函数依赖,3NF为无传递依赖,故满足BCNF则必满足3NF。

4、设有关系模式R(SNO,CNO,SCORE,TNO,DNAME),函数依赖集F ={(SNO,CNO)→SCORE,CNO→TNO,TNO→DNAME},试分解R为BCNF。

解:初始化ρ={R},求得候选关键字为{SNO,CNO}。首先从R中分解出关系(TNO,DNAME),得ρ={ R1(TNO,DNAME),R2(SNO,CNO,SCORE,TNO)},其中R1为BCNF,R2不是BCNF,再求出R2的候选关键字为{SNO,CNO},从R2中分解出关系(CNO,TNO),则ρ={ R1(TNO,DNAME),R3(CNO,TNO),R4(SCO,CNO,SCORE)},R1、R3、R4都属于BCNF,分解完成。

7、设有关系模式R(SNO,SNAME,SEX,DNO,DNAME),函数依赖F={SNO→SNAME,SNO→SEX,SNO→DNO,DNO→DNAME}.试判断R的最高范式,试说明理由。如何分解?

R最高范式为2NF,由函数依赖F可以得到SNO为候选关键字。因为没有任何非主属性对候选关键字部分依赖所以R∈2NF.但是由于SNO→DNO,DNO→DNAME,故存在非主属性DNAME对候选关键字SNO传递依赖,所以R不是3NF关系,可以将R(SNO,SNAME,SEX,DNO,DNAME)分解成R1(SNO,SNAME,SEX,DNO)和R2(DNO,DNAME),它们就可达到BCNF

8、证明armstrong公理及推论

① A1自反律:若Y?X,则X→Y为F所蕴含

证明:设Y?X?U。对R的任一关系r中的任意两个元组t,s: 若t[X]=s[X],由于Y X,则有t[Y]=s[Y],所以X→Y成立,自反律得证。 ② A2增广律:若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含

证明:设X→Y为F所蕴含,且Z?U。对R的任一关系r中的任意两个元组t,s: 若t[XZ]=s[XZ],由于X ?XZ,Z? XZ,根据自反律,则有t[X]=s[X]和t[Z]=s[Z]; 由于X→Y,于是t[Y]=s[Y],所以t[YZ]=s[YZ];所以XZ→YZ成立,增广律得证。 ③ A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含

证明:设X→Y及Y→Z为F所蕴含。对R的任一关系r中的任意两个元组t,s: 若t[X]=s[X],由于X→Y,有t[Y]=s[Y];

再由于Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含,传递律得证。 ④ 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含

证明:因X→Y ,所以X→XY (增广律 XX→XY即X→XY)因X→Z ,所以XY→YZ (增广律) 因X→XY,XY→YZ故X→YZ (传递律)

⑤ 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含

证明:因X→Y ,所以WX→WY (增广律)因WY→Z ,所以XW→Z (传递律) ⑥ 分解规则:若X→Y,Z∈Y,则X→Z为F所蕴含

证明:因Z∈Y 所以Y→Z (自反律)因X→Y 所以X→Z (传递律)

1

1.数据库实施主要包括四个方面的工作,即数据库定义描述、数据载入、应用程序编制调试、数据库试运行。

2.数据库系统包括存储结构、逻辑结构、外部结构三级结构。 3.实体间联系可分为一元联系、二元联系、多元联系三种。 4.数据库恢复常采用转储、建立日志两种方式。

5.合并局部E-R模型时主要考虑解决三类冲突,即属性冲突、命名冲突、结构冲突,其中命名冲突又可分为同名异义、异名同义两类。

6.DBMS对数据库的封锁通常有三种,即X锁、(S,X)锁、(S,U,X)锁。

7. 数据库系统通常包括数据库、数据库管理系统、操作系统、计算机硬件、用户五部分。 8. 数据库故障主要有事务故障、系统故障、介质故障三类。

9. SQL语言的特点主要体现在集中统一、高度非过程化、面向集合操作模式、以同一种语法结构提供两种工作方式四个方面。 SQL的含义是结构化查询语言,C语言属于过程化语言 0. 设某关系模式R(ABCD),依赖集{B→D,D→B,AB→C},则R的关键字为AB。 1. 若X→→Y为属性集U上定义的一个多值依赖,则该多值依赖为平凡多值依赖的条件依据是U-X-Y=Ф。

2. 关系代数的五种基本关系运算为并、差、笛卡尔乘积、投影、选择。

关系代数中传统的关系运算包括并、交、差、笛卡尔积四种。取出属性是投影 3. 信息模型通常用E-R模型来刻划,传统的数据模型是指层次模型、网状模型和关系模型。 4. DBMS是一种负责数据库的定义、建立、操纵、维护、控制的软件系统。

5. 数据库的安全保护措施主要有使用权限鉴别、使用范围鉴别、存取控制权鉴别三种。 6. 数据库的三级结构可以分别用存储模式(内)、模式(概)、子模式(外)三种模式加以描述。

两级映像是指外模式/概念模式和概念模式/内模式。

7. 数据库控制通常包括安全性控制、完整性控制、并发控制、故障恢复四个方面的内容。 8. 数据的冗余是指数据的重复、浪费现象。数据的不一致性是指数据的不相容性和矛盾性。 9.数据库保护包括安全性保护、完整性保护、并发控制、故障恢复四个方面内容。 0.二元实体间的联系通常可分为1:1、1:n、m:n三种。

1.数据库系统中数据的独立性包括物理独立性、逻辑独立性两个方面。 2.数据库设计通常包括结构特性(静态)、行为特性(动态)两方面内容。 3.根据数学理论,关系操作通常有关系代数、关系演算两类。 4.构成E-R图的三个基本要素为实体、属性、联系。

5.若商品关系G(GNO,GN,GQ,GC)中,GNO、GN、GQ、GC分别表示商品编号、商品名称、数量、生产厂家,若要查询“上海电器厂生产的其数量小于100的商品名称”用关系代数可表示为∏GN(σ

GC=“上海电器厂”∧GQ<100

(G))。

6.IBM公司的研究员E. F. Codd于1970年发表了一篇著名论文,主要是论述关系模型。 7.判断分解后的关系模式是否合理的两个重要标志是分解是否满足关系的无损连接性(不失真)和依赖保持性。

8.数据处理技术的三个发展阶段是指:人工管理阶段、文件系统管理阶段、数据库管理阶段。 9.数据的共享性主要体现在多个用户、现在和将来的、不同语言的、同时四个方面。 0.当前数据库学科的三个主要研究领域包括:数据库理论、数据库设计、DBMS研究。 1.并发操作所引起的数据不一致性主要有:丢失更新、不可重复读、“脏”数据读出三类。 2.交运算是扩充运算,可以用差运算推导出,其等式为R∩S=R-(R-S)。 3.常用的数据库设计方法主要有直观法、辅助法、自动化法、规范法四种。

2

4.数据库的完整性是指正确性、有效性、相容性。数据的正确性和相容性 5.关系演算可分为元组演算和域关系演算两部分。

6.数据库中对数据的基本操作通常包括插入、删除、查询、修改四种。

7.若关系模式R(A,B,C,D,E)中,A为键,且存在函数依赖C→E,则该关系模式能够达到的最高范式为2NF。

8.在数据库的并发操作中,我们把某事务由于长期申请不能获得批准而处于永久等待的现象称为活锁。有两种基本类型的锁,它们是共享锁和排他锁。

9.根据数据库系统的三级结构所定义的数据库的三个抽象层次为物理级、概念级、用户级。 0.要保证数据库的完整性,通常事务应具有原子性、一致性、隔离性、持久性四个基本特征。 1.数据库的静态完整性约束可分为静态列级约束、静态元组级约束、静态关系级约束三种。 2.数据库术语中,描述数据信息的三个世界是指现实世界,数据世界,信息世界。 3.层次模型、网状模型与关系模型间存在着本质的区别,我们通常又把前两种模型称之为格式化模型。

4.根据数据库系统的组成原则,其最内层应为硬件。

5.设关系模式R(ABCD),函数依赖{B→D,D→B,AB→C},则R的关键字为AB。

6.对于查找要求中表示“所有”含义的查找,在SQL中无法直接实现,但可以转化为用等价的存在量词EXISITS进行运算。

7.SQL以同一种语法结构提供了两种对数据库的操作使用方式,即自含式和嵌入式。 8.联接运算是扩充运算,可以用笛卡尔积运算和选择运算推导出。 9.数据模型是由数据结构、数据操作、完整性约束三部分组成。

0.层次模型的数据结构是树结构,网状模型的数据结构是有向图结构,关系模型的数据结构是二维表结构。

1.数据库管理系统的主要功能有数据定义、数据库操纵功能、数据库的运行管理、数据库的建立和维护等四个方面。SQL具有的主要功能有数据定义、数据操纵、数据控制。 2.数据库语言包括数据描述语言、数据操纵语言两大部分,前者负责描述和定义数据库的各种特性,后者说明对数据进行的各种操作。 3.描述数据库各级数据结构的叫数据字典。 4.关系操作的特点是集合操作。

5.关系模型的完整性规则包括实体完整性、参照完整性和用户定义的完整性规则。 6.连接运算是由笛卡尔积和选择操作组合而成的。自然连接是由笛卡尔积、选择和投影组合。 7.关系数据库中可命名的最小数据单位是属性名。事务是DBMS的基本单位。

8.与having同时使用的是group by,exists是存在量词。排序order by,修改表alter 9.在SQL中视图是由基本表或视图产生的虚表,不能存放数据,只存储视图的定义。 0.在SQL对应的三级模式中,关系模式对应基本表,关系子模式对应视图,存储模式对应存储文件。

1.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则是保持原有的依赖关系和无损连接。

2.关系模式的操作异常问题往往是由数据冗余引起的。 3.函数依赖完备的推理规则集包括自反律、增广律和传递律。 4.建立E-R模型是数据库设计需求分析阶段的任务。

5.数据库设计的步骤依次是需求分析、概念设计、逻辑设计、物理设计、实现、运行与维护。 6.数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程。

3

程序设计题

1.设有关系: C(CNO,CNAME,PCNO) SC(SNO,CNO,SCORE) S(SNO,SNAME,AGE,SEX) 其中:C为课程表关系,对应的属性分别是课号、课程名和选修课号;SC为学生选课表关系,对应的属性分别是学号、课号和成绩;S表示学生,它的各属性依次为学号、姓名、年龄和性别。用SQL语言写出:

(1)对关系SC中课号等于C1的选择运算。 (2)对关系C的课号、课程名的投影运算。 (3)对C和SC两个关系的自然连接运算。(4)求每一课程的间接选修课(即选修课的选修课)。(5)将学号为“S1”的学生年龄改为20。(6)建立一反映各学生总成绩的视图S_ZCJ,视图包括学号、姓名、总成绩三列。 (1)SELECT *

FROM SC WHERE CNO='C1'; (2)SELECT CNO,CNAME FROM C;

(3)SELECT C.CNO,C.CNAME,C.PCNO,SC.SNO,SC.SCORE FROM C,SC

WHERE C.CNO=SC.CNO;

(4)SELECT first.CNO,second.PCNO FROM C AS first,C AS second WHERE first.PCNO=second.CNO;

(5)UPDATE S SET AGE=20 WHERE SNO=‘S1’ (6)CREATE VIEW S_ZCJ(学号,姓名,总成绩) AS SELECT S.SNO,SNAME,SUM(SCORE) FROM S,SC WHERE S.SNO=SC.SNO GROUP BY SNO 2.设有如下4个关系模式:

S(SN,SNAME,CITY)P(PN,PNAME,COLOR,WEIGHT)J(JN,JNAME,CITY)SPJ(SN,PN,JN,QTY)其中:S表示供应商,SN为供应商编码,SNAME为供应商名字,CITY为供应商所在城市;P表示零件,PN为零件编码,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量;J表示工程,JN为工程编码,JNAME为工程名字,CITY为工程所在城市;SPJ表示供应关系,QTY表示提供的零件数量。 写出实现以下各题功能的SQL语句:

(1)取出所在城市为上海的所有工程的全部细节(2)取出为工程Jl提供零件P1的供应商编码(3)取出由供应商S1提供零件的工程名称(4)取出供应商S1提供的零件的颜色。(5)取出为工程J1和J2提供零件的供应商编码(6)取出这样一些供应商编码,他们能够提供至少一种提供红色零件的供应商所提供的零件(7)取出所有工程的全部细节(8)取出所在城市为南京的所有工程的全部细节(9)取出为所在城市为上海的工程提供零件的供应商编码(10)取出为所在城市为上海或北京的工程提供红色零件的供应商编码(11)取出供应商与工程所在城市相同的供应商提供的零件编码(12)取出至少由一个和工程不在同一城市的供应商提供零件的工程编码(13)取出上海供应商不提供任何零件的工程编码(14)取出所有这样的一些二元组,使得第1个城市的供应商为第2个城市的工程提供零件。 (15)取出重量最轻的零件编码(16)取出为工程J1提供红色零件的供应商编码(17)取出上海的供应者提供给上海的任一工程的零件的编码(18)找出北京的任何工程都不购买的零件的零件号(19)按工程号递增的顺序列出每个工程购买的零件总量

4

(1)SELECT * FROM J

WHERE CITY=’上海’; (2)SELECT SN FROM SPJ

WHERE JN=’J1’ AND PN=’P1’; (3)SELECT JNAME FROM SPJ,J

WHERE SN=’S1’ AND SPJ.JN=J.JN ; (4)SELECT DISTINCT COLOR FROM P WHERE PN IN (SELECT PN FROM SPJ

WHERE SN=’S1’); (5)SELECT SN FROM SPJ

WHERE JN=’J1’ AND SN IN (SELECT SN FROM SPJ

WHERE JN=’J2’);

(6)SELECT DISTINCT SPJ.SN FROM P,SPJ WHERE SPJ.PN IN (SELECT SPJ.PN FROM SPJ,S, P

WHERE S.SN=SPJ.SN AND P.PN=SPJ.PN AND P.COLOR=’红’); (7)SELECT * FROM J; (8)SELECT * FROM J

WHERE CITY=’南京’; (9)SELECT DISTINCT SN FROM SPJ WHERE JN IN (SELECT JN FROM J

WHERE CITY=’上海’); (10)SELECT SN FROM SPJ WHERE JN IN (SELECT JN

5

FROM J

WHERE CITY=’上海’ OR CITY=’北京’) AND PN IN (SELECT PN FROM P

WHERE COLOR=’红’) (11)SELECT SPJ.PN FROM S,J,SPJ

WHERE S.SN=SPJ.SN AND J.JN=SPJ.JN AND S.CITY=J.CITY; (12)SELECT DISTINCT SPJ.JN FROM S,J,SPJ

WHERE S.SN=SPJ.SN AND J.JN=SPJ.JN AND S.CITY<>J.CITY; (13)SELECT JN FROM J

WHERE JN NOT IN (SELECT DISTINCT JN FROM SPJ WHERE SN IN (SELECT SN FROM S

WHERE CITY=’上海’)); (14)SELECT S.CITY,J.CITY FROM S,J,SPJ

WHERE S.SN=SPJ.SN AND J.JN=SPJ.JN; (15)SELECT PNO FROM P

WHERE WEIGHT=(SELECT MIN(WEIGHT) FROM P); (16)SELECT DISTINCT SNO FROM SPJ,P

WHERE SPJ.JNO='J1' AND SPJ.PNO=P.PNO AND P.COLOR='红'; (17)SELECT DISTINCT P.PNO FROM S,J,P,SPJ

WHERE P.PNO=SPJ.PNO AND SPJ.SNO=S.SNO AND SPJ.JNO=J.JNO AND S.CITY='上海' AND J.CITY='上海'; (18)SELECT PNO FROM P

WHERE NOT EXISTS (SELECT * FROM SPJ,S

WHERE SPJ.供应商号=S.供应商号 AND SPJ.PNO=P.PNO AND S.SCITY='北京') (19)SELECT JNO,SUM(QTY) FROM SPJ

6

GROUP BY JNO ORDER BY JNO ASC

3.设有如下4个关系模式:

书店(书店编号,书店名,地址) 图书(书号,书名,定价)

图书馆(馆号,馆名,城市,电话) 图书发行(馆号,书号,书店号,数量)设各关系模式中的数据满足下列问题,请解答: (1)用SQL语句定义图书关系模式(2)用SQL语句检索已经发行的图书中最贵和最便宜的书名和定价(3)用SQL语句插入一本图书信息:(“B1001”,“数据结构”,23.5)(4)写出下列SQL语句所表达的中文含义: SELECT 馆名 FROM 图书馆 WHERE 馆名IN (SELECT 馆号 FROM 图书发行 WHERE 书号 IN(SELECT 书号 FROM 图书 WHERE 书名=‘数据库系统基础’ (1)CREATE TABLE 图书(书号 CHAR(5) PRIMARY KEY, 书名 CHAR(10), 定价 DECIMAL(8,2));

(2)SELECT 图书.书名,图书.定价 FROM 图书

WHER 定价=(SELECT MAX(定价) FROM 图书,图书发行

WHERE 图书.书号=图书发行.书号) SELECT 图书.书名,图书.定价 FROM 图书 WHER 定价=(SELECT MIN(定价) FROM 图书,图书发行

WHERE 图书.书号=图书发行.书号)

(3)INSERT INTO 图书 VALUES(‘B1001’,‘数据结构’,23,5); (4)查询拥有已发行的‘数据库系统基础’一书的图书馆馆名。 4.关于教学数据库的关系模式如下:

S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)

(1)检索王立老师所授课程的课程号和课程名(2)检索学号为10001学生所学课程的课程名与任课教师(3)检索至少选修王立老师所授课程中一门课程的女学生姓名(4)检索张伟同学不学的课程的课程号(5)检索全部学生都选修的课程的课程号与课程名(6)检索选修课程包含王立老师所授课程的学生学号(7)在表C中统计开设课程的教师人数(8)求LIU老师所授课程的每门课程的平均成绩(9)求选修C4课程的女学生的平均年龄(10)统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列(11)在表SC中检索成绩为空值的学生学号和课程号(12)求年龄大于女同学平均年龄的男学生姓名和年龄。 (1)SELECT C#, CNAME (2)SELECT CNAME, TEACHER FROM C

FROM SC, C

WHERE SC.C#=C.C# AND S#='10001';

WHERE TEACHER='王立'; FROM S, SC, C

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX='女' AND TEACHER='王立'; (4)SELECT C# FROM C

7

(3)采用连接查询方式:SELECT SNAME

WHERE NOT EXISTS (SELECT * FROM S, SC

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME='张伟'); (5)SELECT C#,CNAME FROM C

WHERE NOT EXISTS (SELECT * FROM S

WHERE NOT EXISTS (SELECT * FROM SC

WHERE S#=S.S# AND C#=C.C#)); (6)SELECT DISTINCT S# FROM SC X WHERE NOT EXISTS (SELECT * FROM C

WHERE TEACHER=’王立’ AND NOT EXISTS (SELECT * FROM SC Y

WHERE Y.S#=X.S# AND Y.C#=C.C#)); (7)SELECT COUNT(DISTINCT TEACHER) FROM C;

(8)SELECT C.C#,AVG(GRADE) FROM SC,C

WHERE SC.C#=C.C# AND TEACHER=’LIU’ GROUP BY C.C#; (9)SELECT AVG(AGE) FROM S,SC

WHERE S.S#=SC.S# AND C#=’C4’AND SEX=’F’; (10)SELECT S#,COUNT(C#) (11)SELECT S#,C# FROM SC

FROM SC

WHERE GRADE IS NULL;

GROUP BY S#

HAVING COUNT(*)>5 ORDER BY 2 DESC,1; (12)SELECT SNAME,AGE FROM S

WHERE SEX=’M’

AND AGE>(SELECT AVG(AGE) FROM S

WHERE SEX=’F’);

8

综合题

1、设有2个实体:学生S:学号SNO,姓名SNAME,性别SEX,年龄AGE,所在系DNAME;课程C:课程号CNO,课程名CNAME,学分CREDIT,预选课程PRE_CNO;学生和课程之间存在联系:一个学生可选修多门课程,一门课程可被多个学生选修。每个学生修一每门课程有一个成绩。 试完成如下工作:(1)画实体间相互联系的E-R图(2)构造相应的关系数据库模式(3)用SQL语言为关系模式建立相应的基表(4)将所建基本表的查询、修改权限授予User1,并将成绩的查询权限授给所有用户。 (1)E-R图(4分):

(2)关系数据库模式(3分):

学生S(学号,姓名,性别,年龄,所在系) 课程C(课程号,课程名,学分,预选课程) 选修SC(学号,课程编号,成绩) (3)(3分)CREATE TABLE S ( SNO CHAR(6) PRIMARY KEY, SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), DNAME VARCHAR(12)); CREATE TABLE C

( CNO CHAR(2) NOT NULL, CNAME VARCHAR(24) NOT NULL, CREDIT SMALLINT, PRE_CNO CHAR(2), PRIMARY KEY(CNO)); CREATE TABLE SC ( SNO CHAR(6) NOT NULL, CNO CHAR(2) NOT NULL, SCORE SMALLINT, PRIMARY KEY(SNO,CNO), FOREIGN KEY(SNO)

REFERENCES S(SNO) ON DELETE CASCADE, FOREIGN KEY(CNO)

REFERENCES C(CNO) ON DELETE NO ACTION); (4)(2分)GRANT SELECT,UPDATE ON S TO User1 GRANT SELECT,UPDATE ON C TO User1 GRANT SELECT,UPDATE ON SC TO User1 GRANT SELECT (SCORE) ON SC TO PUBLIC;

2、设有如下SB设备信息:BH――设备编号(字符型,长度8),XH――设备型号(字符型,长度10),GL――功率(字符型,长度6),SL――数量(数值型,长度8,小数为0)。要求: (1)用SQL语言定义相应的基表,并定义关键字,规定功率数据项不能为空(2)将元组(‘SB0121’,‘BJDJ-500’,‘500W’,40)插入该表(3)将对该表的修改、删除权限授予User1,并将对设备编号的修改权限授予User2

9

(1)CREATE TABLE SB(BH CHAR(8)PRIMARY KEY, XH CHAR(10), GL CHAR(6) NOT NULL, SL SMALLINT)

(2)INSERT INTO SB VALUES (‘SB0121’,‘BJDJ-500’,‘500W’,40) (3)GRANT UPDATE,DELETE ON SB TO User1 GRANT UPDATE(BH) ON SB TO User2

3.商品名称(字符型,长度8),商品型号(字符型,长度10),供货厂名(字符型,长度20),厂址(字符型,长度40),联系人(字符型,长度8),电话(字符型,长度10),订货单号(数字型,长度10),订货数量(数字型,长度8)。要求:

(1)画实体间相互联系的E-R图(2)构造相应的关系数据库模式(3)用SQL语言为关系模式建立相应的基表(4)将所建基表的查询、修改权限授予User1,并将设备型号的修改权限授给User2(所有用户) (1)E-R图:

(2)关系数据库模式: 商品(MC,XH) 关键字:MC

供货厂(CM,CZ,LXR,DH) 关键字:CM 订货(DH,MC,CM,SL) 关键字:DH

(3)CREATE TABLE SP(MC CHAR(8) PRIMARY KEY, XH CHAR(10))

CREATE TABLE GHC(CM CHAR(20) PRIMARY KEY, CZ CHAR(40),LXR CHAR(8),DH CHAR(10)) CREATE TABLE DH(DH SMALLINT PRIMARY KEY, MC CHAR(8),CM CHAR(20),SL SMALLINT) (4)GRANT SELECT,UPDATE ON SP TO User1 GRANT SELECT,UPDATE ON GHC TO User1 GRANT SELECT,UPDATE ON DH TO User1

GRANT UPDATE(XH) ON SP TO User2(Public)

4.设有如下信息:下列E-R图是反映产品与仓库两实体间联系的信息模型,要求: (1)给出该E-R图的关系数据库模式,并指出相应的关键字(2)若仓库号、仓库名及仓库地均为字符型且长度均为10,用SQL语言为仓库关系建立相应的基表并说明实体完整性规则(3)将仓库基表的查询权限授予所有用户,收回User3对仓库的查询权限。 (1)仓库W(仓库号W#,仓库名WN,地址WA) 关键字:W# 产品P(产品号P#,产品名称PN,规格PS,型号PM) 关键字:P# 存放L(仓库号W#,产品号P#,数量QTY) 关键字:(W#,P#) (2)CREATE TABLE W(W# CHAR(10) PRIMARY KEY, WN CHAR(10), WA CHAR(10))

(3)GRANT SELECT ON W TO PUBLIC REVOKE SELECT ON W FROM User3

10

5.设学校教师授课事件包括两个实体:教师T和课程C,相关属性信息描述:TN(教师姓名)、TT(职称)、TTEL(联系电话)、CN(课程名称)、CB(教材名)、CR(上课教室),若一门课程由多个教师讲授,一个教师讲授多门课程,教师姓名唯一。教师在某班级授课,其上课教室CR是固定的。但同样的课程由于不同的班级要求程度不同,其所选教材CB存在差异。要求:

(1)试画出反应上述事件的E-R模型,并注明实体间的联系类型(2)构造相应的关系数据库模式,并给出相应的关键字及外关键字(3)若关系模式不满足3NF要求,分解使其满足3NF要求,并说明满足3NF要求的理由。 解

(2)T(TN,TT,TTEL)C(CN)CL(CLNO,CN,TN,CB,C

R)

6.若关系模式R(A,B,C,D,E),存在函数依赖{AB→CE,E→AB,C→D}。问: (1) 给出R的关键字。

(2)R最高满足第几范式要求?为什么? (3)分解ρ={R1,R2},其中R1(A,B,E),R2(E,C,D)。R1、R2最高满足第几范式要

求?分解满足无损联接性吗?请给出必要的说明或证明。

(1)关键字为:E(2)满足2NF,存在传递依赖(3)R1满足BCNF,因为每个决定因素都是关键字,R2满足2NF E为关键字,不存在部分依赖,但有传递依赖E→C,C→D 分解满足无损联接性,因为R1∩R2=E,R1-R2=(A,B)由于E为关键字,故E→(A,B),即: R1∩R2→(R1-R2),符合无损联接性判别定理。

7.设存在关系模式S(CS,B,ST,TM,RM,G),其中CS表示课程,B表示参考书,ST表示学生,TM表示上课时间,RM表示教室,G表示成绩。属性间的依赖关系为:{(CS,ST)→G,(TM,RM)→CS,(TM,ST)→RM,CS→B} (1) 给出该关系模式的键,并做简要说明(2) 该关系模式最高满足第几范式要求?为什么?(3) 若将S分解为S1(CS,ST,G,B)和S2(TM,ST,RM),则关系模式S1、S2最高满足第几范式要求?为什么?(4) 若将S1分解为S11(CS,B)和S12(CS,ST,G),请说明该分解满足无损连接性。 TM,ST 2NF

S1:1NF,S2:3NF 8.设有如下实体:

学生:学号、单位名称、姓名、性别、年龄、选修课名 课程:编号、课程名、开课单位、认课教师号 教师:教师号、姓名、性别、职称、讲授课程编号 单位:单位名称、电话、教师号、教师姓名

上述实体中存在如下联系:(1)一个学生可选多门课程,一门课程可被多个学生选修(2)一个教师可讲授多门课程,一门课程可由多个教师讲授(3)一个单位可有多个教师,一个教师只能属于一个单位。试完成如下工作:

(1) 分别设计学生选课和教师任课两个局部E-R图。 (2) 将上述设计完成的E-R

11

图合并成一个全局E-R图。

(3) 将全局E-R图转换为等价的关系模式表示的数据库逻辑结构

为避免复杂,合并的全局E-R图中省略了以下各实体的属性:

12

单位:单位名称,电话 学生:学号,姓名,性别,年龄 教师:教师号,姓名,性别,职称 课程:编号,课程名 (3)该全局E-R图转换为等价的关系模式表示的数据逻辑结构如下:

单位(单位名称,电话) 教师(教师号,姓名,性别,职称,单位名称) 课程(教师号,姓名,性别,职称,单位名称)学生(学号,姓名,性别,年龄,单位名称) 讲授(教师号,课程编号) 选修(学号,课程编号) 9.一个图书借阅管理系统要求提供下列服务:

(1)可以随时查询书库中现有书籍的品种、数量与存放位置。所有书籍均由书号唯一标识。 (2)可以随时查询书籍借还情况,包括借书人姓名、单位、借书日期、应还日期。系统约定,任何人可以借多种图书,任何一种图书可为多个人所借,借书证号具有唯一性。 (3)当需要时,可以通过系统中保存的出版社的电话、E-mail、通信地址及邮政编码等信息向出版社购买有关书籍。系统约定,一个出版社可以出版多种图书,同一种图书仅为一个出版社出版,出版社名具有唯一性。

根据上述假设,试作如下设计: (1)构造满足系统需求的E-R图。 (2)将E-R图转换为等价的关系模型。 (3)确定图书借阅数据库中各表的结构。 (2)转换为等价的关系模型结构如下:

借书人(借书证号,姓名,单位) 关键字:借书证号 图书(书号,书名,数量,位臵,出版社名) 关键字:书号

出版社(出版社名,电子邮箱,电话,邮政编码,通信地址) 关键字:出版社名 借阅(借书证号,书号,借书日期,还书日期) 关键字:借书证号,书号

10.设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。

商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 (1) 试画出ER图,并在图上注明属性、联系的类型。 (2) 将ER图转换成关系模型,并注明主键和外键。 (1)ER图如图所示。

13

(2)这个ER图可转换4个关系模式: 商店(商店编号,商店名,地址)

职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商店(商品号,商品名,规格,单价)

销售(商店编号,商品号,月销售量)(商品编号,商品号为外键)

11.设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。

公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每位职工只能在一个仓库工作,仓库聘用职工有聘期和工资。

(1) 试画出E-R图,并在图上注明主属性; (2) 将E-R图转换成关系模型,并注明主键和外键。 公司(公司编号, 公司名, 地址)

仓库(仓库编号, 仓库名, 地址, 公司编号)

职工(职工编号, 姓名, 性别, 仓库编号, 聘期, 工资)

14

12.设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能

应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。(1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。

(2)转换成的关系模型应具有4个关系模式:

车队(车队号,车队名) 车辆(牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘期) 使用(司机编号,车辆号,使用日期,公里数)

13.设大学里教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。

设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。

(1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。

(2)转换成的关系模型应具有4个关系模式:

教师(工号,姓名,职称) 学生(学号,姓名,性别,年龄,教师工号) 课程(课程号,课程名称,教师工号) 选课(学号,课程号,成绩)

15