《数据库简答题整理版资料.doc》由会员分享,可在线阅读,更多相关《数据库简答题整理版资料.doc(18页珍藏版)》请在三一办公上搜索。
1、数据库原理简答题1. 数据库系统阶段数据库系统的特点?(P3) 典型特征包括:数据结构化,描述数据时不仅要描述数据本身还有描述数据和数据之间的联系;数据由数据库管理系统统一管理;数据的共享性高;数据独立性高,不会因为系统存储结构与逻辑结构的变化而影响应用程序,即保持物理独立性和逻辑独立性。2. 简述关系的完整性。关系模型的完整性约束包括实体完整性、参照完整性、用户定义完整性。关系的完整性:实体完整性规定关系中的所有主属性不能为空,而不仅是整体不能为空NULL的含义(不知道或者无意义的值)。参照完整性外码、参照关系、被参照关系外码取值规则:要么为空,要么等于对应参照关系的某个主码值用户定义完整性
2、反映某一具体应用所涉及的数据必须满足的语义要求。3RDBMS在实现参照完整性时需要考虑哪些方面的问题,以及可以采取的策略?(1)外码能否接受空值 (2)删除被参照关系中的元组。这时可有三种不同的策略: 级联删除:同时删除参照关系中相关元组; 受限删除:仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。 置空值删除:删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 ( 3 ) 在参照关系中插入元组 当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照关系插入元组的外码值相同,这时可有以下策略: .受限插入
3、:不允许在参照关系中插入; .递归插入:同时在被参照关系中插入一个元组,其主码值为插入元组的外码值。4试述数据模型的三个要素答:数据模型通常由数据结构、数据操作和完整性约束三部分组成。 数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述。 数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。5. DBA的职责是什么? 答:负责全面地管理和
4、控制数据库系统。具体职责包括: 决定数据库的信息内容和结构; 决定数据库的存储结构和存取策略; 定义数据的安全性要求和完整性约束条件; 监督和控制数据库的试用和运行; 数据库系统的改进和重组。 6. 等值连接与自然连接的区别是什么? 答:连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。 为“”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。7.
5、 试述关系数据库的特点。 答:关系数据模型具有下列优点:一、它是建立在严格的数学概念的基础上的。二、 关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。操作的对象和操作的结果都是关系。三、关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统软件的难度。 8简述关系的性质?答: 同一列中的分量是同一类型的数据。 不同列可以取相同的数据类型。 关系中的列又称为属性,并赋予属性名
6、。不同列的属性名不同。 列的次序可以任意交换。 任意两个元组不能完全相同。 行的次序可以任意交换。 列具有原子性,即每一列值是不可分的数据项9 简述SQL语言的主要特点。答:SQL语言的特点:高度综合统一:SQL集数据定义(DDL)、数据操纵(DML)和数据控制(DCL)于一体,语言风格统一,可以独立完成数据生命周期中的全部活动。高度非过程化:用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,有利于提高数据的独立性。面向集合的操作方式:查询的结果可以是元组的集合,插入、删除、更新操作的对象也是元组的集合。两种操作方式:既可以作为自含式语言在数据库中直接操作数据库,又可以作
7、为嵌入式语言嵌入到其他程序设计语言中使用。类似自然语言:SQL语言虽然功能极强,但由于设计巧妙,语法简单,易学易用,SQL语言能够完成DDL、DQL、DML、DCL等功能。10. 试述数据库系统三级模式结构,这种结构的优点是什么? 答:数据库系统的三级模式结构由外模式、模式和内模式组成。(数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映象:外模式模式映象和模式内模式映象。正是这两层映象保证了数据库系统中的数据能够具
8、有较高的逻辑独立性和物理独立性。 11. 试述SQL的定义功能(从表、视图、索引分析)。 答:SQL的数据定义功能包括定义表、定义视图和定义索引。SQL语言使用Create table语句建立基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;使用CREA TEINDEX语句建立索引,DROPINDEX语句删除索引;使用CREATE VIEW语句建立视图,DROPVIEW语句删除视图12. 判断下面的关系模式是否是3NF,若不是请无损分解为3NF?选课(学号,课程号,课程名,成绩),函数依赖集F=(学号,课程号)成绩,课程号课程名。13现有如下关系模式:R(A,B
9、,C,D,E),其中:(A,B)组合为码,R上存在的函数依赖有(A,B)E,BC,CD。1)该关系模式满足2NF吗?为什么?2)如果将关系模式R分解为:R1(A,B,E) R2(B,C,D)指出关系模式R2的码,并说明该关系模式最高满足第几范式?(在1NFBCNF之内),为什么? 14设有关系模式 R U= A , B , C , D , E F=ABC, BD, CE, ECB, ACB ,求R的候选码,并判断R的范式。15设关系模式R,其中U=A,B,C,D,E, 若F=ABC,CD,BCDE,BD,则关系模式R的候选关键字是什么,并指出R所属的范式最高等级及原因。16设有关系模式R(A,
10、B,C,D,E,G,K),其最小函数依赖集F=ABC,BDE,CG,GA 求模式R的所有候选码; 说明R不是2NF的理由,并把R分解成2NF模式集;17. 现有如下关系模式:R(A,B,C,D,E),其中:AB组合为码,R上存在的函数依赖有ABE,BC,CD(1)该关系模式满足2NF吗?为什么? (4%)(2)如果将关系模式R分解为: R1(A,B,E) R2(B,C,D)指出关系模式R2的码,并说明该关系模式最高满足第几范式?(在1NFBCNF之内)为什么? 18已知学生关系模式S(Sno,Sname,SD,Sdname,Course,Grade),其中:Sno学号、Sname姓名、SD系名
11、、Sdname系主任名、Course课程、Grade成绩。(1)写出关系模式S的基本函数依赖和主码。(2)原关系模式S为几范式?为什么? 19. 设某商业集团数据库中有一关系模式R如下:R (商店编号,商品编号,数量,部门编号,负责人),如果规定:(1) 每个商店的每种商品只的在一个部门销售;(2) 每个商店的每个部门只有一个负责人;(3) 每个商店的每种商品只有一个库存数量。 试回答下列问题:a. 根据上述规定,写出关系模式R的基本函数依赖;b. 找出关系模式R的候选码;c. 试问关系模式R最高已经达到第几范式?为什么?20. 设有关系模式:授课表(课程号,课程名,学分,授课教师号,教师名,
12、授课时数)。其语义为:一门课程号有确定的课程名和学分,每名教师有确定的教师名,每门课程号可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程号有确定的授课时数。回答以下问题:(1)根据上述规定写出关系模式R的基本函数依赖;(2)找出关系模式R的候选码; (3)试问关系模式R最高已经达到第几范式?为什么?21设某图书集团有一关系模式R如下:R(书店编号,书籍编号,库存数量,部门编号,负责人)如果规定:(1)每个书店的每种书籍只在该书店的一个部门销售; (2)每个书店的每个部门只有一个负责人; (3)每个书店的每种书籍只有一个库存数量。回答以下问题:(1)根据上述规定写出关系模式R的
13、基本函数依赖;(2)找出关系模式R的候选码; (3)试问关系模式R最高已经达到第几范式?为什么?22什么是基本表?什么是视图?两者的区别和联系是什么?答:基本表是数据库中本身独立存在的表,每个基本表对应一个关系模式。在SQL中一个关系就对应一个基本表。一个(或多个)基本表对应一个存储文件,一个基本表可以建立若干索引,它们都依附于基本表且存放在存储文件中。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义及其关联的基本表名等信息而不存放视图对应的数据,这些数据仍然存放在导出视图的基本表中。但SQL在查询视图时与基本表完全相同,且用户可以在视图上
14、再定义视图。但用视图对数据库中的数据进行增、删、改等更新操作时有一定的限制。23. 试述视图的优点。答:视图能够简化用户的操作;视图使用户能以多种角度看待同一数据;视图对重构数据库提供了一定程度的逻辑独立性;视图能够对机密数据提供安全保护。24 所有的视图是否都可以更新?为什么? 答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更 新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所 有的视图都是可更新的。如视图S_G(学生的学号及他的平均成绩) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Gr
15、ade) /*设SC表中“成绩”列Grade为数字型*/ FROM SC GROUP BY Sno;要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。25. 试述事务的概念及事务的四个特性。答:事务是用户定义的一组操作序列的集合,是数据恢复和并发控制的基本单位。数据库系统在执行事务时,要么执行事务中全部操作,要么一个操作都不执行。事务具有四个特性,即原子性、一致性、隔离性和持续性,又常简称为ACID特性。原子性(Atomicity):一个事务是不可分割的数据库逻辑工作单位,事务中包括的所有操作要么都做,要么都不做。一致性(Consistency):事务的执
16、行结果必须使数据库从一个一致性状态变到另一个一致性状态。隔离性(Isolation):一个事务的执行不能被其它事务干扰。持续性(Durability),也称持久性(Permanence):指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,其它操作或故障不对其产生任何影响。27 什么是事务?它有哪些属性? 答:事务是用户定义的一组操作序列的集合,是数据恢复和并发控制的基本单位。数据库系统在执行事务时,要么执行事务中全部操作,要么一个操作都不执行。事务具有四个特性,即原子性、一致性、隔离性和持续性,又常简称为ACID特性。28. 数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执
17、行?哪些故障破坏数据库数据? 答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:(1) 事务内部的故障;(2) 系统故障;(3) 介质故障;(4) 计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。29 简述把E-R图转换为关系模型的转换规则。 答:将E-R图转换为关系模型的实质就是将实体、实体的属性以及实体之间的联系转换为关系模式。(1) 实体及属性的转换:一个实体型转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的键。 实体集转换为关系:1)实体集对应于一个关系 2)关系名:与实体集同名。3)属性:实体集的所有属
18、性。 4)主码:实体集的主码。(2)联系转换为关系联系转换成为关系模式。联系转换成为关系模式时,要根据联系方式的不同采用不同的转换方式1:1联系的转换方法1:n联系的转换方法m:n联系的转换方法E-R图向关系模型的转换规则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。30 试述数据库设计的基本步骤。 答:数据库的设计步骤为规划时期、设计时期(需求分析、概念设计、逻辑设计、物理设计)、实施时期和运行维护时期。数据库设计主要包含两方面内容:一是结构设计,二是行为设计。数据库设计要经过一下六个阶段:需求分析、 概念设计、逻辑设计、物理设计 、数据库实施、数据库运行和
19、维护。31试述数据库概念结构设计的重要性和设计步骤。 答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一DBMS实现这些需求。设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构 32简述数据库的物理设计内容。答:主要包括了以下工作:(1) 确定数据的存储结构,决定是否采用聚簇功能。(2)设计数据的存取路径,决定是否建立索引,建多少索引,在哪些列或多列上建索引等。
20、 (3)确定数据的存放的物理位置,决定是否将经常存取部分和存取频率较低部分分开存放等。 (4)确定系统配置参数,根据DBMS产品提供了一些存储分配参数,数据库进行物理优化。(5) 评价物理结构, 估算各种方案的存储空间、存取时间和维护代价,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。33什么是数据库的逻辑结构设计?试述其设计步骤。答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。设计步骤为(图6.31): (1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS
21、支持下的数据模型转换;(3)对数据模型进行优化。 34已知关系r、s、w,如图所示,计算T= (r s)w) s(6分)35.已知关系R、S、T如图所示,计算W=(RT) S (要写出步骤)(4%)36.关系R和S如下图所示,试计算T=A,B,C(RS)R)。37简述预防死锁通常有两种方法。答:预防死锁通常有两种:一次封锁法和顺序封锁法。 一次封锁法:一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁法虽然可以有效地防止死锁的发生,但每次要就将以后用到的全部数据加锁,从而降低了系统的并发度。 顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都
22、按这个顺序实行封锁38简述数据字典包括的五个部分的意义。答:数据字典包括数据项、数据结构、数据流、数据存储和处理过程五部分。数据项是不可再分的数据单位,说明基本数据信息的数据类型、长度、取值范围等。数据结构反映了数据之间的组合关系。数据流是数据结构在系统内传输的路径。数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。处理过程描述该处理过程的功能及处理要求。主要包括说明做什么,处理频度,响应时间等。【综合题】设计一个学校的课程管理系统,有关课程管理的规则如下: 学校开设多门课,每门课可由不同的教师讲授(一个教师只讲授一门课),用统一指定的教科书。 每个学生可选修多门课,每门课可有多
23、个学生选修。 每个教师要教多个学生,每个学生可选择不同教师的课程。 每门课程有指定的教室,某一时刻每个教室只能开设一门课。(3)确定实体型和联系类型的属性v 各实体型的属性分别为: w 学生:学号,姓名,性别,出生年月,系别 w 课程:课程号,课程名,学分,上课时间 w 教师:教师号,姓名,性别,职称 w 教科书:书号,书名,出版社,单价 w 教室:编号,地址,容量v 联系类型属性有: w 选修:成绩 w 教学:人数出生年月学号姓名性别教室课程学生开设选修11nm地址课号编号课名容量学分成绩系别姓名教学教科书教师讲授11nnm人数性别职称教师号书号书名单价出版社2.把E-R图转换成关系模式 按
24、照转换规则,得到八个关系模式: w 学生(学号,姓名,性别,出生年月,系别) w 课程(课程号,课程名,学分,上课时间,教室) w 教师(教师号,姓名,性别,职称) w 教科书(书号,书名,出版社,单价) w 教室(编号,地址,容量) w 选修(学号,课程号,成绩) w 教学(教师号,学号,人数) w 讲授(教师号,课程号,书号)例 建立一个“学生选课”表SCCREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno), /* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN
25、KEY (Sno) REFERENCES Student(Sno), /* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno) /* 表级完整性约束条件, Cno是外码,被参照表是Course*/); 查询分析题实验一1.要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf 和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小
26、不受限制。create database studenton(name=stu,filename=d:stu_data.mdf,size=3,filegrowth=10%,maxsize=500)log on(name=stu_log,filename=d:stu_log.ldf,size=3,filegrowth=1,maxsize=unlimited)2、创建一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为
27、Company.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB。create database Companyon(name=Company_data,filename=d:Company.mdf,size=10,maxsize=unlimited,filegrowth=10%)log on(name=Company_log,filename=d:Company.ldf,size=1,maxsize=50,filegrowth=1)3、创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和DB_data2,文件初始大小均为5MB,最大为100MB,按10%增长;只
28、有一个日志文件,初始大小为3MB,按10%增长;所有文件都存储在D盘文件夹ceshi中。create database DBon(name=DB_data1,filename=D:DB_data1.mdf,size=5,maxsize=100,filegrowth=10%),(name=DB_data2,filename=D:DB_data2.mdf,size=5,maxsize=100,filegrowth=10%)log on(name=DB_log,filename=D:DB_log.ldf,size=3,filegrowth=10%)4、在数据库student中增加数据文件db2,初始
29、大小为10MB,最大大小为50 MB,按10%增长;alter database studentadd file(name=db2,filename=d:db2.ndf,size=10,maxsize=50,filegrowth=10%)5、在数据库student中添加日志文件,保存在D盘中,初始大小为1MB,最大无限制,增长方式按照1MB增长;alter database studentadd log file(name=student_log,filename=d:student_log.ldf,size=1,maxsize=unlimited,filegrowth=1)6、修改数据库st
30、udent主数据文件的大小,将主数据文件的初始大小修改为10Mb,增长方式为20%;alter database studentmodify file(name=stu,size=10,filegrowth=20%)7、修改数据库student辅助数据文件初始大小为3MB,最大为100MB,按照10%增长,名称为db2;alter database studentmodify file(name=db2,size=3,maxsize=100,filegrowth=10%)8、删除数据库student辅助数据文件和第二个日志文件;alter database studentremove file
31、 db2alter database studentremove file student_log9、删除数据库company和DB。drop database companydrop database DB10、将数据库student的所有物理文件移动到D:xxx,并且保证逻辑数据库不受影响,请详细描述解决办法。首先右击数据库student,然后在所有任务里面点击分离数据库,分离完之后,将所有物理文件移动到D:xxx,最后再通过数据库里面的右击选择所有项里面的附加数据库。实验二1) 依据数据表的结构创建相对应的数据表,表结构如下所示;学生信息表(student)字段名称字段类型及长度说明备注
32、SnoChar(9)学生学号主关键字SnameChar(6)学生姓名非空SsexChar(2)学生性别可为空SageInt学生年龄可为空SdeptVarChar(8)学生所在院系可为空create table student(sno char(9) constraint pk_student_sno primary key,sname char(6) not null,ssex char(2),sage int,sdept varchar(8)课程信息表(course)字段名称字段类型及长度说明备注CnoChar(4)课程编号主关键字CnameVarChar(20)课程名称非空CpnoChar
33、(4)先行课可为空CcreditInt学分可为空create table course(cno char(4) constraint pk_course_cno primary key,cname varchar(20) not null,cpno char,ccredit int,)选课信息表(sc)字段名称字段类型及长度说明备注SnoChar(9)学生学号主关键字CnoChar(4)课程编号主关键字GradeInt成绩可为空create table sc(sno char(9),cno char(4), constraint pk_sc primary key(sno,cno),grade int check(grade =0 and grade =0 and grade 25 and Ssex=男 and Sdept=CM9.删除数据表course中学分低于1学分的课程信息;delete from course where Ccredit=60 and 成绩19854.按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”;select Ssex=casewhen Ssex=男 then 男生 when Ssex=女 then