已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 数据库系统导论1.1 简要回答以下问题。(1) 说明数据抽象表示通常需要从哪些方面进行描述?它与数据模型有何关系?(2) 对比逻辑数据模型与物理数据模型,说明它们的区别与联系。(3) 简述DBMS 在现代计算机软件中的地位和作用。(4) 与直接采用一组操作系统文件来管理大量数据相比,采用DBMS 来管理大量数据有何优势?列出OS 文件处理系统与OS 的主要不同点。(5) 列举一些你所知道的、不适合用数据库作为数据管理主要解决方案的应用场合。(6) 解释外部模式、内部模式和概念模式之间的差异。这些不同模式层是如何与逻辑数据独立性以及物理数据独立性的概念相关联的?为什么说逻辑数据的独立性很重要?(7) 什么是DBMS 的5 大基本功能?对每类基本功能,如果未实现,将会引发什么问题?(8) 在后面几个概念中,哪个在信息表示中起重要的作用?1)数据定义语言;2)数据操纵语言;3)缓冲区管理器;4)数据模型。答:(1)数据抽象表示通常要从三方面进行描述:结构特征,行为特征和约束特征。结构特征:通常需引入一组严格定义的概念或基本结构类型,并借助一定的表示法或模型语言来描述。行为特征:反映系统的操纵部分,即系统与外界的相互作用,描述系统在外界作用下的状态改变方式。约束特征:指为保证建模系统有意义,在系统各成份之间或状态量间必须保持的一些依存或者依赖规定。一般通过引入一组约束规则来表达。数据模型的定义:数据模型是一组可精确、抽象描述数据如何表示(包括描述数据类型结构、数据关系和数据约束等数据结构化部分)的概念集,并可选地包括一组描述数据如何操纵的操作方法集。通过系统知识的抽象表示,我们可以建立数据模型,进而研究问题。(2)逻辑数据模型介于概念和物理两种数据模型之间。它是数据库系统的主要工作模型,故常被简称为数据模型。逻辑数据模型的典型代表包括关系模型、面向对象模型和对象-关系数据模型。早期数据库系统中使用的层次模型和网状模型也属于逻辑数据模型。低级数据模型(物理数据模型)。所提供的概念描述了数据如何在计算机上存储的具体细节。除了DB系统专家外,一般DB用户通常很少关注物理数据模型。由于物理数据模型对应各DBMS底层实现部分,没有、也不需要有统一的标准实现,因此,没有专门典型命名的物理数据模型。 可见,逻辑数据模型较物理数据模型更为高层。同时逻辑数据模型也要通过物理数据模型来进行各DBMS底层的实现。(3)随着数据数量和共享数据用户数目的增长,DBMS 已逐渐变为计算机系统不可或缺的一种重要工具,成为现代计算机信息系统和应用系统开发的核心技术。我们可以利用DBMS的特性,以一种健壮且高效的方式来管理数据。(4)利用DBMS 管理数据,至少具有以下方面优势: 1. 数据独立性 2. 数据存储的有效性 3. 数据共享 4. 数据的完整性和安全性5. 并发存取和崩溃恢复 6. 减小应用开发时间。(5)当在某些实时应用只有几个严格定义的关键操作,必须用高效风格的代码来实现时,DBMS 性能可能不能满足其要求。另一种不使用DBMS 的原因可能是,应用可能需要以DBMS 不支持的方式来查询数据。例如,关系DBMS 不支持对文本数据的灵活处理。如果特殊的数据操作或性能是应用的核心,则应用也可能选择不使用DBMS,特别是当应用并不关心灵活查询、安全性、并发存取和崩溃恢复等性能时。(6)概念(逻辑)模式,用数据模型概念描述数据。内部(物理)模式,指出额外的数据存储细节,描述逻辑模式中的关系如何存储在二级存储器上。外模式,每个外模式通常由一个或多个逻辑模式中的关系和视图构成。外模式提供逻辑数据独立性,概念模式提供物理数据独立性。通过提供数据的抽象视图,DBMS 可以很好隔离应用代码与数据的表示和存储细节。(7)1.安全设施2.并发控制3.崩溃恢复4.视图机制5.查询语言安全设施保证数据不被他人盗用。并发控制允许多个用户同时进行操作。崩溃恢复可以使DB在崩溃的情况下恢复数据。视图机制使得DB更加直观,利于操作。查询语言可供查询DB中的数据,并构建视图机制。(8)数据定义语言,因为它是用来描述外模式和逻辑模式的。1.2 列举你所知道的逻辑数据模型,并概要说明其特点。(1)关系数据模型。关系模型只能表达平面的数据结构,不能表达复杂的对象结构,缺乏语义表达能力。(2)ODMG对象模型。ODMG 对象模型可直接表达任意复杂对象(不象关系模型,需将复杂对象展开为多个平面表来表示),可以显式声明对象类型之间的关系,并显式指定对象类型允许的操作。(3)XML数据模型。半结构化的逻辑模型。它是一个基于树结构、且移植了XML 规范各种不同细节和特性的数据表达模型,包含有节点、原子值和顺序信息等数据表示方法。1.3 列举你所知道的概念数据模型,并概要说明其特点。(1)E-R模型。它是一种基于图形表达的模型。(2)EER模型。是ER 模型的扩展模型。它在ER 模型的基础上,扩展了以下概念:1.类、超类/子类(ISA)关系、特化与泛化关系、ISA 关系层次结构。2. UNION 子类或类别。多值属性和复合结构属性。(3)UML模型。UML 是一种基于OO 范型的建模语言,它定义了一个用于建模的概念框架用符号表示概念、用连接符号(路径)表示概念间的联系。UML 常用于对软件系统进行描述和可视化构造,允许基于不同的视点,建立描述系统体系结构的各种视图。1.4 给出5 个过程化编程语言和2 个非过程化编程语言,那种更容易学?过程化编程语言:VB,Pascal,C,C+,JSP非过程化编程语言:SQL,还少一个1.5 参考图1.2,简要描述DBMS 实现的体系结构。如果你的OS 升级了,增加了一些支持OS 文件的新函数(例如,强制一些字节序列到磁盘),那么,DBMS 的那些层需要重写,以便充分利用OS的新增特性?查询赋值引擎,包括解析器,操作符赋值器,优化器,计划执行器。并发控制,包括事务管理器和封锁管理器。另外还有,文件与存取方法、缓冲区管理器、磁盘空间管理器、以及恢复管理。磁盘空间管理受到影响,同时缓冲区管理也会受到影响。1.6 简要描述五层DBMS 体系结构中,各层的主要功能和核心数据结构。(1)逻辑层(L5)是非过程化的存取层,提供表、视图等逻辑数据结构,支持采用独立于存取路径、存取过程的声明性语言(如SQL),进行数据存取。该层将对用户查询表达进行解析和编译处理,产生初步的逻辑查询计划;利用数据存储信息,位于该层的查询优化器可将初步逻辑查询计划改写为一个高效的可执行计划。辅助映射元数据:逻辑模式描述(2)导航层(L4)主要实现逻辑对象/记录集的导航存取。在这个接口中,用户或高层模块通过使用各种扫描方式(如table-scan、index-scan),或通过各种赋值操作符,在层次结构或网络的逻辑记录集中导航。为能支持排序、连接等高级操作,本层还应具有对记录集进行动态排序的能力。辅助映射元数据:逻辑和物理模式描述(3)记录和存取路径管理层(L3),主要实现逻辑记录/对象到物理记录/对象的映射。本层中仍能看到低层的逻辑磁盘页,必须提供聚集设施和维护所有物理对象表示(即记录、字段等在页内的表示),以及维护像B+树、散列、内部页链表或页目录这样的存取路径结构。本层对整个DMBS 系统性能有至关重要的影响,特别是当需要处理聚集选项,或需要实现可适应基于工作集(workload)预测制导的灵活存取路径时。辅助映射元数据:堆文件的页链表或目录项表、DB-键映射表(索引文件)(4)传播控制层(L2)。该层利用一个被称为DB 缓冲池的专用主存区处理逻辑磁盘页读写,缓冲池被按页大小划分为一个个页槽(或称为页面框frame)。借助传播控制层,可为主存与辅存间传送DB 被修改页提供更大的自由度,以有效减少实际的物理磁盘I/O 次数。本层的DBMS组件被称为缓冲区管理器。专门负责管理这个DB 缓冲池,包括将指定逻辑磁盘页读入到DB缓冲池的特定位置中,或将缓冲池中的一些被修改页写回逻辑磁盘中。辅助映射元数据:DB缓冲池管理的相关辅助数据结构(5)最底层(L1),被称为磁盘空间管理层。操作对象为永久存储介质上的位模式数据,通常需要与操作系统(OS)文件管理子系统协同工作。该层的主要目标是:实现“逻辑”磁盘页到实际磁盘块的映射,即实现以页为单位的逻辑磁盘。具体来说,就是要实现隐藏下层硬件(包括OS 文件管理)细节,支持以页(page)为单位的数据存储,允许高层软件认为DB 数据是一系列以页为单位的磁盘数据集。辅助映射元数据:线性逻辑磁盘页序列、磁盘自由块链表,或磁盘块使用位图表等1.7 从系统性能等因素考虑,你认为应适当增加还是减少DBMS 系统的分层数?为什么?减少。能够减少层与层间的接口。查询预处理准备应尽可能的向下层推进,因为这种方式产生的存取代码往往比解释型查询更有效。在这种方式下,额外的准备代价(有时可能延长查询响应时间)可以被快速分摊,特别是当存取大记录集的时候。1.8 从系统设计,尤其是系统可扩展性、可维护性等方面考虑,你认为应适当增加还是减少DBMS 系统的分层数?为什么?增加。增加分层数可减少各层实现的复杂度,且有利于系统的升级演化。第二章 关系数据模型与关系型数据库2.1 描述术语关系(relation)、关系模式和关系实例的区别与联系。关系模型将数据库表示为一组“关系(relation)”的集合。每个关系好比一个具有多个行(row)和多个列(column)的二维值表(table)。每个关系含两部分信息:关系模式(relation schema)和关系实例(relation instance)。关系模式相当于表头,而关系实例则相当于表体。2.2 描述术语数据库、数据库模式、数据库实例、数据库状态的内涵,并给出它们的形式定义。数据库为包含一组数据的集合。数据库模式表示存储数据的内涵。数据库实例为数据库中存储的数据。数据库状态的内涵表示某一刻数据库的外延。2.3 对一个给定的关系而言,候选键、主键或超键有何不同?试解释它们之间的区别与联系。对于关系R,如果R 的某个属性子集对R 的任一元组都有不同取值,我们就说该属性子集能唯一标识关系R 的每个元组,该属性子集也被认为是关系R 的一个超键。没有冗余属性的超键称为候选键。在所有可用的候选键中,DB 设计者可将其中一个指定为主键。候选键是超键的一部分,而主键又是候选键的一部分。2.4 什么是外键约束和引用完整性约束?为什么这样的约束很重要?引用完整性约束:当某关系元组引用另一个关系中元组时,只能引用已经存在的元组。外键约束:如果关系模式R1 的属性子集FK 满足以下两个条件,那么,就称该FK是R1引用了或指向关系R2的外键:(1)FK 中的属性与R2的主键PK有相同的域;(2)对关系R1中的任一元组t1,FK值要么为NULL,要么为关系R2中某元组的PK值。当存储在一关系中的信息与存储在另一关系中的信息有联系时,为保持数据间的一致性,当一个关系被修改,要求另一个关系也必须被检查甚至做相应修改。2.5 关于关系模型,简要回答以下问题。(1) 说明关系模型的地位、作用和基本核心概念集。(2) 关系模型能表达哪些类型约束?这些约束如何在关系模式定义中体现?(3) 从SQL 查询书写者的角度看,关系模型有否提供逻辑数据和物理数据的独立性?答:(1)关系模型:数据表示简单直观,且有坚实的数学基础;可基于这种简单结构,构造灵活、复杂的数据查询。关系模型基本核心概念:属性域,关系模式,关系实例(关系状态)。(2)域约束,键约束、NULL 属性和实体完整性约束,引用完整性约束。关系模式代表关系的内涵。关系模式给出了关系的名字,并为关系的每个属性(字段)规定了域约束。(3)从SQL 查询书写者的角度看,关系模型提供了逻辑数据和物理数据的独立性。2.6 考虑图2.1 中的Students 关系实例。(1) 假设这个实例是合法的,那么,根据这个实例,你能推理出哪个属性或哪个属性组不是候选键的一部分?(2) 假设这个实例是合法的,那么,根据这个实例,你能推理出哪个属性或哪个属性组是候选键?答:(1)name,sex,birthdate,class,department(2)sid,idcard2.7 外连接操作扩展了自然连接操作,使得参与连接的关系元组能在连接结果集中保持。描述应如何扩展一般连接,使得左、右或两边关系元组能出现在连接的结果集中。外连接将不匹配的元组也加入到结果当中,而一般连接只由匹配的元组对组成。所以如果需要左右或两边关系元组能出现不匹配元组的结果,可将一般连接中不可匹配的元组筛选出来放在结果中,然后除去连接的键和主键以外,其他赋值为NULL。2.8 给出至少两点理由,说明我们可能会选择定义一个视图。首先,从安全的角度考虑,我们可能更希望各用户只看到与其有关的哪些数据。其次,我们可能也希望能针对不同的用户,分别创建不同的个性化关系子集,以便能更好地匹配特定用户需要,使他们能以特定的视角来观察他们所感兴趣的数据子集。2.9 说明当我们需要针对视图表达直接进行更新操作时,可能出现的问题。基于视图的修改通常是不被直接支持的。基于视图名表达的更新,必须被等效转换为对DB 中相关实关系的修改。可能出现的问题为:若不物化视图,则当实例数据很大时,或实例数据分散在网络不同DB 服务器上时,针对视图查询的响应时间可能会很长。若物化视图,则需要付出额外的存储代价,同时,为保持物化视图与其相关实关系的一致性,当相关实关系的实例数据变化时,我们还必须及时更新物化视图 2.10 列出两个需要在DB 中引入null值的理由。当实际的列值不知道时,或者在刚插入元组不知道时,需要有null值来替代。同时null还可以来替代结果unknown的情况。2.11 令有关系模式R=(A,B,C)和S=(D,E,F),并假设有关系实例r(R)和s(S)。给出与下列关系代数查询等价的元组关系演算表达和SQL 表达。(1) A(r)(2) B=17 (r)(3) r s(4) A,F( C=D (rs)答:(1)P|r1r (r1.A) SELECT r.A FROM r (2)P|r1r (r1.B=17) SELECT r.B FROM r WHERE r.B=17(3)P|r1r s1s(rs) SELECT r.* FROM r,s WHERE rs(4)P|r1r s1s(Q=rs Q.C=DQ.AQ.F) SELECT s.A s.F FROM r,s WHERE rs AND r.C=D2.12 令有关系模式R=(A,B,C),并假设r1,r2 都是基于关系模式R 的实例。给出与下列关系代数查询等价的域关系演算表达式和SQL 表达式。(1) A(r1)(2) B=17 (r1)(3) r1r2(4) r1r2(5) r1-r2(6) A,B(r1) B,C(r2)答:(1)|A (r1) SELECT r1.A FROM r1(2)|A,B,C(r1(r.B=17) SELECT r.B FROM r WHERE r.B=17(3)|A,B,C(r1r2) SELECT r1.* FROM r1 r2 WHERE r1.A=r2.A AND r1.B=r2.B AND r1.C=r2.C(4)(5)|A,B,C (r1 r2) SELECT r1.* FROM r1,r2 WHERE r1.Ar2.A AND r1.Br2.B AND r1.Cr2.C (6)|A,B,C(r1r2) SELECT r1.A r1.B r2.B r2.C FROM r1,r2 WHERE r1.B=r2.B2.13 令R=(A,B)和S=(A,C)是关系模式,而r(R)和s(S)是关系实例。写出与以下域关系演算表达等价的关系-代数表达。(1) | b(rb=17)(2) | rs(3) | b(r) c (d(s) s) 答:(1)a (b=17 (r)(2)A,B(r) B,C(s)(3)a(b(r) c(d(s) )2.14 考虑SQL 查询:SELECT p.a1 FROM p, r1, r2 WHERE p.a1=r1.a1 OR p.a1=r2.a1。 在什么条件下,这个查询选择值p.a1 不是在r1,就是在r2 ? 仔细检查r1 或r2 可能为空的情况。r1和r2均非空。2.15 描述我们将选择使用嵌入SQL,而不单独使用SQL 的情况或单独使用通用编程语言的情况。当需要更大灵活性,或需要表达一些复杂查询,或需要更友好用户界面时,我们需要借助通用编程语言,来构建高级DB 应用。其中,一种方法是直接嵌入SQL 命令到通用程序编程语言,另一种方法,则是应用通过存取DB 关口的API 函数库(如ODBC 或JDBC)来操纵数据库。2.16 关于宿主语言中嵌入SQL,简要回答下列问题。(1) 说明在宿主语言的嵌入SQL 语境下,存在的阻抗不匹配问题。(2) 说明为什么需要引入光标。(3) 解释下列与光标创建相关的术语选项:updatability、sensitivity 和scrollability.(4) 给出一个嵌入SQL 不足以解决问题,需要动态SQL 应用的应用场景实例。答:(1)SQL 以记录集为操作对象,而宿主语言一般不支持记录集类型。(2)通过引入光标(cursor)机制可以解决阻抗不匹配的问题。我们可声明一个查询结果集或一个关系为一个光标;对已声明的光标,可通过执行打开OPEN 操作进行赋值;然后,再用FETCH 语句顺序取出光标行进行处理;处理结束后关闭(CLOSE)光标。(3)如果希望对光标行进行修改,并让修改结果更新到DB 中,则应选用FOR UPDATE 子句。如果指定了关键字INSENSITIVE,则光标相当于对结果集元组的一个私有复制,不受其它事务影响。若未指定INSENSITIVE(缺省),其它事务可能在光标赋值后未关闭前,修改某些光标行对应的原关系数据。如果指定了关键字SCROLL,则光标是可滚动的(4)若程序希望在运行时执行不同的、临时指定的SQL 语句。比如,某些图形前端应用需接受来自用户提交的任何SQL 命令,检索事先无法预知的数据集。2.17 采用如下不同技术,分别写一个可独立运行的小程序,计算sailors 关系表中所有水手年龄的均方差。(1) 采用基于C 语言的嵌入SQL 命令。(2) 采用ODBC 技术。(3) 采用JDBC1.0。(4) 采用JDBC2.0 或更高版本。略第三章 数据库设计3.1 简要描述为一个企业建立数据库应用需要的几大基本步骤。DB 设计过程大体上可划分为六个步骤”(1) 需求分析(2) 概念DB 设计。利用需求分析获得的信息,建立DB 数据的一个抽象描述。这一步通常利用ER/EER 模型,或其它高级数据概念模型(如UML 类图),来实现。(3) 逻辑DB 设计。转换DB 概念设计模式到指定DBMS 逻辑模式。若只考虑RDBMS,则最终希望获得的是关系数据库模式。(4) 模式细化。分析关系数据库模式的关系集,检查潜在问题并进行优化。与需求分析和概念设计的主观性特点不同,细化可得到强有力的规范理论支持。(5) 物理DB 设计。考虑我们必须支持DB 的一些典型预期负荷,并以此为基础进一步求精DB设计,确保它能满足预期的性能要求。这个步骤可能包括为一些表建立索引和指定聚集存储方式等。(6) 安全设计3.2 关于ER 模型,简要回答以下问题。(1) 说明ER 模型的地位、作用和基本核心概念集。(2) ER 中图能表达哪些类型约束?这些约束在关系模型中都能表达吗?答:(1)实体-关系模型(Entity-Relation model),简称ER 模型,是一种非常流行的概念数据模型,允许我们从“实体(对象)及其相互关系” 的角度,描述现实世界,尽可能忠实地对各类数据进行建模。 基本核心概念集:键,关系,关系类型,关系集。(2)关系集(关系类型)通常可带一定的约束,简称关系约束。关系约束主要包括基数词约束、键约束和参与约束三类。 当需要建立两个关系集间的关联时,ER图可能不能清晰表达。3.3 若有一个汽车保险公司,它的每个顾客可能拥有一辆或多辆汽车,每辆汽车可能关联0 次或多次事故记录。请构造一个描述此场景数据概念模式的E-R 图。3.4 对大学数据库中,针对以下各种情况,画出描述教授(Professors)讲授(Teachs)课程(Courses)关系的ER 图。(1) 教授们可能在几个学期讲授同一门课程,每学期上课都必须被记录;(2) 教授们可能在几个学期讲授同一门课程,只需记录最近一个学期的上课情况;(3) 每个教授必须讲授几门课程;(4) 每个教授只且必须讲授一门课程;(5) 每个教授只且必须讲授一门课程;每门课程都必须有人讲授。答:(1)(2)(3)(4)(5)3.5 考虑一个简单版的“大学数据库”,它包括以下一组实体集,每个实体集需要的描述属性已在其后括号内注明。l 教授,Professors(ssn / name / age / rank / specialty 研究专业);l 项目,Projects(proj-id / sponsor_name / starting_date /ending_date / budget );l 研究生,Graduates (ssn/ name / age / degree-program);l 系,Departments (did, name, office)。假定在这些实体集之间存在以下的相互联系:l 每个教授挂靠在(Works_in)一个系。l 每个研究生有一个主修(Majors)专业系。l 每个系有且必须有一名系主任,由一名教授担任,负责管理(Runs)该系的事务工作。l 每个项目由一名教授负责(Managed_by),多名教授可能参与(Works_on)同一项目的工作,每个教授允许负责或参与多个项目。l 一个项目组中可能有多名研究生参与,当然,一个研究生也允许同时参与多个项目工作。l 在一个项目组中,必须给每个研究生指定一名教授,以督导(Supervises)该学生的项目工作(同时参与多个项目的研究生,可能会有多个督导老师)。试针对以上描述的大学数据库,画出一个能反映其概念模式的ER 图。答:3.6 映射习题3.3、3.4、3.5 的E-R 图到关系模式。答:1)3.3:CREAT TABLE Guarantee ( ssn INTEGER, cid CHAR(11), PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Auto Insurance, FOREIGN KEY (cid) REFERENCES Customs) CREAT TABLE Own ( cid CHAR(11), ccid CHAR(11), PRIMARY KEY (cid), FOREIGN KEY (ccid) REFERENCES Cars, FOREIGN KEY (cid) REFERENCES Customs)CREAT TABLE Occurence ( ccid CHAR(11), level CHAR(11), PRIMARY KEY (ccid), FOREIGN KEY (ccid) REFERENCES Cars, FOREIGN KEY (level) REFERENCES Accident)2)3.4: (1)CREAT TABLE Teaches( ssn, semesterid, courseid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (semesterid) REFERENCES Semeter) FOREIGN KEY (courseid) REFERENCES Course) (2) CREAT TABLE Teaches( ssn, semester, courseid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (courseid) REFERENCES Course) (3) CREAT TABLE Teaches( ssn, semester, courseid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (courseid) REFERENCES Course) (4) CREAT TABLE Teaches( ssn, semester, courseid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (courseid) REFERENCES Course) (5) CREAT TABLE Teaches( ssn, semester, courseid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (courseid) REFERENCES Course)3)3.5:CREAT TABLE Work_dept( ssn, dno, pc_time, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (dno) REFERENCES Dept)CREAT TABLE Runs( ssn, dno, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (dno) REFERENCES Dept)CREAT TABLE Work_in( ssn, pid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (pid) REFERENCES project)CREAT TABLE Manages( ssn, pid, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (pid) REFERENCES project)CREAT TABLE Supervises( ssn, pid, Graduate.ssn, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Professor, FOREIGN KEY (pid) REFERENCES project, FOREIGN KEY (Graduate.ssn) REFERENCES Graduate)CREAT TABLE Major( dno, ssn, PRIMARY KEY (ssn), FOREIGN KEY (dno) REFERENCES Dept, FOREIGN KEY (ssn) REFERENCES Graduate)CREAT TABLE Work_proj( Graduate.ssn, pid, ssn, PRIMARY KEY (Graduate.ssn), FOREIGN KEY (Graduate.ssn) REFERENCES Graduate, FOREIGN KEY (pid) REFERENCES project)CREAT TABLE Advisor(ssn, PRIMARY KEY (ssn), FOREIGN KEY (ssn) REFERENCES Graduate)3.7 关于弱实体集,简要回答以下问题(1) 解释弱实体集和强实体集的区别。(2) 若将所有者标识添加加到弱实体的属性集中,总能将弱实体集转换为强实体集。这样做会会引发什么问题?会产生何种冗余?答:(1)只能附属其它实体集而存在的实体集,称为弱实体集。弱实体通常只含有键的部分属性,需结合拥有者主码才能构成完整的键。强实体集不需要附属其他实体集而存在,有完整的键。(2)会强制要求我们引入一个二元标识关系。而当二元关系不能正确表达语义的时候,利用多元关系建模也许会更好。当多元关系足以表达语义的时候,强制引入一个二元标识关系会造成语义表达上的冗余。3.8 定义ER 图中的聚合概念,并给出一个有必要用聚合建模,以更好表达应用语义的具体例子。聚集是一个抽象概念,允许我们将一个关系集及参与它的实体集封装在一起,构成一个复合对象。这种复合对象可以整体形式参与另一个关系集。例如,若有表示项目的实体集(Projects),每个project 由一个或多个部门资助,可引入资助关系集(Sponsors)来建模Projects 和Departments 间的联系;另一方面,资助了project 的部门可委派一个员工来监管(monitor)资助使用的情况,这样我们还必须建立一个与Sponsors 有关联的监管关系集(Monitors)。3.9 考虑图3.17 的ER 图,该图模型化了一个在线书店的概念模式。(1) 列出图中描述的实体集,以及它们的主键;(2) 如果给该在线书店增加磁带(Cassettes)和光碟(Disks)两类销售商品,同一主题内容可能既有磁带,也有光碟,只是它们的价格可能不同。试扩展原ER 图以表达这种情况。答:(1)Authors,主键:ssn;Publishers,主键:name;Customers,主键:ssn;Books,主键:ISBN;Shopping_baskets, Warehouse,主键:code。(2)3.10 关于EER 模型,简要回答以下问题。(1) 说明特化与ISA 的区别与联系。(2) 解释特化的不相交约束和完备性约束。(3) Union 子类关系能表达何种约束?(4) 说明union 子类与共享子类的区别与联系。(5) 与ER 模型相比,EER 模型的表达能力增强主要体现在哪些方面?答:(1)子类S是一个类,子类中的实体必然是其超类C中实体的一个子集。这种超类/子类关系,称为ISA(读is-a)关系,记做C/S。特化ZS1,S2,Sn是具有相同超类G 的一个子类集合,即对于i=1,2,n,G/Si是一个超类/子类关系。G 被称为泛化实体类型(或称为特化Z 的超类)。ISA是指一个子类和超类之间的关系,而严格来说特化是将一类对象(如实体集)划分为一个子类集合的过程。(2)不相交约束要求特化的子类不能相交。超类的一个实体最多只能是特化的某个子类成员。如果用来定义成员谓词的属性是单值属性,那么,属性判定特化就隐含了不相交约束。对非不相交约束,特化的不同子类中可能会有相同的实体,即特化不同子类实体集可能有重叠(overlap),故也称为有重叠特化。 完备性约束,分完全和部分两类。完全特化要求超类中的每个实体至少是一个特化子类的成员。例如,员工必须要么是Hourly_Emps,要么是Contracts_Ems,因此,特化Hourly_Emps, Contracts_Ems是一个完全特化。但员工可能不属于特化Secretaries, Engineers, Techicians中的任何一个子类,故该特化是部分特化。(3)键约束(4)共享子类中的实体,必须同时是它所有超类的成员实体,即是各超类实体集交集的一个子集;而union 子类中的实体,则是各超类实体集并集的一个子集。共享子类要同时继承其所有超类的属性;而union 子类的属性继承则具有选择性。例如,图3.8中,每个Owners 实体根据其所属的超类,会继承相应超类的属性。(5)在常规ER 模型中,当确定一个实体集的属性时,对可能有多值的特性,会面临是按属性还是按与它关联实体集来建模的选择问题。在EER 模型中,允许直接表示多值(值集)属性和复合(结构)属性。 而且EER模型提出了一些具备实用特点的语义数据模型,如UML 类图、描述逻辑或语义Web 等3.11 若对图3.17 的在线书店 ER 图扩展磁带(Cassettes)和光碟(Disks)两类商品,分别给出EER 和UML 版本的概念设计模式(允许按你认为更自然的方式扩展概念模式语义)。将书,磁带,光碟,都纳入一类中成为子类。3.12 映射习题3.11 中你所设计的EER 图到关系模式。3.13 关于关系规范技术,请简要回答以下问题。(1) 如果所有ER 图设计已非常规范,那么,我们还需利用基于规范理论的相关技术,来辅助规范ER 图到关系模型的转换映射结果吗?为什么?(2) 描述关系表设计违反3NF 的两种主要情形,并各举一例说明。(3) 满足3NF 规范的关系,是否一定满足2NF 关系,为什么?(4) 不满足2NF 规范的关系,是否也肯定违反3NF 关系,为什么?(5) 满足BCNF 规范的关系,是否一定满足3NF 关系,为什么?(6) 满足4NF 规范的关系,是否一定满足BCNF 关系,为什么?一个满足BCNF 规范的关系,还需要附加什么条件,才保证能满足4NF 规范?(7) 描述判定一个分解为无损分解的实用性简单方法。(8) 简要说明依赖保持的基本概念。在分解一个不规范关系到一组满足BCNF 或3NF 的子关系时,一般如何来处理依赖保持特性?这种处理方法有何副作用?(9) “任何一个关系,总存在到3NF 分解” 这个论点正确吗?如果不正确,请给出一个反例;如果正确,请给出一个解释性论证。答:(1)即使ER图已设计的非常规范,我们依旧需要利用规范理论的相关技术来辅助规范ER图到关系模式的转换映射结果。如果存在函数依赖,那么就有潜在冗余问题。我们需要通过ICs来检测潜在冗余。(2)1X 是某键K 的一个属性子集。这时,依赖关系XA 常被称为部分依赖。这种情形下,存储(X,A)对是一种冗余情况。作为一个例子,我们在回头看含有SBDC 属性集的Reserves 关系。Reserves的唯一键是SBD,而我们还有FD:SC。这样,同一个水手值勤服役几次,我们就必须存储该水手的信用卡号几次。2. X 不是任何键K 的完全属性子集。这时,依赖关系XA 常被称为传递依赖。因为这时我们有一个依赖链KXA。这个问题表明:我们不能关联X 与K 值,除非我们也同时关联X 与A值。作为一个例子,我们来看包含有SNLRWH 属性集的Hourly_Emps 关系。该关系的唯一键是S,另外,还有FD:RW,故有依赖链SRW。其结果是当我们不知道等级R 的小时工资时,我们不能单独记录S 与R 关系的信息,即存在插入、删除和更新异常。(3)一定满足。3NF的要求高于2NF。(4)一定违反。2NF是最低的要求。(5)满足BCNF规范必然满足3NF关系。(6)一定满足。4NF是BCNF的通用化。BCNF需要附加条件:Y是R的非空属性子集。成立条件加上YX或者XY=R(7)令R为一个关系模式,F是R上的一个FDs集。将R分解为属性组R1 和R2 是无损连接的,当且仅当或包含FD: 或包含FD: 。(8)依赖集投影:令关系模式R 被分解为两个属性组X 和Y,F 是R 上保持的FDs。F 在X 上的投影是中那些仅包含X 中属性的FDs,记为FX。中一个依赖关系UV在Fx中,当且仅当U 和V 中的所有属性都在X 中。依赖保持:带有FDs 集F 的关系模式R,分解为X 和Y 两个属性组是依赖保持的,当且仅当。一般使用函数依赖理论。但是,虽然函数依赖理论能告诉我们是否存在冗余,并给我们提供处理问题的可能分解方案线索,但它不能区别或挑选不同的分解方案。设计者必须考虑所有的可能,并根据应用语义进行恰当的选择。使用函数依赖理论的副作用是:有可能出现,即使在单个关系中没有冗余,但冗余可能跨越多个关系存在。(9)正确。第4章 数据存储与组织管理习题参考答案4.1 答案:(1)磁盘空间管理器支持以页(page)为单位的数据管理,隐藏了下层硬件(甚至包括OS文件管理)的细节,且允许高层软件认为DB 数据是一系列以页为单位的磁盘数据集合,是DBMS 体系结构中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年厦门东海职业技术学院单招职业适应性考试题库及一套答案详解
- 2026年南京特殊教育师范学院单招职业技能测试题库及一套参考答案详解
- 四川省凉山州木里藏族自治县中学2026年高三第六次月考试卷(物理试题文)试题含解析
- 广安市重点中学2026年高三5月阶段测试数学试题试卷含解析
- 滨州市重点中学2026届高三第十五模数学试题含解析
- 河南省巩义市市直高中2025-2026学年高三暑假第二次阶段性测试数学试题试卷含解析
- 安庆市重点中学2026届高三第一次摸底考试语文试题文试题含解析
- 2025福建土楼旅游投资集团有限公司招聘16人笔试历年难易错考点试卷带答案解析2套试卷
- 2025湖南省矿产资源集团有限责任公司招聘1人笔试历年典型考点题库附带答案详解2套试卷
- 2025湖南岳阳市交通建设投资集团有限公司“四海揽才”招聘15人笔试参考题库附带答案详解
- 2026年小红书38好心情小会招商方案
- 2026年山东城市服务职业学院单招职业适应性测试模拟测试卷附答案
- 神经重症患者的护理风险评估
- 女性避孕方法临床应用中国专家共识
- 初中英语(完整版)连词and-or-but的用法练习题及答案
- 嘉兴微型顶管施工方案
- 新房建房申请书
- 结直肠外科的发展历程解析
- 输液错误不良事件课件
- 春节的传说故事(合集15篇)
- 京津冀金融协同发展:测度、困境与优化路径
评论
0/150
提交评论