1、-_数据库系统概论 2011年期末考试复习题一、选择题 第(1)至(3)题基于以下的叙述:有关系模式A(C,T,H,R,S) ,基中各属性的含义是: C:课程T :教员H:上课时间R:教室S:学生 根据语义有如下函数依赖集: F=CT, (H, R)C, (H,T)R , (H,S)R 1、关系模式A的码是(D) A. C B. (H,R) C.(H,T) D.H,S) 2、关系模式A的规范化程度最高达到(B) A. 1NF B. 2NF C. 3NFD. BCNF 3、现将关系模式 A分解为两个关系模式 A1(C,T) ,A2(H,R ,S) ,则其中A1的规范化程度达到(D) A. 1NF
2、 B. 2NF C. 3NF D. BCNF 4.设有关系R(A,B ,C)和S(C,D) 。与SQL语句 select A,B,D from R,S where R.C=S.C 等价的关系代数表达式是(B) A. R.C=S.C(A,B,D(RS) B. A,B,D(R,C= S.C (RS) C. R.C=S.C(A,B R)(DS) D. R,C=S.C(D(A,BR)S) 5、设关系R和关系S的元数分别是3和4,关系T是 R与S的广义笛卡尔积,即:T=RS,则关系T的元数是(C) A. 7 B. 9 C. 12 D. 16 6、数据库设计阶段分为(B) A. 物理设计阶段、逻辑设计阶段
3、、编程和调试阶段 B. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 C. 方案设计阶段、总体设计阶段、个别设计和编程阶段 D. 模型设计阶段、程序设计阶段和运行阶段 7、设 U是所有属性的集合,X、Y 、Z 都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,不正确的是(C) A. 若XY,则X Z B. 若 XY,则XY C. 若XY,且YY,则XY D. 若 Z=,则XY 8、查询优化策略中,正确的策略是(D)A尽可能早地执行笛卡尔积操作 B尽可能早地执行并操作C尽可能早地执行差操作 D尽可能早地执行选择操作 9、语句delete from sc 表明(A)A. 删除
4、sc中的全部记录 B. 删除基本表scC. 删除基本表sc中的列数据 D. 删除基本表sc中的部分行 10、在 DB应用中,一般一条SQL 语句可产生或处理一组记录,而 DB主语言语句一般一次只能处理一条记录,其协调可通过哪种技术实现(B) A. 指针 B. 游标 C. 数组 D. 栈11、五种基本关系代数运算是 ( A ) A. ,-,和 B. ,-,和 C. ,和 D. ,和 12、下列聚合函数中不忽略空值(null) 的是 ( C ) A. SUM (列名) B. MAX (列名) C. COUNT ( * ) D. AVG (列名) 13、在数据库设计中,将ER图转换成关系数据模型的过
5、程属于( B)-_ A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段D. 物理设计阶段 第(14)至(16)题是基于如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息 表关系DEPT的主键是部门号。 14、若执行下面列出的操作,哪个操作不能成功执行?(D) A. 从EMP中删除行(010, 王宏达,01,1200) B. 在EMP中插入行(102, 赵敏,01,1500) C. 将EMP中雇员号=056的工资改为1600元 D. 将EMP中雇员号=101的部门号改为05 15、若执行下面列出的操作,哪个操作不能成功执行?(C) A. 从DEPT 中删除部门号=03的行 B
6、. 在DEPT中插入行(06 , 计划部 , 6号楼) C. 将DEPT中部门号=02的部门号改为10 D. 将DEPT中部门号=01的地址改为5号楼 16、在雇员信息表关系EMP中,哪个属性是外键(foreign key)?(C)A. 雇员号 B. 雇员名 C. 部门号 D. 工资 17、在SQL语言的SELECT语句中,实现投影操作的是哪个子句?(A) A. select B. from C. Where D. group by 18、设属性 A是关系R的主属性,则属性 A不能取空值(NULL) 。这是(A) A. 实体完整性规则 B. 参照完整性规则 C. 用户定义完整性规则 D. 域完
7、整性规则填空题 1、用树型结构表示实体类型及实体间联系的数据模型称为 层次模型。 2、关系数据库的关系演算语言是以谓词演算为基础的 DML语言。 3、从数据库管理系统角度看,数据库系统通常采用三级模式结构,即数据库系统由内模式、外模式和 模式 组成。 4、RDMBS查询处理可分为查询分析、查询检查、 查询优化和查询执行 四个阶段。 5、概念结构设计是对现实世界的一种抽象,一般有 分析 、聚集、概括共三种抽象机制。 6、物理优化就是要选择高效合理的操作算法或 存取路径 以求得优化的查询计划。 7、将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,概念结构设计通常有四类方法:
8、自顶向上、自底向下、逐步扩张和混合策略。 8、在关系模式R 中若不存在这样的码 X,属性组Y及非属性组Z(Z 不是Y的子集)使得XY,YZ成立,且YX,则称R3NF。简答题 1、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?答:数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等) ,由数据库管理员对各个外模式模式的映像做相应改变,可以使外模式保持不变。应用程序是依-_据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改
9、变了,由数据库管理员对模式内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 2、数据库的完整性概念与数据库的安全性概念有什么区别和联系?答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e InGarba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安
10、全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3、试给出多值依赖、和4NF的定义。 4、试给出函数依赖、BCNF的定义。 5、简述嵌入式SQL语句与主语言之间的通信。首先用 SQL 通信区(SQL Communication Area,简称 SQLCA)向主语言传递 SQL 语句的执行状态信息,使主语言能够据此控制程序流程;在程序运行中,主语言向 SQL 语句提供参数,使用主变量(host variable)输入数据;同时,程序把 SQL 语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了 SQL 语言的过
11、程化工作。SQL 语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到 SQL 通信区 SQLCA 中。应用程序从 SQLCA 中取出这些状态信息,据此决定接下来执行的语句。 6、试述RDBMS查询优化的一般步骤。( l )把查询转换成某种内部表示,通常用的内部表示是语法树。 ( 2 )把语法树转换成标准(优化)形式。即利用优化算法,把原始的语法树转换成优化的形式。 ( 3 )选择低层的存取路径。 ( 4 )生成查询计划,选择代价最小的。 7、试述RDBMS查询优化的一般准则。答:下面的优化策略一般能提高查询效率: ( l )选择运算应尽可
12、能先做; ( 2 )把投影运算和选择运算同时进行; ( 3 )把投影同其前或其后的双目运算结合起来执行; ( 4 )把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算; ( 5 )找出公共子表达式; ( 6 )选取合适的连接算法。 8、什么是数据库的逻辑结构设计?试述其设计步骤。答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l )将概念结构转换为一般的关系、网状、层次模型; ( 2 )将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换; ( 3 )对数据模
13、型进行优化。 9、数据字典的内容和作用是什么?答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括: ( l )数据项;( 2 )数据结构; ( 3 )数据流; ( 4 )数据存储; ( 5 )处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完盖。设计题1、今有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号)Person(pno, pn
14、ame, page, ptitle, psal, dno)部门 (部门号,名称,经理名,地址,电话号)Depart(dno, dname, dmanager, daddress, dtel)请用SQL的GRANT和REVOKE语句 (加上视图机制)完成以下授权定义或存取控制功能:(1)用户yong对两个表有INSERT 和DELETE 权力。-_GRANT INSERT,DELETE ON Person,DepartTO yong(2)用户liu对职工表有SELECT权力,对工资字段具有更新权力。GRANT SELECT,UPDATE(psal) ON PersonTO liu(3)用户zha
15、ng具有修改这两个表的结构的权力。GRANT ALTER TABLE ON Person,DepartTO zhang;(4)用户yang具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资,并具有给其他用户授权的权力。CREATE VIEW psal ASSELECT Depart.dname,MAX(psal),MIN(psal),AVG(psal)FROM Person,DepartWHERE Person.dno=Depart.dnoGROUP BY Person.dnoGRANT SELECT ON psalTO yang with grant
16、 option ;(5)撤销各用户 yang 所授予的权力REVOKE ALL PRIVILIGES ON Person,Depart FROM YANG; 2、假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号) ,其中职工号为主码;部门(部门号,名称,经理名,电话) ,其中部门号为主码。用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。答:CREATE TABLE DEPT(Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10
17、),PhoneNumber Char(12)CONSTRAINT PK_SC RIMARY KEY(Deptno);CREATE TABLE EMP(Empno NUMBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK ( Aage1000) ; (4)写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于 100元。解:CREATE ASSERTION ASSE8 CHECK(100=ALL(SELECT PRICEFROM SHOP A,SALE B,GOODS CWHERE A.S#=B.S# AND B.G#
18、=C.G# AND AREA=EAST) ) ;或 CREATE ASSERTION ASSE8 CHECK(NOT EXISTS(SELECT *FROM SHOP A,SALE B,GOODS CWHERE A.S#=B.S# AND B.G#=C.G# AND AREA=EAST AND PRICE100) ) ; (5)试写出下列操作的SQL语句: 统计区域名为 “EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE) ,其属性为商品编号、商品名称、销售数量、销售价值。解:SELECT C.G#,GNAME,S
19、UM(QUANTITY)AS SUM_QUANTITY,PRICE*SUM(QUANTITY)AS SUM_VALUEFROM SHOP A,SALE B,GOODS CWHERE A.S#=B.S# AND B.G#=C.G# AND AREA=EASTGROUP BY C.G#,GNAME;(注:SELECT子句中的属性C.G#,GNAME应在分组子句中出现)4、今有一个层次数据库实例,试用子女一兄弟链接法和层次序列链接法画出它的存储结构示意图。-_ 5、请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,
20、出版社。对每本被借出的书存有读者号、借出日期和应还日期。要求:给出E 一R 图,再将其转换为关系模型。答:关系模型为:读者(读者号,姓名,地址,性别书(书号,书名,作者,出版社)借书(读者号,书号,借出日期,年龄,单位)应还日期) 6、设有一个 SPJ数据库,包括S,P,J,SPJ 四个关系模式:供应商(供应商代码,供应商姓名,供应商状态,供应商所在城市)S(SNO,SNAME,STATUS,CITY)-_零件(零件代码,零件名,颜色,重量)P(PNO,PNAME,COLOR。WEIGHT) 工程项目(工程项目代码,工程项目名,工程项目所在城市) J(JNO,JNAME,CITY) 供应情况(
21、供应商代码,零件代码,工程项目代码,供应数量) SPJ(SNO,PNO,JNO,QTY) 试用关系代数和 SQL语言完成下列查询。 (1)求供应工程J1 零件的供应商号码 SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1 (2)求供应工程J1 零件 P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1; (3)求供应工程J1 零件为红色的供应商号码 SNO:SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ PNO=P PNO AND COLOR=红; (4)
22、求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY= 天津 AND COLOR= 红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO); (5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO:由于 VFP 不允许子查询嵌套太深,将查询分为两步A、查询 S1 供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO=S1结果是(P1,P2) ; B、查询哪一个工程既使用 P1 零
23、件又使用 P2 零件。SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2); 7、设有一个SPJ 数据库,包括 S,P ,J,SPJ四个关系模式: 供应商(供应商代码,供应商姓名,供应商状态,供应商所在城市) S(SNO,SNAME,STATUS,CITY) 零件(零件代码,零件名,颜色,重量) P(PNO,PNAME,COLOR。WEIGHT) 工程项目(工程项目代码,工程项目名,工程项目所在城市) J(JNO,JNAME,CITY) 供应情况(供应商代码,零件代码,工程项目代码,供应数量
24、) SPJ(SNO,PNO,JNO,QTY) 试用SQL 语言完成以下各项操作: (1)找出所有供应商的姓名和所在城市。SELECT SNAME,CITY FROM S (2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P (3)找出使用供应商S1所供应零件的工程号码。SELECT DIST JNO FROM SPJ WHERE SNO=S1 (4)找出工程项目J2 使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,PWHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2 (5)找出上海厂商供应的所
25、有零件号码。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海 (6)找出使用上海产的零件的工程名称。SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO-_ (8)把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR=红 (9)由S5供给J4 的零件 P6改为由S3供应。UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6 (10)请将
26、(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES(S2 , J6, P4,200)综合题 1、假设某商业集团数据库中有一关系模式R如下: R (商店编号,商品编号,数量,部门编号,负责人) 如果规定: (1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题: (1) 根据上述规定,写出关系模式R的基本函数依赖;(商店编号,商品编号) 部门编号(商店编号,商品编号) 数量(商店编号,部门编号) 负责人 (2) 找出关系模式 R的候选码;候选码(商店编号,商品编
27、号) (3) 试问关系模式 R最高已经达到第几范式?为什么?1NF,存在部分函数和传递函数依赖。 (4) 如果 R 不属于 3NF,请将 R 分解成 3NF 模式集。R1(商店编号,商品编号,商品库存数量,部门编号) ;R2(商店编号,负责人) 2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,
28、每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)每个关系模式的最小函数依赖集如下:A、学生S (Sno,Sname,Sb
29、irth,Dept,Class,Rno) 的最小函数依赖集如下:Sno、 Sname,Sno、 Sbirth,Sno、 Class,Class、 Dept,DEPT、 Rno传递依赖如下:由于Sno、 Dept,而Dept、 Sno ,Dept、 Rno(宿舍区)所以Sno与Rno之间存在着传递函数依赖。由于Class、 Dept,Dept 、 Class,Dept、 Rno所以Class与Rno之间存在着传递函数依赖。-_由于Sno、 Class,Class、 Sno,Class、 Dept所以Sno与Dept之间存在着传递函数依赖。B、班级C(Class,Pname,Dept,Cnum,C
30、year)的最小函数依赖集如下:Class、Pname,Class、 Cnum,Class、 Cyear,Pname、 Dept.由于Class、 Pname,Pname、 Class,Pname、 Dept所以C1ass与Dept之间存在着传递函数依赖。C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:Dept、Dno,Dno、 Dept,Dno、 Office,Dno、 Dnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:Mname、Myear,M
31、name、 Maddr,Mname、 Mnum该模式不存在传递依赖。(3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class;外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会M候选码:Mname;无外部码;无全码 3、现有一个未规范化的表,包含了项目、部件和部件向项目已提供的数量信息。请采用规范化方法,将该表规范化到3NF要求。答:原表存在的函数依赖关系为:部件号部件名,部件号现有数量,项目代号项目内容,项目代号项目负责人,(项目代号,部件号)已提供数量。关系键为(项目代号,部件号)
32、 。 (2 分)存在部分函数依赖:(项目代号,部件号)p部件名, (项目代号,部件号)p现有数量,(项目代号,部件号)p项目内容, (项目代号,部件号)p项目负责人。 (1 分)消除部分函数依赖,分解得到以下的三个关系模式:部件(部件号,部件名,现有数量)项目(项目代号,项目内容,项目负责人)-_提供(项目代号,部件号,已提供数量)该关系达到 2NF。由于不存在传递函数依赖,也达到 3NF。 (3 分) 4、涉及到学生、教师和课程的关系模式STC(SNo,SN,SA ,TN ,CN ,G),其中6 个属性分别为学生的学号、姓名、年龄、教师的姓名、课程名以及学生的成绩。假设学生有重名,课程名也可
33、能有重名。又假设每个教师只教一门课,但一门课可有几个教师开设。当某个学生选定某门课后,其上课教师就固定了。 (1)写出键码和函数依赖; (2)分解关系模式使之属于 BC 范式。答:1) 键码:SNo,CN和SNo,TN函数依赖:SNo SN,SA (BC 范式违例)TN CN (BC 范式违例)SNo,CN TN,Ga) SNo,CN SN,SASNo,TN Gb) SNo,TN CNc) SNo,TN SN,SA (a,b,c 为部分依赖,可不写)2) STC1(SNo,SN,SA)STC2(TN,CN)STC3(SNo,TN,G)一、单项选择题(本大题共 10 小题,共 30 分)1数据库中,数据的物理独立性是指( )。 PPP