1、数据库原理与应用练习题1. 试述数据、数据库、数据库系统、数据库管理系统的概念。答:(1) 数据 (Data): 描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。(2) 数据库 (DataBase, 简称 DB): 数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。(3) 数据库系统 (DataBas
2、e Sytem, 简称 DBS): 数据库系统是指在计算机系统中引人数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。(4) 数据库管理系统 (DataBase Management Sytem, 简称 DBMS): 数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。2. 使用数据库系统有什么好处 ?答:使用数据库系统的好处是由数据库管理系统的特点或优点决定的。 使用数据库系统的好处很多,例如,可以
3、大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。3. 试述文件系统与数据库系统的区别和联系。答:文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。文件系统是操作系统的重要组成部分;而DBMS是独立于操作系统的软件。但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来
4、实现的。4.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。答:(1)适用于文件系统而不是数据库系统的应用例子数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适合用文件系统。(2)适用于数据库系统而非文件系统的应用例子目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统(其中会包括许多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等),学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等,都适合用数据库系统。5.试述数据
5、库系统的特点。答:数据库系统的主要特点有:(1) 数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个学生的完整记录。(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个
6、系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。(3)数据独立性高。 数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。所谓独立性指的是相互不依赖。数据独立性是指数据和程序相互不依赖,即数据的逻辑结构或物理结构改变了,程序不会跟着改变。(4)数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性
7、检查、并发控制和数据库恢复。6. 数据库管理系统的主要功能有哪些 ?答:(1) 数据库定义功能;(2) 数据存取功能;(3) 数据库运行管理;(4) 数据库的建立和维护功能。7. 试述数据模型的概念、数据模型的作用和数据模型的三个要素。答:数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。(1)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。(2)数据操作:是指对数据库中各种对
8、象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。(3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。8. 试述概念模型的作用。答:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。9. 定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图(E-R 图)
9、答:实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集。属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。码:惟一标识实体的属性集称为码。实体联系图(E-R 图):提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或 m:n)。10. 试给出 3 个实际部门的 E
10、-R 图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。答:解析:部门和总经理是两个实体。一个部门或者一个公司只有一个总经理,一个总经理只在一个公司工作,不能兼任两个以上公司的总经理,所以部门和总经理两个实体之间是一对一的联系。一个科研项目可以由多个教员和多个学生承担。如果规定一个教员只能参加一个项目,一个学生也只能参加一个项目。按照这样的语义,科研项目和教员、学生三者之间是一对多的联系。如果一门课程可以由多个教员讲授,一个教员可以讲授多门课程,则课程和教员之间是多对多的联系。11. 试给出一个实际部门的E-R图,要求有三个实体型,而且3个实体型之间有多对多联系。3个实体型之间的多对
11、多联系和三个实体型两两之间的三个多对多联系等价吗?为什么?答:3个实体型之间的多对多联系和3个实体型两两之间的3个多对多联系是不等价,因为它们拥有不同的语义。3个实体型两两之间的三个多对多联系如上右图所示。12. 学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E-R图画出此学校的概念模型。解析:在画E-R图时,读者可以按照习题中对问题的描述一步一步画出每一句话中涉及的实体,再根据给出的实际语义,画出实体之间的联系。例如,每个教研室有若干教员,每个班有若干学生,可以画出教
12、研室和教员、班级和学生之间一对多的联系。再如,有的教授和副教授每人各带若干研究生,而一个研究生一般指定一个导师,这是通常的规则,所以可以画出教员和学生之间一对多的联系。13.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E-R 图画出此工厂产品、零件、材料、仓库的概念模型。解析:对实体之间联系的语义描述有时不是直截了当的,需要从对现实世界的整体描述中进行分析,导出实体之间的某种联系。就如本题中,零件和仓库的联系就要从以下描述中分析:零件
13、按所属的不同产品分别放在仓库中。因为一个产品由多种零件组成的,所以一个仓库中存放多种零件;反过来一种零件是放在一个仓库还是多个仓库中呢?因为一种零件可以用在多种产品上,这些零件按所属的不同产品分别放在仓库中,于是知道一种零件可以放在多个仓库中,所以零件和仓库之间是多对多的联系。材料和仓库的联系则根据原材料按照类别放在若干仓库这句话就可以得出:一个仓库中放多种材料,而一种材料只放在一个仓库中,所以仓库和材料之间是一对多的联系。18.试述关系模型的概念,定义并解释以下术语:(1) 关系 (2) 属性 (3) 域(4) 元组 (5) 主码 (6) 分量 (7) 关系模式答:关系模型由关系数据结构、关
14、系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 (1)关系:一个关系对应通常说的一张表;(2)属性:表中的一列即为一个属性;(3)域:属性的取值范围;(4)元组:表中的一行即为一个元组;(5)主码:表中的某个属性组,它可以惟一确定一个元组;(6)分量:元组中的一个属性值;(7)关系模式:对关系的描述,一般表示为关系名(属性 1, 属性 2, , 属性 n)14. 试述关系数据库的特点。答:关系数据模型具有下列优点:(1) 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 (2) 关系模型的概念单一,无论实体还是实体之间削
15、联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。15.试述数据库系统三级模式结构,这种结构的优点是什么?答:数据库系统的三级模式结构由外模式、模式和内模式组成。外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部
16、数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模
17、式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。16.定义并解释以下术语:DDL、DMLDDL: 数据定义语言,用来定义数据库模式、外模式、内模式的语言。DML: 数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。17.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?答:数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修
18、改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。18.试述数据库系统的组成。答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。19.DBA的职责是什么?答:负责全面地管理和控制数据库系统。具体职责包括: 决定数据库的信息内容和结构; 决定数据库的存储结构
19、和存取策略; 定义数据的安全性要求和完整性约束条件; 监督和控制数据库的使用和运行; 改进和重组数据库系统。20.系统分析员、数据库设计人员、应用程序员的职责是什么?答:系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户及DBA相结合,确定系统的硬件、软件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。21. 试述关系模型的三个组成部分。答:关系模型由关系数据结
20、构、关系操作集合和关系完整性约束三部分组成。22. 定义并理解下列术语,说明它们之间的联系与区别(1) 域,笛卡儿积,关系,元组,属性答:域:域是一组具有相同数据类型的值的集合。笛卡儿积:给定一组域 D1,D2, ,Dn,这些域中可以有相同的。这组域的笛卡儿积为D1 D2 Dn=(d1,d2 ,dn)|diDi,i =1,2, ,n 其中每一个元素(d1,d2 ,dn)叫做一个 n 元组 (n-tuple) 或简称元组 (Tuple)。元素中的每一个值di叫做一个分量 (Component)。关系:在域 D1,D2, ,Dn 上笛卡儿积D1 D2 Dn 的子集称为关系,表示为R(D1,D2.,
21、Dn)元组:关系中的每个元素是关系中的元组。属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。(2) 主码,候选码,外部码答:候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码 (Candidate key)。主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key) 。 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码 Ks 相对应,则称F是基本关系R的外部码(Foreign key),简称外码。基本关系R称为参照
22、关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(TargetMation)。关系R和S可以是相同的关系。23. 试述关系模型的完整性规则 O 在参照完整性中 , 为什么外部码属性的值也可以为空?什么情况下才可以为空?答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称做是关系的两个不变性,应该由关系系统自动支持。(1)实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A
23、 不能取空值。(2)参照完整性规则:若属性 ( 或属性组 )F 是基本关系 R 的外码 , 它与基本关系S的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在F上的值必须为:1) 或者取空值 (F的每个属性值均为空值);2) 或者等于S中某个元组的主码值。(3)用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定,但前提条件是该外部码属性不是其所在关系的主属性。例如,在下面的学生表中,专业号是一个外部码,不是学生表的主属性,可以为空,其语义是,
24、该学生的专业尚未确定。学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)而在下面的选修表中的课程号虽然也是一个外部码属性,但它又是课程表的主属性,所以不能为空,因为关系模型必须满足实体完整性。课程(课程号,课程名,学分)选修(学号,课程号,成绩)24. 设有一个SPJ数据库,包括S、P、J、SPJ 四个关系模式:S(SNO,SNAME,STATUS ,CITY);P(PN0,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SN0,PNO,JN0,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商
25、所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。要求:用SQL语句建立上述4个表。答:对于S表:S(SN0,SNAME,STATUS,CHY);建S表CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),STATUS CHAR(2),C
26、ITY CHAR(10);对于P表:P(PN0,PNAME,COLOR,WEIGHT);建P表CREATE TABLE P(PNO CHAR(3),PNAME CHAR(10),COLOR CHAR(4), WEIGHT INT);对于J表:J(JN0,JNAME,CITY); 建J表CREATE TABLE J(JNO CHAR(3),JNAME CHAR(10),CITY CHAR(10);对于SPJ表:SPJ(SN0,PNOJNO,QTY);建SPJ表CREATE TABLE SPJ(SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);25针对
27、上题中建立的4个表试用SQL语言完成下列查询。 (1)求供应工程J1零件的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=J1;(2)求供应工程J1零件P1的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=J1AND PNQ=P1;(3)求供应工程J1零件为红色的供应商号码SNO;SELECT SNO /*这是嵌套查询*/FROM SPJWHERE JNO=J1AND PNO IN /*找出红色零件的零件号码 PNO */(SELECT PNOFROM P /*从P表中找*/WHERE COLOR =红);或SELECT SNOFROM SP
28、J,P /*这是两表连接查询*/WHERE JNO=J1 /*这是复合条件连接查询*/AND SPJ.PNO=P.PNOAND COLOR=红;(4)求没有使用天津供应商生产的红色零件的工程号JNO;SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.JNO=J.JNO AND SNO IN /*天津供应商的SNO*/(SELECT SNOFROM SWHERE CITY=天津)AND PNO IN /*红色零件的PNO*/(SELECT PNOFROM PWHERE COLOR=红);或SELECT JNOFROM JWHER
29、E NOT EXISTS(SELECT *FROM SPJ,S,P WHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津AND P.COLOR=红);(5)求至少用了供应商S1所供应的全部零件的工程号JNOSELECT DISTINCT JNOFROM SPJ SPJZWHERE NOT EXISTS /*这是一个相关子查询*/(SELECT * /*父查询和子查询均引用了SPJ表*/FROM SPJ SPJX /*用别名将父查询与子查询中的SPJ表区分开*/ WHERE SNO=S1AND NOT EXIST
30、S(SELECT *FROM SPJ SPJYWHERE SPJY.PNO=SPJX.PNOAND SPJY.JON=SPJZ.JNO);26.针对上题中的4个表试用SQL语言完成以下各项操作:答:(1)找出所有供应商的姓名和所在城市。SELECT SNAME,CITYFROM S;(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHTFROM P;(3)找出使用供应商S1所供应零件的工程号码。SELECT JNOFROM SPJWHERE SNO=S1;(4)找出工程项目J2使用的各种零件的名称及其数量。SELECT P.PNAME,SPJ.QTYFROM
31、P,SPJWHERE P.PNO=SPJ.PNOAND SPJ.JNO=J2;(5)找出上海厂商供应的所有零件号码。SELECT DISTINCT PNOFROM SPJWHERE SNO IN(SELECT SNOFROM SWHERE CITY=上海);(6)找出使用上海产的零件的工程名称。SELECT JNAMEFROM J,SPJ,SWHERE J.JNO=SPJ.JNOAND SPJ.SNO=S.SNOAND S.CITY=上海;或SELECT JNAMEFROM JWHERE JNO IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND S.C
32、ITY=上海);(7)找出没有使用天津产的零件的工程号码。SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.JNO=J.JNOAND SNO IN(SELECT SNOFROM SWHERE CITY=天津);或SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJ,SWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNO AND S.CITY=天津); (8)把全部红色零件的颜色改成蓝色。UPDATE PSET COLOR=蓝WHERE COLOR=红;(9)由S
33、5供给J4的零件P6改为由S3供应,请做必要的修改。UPDATE SPJSET SNO=S3WHERE SNO=S5AND JNO=J4AND PN0=P6;(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。DELETEFROM SPJWHERE SNO=S2;DELETEFROM SWHERE SNO=S2;解析:注意删除顺序,应该先从sn表中删除供应商S2所供应零件的记录,然后从S表中删除S2。(11)请将(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ(SN0,JN0,PNO,QTY) /*INTO子句中指明列名*/VALUES(S2,J
34、6,P4,200); /*插入的属性值与指明列要对应*/或INSERT INTO SPJ /* INTO子句中没有指明列名*/VALUES(S2,P4,J6,2000); /*插入的记录在每个属性列上有值*/*并且属性列要和表定义中的次序对应*/ 27.什么是基本表?什么是视图?两者的区别和联系是什么?答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再
35、定义视图。28.试述视图的优点。答:(1)视图能够简化用户的操作;(2)视图使用户能以多种角度看待同一数据;(3)视图对重构数据库提供了一定程度的逻辑独立性;(4)视图能够对机密数据提供安全保护。 29给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、1NF、2NF、3NF、BCNF答:参考讲义或教材30现有一局部应用,包括两个实体:出版社和作者,这两个实体是多对多的联系,请读者自己设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。答:E-R图为:关系模型为:作者(作者号,姓名,年龄,性别,电话,地址)出版社(出
36、版社号,名称,地址,联系电话)出版(作者号,出版社号,书的数量)出版关系的主码作者号,出版社号分别参照作者关系的主码作者号和出版 社关系的主码出版社号。31.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版 社。对每本被借出的书存有读者号、借出日期和应还日期。要求:给出E-R图,再将其转换为关系模型。答:E-R图为:关系模型为:读者(读者号,姓名,地址,性别,年龄,单位)书(书号,书名,作者,出版社)借书(读者号,书号,借出日期,应还日期)32规范化理论对数据库设计有什么指导意义?答:规范化理论为数据库
37、设计人员判断关系模式的优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础。33试述事务的概念及事务的4个特性。答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务具有4个特性:原子性(Atomicity)、一致性(Consistency )、隔离性(Isolation)和持续性(Durability)。这4个特性也简称为ACID特性。原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性:事务执行的结果必须是使数据库
38、从一个一致性状态变到另一个一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库 中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。34.为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完 成事务对数据库所做的修改有一部分已写入物理数据库,这时
39、数据库就处于一种不正确的状态,或者说是不一致的状态。例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。则可以定义一个事务T,T包括两个操作;Q1=Ql-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。35.数据库中为什么要有恢复子系统?它的功能是什么?答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。恢复子系统的功能是:把数据库从错误状态恢复到某一已
40、知的正确状态(亦称为一致状态或完整状态)。36.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:(1)事务内部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。37在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提
41、供并发控制机制。38并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读脏数据。(1)丢失修改(Lost Update):两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。(2)不可重复读(Non -Repeatable Read):不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。 (3)读脏数据(Dirty Read)读脏数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时
42、T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为脏数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。39什么是封锁?答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。40基本的封锁类型有几种?试述它们的含义。答:基本的封锁类型有两种:排它锁(Exclusive Locks, 简
43、称 X 锁 )和共享锁(Share Locks,简称 S 锁)。排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。41.设有关系R(ABCDEFG),其函数依赖集为: F= E D,CB,CEG,BA 问: R属于第几范式?解: 关系的 key =
44、CE,所以 CE D,而 E D也成立(已知条件),存在部分函数依赖,故R1NF.42.设有关系R(ABCDE),其函数依赖集为: F= ABC,CDE,BD,EA 下面是R的两个分解: =R1(ABC),R2(ADE)=R3(ABC),R4(CDE)试验证,是否无损分解.解: 无损分解的判断:如果R1R2是R1或R2的超码,则R上的分解(R1,R2)是无损分解。(1)因为U1U2=A,U1-U2=BC,U2-U1=DE,所以ABC成立 , 是无损分解.(2) 因为U1U2=C,U1-U2=AB,U2-U1=DE,所以CAB或CDE均不成立,是有损分解.43设有学生、课程和选课3个关系,它们的
45、关系模式为:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,先行课);选课(学号,课程号,成绩);用SQL命令完成如下查询。(1) 求学过数据库课程的学生的姓名和学号。Select学号,姓名from选课, 学生,课程where学生. 学号=选课.学号 and课程.课程号=选课.课程号 and 课程名=数据库(2) 求没学过数据库和数据结构的学生姓名和学号。Select学号,姓名from学生where not exists(select * from选课,课程 where 课程.课程号=选课.课程号 and(课程名数据库 or课程名数据结构) and学生. 学号=选课.学号) (3)
46、 求没学过数据库课程的学生学号。Select学号,姓名from学生where not exists(select * from选课,课程 where 课程.课程号=选课.课程号 and课程名=数据库and学生. 学号=选课.学号)(4) 求教育技术系学生的学号和姓名。Select学号,姓名from 学生 where所在系 = 教育技术系(5) 求选修了课程的学生学号。Select distinct学号from选课(6) 求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。Select 学号,成绩from选课 where 课程号=C1 order by 成绩 DESC,学号 ASC(7) 求选修课程C1且成绩在8090之间的学生学
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。