数据库原理.docx
《数据库原理.docx》由会员分享,可在线阅读,更多相关《数据库原理.docx(15页珍藏版)》请在冰点文库上搜索。
数据库原理
1.DBMS提供的(完整性控制)可以确保数据库中数据正确性、有效性和一致性。
2.DBMS提供的(安全性控制)可以确保XX的用户存取数据库中的数据。
3.数据库系统由(DBA)、(应用系统)、(DBMS)、(DB)四部分组成。
4.采用了(数据库)技术的计算机系统称为数据库系统。
5.关系模型是由一个或多个(表)组成的集合。
6.当数据库中的数据出现故障时,就可利用数据库的(备份)或者(日志)来恢复。
7.“授权”是数据库系统中采用的(安全性保护)措施之一。
8.并发操作的正确性准则是(冲突可串行化)。
9.在事务结束之前释放锁,可能产生(级联回退)现象。
10.在(S,X)加锁协议中,可能产生(活锁)现象,通过(先来先服务)进行避免。
11.在DAC安全控制中授权使用命令关键字(GRANT),撤销权限使用的命令关键字(REVOKE)。
12.规范化过程,是通过投影分解,把(一个异常)的关系模式“分离”为(多个规范)的关系模式。
但这种投影分解不是唯一的,要求分解是(无损分解),又具有(保持函数依赖)。
13.一个不好的关系模式会存在(更新异常)、(删除异常)和(数据冗余)等弊病。
14.通过模式分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为(规范化)。
15.要求模式分解满足“保持函数依赖”,一定能达到的范式是(3NF)。
16.实体之间的联系按联系方式的不同可分为(1:
1)、(1:
N)和(M:
N)。
一、单项选择题
1.数据管理技术发展阶段中,文件系统与数据库系统阶段的主要区别之一是数据库系统(有专门的软件对数据进行管理)。
2.数据库系统的三级模式是指(外模式、模式、内模式)。
3.下列四项中,不属于数据库特点的是(数据冗余很高)。
4.单个用户使用的数据视图的描述称为(外模式)。
5.(模式)描述数据库的全局逻辑结构
6.一个数据库系统来说,下列观点中正确的是(一个数据库系统必须具备一定的数据独立性)
7.以下(提供进程调度)不是数据库管理系统的功能。
8.要保证数据库的数据独立性,需要修改的是(三层模式之间的两种抽象)。
9.数据库中全部数据的整体逻辑结构的描述是(概念模式)。
10.数据库三级模式体系结构的划分,有利于保持数据库的(数据独立性)。
11.逻辑数据独立性是指(概念模式改变,内模式不变)。
12.物理独立性是指(内模式改变,概念模式不变)。
13.在数据操纵语言(DML)的基本功能中,不包括的是(描述数据库结构)。
14.在数据库中,发生数据不一致现象的根本原因是(数据冗余)。
15.当前数据库应用系统的主流数据模型是(关系数据模型)。
16.现实世界中,事务的特性在信息世界中称为(属性)。
17.下列实体类型的联系中,属于一对多联系的是(公司和公司经理的联系)。
18.下列实体类型的联系中,属于一对多联系的是(车间与工人之间的联系)。
19.下列实体类型的联系中,属于多对多联系的是(学生与课程之间的联系)。
20.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,职员与部门的联系类型是(m:
1)。
21.ORACLE的数据库管理系统是(关系型的)。
22.在现实世界中,某种商品的名称对应于计算机世界中的(属性)。
23.如果把学生看成实体,某个学生的姓名叫“张三”,则张三应看成是(属性值)。
24.从ER图导出关系模型时,如果两实体间的关系是m:
n的,下列说法中正确的是(增加一个关系表示联系,其中的属性纳入m方和n方的关键字)。
25.对一个单位来说,正确的是(以上三个都不是唯一的)。
26.概念模型独立于(操作系统和DBMS)。
27.用E/R图表示学生选课,下图中正确的是(
)。
28.对于Movie类,如果键码由Title和Year的集合构成,则下列语句中正确的是(InterfaceMovie(Key(Title,Year)))。
29.对于Student类中,如果StudentName和StudentNo都可能是键码,则下列语句中正确的是(InterfaceStudent(KeyStudentName,StudentNo))。
30.对于属性attributeStructDate(integerYear,integerMonth,integerDay)MakeDate;正确的描述是(该属性是用3个整型属性定义一个类型MakeDate)。
31.从关系中挑选出指定的属性组成新关系的运算称为(选择)。
32.在下列关于关系的陈述中,错误的是(表中任意两列的值不能相同)。
33.关系数据库中的视图属于4个数据抽象级别中的(外部模型)。
34.关系模型中,表示实体间n:
m联系是通过增加一个(关系实现)。
35.物理独立性是指(内模式改变,概念模式不变)。
36.在数据操纵语言(DML)的基本功能中,不包括的是(描述数据库结构)。
37.在数据库中,发生数据不一致现象的根本原因是(数据冗余)。
38.当前数据库应用系统的主流数据模型是(关系数据模型)。
39.现实世界中,事务的特性在信息世界中称为(属性)。
40.下列实体类型的联系中,属于一对多联系的是(公司和公司经理的联系)。
41.关系数据库中,实现实体之间的联系是通过表与表之间的(公共属性)。
42.关系数据模型的三个组成部分中,不包括(恢复)。
43.在视图上不能完成的操作是(在视图上定义新的基本表)
44.采用二维表格结构表达实体型及实体间联系的数据模型是(关系模型)。
45.在关系中,关系键由(一个或多个其值能唯一标识该关系中任何元组的属性组成)。
46.关系数据库管理系统应能实现的专门关系运算包括(选择、投影和连接)。
47.在一个关系中,任意两个元组的值(不能全同)。
48.关系中组成主键的属性不能取空值,这称为关系的(实体完整性)。
49.ISBL是(关系代数语言)。
50.经过投影运算后,所得关系的元组数(不大于)原关系。
51.当两个关系没有公共属性时,其自然联接操作表现为(笛卡尔积操作)。
52.计算机软、硬件系统的确定是在数据库设计的(系统开发之前)。
53.模式评价的内容包括功能评价和(性能评价)
54.设计数据库概念结构时,常用的数据抽象方法是分类、聚集(概括)。
55.为保证多用户环境中数据的完整性和一致性,DBMS采取的控制称为(事务控制)。
56.从数据流图和数据字典出发,首先得到的是数据库的(概念结构)。
57.定义唯一约束,用关键字(UNIQUE)
58.从数据流图构造E-R图时,选择实体一般先考虑数据流图中的(数据存储)。
59.关系中组成主键的属性不能取空值,这称为关系的(实体完整性)。
60.DBMS对数据库中的数据的查询、插入、修改和删除操作的功能称为(数据操作)。
61.视图是(虚拟表)
62.SQL语言的操作对象(只能是一个集合)。
63.索引的作用之一是(加快查询速度)
64.在分组检索中,要去掉不满足条件的分组,应当(使用HAVING子句)。
65.把用户对数据库的所有操作自动记录下来存储到日志文件中,是为了数据库的(一致性)。
66.为了解决并发操作带来的数据不一致性的问题,DBMS采取(封锁)。
67.DBMS对数据库的锁机制是(并发控制)的主要方法。
68.日志文件用于记录(对数据库的所有更新操作)。
69.并发操作通常对带来(丢失更新、脏读、不能重读)问题,造成数据的不一致性。
70.如关系模式R(U,F)属于3NF,则(仍存在一定的插入和删除异常)。
71.概念设计的结果是(一个与DBMS无关的概念模型)
35. 什么是数据独立性?
答:
数据独立性指应用程序独立于数据的表示(逻辑)与存储(物理),通过将数据的定义与存储从程序中独立出来实现。
36. 什么是数据抽象?
答:
数据抽象:
即是将数据抽象化、逻辑化,使用户不必了解数据库文件的物理存储结构、存储位置和存取方法等细节,即可存取数据库。
在数据库系统中,有三种级别的数据抽象,即:
视图级抽象、概念级抽象和物理级抽象。
37. 什么是演绎?
答:
演绎是归纳出实体型集合的共同特征,并形成由这些共同特征构成的新实体型。
38. 什么是弱实体?
答:
弱实体是管理主体之外的实体型。
没有键属性的实体。
25. 什么是数据库?
答:
数据库是永久存储的、相互关联的和可共享的数据集合。
27. 什么是ACID原则?
答:
DBMS为保证在并发访问和故障情况下对数据的维护,要求事务有如下四个重要特征或准则(ACID):
原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。
28. 什么是两阶段锁机制?
答:
在一个事务中,如加锁都在所有释放锁之前,则此事务为两阶段事务。
其中的加锁限制称为两阶段加锁协议(Two-PhaseLockingprotocol,2PL协议)。
30. 什么叫保持函数依赖的分解?
答:
若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖(PreserveDependency)的。
31. 不好的关系模式可以存在哪些问题?
答:
不好的关系模式存在:
插入异常、删除异常、更新异常和数据冗余。
35. 什么是数据库的重组、重构?
答:
DBA执行一些系统命令,来改善这种情况。
这种改善并改变数据库物理存储结构的过程,叫数据库重组。
改变数据库逻辑结构的过程,叫数据库重构。
14. 什么是数据库系统?
答:
数据库系统是由数据库和数据库管理系统构成,更广义的构成则为“DB+DBMS+数据库管理员(DataBaseAdministratior,DBA)+应用程序+用户”。
15. 什么是数据字典?
答:
数据字典是数据库系统中的一个特殊文件,用于存储数据库的一些说明信息,这些说明信息称为元数据(MetaData)。
数据抽象
16. 什么是归纳?
答:
归纳是识别超类实体型子类的处理过程。
19. 什么是实体完整性?
答:
实体完整性是若属性A是基本关系R的主属性,则属性A不能取空值。
29. 数据库管理系统提供的数据库保护功能包括哪几个方面,试解释它们的含义。
答:
数据库管理系统提供的数据库保护功能包括:
安全性、完整性、故障恢复和并发控制。
安全性是指:
保护数据库防止非法用户入侵数据库。
完整性是指:
保证数据的正确、相容、一致,防止错误数据。
故障恢复是指:
当数据库发生故障时,能够从某种错误状态恢复到某种一致状态。
并发控制是指:
当多用户访问数据库时,保证数据的正确、一致。
32. 设关系模式R(A,B,C,D,E),其函数依赖F={AB→C,B→D,D→E},完成下述各题。
a) 求出R的所有候选建;b) 试分析关系R属于何种范式;c) 将R分解为满足3NF的关系;
答:
a) R的候选建为:
AB
b) R属于第一范式
c) 将R分解为3个关系:
R1(A,B,C)
R2(B,D)
R3(D,E)
33. 数据库设计的步骤。
答:
数据库设计分为六个阶段:
(1)用户需求分析
(2)数据库的概念模型设计(3)数据库的逻辑设计(4)数据库的物理设计(5)数据库实施、数据库的使用与维护。
34. 建立索引应遵循哪些原则?
答:
索引建立原则:
(1)为数据量大的表建立索引;
(2)被索引列的数据值最好多而杂(3)一张表所建索引个数应适量;(4)掌握建立索引的时机;(5)优先建立主键列的索引。
22. 什么是数据库安全性?
答:
数据库安全性是保护数据库防止非法用户入侵数据库造成的数据更改、泄露和破坏。
39. 假定一个学校的图书馆要建立一个数据库,保存读者、书和读者借书记录。
请用ER图进行概念模型的设计。
读者的属性有:
读者号、姓名、年龄、地址和单位
书的属性有:
书号、书名、作者和出版社
对每个读者借的每本书有:
借出日期和应还日期
答:
17. 将下面的实体联系模型转为关系模型
涉及的实体有:
供应商,其属性为:
供应商号、姓名、地址、电话号码、帐号
项目,其属性为:
项目号、预算、开工日期
零件,其属性为:
零件号、名称、规格、单位、描述。
答:
供应商(供应商号,姓名,地址,电话号码,账号)
项目(项目号,预算,开工日期)
零件(零件号,名称,规格,单位,描述)
18. 产品与零部件的关系,假定一个产品由多个零部件组成,试画出产品与零部件之间的ER图,导出关系模型。
假定:
“产品”这个实体包括:
品名,厂商、价格等属性
“零部件”包括:
名称,单价,材料等属性
“组装”的属性有:
数量
答:
20. 设有下列关系模式:
STUDENT(SNO,SNAME,AGE,SEX,DNO)
其中,SNO表示学号,SNAME表示姓名,AGE表示年龄,SEX表示性别,DNO表示院系号。
SC(SNO,CNO,GRADE)
其中SNO表示学号,CNO表示课程号,GRADE表示成绩
COURSE(CNO,CNAME)
其中,CNO表示课程号,CNAME表示课程名
请用关系代数表示下列查询:
1、检索年龄小于16的女学生的学号和姓名。
2、检索成绩大于85分的女学生的学号和姓名。
3、检索选修课程号为C1的学生的学号、姓名、课程名和成绩。
4、检索成绩小于60分的同学。
答:
1、πSNO,SNAME(σAGE《16ANDSEX=‘女’STUDENT)
2、πSNO,SNAME((σGRADE)85SC)(σSEX=‘女’STUDENT)
3、πSNO,SNAME,GRADE((σCNO=‘C1’SC)STUDENT))
4、πSNO,SNAME((σGRADE〈60SC)STUDENT))
26.设有一个关系数据库,有三个基本表,表的结构如下:
STUDENT(学号,姓名,年龄,性别,系名),其中学号,姓名,性别,系名的数据类型均为字符类型。
年龄的数据类型为整型。
SC(学号,课程号,成绩):
其中学号、课程号的数据类型为字符类型,成绩的数据类型为整型。
COURSE(课程号,课程名,学时数):
其中课程号、课程名的数据类型的数据类型为字符类型;学时数的数据类型为整型。
1)请用关系代数查询信息系学生的学号、姓名、课程号和成绩。
2)指出以上各关系的键和外键。
3)请用关系代数查询年龄在20以下同学的姓名,年龄。
4)请用SQL语言检索创建STUDENT表,并定义出主键约束,学生性别缺省约束为:
“男”
5) 请用SQL语言定义SC表,并定义外键约束SC(学号,课程号,成绩):
其中学号、课程号的数据类型为字符类型,成绩的数据类型为整型。
6) 查询“计算机原理”课程成绩小于60分的同学的学号和姓名。
7) 请创建年龄在20岁以下,计算机系男同学的视图。
8)将新同学,学号“200301009”,姓名:
张苹,年龄:
20,性别:
女,系名:
土木的信息插入到STUDENT关系中。
9)删除选修“001”课程的选修信息。
答:
1)π学号,姓名,课程号,成绩(SC(σ系名=‘信息’STUDENT))
2)STUDENT:
键:
学号
SC:
键:
学号,课程号;外键:
学号;课程号。
COURSE:
键:
课程号
3)π姓名,年龄(σAGE《20STUDENT)
4)CREATETABLESTUDENT
(学号Char(8)PRIMARYKEY,
姓名Varchar(10)NOTNULL,
年龄integerNOTNULL,
性别Char
(2)NotnullDEFAULT“男”,
系名Varchar(20)NOTNULL)
5)CREATETABLESC
(学号Char(8),
课程号Char(8),
成绩integer,
CONSTRAINTpk_sc_constr
PRIMARYKEYNONCLUSTERED(学号,课程号),
CONSTRAINTpub_sno_const
REFERENCESSTUDENT(学号)
ONDELETECASCADE
ONUPDATECASCADE,
CONSTRAINTpub_cno_const
REFERENCEScourse(课程号)
ONDELETECASCADE
ONUPDATECASCADE)
6)SELECT学号,姓名
FROMSTUDENT,SC
WHERESTUDENT.学号=SC.学号ANDSC.课程号=COURSE.课程号AND
课程名=“计算机原理”AND
成绩〈60
7)CREATEVIEW男同学
AS
SELECT*
FROMSTUDENT
WHERE年龄〈20AND系名=“计算机”
8)INSERTINTOSTUDENT VALUES(“200301009”,“张苹”,20,“女”,“土木”)
9)DELETEFROMSC WHERE课程号=“001”
21. 学生数据库中有三种基本表(关系):
S(Sno,Sname,Age,SD)
C(Cno,Cname,Teacher)
SC(Sno,Cno,Grade)
请用SQL语言完成以下操作:
1) 检索选修课程名为“MS”的学生号和学生姓名;
2) 检索至少选修了课程号为‘C1’和‘C3’的学生号;
3) 检索选修了‘操作系统’或‘数据库’课程的学号和成绩;
4) 检索年龄在18和20之间(含18和20)的女生的学号、姓名及年龄;
5) 检索选修了“刘平”;老师所讲课程的学生的学号、姓名及成绩;
6) 检索选修全部课程的学生姓名;
7) 检索至少选修了学生“1042“选修的全部课程的学生号码;
8) 检索所有姓“樊”的学生的姓名、年龄和所在系;
检索三门课以上学生姓名年龄和所在系。
答:
1) SELECT Sno,Sname
FROM S,SC,C
WHERE S.Sno=SC.Sno ANDSC.Cno=C.CnoANDC.Cname=’MS’
2) SELECT Sno
FROM SCSCX,SCSCY
WHERE SCX.Sno=SCY.Sno ANDSCX.Cno=’C1’ANDSCY.Cno=’C3’
3) SELECT Sno,Grsde
FROM SC,C
WHERESC.Cno=C.CnoAND(C.Cname=’操作系统’ORC.Cname=’数据库’)
4)方法一:
SELECT Sno,Sname,Age
FROM S
WHERE Age>=18ANDAge<=20 AND Sex=’女’
方法二:
(BETWEEN AND)
SELECT Sno,Sname,Age
FROM S
WHERE Age BETWEEN18AND20 AND Sex=’女’
5) SELECT Sno,Sname
FROM S,SC,C
WHERES.Sno=SC.SnoANDSC.Cno=C.CnoANDC.Teacher=’刘平’
6) SELECT Sname
FROM S
WHERE NOTEXISTS
(SELECT *
FROM C
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno=S.Sno ANDCno=C.Cno))
7) SELECT Sno
FROM SCSCX
WHERE NOTEXISTS
(SELECT *
FROM SC SCY
WHERE SCY.Sno=’1042’ AND NOT EXISTS
(SELECT *
FROM SC SCZ
WHERESCZ.Sno=SCX.SnoAND SCZ.Cno=SCY.Cno))
8) SELECT Sname,Age,SD
FROM S
WHERE SnameLIKE’樊%’
9) SELECT Snaem,Age,SD
FROM S
WHERE Sno IN
(SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>3)