数据库复习题

一、选择题

1、现实世界中客观存在并能相互区别的事物称为(A )。

A.实体B.实体集C.字段D.记录

2、现实世界中事物的特性在信息世界中称为(C )。

A.实体B.实体标识符C.属性D.关键码

3、层次模型必须满足的一个条件是(B )。

A.每个结点均可以有一个以上的父结点B.有且仅有一个结点无父结点

C.不能有结点无父结点D.可以有一个以上的结点无父结点

4、采用二维表格结构表达实体类型及实体间联系的数据模型是(C )。

A.层次模型B.网状模型C.关系模型D.实体联系模型

5、关系数据模型(D )。

A.只能表示实体间的1:1 联系B.只能表示实体间的1:n 联系

C.只能表示实体间的m:n 联系D.可以表示实体间的上述三种联系

6、数据库中,数据的逻辑数据独立性是指(A )。

A.概念模式改变,外模式和应用程序不变B.概念模式改变,内模式不变

C.内模式改变,概念模式不变D.内模式改变,外模式和应用程序不变7、数据库中,数据的物理独立性是指(C )。

A.数据库与数据库管理系统的相互独立B.用户程序与DBMS 的相互独立

C.用户的应用程序与存储在磁盘上的数据库中的数据是相互独立

D.应用程序与数据库中数据的逻辑结构相互独立

8、数据库(DB)、DBMS、DBS 三者之间的关系(B )。

A.DB 包括DBMS 和DBS B.DBS 包括DB 和DBMS

C.DBMS 包括DB 和DBS D.DBS 与DB 和DBMS 无关

9、数据库系统中,用(D )描述全部数据的整体逻辑结构。

A.外模式B.存储模式C.内模式D.概念模式

10、数据库系统中,用户使用的数据视图用(A )描述,它是用户与数据库之间的接口。

A.外模式B.存储模式C.内模式11、数据库系统中,物理存储视图用(C )描述。D.概念模式

A.外模式B.用户模式C.内模式D.概念模

11、数据库系统达到了数据独立性是因为采用了( D )。

A.层次模型B.网状模型C.关系模型D.三级模式结构两级映射

13、下列语言中,不是宿主语言的是(C )。

A.C B.FORTRAN C.SQL D.COBOL

14、数据库系统中,负责物理结构与逻辑结构的定义和修改的人员是(A )。

A.数据库管理员B.专业用户C.应用程序员D.最终用户

15、数据库系统中,使用专用的查询语言操作数据的人员是(B )。

A.数据库管理员B.专业用户C.应用程序员D.最终用户

16、数据库系统中,使用宿主语言和DML 编写应用程序的人员是(C )。

A.数据库管理员B.专业用户C.应用程序员D.最终用户

17、当关系由多个侯选码时,则选定一个作为主码,但若主码为全码时应包含(D )。

A.单个属性B.两个属性C.多个属性D.全部属性

18、在基本的关系中,下列说法正确的是(C )。

A.行列顺序有关B.属性名允许重名

C.任意2 个元组不允许重复D.列是非同质的

19、关系代数的5 个基本操作是(D )。

A.并、交、差、笛卡儿积、除法B.并、交、选取、笛卡儿积、除法

C.并、交、选取、投影、除法D.并、差、选取、笛卡儿积、投影

20、4 元关系R 为:R(A,B,C,D),则(C )。

A.πA, C(R)为取属性值为A,C 的两列组成B.πA,C(R)为取属性值

为1、3 的两列组成

C.π1,3(R)和πA,C(R)是等价的

D.π1,3(R)和πA,C(R)是不等价的

21、δ3<'2'(S)表示(B )。

A.表示从S 关系中挑选3 的值小于第二个分量的元组B.表

示从S 关系中挑选第三个分量的值小于’2’的元组

C.表示从S 关系中挑选第三个分量的值小于第二个分量的元组

D.δ3<'2'(S)是向关系垂直方向的运算

22、R 为4 元关系R(A,B,C,D),S 为三元关系S(B,C,D),R 与S 全连接成的结果集是(C )元关系。

A.4 B.3 C.7 D.6

23、R 为4 元关系R(A,B,C,D),S 为三元关系S(B,C,D),R 与S 自然连接成的结果集是

( A )元关系。

A.4 B.3 C.7 D.6

24、关系模式S(A,B,C,D)代数中的δ3<'2'(S)等价于(A )。

