数据库复习题.docx

上传人:b****8 文档编号:9302635 上传时间:2023-02-04 格式:DOCX 页数:24 大小:81.31KB
下载 相关 举报
数据库复习题.docx_第1页
第1页 / 共24页
数据库复习题.docx_第2页
第2页 / 共24页
数据库复习题.docx_第3页
第3页 / 共24页
数据库复习题.docx_第4页
第4页 / 共24页
数据库复习题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库复习题.docx

《数据库复习题.docx》由会员分享,可在线阅读,更多相关《数据库复习题.docx(24页珍藏版)》请在冰豆网上搜索。

数据库复习题.docx

数据库复习题

一、选择题:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1