一、选择题
1.数据库系统与文件系统的主要区别是 B 。
A.数据库系统复杂,而文件系统简单;
B.文件系统不能解决数据冗余和数据性问题,而数据库系统可以解决;
C.文件系统只能管理程序文件,而数据库系统可以管理各类文件;
D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量。
2.网状模型的数据结构是 D 。
A.线性表 B.二维表 C.树 D.有向图
3.在层次模型中,记录之间的联系通过 A 来实现。
A.指针 B.数组 C.公共属性 D.对象标识
4.数据库系统三级结构的描述放在 D 中。
A.用户数据库 B.运行日志
C.数据库管理系统 D.数据字典
5.数据性是指 B 之间相互,不受影响
A.概念数据模型和逻辑数据模型
B.应用程序和数据库的数据结构
C.概念数据模型与数据库的数据结构
D.数据与数据库的数据结构
6.在数据库的三级体系结构中,外模式/逻辑模式映象可以保证数据结构和应用程序之间的 A 。
A.逻辑性 B.物理性
C.数据一致性 D.数据安全性
7.关系数据库中,实现实体之间的联系是通过表与表之间的 D 进行。
A. 公共索引. B.公共存储. C.公共元组. D.公共属性
8.主键的属性上有空值违反了 A 。
A.实体完整性规则 B.参照完整性规则
C.安全性规则 D.模型转换规则
9.参照完整性规则是对 D 的约束。
A.超键 B.候选键 C.主键 D.外键
10.设关系R,按条件f对关系R进行选择,其关系代数是___C___。
A. σf(R×R) B. Πf(R∞R)
C. σf(R) D. Πf(R)
11.数据模型的三要素是___A___。
A. 数据结构、数据操作和数据完整性
B. 数据结构、数据库定义和数据库维护
C. 数据定义、数据操作和数据维护
D. 关系数据库、层次数据库和网状数据库
12.设关系R和S的元数分别是r和s,则R和S笛卡儿积的元数是 A 。
A.r*s B.r+s C.r-s D.r/s
13.在SELECT语句中使用“*”表示 C 。
A.选择任一属性 B.选择主键
C.选择全部属性 D.选择全部元组
14.设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE B 。
A.‘_ _ W _ %’ B.‘_ % W _ _’ C.‘_ W _ _’ D.‘_ W _ %’
15.SQL中,谓词 A 可用来测试一个集合是否有重复元组。
A.UNIQUE B.DISTINCT C.EXISTS D.ONLY
16.在select语句中,可以使用关键字 C 来排除重复的元组。
A.EXCLUDE. B.UNIQUE. C. DISTINCT D.ONE.
17.删除触发器mytri的正确命令是 C 。
A.DELET mytri B.TRUNCATE mytri
C.DROP mytri D.REMMOVE mytri
18.用于创建存储过程的SQL语句为 C 。
A.CREATE DATABASE B.CREATE TRIGGER
C.CREATE PROCEDURE D.CREATE TABLE
19.以下哪种情况应尽量创建索引 A 。
A.在where子句中出现频率较高的列 B.具有很多NULL值的列
C.记录较少的基本表 D.需要更新频繁的基本表
20.在SQL语言中,视图是数据库体系结构中的___C___。
A.内模式 B.模式 C.外模式 D.物理模式
21.要在SQLServer中创建一个员工信息表,其中员工的薪水、医疗保险和养老保险分别采用三个字段来存储。若规定:任何一个员工,医疗保险和养老保险两项之和不能大于薪水的1/3,这一规则可以采用 C 来实现。
A.主键约束 B.外键约束
C.CHECK约束 D. DEFAULT约束
22.当连接上SQL Server时,假如没有预先指定用户连上那个数据库,SQL Server会自动替用户连上 A 系统数据库。
A. master B. tempdb C. model D. msdb
23.设有关系模式R(ABCD),R上的FD集F={A→D,B→C,D→B}。则D= C 。
A.AD B.BD C.BCD D.ABCD
24.两个函数依赖集F和G等价的充分必要条件是 C 。
A.F= G B.F= G C.F= G D.F= G
25.在以下函数依赖中, B 是平凡的函数依赖。
A.A→ABCD B.ABCD→A C.A→BCD D.BCD→A
26.关系模式中,各级模式之间的关系为___C___。
A.3NF ⊆ 2NF ⊆ 1NF B.3NF ⊆1NF ⊆ 2NF
C.1NF ⊆ 2NF ⊆ 3NF D.2NF⊆1NF ⊆3NF
27.某学校规定:一个班级至多有50个学生,至少有10个学生,每个学生必须属于某个班,在班级和学生的实体联系中,学生实体的基数为 D 。
A.(0,1). B.(1,1) C.(1,10) D.(10,50)
28.弱实体的主键 B 。
A.与其父实体的主键完全一致
B.一部份或全部从其父实体的主键获得
C.全部从其父实体的非主键属性获得
D.与其父实体无关
29. 在数据库设计中,父实体与弱实体之间的联系只能是 A 。
A.1:1或1:N B.1:N 或M:N
C.1:1或M:N D.M:N
30.当局部E-R图合并成全局E-R图时,可能出现冲突,下面所列举的冲突中
B 不属于上述冲突。
A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突
31.在数据库设计中,将E-R图转换成关系数据模型的过程属于 C 。
A.需求分析阶段 B.逻辑设计阶段
C.概念设计阶段 D.物理设计阶段
32.若一个ER模型中有三个实体,实体间有一个1:N关系、一个M:N关系,则此ER模型最终转换为 C 个关系,即表。
A.2 B.3 C.4 D.5
33.事务对DB的修改,应该在数据库中留下痕迹,永不消逝。这个性质称为事务的 D 。
A.原子性 B.一致性 C.隔离性 D.持久性
34.事务的ACID性质中,关于原子性(atomicity)的描述正确的是 C 。
A. 指数据库的内容不出现矛盾的状态。
B. 若事务正常结束,即使发生故障,更新结果也不会从数据库中消失。
C. 事务中的所有操作要么都执行,要么都不执行。
D. 若多个事务同时进行,与顺序实现的处理结果是一致的。
35.防止数据库意外的有效方法为 C 。
A.重建 B. 追加 C.备份 D.删除
36.“日志”文件用于保存 D 。
A.程序运行过程 B.数据操作
C.程序执行结果 D.对数据库的更新操作
37.在DB技术中,“脏数据”是指 D 。
A.未回退的数据 B.未提交的数据
C.回退的数据 D.未提交随后又被撤销的数据
38. “死锁”是 C 。
A.磁盘故障 B.介质故障 C.事务故障 D.系统故障
39.若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据全部损失或部分损失,这种情况称为 C 。
A.事务故障 B.系统故障 C.介质故障 D.运行故障
40.“年龄在18~25之间,这种约束属于数据库系统的 C 措施。
A.原子性. B.一致性. C.完整性. D.安全性
41.数据库中___B___是指数据的正确性和相容性。
A.安全性 B.完整性 C.并发性 D.恢复性
42. B 不是ODBC使用的句柄。
A.环境句柄 B.窗口句柄 C.连接句柄 D.语句句柄
43.ODBC体系结构中, C 向数据源提交用户请求执行的SQL语句。
A.ODBC数据库应用程序 B.驱动程序管理器
C.DB驱动程序 D.数据源
44.在XPath中,使用 C 符号可以访问属性值。
A.* B.& C.@ D.%
45. 以下关于XML文档声明的语句正确的是 D 。
A. B. C. D. 46. xml A 提供了一种避免元素命名冲突的方法 A. 命名空间 B. dtd C.xsd D.xsl 47. 含有中文字符的xml文档中,encoding的属性应设为 B A.big5 B.gb2312 C.utf-8 D.ansi 48. 下面哪个不是标记语言 A A.JAVA B.HTML C.XML D.SGML 49. XPath是 A A.XML的路径语言 B.XML的转化 C.文档对象模型 D.XML命名空间 50. 下面XML片段中结构完整的是 D 。 A. B. C. D. 二、填空题 1.DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列,并发控制的主要方法是 封锁 机制。 2.数据库设计的几个步骤是 需求分析 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 数据库运行和维护 。 3.视图是一个虚表,它是从 一个或几个基本表 导出的表,数据库中,只存放视图的 定义 ,不存放视图的 对应的数据 。 4.DB并发操作通常会带来三类问题,它们是 丢失修改(丢失更改) 读脏数据 不一致分析(不可重复读)。 5.事务必须具有的四个性质是 原子性 一致性 隔离性 持久性。 6.一级封锁协议解决了事务的并发操作带来的 数据丢失修改 不一致性的问题。 7.一个触发器由___触发事件或语句、触发和触发器动作_ 3部分组成。 8.DBS具有“数据性”特点的原因是__采用三级模式结构______ 。 9.关系中属性的个数称为_元数_ ,关系中元组的个数称为_基数__ 。 10.在关系模式R中,函数依赖X→Y的语义是:在R的每一关系中,若两个元组在X的分量上相等,则__Y值也相等__ 。 11.关系模式在分解时应保持等价,数据等价用 无损分解 特征来衡量,语义等价用 保持依赖 特征来衡量。 12.根据属性类别属性可分为 简单 属性和 复合 属性。 13.根据属性的取值特点属性可分为 单值 属性和 多值 属性。 14.子类与超类之间的继承性是通过子类实体与超类实体有相同的_实体标识符 实现的。 15.要使数据库具有可恢复性,在平时要做好两件事:转储和 建立日志 。 16.XML能够通用化,主要依靠两个措施:一是 可自由扩充的标志 ,二是 于文档的格式单 。 17.XML文档由 序言 和 文档实例 两个部分组成。 18.在XML文档中,属性一律放在 开标签 。 19.在XML模式中,主键定义括在 20.在XPath中,可以使用 cout() 函数表示查询对象的个数。 21.在XPath中,可以使用 text() 函数返回元素的内容。 22.一个简单的XSLT模板包含 匹配部分 和 选择部分 两个部分。 23.设关系模式R(ABCDE),F是R上成立的FD集,F={ A→B,CE→A,B→D},ρ={AB,BD,ACE}是R的一个分解。则分解ρ相对于F是 损失分解 和 保持依赖_的。 24.XML Schema的数据类型分为 简单类型 , 复合类型 。 25.XML对字母的大小写 敏感 , 26.为了解决不同语义的标签名称的冲突问题,引入了 名字空间 。 27.关系模式R(A,B,C),F是其上的FD集,F={B C},分解 ={AB,BC},则相对于F,该分解 保持FD的分解,是 无损的。 28.__概念__模型是面向信息世界的,它是按用户的观点对数据和信息建模 ;_数据__模型是面向计算机世界的,它是按计算机系统的观点对数据建摸。 29.在关系模型中,主键是指_主题完整性_,外键是指_参照完整性_。 30.数据依赖是关系中属性间的相互关联,最重要的数据依赖有两种,即_函数_依赖和多值依赖。 31.数据库系统的三级模式分别是_层次模型_,_网状模型_和_关系模型_。 32.实体联系模型中三种联系是_实体_、_联系_、_属性_; 33.数据库系统是由数据库、_数据库系统_、_计算机软硬件_、_应用程序_、_数据库管理员_和用户共同组成。 34.调用ODBC函数需要使用3个句柄,分别是:_环境句柄_、_连接句柄_、_语句句柄_。 35.封锁技术中主要有2种锁:___死锁__和___活锁____。 三、简答题 1.DBMS的主要功能有哪5个方面? 答:数据库定义功能;数据库操纵功能;数据库保护功能;数据库维护功能;数据字典。 2.叙述等值连接和自然连接的区别和联系。 答:自然连接是除去重复属性的等值连接。两者之间的区别和联系如下: (1). 自然连接一定是等值连接,但等值连接不一定是自然连接。 (2). 等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。 (3). 等值连接不把重复的属性除去;而自然连接要把重复的属性除去。 3.对DBS生存期的划分,一般分为哪7个阶段。 答:规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护。 4.函数依赖集F的最小依赖集G应满足哪4个条件? 答:(1)G+=F+。 (2)G中没有冗余FD。 (3)每个FD的右边都是单属性。 (4)G中每个FD的左边没有冗余的属性。 5.事务有哪几种状态? 答:活动状态、局部提交状态、失败状态、异常中止状态、提交状态。 6.ODBC的体系结构共分为哪几层? 答:应用程序、驱动程序管理器、DBMS驱动程序和数据源。 7.ODBC驱动程序有哪两种类型?主要区别是什么? 答 :驱动程序有两种类型:单层驱动程序和多层驱动程序。单层驱动程序包含了数据库引擎,解释执行SQL语句。在网络中传输的是整个数据库文件,所以网络的数据通信量很大。多层驱动程序中不包含数据库引擎,将SQL语句传递给数据源服务器,由DBMS解释执行。因此在网络中传输的只是用户请求和数据库处理的结果,从而使网络的数据通信量大大减少,减轻了网络的负担,均衡了服务器和客户机的负载,挺高了应用程序的运行效率。 8.ODBC应用程序初始化的基本流程是什么? 答:分配环境句柄->分配连接句柄->与服务器连接->分配语句句柄 9.ODBC应用程序终止的基本流程是什么? 答:与服务器断开->释放语句句柄->释放连接句柄->释放环境句柄 10.ODBC句柄有哪三个? 答:环境句柄、连接句柄和语句句柄。 11.简述在DTD的属性声明中,类型声明的5种类型和默认声明的3种类型。 答:类型声明:PCDATA或CDATA;ID;IDREF或IDREFS;ENTITY或ENTITIES 12.现在主要有哪三种语言提供了XML数据的查询和转换能力? 答:XPath、XSLT、XQuery. 13.什么是Inserted表?什么是deleted表 答:Inserted表用于存储inserted和update语句影响的副本 Deleted表用于存储delete和update语句影响的行的副本 14.简述封锁机制可能会产生的哪几类问题? 答:“活锁”问题;“饿死”问题;“死锁”问题。(p230) 15.数据库恢复的基本技术有哪些? 答:数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复的故障前的某个一致性状态。 16.简述中间件的作用有哪些? 答:保证网络中各部件(软件和硬件)之间透明地连接,即隐藏网络内部的异构性,尤其保证不同网络、不同DBMS和某些访问语言的透明性。 17.简述日志文件的主要作用? 答:记录所有对数据库数据的修改,主要是保护数据库以防止故障发生后,对数据库进行恢复。 18.试述Select语句中Where与having 的相同点与不同点。 答:类似处:都是筛选数据。 不同之处: (1)使用的前提不同:where条件可以随意使用,having条件只能在分组group by中出现。 (2)作用的对象不同:where 条件作用于整个表,从中选择满足条件的元组;而having只作用于每个组,从中选择出满足条件的组。 (3)Having条件必须是描述分组性质的属性。 19.请简述视图与数据表之间的主要区别。 答:联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。 区别:1、视图是已经编译好的sql语句。而表不是。2、视图没有实际的物理记录。而表有。3、表是内容,视图是窗口。4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以即时对它进行修改,但视图只能有创建的语句来修改5、表是内模式,视图是外模式。6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。8、视图的建立和删除只影响视图本身,不影响对应的基本表。 20.试述关系模型的三类完整性规则。 答:1)实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 2)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:等于S中某个元组的主码值或者取空值(F的每个属性值均为空值); 3)用户定义的完整性: 是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。 四、综合题 1.设有关系S(S#,SNAME,AGE,SEX)、SC(S#,C#,SCORE)、C(C#,CNAME,TEACHER),试用关系代数和SQL完成如下操作 (1)用关系代数表达检索选修了“程军”老师所授课程之一的学生姓名。 ΠSNAME(σ TEACHER=‘程军’(S▷◁C▷◁SC) (2)用关系代数表达至少选修了S2和S4课程的学生的学号和姓名。 ΠS#,SNAME(S▷◁Π1(σ1=4∧2=‘S2’∧5=‘S4’(SC▷◁SC)) (3)用SQL表达找出“程序设计”课程成绩在90分以上的学生。 SELECT S# FROM SC WHERE SCOER>90 AND C# IN ( SELECT C# FROM C WHERE CNAME='程序设计') (4)试用SQL语句往S表中插入一个学生记录(’99220101’,’王凌’,19,’男’); INSERT INTO S VALUES(’99220101’,’王凌’,19,’男’); (5)试用SQL语句从SC表中删除“数据库应用”课程的选课元组; DELETE FROM SC WHERE C# IN(SELECE C# FROM C WHERE CNAME='数据库应用') (6)试用SQL语句将“操作系统”课程的成绩改为原成绩乘以系数1.1; UPDATE SC SET SCORE=SCORE*1.1 where C# IN (SELECT C# FROM C where CNAME='操作系统' ) (7)试用SQL语句定义视图C_AVGS(CNO,AVG_SCORE),其中属性分别为课程号和平均成绩。 CREATE VIEW C_AVGS(CNO,AVG_SCORE) AS SELETE C#,AVG(SCOER) FROM SC GROUP BY C# 2.设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号.姓名.工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号.部门名称.部门经理的职工号。回答以下各题 (1)试用SQL语句完成以下查询: 列出各部门中工资不低于600元的职工的平均工资。 select DNO,avg(salary) from emp where salary>=60 GROUP BY DNO (2)写出“查询001号职工所在部门名称”的关系代数表达式。 SQL: select dname from dept where dno =(select dno from emp where eno='001') 关系表达式:∏DNAME(σ ENO=‘001’(EMP▷◁DEPT)) (3)请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。 update emp set salary=salary*1.1salary where eno in (select eno from emp,dept where emp.dno=dept.dno and dname='销售部' and salary <600) (4)有如下关系代数表达式 请将其转化成相应的SQL语句。 SELECT ENO FROM EMP,DEPT (WHERE EMP.DNO=DEPT.ENO AND DEPT.MANAGER='001') 3.设零件生产数据库中有3个基本表: WORK(WNO,WNAME,WGR_NAME),其属性分别是车间编号、车间名称、车间主任名; PART(PNO,PNAME,WEIGHT,COLOR),其属性分别是零件编号、零件名称、重量、颜色; PROD(WNO,PNO,QUNTITY),其属性分别是车间编号、零件编号、生产数量。 (1) 现有关系代数表达式: ΠWNO(WORK)- Π WNO(σ PNAME=‘轴承’(PART PROD)) 试给出此查询语句的语义; 查询不生产轴承的车间编号 (2)试给出检索在“紧固件1车间”生产的零件的零件名称的关系代数表达式; ΠPNAME(Π WNO(σ wNAME=‘固定件1车间’(WORK))▷◁PROD▷◁PART) (3)试用SQL语句定义WORK表,需说明主键; CREATE TABLE WORK( WNO CHAR(10) PRIMARY KEY, WNAME CHAR(20) NOT NULL, WGR_NAME CHAR(8) ) (4)试用SQL语句往WORK表中插入一个车间记录(’w031’,’铣削车间’,’张亮’); INSERT INTO WORK VALUES(’w031’,’铣削车间’,’张亮’); (5)试用SQL语句在关系PART中删除零件名称为“弹簧”的元组; DELECT FROM PART WHERE PNAME='弹簧'; (6)试用SQL语句将编号为W012的车间生产的编号为P004的零件数量增加10; UPDATE PROD SET QUNTITY=PUNTITY +10 WHERE PNO IN(SELECT PNO FROM PART,PROD WHERE PART.PNO=PROD.PNO AND WNO IN( SELECT WNO FROM WORK WHERE WNO='P004')) (7)试用SQL语句定义视图G_PTOTAL(PNO,PROD_T),其中属性分别为零件编号和生产总量。 CREAT VIEW G_PTOTAL(PNO,PROD_T) AS SELECT PNO,QUNTITY FROM PROD; 4.已知关系模式如下: 仓库(仓库号,城市,面积) 职工(仓库号,职工号,工资) (1)检索在仓库2工作的职工的工资。 Π职工号,工资(σ仓库号=‘仓库2’(职工) (2)检索在上海工作的职工。 Π职工号(σ城市=‘上海’(职工▷◁仓库) (3)检索目前与职工E6有业务联系的供应商名称。 Π供应商名称(σ 职工号=‘E6’(订购单▷◁供应商) (4)检索和北京的所有供应商都有业务联系的职工的工资。 R=Π职工号(σ 地址=‘北京’(供应商) Π工资(职工▷◁(Π 职工号,供应商号(订购单)÷R)) (5)检索至少和职工E1、E4、E7都有联系的供应商名称。 设R职工号=(E1、E4、E7) Π供应商名称((Π 供应商号,职工号(订购单)÷R)▷◁供应商) 5.设有关系模式R(U),函数依赖集为F,其中 U={A,B,C,D,E},F={A BC,CD E,B D,E A} (1)计算B+,并给出计算步骤。 (2)证明CD是R的候选键 (1)解答:令X={B},X(0)={B},由B D ,且B X(0),X(1)=X(0) {D}={BD},由A BC,CD E,E A函数依赖的左部都不在X(1)中,所以B+={BD} (2)证明:由已有的函数依赖得:CD U,所以,CD是超键,又由于C+=C,D+=D,所以C和D都不是超键,因此,CD是候选键。 6.设有关系模式STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE) S#,CNAME组成候选键,函数依赖集合为 F={ S#, CNAME SNAME, SDEPT, MNAME S# SNAME, SDEPT, MNAME S#, CNAME GRADE SDEPT MNAME } 试问: (1)关系模式STUDENT属于第几范式?给出理由。 由于S#, CNAME SDEPT和S# SDEPT,存在非主属性局部依赖于侯选建,所以它是1NF。 (2)如果STUDENT不属于BCNF,试给出分解为BCNF的过程 首先消除S#, CNAME SNAME, SDEPT, MNAME部分函数依赖,构造R1(S#,SNAME, SDEPT, MNAME)和R2(S#,CNAME, GRADE) 在关系R1中,其函数依赖为 S# SNAME, SDEPT, MNAME SDEPT MNAME 这里有非主属性MNAME传递依赖于候选键S#,将R1分解为 R11(SDEPT, MNAME)和R12(S#, SNAME, SDEPT),它们和R2都是BCNF 7.假设某商业集团数据库中有一关系模式R如下: R (商店编号,商品编号,数量,部门编号,负责人) 如果规定: (1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题: (1) 根据上述规定,写出关系模式R的基本函数依赖; (商店编号,商品编号) 部门编号 (商店编号,部门编号) 负责人 (商店编号,商品编号) 数量 (2) 找出关系模式R的候选码;(商店编号,商品编号) (3) 试问关系模式R最高已经达到第几范式?为什么? 因为R中存在着非主属性“”对候选码(商店编号,商品编号) 传递依赖,所以R属于2NF模式集 (4) 如果R不属于3NF,请将R分解成3NF模式集。 将R分解成:R1(商店编号,商品编号,数量,部门编号) R2(商店编号,部门编号,负责人) 8.设关系模式R(ABCDE),F是R上成立的FD集,F={ A→B,CD→E,B→D},ρ={AB,AD,CDE}是R的一个分解。 (1) 试用Chase过程说明ρ是否是无损分解; (2) 试求F在ρ的每个模式上的投影,并说明ρ是否保持依赖。 F在R1(AB)上的投影为F1{A→B} 在R2(AD)上的投影为F2{A→D} 在R3(CDE)上的投影为F3{CD→E} 令G=F1∪F2∪F3,可得G≠F,可见G+≠F+,所以不保持依赖 9.设关系模式R(ABCDE),F是R上成立的FD集,F={ A→B,CE→A,B→D},ρ={AB,BD,ACE}是R的一个分解。 (1)试用Chase过程说明ρ是否是无损分解; (2) 试求F在ρ的每个模式上的投影,并说明ρ是否保持依赖。 F在R1(AB)上的投影为F1{A→B} 在R2(BD)上的投影为F2{B→D} 在R3(ACE)上的投影为F3{CE→A} 令G=F1∪F2∪F3,可得G=F,可见G+=F+,所以保持依赖 10.设有关系模式R(演员编号,演员姓名,电影名,出演角色,艺术团名,团长名),如果规定每个演员编 (1)试写出关系模式R的基本FD和主键; 演员编号→(演员姓名,艺术团名) (演员编号,电影名)→出演角色 艺术团名→ (2)说明R达到第几范式,并说明理由; 第一范式,关系1(演员编号,电影名)→(出演角色,演员姓名,艺术团名) 关系2演员编号→(演员姓名,艺术团名) 所以关系1属于局部依赖,故是第一范式。 (3) 如果R不是3NF模式,请将R分解为3NF模式集。 R分解为R1(演员编号,演员姓名,艺术团名,团长名) R2(演员编号,电影名,出演角色) {R1,R2}是2NF模式集 再把R1分解为R11(演员编号,演员姓名,艺术团名) R12(艺术团名,团长名) 则{R11,R12,R2}是3NF模式集 11.现有如下关系模式: 考生(准考证号,姓名,电话,家庭住址,报考专业编号,报考专业名称,报考年份) (1)试分析该关系模式的函数依赖,并指明其主键。 (准考证号,报考专业编号),(姓名,报考专业编号) 主键为:(准考证号,报考专业编号) (2)将该关系分解到3NF。 R1(准考证号,报考专业编号,报考年份) R2(准考证号,姓名,电话,家庭住址) R3(报考专业编号,报考专业名称) 12.一个工厂可生产多种产品,一种产品可由多个工厂生产。工厂有工厂编号、名称、地址和电话号码等属性; (1)根据上述语义画出E-R图; (2)将E-R模型转换成关系模式,并标注关系的主键和外键。 工厂(工厂编号,名称,地址,电话号码) 产品(产品号,产品名称,型号) 生产(工厂编号,产品号,生产日期,数量) (3)判断各关系模式是否符合3NF,如果不符合请将其分解成3NF模式。 1.设有如下实体 学生:学号、单位、姓名、性别、年龄、选修课程名 课程:编号、课程名、开课单位、任课教师号 教师:教师号、姓名、性别、职称、讲授课程号 单位:单位名称、电话、教师号、教师名 上述实体中存在如下联系 (1)一个学生可以选修多门课程,一门课程可以为多个学生选修; (2)一个教师可以讲授多门课程,一门课程可以为多个教师讲授; (3)一个单位可以有多个教师,一个教师只能属于一个单位。 试完成如下工作: (1)分别设计学生选课和教师任课的两个局部ER图模型。 (2)将上述设计的局部ER图合并为全局的ER图。 (2)将全局ER图转换为等价的关系模式的数据库逻辑结构。 单位(单位名,电话) 教师(教师号,姓名,性别,职称,单位名) 课程(课程编号,课程名,单位名) 学生(学号,姓名,性别,年龄,单位名) 讲授(教师号,课程编号) 选修(学号,课程编号) 13.设体育比赛数据库中有两个实体集。一是“运动员”实体集,属性有运动员编号、姓名、年龄、性别等; (1)画出ER图,并在图上注明属性、联系类型、实体标识符; (2) 将ER图转换成关系模型,并说明主键和外键。 运动员(运动员编号,姓名,年龄,性别) 比赛项目(项目编号,项目名称,级别) 参加(运动员编号,项目编号,日期,成绩) 14.写出下列每条语句或程序段的功能,假定数据库AAA,,包括student和score两张表。 (1)create procedure xxx1 as Begin select * from student x, score y where x.S#=y.S.# end 显示出AAA库中所以学生的记录信息及选课成绩 (2) create procedure xxx2 As Begin Select x.S#,x.SNAME,count(*) as 门数 Where x.S#=y.S# Group by x.S#,x.SNAME end 显示出AAA库中每个学生的学号、姓名等信息及选课门数 (3) ceate procedure xxx3 (@a char(8), @b varchar(10), @c numeric(5,2)) As Begin Insert into score Values(@a,@b,@c) End 向score表中插入学号为@ a的值、课程名为@b的值、成绩为@c的值的学生成绩记录 创建存储过程,功能是查询指定学生的学号,姓名,性别和班级,姓名由参数传递 create proc p_2( @xm char (8) ) as select 学号,姓名,性别,班号from 学生,班级where学生.班号=班级.班号 and 姓名=@xm go execute s_1 '/*姓名参数*/' 创建存储过程,功能是查询某门课程的总分和平均分。课程名由参数传递。 Create proc p_3( @kcm char(16),@pj int output,@zcj int output) As select sum(成绩) as 总分,avg(成绩) as平均分from 选课,课程where 选课.课程号=课程.课程号 and 课程名=@kcm go Declare @zcj int,@pj int Execute s_3 '/*课程名参数*/' ,@pj output,@zcj output Print @zcj Print @pj 创建触发器,功能是当删除学生表的记录时,同步删除选课表中的选课信息。 create trigger t_1 on 学生 after delete as declare @xh char(8) select @xh=学号 from deleted delete from 选课 where 学号=@xh delete from 学生 where 学号='/*学号*/' 创建触发器,功能是当修改学生表的学生学号时,同步修改选课表中该学生的学号。 create trigger t_2 on 学生 after update as declare @xh1 char(8),@xh2 char(8) select @xh1 from deleted select @xh2 from inserted update 学生 set 学号=@xh2 where 学号=@xh1 update 选课 set 学号='/*被修改学号*/' where 学号=' /*新学号*/' 15.分析下列XML实例,编写外部DTD文档。 <学生名册> <学生 学号=“Z1”别名=“张小”> <姓名>张华姓名> <性别>女性别> <年龄>27年龄 > 学生> <学生 学号=“A2” 别名=“李四”> <姓名>李明姓名> <性别>男性别> <年龄>19年龄 > 学生> 学生名册> ]> <学生名册> <学生> <学号> "E1"学号> <别名> "张小"别名> <姓名>张华姓名> <性别> 女性别> <年龄> 27年龄> 学生> <学生> <学号> "A2"学号> <别名> "李四"别名> <姓名>李明姓名> <性别> 男性别> <年龄> 19年龄> 学生> 学生名册> 16.修改以下文档,使它成为格式良好的文档。 (1) <图书 书号=”10001”> <书名>西游记书名> <作者>吴承恩作者> 图书> <图书 书号=”10002”> <书名>京华烟云书名> <作者>林语堂作者> 图书> (2) <成绩> <名字= xml>分数>=70 and 分数<60名字> 成绩> (1) <书架> <图书> <书号>"10001"书号> <书名>西游记书名> <作者>吴承恩作者> 图书> <图书> <书号>"10002"书号> <书名>京华烟云书名> <作者>林语堂作者> 图书> 书架> (2) <学生> <成绩> <名字>xml名字> <分数>=70 and <60分数> 成绩> 学生> 17.已知DTD文档片断如下,定义符合其要求的xml文档片断 <联系方式> <联系人> <姓名>姓名> 联系方式> 联系人> 18.一下程序用游标gd_cur查找studentsdb数据库的grade表,统计并显示表中记录总数,最后删除游标,完成程序。 DECLARE @sid char(8),@cid varchar(10),@scr numeric(5,2) DECLARE @count int SET @count=0 DECLARE gd_cur ursor FOR SELECT 学号,课程编号,分数FROM grade OPEN gd_cur FETCH FROM gd_cur INTO @sid, @cid,@scr WHILE @@fetch_status=0 BEGIN SET @count=@count+1 FETCH FROM gd_cur INTO @sid,@scr END CLOSE gd_cur Deallocate dg_cur PRINT @count 五、
修改后的表格没有一行是全a行,所以不是无损分解。A B C D E AB a1 a2 b13 b14 b15 AD a1 b22 b23 a4 b25 CDE b31 b32 a3 a4 a5 初始表格 A B C D E AB a1 a2 b13 b14 b15 AD a1 a2 b23 a4 b25 CDE b31 b32 a3 a4 a5 修改后的表格
根据A→B,可把b32改为a2,根据A→B,B→D,可把b34改为a4,得到表中第三行全是a行,所以是无损分解A B C D E AB a1 a2 b13 b14 b15 BD b21 a2 b23 a4 b25 ACE a1 b32 a3 b34 a5 初始表格 A B C D E AB a1 a2 b13 b14 b15 BD b21 a2 b23 a4 b25 ACE a1 a2 a3 a4 a5 修改后的表格