A.SELECT * FROM S WHILE C<'2'B.SELECT B, C FROM S WHILE C<'2'

C.SELECT B, C FROM S HA VING C<'2'D.SELECT * FROM S WHILE '3'

25、笛卡尔积是(B )进行运算。

A.向关系的垂直方向B.向关系的水平方向

C.即向关系的水平方向也向关系的垂直方向

D.先向关系的垂直方向,然后在向关系的水平方向

26、自然连接是(B )进行运算。

A.向关系的垂直方向B.即向关系的水平方向也向关系的垂直方向

C.向关系的水平方向D.先向关系的垂直方向,然后在向关系的水平方

27、从E-R 模型关系向关系模型转换时,一个M:N 联系转换为关系模式时,该关系模式的关键字是

( C )。

A.M 端实体的关键字B.N 端实体的关键字

C.M 端实体关键字与N 端实体关键字组合D.重新选取其他属性

28、在关系R(R#,RN,S#)和S(S#,SN,SD)中,R 的主码是R#,S 的主码是S#,则S#在R 中

称为(A )。

A.外码B.候选码C.主码D.超码

29、设学生关系模式为:学生(学号、姓名、年龄、性别、成绩、专业),则该关系模式的主键是( C )。

A.姓名B.学号,姓名C.学号D.学号,姓名,年龄

30、在视图上不能完成的操作是(C )。

A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图

31、设关系模式R(U,F),U 为R 的属性集合,F 为U 上的一种函数依赖,则对R(U,F)而言,如

X→Y 为F 所蕴涵,且Z U,则XZ→YZ 为F 所蕴涵。这是函数依赖的(D)

A.传递律B.合并规则C.自反律D.增广律

32、在R(U)中,如果X→Y,并且对于X 的任何一个真子集X',都有X' Y,则(B )。

A.Y 函数依赖于X B.Y 对X 完全函数依赖C.X 为U 的候选码D.R 属于2NF

33、X A i 成立是X A1A2…A k 成立的(C )。

A.充分条件B.必要条件C.充要条件D.既不充分也不必要

34、设一关系模式是:运货路径(顾客姓名,顾客地址,商品名,供应商姓名,供应商地址),则该关系

模式的主键是(C )。

A.顾客姓名,供应商姓名; B.顾客姓名,商品名

C.顾客姓名,商品名,供应商姓名D.顾客姓名,顾客地址,商品名

35、关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只

有一名学生,则一下叙述中错误的是(C )。

A.(学号, 课程号)和(课程号, 名次)都可以作为候选键B.关系模式属于第三范试c.只有(学号, 课程号)能作为候选键D.关系模式数据BCNF

36、S QL 语言具有两种使用方式,分别称为交互式SQL 和( C )。

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL

37、关系数据库设计理论中,起核心作用的是(C )。

A.范式B.模式设计C.数据依赖D.数据完整性

38、概念结构设计阶段得到的结果是(B )。

A.数据字典描述的数据需求B.E-R 图表示的概念模型

C.某个DBMS 所支持的数据模型D.包括存储结构和存取方法的物理结构

39、不允许任何其他事务对已锁定目标再加任何类型锁的锁是(A )。

A.共享锁B.排它锁C.共享锁或排它锁D.以上都不是

40、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括(C )。

A.数据字典、视图、数据库后备副本B.数据字典、应用程序、日志文件

C.日志文件、数据库后备副本D.数据字典、应用程序、审计档案二、填空题

1、数据库与文件系统的根本区别是数据结构化。

2、在文件系统阶段,数据管理的三个主要缺陷是数据的冗余度高、数据的不一致性和数据的联系

弱。

3、物理数据独立性是指数据库的物理结构改变时,尽量不影响整体逻辑结构、用户的逻辑结构以及应

用程序。

4、逻辑数据独立性是数据库的整体逻辑结构改变时,尽量不影响用户的逻辑结构以及应用程序。

5、数据库系统提供的数据控制功能主要包括数据完整性控制、数据安全性控制、数据库的恢复和

并发控制。

6、数据库系统与文件管理系统相比较数据的冗余度低,数据共享性高。

7、用户与操作系统之间的数据管理软件是数据库管理系统(DBMS) 。

8、根据不同的数据模型,数据库管理系统可以分为层次型、网状型、关系型

9、数据模型应当满足比较真实地描述现实世界、容易为人所理解和便于在计算机上实现三方面的

要求。

10、现实世界中,事物的个体在信息世界中称为实体,在机器世界中称为记录。

11、现实世界中,事物的每一个特性在信息世界中称为属性,在机器世界中称为字段(数据项) 。

12、能唯一标识实体的属性集,称为码。

13、数据描述的两种形式是物理数据描述和逻辑数据描述。其中物理数据描述是指数据在存储设备

上的存储方式;逻辑数据描述是指程序员或用户用以操作的数据形式。

14、属性的取值范围称为该属性的域。

15、两个不同实体集的实体间有一对一、一对多和多对多三种情况联系。

16、表示实体类型和实体间联系的模型,称为概念模型,最著名、最为常用的概念模型是ER 模型。

17、常用的结构数据模型有层次模型、网状模型和关系模型。

18、数据模型的三要素包含数据结构、数据操纵和完整性约束三部分。

19、在E-R 图中,用方框表示实体类型;用菱形表示联系类型;用椭圆表示实体类型和联系类型的

属性。

20、用树型结构表示实体类型及实体间联系的数据模型称为层次模型。在该模型中,上一层记录类型和

下一层记录类型间的联系是一对多。

21、用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。

22、用二维表格表示实体类型及实体间联系的数据模型称为关系模型。

23、数据库的体系结构分为外模式、内模式和内模式三级。

24、DBMS 提供了三级模式和两级映象功能,保证了数据库系统具有较高的数据独立性。

25、在数据库的三级模型中,单个用户使用的数据视图的描述,称为外模式(用户模式、子模式) ;全局数

据视图的描述,称为概念模式(模式) ;物理存储数据视图的描述,称为内模式。26、数据独立性是指应用程序和数据之间相互独立,不受影响。

27、数据独立性分成逻辑独立性和物理独立性两级。

28、数据库管理系统(DBMS)提供DML(数据操纵语言)实现对数据库中数据的检索和更新等操作。

29、数据库系统(DBS)是由数据库、硬件、软件、和数据库用户四部分组成。

30、DBS 中最重要的软件是DBMS ;最重要的用户是DBA 。

31、采用了数据库技术的计算机系统称为DBS。

32、数据库用户分为四类,分别是DBA 、专业用户、应用程序员和最终用户。

33、DBS 中负责数据库物理结构与逻辑结构的定义和修改的人员,称为DBA ,使用宿主语言和DML 编

写应用程序的人员,称为应用程序的人员,使用应用程序对数据库进行操作的人员,称为最终用户。

34、数据库管理员DBA 与DBMS 的界面是数据库模式;专业用户与DBMS 的界面是数据库查询。

35、应用程序员与DBMS 的界面是子模式;最终用户和DBMS 的界面是应用界面。

36、关系模型由关系的数据结构、关系的操作集合、关系的完整性约束三部分组成。

37、关系的完整性分为实体完整性、参照完整性、用户定义完整性三类。

38、关系代数运算中并、差、笛卡儿积、投影和选择是5 个基本关系运算,其他运算可以从基本

的运算中导出。

39、关系代数的连接运算中当θ为“=”的连接称为等值连接,且当比较的分量是相同的属性组时,则

称为自然连接。

40、关系运算主要有关系代数运算、元组演算、域演算三种,在关系的表达能力上等价的是可以相

互转换。

41、SQL 语言的功能包括数据查询、数据操纵、数据定义和数据控制。

42、SQL 以同一种语法格式,提供自含式和嵌入式两种使用方式。

43、关系数据库是以关系模型为基础的数据库,利用关系描述现实世界,一个关系既可以描述一个实

体及属性,也可以描述实体之间的联系。

44、在关系数据库中,二维表称为一个关系,表的每一行称为元组,表的每一列称为属性。

45、数据完整性约束分为静态约束和动态约束两类。

46、关系数据库设计理论,主要包括三个方面内容:数据依赖、范式和模式设计方法。其中数据依

赖起着核心的作用。

54、X→Y 是模式R 的一个函数依赖,在当前值r 的两个不同元组中,如果X 值相同,就一定要求Y 值

也相同。也就是说,对于X 的每一个具体值,都有Y 唯一的具体值与之对应。

55、设F 是关系模式R 的一个函数依赖集,X,Y 是R 的属性子集,如果从F 中的函数依赖也能够推

X→Y ,则称F 逻辑蕴涵X→Y,记为F 逻辑蕴涵X→Y 。被F 逻辑蕴涵的函数依赖的全体构成的集合,称为 F 的闭包(函数依赖的闭包) ,记作F+ 。

三、名词解释

1、域、关系、元组、属性

答:域:域是一组具有相同数据类型的值的集合。

关系:在域D1,D2,…,Dn 上笛卡尔积D1×D2×…×Dn 的子集称为关系,表示为R(D1,D2,…,

Dn)

元组:关系中的每个元素是关系中的元组。

属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了

加以区分,必须对每列起一个名字,称为属性(Attribute)。

2、模式、内模式、外模式

答:(1)外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用

的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用研究有关的数据的逻辑表示。

(2)模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。

(3)内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据库的物理结构和存储方式的

描述。

3、候选码、主码、外码

答:候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。

主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。

外部码:设F 是基本关系R 的一个或一组属性,但不是关系R 的码,如果F 与基本关系S 的主码

Ks 相对应,则称F 是基本关系R 的外部码(Foreign key),简称外码。

基本关系R 称为参照关系(Referencing relation),基本关系S 称为被参照关系(Referenced relation)

或目标关系(Target relation)。关系R 和S 可以是相同的关系。

4、函数依赖、部分函数依赖、完全函数依赖、传递函数依赖

答:函数依赖:设R (U)是一个关系模式,U 是R 的属性集合,X 和Y 是U 的子集。对于R (U)的任意

一个可能的关系r,如果r 中不存在两个元组,它们在X 上的属性值相同,而在Y 上的属性值不同,则

“X 函数确定Y”或“Y 函数依赖于X”,记作X Y。

完全函数依赖、部分函数依赖:在R(U)中,如果X Y,并且对于X 的任何一个真子集X,都有

X′Y,则称Y 对X 完全函数依赖;若X Y,但Y 不完全函数依赖于X,则称Y 对X 部分函数依赖。

传递依赖:在关系R (U)中,如果X Y(Y X),Y X,Y Z,则称Z 对X 传递函数依赖。

四、SQL语言

(一)设学生-课程数据库有如下关系表,请用SQL 完成下面的查询及数据操纵

STUDENT(SNO,SNAME,SEX,BIRTHDAY,ADDRESS,TELEPHONE);

//学生(学生号,学生名,性别,出生日期,家庭住址,联系电话)

COURSE(CNO,CNAME,LHOUR,CREDIT);

//课程(课程号,课程名,学时,学分)

SC_SCORE(SNO,CNO,GRADE);

//学生选课(学生号,课程号,成绩)

1、查询学生学号、姓名、性别、出生日期;(学生表的投影)

SELECT SNO, SNAME, SEX, BIRTHDAY FROM STUDENT ;

2、查询所有女生的学号、姓名及家庭住址;(学生表的选择)

SELECT SNO, SNAME, ADDRESS FROM STUDENT WHERE SEX='女' ;

3、查询1980 年以前出生的学生学号、姓名、性别、出生日期;(学生表的选择与投影)

SELECT SNO, SNAME, SEX, BIRTHDAY FROM STUDENT WHERE BIRTHDAY<'1980-01-01' ;

SELECT SNO, SNAME, SEX, BIRTHDAY FROM STUDENT WHERE Year(BIRTHDAY)<1980 ;

4、查询1979 年到1981 年出生的学生姓名、性别及出生日期;

SELECT SNAME, SEX, BIRTHDAY FROM STUDENT WHERE BIRTHDAY BETWEEN '1979-1-1' AND '1981-12-31';

SELECT SNAME, SEX, BIRTHDAY FROM STUDENT WHERE Year(BIRTHDAY) BETWEEN 1979 AND 1981;

5、查询所有姓李学生的学号,姓名,住址,电话;(模糊查询)

SELECT SNO, SNAME, ADDRESS, TELEPHONE FROM STUDENT WHERE SNAME LIKE '李%';

6、查询所有不姓李学生的学号,姓名,住址,电话;(模糊查询)

SELECT SNO, SNAME, ADDRESS, TELEPHONE FROM STUDENT WHERE SNAME Not LIKE '李%';

7、查询计算机系所开课程(课程号以CS 开头)的课程号、课程名和学分数;(模糊查询)

SELECT CNO, CNAME, CREDIT FROM COURSE WHERE CNO LIKE 'CS%';

8、查询至少选修一门计算机系课程的女生的姓名;

SELECT DISTINCT SNAME FROM STUDENT, SC_SCORE

WHERE STUDENT.Sno=SC_SCORE.Sno AND CNO LIKE 'CS%' AND SEX='女';

9、查询学生选修课程的成绩:学生名,课程名,成绩;(连接查询)

——学生名--STUDENT 表中;课程名_COURSE;成绩:SC_SCORE;——涉及了多张表,表的连接SELECT SNAME, CNAME, SCORE FROM STUDENT, COURSE, SC_SCORE

WHERE STUDENT.SNO=SC_SCORE.SNO AND SC_http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO=http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO;

10、查询学生选修课程总分(SUM(SCORE) )和课程数(COUNT(*) );(统计查询)——统计:聚集

函数;GROUP BY SNO;——成绩表:SC_SCORE

SELECT SNO, SUM(SCORE), COUNT(*) FROM SC_SCORE GROUP BY SNO;

11、分别统计男、女生的人数;(统计查询)

——使用聚集函数就要用GROUP BY; 检索的结果列只能出现聚集列与GROUP BY 后出现的列;

SELECT SEX, COUNT(*) FROM STUDENT GROUP BY SEX ;

12、按课程统计每门课程的平均分、总分、最高分、最低分;(统计查询)

SELECT CNO,AVG(SCORE),SUM(SCORE),MAX(SCORE),MIN(SCORE) FROM SC_SCORE GROUP BY CNO;

13、统计每门课程的选课人数、最高分、最低分和总分;(统计查询)

SELECT CNO , COUNT(CNO),MAX(SCORE),MIN(SCORE),SUM(SCORE) FROM SC_SCORE GROUP BY CNO;

14、统计学生表中的最大出生日期,最小出生日期;(统计查询)

SELECT MAX(BIRTHDAY), MIN(BIRTHDAY) FROM STUDENT ;

15、查询李民选修课程的总成绩;(统计查询)

SELECT SNAME, SNM(SCORE) FROM STUDENT, SC_SCORE

WHERE STUDENT.sno=sc_SCORE.sno AND SNAME='李民'

GROUP BY SNAME;

16、查询李民选修课程的总成绩、平均成绩、选修的课程数(统计查询)

SELECT SNAME,sum(SCORE),avg(SCORE),count(*)

FROM STUDENT,sc_SCORE

WHERE STUDENT.sno=sc_SCORE.sno AND STUDENT.SNAME='李民'

GROUP BY SNAME;

17、查询所有课程成绩均在80 分以上的学生的姓名、学号;(嵌套查询)

SELECT SNAME ,SNO FROM STUDENT

WHERE SNO IN ( SELECT SNO FROM SC_SCORE GROUP BY SNO HAVING MIN(SCORE) >=80 );

18、向sta 表插入新生记录('20010649','张明','男',’汉族’,'1982-10-8');(插入操作)

INSERT INTO sta ( sno, SNAME, sex, birthday )

VALUES ( '20010649', '张明', '男',’汉族’,'1982-10-8' ) ;

19、将学生表中所有女生的出生日期加上一年;(更新操作)

UPDATE STUDENT

SET BIRTHDAY= BIRTHDAY +365 WHERE SEX=’女’;

21、将所有选修"计算机基础"课程的学生成绩下降20%,再另增加10 分;(带子查询的更新操作)

UPDATE SC_SCORE

SET SCORE=SCORE-SCORE*0.2+10

WHERE CNO IN

( SELECT CNO FROM COURSE

WHERE CNAME='计算机基础' );

22、删除学号为20010649 的学生信息;(删除操作)

DELETE FORM SC_SCORE WHERE SNO=’20010649’ ;

DELETE FROM STUDENT WHERE SNO='20010649';

23、删除无人选修的课程。(带子查询删除操作)

DELETE FROM COURSE

WHERE CNO NOT IN ( SELECT CNO FROM SC_SCORE );

24、创建名为S_G 视图,用于查询每个学生的平均成绩,要求包括:学号,姓名及平均成绩;

CREATE VIEW S_G(SNO, SNAME, GAVG)

AS

SELECT SNO, SNAME, AVG(GRADE)

FROM STUDENT, SC_SCORE

WHERE STUDENT.SNO=SC_SCORE GROUP BY SNO ;

25、将查询STUDENT 表的权限授予WangLin;

GRANT SELECT ON TABLE SUTDENT TO WangLin;

(二)设学生课程数据库有如下关系表,请用SQL语言完成下列要求的查询及数据操纵STUDENT(SNO,SNAME,SEX,BDATE,HEIGHT);

//学生(学生号,学生名,性别,出生日期,身高)

COURSE(CNO,CNAME,LHOUR,CREDIT,SEMESTER);

//课程(课程号,课程名,学时,学分,学期)

SC(SNO,CNO,GRADE);

//选课(学生号,课程号,成绩)

1、查询身高大于1.80 米的男生的学号和姓名;

SELECT SNO, SNAME FROM STUDENT WHERE HEIGHT>1.8 AND SEX=’男’;

2、查询计算机系所开课程(课程号以CS 开头)的课程号和学分数;

SELECT CNO, CREDIT FROM COURSE WHERE CNO LIKE ‘CS%’;

3、查询至少选修一门计算机系课程的女生的姓名;

SELECT SNAME FROM STUDENT,SC

WHERE (STUDENT.SNO=SC.SNO) AND (SEX=’女’) AND CNO LIKE ‘CS%’;

4、查询每门课程选课的学生人数、最高成绩、最低成绩和平均成绩;

SELECT COUNT(SNO), MAX(GRADE), MIN(GRADE), AVG(GRADE)

FROM SC GROUP BY CNO;

5、查询所有课程的成绩都在80 分以上的学生的姓名、学号,并按学号升序排列;

SELECT SNAME, SNO FROM STUDENT

WHERE SNO IN ( SELECT SNO FROM SC GROUP BY SNO HAVING GRADE>=80 )

ORDER BY SNO;

6、查询缺成绩学生的姓名、缺成绩的课程号及其学分;

SELECT SNAME, CNO, CREDIT

FROM STUDENT, SC, COURSE

WHERE STUDENT.SNO=SC.SNO AND http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO=http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO AND GRADE IS NULL;

7、查询李芳选修课程的总成绩;

SELECT SNAME, SUM(GRADE) FROM STUDENT, SC

WHERE (STUDENT.SNO=SC.SNO) AND SNAME=’李芳’GROUP BY SNAME; 8、将所有选修“操作系统”课程的学生成绩下降20%,再另增加10 分;

UPDATE SC

SET GRADE=GRADE-GRADE*0.2+10

WHERE CNO IN ( SELECT CNO FROM COURSE WHERE CNAME=’操作系统’ ) ; 9、请向

STUDENT 表中出入一条数据(学号:982049;姓名:张明;性别:男;出生日期:1988-12-/01;身高:

1.78);

INSERT INTO STUDET (SNO,SNAME,SEX,AGE,HEIGHT)

VALUES (‘982049’,’张明’,’男’,’1988-12-01’, 1.78);

INSERT INTO SC(SNO,CNO,GRADE) VALUES (982049,’CS-110’,78);

10、在STUDENT 和SC 关系中,删去SNO 以‘91’开头的所有记录;

DELETE FORM SC WHERE SNO LIKE ’91%’ ;

DELETE FROM STUDENT WHERE SNO LIKE ’91%’ ;

11、创建一个名为S_V 视图,要求包含:学号、姓名、选课的课程名和学分;

CREATE VIEW S_V( SNO, SNAME, CNAME, CREDIT)

AS

SELECT SNO, SNAME, CNAME, CREDIT

FROM STUDENT, SC, COURSE

WHERE STUDENT.SNO=SC.SNO AND http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO=http://m.wendangku.net/doc/c09aad7559fb770bf78a6529647d27284a733774.htmlO ;

12、将修改SC 表成绩的权限授予张山;

GRANT UPDATE(GRADE) ON TABLE SC TO 张三;

(三)设零件供应数据库的关系模式如下,请用SQL语言完成下列要求的查询及数据操纵S(SNO,SNAME,STATUS,CITY);//供应商

P(PNO,PNAME,COLOR,WEIGHT);//零件

J(JNO,JNAME,CITY);//工程SPJ(SNO,PNO,JNO,QTY);//供应关

请完成下列查询:

1)找出所有供应商的姓名和所在城市。

