1、(完整word版)数据库原理复习资料及答案 数据库原理习题一、 核心知识点1、 数据库系统和文件系统的比较。文件系统:数据可长期保存、由文件系统管理数据,但是数据共享性差,冗余度大,数据独立性差;数据库系统:数据库实现整体数据的结构化、数据的共享性高,冗余度低,意扩充、数据独立性高、数据由DBMS统一管理和控制2、 简述数据库系统的三级模式结构。外模式/模式、模式、内模式3、 简述数据库系统三级模式结构中的两级映像,并说明其优点。两级映像:外模式/模式映像 模式/内模式优点:这两级映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性4、 简述数据模型的三要素。数据结构、数据操作、数据的
2、完整性约束5、 简述数据库独立性的特点。数据独立性是由DBMS二级映像功能来保证的,数据与程序的独立性大大减少了应用程序的维护和修改6、 简述数据库系统的组成部分数据库、硬件、软件、人员7、 简述DBA的主要职责。数据库管理员(DBA)负责全面管理和控制数据库系统,其主要职责有;设计与定义数据库系统;帮助最终用户使用数据库系统;监督与控制数据库系统的使用和运行;转储与恢复数据库; 改进和重组数据库系统,调优数据库系统的性能;重构数据库8、 简述关系模型的特点。关系中每一个字段也称字段,不可再分,是最基本的单位;每一列数据项是同属性的。列数根据需要而设,且各列的顺序是任意的;每一行记录由一个事物
3、的诸多属性组成,记录的顺序可以是任意的;一个关系是一张二维表,不允许有相同的字段名,也不允许有相同的记录行9、 简述关系模型的组成部分。 关系数据结构、关系操作集合、关系完整性约束10、 简述关系的性质。1对11对0.*1对1.*关系中不允许出现相同的元组关系中元组的顺序(即行序)可任意关系中属性的顺序可任意同一属性名下的各个属性值必须来自同一个域,必须是同一类型的数据关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。关系中每一个分量必须是不可分的数据项,或者说所有的属性值都是原子的,即是一个确定的值,而不是值的集合。11、 简述关系的完整性。关系完整性是
4、为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。12、 简述自然连接和等值连接的区别。连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉13、 简述视图和关系的区别。计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是
5、,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。也是机械制图术语,在机械制图中,将物体按正投影法向投影面投射时所得到的投影称为“视图”。关系实际上是一张二维表,表的每一行是一个元素,每一列是一项属性,而一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。14、 简述内连接和外连接的区别。 内连接包括三种,一般连接、等值连接和自然连接。内连接时返回查询结果集合中的仅是符合查询条件的。采用外连接是,他返回到查询结果集合中的不仅仅是包含符合连接条件的行,而且还包括坐表(左外连接)、右表(右外连接)或两个边接表(全外连接)中的所有数据
6、行。15、 简述在SQL语言中实现子查询的方法和各自的特点。1、单行子查询、2、多行子查询、3、多列子查询、4嵌套查询16、 简述嵌入式SQL语言需要解决的问题。 嵌入式SQL语言 是在源代码中用特殊标记 标记SQL代码段,非嵌入式SQL是指调用函数库来完成相应的功能17、 简述使用游标的四个步骤。游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理打开游标循环取数关闭游标18、 简述在SQL中建表时如何实现对关系完整性。 通过实体完整性,参照完整性和用户定义的完整性19、 简述游标
7、的特点。20、 简述关系数据库设计中存在的问题。 数据冗余、数据依赖、插入异常、删除异常、更新异常21、 函数依赖的概念;1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。22、 简述1NF,2NF,3NF,BCNF解决的模式设计中的问题。 1NF:表中无重复的列;2NF:消除部分依赖; 3NF:消除
8、非主属性对码的传递依赖23、 简述E-R模型之间的冲突类型及相应的解决方法。24、 简述E-R模型向关系模型转换的基本规则。实体:实体转换为关系,实体的属性转换为关系的属性联系:1:1 双方的主码均作为对方的外码 1:n 将一方的主码作为多方的外码 n:n 将联系转换为关系,联系的属性转换为关系的属性,双方的主码作为该关系的主码属性25、 简述数据库保护中安全性控制的一般方法。1、用户表示与鉴别;2、存取控制;3、自主存取控制方法; 4、授权与回收26、 简述事务的概念及特点。 事务是用户定义的一个数据库操作系列,这些操作要么全做要么全不做,是一个;事物具有原子性、一致性、隔离性和持续性;27
9、、 简述事务的并发操作带来的数据不一致性的类型。 丢失修改、不可重复读、读脏数据28、 简述封锁的类型及含义。封锁就是事务T在对某个数据对象列如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能跟新此数据对象。29、 封锁粒度的概念。封锁对象的大小称为封锁粒度30、 简述封锁协议类型及含义。排它锁(X锁、写锁):若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能在对A加任何类型的的锁,直到T释放A上的锁。这保证了其他事务在T释放A之前不能在读取和修改A共享锁(S锁、读锁):若事务T对数据对象A加上
10、S锁,则事务T可以读但不能修改,其他事务只能在对加上锁,而不能加锁,直到释放上的锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对做任何修改31、 简述恢复的策略。当系统允许到过程中发生故障,利用数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。(事务故障的恢复和系统故障的恢复)32、 简述两段琐的含义及解决的问题。事务分为两个阶段,第一个阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁33、 简述常用数
11、据模型的数据结构。层次模型 用树型结构表示实体及其之间联系的模型。就象金字塔一样的那种,分上下级网络模型 用网络结构表示实体类型及其实体之间联系的模型。顾名思义,一个事物和另外的几个都有联系这样构成一张网状图关系模型 对关系的描述成为关系模式,一个关系模式,对应一个关系文件的结构。 就是表示了各种事物之间的关系,是立体的,三维的。面向对象模型对象关系模型34、 简述关系完整性及规则。关系模型的完整性规则是对关系的某种约束条件。任何关系在任何时刻都要满足这些语义约束。包括实体完整性、参照完整性和用户定义的完整性31、给定关系模式判断达到第几范式,并说明原因,至少要求BCNF。32简述嵌入式SQL
12、语言需要解决的问题。33简述视图的概念及视图与数据独立性的关系。 视图是从一个或几个表(或视图)导出的表。他与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。34简述1NF,2NF,3NF,BCNF的概念。1NF:关系中每一分量不可再分。即不能以集合、序列等作为属性值2NF:若R1NF,且每个非主属性完全依赖于码,则称R2NF(消除非主属性对码的部分依赖)3NF:关系模式R中,若不存在这样的码X,属性组Y及非主属性Z(Z Y),使得XY , YZ , YX成立则称R3NF(消除非主属性对码的传递依赖)35 事务的调度:正确的地调度的含义
13、及并行串行调度。事务的执行顺序称为一个调度,表示事务的指令在系统中执行的时间顺序一组事务的调度必须保证:包含了所有事务的操作指令、一个事务中的指令的顺序必须保持不变串行调度:在串行调度中,属于同一事务的指令紧挨在一起;对于有n个事务的事务组,可以有n!个有效调度并行调度:在并行调度中,来自不同事务的指令可以交叉执行;当并行调度等价于某个串行调度时,则称它是正确的36简述三级封锁协议的含义及解决的问题。封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。并发控制的基本方法就是封锁。0级封锁:短X锁,(在事务中途就可以释放)1级封锁:长X锁;可以有效的防止丢失更新
14、;但是不能防止读“脏”不可重复读的出现。2级封锁:短S锁,长X锁;可以防止丢失修改,读“脏”数据;不能防止不可重复读。3级封锁:长S锁,长X锁;可以防止丢失修改,读“脏”,不可重复读。37死锁的定义及发生的条件。定义:两个事务都封锁了一些数据对象,并相互等待对方释放另一些数据对象以便对其封锁,结果两个事务都不能结束,则发生死锁发生条件:互斥条件:事务请求对资源的独占控制。等待条件:事务已持有一定资源,又去申请并等待其它资源。非抢占条件:直到资源被持有它的事务释放之前,不可能将该资源强制从持有它的事务夺去循环等待条件:存在事务相互等待的等待圈。38两段锁的含义及解决的问题。内容:在对任何数据进行
15、读写之前,事务首先要获得对该数据的封锁。在释放一个封锁之后,事务不再获得任何其它封锁。即事务分为两个阶段:生长阶段:获得封锁。收缩阶段:释放封锁。定理:若所有事务均遵从两段锁协议,则这些事务的所有并行调度都是可串行化的。39 恢复的概念 把数据库、文档或其他信息从一个错误状态恢复到某一已知的正确状态叫恢复40设有一个记录商品采购信息的关系模式:R(商品号,商品名,规格,采购日期,采购单价,采购数量,采购员编号,采购员姓名)。如果规定:每名采购员可负责多种商品的采购,但每种商品只能由一个人员负责采购;商品的采购单价随市场行情而定。请判定该关系模式属于第几范式,并说明原因。41给定关系模式R(sn
16、o,sdept,mname,cname,grade),其中各属性的含义是: sno :学号,sdept :系代码,mname :系主任,cname :课程名,grade成绩,请判定该关系模式属于第几范式,并说明原因。42 常用的数据模型的分类及各自的特点。二、 关系代数及SQL语言训练1、设有如图所示的关系S、和,试用关系代数表达式表示下列查询语句:学生:S#:学号,SNAME:姓名,AGE:年龄 SEX:性别SNAMEAGESEXdept1李强23男2刘丽22女3张友22男课程C:C#:课程代码,CNAME:课程名称,TACHER:教师CCNAMETEACHERK1C语言王华K5数据库原理程
17、军K8编译原理程军 学生成绩SC:S#:学号,C#:课程代码,SCOR:成绩SC#SCORE1K1832K1855K1922K5905K5845K8 80要求:1用关系代数和SQL语言表达完成如下要求:(1) 检索至少选修程军老师所授全部课程的学生姓名(SNAME); (2) 检索李强同学不学课程的课程号(C#);(3) 检索选修不少于3门课程的学生学号(C#);(4) 检索选修全部课程的学生姓名(SNAME)。(5) 检索不学C语言的学生信息(6) 检索“信息系” 所有学生都选修的课程的课程号、课程名。设供销管理系统的部分数据库模式如下所示:供应商(供应商编号,供应商名称, 地址, 联系电话
18、, 联系人)商品(商品编号,商品名称,型号,单价,产地,生产日期)供货记录(供应商编号,商品编号,供货日期,数量,经办人)根据要求请分别使用关系代数和SQL完成如下查询:(1) 统计由王明经办的供货记录数;(2) 查询由成都的供应商提供的商品详细信息;(3) 查询单次供货数量超过1000件或金额超过10000元的供应商名称;(4) 查询至少供应了由S1101供应商供应的所有商品的供应商编号。、已知:一组关系模式:部门(部门号,部门名称,电话号码)职工(职工号,姓名,性别,职务,部门号)工程(项目号,项目名称,经费预算)施工(职工号,项目号,工时)工资级别(职务,小时工资率)根据这组关系模式请分
19、别用关系代数和SQL语言实现。(1) 查询“技术部”的详细信息;(2) 查询职务为“工程师”的姓名和部门名称。(3)列出每个部门的职工所承担工程项目的信息,要求显示部门名称、姓名和项目名称。(4)将职务为“工程师”的小时工资率提高5%。(5)查询各职工的工资总和,要求显示职工号,姓名,性别,工资总和。 设有如下的关系S、SC和C。学生S:S#:学号,SNAME:姓名,AGE:年龄 SEX:性别课程C:C#:课程代码,CNAME:课程名称,TACHER:教师学生成绩SC:S#:学号,C#:课程代码,SCORE:成绩请用关系代数和SQL语言完成如下查询:(1)查询“王平”老师所教授的所有课程;(2
20、)查询“李利”同学所有课程的成绩;(3)查询课程名为“C语言”的平均成绩;(4)查询选修了所有课程的同学信息。5 设某数据库有三个关系:音像(音像编号,音像名,租金,类别)会员(会员编号,会员名,年龄,所在地区,性别,联系电话)租借(音像编号,会员编号,租借日期,归还日期)请用关系代数和SQL语言完成如下查询:(1) 检索年龄在30-45之间的会员名、所在地区和联系电话。(2) 检索至少租借三种音像的会员编号。(3) 检索没有借“红楼梦”音像的会员编号、会员名、年龄、联系电话。(4) 检索所有男性都租借的音像名。6现有一商店销售模型,SD(SNO,SNAME,CITY)SP(PNO,PNAME
21、,JG,KCSL)XS(SNO,PNO,SL,XSJG)其含义如下SD为商店,SNO(商店代码),SNAME(商店名称),CITY(所在城市)SP为商品,PNO(商品代码),PNAME(商品名称),JG(价格),KCSL(库存数量)XS为销售,SNO(商店代码),PNO(商品代码),SL(销售数量),XSJG(销售价格)请使用关系代数和sql语言完成以下要求(1)查询“重庆”(所在城市)的所有商店; (2)查询“商店1”(商店名称)销售的所有商品;(3)查询所有“北京”(所在城市)的商店销售商品的总金额(销售数量*销售价格); (4)查询销售“商店2”(商店名称)的所有商品的商店。三、1、数据
22、模型分析,关系模式R(U,F),U=ABCDEG ,F=BEG,BDG,CDEAB,CDA,CEG,BCA,BD(1) 求出关系模式的一个码; (2) 求此模型的最小函数依赖集;(3) 将该关系模式按照保持函数依赖、无损连接和达到3NF进行分解;(4) 测试分解后各关系模式的无损连接性。2、设有关系模式R(C,T,H,I,S,G),其上的函数依赖集为F=CG,CT,THI,HIC,HSI(1)求出关系模式的一个码; (2)求此模型的最小函数依赖集;(3)将该关系模式按照保持函数依赖、无损连接和达到3NF进行分解;(4)测试分解后各关系模式的无损连接性。3、数据模型分析,关系模式R(U,F),U
23、=BOISQD,F= S DG,IB,ISQ,BO (1)求出关系模式的一个码; (2)求此模型的最小函数依赖集;(3)将该关系模式按照保持函数依赖、无损连接和达到3NF进行分解;(4)测试分解后各关系模式的无损连接性。4、已知关系模式R(A,B,C,D,E,G),F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG(1)求该关系模式的一个码;(2)求此模型的最小函数依赖集;(3)将该关系模式按照保持函数依赖、无损连接和达到3NF进行分解;五、综合应用1、学生运动会模型:(1) 有若干班级,每个班级包含:班级号、班级名、专业、人数;(2) 每个班级有若干运动员,运动员只能属于
24、一个班,包括:运动员号、姓名、性别、年龄;(3) 有若干比赛项目,包括:项目号、名称、比赛地点;(4) 每名运动员可参加多项比赛,每个项目可有多人参加;(5) 要求能够公布每个比赛项目的运动员名词与成绩;(6) 要求能够公布各个班级团体总分的名词和成绩;要求:(1)请设计该问题的E-R模型; (2)请完成数据库逻辑模型(关系模型)实际,包括各个表的名称、属性及码。2、已知某建筑公司有若干部门,每一个部门有多名职工,且每一职工只属于一个部门,公司承揽多个项目,每个项目有多个职工,每个职工可参加多个项目。(1)请设计该问题的E-R模型;(2)请完成数据库逻辑模型(关系模型)实际,包括各个表的名称、
25、属性及码。3、某学生宿舍管理系统,涉及的部分信息如下:(1) 学生:学号,姓名,性别,专业,班级。(2) 寝室:寝室号,房间电话。(3) 管理员:员工号,姓名,联系电话。其中:每个寝室可同时住宿多名学生,每名学生只分配一个寝室;每个寝室指定其中一名学生担当寝室长;每个管理员同时管理多个寝室,但每个寝室只有一名管理员。(1)根据上述规则设计E-R模型。(2)将E-R模型转换成关系数据模型,并指出每个关系的主键和外键。4、假定一个部门的数据库包括以下的信息:职工的信息:职工号、姓名、住址和所在部门;部门的信息:部门所有职工、经理和销售的产品;产品的信息:产品名、制造商、价格、型号及产品内部编号;制
26、造商的信息:制造商名称、地址、生产的产品名和价格;(1)请设计该问题的E-R模型; (2)请完成数据库逻辑模型(关系模型)实际,包括各个表的名称、属性及码。 5、假设某公司的业务规则如下:(1)公司下设几个部门,如技术部、财务部、市场部等。(2)每个部门承担多个工程项目,每个工程项目属于一个部门。(3)每个部门有多名职工,每一名职工只能属于一个部门。(4)一个部门可能参与多个工程项目,且每个工程项目有多名职工参与施工。根据职工在工程项目中完成的情况发放酬金。(5)工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性;问题:1.根据上述规则设计E-R模型。2.将E-R模型转换成关系数据模型,并指出每个关系的主键和外键。6、某商店要建立一个数据库,保存顾客、商品和顾客购买商品的记录。为顾客保存的信息包括顾客编号、姓名、单位和电话;为商品保存的信息包括商品编号、名称、单价和产地;另外,顾客每次购买商品要保存购买数量、金额和日期。1.根据上述语义画出E-R图,要求在图中画出属性并注明联系的类型。2.试将E-R模型转换成关系模型,并指出每个关系模式的主码和外码。