2023数据库复习题总结.docx
?数据库与信息系统?参考题一、根本知识点.数据库管理系统由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这 些数据用以描述某个特定的企业。DBMS的根本目标是要提供一个可以让人们方便地、 高效地存取信息的环境。1 .数据库系统用于存储大量信息。对数据的管理既涉及到信息存储结构的定义,又涉及到 信息操作机制的提供。另外,数据库系统还必须提供所存储数据的平安性保证,即使在 系统崩溃或有人企图越权访问时也应如此。如果数据被多用户共享,那么系统还必须设 法防止可能产生的异常结果。2 .数据库系统的一个主要目的是要提供应用户数据的抽象视图,也就是说,系统隐戴了数 据存储和维护的细节。这是通过定义三个可对数据库系统进行观察的抽象层次来实现 的。这三个层次是:物理层、逻辑层和视图层。3 .数据库结构的根底是数据模型,一个用于描述数据、数据间关系、数据语义和数据约束 的概念工具的集合。4 .随着时间的推移,信息会被插人或删除,数据库随之也发生了改变。特定时刻存储在数 据库中的信息的集合称作数据库的一个实例。数据库的总体设计称作数据库模式。5 .在某个层次上修改模式而不影响较高一层模式的能力叫做数据独立性。有两个层次的数 据独立性:物理数据独立性和逻辑数据独立性。6 .数据库模式通过一系列用数据定义语言(DDL)表达的定义来描述。DDL语句经过编译, 产生存储在一个特殊文件中的一系列表,这个文件称作数据字典,因此数据字典中存储 的是无数据。7 .数据操纵语言DML是使得用户可以访问和操纵数据的语言,主要有两种:过程化的DML 和非过程化的DML,过程化的D.ML要求用户指明需要什么数据以及如何获得这些数据, 非过程化的DML只要求用户指明需要什么数据,而不必指明如何获得这些数据。8 .事务管理器负责保证无论是否有故障发生,数据库都要处于一致的(正确的)状态。事务 管理器还保证并发事务的执行互不冲突。存储管理器是在数据库中存储的低层数据与应 用程序及向系统提交的查询之间提供接口的程序模块。存储管理器负责与磁盘上存储的 数据进行交互。9 .实体一联系(ER)数据模型基于对现实世界的这样一种认识:世界由一组根本对象(称 作实体)及这些对象间的联系组成。此模型的主要目的是效劳于数据库设计过程,它的 开展是为了帮助数据库设计,这是通过允许定义企业模式来实现的。企业模式代表了数 据库的全局逻辑结构,这种全局结构可以用E-R图进行图形化表示。10 .实体是实际存在的可区别于其他对象的对象,我们通过把每个实体同描述该实体的一组 属性相联系来将它与其他对象相区别。联系是多个实体间的相互关联。相同类型的所有 实体的集合构成实体集,相同类型的所有联系的集合构成联系集。11 .映射的基数指明另一实体通过联系集可以和实体集中的多少个实体相联。12 .数据库建模的一个重要任务是要说明实体之间以及联系之间如何相互区别二概念上来 说,各个实体或联系是互不相同的,但从数据库的角度来看,它们的差异必须用属性表 示出来。为了进行这样的区别,为每个实体集指定一个主码。主码是一个或多个属性的 集合,这些属性的整体可以使我们在实体集中唯一确定一个实体或在联系集中唯一确定 一个联系。13 .特殊化和概括定义了一个高层实体集和一个或多个低层实体集之间内容上的联系。特殊 化是取出高层实体集的一个了集来形成一个低层实体集。概括是用两个或多个不相交的 (低层)实体集的并集来形成一个高层实体集。高层实体集的属性被低层实体集继承。14 . ER模型的一个局限是它不能表示联系间的联系,解决的方法是采用聚集。聚集是一种 抽象,它将联系集看作高层实体集,这样,联系集及其相关实体集就可以像其他实体一 样被看作高层实体集。15 .符合ER图的数据库可以用表的集合来表示。数据库的每个实体集和联系集都有唯与 之对应,表名即为相应的实体集或联系集的名称。每个表有多个列,每列有其唯一列名 的表。16 .关系数据模型建立在表的集合的根底上。数据库系统的用户可以对这些表进行查询,可 以插入新元组、删除元组以及更新(修改)元组。表达这些操作的语言有几种。元组关系 演算和域关系演算是非过程化语言,代表了关系杳询语言所需的根本能力。关系代数是 一种过程化语言,在能力上它等价于限制在平安表达式范围内的关系演算的两种形式: 关系代数定义了关系查询语言中使用的根本运算。17 .域约束指出了与属性相关联的可取值的集合。它也可以禁止某属性上取空值。参照完整 性约束保证一个关系的给定属性集上的取值也出现在另一关系的某个属性集上。函数依 赖是码依赖的扩展。它要求某属性集的值唯一确定另一属性集的值。18 .良好数据库设汁的三个准那么:1) BCNF 2)无损连接。3)保持依赖。2().什么是超码、候选码、主码、外码?答:(码是数据系统中的根本概念。所谓码就是能唯标设实体的属性,他是整个实体集的 性质,而不是单个实体的性质。它包括超码,候选码,主码。超码是一个或多个属性的集合, 这些属性可以让我们在一个实体集中唯一地标识一个实体。)当一个实体集中包括有多个码 时,通常要选定其中的一个码为主码,其他的码就是候选码。实体集中不能唯一标识实体属 性的叫次码。P23.关系代数六个根本运算包括哪些?答:“选择、“投影"、笛卡尔积、并集、差集和“重命名”.空值NULL的含义是什么?答:空值不是空格值,它是跳过或不输的属性值,用Null表示,空值说明不知道或无意思、。19 .常见的聚集函数有哪些?答:计算count (数目),sum (和),avg (均值),max (最大值)和min (最小值)的函 数。20 .解释ACID的具体含义。答:ACID,指数据库事务正确执行的四个根本要素的缩写。包含:原子性(Atomicily)、一 致性(Consistency ) 隔离性(Isolation ) 持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否那么在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中 间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状 态,就像这个事务从来没有执行过一样。一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。隔离性:两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间 某一时刻的数据。持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中, 并不会被回滚。21 .视图的作用是什么?答:视图是根据子模式设计的关系,它是由一个或几个根本表(或已定义的视图)导出的虚 表。视图能够简化用户的操作;视图机制可以使用户以不同的方式看待同一数据:视图对数 据库的重构提供了一定程度的逻辑独立性;视图可以对机密的数据提供平安保护。22 .常见的完整性约束有哪些?(没找到).联系有三种常见的多重性,即多对多、多对一和一对一,它们的含义是什么?在数据库系统原理及应用教程的23页 在湖旁边那儿有卖的,3元本.实体-联系图主要构件包括哪些? (9个)(没找到)23 .如何将ER图转换成关系模式?在数据库系统原理及应用教程的56页 在湖旁边那儿有卖的,3元本.什么是BCNF?答:BCNF是由Boyce和Codd提出的,比3NF又进了 步,通常认为是修正的第三范式.所谓第三范式,定义是关系模式R<U,F中假设不存在这样的码X,属性组丫及非主属性Z,使得X>Y, YZ成立,(不存在YX),那么称R<U, F>为3NF.即当2NF消除了非主属性对码的传递函数依赖,那么称为3NFo对3NF关系进行投影,将消除原关系中主属性对码的局部与传递依赖,得到一组BCNF 关系。BCNF定义,关系模式中,假设X函数确定丫且丫不在X内时X必含有码,那么此关系属于 BCNFo一个满足BCNF的关系模式的条件:1 .所有非主属性对每一个码都是完全函数依赖。2 .所有的主属性对每个不包含它的码,也是完全函数依赖。3 .没有任何属性完全函数依赖于非码的任何一组属性。30.包括课堂上所讲授的主要内容。第1章引言,第2章关系数据库,第3章SQL,第6 章数据库设计与ER模型)二、设计局部1 .考虑下面的关系数据库,主码加了下划线。给出关系代数表达式来表示以 下每个查询:branch (branch name, branch_city, assets)customer (customer name, customer_street, customer_city)account (account number, branch_name, balance)loan (loan number, branch_name, amount)depositor (customer namc, account jumber)borrower (customer name, loan number)1) Find all loans of over $900.2) ) Find the loan number for each loan of an amount greater than $1200.3) Find the names of all customers who have a loan, an account, or both, from the bank.4) Find the names of all customers who have a loan at the Perryridge branch.5) Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank.6) Find the names of all customers who have a loan and an account at bank.7) Find the name of all customers who have a loan at the bank and the loan amount.8) Find all customers who have an account from at least the “Downtown" and the Uptown/z branches.9) Find all customers who have an account at all branches located in Brooklyn city.解:(1) <7 amout>900 (loan)(2) 71 loan_number ( C amout>1200 f loan )(3) 71 customcjnamc (depositor) U 兀 cusiomcr_namc (borrower)(4) 71 cus(omer_name ( branch_name=Perryridge (loan 8 borrower)备注:8 为连接,在 word中没找到那个符号,所以在此处用8代替,下面都是这样。(5) 71 customer_name (7 branch_name=Perryridge ( loan 00 borrower ) )- 71 customer_name (O branch_namc=Pcrrfridge (loanooaccout)(6) 71 custoincr_nanic (depositor) Q 71 customcr_namc (borrower)(7) 71 customer_nan)e, amount (1O3H 8 boiTOWCF(8)不懂那句英文什么意思,纠结!(9) a branch_city=Brooklyn ( CUStOlBCr X depositor)2 .(实践习题3.1)考虑图3-11定义的保险公司数据库,其中加下线线的是 主码。对这个关系数据库写出如下的SQL查询语句:1)找出1989年其车辆出过交通事故的人员总数。2)向数据库中增加一个新的事故,对每个必需的属性可以设定任意值。3)删除“John smith的马自达车(Mazda) 04)(习题3.8)找出和John smith的车有关的交通事故数量。5)(习题3.8)对事故报告编号为“AR2197”的且车牌是AABB2000的车辆 损坏保险费用更新到300()美元。Personfdriver id, name, address)Car(license, model, year)Accident(report number, data, location)Owns(driver id .license)License(drive】 idjicense, report number, damage_amount) 图3-11保险公司数据库解:(1) SELECT COUNT (*)FROM License,AccidentWHERE License.report_name=Accident.report_name AND Accidenl.date= 1989 (2)INSERTINTOAccident(report number, data, location)VALUES (1,2,3)(3)DELETEFROM CarWHERE model=Mazda AND liccnse=(SELECT licenseFROMPerson,OwnsWHERE Person.driver_id=License.driver_id AND Person.name='John smith')(4)SELECT COUNT (*)FROM Person,LicenseWHERE Person.driver_id=License.driver_id AND Person.name= "John smith' (5)UPDATE LicenseSET damage_amount=3000WHERE report_number=,AR2179, AND License='AABB2000'3 .(实践习题3.2)考虑图3-12的雇员数据库,其中加下划线的是主码。为 下面每个查询语句写出SQL表达式:1)找出所有为First Bank Corporation工作的雇员名字和居住城市。2)找出所有为First Bank Corporation工作且薪金超过1万美元的雇员名字、 居住街道和城市。3)找出所有不为First Bank Corporation工作的雇员。4)找出数据库中工资比Small Bank Corporation的每个雇员都高的所有雇员。5)假设一个公司可以在好几个城市有分部。找出位于Small Bank Corporation 所有所在城市的所有公司。6)找出雇员最多的公司。7)找出平均工资高于First Bank Corporation平均工资的所有公司。EmDloycc(cmploycc name, street, city) Works(emDlcyee name, company_name, salary) ConiDany(company name, city) Manageslemployee name, manager_name)图3-12雇员数据库解:(1 )SELECTemployee_name ,cityFROMEmployee,WorksWHERE Employee.employee_name=Works.employee_name ANDWorks pany_naine=Fist Bank Cooporation(2)SELECT employee_name ,city, streetFROM Employee,WorksWHERE Employee.employee_name=Works.employee_name ANDWorks pany_name=Fist Bank Cooporation AND salary> 10000(3)SELECT cmployce_nameFROM WorksWHERE Works pany_namc!=Fist Bank Cooporation(4)SELECT employee_nameFROM WorksWHERE salary > ( SELECT MAX(salary)FROM WorksWHERE Works pany_name=Small Bank Cooporation)(5)SELECT company_nameFROM CompanyWHERE city=( SELECT cityFROM CompanyWHERE Works pany_name=Small Bank Cooporation) (6)SELECT company_nameFROM WorksWHERE MAX( COUNT (employee_name)GROUP BY company_name(7)SELECT company_nameFROM WorksWHERE AUG (salary)> (SELECT AUG (salary)FROM WorksWHERE Works pany_name=Fist Bank Cooporation)GROUP BY company_name4 .(实践习题6.1)为车辆保险公司设计一个E-R图。每个客户有一辆或多辆 车。每辆车可以关联0次或任意屡次事故的记录。并构造适宜的关系表。需要画图,在word里不方面,所以此题略!5 .(实践习题6.2)大学的注册办公室维护关于以下实体的数据:(a)课程,包括编号、名称、学分、课程提纲和选修条件;(b)课程提供,包括课程编号、年、学期、节数、教师(可能多个)、时间和 教室;学生,包括学生标识、名字和方案(program);(d)教师,包括标识号、名字、系和职称。此外,学生课程和登记和学生所选的每门课程的成绩评定都要适当地建模。 (进行ER模型的设计,并构造适宜的关系表。)需要画图,在word里不方面,所以此题略!6 .(实践习题6.3)考虑一个用于记录学生各门课程考试成绩的数据库。(a)构造一个将考试建模成实体的E-R图,为以上的数据库设计一个三元联 系。(b)构造另一个E-R图,其中只用二元联系来连接sutdcnts和coursc_offcrings。 要求特定“学生和课程对之间只有一个联系,而且可以表示出学生在一门课程 的不同考试中的成绩。需要画图,在word里不方面,所以此题略!7.图书借阅关系数据库如下:图书(图书号,书名,作者,单价,库存量) 读者(读者号,姓名,工作单位,地址) 借阅(图书号,读者号,借期,还期,备注) 其中,还期为NULL表示该书未还。1 )用SQL语句查询未还图书的读者姓名和单位。2)用SQL语句查询“马林”所借图书中未还的书名。3)用SQL语句查询书名为“高等数学的库存量。4 )解释以下SQL语句的含义:SELECT 姓名 FROM 读者WHERE读者号IN(SELECT 读者号 FROM 借阅 WHERE 图书号二“001”)解:(1) SELECT姓名,工作单位FROM 读者,借阅WHERE读者.读者号二借阅.读者号AND还期二NULL(2)(2)SELECT书名FROM 读者,图书,借阅WHERE 图书.图书号二借阅.图书号AND读者.读者号二借阅.读者号AND还期二NULL AND 姓名='马林'(3) SELECT 库存量FROM 图书WHERE 书名二,高等数学'(4)查询借阅了图书号为'0()1'的图书的读者。8.设某商业集团数据库中有商店、商品、职工三类实体。其中商店的属性有:商店编号、商店名称、地址;商品的属性有:商品号、商品名、规格、单价;职 工的属性有:职工号、姓名、性别。每个商店可销售多种商品,每种商品也可放在多个商店销售。每个商店聘用多名职工,每名职工只能在一个商店工作。根据上面表达,解答以下问题:1)设计ER模型。2)将E-R模型转换成关系模型,标出每一个关系的主键码。