版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026上半年数据库系统工程师备考三色笔记一、选择题1.数据库系统三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。A.外模式B.模式C.内模式D.存储模式答案:B解析:数据库系统的三级模式结构包括外模式、模式和内模式。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式是模式的子集,是数据库用户能够看见和使用的局部数据的逻辑结构和特征描述。内模式也称存储模式,是数据物理结构和存储方式的描述。2.在关系代数中,从两个关系的笛卡尔积中选取满足一定条件的元组的操作是()。A.选择B.投影C.连接D.除答案:C解析:连接操作是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。选择操作是在关系中选择满足给定条件的元组。投影操作是从关系中选择出若干属性列组成新的关系。除操作是同时从行和列的角度进行运算。3.SQL语句中,用于撤销数据库对象权限的语句是()。A.DELETEB.DROPC.REVOKED.ROLLBACK答案:C解析:REVOKE语句用于撤销(回收)之前授予的权限。DELETE用于删除表中的数据,DROP用于删除数据库对象(如表、索引),ROLLBACK用于事务回滚。4.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段答案:C解析:数据库设计通常分为需求分析、概念设计、逻辑设计和物理设计阶段。将概念设计阶段得到的E-R图转换为具体的数据库管理系统所支持的数据模型(通常是关系模型),这一过程属于逻辑设计阶段。5.事务的持久性是指()。A.事务中包括的所有操作要么都做,要么都不做B.事务一旦提交,对数据库的改变就是永久性的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:B解析:事务的ACID特性包括:原子性(A)、一致性(C)、隔离性(I)、持久性(D)。持久性指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。6.在数据库系统中,日志文件主要用于()。A.保障事务的并发性B.保障数据的安全性C.数据库恢复D.提高查询效率答案:C解析:日志文件记录了事务对数据库所做的所有更新操作,是数据库系统运行的历史记录。其主要作用是进行事务故障、系统故障以及介质故障的恢复,是保证事务原子性和持久性的关键技术。7.若关系模式R(U,F)中,候选键为A,属性B不属于任何候选键,且B完全函数依赖于A,则R最高属于()。A.1NFB.2NFC.3NFD.BCNF答案:B解析:根据题意,候选键为A,B是非主属性。B完全函数依赖于候选键A,这满足第二范式(2NF)的要求,即不存在非主属性对候选键的部分函数依赖。但题目未给出是否存在非主属性对候选键的传递依赖,因此无法判断是否满足3NF,但至少满足2NF,所以最高属于2NF。8.在数据库的并发控制中,两段锁协议是保证并发事务可串行化的()。A.充分条件B.必要条件C.充要条件D.无关条件答案:A解析:两段锁协议(Two-PhaseLocking,2PL)规定所有事务必须分两个阶段对数据项加锁和解锁。它是保证并发事务可串行化的充分条件,但不是必要条件。即遵守2PL协议的事务调度一定是可串行化的,但可串行化的调度不一定遵守2PL协议。9.数据库的视图机制提供了()。A.数据独立性B.数据安全性C.逻辑独立性D.物理独立性答案:B解析:视图机制通过将用户权限与数据对象隔离,使用户只能看到和修改视图中出现的数据,从而隐藏了基表中的其他数据,在一定程度上提供了数据的安全性。数据的逻辑独立性和物理独立性主要由数据库的三级模式结构和两级映像功能提供。10.在SQLServer中,用于创建存储过程的关键字是()。A.CREATEFUNCTIONB.CREATETRIGGERC.CREATEPROCEDURED.CREATEVIEW答案:C解析:CREATEPROCEDURE用于创建存储过程。CREATEFUNCTION用于创建用户定义函数,CREATETRIGGER用于创建触发器,CREATEVIEW用于创建视图。二、简答题1.简述数据库管理系统(DBMS)的主要功能。答案:数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件,其主要功能包括:(1)数据定义功能:提供数据定义语言(DDL),用户可以通过它方便地对数据库中的数据对象进行定义,如创建、修改、删除表、索引、视图等。(2)数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。(3)数据操纵功能:提供数据操纵语言(DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改。(4)数据库的事务管理和运行管理:数据库在建立、运用和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复。(5)数据库的建立和维护功能:包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。(6)其他功能:包括DBMS与网络中其他软件系统的通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。2.什么是数据库的完整性?关系数据库中有哪些完整性约束?答案:数据库的完整性是指数据的正确性和相容性。防止数据库中存在不符合语义的数据,即防止垃圾数据的进出。关系数据库的完整性约束主要包括:(1)实体完整性:要求关系的主键属性值不能为空(NULL),且必须唯一。用于保证关系中的每个元组都是可标识的、可区分的。(2)参照完整性:要求关系的外键要么取空值(NULL),要么等于被参照关系的主键值。用于保证具有关联关系的关系间数据的一致性。(3)用户定义的完整性:针对某一具体应用的数据必须满足的语义要求。例如,某个属性值必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在0-100之间等。关系数据库管理系统提供了定义和检验这类完整性的机制。3.简述数据库恢复技术中,为什么事务日志必须先于数据写盘(Write-AheadLogging,WAL原则)?答案:WAL(Write-AheadLogging)原则是数据库恢复技术中的一项核心规则,它要求:在将数据页的修改写回磁盘之前,必须先将描述这次修改的日志记录写回磁盘的日志文件中。原因如下:数据库恢复的基础是利用日志记录进行重做(REDO)或撤销(UNDO)操作。如果在修改后的数据页写回磁盘后,对应的日志记录还没有写回磁盘,此时系统发生故障,那么这次修改已经永久存在于磁盘数据中,但日志中却没有记录。在系统恢复时,由于无法从日志中得知这个修改是来自一个已提交事务还是未提交事务,因此无法进行正确的恢复操作(例如,一个未提交事务的修改可能被永久保留,破坏了事务的原子性)。反之,如果日志记录先写盘,即使数据页修改后系统崩溃,恢复子系统可以根据日志记录重做已提交事务的修改,或者撤销未提交事务的修改,从而保证数据的一致性和事务的原子性、持久性。4.解释数据库设计中的“数据冗余”及其可能带来的问题。答案:数据冗余是指同一数据在数据库中多次重复存储的现象。数据冗余可能带来的问题主要有:(1)浪费存储空间:相同数据存储多次,必然占用更多的磁盘空间。(2)更新异常:当重复存储的数据需要更新时,必须更新所有副本。如果有一个副本未更新,就会造成数据不一致,破坏数据的完整性。(3)插入异常:在某些情况下,由于某些属性(如主键)不能为空,可能导致一些有用信息无法单独插入到数据库中。(4)删除异常:删除某些信息时,可能会无意中丢失其他本应保留的信息。数据库规范化理论的主要目标之一就是通过合理的模式分解,减少或消除数据冗余,从而避免这些异常。但需要注意的是,为了性能考虑(如提高查询速度),有时会故意引入一定的可控冗余(如反规范化设计)。5.什么是数据库的封锁粒度?封锁粒度的大小对并发控制和系统开销有何影响?答案:封锁粒度是指封锁对象的大小。在关系数据库中,封锁对象可以是逻辑单元(如属性值、属性值集合、元组、关系、索引项、整个索引直至整个数据库),也可以是物理单元(如数据页、索引页、物理记录等)。封锁粒度与并发控制和系统开销的关系:(1)封锁粒度越大,系统中能够被封锁的对象就越少,并发度也就越低,但系统开销(如锁表的管理开销)也越小。(2)封锁粒度越小,并发控制就越精细,允许更多事务同时访问数据库的不同部分,从而并发度越高。但是,封锁的对象数量增多,系统用于锁管理(如锁的申请、释放、检查)的开销会急剧增大。因此,需要根据应用需求,在并发度和系统开销之间进行权衡,选择一个合适的封锁粒度。大多数数据库系统都支持多种封锁粒度,允许事务根据操作需求选择不同粒度的锁,并提供多粒度封锁机制。三、设计题1.现有如下关系模式:学生(学号,姓名,性别,出生日期,院系)课程(课程号,课程名,学分,先行课课程号)选课(学号,课程号,成绩)其中,带下划线的属性为主键,“先行课课程号”引用“课程”表的“课程号”。请用SQL语句完成以下操作:(1)查询“计算机学院”所有男生的学号和姓名。(2)查询选修了“数据库系统”课程且成绩在90分以上(含90分)的学生的学号、姓名和成绩。(3)创建一个视图V_AVG,用于统计每门课程的平均成绩,要求显示课程号、课程名和平均成绩。(4)将“C001”号课程的成绩低于60分的学生成绩统一提高5分。(5)授予用户“USER1”对“学生”表的查询和插入权限。答案:(1)```sqlSELECT学号,姓名FROM学生WHERE院系='计算机学院'AND性别='男';```(2)```sqlSELECTS.学号,S.姓名,SC.成绩FROM学生S,选课SC,课程CWHERES.学号=SC.学号ANDSC.课程号=C.课程号ANDC.课程名='数据库系统'ANDSC.成绩>=90;或使用JOIN语法SELECTS.学号,S.姓名,SC.成绩FROM学生SJOIN选课SCONS.学号=SC.学号JOIN课程CONSC.课程号=C.课程号WHEREC.课程名='数据库系统'ANDSC.成绩>=90;```(3)```sqlCREATEVIEWV_AVGASSELECTC.课程号,C.课程名,AVG(SC.成绩)AS平均成绩FROM课程CLEFTJOIN选课SCONC.课程号=SC.课程号GROUPBYC.课程号,C.课程名;使用LEFTJOIN是为了包含没有被选修的课程,其平均成绩为NULL。```(4)```sqlUPDATE选课SET成绩=成绩+5WHERE课程号='C001'AND成绩<60;```(5)```sqlGRANTSELECT,INSERTON学生TOUSER1;```2.某公司需要设计一个简单的项目管理系统数据库,主要需求如下:公司有多个部门,每个部门有部门编号(唯一)、部门名称和办公电话。每个部门有多名员工,每名员工有员工编号(唯一)、姓名、性别、职位和联系电话。一名员工只属于一个部门。公司同时进行多个项目,每个项目有项目编号(唯一)、项目名称、启动日期和预算。一个项目由一名员工作为项目经理负责,一个员工可以负责多个项目。一个项目需要多名员工参与,一名员工也可以参与多个项目。需要记录员工在某个项目中的参与开始日期和角色。请根据以上描述,完成以下设计:(1)设计E-R图,标明实体、属性、联系类型(1:1,1:n,m:n)及联系本身的属性。(2)将E-R图转换为关系模式,标明每个关系模式的主键和外键。答案:(1)E-R图设计(文字描述):实体:部门:属性有部门编号(主键)、部门名称、办公电话。员工:属性有员工编号(主键)、姓名、性别、职位、联系电话。与部门存在“属于”联系,类型为n:1(多对一)。项目:属性有项目编号(主键)、项目名称、启动日期、预算。与员工存在“负责”联系,类型为n:1(多对一),即一个项目由一个员工负责,一个员工可以负责多个项目。“负责”联系也可以作为项目的属性“项目经理(员工编号)”。联系:“属于”联系:存在于员工和部门之间,表示员工从属于部门,类型为n:1。无自身属性。“负责”联系:存在于项目和员工之间,表示项目由员工负责,类型为n:1。无自身属性(或可并入项目实体)。“参与”联系:存在于员工和项目之间,表示员工参与项目工作,类型为m:n(多对多)。联系本身具有属性:参与开始日期、角色。(2)转换后的关系模式:部门(部门编号,部门名称,办公电话)主键:部门编号员工(员工编号,姓名,性别,职位,联系电话,部门编号)主键:员工编号外键:部门编号引用部门(部门编号)项目(项目编号,项目名称,启动日期,预算,项目经理员工编号)主键:项目编号外键:项目经理员工编号引用员工(员工编号)参与(员工编号,项目编号,参与开始日期,角色)主键:(员工编号,项目编号)外键1:员工编号引用员工(员工编号)外键2:项目编号引用项目(项目编号)四、综合应用题1.设有一个关系模式R(A,B,C,D,E,G),其函数依赖集F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}。(1)求属性集(BD)关于函数依赖集F的闭包(BD)⁺。(2)求R的所有候选键。(3)判断R最高属于第几范式(1NF/2NF/3NF/BCNF)?并说明理由。(4)若R不属于BCNF,请将其分解为满足BCNF的关系模式集合,并保持无损连接性。答案:(1)计算(BD)⁺:初始化:X=BD。根据D→EG,将EG加入X,X=BDEG。根据BE→C,由于B、E已在X中,将C加入X,X=BCDEG。根据C→A,将A加入X,X=ABCDEG。至此,所有属性均已包含在X中,无法再扩大。因此,(BD)⁺=ABCDEG。(2)求候选键:观察函数依赖,尝试寻找最小属性组合能推出所有属性。计算B的闭包:B⁺=B,不能推出所有。计算D的闭包:D⁺=DEG,不能推出所有。计算(BE)的闭包:初始化:X=BE。根据BE→C,加入C,X=BCE。根据C→A,加入A,X=ABCE。根据AB→C(已满足),C→A(已满足)。根据BC→D,加入D,X=ABCDE。根据D→EG,加入EG,X=ABCDEG。已包含所有属性。所以(BE)是候选键。计算(CE)的闭包:初始化:X=CE。根据CE→AG,加入AG,X=ACEG。根据C→A(已满足),CG→BD,由于有C和G,加入BD,X=ABCDEG。已包含所有属性。所以(CE)是候选键。检查其他组合,如(BC)、(CD)等,其闭包均不能包含所有属性,或不是最小(如(BCE)包含(BE))。因此,R的候选键是:BE和CE。(3)判断范式等级:首先,所有属性都是原子项,满足1NF。主属性:B,E,C(出现在候选键中的属性)。非主属性:A,D,G。检查2NF:是否存在非主属性对候选键的部分函数依赖?对于候选键BE:非主属性A通过BE→C,C→A传递依赖,但这是完全依赖(依赖于整个键BE)?检查部分依赖:B或E单独能否决定A?不能。所以对BE是完全依赖。对于候选键CE:非主属性B通过CE→AG,CG→BD,但B依赖于CG,而C是候选键的一部分,这是部分依赖吗?严格检查:C→A,但C不能决定B。需要看是否有非主属性依赖于候选键的真子集。观察函数依赖C→A,其中A是非主属性,C是候选键CE的真子集。这意味着非主属性A部分依赖于候选键CE(仅依赖于C)。因此,不满足2NF(2NF要求非主属性完全函数依赖于候选键)。所以,R最高属于1NF。(4)BCNF分解:由于R不满足2NF,直接分解到BCNF。从违反BCNF的函数依赖开始。BCNF要求每一个决定因素都包含候选键。首先,找到违反BCNF的函数依赖:C→A,其决定因素C不包含候选键(C不是超码)。以C→A为基础进行分解:R1=C⁺=AC(计算C的闭包:C→A,所以是A,C)。R2=R{A}+{C}=(B,C,D,E,G)加上决定因素C,即(B,C,D,E,G)。现在检查R1(C,A)和R2(B,C,D,E,G)。R1的函数依赖:C→A,决定因素C是R1的候选键(超码),满足BCNF。R2的函数依赖集F2:从F中投影到R2的属性上,包含:BC→D,D→EG,BE→C,CG→BD,CE→AG?但A不在R2中,所以CE→G(从CE→AG得来),另外CG→BD仍在。计算R2的候选键:考虑属性。B、E、C、G。计算(BE)在R2中的闭包:BE→C,得到BCE;BC→D,得到BCDE;D→EG,得到BCDEG。所以BE是R2的候选键。同样,CE也是候选键?CE→G,C→?在R2中C不决定A了,但CE→G,加上其他依赖,CE也能推出所有,所以CE也是候选键。检查R2中是否有违反BCNF的依赖:D→EG,决定因素D不是R2的超码(D的闭包在R2中是DEG,不包含B)。所以D→EG违反BCNF。分解R2,基于D→EG:R21=D⁺(在R2中)=DEG。R22=R2{E,G}+{D}=(B,C,D)。现在有关系:R1(C,A),R21(D,E,G),R22(B,C,D)。检查R21:函数依赖D→EG,D是R21的候选键,满足BCNF。检查R22:函数依赖?从原F中投影:BC→D,CG→BD?但G不在R22中。所以主要依赖是BC→D。候选键是什么?计算(BC)的闭包:BC→D,得到BCD,所以BC是候选键。另外,B、C单独都不能决定D。依赖BC→D,决定因素BC是候选键,满足BCNF。另外,R22中是否有D→?没有。最终分解结果为:R1(C,A),R21(D,E,G),R22(B,C,D)。验证无损连接性:初始表法可验证,该分解具有无损连接性。2.某银行数据库系统中,有一个账户交易表Transactions(TID,AccountID,TType,Amount,TTime),其中TID为交易流水号(主键),AccountID为账户号,TType为交易类型(‘D’表示存款,‘W’表示取款),Amount为交易金额,TTime为交易时间。业务规则要求:任何一个账户的余额(通过累计所有存款减去所有取款计算得出)不能低于0(即不能透支)。请回答:(1)这个业务规则属于哪类完整性约束?(2)在数据库系统中,可以使用什么机制来实现这个约束?请比较触发器(TRIGGER)和存储过程(STOREDPROCEDURE)两种实现方式在保证此约束时的优缺点。(3)假设使用触发器实现,请以某一常见DBMS(如MySQL或SQLServer)的语法为例,编写一个在插入交易记录时检查并保证余额非负的触发器片段(只需关键部分,假设存在一个账户表Accounts(AccountID,Balance)存储当前余额)。答案:(1)这个业务规则属于用户定义的完整性约束。它是根据特定业务语义提出的数据约束条件,确保账户余额不能为负。(2)实现机制及比较:可以使用触发器或存储过程来实现,在应用层代码中进行严格检查也是一种方式,但数据库端机制更可靠。触发器实现:优点:透明性高,由数据库自动执行,无论数据通过何种方式(应用程序、命令行、工具)修改,都能触发检查,强制性强,能有效保证数据一致性。将业务规则封装在数据库中。缺点:逻辑隐藏,调试和维护相对复杂。如果触发器编写不当(如递归触发),可能导致性能问题或死锁。复杂的业务逻辑可能使触发器变得笨重。存储过程实现:优点:将交易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教育产品供货合同(1篇)
- 玻纤织布带工安全理论强化考核试卷含答案
- 耕种机械制造工创新方法竞赛考核试卷含答案
- 学校中毒应急方案
- 交通信息工程就业指南
- 实验室事故防范方案
- 药房管理职业规划
- 安全文化示范企业实施细则
- 青岛2026年二级建造师《建设工程法规及相关知识》考试真题及答案
- 2026年软考-软件设计师考试试题及答案
- 国家基本药物合理使用培训课件
- T-GEIA 11-2021 配用电系统节电装置节电量测量和验证技术导则
- 五年级下册道德与法治课件第三单元《百年追梦复兴中华》单元梳理部编版
- JG293-2010 压铸铝合金散热器
- 2023年资产负债表模板
- 国开计算机组网技术实训1:组建小型局域网
- TCHSA 010-2023 恒牙拔牙术临床操作规范
- 2019人教版新教材高中化学选择性必修三全册重点知识点归纳总结(复习必背)
- dd5e人物卡可填充格式角色卡夜版
- 宝鸡某烟厂联合厂房施工组织设计
- 布袋除尘器安装使用说明书
评论
0/150
提交评论