数据库系统概论 2011年期末考试复习题
一、选择题
? 第(1)至(3)题基于以下的叙述:有关系模式A(C,T,H,R,S),基中各属性的含义是:
? C:课程T:教员H:上课时间R:教室S:学生 ? 根据语义有如下函数依赖集:? F={C→T,(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 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(R×S)) ? B. πA,B,D(σR,C= S.C (R×S)) ? 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=R×S,则关系T的元数是(C)
? A. 7 B. 9 C. 12 D. 16 ? 6、数据库设计阶段分为(B)
? A. 物理设计阶段、逻辑设计阶段、编程和调试阶段
? B. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 ? C. 方案设计阶段、总体设计阶段、个别设计和编程阶段 ? D. 模型设计阶段、程序设计阶段和运行阶段
? 7、设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,不正确的是(C)
? A. 若X→→Y,则X→→Z B. 若X→Y,则X→→Y ? C. 若X→→Y,且Y′?Y,则X→→Y′ D. 若Z=Φ,则X→→Y ? 8、查询优化策略中,正确的策略是(D)
A.尽可能早地执行笛卡尔积操作 B.尽可能早地执行并操作 C.尽可能早地执行差操作 D.尽可能早地执行选择操作 ? 9、语句delete from sc 表明(A)
A. 删除sc中的全部记录 B. 删除基本表sc?
C. 删除基本表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图转换成关系数据模型的过程属于(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. 在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. 域完整性规则 填空题
? 1、用树型结构表示实体类型及实体间联系的数据模型称为 层次模型。 ? 2、关系数据库的关系演算语言是以谓词演算为基础的DML语言。
? 3、从数据库管理系统角度看,数据库系统通常采用三级模式结构,即数据库系统由内模式、外模式和 模式 组成。
? 4、RDMBS查询处理可分为查询分析、查询检查、查询优化和查询执行 四个阶段。 ? 5、概念结构设计是对现实世界的一种抽象,一般有分析 、聚集、概括共三种抽象机制。 ? 6、物理优化就是要选择高效合理的操作算法或 存取路径 以求得优化的查询计划。 ? 7、将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,概念结构设计通常有四类方法:自顶向上、自底向下、逐步扩张和混合策略。
? 8、在关系模式R中若不存在这样的码X,属性组Y及非属性组Z(Z不是Y的子集)使得X→Y,Y→Z成立,且YX,则称R∈3NF。
简答题
? 1、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
答:数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据 类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不 变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻 辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了, 由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也 不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三 级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理 独立性。
? 2、数据库的完整性概念与数据库的安全性概念有什么区 别和联系?
答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存
在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的
存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是 不合语义的数据。
? 3、试给出多值依赖、和4NF的定义。 ? 4、试给出函数依赖、BCNF的定义。
? 5、简述嵌入式SQL语句与主语言之间的通信。
首先用SQL通信区(SQL Communication Area,简称SQLCA)向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程;在程序运行中,主语言向SQL语句提供参数,使用主变量(host variable)输入数据;同时,程序把SQL语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了SQL语言的过程化工作。
SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到SQL通信区SQLCA中。应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句。 ? 6、试述RDBMS查询优化的一般步骤。 ( l )把查询转换成
某种内部表示,通常用的内部表示是语法树。 ( 2 )把语法树转换成标准(优化)形式。即
利用优化算法,把原始的语法树转换成优化的形式。 ( 3 )选择低层的存取路径。 ( 4 )生
成查询计划,选择代价最小的。
? 7、试述RDBMS查询优化的一般准则。
答:下面的优化策略一般能提高查询效率: ( l )选择运算应尽可能先做; ( 2 )把投影运
算和选择运算同时进行; ( 3 )把投影同其前或其后的双目运算结合起来执行; ( 4 )把 某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算; ( 5 )找出公共子表
达式; ( 6 )选取合适的连接算法。
? 8、什么是数据库的逻辑结构设计?试述其设计步骤。
答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选 用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l )将概念结构转换
为一般的关系、网状、层次模型; ( 2 )将转换来的关系、网状、层次模型向特定 DBMS 支持
下的数据模型转换; ( 3 )对数据模型进行优化。 ? 9、数据字典的内容和作用是什么?
答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括: ( l )数据项; ( 2 )数据结构; ( 3 )数据流; ( 4 )数据存储; ( 5 )处理过程五个部分。其中数据项是
数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据 结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库 中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过 程中不断修改、充实、完盖。
设计题
1、今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号)Person(pno, pname, page, ptitle, psal, dno)部门 (部门号,名称,经理名,地址,电话号)Depart(dno, dname, dmanager, daddress, dtel)请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
(1)用户yong对两个表有INSERT 和DELETE权力。 GRANT INSERT,DELETE ON Person,Depart TO yong
(2)用户liu对职工表有SELECT权力,对工资字段具有更新权力。 GRANT SELECT,UPDATE(psal) ON Person TO liu
(3)用户zhang具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON Person,Depart TO zhang;
(4)用户yang具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资,并具有给其他用户授权的权力。 CREATE VIEW psal AS
SELECT Depart.dname,MAX(psal),MIN(psal),AVG(psal) FROM Person,Depart
WHERE Person.dno=Depart.dno GROUP BY Person.dno GRANT SELECT ON psal TO yang with grant 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), PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno)); CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
? 3、设某商业集团关于商店销售商品的数据库中有三个基本表:
? 商店SHOP(S#,SNAME,AREA,MGR_NAME)其属性是商店编号,商店名称,区域名,经理姓名。
销售SALE(S#,G#, QUANTITY)其属性是商店编号,商品编号,销售数量。 商品GOODS(G#,GNAME,PRICE) ? 其属性是商品编号,商品名称,单价。 ? (1)试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则:检索销售“冰箱”的商店的编号和商店名称。
解:关系代数表达式:πS#,SNAME(σGNAME='冰箱'(SHOP?SALE?GOODS)) 元组表达式:{ t | (u) (v) (w) (SHOP (u)∧SALE (v)∧GOODS (w)
∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]∧t[2]=u[2])}
关系逻辑规则:W(u1,u2)SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3)
? (2)试写出上面第(1)问的SELECT语句表达形式。 解:SELECT语句如下: SELECT A.S#,SNAME FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';
? (3)试写出下列操作的SQL语句:从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 解:DELETE FROM SALE