SELECT SNAME,CITY FROM S;

2)找出所有零件的名称、颜色、重量。

SELECT PNAME,COLOR,WEIGHT FROM P;

3)找出使用供应商S1 所供应零件的工程号。

SELECT JNO

FROM SPJ

WHERE SNO=‘S1’;

4)找出工程项目J2 使用的各种零件的名称及其数量。

SELECT PNAME,QTY

FROM P,SPJ

WHERE P.PNO=SPJ.PNO AND JNO=‘J2’;

5)找出上海厂商供应的所有零件号码。

SELECT PNO

FROM S,SPJ

WHERE S.SNO=SPJ.SNO AND CITY=‘上海’;

6)找出使用上海产的零件的工程名称。

SELECT JNAME

FROM S, SPJ, J

WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND CITY=‘上海’;

7)找出没有使用天津产的零件的工程号。

FROM J

WHERE NOT EXISTS

( SELECT *

FROM SPJ

WHERE SPJ.JNO=J.JNO AND SNO IN

( SELECT SNO

FROM S

WHERE CITY=‘天津’));

8)把全部红色零件的颜色改成蓝色。

UPDA TE P

SET COLOR=‘蓝色’

WHERE COLOR=‘红色’

9)由S5 供应给J4 的零件P6 改为由S3 供应,请做必要的修改。

