当前位置:文档之家› 数据库系统模拟试卷1

数据库系统模拟试卷1

南京理工大学成人教育学院数据库系统模拟试卷1一、选择题(20分,每小题2分)1.关于联系的多重性,下面哪种说法不正确?A.一个多对多的联系中允许多对一的情形。

B.一个多对多的联系中允许一对一的情形。

C.一个多对一的联系中允许一对一的情形。

D.一个多对一的联系中允许多对多的情形。

2.某关系R(A, B, C, D)有函数依赖A→B, BC→D, D→A,R有几个键?A.1B.2C.3D.43. 有关系R和S,R∩S的运算等价于A.S-(R-S)B.R-(R-S)C.(R-S)∪SD.R∪(R-S)4. 为了使索引键的值在基本表中唯一,在建立索引的语句中应使用保留字为:A.UNIQUEB.COUNTC.DISTINCTD.UNION5. 由函数依赖A→B和C B,有A→C。

此规则是:A.合并规则B.平凡依赖规则C.传递规则D.分解规则6. 对数据库并发操作有可能带来的问题包括:A.未被授权的用户非法存取数据B.带来数据的冗余C.破坏数据独立性D.读出“脏数据”7. 关系Starsin(StarName,MovieName,MovieYear,StarAddress)描述影星姓名、电影名称、电影拍摄的年份和影星居住的地址。

假设一位影星可有多个地址且可拍摄多部电影,那么该关系满足最大范式是:A.2NFB.3NFC.BCNFD.4NF8. SQL的全局约束是指基于元组的检查子句和A.非空值约束B.断言C.域约束子句D.外键子句9. SQL中,下列叙述中不正确的是A.SELECT语句查询结果中不允许有重复元组B.在FROM子句中可嵌有一个SELECT语句C.在WHERE子句中可嵌入有一个SELECT子句D.“NOT IN”操作与“<>ALL”操作等价10. 设关系模式R(A,B,C),F是R上的函数依赖集,F={A→B,B→C}那么F在模式AB 上的投影πAB(F)为A.{ A→B,B→C}B.{ A→B}C.{ AB→C }D.Φ(即不存在非平凡的函数依赖集)二、填空题(10分,每小题2分)1. 数据操作是指对DB的查询和___________两大类操作。

2. 实体完整性约束规则是对______________约束。

3. SQL语言有两种使用方式:交互式和__________。

4. 函数依赖完备的推理规则集包括:自反律、________、传递律。

5. 事务的原子性是有DBMS的_________实现的。

三、名词解释(10分,每小题2分)1. 弱实体集2. 非平凡多值依赖3. 参照完整性约束4. 授权5. 事务的原子性四、简答题(20分,每小题4分)1. 设有关系R(A,B,C)和S(C,D,E),其元组如下所示:2. 简述将违背BCNF的函数依赖分解成满足BCNF函数依赖的算法。

3. 设教学数据库中有三个基本表:S(SNO,SNAME, AGE, SEX),其属性分别表示学号、学生姓名、年龄、性别。

C(CNO, CNAME, TEACHER),其属性分别表示课程号、课程名、上课教师名。

SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。

有如下SQL查询语句:SELECT SNOFROM SWHERE NOT EXISTS(SELECT *FROM SC SC1,CWHERE O=O AND SC1.SNO='S3' AND NOT EXISTS(SELECT *FROM SCWHERE S.SNO=SC.SNOAND O=O))请完成下列问题:用汉语句子描述出该SQL语句所表示的查询。

4.设有关系模式R(A,B,C,D,E),F是R上成立的函数依赖集,F={ABC→DE, BC→D,D→E},试问R达到第几范式,并说明理由。

5. 举例说明ER模型中实体之间M:N联系转换成关系数据模型的方法是什么?五、设计题(24分,每小题3分)现有关系数据库如下:学生(学号,姓名,性别,专业,奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数)用关系代数表达式实现下列1—4小题:1.检索获得奖学金的所有学生所学课程的信息,包括学号、姓名、课程名和分数;2.检索学生“黎明”所学课程中有不及格课程的课程号、名称和分数;3.检索获得奖学金、同时又有不及格成绩的学生信息,包括学号、姓名和专业;4.检索没有任何一门课程成绩超过90分的所有学生的信息,包括学号、姓名和专业。

用SQL语言实现下列5—8小题:5.检索获得奖学金的所有学生所学课程的信息,包括学号、姓名、课程名和分数;6.检索没有任何一门课程成绩超过90分的所有学生的信息,包括学号、姓名和专业;7.对成绩有过不及格的学生,如果已经获得奖学金的,将奖学金减半;8.定义获得奖学金、同时只有一门课程不及格成绩的学生信息视图AAA,包括学号、姓名、专业。

六、综合题(16分,第1题4分,第2题3分,后面每小题3分)为某大型销售公司构作一个简单的销售业务数据库系统,该系统至少应管理以下内容:1.该公司分为多个下属部门(Department),如“江苏销售部”,“上海销售部”等。

每个部门有若干销售员(Salesmen),每个销售员有唯一的员工号(如“S0025”)和身份证号,也包含性别、出生年月、电话等信息。

一个销售员仅属于一个部门,且每个部门有一个销售员担任部门经理。

2.该系统应管理一组客户(Customer):名称、省、市、单位名称、电话等。

