数据库复习题.docx
- 文档编号:9302635
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:24
- 大小:81.31KB
数据库复习题.docx
《数据库复习题.docx》由会员分享,可在线阅读,更多相关《数据库复习题.docx(24页珍藏版)》请在冰豆网上搜索。
数据库复习题
一、选择题:
1、数据的独立性是指(C)
A.数据库的数据依赖于用户的应用程序B.DBMS与DB相互独立
C.用户的应用程序与数据库的数据相互独立D.用户应用程序与DBMS相互独立
2、数据完整性规则是指数据模型中的(A)所具有的制约和依存规则。
A.数据及其联系B.数据及其属性C.结构及其属性D.实体及其结构
3、关系数据库系统实现专门的关系运算包括(C)
A.排序、索引、统计B.关联、更新、排序
C.选择、投影、连接D.显示、打印、制表
[考点]数据库设计基础
[评析]
此题为数据库的基本概念,如果你完全没学过数据库,可以对照办工软件的电子表格进行
如下理解:
选择:
我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)
投影:
按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名……
都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。
连接:
2个或2个以上的表连接组成一张新的表,通常有条件连接。
比如学生关系(学号,
姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表
(学号,姓名,系号,系名,主任)
4、设有属性A,B,C,D,以下表示中不是关系的是(C)
A.R(A)B.R(A,B,C,D)C.R(ABCD)D.R(A,B)
5、设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是(B)
A.ΠA(R)ΠD(S)B.RUSC.ΠB(R)∩ΠB(S)D.RS
6、设有关系W(工号,姓名,工种,定额),将其规范化到第三范式的正确答案是(B)
A.W1(工号,姓名)W2(工种,定额)
B.W1(工号,姓名,工种)W2(工种,定额)
C.W1(工号,工种,定额)W2(工号,姓名)
D.W1(工号,定额)W2(姓名,工种)
7、若关系模式R(A,B,C,D),函数依赖为:
A→C,CD→B,则R所属的最高范式(A)
A.Rε1NFB.Rε2NFC.Rε3NFD.RεBCNF
几个范式的规范过程。
1NF去掉部分依赖->2NF去掉传递依赖->3NF去掉主属性对码的部分和传
递依赖->BCNF去掉非平凡非函数依赖的多值依赖
8、下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是哪
些?
I.人工管理阶段II.文件系统阶段III.数据库阶段(D)
A.I和IIB.只有IIC.II和IIID.只有I
9、当关系R和S自然联接时,能够把R中原该舍弃的元组放到结果关系中的操作是(A)
A、左外联接B、右外联接C、自联接D、交叉联接
10、数据的存储结构与数据的逻辑结构之间的独立性称为数据的(B)
A、结构独立性B、物理独立性C、逻辑独立性D、分布独立性
题目的意思是指,数据的存储结构不依赖与数据的逻辑结构;
相反,如果数据的逻辑结构不依赖与数据的物理存储结构,这个特性为逻辑独立性。
11、在数据库三级模式中,描述用户数据视图的是数据库的(C)
A、存储模式B、逻辑模式C、外模式D、内模式
12、关系R(ABC)与S(BCD),下列运算中,不合理的是(C)
A、R÷SB、∏BC(R)∪∏BC(S)C、R∩SD、R∞S
13、关系R(ABC)与S(BCD),运算R÷S结果的属性个数是(C)
A、3B、2C、1D、不一定
14、在K元关系R中,公式σ’5’<4表示(B)
A、从R中选择第5个分量的值小于第4个分量值的元组组成的关系
B、从R中选择第4个分量值大于5的元组组成的关系
C、从R中选择第5个分量的值小于4的元组组成的关系
D、从R中选择第4个分量大于第5个分量的元组组成的关系
15、当两个关系没有公共属性时,其自然连接操作表现为(A)
A、笛卡尔积操作B、等值连接操作C、结果为空集D、错误操作
16、在关系模式R(U,F)中,对任何非平凡的函数依赖X→Y,X均包含键,则R最高可以达到(C)
A、2NFB、3NFC、BCNFD、4NF
17、设关系模式R{A,B,C,D,E},其上的函数依赖集F={AB→C,DC→E,D→B},则可导出的函数依赖是(A)
A、AD→EB、BC→EC、DC→ABD、DB→A
18、在数据库物理设计中,数据的基本单位是(D)
A、数据项B、数据流C、数据字典D、存储记录
19、全局数据视图的描述称为(B)
A.外模式B.逻辑模式C.内模式D.存储模式
20、数据模型是(D)
A.文件的集合 B.记录的集合 C.数据的集合 D.记录类型及其联系的集合
21、在关系运算的传统集合运算中,假定有关系R和关系S,运算结果为W。
如果W中的元组既属于R又属于S,则W为(C)的运算结果。
A.并B.差C.交D.笛卡尔积
22、有关系R和S,R∩S的运算等价于(B)
A.S–(R–S)B.R–(R–S)C.(R–S)USD.RU(R–S)
23、关系数据库规范化是为解决关系数据库中(A)问题而引入的
A.插入、删除和数据冗余B.提高查询速度
C.减少数据操作的复杂性D.保证数据的安全性和完整性
24、若关系模式R(A,B,C,D),函数依赖为:
A→C,D→B,则R所属的最高范式(A)
A.Rε1NFB.Rε2NFC.Rε3NFD.RεBCNF
25、在DBS中,DBMS和OS之间的关系是(B)
A、相互调用B、DBMS调用OSC、OS调用DBMSD、并发运行
OS:
操作系统(OperatingSystem)
二、关系代数运算
设有关系R、W、D(如下表所示),计算:
T
Y
B
c
d
m
c
d
n
d
f
n
RWD
P
Q
T
Y
2
b
c
d
9
a
e
f
2
b
e
f
9
a
d
6
7
g
c
f
7
g
c
d
T
Y
c
d
e
f
(1)R1=∏Y,T(R)
(2)R2=σP>5∧T=e(R)(3)R3=R∞W
P
Q
T
R.Y
W.Y
B
2
b
c
d
d
m
2
b
c
d
d
n
9
a
d
6
f
n
7
g
c
f
d
m
7
g
c
f
d
n
7
g
c
d
d
m
7
g
c
d
d
n
P
Q
T
Y
9
a
e
f
T
Y
c
d
e
f
d
6
c
f
(4)R4=∏2,1,6(σ3=5(R×D))(5)R5=R÷D
Q
P
D.Y
b
2
d
g
7
d
g
7
d
a
9
f
b
2
f
P
Q
2
b
三、关系表达式
1、已知关系模式:
学生S(学号,姓名,性别,年龄,系别),
课程C(课程号,课程名,先修课程,学分),
选课SC(学号,课程号,成绩),
用关系代数写出下述检索。
(1)查询数学系的女学生的姓名,年龄。
∏姓名,年龄(σ性别=‘女’∧系别=‘数学’(S))
(2)查询计算机系成绩及格的男学生的姓名、年龄、成绩。
∏姓名,年龄,成绩(σ性别=‘男’∧系别=‘计算机’(S)∞σ成绩>=60(SC))
(3)查询没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。
∏学号,姓名,专业((∏学号(S)-(∏学号(σ成绩<60(SC))))∞S)
(4)查询选修了全部学分为4分的课程的学生姓名、课程名、成绩。
∏姓名,课程名,成绩(S∞(SC÷σ学分=4(C))∞SC∞C)
(5)查询选修了课程号为'C2'或'C6'并且成绩不及格的学生的学号及成绩。
∏学号,成绩(S∞σ成绩<60∧(课程号=‘C2’∨课程号=‘C6’)(SC))
四、应用题
1、设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。
假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。
(7分)
(1)试画出ER图,并注明属性和联系类型。
(2)设计相应的关系数据模型。
商店(商店编号,商店名,地址,电话)
顾客(顾客编号,姓名,地址,年龄,性别)
购物(商店编号,顾客编号,日期,消费金额)
2、学生运动会管理模型:
(1)有若干班级,每个班级包括:
班级号、班级名、专业、人数;
(2)每个班级有若干运动员,运动员只能属于一个班,包括:
运动员号、姓名、性别、年龄;
(3)有若干比赛项目,包括:
项目号、名称、比赛地点;
(4)每名运动员可以参加多项比赛,每个项目可有多人参加;
(5)要求能够公布每个比赛项目的运动员名次与成绩。
要求:
试画出ER图,并注明属性和联系类型。
3、关系模式R(S,D,I,B,O,Q),其函数依赖集F={S→D,I→B,B→O,O→Q,Q→I},求该关系模式的候选键。
L:
S
R:
D
N:
LR:
I,B,O,Q
S′=SD
SI′=SDIBOQSB′=SDIBOQSO′=SDIBOQSQ′=SDIBOQ
∴候选键为:
SI、SB、SO、SQ
4、关系模式R(A,B,C,D,E,P),其函数依赖集F={A→B,C→P,E→A,CE→D},求该关系模式的候选键。
L:
C,E
R:
B,D,P
N:
LR:
A
CE′=ABCDEP
∴候选键为:
CE
五、设计题
1、现有一个人事档案数据库person,其中表结构如下:
(涉及多表关联时,请尽量使用e,r,h分别作为from关键字后employees,relation和hortation三张表的别名)
(Select后的字段如需使用别名显示,会在题目中标识出来,否则请直接使用字段名)
员工基本信息表(Employees)
列名
数据类型与长度
是否允许为空
说明
empCardId
Char(15)
Notnull
职工身份证号
empName
Char(8)
Notnull
职工姓名
empSex
Char
(2)
Notnull
性别,只能“男”或“女”
empBirthDate
Datetime
Notnull
出生日期
empWorkDate
datetime
Null
参加工作的时间,比出生日期要晚
empPay
money
NotNull
工资
empWorkPlace
Char(20)
Null
工作单位
empHomeAddress
Char(30)
Null
家庭住址
职工家属表(relation)
列名
数据类型与长度
是否允许为空
说明
empCardId
Char(15)
Notnull
职工身份证号
relationName
Char(8)
Notnull
家属姓名
relaSex
Char
(2)
Notnull
性别
relaWorkPlace
Char(20)
Null
工作单位
奖励表(hortation)
列名
数据类型与长度
是否允许为空
说明
empCardId
Char(15)
Notnull
职工身份证号
hortationDate
Datetime
Notnull
奖励时间
hortationContent
varchar(100)
Null
奖励内容
请使用SQL语句完成下面各题,并把答案写在答题纸上。
(1)定义员工表,包括备注中的内容。
(2)统计显示居住在‘郑州市’的职工总人数(totalMember)。
SELECTCOUNT(*)
FROMEmployees
WHEREempHomeAddress=‘郑州市%’
(3)显示工作单位是IBM的员工姓名。
SELECTempName
FROMEmployees
WHEREempWorkPlace=‘IBM’
(4)显示跟周正同一年参加工作的职工的姓名(empName)、性别(empSex)。
SELECTempName,empSex
FROMEmployees
WHEREempWorkDate=(
SELECTempWorkDate
FROMEmployees
WHEREempName=‘周正’
)
(5)显示比所有女职工工资都高的男职工姓名(empName)、职工身份证号码(empCardId)和工资(empPay)。
SELECTempName,empCardId,empPay
FROMEmployees
WHEREempSex=‘男’AND(empPay>ALL(
SELECTempPay
FROMEmployees
WHEREempSex=‘女’
)
(6)显示所有职工的获奖次数,包括职工姓名和获奖次数(number)。
SELECTempName,COUNT(hortationDate)ASnumber
FROMEmployeesLEFTJOINhortation
ONhortation.empCardId=Employees.empCardId
GROUPBYEmployees.empCardId
(7)IBM公司的职工工资上调10%。
UPDATAEmployees
SETempPay=empPay*1.1
WHEREempWorkPlace=‘IBM’
(8)将至少获得两次奖励以上的职工工资上调10%。
UPDATAEmployees
SETempPay=empPay*1.1
WHERE(empCardId=ANY(
SELECTempCardId
FROMEmployeesLEFTJOINhortation
ONhortation.empCardId=Employees.empCardId
GROUPBYEmployees.empCardId
HAVINGCOUNT(empCardId)>=2
)
(9)编写视图vwEmployeeInfo,显示所有的基本信息及获奖情况(包括获奖时间和获奖内容)
CREATEVIEWvwEmployeeInfo
ASSELECT
hortation.empCardId,empName,empSex,empBirthDate,empWorkDate,
EmpPay,empWorkPlace,empHomeAddress,hortationDate,hortationContent
FROMEmployeesLEFTJIONhortation
ONhortation.empCardId=Employees.empCardId
(10)编写存储过程upRelation,根据参加工作的年份,查询这一年每个单位的进人情况,显示工作单位、人数。
CREATEPROCEDUREupRelation
(
@empWorkDatedatetime,
@empWorkPlaceChar(20),
@empCOUNTINT
)
AS
SELECT@empWorkPlace=empWorkPlace,@empCOUNT=COUNT(empCardId)
FROMEmployees
GROUPBYempWorkDate,empWorkPlace
WHEREempWorkDate=@empWorkDate
DECLEAR@empWorkPlaceChar(20)
DECLEAR@empCOUNTINT
EXECupRelation‘DX’,@empWorkPlaceOUTPUT,@empCOUNTOUTPUT
SELECT‘工作单位’=@empWorkPlace,‘人数’=@empCOUNT
2、现有一个员工管理数据库YGGL,其中表结构如下:
(涉及多表关联时,请尽量使用e,d,s分别作为from关键字后Employees,Departments和Salary三张表的别名)
(Select后的字段如需使用别名显示,会在题目中标识出来,否则请直接使用字段名)
员工基本信息表(Employees)
列名
数据类型与长度
是否允许为空
说明
EmployeeID
Char(6)
Notnull
员工编号,主键
Name
Char(10)
Notnull
姓名
Birthday
Datetime
Notnull
出生日期
Sex
Bit
Notnull
性别,1为“男”
Address
Char(20)
Null
地址
PhoneNumber
Char(12)
Null
电话号码
EmailAddress
Char(30)
Null
电子邮件地址
DepartmentID
Char(3)
Notnull
员工部门号,外键
部门表(Departments)
列名
数据类型与长度
是否允许为空
说明
DepartmentID
Char(3)
Notnull
部门编号,主键
DepartmentName
Char(20)
Notnull
部门名
Note
Char(1024)
null
备注
工资表(Salary)
列名
数据类型与长度
是否允许为空
说明
EmployeeID
Char(6)
Notnull
员工编号,主键
InCome
decimal(10,2)
Notnull
收入
OutCome
decimal(10,2)
NotNull
支出
1、找出各部门中没有提供“通信地址”的人数,显示部门名和统计人数(Number)。
2、统计各部门的平均收入,显示部门名和平均收入。
3、查看所有员工的支出情况,显示员工名和支出。
4、统计各部门在1966年以前出生的雇员的人数(qty)和部门名。
5、查找部门中没有一个人提供了Email的部门名。
6、统计部门的平均收入比‘研发部’的平均收入高的部门,显示部门名及其平均收入。
7、将收入低于该部门平均收入的雇员的工资上调10%。
8、创建视图,查看所有员工所在的部门名和收入(InCome),考虑有些新进员工还没有部门的情况。
9、创建视图,显示平均收入小于2200的部门名。
10、创建存储过程,根据部门号,统计该部门最高(MaxSalary)和最低(MinSalary)实际收入(实际收入为:
收入-支出)的职工姓名及实际收入。
为方便大家验证结果,提供上面2个查询练习的脚本:
1、createtableemployees
(
empCardIdvarchar(18)notnullprimarykey,
empNamechar(8)notnull,
empSexChar
(2)Notnullcheck(‘男’or‘女’),
empBirthDateDatetimeNotnull,
empWorkDatedatetimeNull,
empPaymoneyNotNull,
empWorkPlaceChar(20)Null,
empHomeAddressChar(30)Null
)
GO
createtablerelation
(
empCardIdvarchar(18)Notnullprimarykey,
relationNameChar(8)Notnull,
relaSexChar
(2)Notnull,
relaWorkPlaceChar(20)Null
)
GO
createtablehortation
(
empCardIdvarChar(18)Notnull,
hortationDateDatetimeNotnull,
hortationContentvarchar(100)Null
)
GO
insertintoemployeesvalues('3305201','李勇','男','1978-4-5','2000-5-7',1500,'IBM','杭州市文一路115号')
GO
insertintoemployeesvalues('3305202','周正','男','1977-5-9','1998-9-6',2500,'IBM','郑州市五福街96号')
GO
insertintoemployeesvalues('3305203','上官皖','女','1976-11-5','2000-8-15',2300,'IBM','广州市白云路45号')
GO
insertintoemployeesvalues('3305204','陈淘','男','1977-2-13','2001-10-3',1800,'华为','杭州市文一路115号')
GO
insertintoemployeesvalues('3305205','陈园','女','1976-12-18','1998-4-12',1900,'华为','福州市八一七路102号')
GO
insertintoemployeesvalues('3305206','齐亚','男','1979-7-15','2001-6-27',3500,'华为','上海市淮海路156号')
GO
insertintoemployeesvalues('3305207','曹洁','女','1980-3-26','2001-8-7',1700,'微软','郑州市五福街96号')
GO
insertintoemployeesvalues('3305208','萨骆','男','1980-6-14','2001-1-24',2800,'微软','上海市淮海路156号')
GO
insertintoemployeesvalues('330520
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 复习题