UPDA TE SPJ

SET SNO=‘S3’

WHERE JNO=‘J4’ AND PNO=‘P6’ AND SNO=‘S5’

10)从供应商关系中删除S2 的记录,并从供应情况关系中删除相应的记录。

DELETE FROM SPJ

WHERE SNO=‘S2’ ;

DELETE FROM S

WHERE SNO=‘S2’;

11)请将(S2,J6,P4,200)插入供应商情况表。

INSERT INTO SPJ V ALUES(‘S2’, ‘J6’, ‘P4’,200);

12. 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

CREATE VIEW GYQK_VIEW

AS

SELECT SNO,PNO,QTY

FROM SPJ,J

WHERE SPJ.JNO=J.JNO AND JNAME=‘三建’;

(1)找出三建工程项目使用的各种零件代码及其数量

SELECT PNO,QTY

FROM GYQK_VIEW;

(2)找出供应商S1 的供应情况。

FROM GYQK_VIEW

WHERE SNO=‘S1’;

12. 针对习题3 建立的表,用SQL 语言完成下列各题:

(1)把对表S 的INSERT 权限授予用户张勇,并允许他再将此权限授予其他用户。

GRANT INSERT ON TABLE S TO 张勇

WITH GRANT OPTION;

(2)把查询SPJ 表和修改QTY 属性的权限授予用户李天明。