3.系统应管理所有销售的商品:制造商(如“春兰”、“海尔”等)、种类(如“摩托车”、“空调机”等)、规格(如“MT125”摩托车、“RE1500”型空调等)、功能及性能描述。

4.该系统用销售订单(Sales order)表示销售业务。

每个订单有一个订单号和签订日期,且对应一个客户和一个销售员。

一个订单至少销售一种产品,并可销售多种产品,每种产品应确定其销售数量和单价,并计算销售金额。

回答下列问题:1. 用若干E-R图建立该系统的数据库模型。

2. 由数据库模型建立该系统的关系模式,并确定每个关系的主键和可能的外键。

注意各关系中的函数依赖和多值依赖,并使你的关系能符合更高的范式。

3. 使用SQL语言完成下面计算:⑴求销售金额最大的订单号及其销售金额。

(注意利用已有查询定义视图)⑵求每个销售的员工号、姓名及其销售金额。

(注意外连接的使用)⑶求员工号为“S0025”的销售员的部门经理的员工号及其姓名。

参考答案:一、选择题(20分,每小题2分)1.D2.C3.B4.A5.C6.D7.C8.B9.A 10.B二、填空题(10分,每小题2分)1.更新2. 主键3.嵌入式4. 增广律5. 事务管理程序三、名词解释(10分,每小题2分)1. 组成一个实体集键码的属性中的一些或全部属于另一个实体集。

2. ⑴ B中的属性都不在A中⑵ A和B不包含R的所有属性。

则关系R的多值依赖A→→B是非平凡的。

3. 要求形成参照关系的两个实体集中,参照实体的外键取值必须是被参照的实体中键的值,即参照实体的外键取值不能是被参照实体没有的键值。

4. 用GRANT语句把数据库的操作权限授予指定的用户。

5.事务中包括的所有操作要么都做,要么都不做。

四、简答题(10分)1.2.⑴找一个违背BCNF的非平凡函数依赖A1A2…A n→B1B2…B m。

⑵把关系R分解成两个关系:R1(A1,A2,…,A n, B1,B2,…,B m);R2(A1,A2,…,A n, 所有其它属性),若不满足BC范式,则再分解。

3.找出至少与学号为“S3”同学所学习的课程相同的所有同学的学号。

4.{ABC}+={ABCDE}且{AB}+={AB}、{AC}+={AC}及{BC}+={BCDE},所以ABC是键。

又BC是键码真子集,所以它违背2NF,故该关系模式只满足1NF。

5.设工厂里产品与零件之间有M:N联系,其ER图如图所示:注意:对于关系“构成”的属性“数量”的语义要清楚。

其语义是,某一产品组成时需要的某种零件的数量,而不是某一产品需要多少零件。

把这个ER图转换成关系模型的方法(过程)如下:⑴把每个实体类型转换为表,实体的键,即为表的键。

产品(产品号,产品名,规格)零件(零件号,零件名,库存量)⑵由于关系是M:N,两端实体的键合起来作为表的主键,而这两端实体的键分别表的外键,其结构如下:构成(产品号,零件号,数量)五、设计题(24分,每小题3分)1. ∏学号,姓名,课程名,分数(σ奖学金>0())2. ∏课程号,名称,分数(σ姓名=’黎明’∧分数<60())3. ∏学号,姓名,专业(σ奖学金>0 AND 分数<60 (学生))4. ∏学号,姓名,专业(学生)-∏学号,姓名,专业(σ分数>90 ())5. SELECT学生.学号,姓名,课程,和分数FROM 学生,学习,课程WHERE 学生.学号=学习.学号AND 学习. 课程号=课程.课程号AND 奖学金>0;6. SELECT 学号,姓名,专业FROM 学生WHERE 学号NOT IN(SELECT 学号FROM 学习WHERE 分数>90)7. UPDATE 学生SET 奖学金=奖学金/2WHERE 学号IN(SELECT 学号FROM 学习WHERE 分数<60)8. CREATE VIEW AAAASSELECT 学号,姓名,专业FROM 学生WHERE 奖学金>0 AND 学号 in(SELECT 学号FROM 学习WHERE 分数<60Group by 学号Having count(*)=1)六、综合题(16分,第1题4分,第2题3分,后面每小题3分)1.2.数据库模式Department(id,name,head_id,desc)Salesman(empid,name,idNo,gender,birthdate,phone,dept_id)Customer(id,name,prov,city,unit_name,phone)Product(manufactory,type,spec,desc)Sales_order(order#,signdate,sales_id,cust_id)Sales_item(order#,line#,manufactory,type,spec,quantity,single_price)外键Dpartment(headid) →Salesman(empid)Salesman(dept_id) →Department(id)Sales_order(sales_id) →Salesman(empid)Sales_order(cust_id) →Customer(id)Sales_item(order#) →Sales_order(order#)Sales_item(manufactory, type, spec) →Product(manufactory, type, spec)3. ⑴先定义视图V1create view V1 asselect sales_order.order#,signdate,sum(quantity) as qty,sum(quantity*single_price) as COSTfrom sales_order key join itemgroup by sales_order.order#,signdateorder by cose desc再计算select order#from V1where cost=(select max(cost) from V1)⑵select empid,name,sum(quantity*single_price) as costfrom Salesman, left Outer join(Sales_order,key join Sales_item)group by empid,name⑶select empid,namefrom Salesmanwhere empid=(select head_idfrom Salesman,departmentwhere dept_id= id and empid= ' S0025 ')。

相关主题