2022年数据库系统概论第五版课后习题答案王珊版.pdf
数据库系统概论第五版课后习题答案王珊版第二章关系数据库1 .试述关系模型的三个组成部分。答:关系模型由关系数据结构、关系操作集合与关系完整性约束三部分组成。2 .试述关系数据语言的特点与分类。答:关系数据语言可以分为三类: 关系代数语言。关系演算语言 :元组关系演算语言与域关系演算语言。SQL:具有关系代数与关系演算双重特点的语言。这些关系数据语言的共同特点就是,语言具有完备的表达能力,就是非过程化的集合操作语言 ,功能强 ,能够嵌入高级语言中使用。3 (略) 4 . 5 、 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则就是指若属性A 就是基本关系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)求供应工程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 属性值相等的那些元组自然连接就是一种特殊的等值连接,它要求两个关系中进行比较的分量必须就是相同的属性组,并且在结果中把重复的属性列去掉。8.关系代数的基本运算有哪些? 如何用这些基本运算来表示其她运算? 答:并、差、笛卡尔积、投影与选择5 种运算为基本的运算。其她3 种运算 ,即交、连接与除,均可以用这5 种基本运算来表达。第三章关系数据库语言SQL 1 .试述sQL 语言的特点。答: (l)综合统一。sQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL 的功能于一体。(2)高度非过程化。用sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版因此无需了解存取路径,存取路径的选择以及sQL 语句的操作过程由系统自动完成。(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 where 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 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 ; 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 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零件。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版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)找出使用供应商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=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 的零件 P6 改为由 S3 供应。UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6 (10)从供应商关系中删除供应商号就是S2 的记录 ,并从供应情况关系中删除相应的记录。A、DELETE FROM S WHERE SNO= S2B、DELETE FROM SPJ WHERE SNO=S2(11)请将 (S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES( S2,J6,P4 ,200) 6 .什么就是基本表?什么就是视图?两者的区别与联系就是什么?答:基本表就是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图就是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,就是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同 ,用户可以如同基本表那样使用视图,可以在视图上再定义视图。7 .试述视图的优点。答( l ) 视图能够简化用户的操作; ( 2 ) 视图使用户能以多种角度瞧待同一数据; ( 3 ) 视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。8 .哪类视图就是可以更新的?哪类视图就是不可更新的?各举一例说明。答:基本表的行列子集视图一般就是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定就是不可以更新的。所有的视图就是否都可以更新?为什么?精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版答:不就是。 视图就是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以 ,并不就是所有的视图都就是可更新的、9 .请为三建工程项目建立一个供应情况的视图,包括供应商代码(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 .什么就是数据库的安全性?答:数据库的安全性就是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。2 .数据库安全性与计算机系统的安全性有什么关系?答:安全性问题不就是数据库系统所独有的,所有计算机系统都有这个问题。只就是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施就是否有效就是数据库系统的主要指标之一。数据库的安全性与计算机系统的安全性,包括操作系统、网络系统的安全性就是紧密联系、相互支持的 , 4 .试述实现数据库安全性控制的常用方法与技术。答:实现数据库安全性控制的常用方法与技术有: ( l )用户标识与鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。( 2 )存取控制 :通过用户权限定义与合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC ) 。( 3 )视图机制 :为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来 ,从而自动地对数据提供一定程度的安全保护。( 4 )审计 :建立审计日志 ,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。( 5 )数据加密 :对存储与传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。5.什么就是数据库中的自主存取控制方法与强制存取控制方法?答: 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地 )标以一定的密级,每一个用户也被(强制地 )授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。6、 (1) GRANT ALL PRIVILEGES ON Student,Class 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版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 OPTION ; 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 ; 就将Student 表的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 职工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 最高工资、最低工资、平均工资的权力,她不能查瞧每个人的工资。CREATE VIEW 部门工资AS SELECT 部门、名称 ,MAX( 工资 ),MIN( 工资 ),AVG( 工资 ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版FROM 职工 ,部门WHERE 职工、部门号 =部门、部门号GROUP BY 职工、部门号GRANT SELECT ON 部门工资TO 杨兰 ; 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 , UPDATE ON 职工FROM 刘星 ; (5) REVOKE ALTER TABLE ON 职工 ,部门FROM 张新 ; (6) REVOKE ALL PRIVILIGES ON 职工 ,部门FROM 周平 ; (7) REVOKE SELECT ON 部门工资FROM 杨兰 ; DROP VIEW 部门工资 ; 9.理解并解释MAC 机制中主体、客体、敏感度标记的含义。答: 主体就是系统中的活动实体,既包括 DBMS 所管理的实际用户,也包括代表用户的各进程。客体就是系统中的被动实体,就是受主体操纵的,包括文件、基表、索引、视图等。对于主体与 客体 ,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。敏感度标记被分成若干级别,例如绝密 (Top Secret )、机密 (Secret ) 可信 ( Confidential ) 、公开(PubliC ) 等。主体的敏感度标记称为许可证级别(ClearanCe 玫 vel ) , 客体的敏感度标记称为密级 (Classification Level ) 。11 .什么就是数据库的审计功能,为什么要提供审计功能?答:审计功能就是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。因为任何系统的安全保护措施都不就是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。第 5 章 数据库完整性1 什么就是数据库的完整性?答: 数据库的完整性就是指数据的正确性与相容性。2 .数据库的完整性概念与数据库的安全性概念有什么区别与联系?答: 数据的完整性与安全性就是两个不同的概念,但就是有一定的联系。前者就是为了防止数据库中存在不符合语义的数据,防止错误信息的输入与输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作与错误结果。后者就是保护数据库防止恶意的破坏与非法的存取。也就就是说,安全性措施的防范对象就是非法用户与非法操作,完整性措施的防范对象精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版就是不合语义的数据。3 .什么就是数据库的完整性约束条件?可分为哪几类?答完整性约束条件就是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束就是对一个列的取值域的说明,包括以下几个方面: ( l ) 对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 ) 对取值范围或取值集合的约束; ( 4 ) 对空值的约束; ( 5 ) 其她约束。静态元组约束就就是规定组成一个元组的各个列之间的约束关系 ,静态元组约束只局限在单个元组上。静态关系约束就是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。动态列级约束就是修改列定义或列值时应满足的约束条件,包括下面两方面: ( l ) 修改列定义时的约束 ; ( 2 ) 修改列值时的约束。动态元组约束就是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束就是加在关系变化前后状态上的限制条件 ,例如事务一致性、原子性等约束条件。4 、 DBMS 的完整性控制机制应具有哪些功能?答: DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能 ,即提供定义完整性约束条件的机制 ; ( 2 ) 检查功能 ,即检查用户发出的操作请求就是否违背了完整性约束条件;( 3 )违约反应 :如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。5 、 RDBMS 在实现参照完整性时需要考虑哪些方面?答RDBMs 在实现参照完整性时需要考虑以下几个方面: ( l )外码就是否可以接受空值。( 2 )册l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: l )级联删除( CASCADES ) ; 2 ) 受限删除 ( RESTRICTED ) ; 3 ) 置空值删除 ( NULLIFIES ) 。 ( 3 )在参照关系中插入元组时的问题,这时系统可能采取的作法有: l )受限插入 ; 2 )递归插入。( 4 )修改关系中主码的问题。一般就是不能用UPDATE 语句修改关系主码的。如果需要修改主码值 ,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性与非空,否则拒绝修改。然后要区分就是参照关系还就是被参照关系。6 .假设有下面两个关系模式:职工 (职工号 ,姓名 ,年龄 ,职务 ,工资 ,部门号 ),其中职工号为主码;部门 (部门号 ,名称 ,经理名 ,电话 ),其中部门号为主码。用sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60 岁。答CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC RIMARY KEY(Deptno); CREATE TABLE EMP 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版(Empno NUMBER(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 .关系系统中 ,当操作违反实体完整性、参照完整性与用户定义的完整性约束条件时,一般就是如何分别进行处理的?答: 对于违反实体完整性与用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都就是简单地拒绝执行,有时要根据应用语义执行一些附加的操作 ,以保证数据库的正确性。第 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,但 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:若关系模式R1NF,且每一个非主属性完全函数依赖于码,则关系模式R 2NF 。(即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 都含有码 ,则称 R 4NF。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生 :学号、姓名、出生年月、系名、班号、宿舍区。班级 :班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会 :学会名、成立年份、办公地点、人数。语义如下 :一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出就是否存在传递函数依赖,对于函数依赖左部就是多属性的情况讨论函数依赖就是完全函数依赖,还就是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在? 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版解:(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,SnoSbirth,SnoClass,ClassDept,DEPTRno 传递依赖如下 : 由于 SnoDept,而 DeptSno ,DeptRno(宿舍区 ) 所以 Sno 与 Rno 之间存在着传递函数依赖。由于 ClassDept,Dept Class,DeptRno 所以 Class 与 Rno 之间存在着传递函数依赖。由于 SnoClass,ClassSno,ClassDept 所以 Sno 与 Dept 之间存在着传递函数依赖。B、班级 C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下: ClassPname,ClassCnum,ClassCyear,PnameDept、由于 ClassPname,PnameClass,PnameDept 所以 C1ass 与 Dept 之间存在着传递函数依赖。C、系 D(Dept,Dno,Office,Dnum)的最小函数依赖集如下: DeptDno,DnoDept,DnoOffice,DnoDnum 根据上述函数依赖可知,Dept 与 Office,Dept 与 Dnum 之间不存在传递依赖。D、学会 M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下: MnameMyear,MnameMaddr,MnameMnum 该模式不存在传递依赖。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版(3)各关系模式的候选码、外部码,全码如下 : A、学生 S 候选码 :Sno;外部码 :Dept、Class;无全码B、班级 C 候选码 :Class;外部码 :Dept;无全码C、系 D 候选码 :Dept 或 Dno;无外部码 ;无全码D、学会 M 候选码 :Mname;无外部码 ;无全码7.下面的结论哪些就是正确的? 哪些就是错误的? 对于错误的请给一个反例说明之。(1)任何一个二目关系就是属于3NF。答:正确。因为关系模式中只有两个属性,所以无传递。(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 A2,A2 A1), 决定因素都第七章数据库设计1.试述数据库设计过程。答:这里只概要列出数据库设计过程的六个阶段: ( l ) 需求分析 ; ( 2 ) 概念结构设计; ( 3 ) 逻辑结构设计 ; ( 4 )数据库物理设计; ( 5 )数据库实施 ; ( 6 )数据库运行与维护。这就是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行与维护。设计一个完善的数据库应用系统往往就是上述六个阶段的不断反复。2 .试述数据库设计过程各个阶段上的设计描述。答:各阶段的设计要点如下: ( l ) 需求分析 :准确了解与分析用户需求(包括数据与处理)。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。( 3 )逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构与存取方法 )。 ( 5 )数据库实施 :设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计与物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。( 6 )数据库运行与维护:在数据库系统运行过程中对其进行评价、调整与修改。3 .试述数据库设计过程中结构设计部分形成的数据库模式。答:数据库结构设计的不同阶段形成数据库的各级模式,即: ( l ) 在概念设计阶段形成独立于机器特点 ,独立于各个DBMS 产品的概念模式,在本篇中就就是E 一 R 图 ; ( 2 )在逻辑设计阶段将E 一 R 图转换成具体的数据库产品支持的数据模型,如关系模型 ,形成数据库逻辑模式 ,然后在基本表的基础上再建立必要的视图( Vi 娜 ),形成数据的外模式; ( 3 )在物理设计阶段 ,根据DBMS 特点与处理的需要,进行物理存储安排,建立索引 ,形成数据库内模式。5 .什么就是数据库的概念结构?试述其特点与设计策略。答:概念结构就是信息世界的结构,即概念模型 ,其主要特点就是: ( l )能真实、 充分地反映现实世界 ,包括事物与事物之间的联系,能满足用户对数据的处理要求,就是对现实世界的一个真实模型 ; ( 2 )易于理解 ,从而可以用它与不熟悉计算机的用户交换意见,用户的积极参与就是数据库设计成功的关键; ( 3 )易于更改 ,当应用环境与应用要求改变时,容易对概念模型修改与扩充 ; ( 4 ) 易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种: l )自顶向下 ,即首先定义全局概念结构的框架,然后逐步细化; 2 )自底向上 ,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构; 3 ) 逐步扩张 ,首先定义最重要精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 13 页 - - - - - - - - - - 数据库系统概论第五版课后习题答案王珊版的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其她概念结构,直至总体概念结构; 4 )混合策略 ,即将自顶向下与自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。7.学校中有若干系,每个系有若干班级与教研室,每个教研室有若干教员,其中有的教授与副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E 一 R 图画出此学校的概念模型。答: 各实体属性为 : 系:系编号 ,系名班级 :班级号 ,班级名教研室 :教研室号 ,教研室学生 :学号,姓名 ,学历课程 :课程号 ,课程名教员 :职工号 ,姓名,职称联系的属性 :“选修”的属性为“成绩”转换为关系模型如下: 系(系编号 ,系名,学校名 ) 班级 (班级号 ,班级名 ,系编号 ) 教研室 (教研室号 ,教研室 ,系编号 ) 学生 (学号 ,姓名 ,学历 ,班级号 ,导师职工号 ) 课程 ( 课程号 ,课