《2023年数据库系统概论第五版课后习题超详细解析超详细解析答案王珊版.pdf》由会员分享,可在线阅读,更多相关《2023年数据库系统概论第五版课后习题超详细解析超详细解析答案王珊版.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统概论第五版课后习题答案王珊版 第二章 关系数据库 1.试述关系模型的三个组成部分。答:关系模型由关系数据结构、关系操作集合与关系完整性约束三部分组成。2.试述关系数据语言的特点与分类。答:关系数据语言可以分为三类:关系代数语言。关系演算语言:元组关系演算语言与域关系演算语言。SQL:具有关系代数与关系演算双重特点的语言。这些关系数据语言的共同特点就是,语言具有完备的表达能力,就是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。3(略)4.5、述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则就是指若属性 A 就是基
2、本关系 R 的主属性,则属性 A 不能取空值。若属性(或属性组)F 就是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R与 S 不一定就是不同的关系),则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值);或者等于 S 中某个元组的主码值。即属性 F 本身不就是主属性,则可以取空值,否则不能取空值。6.设有一个 SPJ 数据库,包括 S,P,J,SPJ 四个关系模式:1)求供应工程 J1 零件的供应商号码 SNO:Sno(Jno=J1(SPJ)2)求供应工程 J1 零件 P1 的供应商号码 SNO:Sno(Jno=J1Pno=P1(SPJ
3、)3)求供应工程 J1 零件为红色的供应商号码 SNO:Sno(Sno,Pno(Jno=J1(SPJ)Pno(COLOR=红(P)4)求没有使用天津供应商生产的红色零件的工程号 JNO:Jno(SPJ)-JNO(city=天津Color=红(SSPJP)5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO:Jno,Pno(SPJ)Pno(Sno=S1(SPJ)7、试述等值连接与自然连接的区别与联系。答:连接运算符就是“=”的连接运算称为等值连接。它就是从关系 R 与 S 的广义笛卡尔积中选取 A,B 属性值相等的那些元组 自然连接就是一种特殊的等值连接,它要求两个关系中进行比较的分量必
4、须就是相同的属性组,并且在结果中把重复的属性列去掉。8.关系代数的基本运算有哪些?如何用这些基本运算来表示其她运算?答:并、差、笛卡尔积、投影与选择 5 种运算为基本的运算。其她 3 种运算,即交、连接与除,均可以用这 5 种基本运算来表达。第三章 关系数据库语言 SQL 1.试述 sQL 语言的特点。答:(l)综合统一。sQL 语言集数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL 的功能于一体。(2)高度非过程化。用 sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,数据库系统概论第五版课后习题答案王珊版 因此无需了解存取路径,存取路径的选择以及 sQL
5、语句的操作过程由系统自动完成。(3)面向集合的操作方式。sQL 语言采用集合操作方式,不仅操作对象、查找结果可以就是元组的集合,而且一次插入、删除、更新操作的对象也可以就是元组的集合。(4)以同一种语法结构提供两种使用方式。sQL 语言既就是自含式语言,又就是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。(5)语言简捷,易学易用。2、3(1)select*from S where A=10;(2)select A,B from S;(3)select A,B,S、C,S、D,E,F from S,T wher
6、e S、C=T、C and S、D=T、D;(4)select*from S,T where S、C=T、C;(5)select*from S,T where S、AT、E;(6)select S、C,S、D,T、*from S,T;4.用 sQL 语句建立第二章习题 6 中的 4 个表。答:对于 S 表:S(SNO,SNAME,STATUS,CITY);建 S 表:CREATE TABLE S(Sno C(2)UNIQUE,Sname C(6),Status C(2),City C(4);对于 P 表:P(PNO,PNAME,COLOR,WEIGHT);建 P 表:CREATE TABLE
7、P(Pno C(2)UNIQUE,Pname C(6),COLOR C(2),WEIGHT INT);对于 J 表:J(JNO,JNAME,CITY);建 J 表:CREATE TABLE J(Jno C(2)UNlQUE,JNAME C(8),CITY C(4)对于 sPJ 表:sPJ(sNo,PNo,JNo,QTY);建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY INT)针对建立的 4 个表用 sQL 语言完成第二章习题 6 中的查询。(l)求供应工程 Jl 零件的供应商号码 SNO;
8、SELECT DIST SNO FROM SPJ WHERE JNO=J1 (2)求供应工程 Jl 零件 Pl 的供应商号码 SNO;SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1(3)求供应工程 Jl 零件为红色的供应商号码 SNO;SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ、PNO=P、PNO AND COLOR=红 (4)求没有使用天津供应商生产的红色零件的工程号 JNO;SELECT DIST JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S
9、 WHERE S、CITY=天津 AND COLOR=红 AND S、SNO=SPJ、SNO AND P、PNO=SPJ、PNO)。(5)求至少用了供应商 Sl 所供应的全部零件的工程号 JNO;由于 VFP不允许子查询嵌套太深,将查询分为两步 A、查询 S1 供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO=S1 结果就是(P1,P2)B、查询哪一个工程既使用 P1零件又使用 P2零件。系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什
10、么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN(SELECT JNO FROM SPJ WHERE PNO=P2)5.针对上题中的四个表试用 SQL 语言完成以下各项操作:(1)找出所有供应商的姓名与所在城市。SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商
11、S1 所供应零件的工程号码。SELECT DIST JNO FROM SPJ WHERE SNO=S1(4)找出工程项目 J2 使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,P WHERE P、PNO=SPJ、PNO AND SPJ、JNO=J2(5)找出上海厂商供应的所有零件号码。SELECT PNO FROM SPJ,S WHERE S、SNO=SPJ、SNO AND CITY=上海(6)出使用上海产的零件的工程名称。SELECT JNAME FROM SPJ,S,J WHERE S、SNO=SPJ、SNO AND S、CITY=上海 AND J、JNO
12、=SPJ、JNO(7)找出没有使用天津产的零件的工程号码。注意:SELECT DISP JNO FROM SPJ WHERE JNO NOT IN(SELECT DIST JNO FROM SPJ,S WHERE S、SNO=SPJ、SNO AND S、CITY=天津)适用于 JNO 就是唯一或不唯一的情况、注意:SELECT DIST JNO FROM SPJ,S WHERE S、SNO=SPJ、SNO AND S、CITY天津适用于 JNO 就是唯一的情况(8)把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR=红(9)由 S5 供给 J4 的零
13、件 P6 改为由 S3 供应。UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6(10)从供应商关系中删除供应商号就是 S2 的记录,并从供应情况关系中删除相应的记录。A、DELETE FROM S WHERE SNO=S2 B、DELETE FROM SPJ WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES(S2,J6,P4,200)6.什么就是基本表?什么就是视图?两者的区别与联系就是什么?答:基本表就是本身独立存在的表,在 sQL 中一个关系就对应一
14、个表。视图就是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,就是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。7.试述视图的优点。答 (l)视图能够简化用户的操作;(2)视图使用户能以多种角度瞧待同一数据;(3)视图对重构数据库提供了一定程度的逻辑独立性;(4)视图能够对机密数据提供安全保护。8.哪类视图就是可以更新的?哪类视图就是不可更新的?各举一例说明。答:基本表的行列子集视图一般就是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定就是不可
15、以更新的。所有的视图就是否都可以更新?为什么?系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 答:不就是。视图就是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不就是所有的视图都就是可更新的、9.请为三建工程项目
16、建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW VSP AS SELECT SNO,SPJ、PNO,QTY FROM SPJ,J WHERE SPJ、JNO=J、JNO AND J、JNAME=三建 针对该视图 VSP 完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。SELECT DIST PNO,QTY FROM VSP(2)找出供应商 S1 的供应情况。SELECT DIST*FROM VSP WHERE SNO=S1 第 4 章 数据库安全性 1.什么就是数据库的安全性?答:数据库的安全性就是指保护数据库以
17、防止不合法的使用所造成的数据泄露、更改或破坏。2.数据库安全性与计算机系统的安全性有什么关系?答:安全性问题不就是数据库系统所独有的,所有计算机系统都有这个问题。只就是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施就是否有效就是数据库系统的主要指标之一。数据库的安全性与计算机系统的安全性,包括操作系统、网络系统的安全性就是紧密联系、相互支持的,4.试述实现数据库安全性控制的常用方法与技术。答:实现数据库安全性控制的常用方法与技术有:(l)用户标识与鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进
18、行核对,通过鉴定后才提供系统的使用权。(2)存取控制:通过用户权限定义与合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如 CZ 级中的自主存取控制(DAC),Bl 级中的强制存取控制(MAC)。(3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。(5)数据加密:对存储与传输的数据进行加密处理,从而使得不知道
19、解密算法的人无法获知数据的内容。5.什么就是数据库中的自主存取控制方法与强制存取控制方法?答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。6、(1)GRANT ALL PRIVILEGES ON Student,Class 系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整
20、性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 TO U1 WITH GRANT OPTION;(2)GRANT SELECT,UPDATE(家庭住址),DELETE ON Student TO U2;(3)GRANT SELECT ON Class TO PUBLIC;(4)GRANT SELECT,UPDATE ON Student TO R1;(5)GRANT R1 TO U1 WITH ADMIN OPTI
21、ON;7、SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。答:SQL 中的自主存取控制就是通过 GRANT 语句与 REVOKE 语句来实现的。如:GRANT SELECT,INSERT ON Student TO 王平 WITH GRANT OPTION;就将 Student 表的 SELECT 与 INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其她用户。REVOKE INSERT ON Student FROM 王平 CASCADE;就将 Studen
22、t 表的 INSERT 权限从用户王平处收回,选项 CASCADE 表示,如果用户王平将Student 的 INSERT 权限又转授给了其她用户,那么这些权限也将从其她用户处收回。7.请用SQL 的GRANT 与REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能:(a)用户王明对两个表有 SELECT 权力。GRANT SELECT ON 职工,部门 TO 王明(b)用户李勇对两个表有 INSERT 与 DELETE 权力。GRANT INSERT,DELETE ON 职工,部门 TO 李勇(c)每个职工只对自己的记录有 SELECT 权力。GRANT SELECT ON 职工
23、WHEN USER()=NAME TO ALL;(d)用户刘星对职工表有 SELECT 权力,对工资字段具有更新权力。GRANT SELECT,UPDATE(工资)ON 职工 TO 刘星 (e)用户张新具有修改这两个表的结构的权力。GRANT ALTER TABLE ON 职工,部门 TO 张新;(f)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其她用户授权的权力。GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION;(g)用户杨兰具有从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权力,她不能查瞧每个人的工资
24、。CREATE VIEW 部门工资 AS SELECT 部门、名称,MAX(工资),MIN(工资),AVG(工资)系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 FROM 职工,部门 WHERE 职工、部门号=部门、部门号 GROUP BY 职工、部门号 GRANT SELECT ON 部门工资 TO
25、 杨兰;8.把习题 8 中(1)-(7)的每一种情况,撤销各用户所授予的权力(1)REVOKE SELECT ON 职工,部门 FROM 王明;(2)REVOKE INSERT,DELETE ON 职工,部门 FROM 李勇;(3)REOVKE SELECT ON 职工 WHEN USER()=NAME FROM ALI;(4)REVOKE SELECT,UPDA TE ON 职工 FROM 刘星;(5)REVOKE ALTER TABLE ON 职工,部门 FROM 张新;(6)REVOKE ALL PRIVILIGES ON 职工,部门 FROM 周平;(7)REVOKE SELECT O
26、N 部门工资 FROM 杨兰;DROP VIEW 部门工资;9.理解并解释 MAC 机制中主体、客体、敏感度标记的含义。答:主体就是系统中的活动实体,既包括 DBMS 所管理的实际用户,也包括代表用户的各进程。客体就是系统中的被动实体,就是受主体操纵的,包括文件、基表、索引、视图等。对于主体与 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label)。敏感度标记被分成若干级别,例如绝密(Top Secret)、机密(Secret)可信(Confidential)、公开(PubliC)等。主体的敏感度标记称为许可证级别(ClearanCe 玫 vel),客体的敏感度标记称为密级(Cl
27、assification Level)。11.什么就是数据库的审计功能,为什么要提供审计功能?答:审计功能就是指 DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。因为任何系统的安全保护措施都不就是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。第 5 章 数据库完整性 1 什么就是数据库的完整性?答:数据库的完整性就是指数据的正确性与相容性。2.数据库的完整性概念与数据库的安全性概念有什么区别与联系?答:数据的完整性与安全性就是两个不同
28、的概念,但就是有一定的联系。前者就是为了防止数据库中存在不符合语义的数据,防止错误信息的输入与输出,即所谓垃圾进垃圾出(Garba:e In Garba:e out)所造成的无效操作与错误结果。后者就是保护数据库防止恶意的破坏与非法的存取。也就就是说,安全性措施的防范对象就是非法用户与非法操作,完整性措施的防范对象系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属
29、性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 就是不合语义的数据。3.什么就是数据库的完整性约束条件?可分为哪几类?答 完整性约束条件就是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束就是对一个列的取值域的说明,包括以下几个方面:(l)对数据类型的约束,包括数据的类型、长度、单位、精度等;(2)对数据格式的约束;(3)对取值范围或取值集合的约束;(4)对空值的约束;(5)其她约束。静态元组约束就就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静
30、态关系约束就是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有:(l)实体完整性约束;(2)参照完整性约束;(3)函数依赖约束。动态列级约束就是修改列定义或列值时应满足的约束条件,包括下面两方面:(l)修改列定义时的约束;(2)修改列值时的约束。动态元组约束就是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束就是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。4、DBMS 的完整性控制机制应具有哪些功能?答:DBMS 的完整性控制机制应具有三个方面的功能:(l)定义功能,即提供定义完整性约束条件的机制;
31、(2)检查功能,即检查用户发出的操作请求就是否违背了完整性约束条件;(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。5、RDBMS 在实现参照完整性时需要考虑哪些方面?答 RDBMs 在实现参照完整性时需要考虑以下几个方面:(l)外码就是否可以接受空值。(2)册 l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l)级联删除(CASCADES);2)受限删除(RESTRICTED);3)置空值删除(NULLIFIES)。(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:l)受限插入;2)递归插入。(4)修改关系中主码
32、的问题。一般就是不能用 UPDATE 语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性与非空,否则拒绝修改。然后要区分就是参照关系还就是被参照关系。6.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。答 CREATE TABLE DEPT (Deptno NUMBER
33、(2),Deptname VARCHAR(10),Manager VARCHAR(10),PhoneNumber Char(12)CONSTRAINT PK_SC RIMARY KEY(Deptno);CREATE TABLE EMP 系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 (Empno NU
34、MBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK(Aage=60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno)REFFERENCES DEPT(Deptno);7.关系系统中,当操作违反实体完整性、参照完整性与用户定义的完整性约束条件时,一般就是如何分别进行处理的?答:对于违反实体完整性与用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都就是简单地拒绝执
35、行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。第 6 章 关系数据库理论 1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一key)、1 NF、ZNF、3NF、BcNF、多值依赖、4NF。定义 1:设 R(U)就是属性集 U 上的关系模式。X,Y 就是属性集 U 的子集。若对于 R(U)的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等,而在 Y 上的属性值不等,则称 X 函数确定 Y 或 Y 函数依赖于 X,记作 XY。(即只要 X 上的属性值相等,Y 上的值一定相等。)术语与记号:XY,
36、但 Y 不就是 X 的子集,则称 XY 就是非平凡的函数依赖。若不特别声明,总就是讨论非平凡的函数依赖。XY,但 Y 就是 X 的子集,则称 XY 就是平凡的函数依赖。若 XY,则 X 叫做决定因素(Determinant)。若 XY,YX,则记作 XY。若 Y 不函数依赖于 X,则记作 X Y。定义 2:在 R(U)中,如果 XY,并且对于 X 的任何一个真子集 X,都有 X Y,则称 Y 对 X 完全函数依赖 若 XY,但 Y 不完全函数依赖于 X,则称 Y 对 X 部分函数依赖 定义 3:若关系模式 R 的每一个分量就是不可再分的数据项,则关系模式 R 属于第一范式(1NF)。定义 4:
37、若关系模式 R1NF,且每一个非主属性完全函数依赖于码,则关系模式 R2NF。(即1NF 消除了非主属性对码的部分函数依赖则成为 2NF)。定义 5:关系模式 R 中若不存在这样的码 X、属性组 Y 及非主属性 Z(Z 不就是 Y 的子集)使得 XY,Y X,Y Z 成立,则称 R3NF。定义 6:关系模式 R1NF。若 XY 且 Y 不就是 X 的子集时,X 必含有码,则 RBCNF。定义 7:关系模式 R1NF,如果对于 R 的每个非平凡多值依赖XY(Y 不就是 X 的子集,Z=U-X-Y不为空),X 都含有码,则称 R4NF。系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系
38、代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍
39、区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出就是否存在传递函数依赖,对于函数依赖左部就是多属性的情况讨论函数依赖就是完全函数依赖,还就是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系
40、统概论第五版课后习题答案王珊版 解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)每个关系模式的最小函数依赖集如下:A、学 生S(Sno,Sname,Sbirth,Dept,Class,Rno)的 最 小 函 数 依 赖 集 如下:SnoSname,Sno Sbirth,Sno Class,ClassDept,DEPTRno 传递依赖如下:由于 SnoDept,而 Dep
41、tSno,DeptRno(宿舍区)所以 Sno 与 Rno 之间存在着传递函数依赖。由于 ClassDept,Dept Class,DeptRno 所以 Class 与 Rno 之间存在着传递函数依赖。由于 SnoClass,ClassSno,ClassDept 所以 Sno 与 Dept 之间存在着传递函数依赖。B、班级 C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:ClassPname,ClassCnum,ClassCyear,Pname Dept、由于 ClassPname,PnameClass,PnameDept 所以 C1ass 与 Dept 之间
42、存在着传递函数依赖。C、系 D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:DeptDno,Dno Dept,DnoOffice,Dno Dnum 根据上述函数依赖可知,Dept 与 Office,Dept 与 Dnum 之间不存在传递依赖。D、学会 M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:MnameMyear,Mname Maddr,Mname Mnum 该模式不存在传递依赖。系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空
43、什么情况下才可以为空答实体完整性规则就对应基本关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 (3)各关系模式的候选码、外部码,全码如下:A、学生 S 候选码:Sno;外部码:Dept、Class;无全码 B、班级 C 候选码:Class;外部码:Dept;无全码 C、系 D 候选码:Dept 或 Dno;无外部码;无全码 D、学会 M 候选码:Mname;无外部码;无全码 7.下面的结论哪些就是正确的?哪些就是错误的?对于错误的请给一个反例说明之。(1)任何一个二目关系就是属于 3NF。答:正确。因为关系模
44、式中只有两个属性,所以无传递。(2)任何一个二目关系就是属于 BCNF、答:正确。按 BCNF 的定义,若 XY,且 Y 不就是 X 的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定就是BCNF)。证明:设R为一个二目关系R(A1,A2),则属性A1 与A2之间可能存在以下几种依赖关系:A、A1A2,但 A2A1,则关系 R 的码为 A1,决定因素都包含码,所以,R 就是 BCNF。B、A1A2,A2A1,则关系 R 的码为 A2,所以决定因素都包含码,R 就是 BCNF。包含码。R 就是 BCNF。C、R 的码为(A1,A2)(即 A1 A
45、2,A2 A1),决定因素都 第七章 数据库设计 1.试述数据库设计过程。答:这里只概要列出数据库设计过程的六个阶段:(l)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)数据库物理设计;(5)数据库实施;(6)数据库运行与维护。这就是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行与维护。设计一个完善的数据库应用系统往往就是上述六个阶段的不断反复。2.试述数据库设计过程各个阶段上的设计描述。答:各阶段的设计要点如下:(l)需求分析:准确了解与分析用户需求(包括数据与处理)。(2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立
46、于具体 DBMS 的概念模型。(3)逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。(4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构与存取方法)。(5)数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计与物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行与维护:在数据库系统运行过程中对其进行评价、调整与修改。3.试述数据库设计过程中结构设计部分形成的数据库模式。答:数据库结构设计的不同阶段形成数据库的各级模式,即:(l)在概念设计阶段形成独立于机器特点,独立于
47、各个 DBMS 产品的概念模式,在本篇中就就是 E 一 R 图;(2)在逻辑设计阶段将 E 一 R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图(Vi 娜),形成数据的外模式;(3)在物理设计阶段,根据 DBMS 特点与处理的需要,进行物理存储安排,建立索引,形成数据库内模式。5.什么就是数据库的概念结构?试述其特点与设计策略。答:概念结构就是信息世界的结构,即概念模型,其主要特点就是:(l)能真实、充分地反映现实世界,包括事物与事物之间的联系,能满足用户对数据的处理要求,就是对现实世界的一个真实模型;(2)易于理解,从而可以用它
48、与不熟悉计算机的用户交换意见,用户的积极参与就是数据库设计成功的关键;(3)易于更改,当应用环境与应用要求改变时,容易对概念模型修改与扩充;(4)易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种:l)自顶向下,即首先定义全局概念结构的框架,然后逐步细化;2)自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;3)逐步扩张,首先定义最重要系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整性规则在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答实体完整性规则就对应基本
49、关系与不一定就是不同的关系则对于中每个元组在上的值须为或者取空值的每个属性值均为空值或者等于中数据库系统概论第五版课后习题答案王珊版 的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其她概念结构,直至总体概念结构;4)混合策略,即将自顶向下与自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。7.学校中有若干系,每个系有若干班级与教研室,每个教研室有若干教员,其中有的教授与副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用 E 一 R 图画出此学校的概念模型。答:各实体属性为:系:系编号,
50、系名 班级:班级号,班级名 教研室:教研室号,教研室 学生:学号,姓名,学历 课程:课程号,课程名 教员:职工号,姓名,职称 联系的属性:“选修”的属性为“成绩”转换为关系模型如下:系(系编号,系名,学校名)班级(班级号,班级名,系编号)教研室(教研室号,教研室,系编号)学生(学号,姓名,学历,班级号,导师职工号)课程(课程号,课程名)教员(职工号,姓名,职称,教研室号)选修(学号,课程号,成绩)8.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零系代数语言关系演算语言元组关系演算语言与域关系演算语言具有关系代数与关系演算双重特点的语言这些关系数据关系模型的完整