1、P36:8.分别举出实体型之间具有一对一,一对多,多对多联系的例子。9.学校有若干个系,每个系有若干班级和教研窒,每个教研窒有若干教员,其中有的教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。用 E-R 图画出该学校的概念模型。11教师与课程之间的联系是多对多联系,试用层次模型表示之。14.试比较层次模型,网状模型和关系模型的优点与缺点。层次模型的优点主 要有:( l )模型简单,对具 有一对多层次关系的部门描 述非常自然、 直 观 , 容 易 理 解 , 这 是 层 次 数 据 库的 突 出 优 点 ;( 2 ) 用 层 次 模 型 的 应
2、用 系 统 性 能 好 , 特 别 是 对 于 那 些 实 体 间 联 系 是 固 定 的 且 预 先 定 义 好 的 应 用 ,采 用 层 次 模 型 来 实 现 , 其 性 能 优 于 关系模型;( 3 )层次数据模型提 供了良好的完整性支持。层次模型的缺点主 要有:( l )现实世界中很多 联系是非层次性的,如多对 多联系、 一个 结 点 具 有 多 个 双 亲 等 , 层 次 模 型 不能 自 然 地 表 示 这 类 联 系 , 只 能 通 过 引 入 冗 余 数 据 或 引 入 虚 拟 结 点 来 解 决 ;( 2 ) 对 插 入 和 删 除 操 作 的 限 制 比 较 多 ;( 3
3、 ) 查 询 子 女 结 点 必 须 通 过 双 亲结点。网 状 数 据 模 型 的 优 点 主 要 有 :( l ) 能 够 更 为 直 接 地 描 述 现 实 世 界 , 如 一 个 结 点 可 以 有 多 个双亲;( 2 )具有良好的性能 ,存取效率较高。网 状 数 据 模 型 的 缺 点 主 要 有 :( l ) 结 构 比 较 复 杂 , 而 且 随 着 应 用 环 境 的 扩 大 , 数 据 库 的 结构就变得越来越 复杂,不利于最终用户掌握 ;( 2 )其 DDL 、 DML 语言复杂,用户不 容易使用。 由于记录之间联系是 通过存取路径实现的,应用 程序在访问数据时必须选 择
4、适当 的存取路径。因此 ,用户必须了解系统结构的 细节,加重了编写应用程序 的负担。17.数据库管理系统有哪些主要功能?l 数据库定义功能;2 数据存取功能; 3 数据库运行管理 ; 4 数据库的建立和 维护功能。18.数据库管理系统有哪几部分组成?1 数据定义语言及其翻译处理程序 2 数据操纵语言及其编译(或解释)程序3 数据库运行控制程序 4 实用程序P642.解释下列概念,并说明它们之间的联系与区别:1 码,候选码,外部码 2 笛卡尔,关系,元组,属性,域 3 关系模式,关系模型,关系数据库答: 关系模型由关系数 据结构、 关系操作集合和关 系完整性约束三部分组成。 在用户观点下,关 系
5、模型中数据的逻 辑结构是一张二维表,它 由 行和列组成。1)码,候选码,外部码?码:唯一标识实体的属性组,码可能不止一个候选码:同类关系中能够唯一标识每个元组的属性组,在这些关系中,这个属性组上的值每行都不同外部码:设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码,如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外码,并称基本关系 R 为参照关系,基本关系 S 为被参照关系或目标关,外码不一定与相应的主码同名2)笛卡尔,关系,元组,属性,域?笛卡尔积:给定一组域 D1, D2,Dn,这些域中可以有相同的。D1,D2,Dn 的笛卡尔积为:D1D2Dn(d
6、1,d2,dn)di Di,i 1,2,n所有域的所有取值的一个组合不能重复笛卡尔积可以表示为一个二维表关系:D1D2 Dn 的子集叫做在域 D1,D2 , ,Dn 上的关系,用 R( D1,D2 , ,Dn)表示。这里 R 是关系的名字,n 是关系的目或度。关系中的每个元素是关系中的元组,通常用 t 表示。当 n=1 时,称该关系为单元关系 当 n=2 时,称该关系为二元关系关系是 n 个域的笛卡尔积的子集,也是一个二维表元组:关系中的每个元素是关系中的元组属性:实体具有的某一方面的特性,域:一组具有相同数据类型的值的集合关系是一张二维表,表的每行对应一个元组,表的每列对应一个域 。由于域可
7、以相同,为了加以区分,给每列取一个名字,称为属性。n 目关系必有 n 个属性。(3)关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关 系模型中数据的逻辑结构是一张二维表,它由行和列组成。( l )关系:一个关系对应通常 说的一张表( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 ) 元组:表中的一行即为一个元组;( 5 )主码:表中的某个属性组,它可以惟一确定一个 元组;( 6 )分量:元组中的一个属性值;( 7 )关系模式:对关系的描述,一般表示为 关系名(属性 1 ,属性 2 , ,属性 n )4.在关系模型的参照完整性规则中
8、,为什么外部码属性的值也可以为空?什么情况下可以为空?答:实体完整性规 则是指若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 若 属 性 (或 属性 组 )F 是 基 本 关 系 R 的 外 码 , 它 与 基 本 关 系 S 的 主 码 Ks 相 对 应 (基 本 关 系 R 和 S 不 一 定 是 不 同的 关 系 ), 则 对 于 R 中 每 个 元 组 在 F 上 的 值 必 须 为 : 或 者 取 空 值 (F 的 每 个 属性 值均 为空 值 );或 者等 于 S 中 某个 元组 的主 码 值。 即属 性 F 本 身不 是主 属性 , 则可 以 取空值,否则不能 取
9、空值。7.(1)求供应工程 J1 零件的供应商号 SNO;(2)求供应工程 J 零件 P1 的供应商号 SNO;(3)求供应工程 J1 红色零件的供应商号 SNO;(4)求没有使用天津供应商生产的红色零件的工程好 JNO;(5)求至少用了 S1 供应商所供应的全部零件的工程号 JNO.答:1)求供应工程 J1 零件的供应商号码 SNO:Sno(Sno=J1( SPJ) )2)求供应工程 J1 零件 P1 的供应商号码 SNO:Sno(Sno=J1 Pno=P1(SPJ)3)求供应工程J 1 零件为红色的供应 商号码S NO:Sno(Pno=P1 ( COLOR=红 ( P) SPJ) )4)求
10、没有使用天津供应商生产的 红色零件的工程号 JNO:Jno(SPJ)- JNO( city=天津 Color=红 ( SSPJP)5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO:Jno, Pno(SPJ) Pno( Sno=S1 ( SPJ)P1262.用 SQL 语言建立第 2 章第 7 题中的四个表。答:对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ;建 S 表:CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2) ,City C(4);对于 P 表: P ( PNO , PNA
11、ME , COLOR , WEIGHT );建 P 表 :CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT);对于 J 表: J ( JNO , JNAME , CITY) ;建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ;建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), Q
12、TY INT)3.针对第 2 题创建的表,用 SQL 语言完成第 2 章第 7 题中的各项操作。( l )求供应工程 Jl 零件的供应商号码 SNO ;SELECT DIST SNO FROM SPJ WHERE JNO=J1( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1 ( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红( 4 )求没有使用天
13、津供应商生产的红色零件的工程号 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 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;由于 VFP 不允许子查询嵌套太深,将查询分为两步 A、查询 S1 供应商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程既使用 P1 零件又使用
14、 P2 零件。SELECT JNO FROM SPJ WHERE PNO=P1AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2)4.针对第 2 题创建的表,用 SQL 语言进行下列各项操作:(1)统计每种零件的供应总量;(2)求零件供应总量在 1000 种以上的供应商名字;(3)在 S 表中插入一条供应商信息:( S6,华天,深圳);(4)把全部红色零件的颜色改为粉红色;(5)将 S1 供应给 J1 的零件 P1 改为由 P2 供给;(6)删去全部蓝色零件及相应地 SPJ 记录。(1)求供应工程 J1 的零件的供应商的编号此题是对查询条件的考察,查询的总
15、体上包括单表查询与多表查询,这就说明我们在查询时一定要弄清楚是在一个表中查询还是在多个表中查询。根据题目可知,SNO 与 J1 在一个表中;单表查询:Select SNO (控制查询结果的显示条件) distinct(删除重复行 ) Sno from SPJ where JNO=J1;(2)求供应商工程 J1 零件 P1 的供应商号 SNO;单表查询,将查询条件细化:select SNO from SPJ where JNO=J1 and PNO=P1;(3)求供应工程 J1 红色零件的供应商号 SNO多表查询:分清查询的主表,这里查询的范围任然是在 SPJ 中,不过问题的关键是在如何确定另一
16、个限定条件 PNO,这里用到多表查询,可以在 P 表中根据颜色找到 PNO,就可以确定供应商号;select SNO From SPJ Where JNO=J1 and PNO=(select PNO from P where COLOR=红);(4)求没有使用天津供应商生产的红色零件的工程号 JNO;查询目标表还是在 SPJ 中:分析查询映射关系:JNO-SNO-select JNO From SPJ Where SNO not in (select SNO from S where CITY=天津) and PNO not in (select PNO from P where COLOR
17、=红);(5)求至少用了 S1 供应商所提供全部零件的工程号 JNOSelect JNO From SPJ Where PNO =P1 And JNO in (select JNO from SPJ where PNO=P2);(1)统计每种零件的供应总量这里要使用集函数:寻找每种零件的总量就是就是将所有编号一致的零件数相加;集函数的使用方法,例如下面的意思是在同一个 PNO 下 QTY 的总量,统计条件的设置显得尤为重要Select distinct PNO,count(QTY) From SPJ Group by PNO;(2)求零件供应总量在 1000 种以上的供应商的名字多表查询:在
18、SPJ 中找到哦供应商的编号,在到 s 表中寻找供应商的名字Select SNAME From S Where SNO=(select SNO from SPJ where count(QTY)1000);(3)在 s 表中插入一条供应商信息:(S6 ,华天,深圳);插入语句:Insert into S Values(s6,华天,深圳);(4)把全部红色零件的颜色改为粉红色;更新操作,必须先找出这些元组,以便进行操作,这个操作是修改多个元组数据的操作要利用带有子查询的修改语句:Update P Set color=粉红色 Where COLOR=(select COLOR from P whe
19、re color=红色);/寻找符合条件的元组(5)将 S1 供应给 J1 的零件 P1 改为 P2 供应;首先要找到这条记录Update SPJ Set PNO=P2 Where SNO=S1 and PNO=P1 and JNO=J1;(6)删除全部蓝色零件及相应的 SPJ 记录;Delete From SPJ Where PNO=(select PNO from P where color=蓝色);Delete From P Where color=蓝色;6.在上面各表的基础上创建下列试图 VSJ,它记录了给“三建”工程项目的供应零件的情况,包括供应商号,零件号和零件数量;并对该试图查询
20、 S1 供应商的供货情况。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=三建 针对该视图V SP 完成下列查询:(1)找出三建工程项目使用的各种零 件代码及其数量。SELECT DIST PNO,QTY FROM VSP (2)找出供应商 S1 的供应情况。SELECT DIST * FROM VSP WHERE SNO=S17.针对第 2 题创建的表,用 SQL 语言进行下列各项操作:(1)将 S,P,J 和 SPJ 表的所有权限授予用户张成。(2)将 SPL 表的 SELEC
21、T 权和 QTY 列的 UPDATE 权授予用户徐天,并允许他传播这些权限。(3)回收刘斓用户对 S 表 SNO 列的修改权。GRANT ALL PRIVILEGES ON TABLE S,P,J,SPJ TO 张成;将 SPJ 表的 SELECT 权和 QTY 列的 UPDATE 权授予用户徐天,并允许他传播这些权限GRANT UPDATE (QTY),SELECT ON TABLE SPJ TO 徐天 WITH GRANT OPTION;回收刘斓用户对 S 表 SNO 列的修改权REVOKE UPDATE (SNO) ON TABLE S FROM 刘斓;P1433.今要建立关于系,学生,
22、班级,学会诸信息的一个关系数据库。一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号,姓名,出生年月,系名,班号,宿舍号。描述班级的属性有:班号,专业名,系名,人数,入校年份。描述系的属性有:系名,系号,系办公窒地点,人数。描述学会的属性有:学会名,成立年份,地点,人数。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选码和外部码。关系模式如下
23、:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系: D(Dept,Dno,Doffice,Dnum)学会:M(Mname,Myear,Maddr,Mnum)每个关系模式的最小函数依赖集:确定出该关系模式各个非主属性的最小函数依赖集学生 S:Sno-Sname,Sno-Sbirth,Sno-Class,Class-Dept,Dept-Rno传递依赖:Sno-Rno,Class-Dept,Sno-Dept候选码:Sno外部码:Class,Dept班级 C:Class-Pname,Class-Cnum,P
24、name-Dept,Class-Cyear传递依赖:Class-Dept候选码:Class系 D:Dno-Dept,Dno-Doffice,Dno-Dnum;候选码:Dno 或 Dept不存在传递依赖关系;学会 M:Mname-Myear,Mname-Maddr,Mname-Mnum候选码:Mname不存在传递函数依赖关系;关系判断:(1)若 R.A-R.B , R.B-R.C,则 R.A-R.C正确,传递函数依赖;(2)若 R.A-R.B,R.A-R.C,则 R.A-R.(B,C);错误,(3)若 R.B-R.A,R.C-R.A,则 R.(B,C)-R.A正确,(4)若 R.(B,C)-R.
25、A,则 R.B-R.A,R.C-R.A错误,例如:R(sno,cno,grade) (sno,cno)-grade; sno-grade,cno-gradeP183什么是数据库的安全性?什么是数据库的完整性?两者之间有什么联系和区别?1 数据库的安全 性是指保护数据库以防止不 合法的使用所造成的数据泄 露、 更改或破坏。2 数据库的完整性是指数据的正确性和相容性3 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存 在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果
26、。后者是保护数据库防止恶意的破坏和非法的 存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是 不合语义的数据。6.假设有下面两个关系模式;职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码;用 SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。CREATE TABLE 职工(职工号 CHAR(5)PRIMARY KEY,姓名 CHAR(8)NOT NULL,年龄 SMALLINT职务 CHAR(10),工资
27、 DECIMAL(7,2),部门号 CHAR(5)。CONSTRAINT CI CHECK(年龄 60)CONSTRAIN C2 FOREIGN KEY(部门号)REFEENCES 部门(部门号);CREAT TABLE 部门(部门号 CHAR(5)PRIMARY KEY名称 CHAR(l)经理名 CHAR(8)电话 CHAR(8)CONSTRAINT C3 FOREIGN KEY(经理名)REFERECES 职工(姓名);13.设 T1,T2 ,T3 是如下的三个事务:T1:A:=A+2 ;T2:A:=A*2;T3:A:=A*2;(A )设 A 的初值为 0;若这三个事务允许并行执行,则有多
28、少可能的正确结果,请一一列举出来;请给出一个可串行化地调度,并给出执行结果;请给出一个非串行化地调度,并给出执行结果;若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。(1)正确结果:T1T2T3,结果为 16;T1T3T2,结果为 8;T2T1T3,结果为4;T2T3 T1,结果为 2;T3T1T2 ,结果为 4;T3 T2T1,结果为 2;四种正确结果:16、8、4、2。(2)可串行化调度:执行结果为 8。 T3 T2 T1 read(A)A := A 2Write(A) read(A)A := A*2Write(A)
29、 read(A)A := A*2Write(A) (3)不可串行化调度:执行结果为 0。 T3 read(A) A := A 2Write(A) T1 T2 read(A) A := A*2Write(A) read(A)A := A*2Write(A) T1 T2 T3 (4)遵循两段锁协议,不产生死锁的可串行化调度。 Lock-s(B)read(B)Lock-x(A)A := A 2Write(A)unlock Lock-x(A)read(A)A := A*2Write(A)Lock-S(B)read(B)unlock Lock-x(A)read(A)A := A*2Write(A)unl
30、ock T1 T2 T3 (5)遵循两段锁协议,产生死锁的可串行化调度。 Lock-x(A)read(A)A := A*2Write(A)Lock-S(B)waitread(B)unlock Lock-x(A)WaitWaitwaitWaitWaitread(A)A := A*2Write(A)unlock Lock-s(B)read(B)Lock-x(A)waitwaitwaitA := A 2Write(A)unlock P213试述数据库设计的基本步骤。(1)需求分析阶段:需求收集和分析,得到数据字典和数据流图。 (2)概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用 E-
31、R 图表示。(3)逻辑结构设计阶段:将概念结构转换为某个 DBMS 所支持的数据模型。(4)数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构。(5)数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。(6)数据库运行和维护阶段:对数据库系统进行评价、调整与修改。8.规范化理论对数据库设计有什么指导意义?答 : 规 范 化 理 论 为 数 据 库 设 计 人 员 判 断 关 系 模 式 的 优 劣 提 供 了 理 论 标 准 , 可 用 以 指 导 关 系 数 据 模型 的 优 化 , 用 来 预 测 模 式 可 能 出 现 的 问 题 , 为 设 计 人 员 提 供 了 自 动 产 生 各 种 模 式 的 算法工具,使数据 库设计工作有了严格的理论 基础。