GRANT SELECT,UPDA TE(QTY) ON TABLE SPJ TO 李天明;五、问

答题

1、试述实现数据库安全性控制的常用方法?答:实现数据库安全性控制的常用方法有:

(1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用

户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

(2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有

未被授权的人员无法存取数据。

(3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐

藏起来,从而自动地对数据提供一定程度的安全保护。

(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA

可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间

和内容等。

(5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的

内容。

2、什么是数据库中的自主存取控制方法和强制存取控制方法?

答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止了不合法用户对数据库的存取。

强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

3、试述事务的概念及事务的四个特性。恢复技术能保证事务的哪些特性?答:事务是用户定义的一个数

据库操作序列,这些操作要么全做要么全不做,事务是一个不可分割的工作单元。

事务具有4 个特性:原子性、一致性、隔离性和持续性。

原子性:事务是数据库的逻辑工作单位,事务中包括的操作要么都做,要么都不做。一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被除数其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久生效的。接下来的其他操作或故障不应该对其执行结果有任何影响。

恢复技术能保证事务的原子性、持久性。

4、数据库运行可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?

答:数据库系统中可能发生各种各样的故障,大致可分为:事务内部故障;系统故障;介质故障;计算机

病毒。

事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。

5、数据库恢复的基本技术有哪些?

答:数据转储和登录日志文件是数据库恢复的基本技术。

当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的

某个一致性状态。

6、什么是日志文件?为什么要设立日志文件?

答:(1)日志文件是用来记录事务对数据库的更新操作的文件。

(2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。

7、登记日志文件时为什么必须先写日志文件,后写数据库?

答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可

能在这两个操作之间发生故障,即这两个写操作只完成了一个。

如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先

写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,并不会影响数据库的正确性。

所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

8、并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?

答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。

(1)丢失修改(Lost Update):两个事务T1 和T2 读入同一数据并修改,T2 提交的结果破坏了(覆盖了)T1 提交的结果,导致T1 的修改被丢失。

(2)不可重复读(Non-Repeatable Read):不可重复读是指事务T1 读取数据后,事务T2 执行更新操作,使T1 无法再现前一次读取结果。

(3)读“脏”数据(Dirty Read):读“脏”数据是指事务T1 修改某一数据,并将其写回磁盘,事务T2 读取同一数据后,T1 由于某种原因被撤销,这时T1 已修改过的数据恢复原值,T2 读到

的数据就与数据库中的数据不一致,则T2 读到的数据就为“脏”数据,即不正确的数据。避免不一

致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,

例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。

9、什么是封锁?基本的封锁类型有几种?试述它们的含义。

答:封锁就是事务T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后

事务T 就对该数据对象有了一定的控制,在事务T 释放它的锁之前,其他的事务不能更新此数据对象。

封锁是实现并发控制的一个非常重要的技术。

基本的封锁类型有两种:排它锁(Exclusive Locks,简称X 锁) 和共享锁(Share Locks,简称S 锁)。

排它锁又称为写锁。若事务T 对数据对象A 加上X 锁,则只允许T 读取和修改A,其他任何事务都不能再对A 加任何类型的锁,直到T 释放A 上的锁。这就保证了其他事务在T 释放A 上的锁之前不能再读取和修改A。

共享锁又称为读锁。若事务T 对数据对象A 加上S 锁,则事务T 可以读A 但不能修改A,其他事务只能再对A 加S 锁,而不能加X 锁,直到T 释放A 上的S 锁。这就保证了其他事务可以读A,但在T 释放A 上的S 锁之前不能对A 做任何修改。

10、如何用封锁机制保证数据的一致性?

答:数据库管理系统DBMS 要求事务在对数据对象进行读、写操作之前首先对该数据执行封锁操作,这样,当其他事务请求对该数据对象加锁时将被拒绝,只能等待。DBMS 按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可避免丢失修改、不可重复读和读“脏”数据等数据不一致性。

六、数据库设计

P38 12

学校

- 系 系 系 - 班 班级

教研室 1

n

学生

选修 系

- 室 选修 课程 指导 室

- 教 教员

1 1

1

1 n

n l n

n 1 k

m

仅列出主要属性。一对多联系将一方的主键加入多方的关系模式中,多对多联系单独转换为一关系模式。 系( 系编号, 系名, 电话, …… )

班级( 班级编号, 班级名, …… , 系编号 )

教研室( 教研室编号, 教研室名, ……, 系编号 )

学生( 学号, 姓名, 性别, ……, 班级编号, 导师职工号 ) 教

员( 职工号, 姓名, 职称, ……, 系编号 ) 课程( 课程号, 课

程名, ……) 选修( 学号, 课程号, 成绩 )

P234 12 对应 P38 的 13 题

产品( 产品编号, 产品名称, ……,仓库号 ) 零件

( 零件号, 零件名称 )

原材料( 原材料编号, 原材料名称, 类别, 仓库编号, 库存量 ) 仓库

( 仓库编号, 仓库名 )

产品组成(产品号, 零件号, 使用零件量)

零件制造(零件号, 原材料编号, 使用原材料量) 零件储存

( 零件号, 仓库号, 存储量 )

产品

组成

零件

仓库

n

材料 储存

制 造 存放 n

m k

1 m

l

n

P234 12 对应 P38 的 12 题

书( 书号, 书名, 作者, 出版社 )

借书( 读者号, 书号, 借出日期, 应还日期 ) 或:

借书( 序号, 借书证号, 书号, 借出日期, 应还日期, 备注信息 )

说明:这里以“序号”作为借书的主键,主要是针对如下特殊的借书情况:某读者借了某本书阅读完后归还给图书馆了,但过了一段时间后刚巧又借了同一本书——这样(借书证号,书号)就不能作为借书关系模式的主键了,这里的“序号”是自动生成的编号,肯定不会重复。“备注信息”用于记录还书超期或图书丢失等相关理陪信息。 读者

借书 书

1

m

读者号 姓名

性别 年龄 地址 工作单位

借出日期 应还日期

书号 书名 作者 出版社

读者 ( 读者号

, 姓名 , 性别 , 年龄 , 地址 , 工作单位 )

相关推荐
相关主题
热门推荐