数据库技术作业和答案(包括习题答案) - 图文

更新时间:2024-04-13 06:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库系统原理与设计 第1章 绪 论

一、选择题

1. 关于数据库的说法不正确的是( )。

A. 一个相互关联的数据集合 C. 是信息系统的核心和基础

B. 包含了关于某个企业或组织的信息 D. 是一种数据管理的软件

2. 关于数据库系统的说法不正确的是( )。

A. 数据库系统是指引入数据库技术后的计算机系统 B. 狭义地讲,数据库系统就是数据库管理系统

C. 狭义地讲,数据库系统由数据库和数据库管理系统组成

D. 广义地讲,数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据

库管理员和用户构成

3. 下列不是数据库系统与文件系统的本质区别是( )。

A. 数据库系统实现了整体数据结构化,而文件系统只考虑某个具体应用的数据结构 B. 数据具有较高的共享性,减少了冗余;文件之间基本不能共享,导致数据冗余度高 C. 数据库系统中程序与数据的逻辑结构和物理存储相独立,而文件系统中数据逻辑结构

与文件结构紧密联系

D. 数据由数据库管理系统统一管理和控制

4. 事务(Transaction)是用户定义的一个数据库操作序列,下列( )不是它的特性。

A. 原子性 A. 数据文件 A. 数据

B. 一致性 B. 数据字典

C. 并发性 C. 索引

B. 数据间的联系 D. 数据模型 B. 数据库 D. 文件

B. 模式/外模式,外模式/内模式 D. 外模式/内模式,内模式/安全模式 B. 外模式/内模式映像 D. 内模式/外模式映像

D. 持续性 D. 散列

5. 下列( )不是数据库中数据的主要结构。 6. 数据库中存储的是( )。

C. 数据及数据间的联系 A. 数据库系统

7. 下列( )是存储在计算机内结构化的数据集合。

C. 数据库管理系统

8. 下列( )是数据库的两级映像。

A. 外模式/模式,模式/内模式 C. 模式/内模式,内模式/外模式 9. 数据的物理独立性是( )实现的。

A. 外模式/模式映像 C. 模式/内模式映像

10. 下列关于数据模型的说法不正确的是( )。

A. 数据模型就是对现实世界数据特征的模拟和抽象

B. 数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合

2 C. 仅反映数据本身

数据库系统原理与设计 D. 数据模型是数据库系统的核心和基础,任何一个数据库管理系统均是基于某种数据模

型的

二、填空题

1. 数据处理的核心问题是 。 2. 数据库系统一般由 组成。 3. 数据库(DataBase)是 数据集合。

4. 内模式也称 模式,描述了 。一个数据库只有___个内模式。

5. 模式也称 ,它描述了 。一个数据库只有 个模式。

6. 外模式也称 模式或 模式,它描述了 。外模式通常是 的子集,一个数据库可以有 个外模式。

7. 数据模型(Data Model)是一个 的集合。 8. DBMS的主要职能是 。

9. ____是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。 10、由P.P.S.Chen于1976年提出的_________是一种最著名的概念模型。 11、_______提供了实体集、属性和联系集的表示方法 12、______模型建立在集合代数的理论基础上 13、关系模型的数据结构就是一张_________表。

14、________是数据库系统中最早出现的一种数据模型,它用树形结构来表示各类实体以及实体间的联系。

15、________不仅去掉了层次模型的两个限制(即允许多个结点没有双亲结点,允许结点有多个双亲结点),还允许两个结点之间存在多种联系。

三、简答题

1. 简述什么是数据、数据库、数据库管理系统、数据库系统? 2. 简述文件系统与数据库系统的区别和联系? 3. 简述数据库系统的特点?

4. 简述数据库管理系统DBMS的主要功能? 5. 简述数据库系统的组成? 6. 数据库管理员DBA有哪些职责?

7. 试述数据库系统三级模式结构,这种结构的优点是什么? 8. 简述什么是数据模型、数据模型的作用以及数据模型的组成? 9. 试述关系数据库的特点。 10. 解释层次模型。

四、术语翻译

1、DBA 2、DBMS 3、Data Model 4、DataBase 5、E_R图 6、DDL 7、DML 8、DD

9、Internal Schema 10、External Schema

数据库系统原理与设计 3 第2章 实体-联系模型

一、选择题

1. 实体-联系模型是( )。

A. 概念模型 A. 候选码 A. 子类

4. 弱实体集是( )

A. 实体集的属性不足以形成主码 C. 有主码的实体集 5. 联系集的类型有( )

A. 一对一

B. 一对一、一对多

D. 一对一、一对多和多对多 C. 椭圆 C. age C. 属性

D. 线段 D. gender D. 聚集 D. CNO,SNO

C. 一对多和多对多 6. E-R图中,( )表示实体集。

A. 矩形 A. Emp-name A. 子类 A. SNO A. 多值 C. 复合

B. 双矩形 B. Emp-id B. 联系

7. 职员(Employees)属性描述有:Emp-id、Emp-name、age和genderx等,主键是( ) 8. 低层实体集继承了高层实体集的( )。

9. 学生选课表SC(学号SNO,课程号CNO,学分Credit),其中,主键是( )

B. Credit C. CNO

B. 单一 D. 属性组

10. 属性可以是( )的。

B. 弱实体集不存在依赖于标识实体集 D. 与其它实体集无关联

B. 逻辑模型 B. 超码 B. 继承

C. 现实世界 C. 弱实体集 C. 约束

D. 物理模型 D. 复合属性 D. 聚集

2. 对学生实体,学号和姓名可作( )

3. 由特殊化和一般化所产生的高层实体集和低层实体集之间存在一种特殊的( )关系。

4

数据库系统原理与设计 二、填空题

1. 实体是 “事件”或“物体”。 2. 弱实体集的属性 。

3. 在一个实体集中,唯一标识一个实体的属性集合称为 。 4. 存在一类超码,它的任意真子集都不再是超码,称之为 。

5. 在多个候选码当中,由数据库设计人员选定其中一个作为实体集的 。 6. 实体-联系模型采用________方法描述实体与实体之间的联系。 7. 实体所具有的某一特性称为_________.

8. 每个属性都有一个可取值的集合,称为该属性的_______ 9. 简单属性是指不可________的属性

10. 多个实体之间一对一联系、一对多联系和多对多联系与多个实体两两之间的相应联系是________的。

三、思考题

1. 试给出三个实际生活中存在的联系,并画出相应的E-R图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。

2. 某校有几栋不同的教学楼,每栋楼有楼号、位臵、教室数量等属性,每栋楼都有许多教室,教室有房间号、大小、书桌数量等属性,试画出教学楼和教室的E-R图。

3. 设某一图书借阅系统:保存书籍信息、借书人信息、书籍的出版社信息。所有各类书籍均可由书号惟一标识;任何人可借多种书,任何一种书可为多个人借,借书证号具有惟一性;一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。

要求:

(1)可查询书库中现有书籍的品种、数量和存放位臵。

(2)可查询书籍的借、还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期,所借书名、出版社名。

试画出该系统的E-R图,并标注主属性。 4. 设某学校教务管理系统有实体:

学生(Student):属性stu-id、stu-name、age和sex等; 课程(Course):属性course-id、course-name、level等; 教材(Book):属性book-name、author等;

教员(Teacher):属性teacher-id、title、address等; 教室(Classroom):属性classroom-id、classroom-name等。 这些实体之间的联系如下:

(1)每门课程可以有若干个教员讲授,使用若干本教材;每一位教员只讲授一门课程;每一本教材只供一门课程使用;

(2)每门课程需要占用多个教室;每个教室可以供给多门课程使用。用属性use-date来表示课程占用教室的时间;

数据库系统原理与设计 5 (3)每名学生可以选择多门课程;每门课程可以供多名学生学习。用属性grade来表示该生所选课程的成绩。

试画出该应用环境下的E-R图。

5、课程、教师与参考书三个实体型,一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,画出E-R图。

四.术语翻译 1、key 2、Superkey

3、Entity-Relationship Model 4、Entity Set 5、domain

6、Relationship Set 7、Weak Entity Set 8、attribute 9、Entity Type 10、primary key

第3章 关系数据模型

一、选择题

1. 以下数据库的数据模型中,现今使用的主要的数据模型是( )。

A. 层次模型

B. 网状模型

C. 关系模型

D. 面向对象模型

2. 在关系演算中,元组变量的变化范围是( )。

A. 某一命名的关系 C. 某一个域 3. 关系模型是( )。

A. 用关系表示实体 C. 用关系表示实体及其联系

Select 姓名,年龄 From 学生

Where 籍贯='北京'

B. 数据库中的所有关系 D. 数据库中的所有域 B. 用关系表示联系 D. 用关系表示属性

4. 已知学生关系:(学号,性别,年龄,籍贯),若执行SQL语句:

说明该语句对学生执行了( )操作.

A. 交和选择 C. 选择和连接

B. 投影和选择 D. 连接和投影

5. 下述哪个不是关系代数的四个组合操作之一( )。

6 A. 交

A. 不能有两个 C. 可以取空值 A. M A. M

数据库系统原理与设计 B. 连接 B. N B. N

C. 关系模型

D. 笛卡儿积

6. 根据关系模型的完整性规则,一个关系中的主码( )。

B. 不可作为其他关系的外部键 D. 不可以是属性组合 C. M*N C. M*N

D. M+N D. M+N

7. 设关系R是M元关系,关系S是N元关系,则关系R和S的笛卡尔积为( )元关系。 8. 设关系R有M个元组,关系S有N个元组,则关系R和S的笛卡尔积有( )个元组。 9. 关系操作的特点是()方式。

A. 一次一集合 B. 一次一记录 C. 查询 D. 修改 10. 关系的每个分量必须是()

A. 多值的 B. 复合的 C. 可再分的 D. 原子项

二、填空题

1. 从逻辑结构的角度进行分类,数据库的数据模型主要有 和 模型。

2. 传统的关系运算可以用两种方法定义,即 和 。后者又可以再分为 和 。

3. 关系代数的基本操作是 , , , , 5种,其余的操作都可以用它们导出。

4. DBMS对数据库的保护机制主要包括 , , 和 等4个方面。

5. 关系模型由三部分组成,分别为 、 和 。 6. 关系数据模型中可以有三类完整性约束,包括 , 和 。 7. 当代SQL的主要特征应该是基于 的,同时又兼有 的特性。 8. 关系的每个分量必须是_______.

9.__________运算是在关系R中选出若干属性列组成新的关系 10.__________运算是通过聚集函数来计算集合元素的统计信息。

三、思考题

1. 请简述关系数据模型中,关系(表)的特点和性质:

2. 请用实体完整性规则解释关系数据库中,表的主码(主键)不能取空值的原因。 3. 请简述关系数据模型的优点与局限性。 4. 简述参照完整性及其意义。

5. 简述关系数据语言的特点。

四、存在如下三个关系表,如图所示,请用关系代数的形式完成相应操作。

S:学生信息表、C:课程信息表、SC:学生选课成绩表

数据库系统原理与设计 S:学生信息表 C:课程信息表 SNO SNAME AGE SEX 1 2 3 赵新 刘丽 孙红 23 22 22 男 女 男 SC:学生选课成绩表 SNO CNO GRADE 1 2 5 2 5 5 C1 C1 C1 C5 C5 C8 83 85 92 90 84 80 CNO C1 C5 C8 CNAME C语言 数据库原理 编译原理 TEACHER 王华 张军 张军 7

图3-13

1检索“张军”老师所授课程的课程号CNO和课程名CNAME; 2检索年龄大于21的男学生学号SNO和姓名SNAME;

3检索至少选修“张军”老师所授全部课程的学生姓名SNAME; 4检索“赵新”同学不学课程的课程号; 5检索至少选修两门课程的学生学号;

6检索全部学生都选修的课程的课程号和课程名;

7检索选修课程包含“张军”老师所授课程之一的学生学号; 8检索选修课程号为C1和C5的学生学号; 9检索选修全部课程的学生姓名;

10检索选修课程包含学号为2的学生所修课程的学生学号; 11检索选修课程名为“C语言”的学生学号和姓

第4章 SQL

一、选择题

1. 用来插入数据的命令是( ),用于更新的命令是( )。

A. INSERT、UPDATE C. DELETE、UPDATE

中不是聚合函数的是( )。

A. SUM

B. MAX

C. LEN

D. COUNT

3. 声明游标可以用( )。

A. CREATE CURSOR C. SET CURSOR

B. ALTER CURSOR D. DECLARE CURSOR B. UPDATE、INSERT D. CREATE、INSERT INTO

2. 聚合函数是一种特殊的函数。它对一组行中的某个列执行计算,并返回单个值。下列函数

8 数据库系统原理与设计 4. SQL Server 2000中的编程语言就是( )。

A. T-SQL

A. CREATE VIEW C. CREATE RULE A. DDL C. DML A. 查询 C. 更新 A. group by C. create A. 视图 C. 关系 A. 导出表 C. 参照表

B. S-SQL

C. Q-SQL

D. R-SQL

5. 创建用户自定义函数的命令是( )。

B. CREATE TRIGGER D. CREATE FUNCTION B. DD D. DBMS B. 插入 D. 删除 B. select D. order by B. 模式 D. 导出表 B. 视图 D. 关系

6. ( )主要是对关系中的数据进行查询、插入、删除和更新操作。

7. ( )操作是DML的主要部分,也是SQL结构化查询的核心部分。

8. 通过( )子句,可以依据某个关键字或某些关键字对结果表进行升序或降序排列。

9. ( )是建立在基本表之上的虚表,它是数据库中数据的不同表现形式。

10. 对( )的一切操作最终都会被转换为对基本表的操作。

二、填空题

1. 用SELECT进行模糊查询时,可以使用 或 匹配符。 2. 假定利用CREATE TABLE命令建立如下一个表:BOOK(总编号C(6),分类号C(3),书名C(16),单价N(10,2)),则单价字段的类型为 型,字段宽度为 ,其中包含有 位小数。

3. SQL语言是一种 型数据库系统,它是以 的形式组织起来的数据集合,二维表中的一行,在关系中称为 ;二维表中的一列, 在关系中称为 。

4. 数据库操纵技术就是指插入、 、 和检索表中数据的技术。其中,前三种又被并称为更新操作。

5. 数据查询语句SELECT的语法中,必不可少的子句是 和 。 6. HAVING 短语必须跟随 使用,它用来限定分组必须满足的条件。 7. 在关系数据库中,关系有3种类型___________。 8._________即实际存储在数据库中的表,是“实表”.

9. _____________是由一个或者若干个基本表以及其他视图构成的表,是“虚表 10. 删除当前数据库用户的操作权限,通过_________语句来实现。

数据库系统原理与设计 9 三、思考题

对于银行系统关系。

Branch(branch_name nvarchar(10), branch_city nvarchar(10), asserts int)

Customer(customer_name nvarchar(10),customer_street nvarchar(10), customer_city nvarchar(10))

Loan(loan_number nvarchar(10), branch_name nvarchar(10), amount int) Borrower(customer_name nvarchar(10), loan_number nvarchar(10))

Account(account_number nvarchar(10), branch_name nvarchar(10), balance int) Depositor(customer_name nvarchar(10), account_number nvarchar(10))

试用SQL查询语句来表达下列查询。

1创建Branch表,其中branch_name和branch_city为联合主键。

2向Branch表中增加一个“address”列,其数据类型为10个字长的unicode字符串。 3删除Branch表的address列。

4查询位于'广州'的,资产在10,000,000以上的的支行名。 5查询customer_street中含有'广州大道中'的顾客的信息。 6查询名字为'Tom'的所有贷款信息。

7查询'中国工商银行'的贷款信息,结果按贷款额降序排列。 8显示每个银行贷款额最大的那条贷款信息。

9创建一个视图来显示每个顾客的顾客信息,贷款总额。 10删除所有贷款在100以下的贷款记录。 11删除每家支行贷款数额最大的记录。

四、上机题

在SQL 2000中,建立以下表,并完成模拟数据输入,实现查询要求。并用关系代数表达式完成下列查询。

产品Product(厂商,型号,类型),个人计算机PC(型号,速度,ram,硬盘,光驱,价格) 便携式电脑laptop(型号,速度,ram,硬盘,屏幕尺寸,价格),打印机Priter(型号,颜色,类型,价格)。

1、什么型号的PC速度至少为150?

2、哪个厂商生产的便携式电脑具有最少1G字节的硬盘。 3、找出厂商B生产的所有产品(任一类型)的型号和价格。 4、找出所有彩色激光打印机的型号。

5、找出销售便携式电脑但不销售PC的厂商。 6、找出在两个或两个以上PC中出现的硬盘容量。

7、找出速度相同且RAM相同的成对的PC型号。一对型号只列一次。如列出(i, j) ,就不再列出(j, i)。

8、找出至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商。 9、找出生产最高速度的计算机(PC或便携式电脑)的厂商。 10、找出至少生产三种不同速度PC的厂商。 11、找出只卖三种不同型号PC的厂商。

10 五、 设计题

数据库系统原理与设计 一个电影资料数据库假定有三个基本表:电影表Movie、演员表Actor和电影主演表Acts。这三个关系的模式如下:

(1)电影表Movie(电影名称Title,制作年份Year,长度Length)。

(2)演员表Actor(姓名Name,地址Address,性别Gender,出生日期Birthdate)。 (3)电影主演表Acts(电影名称MovieTitle,制作年份MovieYear,主演姓名ActorName)。 用SQL实现如下查询或更新操作:

1统计1999年制作电影的平均长度和最短长度。 2在1999年主演过电影的演员姓名。 3把电影“的世界”的长度改为110分钟。

4删除1940年以前制作的所有电影记录以及电影主演记录。

第5章 查询处理和查询优化

一、选择题

1. ( )就是能从这许多查询策略中找出最有效的查询执行计划的一种处理过程。

A. 查询分析 B. 查询翻译 C. 查询优化 D. 查询执行

2. 把磁盘块传送数作为实际代价的一个量度。一个比较准确的量度应估计下面的哪些因素( )。

A. 执行的寻道操作的数量 B. 读取的磁盘块的数量 C. 写入的磁盘块的数星 D. 内存的传输速度

3. 因为每个中间运算的结果被创建,然后用于下一层的运算,这种查询表达式的计算方法被称为( )计算。

A. 实体化 B. 流水线 C. 双缓冲 D. 临时区

4. 如果文件没有使用索引,并按某一属性排序,且选择条件是该属性上的等值比较,则可用( )的选择运算算法来定位符合选择条件的记录。

A. 线性搜索 B. 二分搜索 C. 聚簇索引

D. 辅助索引

数据库系统原理与设计 11 5. 下面哪条是选择运算的级联定律( )。

A. σF1 ^ F2 (E) ≡ σF1 (σF2 (E)) B. σF1 (σF2 (E)) ≡ σF2 (σF1 (E) C. ПA1 (ПA2(…(ПAn(E))…) ≡ ПA1(E) D. ПA (E1 ∪ E2) ≡ ПA (E1) ∪ ПA (E2) 6. 关系查询处理包括( )

A. 查询分析和检查 B. 查询翻译 C. 查询优化 D. 查询执行

7. ( )的目的就是要选择一个使得时间代价和空间代价综合考虑最合理的高效查询执

行计划。

A. 查询优化 B. 查询执行 C. 查询翻译 D. 查询分析

8. 两个关系表达式是( )的是指在任一种有效数据库实例中它们都会产生相同的元组集。

A. 实体化 B. 流水线 C. 优化 D. 等价

9. 按启发式规则应尽早执行( )运算

A. 选择 B. 连接 C. 投影 D. 笛卡尔积

10. 对于一组等价规则,若其中任一条规则都不能由其他规则组合起来,则这组等价规则被称为( )。

A. 等价表达式 B. 等价规则集 C. 启发式

D. 最小的等价规则集

二、填空题

1. 关系查询处理可以分4个步骤,包括 、 、 、 。 2. 查询处理器由查询编译器和执行引擎两部分组成,而查询编译器又包括 、 、 。

3. 对于线性搜索,如果该数据文件中有N个磁盘块数,在码属性上进行选择运算,则它的理

12 想情况的代价为 。

数据库系统原理与设计 4. 对于表达式 Пsname(σcname=”数据库原理”(course 转换为 。

(sc student))),利用等价规则,可以将它

5. 典型的启发式优化规则有:尽早执行 、尽早执行 。

6. 对于线性搜索,如果该数据文件中有N个磁盘块数,在码属性上进行选择运算,则它的平均代价为 。

7. 对于线性搜索,如果该数据文件中有N个磁盘块数,在码属性上进行选择运算,则它的最坏情况的代价为 。

8. 一般来说,_________的实现代价很大。

9. 启发式规则重新组织初始查询树表示,让可以减少中间结果的运算首先执行;尽早_________减少元组数。

10. 启发式规则重新组织初始查询树表示,应尽早_______减少属性数

三、名词解释

1、关系表达式 2、查询处理 3、查询优化 5、查询树 6、流水线 7、等价规则 四、简述题

1. 简述查询优化的一般步骤。 2. 简述查询优化的一般准则。 3. 考虑一个银行数据库例子:

Branch(branch-name, branch-city, assets)

4、查询处理代价

有下面的SQL查询语句;

Select T.branch-name from branch T, branch S

where T.assets > S.assets and S.branch-city=”Brooklyn”

写一个与此等价的、高效的关系代数表达式,并证明你的选择的正确性。 五、设计题

考虑学生-课程数据库有如下的查询:

Select cname

From student, course, sc

Where student.sno=sc.sno and sc.cno=course.cno and student.sdept=”CS”

试画出用关系表达式表示的语法树(查询树),并用关系表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。

数据库系统原理与设计 13 第6章 关系数据理论

一、选择题

1. 不满足( )的数据库就不是关系数据库。

A. 第一范式

B. 第二范式

C. 第三范式

D. 第四范式

2. 2NF要求实体的非主属性完全函数依赖于主码。即不能存在仅依赖主码一部分的属性,如果存在,那么这个属性和主码的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是( )的关系。

A. 多对多 A. 插入异常

B. 删除异常、数据冗余度大 C. 更新困难

D. 插入异常、删除异常、数据冗余度大、更新困难 4. 多值依赖具有( )性质。

A. 对称性

B. 传递性 D. 非对称性 C. BCNF

D. 3NF

C. 对称性、传递性 A. 2NF

B. 4NF B. 一对多

C. 一对一

D. 一对一或一对多

3. 设计不好的数据库有可能会( )。

5. 若要求分解具有无损连接性,那么模式分解一定能够达到( )。 6. 关系规范化中删除操作异常指( )。

A. 不该删的数据被删 B. 该删的数据未被删 C. 不能删除 D. 都不是 7. 关系规范化中插入操作异常指( )。

A. 不该插入的数据被插入 B. 该插入的数据未被插入 C. 不能插入 D. 都不是 8. 规范化主要理论依据是( )理论。

A. 关系规范化 A. 2NF A. 可能是1NF

B. 关系运算 B. 4NF B. 必定是1NF

C. 关系代数 C. BCNF C. 必定是BCNF

D. 数理逻辑 D. 3NF D. 必定是3NF

9. 在关系DB中,任何二元关系模式的最高范式必定是( )。 10. 关系模式中,满足2NF的模式,( )。

二、填空题

1. 第一范式是指同一列中不能有 ,即实体中的某个属性必须是原子项 2. 2NF要求实体的非主属性 依赖于主码。

3. 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持 。同样,保持函数依赖的分解也不一定具有 。

4. 在数据库中,数据的冗余会引起各种操作异常,包括插入异常、删除异常、更新困难。可以通过 。

14 数据库系统原理与设计 5. 是衡量模式优劣的标准, 表达了模式中数据依赖之间应满足的联系。 6.__________是指:如果关系r的两个元组在?上的属性值相等,则它们在?上的属性

值也必然相等。

7.________就是指每一个非主属性既不部分依赖于码也不传递依赖于码。 8. 若关系模式R中的每一个决定因素都含有码,则R∈_________ 9. 多值依赖具有_________性质

10. 满足________的关系模式不能存在非平凡的且非函数依赖的多值依赖

三、思考题

1. 什么是范式?为什么需要范式?

2. 关系规范化一般应遵循的原则是什么?各范式之间有什么关系? 3. 给出函数依赖的形式化定义,并理解函数依赖的意义。

4. 设有一关系:学生(学号,姓名,年龄,所在系,出生日期),依据通常的事实规则(即函数依赖关系),判断该关系属于第几范式,为什么?

5. 已知学生关系模式Student(Sno,Sname,Sdept,MN,Course,Grade),其中:Sno: 学号,Sname:学生姓名,Sdept:系名,MN:系主任名,Course:课程名,Grade:成绩。写出关系模式Student的基本函数依赖及其主码。

6. 将上述关系模式分解为2NF,并说明为什么? 7、 将上述关系模式分解为3NF,并说明为什么? 8. 3NF和BCNF的区别和联系各是什么? 9. 什么是多值依赖?什么是4NF?

10. 什么是Armstrong公理系统?Armstrong公理系统是有效性和完备性是何意?

11. 已知关系模式R,其中U={A,B,C,D,E,G},F={AB→C,D→EG,C →A,BE→C,BC→D,CG→BD,ACD→B,CE→AG},求(BD)?F。

12. 已知关系模式R,其中U={A,B,C },F={A→B,B→A,B →C,A→C, C→A },求F的最小函数依赖集Fmin。

13. 已知关系模式R,其中U={A,B,C,D,E,G},F={A→B, C →G, E→A, CE→D},现对其作如下分解:?={R1,R2}.求R的码,并判断分解?是否具有无损连接性。

14. 上题中,R1,R2属于第几范式。

15. 已知关系模式R,其中U={A,B,C,D,E },F={A→D, E→D, D→B, BC→D,DE→A },现对其作如下分解:?={R1,R2,R3,R4,R5}。求R的码,并判断分解?是否具有无损连接性。

16. 将上题中的R分解为3NF,并是其中每一个关系模式均具有无损连接性和保持函数依赖性。

17. 证明在关系数据库中,任何二元关系模式必定是BCNF。

数据库系统原理与设计 15 第7章 数据库设计

一、选择题

1. 数据字典的内容应包括( )。

A. 数据项,数据结构

B. 数据流,数据存储,处理过程

C. 数据项,数据结构,数据流,数据存储,处理过程 D. 数据结构,数据流 2. 概念设计的步骤是( )。

A. 进行数据抽象,设计局部概念模式;评审;集成局部概念模式,得到全局概念模式 B. 进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式;评审 C. 进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式 D. 评审;进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式 3. 对于经常在查询条件中出现的属性或者经常在聚集函数中出现的属性,可以考虑在这些属性上建立( )。

A. 视图

B. 关系

C. 连接

D. 索引

4. ( )是相互矛盾的,数据库物理设计过程中需要对它们进行折中权衡。

A. 时间效率,维护代价 B. 时间效率,空间效率

C. 时间效率,空间效率,维护代价 D. 空间效率,维护代价

5. 局部E-R图中实体类的冲突主要类型是( )。

A. 属性冲突、命名冲突和结构冲突 B. 命名冲突和属性冲突 C. 属性冲突

D. 结构冲突和命名冲突

6. 概念设计中最著名、最实用的方法就是P.P.S.Chen提出的( )。

A. 实体联系模型 B. 物理模型 C. 逻辑模型 D. 形象模型

7. 概念模型独立于( )。

A. E-R模型

B. 硬件设备和DBMS C. DBMS D. 操作系统

8. 数据库的物理结构依赖于给定的( )。

A. E-R模型

16 B. 硬件设备和DBMS C. DBMS D. 操作系统

数据库系统原理与设计 9. DFD是用于描述结构化方法中( )阶段的工具。

A. 可行性分析 B. 详细设计 C. 需求分析 D. 程序编码

10. 数据库逻辑设计的主要任务是( )。

A. 建立E—R图和说明书 B. 创建数据库说明 C. 建立数据流图 D. 把数据送入数据库

二、填空题

1. 是关于数据库中数据的描述,即对元数据的描述。 2. 概念设计中最著名、最实用的方法就是 。

3. 对于1:1的联系,两个实体中任何一个实体的标识符都可以作为关系模式的 。

4. 一般地,属性个数少的表上不建 ,不同属性值少的属性上也不用建 ,元组数少或跟新频率高的关系上也不建 。

5. 如果实体间的联系名相同但联系类型不同,就产生了联系类 。

6. 数据库的结构特性设计先将现实世界中的_________用E-R图表示,再将各个分E-R图综合起来,得出数据库的概念结构模型。

7. 数据库的行为特性设计首先是要确定用户的行为,即用户对数据的查询、统计以及报表处理方式等,再根据用户行为特性设计_______。

8. 进行数据库行为特性设计的时候,要将现实世界中的数据及应用情况用数据流程图和______表示出来。

9. 数据库的物理设计即是在现有的_______环境下,把数据库的逻辑结构模型加以物理实现。 10.应用程序利用________可以有效地访问数据库中的数据,同时又不破坏数据库,提高了数据库的安全性。

三、思考题

1. 简述数据库设计的过程。

2. 数据库设计几个阶段各自的主要任务是什么? 3. 进行需求分析调查的主要方法有哪些? 4. 数据字典的内容有哪些?

数据库系统原理与设计 5. 概念设计的重要性体现在哪里? 6. 简述概念设计的方法。 7. 简述逻辑设计的一般过程。 8. 什么是数据库的物理设计? 9. 为什么要进行数据库试运行?

10. 数据库的重组织和重构造有什么区别?

17 第8章 数据库保护

一、选择题

1. 用户标识与系统鉴别属于( )技术。

A. 访问控制

许可权。

A. 强制存取控制

检查。

A. 删除

B. 插入或修改

C. 查询

D. 删除、插入或修改

4. SQL的默认策略是任何与( )约束相违背的更新均为系统拒绝。

A. 用户定义的完整性 B. 实体完整性 C. 参照完整性

D. 用户定义的完整性和参照完整性 5. 常用的用户标识方法是( )。

A. 用户密码 C. 用户权限

B. 用户名和口令字 D. 用户名 B. 完整性控制 D. 数据库恢复 B. 完整性 D. 恢复 B. 授权 D. 视图

B. 自主存取控制 C. 视图机制

D. 基于角色的访问控制

3. SQL系统只在用户对关系进行( )操作时,DBMS才按照实体完整性规则对键码进行

B. 接入控制

C. 完整性约束

D. 恢复

2. ( )将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问

6. 数据库保护包括( )。

A. 数据库安全性控制 C. 并发控制 A. 安全性 C. 并发控制 A. 命令 C. 审计

7. 保护数据库,防止不合法使用造成数据泄露、修改或破坏,这是数据的( )。

8. 对存取权限的定义称为( )。

9. 存取控制机制包含对用户( )进行定义,并将其写入数据字典中,作为安全规则或授权

18 规则。

A. 用户密码 C. 用户权限

数据库系统原理与设计 B. 用户名和口令字 D. 用户名

10. 通过定义不同的( )及有选择地授予( )的权限,可以将用户、组或角色限制在不同的数据子集内,把要保密的数据对无权限的用户隐藏起来,。

A. 视图 C. 角色

B. 用户 D. 视图上

二、填空题

1. 是指对数据库中数据的保护措施,防止不合法使用造成数据泄露、修改或破坏。

2. 是指保护数据库数据的正确性和有效性,防止数据库中存在不符合语义的、不正确的数据。

3. 一个关系表中只能有 个PRIMARY KEY,UNIQUE可以有 多个。 4. 对于因对被参照关系进行删除或修改时造成的参照不一致,还可以采取 策略,将参照关系中所有造成不一致元组的属性 。

5. 触发程序要对 进行测试,不满足 ,不动作。

6. 数据库_________包括数据库安全性控制、完整性控制、并发控制和数据库恢复。

7. 数据库的安全性是指对数据库中数据的保护措施,防止不合法使用造成数据泄露、修改或破坏。通常采用_______________等安全策略来保证数据安全。

8. DBMS必须提供保护机制,防止非法用户的恶意破坏和非法存取操作;保证机密数据只能被有权限的用户或进程访问;允许其他数据以只读形式访问,但不允许________。

9. 访问控制策略体现了一种_________,即客体对主体的权限允许。

10.___________________,也称为任意访问控制,允许合法权限的用户访问策略规定的客体,某些用户还可以自主地把自己所拥有的客体访问权限授予其他用户。

11.________________权限的修改通常由特权用户或是管理员实现

12.___________是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。

13. 审计设臵及内容都放在___________中,

14. GRANT语句可以由DBA执行,也可以由__________,或是已经拥有该权限的用户。 15. 取消权限语句为___________。

三、思考题

1. 数据库的完整性和安全性有什么区别与联系? 2. 如何实现数据库的安全性? 3. 如何满足实体完整性规则要求? 4. 如何满足参照完整性规则要求? 5. 选课模式包含表

数据库系统原理与设计 Course(课程编号Cno,课程名Cname,学分Ccredit)

Student(学号Sno,姓名Sname,出生日Birthdate,性别Ssex,所在系Sdep) CS(学号Sno,课程号Cno,成绩Crade)

19 其拥有者用户USER1把对Course表的INSERT和SELECT权限以及对SC表的SELECT权限授予用户USER2和USER3,同时包括权限的授权选项。USER2再将同样的权限授予用户USER4,但是不带授权选项。然后取消授予USER2对于Course表的INSERT和SELECT权限以及对SC表的SELECT权限。

6. 定义教师表,所在系表。定义实体完整性约束,参照完整性约束,要求教师表中性别只允许取“F”或“M”,每个教师报酬不低于4000元。

7. 简述数据库安全性的目的和意义。 8. 存取控制机制包含哪些步骤?

(1)对用户权限进行定义,并将其写入数据字典中,作为安全规则或授权规则。

(2)完成合法权限检查。用户发出存取数据库的操作请求后,DBMS查找数据字典,按照授权规则完成合法权限检查,并拒绝越权操作。

9、简述自主存取控制方法的特点。 10. 主体对客体的访问有哪些方式?

第9章 数据恢复

一、选择题

1. 事务的ACID特性是( )。

A. 原子性,一致性 B. 隔离性 C. 持续性

D. 原子性,一致性,隔离性,持续性 2. 日志文件的作用是( )。

A. 进行数据恢复

B. 保证实体的完整性约束 C. 保证参照完整性约束

D. 保证用户的自定义完整性约束

3. 事务故障的恢复方法采用基于( )的数据恢复技术。

A. 系统重启 B. 转储 C. 日志 D. 用户鉴定

4. 当恢复系统故障时,需要对处于提交状态的事务进行( )操作。

A. 不做 B. 重做

20 C. 扫描 D. 备份

数据库系统原理与设计 5. ( )故障在所有的故障中,对数据库系统造成的危害最大,

A. 介质 B. 系统 C. 事务 D. 软件

6. ( )是数据库系统重要的组成部分,它具有将故障系统恢复到发生故障前某一时刻、系统保持一致状态的功能。

A. 数据存储 B. 日志 C. 事务 D. 数据恢复

7. 事务是数据库中的逻辑工作单元,事务中包括的所有操作要么都做,要么都不做,这就是事务的( )。

A. 隔离性 B. 一致性 C. 原子性 D. 持续性

8. 数据库系统可能发生各种各样的故障。大致数据故障为( )

A. 事务故障 B. 系统故障 C. 介质故障 D. 软件故障

9. 日志记录在数据库系统中有着十分重要的作用,为此必须保证存储日志文件的( )是稳定存储器。

A. 介质 B. 系统 C. 事务 D. 软件

10. ( )是指数据库管理系统定期地将整个数据库拷贝到磁带或者其他存储介质上

的一个过程。

A. 数据转储 B. 日志 C. 事务 D. 数据恢复

11. 在( )转储操作开始时,数据库处于一致状态,同时在转储期间不允许其他事

务对数据库进行任何存取、修改操作,因此数据库仍处于一致状态。

A. 动态

B. 海量 C. 静态 D. 增量

数据库系统原理与设计 21 12. ( )转储有效地克服了静态转储的缺点,它不用等待正在运行的事务结束,也

不会影响新事务的开始。

A. 动态 B. 海量 C. 静态 D. 增量

13. ( )转储是指每次转储全部数据库。 A. 动态 B. 海量 C. 静态 D. 增量

14. ( )转储是指每次只转储上一次转储后更新过的数据。

A. 动态 B. 海量 C. 静态 D. 增量

15. ( )故障是突发的,发生时可能有些事务处于提交状态,有些事务处于中止状

态。

A. 介质 B. 系统 C. 事务 D. 软件

二、填空题

1. 事务故障是指 的故障。

2. 动态转储是指在转储过程中,允许 转储方式,允许 并发执行。 3. 如果记录是做插入操作,那么撤销操作相当于 。

4. 重做事务(redo transaction)在事务日志记录中,有 记录,同时有 记录。

5. 撤销事务(undo transaction)在事务日志记录中,只有 记录。

6.___________是一种机制,是一个操作序列,是一个可以更新各个数据项的程序执行单元。 7. 通常在程序中用________________命令来标识一个事务的开始 8. 用___________命令来标识一个事务的结束。

9. 当事务没有执行到COMMIT命令就结束事务时,此时事务需要_________ 10.隔离性就是一个事务不会被任何其他的事务所_________。

22 11._________被称为软件故障 12.___________被称为硬件故障

数据库系统原理与设计 13. 当日志中包含了________后,恢复子系统的效率将大大得到提高。

14.__________是指数据库管理系统定期地将整个数据库拷贝到磁带或者其他存储介质上的一个过程。

15. 由于转储过程要占用宝贵的时间和存储资源,通常会根据数据库使用情况确定一个适当的_______________。

三、思考题

1. 试述事务的概念以及事务特性。

2. 为什么事务的非正常结束会影响数据库数据的正确性,请举例说明。 3. 为什么稳定存储器是不可能实现的? 4. 数据库系统运行时,可能出现那些故障? 5. 数据库的基本恢复技术有哪些?

6. 日志记录在数据恢复中的作用是这么样的?

7. 从实现的难易程度和开销代价的角度比较延迟修改和立即修改? 8. 什么是检查点,检查点包括什么内容? 9. 分析动态转储的优劣性。

10. 在进行数据的远程数据备份时,需要考虑哪些问题?

11. 有时事务在完成提交之后不得不撤消,因为它被错误地执行了。举例说明采用一般的事务撤消机制来撤消这种。

12. 处理这种事务不一致状态的一种方法是使用整个数据库回到错误事务提交前的某一状态,说说这种方法的优点和缺点。

13.数据库系统如何实现稳定存储器的? 14.数据库故障的分类和特点是什么? 15. 数据恢复的基本原理是什么?

第10章 并发控制

一、选择题

1、()是指事务1读取数据后,事务2已经对数据执行了更新,使得事务1再次读取数据时两次读到的数据不一致。

A、不可重复写 B、不可重复读 C、丢失修改 D、读脏数据

数据库系统原理与设计 2、判断对并发事务正确的调度是()。

A、并发事务的执行结果与并行化执行结果事务是否一致 B、事务间无冲突

C、并发事务的执行结果与串行化执行结果事务是否一致 D、视图无冲突

3、()封锁协议可以防止丢失修改,并且保证事务可恢复

A、二级 B、一级 C、三级 D、多级

4、满足()协议的调度可能存在死锁,但是()协议和()协议却不存在这个问题。

A、时间戳,有效性检查,两段锁 B、有效性检查,两段锁,时间戳 C、两段锁,一级封锁,有效性检查 D、两段锁,时间戳,有效性检查 5、X锁是()

A、读锁 B、写锁 C、共享锁 D、活锁

6、在多处理器系统中,在处理器的()支持下,并行事务真正可以并行地执行。

A、调度算法 B、封锁协议 C、并发控制 D、活锁

23 7、如何区分计算机系统对并发事务中的操作调度是正确的,惟一的办法就是判断并发

事务的执行结果与()是否一致。

A、并行化执行结果事务 B、串行化执行结果事务 C、事务 D、封锁协议

8、多个事务的并发执行是正确的,当且仅当其结果与按照执行()它们时的结果相同。

A、并行 B、封锁协议 C、调度

D、某一次序串行地

9、三级封锁协议是事务T在读取数据之前必须先对其加(),在要修改数据之前必须

先对其加(),直到事务结束后才释放所有锁。

24 A、共享锁,排它锁 B、写锁 C、共享锁 D、活锁

数据库系统原理与设计 10、()封锁协议可以防止丢失修改,并且保证事务可恢复。

A、一级 B、二级 C、三级 D、四级

11、()封锁协议不但可以防止丢失修改和读脏数据,而且可以进一步防止不可重读。

A、一级 B、二级 C、三级 D、四级

12、二级封锁协议不但可以防止丢失修改,而且可以防止()

A、不可重复写 B、事务不可恢复 C、不可重复读 D、读脏数据;

13、一个事务对某数据项加了(),那么其他事务就不能对该数据执行修改操作。

A、读锁 B、写锁 C、共享锁 D、活锁

14、事务结束指的是()。

A、事务提交成功 B、事务回滚 C、事务中断 D、事务故障

15、一级封锁协议只能保证可重读。要使事务不读脏数据,必须使用()才能解决此问

题。

A、读锁 B、写锁

C、一级封锁协议 D、二级封锁协议

二、填空题

1、引起数据不一致的主要原因是事务的_________在并发中遭到了破坏。 2、判断是一个调度是否正确的标准是___________。

数据库系统原理与设计 3、满足____________、_____________以及_____________的调度都是可串行化的。

25 4、检查一个死锁有两种方法:一种是__________,只要一个事务等待时间超过规定时间,

就认为并发系统有死锁存在;另一种方法是________________。

5、_________级封锁协议是:事务T在对数据修改前,必须先加排它锁,直到事务结束

才释放排它锁;事务T在要读取的数据前,必须先加共享锁,读完后即可释放共享锁。

6.如果对一个结点加_______,则说明该结点的下层结点正在被加锁;对任一结点加锁时,

必须先对它的上层结点加意向锁。

7._______是事务直接加到数据项上的封锁

8.________是该数据没有被独立加锁,而是由于其上级结点被加锁而使该数据加上了锁。 9. 在检查调度释放产生_____时,不但要检查显示封锁,而且要检查隐式封锁。

10. 数据库管理系统可以使用______来决定几个处于死锁的事务是哪些等待,哪些回滚。 11._______要求每个事务必须一次性将所有要使用的数据全部加锁,否则事务就不能继续

执行。

12. 在多个事务请求对同一数据封锁时,使某一用户总是处于等待的状况称为_______。 13.多事务交错等待的僵持局面称为_________。 14. 遵守两段锁协议的并发事务都是_________的

15._________封锁协议不但防止了丢失修改和不读“脏”数据,而且防止了不可重复读。

三、思考题 1. 2. 3. 4. 5. 6. 7. 8. 9.

数据库为什么要并发控制? 并发操作可能产生什么问题? 什么是封锁?

有哪几种封锁,它们的含义是什么? 有几种封锁协议,它们内容是什么? 两段锁协议的内容是什么? 时间戳协议的内容是什么? 什么是活锁,什么是死锁? 给出死锁的预防方法?

10. 当系统出现死锁是,请给出死锁恢复的步骤? 11. 什么是意向锁,有哪几种意向锁? 12. 举例说明什么是不可重复读? 13. 举例说明什么是读脏数据? 14. 举例说明怎样可重复读? 15. 举例说明怎样可不读脏数据?

第11章 对象数据库系统

一、选择题

1. 面向对象的主要特征有( )。

A. 完整性、多态性

B. 安全性、封装性

26 C. 封装性、继承性、多态性

数据库系统原理与设计 D. 可扩充性、继承性

2. 通过( )能将对象的定义和对象的实现分开,通过( )能体现类与类之间的关系,以及由此带来的动态联编和实体的( )性,从而构成了面向对象的基本特征。

A. 继承,联系,完整 C. 多态,联系,完整 A. 持久性

B. 继承

B. 封装,继承,多态 D. 封装,继承,独立 C. 多态性

D. 可扩充性

3. 不同对象的标识的( )程度是不同的。

4. 接口有3个值得注意的特性,一个是( )信息,表示子类和父类的继承关系;一个是( )信息,表示该类对象的当前集合名,用于说明类的范围;还有一个是( )信息,在类的范围内惟一标识一个对象。

A. 继承,键码,超类

B. 继承,聚簇,键码

C. 超类,外延名,键码 D. 超类,聚簇,键码 5. 到目前为止,最著名的对象-关系数据库语言是( )。

A. SQL2

B. SQL1

C. SQL4

D. SQL3

二、填空题

1. 面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的 。

2. 面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、 、继承等概念。

3. 消息是对象之间进行通信的一种规格说明。一般由三部分组成:接收消息的对象、消息名及 。

4. 将对象的实现与对象应用相互隔离,允许对操作的实现算法和数据结构进行修改;不必修改使用它们的应用,这有利于提高数据独立性。

5. 继承不仅支持系统的可重用性,而且还促进系统的 。 6. 每一个对象是其状态与行为的______。

7. 面向对象数据库的特性主要表现在______和对象的嵌套两方面 8.________是该对象一系列属性值的集合 9.________是在对象状态上操作的集合 10.操作也称为______。

三、名词解释

1. 面向对象

2. 面向对象数据库 3. 对象-关系数据库 4. ODL 5. OQL 6. SQL3

7. 类型间继承 8. 表间继承

9. SQL3函数(FUNCTION) 10. SQL3过程(PROCEDURE)

数据库系统原理与设计 27 四.思考题

1. ODL的类型系统中有哪些数据类型? 2. SQL3又有哪些数据类型?

3. 下图是大学类层次结构图,请使用ODL定义所有这些接口:

Person-name-ageUniversity-uno-uname-city-president-staff(set)-edit(set)+num-staff() : IntegerCoursetext n:1Faculty-fno-salary-works-for-teach(set)+num-tech() : Integer1:m-cname-textname-editor-teachern:1

4. 根据上题的层次结构关系,使用OQL查询语言,查询大学中授课门数超过3门的教师并列出他所在的学校名字。

5.根据上题的层次结构关系,使用OQL查询语言,查询广州范围的大学中教师开始的课程名称。6. 使用OQL查找与课程“数据库原理”相关的所有教授的名字:

7. 分别使用SQL3的函数和过程完成上题的查询功能,并给出调用该函数和过程的语句。

第12章 XML数据库

一、选择题

1. XML最大特点是( )。

A. 具有更多的结构和语义 B. 数据的可交换性 C. 可扩展性强

D. 具有自描述性和简洁性

2. XPath因为使用类似于( )的路径表示法,在一个XML文档的层次结构中进行导航而得名。

A. B+树

B. 指针

C. URL

D. 有向图

28 数据库系统原理与设计 3. ( )将成为一种用于描述对XML数据源的查询的语言,具有精确、强大和易用的特点。

A. DTD

B. XQuery

C. XML Schema D. SQL

4. ( )是XQuery的基本构造块。

A. 名字空间和模式声明 B. 函数定义 C. 查询表达式 D. 查询表达式

5. ( )用于查询XML数据,但不仅仅是XML文件,还包括一切以XML形式出现的东

西,包括数据库在内。

A. SQL

B. DTD

C. XQuery

D. XPath

二、填空题

1. XML中有以下六种标记: 、 、 、 、 和CDATA段。

2. XQuery是一种函数语言,它允许多种表达式进行 。 3、XPath的主要目的是对一个XML文档进行 。 4. XQuery 是建立在 表达式之上的。 5. XML中的名称是 大小写的。

三、名词解释

1. HTML 2. XML 3. DTD 4. XML Schema 5. Xpath 6. XQuery

四.思考题

1. 简述XML数据库的研究方向。你是如何看待XML数据库的发展? 2. XML文档是由哪些部分组成的?

3. 设计一种表示图书信息的XML完整文档,结构为: (1)根元素为“书目”,含若干“书”子元素。 (2)书元素。

① 具有属性:“书号”、“类型”和“版本”等等。

② 包含子元素:“书名”、“作者”、“出版社”和“价格”等等,其中的作者元素可有若干,各个子元素还可以包含若干属性和子元素,例如

③ 书名元素可以包含“外文原名”、“中文译名”、“副标题”等属性或子元素。

④ 作者元素可以包含“姓名”、“性别”、“年龄”、“职称”、“单位”和“照片”等属性或子元

数据库系统原理与设计 29 素。

⑤ 出版社元素可以包含“名称”、“城市”、“地址”、“邮编”、“电话”、“邮箱”等属性或子元素。

⑥ 价格元素可以包含“定价”、“优惠价”、“折扣率”等属性或子元素。 4. 编写上例中与DTD相对应的含两项以上书信息的实例文档。

5. 根据上题,设计一种表示图书信息的XML文档,编写对应的XML Schema的完整文档(尽量完善和实用)。

6. 编写与上题Schema相对应的含两项以上书信息的实例文档。

7. 根据上述所得到的实例文档,查询书的定价大于30元的书名和作者信息,给出XQuery查询语句(假定文件名为books.xml)。

8. 根据上述所得到的实例文档,查询作者人数不止1人的完整书目信息,给出XQuery查询语句(假定文件名为books.xml)。

9. 根据上述所得到的实例文档,查询出版《数据库系统》教材的出版社的所有出版图书名称,给出XQuery查询语句(假定文件名为books.xml)。

第13章 PowerBuilder与数据库应用开发

一、选择题

1. PowerBuilder一个很大的特点就是提出了( )对象的概念。

A. 关系-

B. 面向对象

C. 数据窗口

D. 复合

2. PowerScript语言中的数据类型主要为( )。

A. 增强数据类型、标准数据类型、系统对象数据类型 B. 标准数据类型、系统对象数据类型、枚举数据类型 C. Any 数据类型、增强数据类型,标准数据类型 D. 标准数据类型、系统对象数据类型、增强数据类型 3. 使用PB创建一个应用程序的主要步骤为( )。

A. 创建窗口对象,新建工作区,创建应用对象和库文件 B. 创建窗口对象,创建应用对象和库文件 C. 新建工作区,创建窗口对象

D. 新建工作区,创建应用对象和库文件,创建窗口对象 4. 应用对象是应用程序的( )。

A. 载体

B. 入口

C. 实体

D. 用户

5. PowerBuilder支持( )。

A. 浏览器/客户机/服务器结构

30 B. 集中式计算 C. XML

D. 非面向对象程序设计

数据库系统原理与设计 二、填空题

1. PowerBuilder是典型的 结构。 2. PB中库的后缀是 。

3. PowerScript是为PB提供的一种脚本编程语言,它是基于 的一种高级语言。

4. PowerBuilder是 驱动工作方式。

5. 在PowerBuilder应用程序中,接受发生事件的往往就是程序界面中的各种 对象。

三、名词解释

1. PowerBuilder 2. PowerScript 3. 应用对象 4. 数据窗口 5. 画板 6. 目标 7. 库 四.思考题

1. 简要介绍PowerBuilder 的特点。

2. PowerBuilder 10.5有哪些增加的关键特性?

3. PowerScript语言和其他高级的面向对象语言有哪些异同?试举例说明。

4. PowerScript中有哪几种流程控制语句?编写—个使用PowerScript循环语句计算1~100相加过程的程序。

5. 简述创建PowerBuilder数据库应用程序的一般步骤。

数据库系统原理与设计 31 参考答案

第1章

一、选择题 1. D 2. B 3. A 4. C 5. D 6. C

7. D

8. A 9. C

10. C

二、填空题 1. 数据管理

2. 数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和数据库用户组成。3. 长期储存在计算机内、有组织、可共享的

4. 存储模式,详细描述了数据库数据复杂的物理结构和存储方式。1。

5. 逻辑模式,数据库数据的全局逻辑结构和特征。

6. 子模式用户,数据库数据的局部逻辑结构和特征。模式的子集,一个数据库可以有多

7. 描述数据、数据联系、数据语义以及一致性约束的概念工具。

8、DBMS的主要职能是:数据定义功能、数据操纵功能、数据的组织、存储和管理功能、数据库的建立、运行和维护功能。

9、数据模型(Data Model)

10、实体-联系模型(Entity-Relationship Model,简称为E-R模型)

11、E-R图 12、关系数据

13、由行和列组成的二维 14、层次模型 15、网状模型

三、思考题

1. 答:描述事物的符号记录称为数据;数据库是长期储存在计算机内的、有组织的、可共享的数据集合;数据库管理系统是位于用户与操作系统之间的一层数据管理软件; 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用

系统、数据库管理员和用户构成。

2. 答:

(1)数据结构化是数据库与文件系统的根本区别。在文件系统中,相互独立的文件的记录内部是有结构的,尽管其记录内部已有了某些结构,但记录之间没有联系。数据库系统实现整体数据的结构化,是数据库的主要特征之一。

(2)在文件系统中,数据的最小存取单位是记录,粒度不能细到数据项。而在数据库系统中,存取数据的方式也很灵活,可以存取数据库中的

某一个数据项、一组数据项一个记录或一组记录。

(3)文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。而在数据库系统中数据不再针对某一应用,而是面向全组织,具有整体的结构化。

3. 答:数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由DBMS统一管理和控制。

4. 答:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。

5. 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

6. 答:决定数据库中的信息内容和结构、决定数据库的存储结构和存取策略、定义数据的安全性要求和完整性约束条件、监控数据库的使用和运行、数据库的改进和重组重构。

7. 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:

2 数据库系统原理与设计 外模式/模式映像、模式/内模式映像。正是这两层映像功能保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

8. 答:数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。

数据模型的作用:在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟,现有的数据库系统均是基于某种数据模型的。

数据模型的三个要素:数据模型由数据结构、数据操作和完整性约束三部分组成。

9. 答:关系模型与其他数据模型不同,它建立在严格的数学理论基础上,数据的形式化基础好;单一的数据结构,无论实体还是实体之间的联系都用关系表示;数据独立性强,数据的物理存储结构和存取路径对用户透明,同时简化了数据库开发人员的工作,易于用户的理解和使用。10. 层次模型是数据库系统中最早出现

的一种数据模型,它用树形结构来表示各类实体以及实体间的联系。在数据库中,同时满足以下两个条件的基本层次联系的集合称为层次模型:

(1)有且仅有一个结点没有双亲结点,称之为根结点;

(2)根结点以外的其他结点有且仅有一个双亲结点。

1、数据库管理员 2、数据库管理系统 3、数据模型 4、数据库

5、实体——联系图 6、数据定义语言 7、数据操纵语言 8、数据字典 9、内模式 10、外模式

第2章

一、选择题 1. A 2. B

3. B

4. A

5. D 6. A 7. B 8. C 9. D

10. ABCD 二、填空题

1. 客观存在并可相互区别的 2. 不足以形成主码 3. 超码 4. 候选码 5. 主码 6. 图形

7. 属性 8. 域 9. 再分割 10. 不同

三、思考题 1. 举例:

一对一联系:汽车与车牌

汽车R车牌 图A-1

一对多联系:值班医生与病人

值班医生R病人 图A-2

多对多联系:营业员与顾客

营业员R顾客

图A-3

2. E-R图如图A-4所示:

数据库系统原理与设计 3 座位数地址教室数量教室号面积楼号教学楼包含教室 图A-4

3. E-R简略图如图A-5所示:

出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 图A-5

4. E-R图如图A-6所示:

classroom-idclassroom-nameClassroomstu-namegradeCCuse-datestu-idagecourse-idstudentSCCoursecourse-namelevelteachTeacherbook-nametitleauthorBookteacher-id 图A-6

5.

四. 1、键,码 2、超键

3、实体联系模型 4、实体集

5、域

6、联系集 7、弱实体集 8、属性

9、实体型 10、主键

第3章

一、选择题 1. C 2. C 3. C 4. B

5. D

6. A

7. D

8. C 9. A 10. D

二、填空题

1. 格式化、关系

2. 关系代数、关系演算、元组演算、域演算

3. 并、差、笛卡尔积、选取、投影

4. 完整性控制、并发控制、故障恢复、安全性控制

5. 关系数据结构、关系操作集合、关系完整性约束

6. 实体完整性、参照完整性、用户定义完整性

7. 关系演算、关系代数 8. 原子项

9. 投影

10. 聚集

三、思考题 1. 答:

(1)每一列(属性)的所有数据值都属同一类型,属性值是“原子”,没有内部结构;

(2)每一列都有惟一的列名;

(3)列在表中的顺序无关紧要,可任意交换; (4)表中任意两行(元组)不能相同; (5)行在表中的顺序也无关紧要,可任意交换。

2. 答:

(1)关系对应着事物实体集,如学生关系对

4 数据库系统原理与设计 应于一个学生集合;

(2)现实世界的实体是可区分的,如学号是区分不同学生的标志;

(3)关系以主码作为区分关系元组的惟一性标志,因此,候选码中的属性(主属性)不能取空值。否则,关系的一个元组就不能被标识,也就是说有个事物实体是不能区分的,这就和(2)矛盾。这种述规则称为关系的实体完整性。

例如:邮政局派信,显然,信封上的通讯地址和姓名是主属性。如果这两个属性之一取空值,即“不知道”,那么信件将无法投递给收信人。这样,这封信就是不完整的。

3. 答:

关系模型的优点:

(1)具有坚实的理论基础,基于集合论、数理逻辑等;

(2)只有关系(表)这一种数据结构。无论事物还是事物的联系,在关系数据库中都用关系来表示;

(3)数据操作的特点是:集合化、非过程化;(4)数据的存储结构和存取路径对用户透明。用户不必关心数据的存放,提高数据的独立性,简化程序开发工作。

关系模型的局限性:

(1)缺乏语义表示能力。比如无法区分“重量”和“长度”属性的意义差别;

(2)数据类型不够丰富。只适于表示数和文字形式的数据,而难以表示声音,图像等形式的数据;

(3)属性与行为分离。例如,要描述某个人,关系模型可以描述人的数据属性(身高、体重、姓名等),但不能描述人的行为(睡觉、走路等)。4. 参照完整性指如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值。

意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在。

5. 关系数据语言的特点

一体化:一般关系系统的数据语言都同时具

有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对系的操作。

非过程化:用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。

面向集合的存取方式:操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式。

四、

(1)解:?CNO,CNAME(?TEACHER?\张军\(C)) (2)解:?SNO,SNAME(?AGE?21?SEX?\男\(S)) (3)解:

?SNAME(S?(?SNO,CNO(SC)??CNO(?TEACHER?\张军\(C))))

(4) 解:?CNO(C)??CNO(?NAME?\赵新\(s)

SC)

(5)解:?SNO(?[1]?[4]?[2]?[5](SC?SC)) (6)解:

?CNO,CNAME(C(?SNO,CNO(SC)??SNO(S)))

(7)解: ?SNO(SC?CNO(?TEACHER?\张军\(C))) (8)解:

?SNO,CNO(SC)??CNO(?CNO?'C1'?CNO?'C5'(C)) (9)解: ?SNAME(S(?SNO,CNO(SC)??CNO(C))) (10)解:?SNO,CNO(SC)??CNO(?SNO?'2'(SC)

(11)解: ?SNO,SNAME(S?SNO(SC(?CNAME?'C语言'(C)))

第4章

一、选择题 1. A

2. C

3. D 4. A

5. D

6. C 7. A 8. D 9. A 10. B 二、填空题 1. %、_

数据库系统原理与设计 5 2. Numeric、10、2

3. 关系型、表、元组、属性 4. 删除、修改 5. Select、from 6. group by

7. 基本表、视图表和导出表 8. 基本表 9. 视图 10. REVOKE

三、思考题

1. SQL查询语句来表达:

(1)创建Branch表,其中branch_name和branch_city为联合主键

create table Branch(

branch_name nvarchar(10), branch_city nvarchar(10), asserts int

primary key(branch_name, branch_city))

(2)向Branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。

alter table Branch

add address nvarchar(10)

(3)删除Branch表的address列

alter table Branch rop column address

(4)查询位于“广州”的,资产在10,000,000以上的的支行名。

select branch_name from Branch

where asserts>10000000

(5)查询customer_street中含有“广州大道中”的顾客的信息。

select *

from customer

where customer_street like '%广州大道中%'

(6)查询名字为“Tom”的所有贷款信息。select t1.*

from loan as t1 inner join Borrower as t2

on t1.loan_number=t2.loan_number where t2.customer_name='Tom'

(7)查询“中国工商银行”的贷款信息,结果按贷款额降序排列。

select * from loan

where branch_name='中国工商银行' order by amount desc

(8)显示每个银行贷款额最大的那条贷款信

息。

select *

from loan as t1 where not exists( select * from loan as t2

where t1.branch_name=t2.branch_name and t1.amount

(9)创建一个视图来显示每个顾客的顾客信息、贷款总额。

create view customer_loan as

select customer_name, amount_total=sum(amount)

from borrower as t1 left join loan as t2

on t1.loan_number=t2.loan_number group by customer_name

(10)删除所有贷款在100以下的贷款记录

delete from loan where amount<100

(11)删除每家支行贷款数额最大的记录

delete loan

where not exists( select * from loan as t2 where

loan.branch_name=t2.branch_name

and loan.amount

四.上机题

6 数据库系统原理与设计

五. 设计题

1.统计1999年制作电影的平均长度和最短长度。

select 平均长度=avg(Length), 最短长度

=min(Length)

from Movie

where Year=1999

2.在1999年主演过电影的演员姓名

select ActorName

from Movie inner join Acts

on Movie.Title=Acts.MovieTitle where Movie.Year=1999

3. 把电影“我的世界”的长度改为110分钟。

update Movie set Length=110

where Title=’我的世界’

4. 删除1940年以前制作的所有电影记录以及电影主演记录。

delete Acts

where MovieTitle in (select Title from Movie where Year<1904)

delete MovieTitle where Year<1904

第5章

一、选择题 1. C

2. A B C 3. A

4. B

5. A 6.ABCD 7. A 8. D 9. AC 10.D 二、填空题

1.查询分析和检查、查询翻译、查询优化、查询执行。

2.查询分析器、查询预处理器和查询优化器。 3.1

4.Пsname((σcname=”数据库原理” (course)) (sc student))

5.选择运算、投影运算。 6. N/2 7. N

8. 笛卡尔积 9. 选择 10. 投影

三、名词解释

1. 关系表达式:用关系运算符连接若干个算术表达式,叫关系表达式。

2. 查询处理:查询处理(query processing)是指从数据库中提取数据所涉及的一系列过程和活动,这些活动是由数据库自动完成的,不需要人的参与。它的作用是把用户提交的关系查询语句转化为系统可执行的查询执行计划。

数据库系统原理与设计 3. 查询优化:查询优化(query optimization)

7 首先做了选择运算,然后是投影运算,接下就是能从这许多策略中找出最有效的查询执行计划的一种处理过程。

4. 查询处理代价:查询处理代价是指查询处理过程中每个操作消耗的时间和空间代价,查询处理代价可以通过该查询对各种资源的使用情况进行测量,这些资源包括磁盘存取、执行一个查询所用CPU时间、在分布式数据库系统或并行数据库系统中的通信开销。

5. 查询树:又称为语法分析树(syntax tree),它建立在扩展的关系代数的基础上的。 6. 流水线:通过减少查询执行中产生的临时文件数,可以提高查询执行的效率。减少临时文件数是通过将多个关系运算组合成一个运算的流水线来实现的,即将多个运算的结果传送到下一个运算。这样的运算叫做流水线运算。

7. 等价规则:两个关系表达式是等价的是指在任一种有效数据库实例中它们都会产生相同的元组集。等价规则指出两种不同形式的表达式是等价的。

四. 简述题

1. 查询处理涉及的活动包括:接受用户提交的用高层数据库语言(例如:SQL语句)表示的查询语句,将高层数据库语言查询语句翻译为能在文件系统的物理层上使用的表达式,为优化查询而进行各种转换,以及查询的实际执行。关系查询处理可以分4个步骤,包括:

(1)查询分析和检查; (2)查询翻译; (3)查询优化; (4)查询执行。

2. 答:查询优化的一般准则: (l)选择运算应尽可能先做。

(2)在执行连接前对关系适当地预处理。 (3)把投影运算和选择运算同时进行。 (4)投影同双目运算结合。

(5)选择同某些笛卡尔积结合起来构成一个连接运算。

(6)找出公共子表达式。 3. 答:等价关系代数表达式: Пbranch-name

(σT.assets

>

S.assets((T)

(Пassets(σbranch-city =”Brooklyn” (S)))))

来是连接运算,之后是选择运算,最后是投影运算,高效的原因在于它最大化的减少了中间结果的大小,减少了比较的次数。

五.设计题 初始关系表达式如下: Пcname(σstudent.sdept=”CS”

^

sc.cno=course.cno^

student.sno=sc.sno (course

(sc

student))),

对应的查询树如图:

Пcname σstudent.sdept=”CS” ^ sc.cno=course.cno^ student.sno=sc.sno course sc student 根据选择运算先执行的原则,首先执行一步选择运算,表达式如下:

Пcname(σsc.cno=course.cno^ student.sno=sc.sno

(course

( sc(σstudent.sdept=”CS” (student))))),

查询树如图:

Пcname σsc.cno=course.cno^ student.sno=sc.sno course sc σstudent.sdept=”CS” student 依据同样的原则,再执行一步选择运算,表达式如下:

8 Пcname(σsc.cno=course.cno (σstudent.sno=sc.sno (sc数据库系统原理与设计 (course

系必须满足一定的要求,即满足不同的范式。目前关系数据库最重要的范式有五种: 1NF、2NF、(σstudent.sdept=”CS” (student)))))),

查询树如图

Пcname σsc.cno=course.cno course σstudent.sno=sc.sno sc σstudent.sdept=”CS” student 这就是要的最终的查询树。

第6章

一、选择题

1. A 2. B 3. D 4. C

5. B 6.A 7.B 8.A 9.C 10. B

二、填空题 1. 多个值 2. 完全函数

3. 函数依赖,无损连接性

4. 模式分解,将复杂的关系模式分解成若干比较小的关系模式消除冗余

5. 范式,范式 6. 函数依赖 7. 3NF 8. BCNF 9.对称性和传递性 10. 4NF

三、思考题 1. 答:

(1)构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关

3NF、BCNF, 4NF,它们之间的关系是4NF?BCNF? 3NF?2NF?1NF。 满足最低要求的范式是第一范式(1NF)。在第一范式的基础

上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就可以了。

(2)没有经过规范化的关系模式通常容易产生诸如数据冗余度高、插入异常、删除异常、更新困难等毛病,这样的关系模式显然是要避免的,

由此而产生了一整套规范化理论。通过对原有的

关系模式进行规范化,使之达到一定级别的范式,便可在一定程度上消除上述毛病。在实际应用中,

并不是规范化程度越高越好,要视实际情况而定。

2. 答:

(1)关系模式规范化一般应遵循的原则如下:

① 将关系模式进行无损连接分解,在关系模式分解的过程中,数据不能丢失或增加,要保持数据的完整性;

② 合理地选择规范化程度。在规范化时,既要考虑到低级范式造成的冗余度高、数据不一致性,又要考虑到高级范式带来的查询效率低的问题;

③ 要考虑正确性和可实现原则,即要保证规范化过程是正确的,并且通过规范化能达到要求。

(2)各范式之间的关系为:4NF?BCNF? 3NF?2NF?1NF,1NF消去非主属性对码的部分函数依赖便得到2NF,2NF消去非主属性对码的传递函数依赖便得到3NF ,3NF消去主属性对码的部分和传递函数依赖便得到BCNF,BCNF消去非平凡且非函数依赖的多值依赖得到4NF。

3. 答:函数依赖:设R(U)是属性集U上的关系模式。?,?是U的子集。若对于R(U)的任意一个可能的关系r,r中不存在两个元组在?上的属性值相等,而在?上的属性值不等,则称?函数决定?或?函数依赖于?,记为

?→?。

函数依赖是一个在语义范畴上的概念,即只

数据库系统原理与设计 9 能根据语义来确定一个函数依赖。例如:员工姓名→性别,这个函数依赖只有在该部门没有同姓名的员工的前提下才成立,然而如果在设计的时候对这种事实作强制规定,如不允许同姓名的人存在,那么该函数依赖是存在的,现实生活中函数依赖是普遍存在的。

4. 答:该关系模式属于BCNF,因为该关系模式存在以下函数依赖:

学号→姓名,学号→年龄,学号→所在系,学号→出生日期

除此之外不存在其他函数依赖,所以该关系模式首先属于2NF(每一个非主属性完全函数依赖于码即学号),又因为所有的非主属性对码非传递依赖,故该关系模式又是属于3NF的,注意到对任意函数依赖,其左部均含有码,因此该关系模式又是属于BCNF的。

5. 答:

该关系模式存在以下函数依赖:

Sno→Sname,Sdept→MN,Sno→Sdept,(Sno,Course)→Grade

显然关系模式的码为Sno,Course。 6. 原关系模式是属于1NF的,非主属性Grade完全按函数依赖于码,而其他非主属性对码的函数依赖均为部分函数依赖,所以不属于2NF。可将该关系模式分解为2NF如下:

Student1(Sno,Sname,Sdept,MN) Student2(Sno,Course,Grade)

7. 6中的关系模式Student1中存在Sno→Sdept ,Sdept→MN,即非主属性MN传递依赖于码Sno,所以Student1可以进一步分解为3NF如下:

Student11(Sno,Sname,Sdept) Student12(Sdept,MN)

而Student2中不存在非主属性对码的传递依赖,故已经属于3NF。

最终原关系模式分解为3NF得到: Student11(Sno,Sname,Sdept) Student12(Sdept,MN) Student2(Sno,Course,Grade)

8. 答:3NF是建立在2NF基础之上的,如

果满足2NF的关系模式中不存在非主属性对传递依赖于码,则该关系模式属于3NF.

BCNF是3NF的改进形式,它建立在1NF的基础上。如果关系模式R属于1NF,只要其每一个决定因素均包含码,则R属于BCNF。

一个关系模式属于BCNF,则它一定属于3NF,BCNF是3NF的一个特例,反之不然。

9. 答:

(1)多值依赖定义:设R(U)是一个属性集U上的一个关系模式,?、?和?分别为U的子集,且有?=U-?-?,多值依赖 ?→→?(读作 ?多值决定?)成立当且仅当对R的任意一个关系r,r在(?,?)上的每个值对应一组?的值,这组值仅仅由?值决定而与?值无关。

多值依赖(MVD)是两个属性或属性集合之间相互独立的断言。它是广义的函数依赖(或者说函数依赖是多值依赖的一种特殊情况)。

(2)4NF定义:关系模式R(U)?1NF,若对于R的任意非平凡多值依赖?→→?(????)

,?都含有码,则称R(U)?4NF。 4NF就是限制关系模式属性之间不允许有非平凡的且非函数依赖的多值依赖。

10. 答:

(1)Armstrong公理系统:设R为关系模式,其中U为属性集,F是U上的一组函数依赖。对R有三个推理规则:

自反律:若????U,则?→?为F所蕴含;

增广律:若?→?为F所蕴含,且??U,则??→??为F所蕴含;

传递律:若?→?和?→?为F所蕴含,则

?→?为F所蕴含。

(2)Armstrong公理系统的有效性是指:y由F出发根据Armstrong公理系统推导出来的每一个函数依赖一定在F?中。

Armstrong公理系统的完备性是指:F?中的每一个函数依赖必定可以有F根据Armstrong公理系统推导出来。

11. 答:

10 由算法:

(1)令X (0)=BD;

数据库系统原理与设计 E→A, E→B得E→AB(合并律)。

故E→AB∈F+,由定理知?具有无损连接性。

14. R1的码为E,显然R1属于2NF,但R1中存在非主属性对码的传递依赖,故R1不属于3NF。

R2的码为CE,由于函数依赖C →G 中G对码部分依赖,故R2不属于2NF,即R2属于1NF。

(2)计算X (1),逐一扫描F中的各个函数依赖,找到左部为B、D或BD的函数依赖,得到D→EG,故X (1)=BD∪EG= BDEG。

(3)计算X (2),逐一扫描F中的各个函数依赖,找到左部为BDEG或BDEG子集的函数依赖,得到BE→C,故X (2)=BDEG∪C= BCDEG。

(4)计算X (3),逐一扫描F中的各个函数依赖,找到左部为BCDEG或BCDEG子集的函数依赖,得到C →A,CG→BD,ACD→B,CE→AG,故X (3)=BCDEG∪ADBG=U,算法终止。

故最终求得(BD)?F=U。 12. 答:

根据算法:由于F中的任何一个函数依赖的右部已经只含有一个属性。则:

① 设A→B是冗余的,将其从F中去掉,看能否根据Armstrong公理系统的推理规则导出。

显然无法导出。故A→B不能删除。 ② 设B→A是冗余的,将其从F中去掉,看能否根据Armstrong公理系统的推理规则导出。

因为B →C, C→A则根据传递律有B→A成立,可见B→A确是冗余的。将其从F中去掉,得到F1={ A→B, B →C,A→C, C→A }。

③ 显然B →C不是冗余的。

④ 设A→C是冗余的,同样容易得到其也是冗余的,故也应去掉。得到F2={ A→B, B →C,C→A }。

由于F2中已不存在冗余的函数依赖,因此F2就是要求的Fmin。

13. 答:

(1)可以求解得R的码为CE,因为

CE)+=U,并且在CE中不存在一个真子集能决

定R的全体属性U,故R为码。

由于?中只含有两个关系模式,故可使用定理6-6判断?的无损连接性:

ABE∩CDEG=E,ABE—CDEG=AB,CDEG—ABE=CDG

因为E→A,A→B,故E→B(传递律),由

15. 答:

(1)从函数依赖集F中可以看出,E和C两个属性不依赖于其他属性,所以码中必然至少包含E和C,求EC属性的闭包,若包含所有的属性,那么,EC即为码。

令X (0)=EC ,因有E→D,故X (1)=ECD,又D→B,则X (2)=ECDB,由DC→E,得

X (3)=ECDBE,由此EC的闭包包含所有属性,

故EC为码。

(2)判断?是否为无损连接分解,由算法,首先构造矩阵如表所示。

表A-1

A B C D E R1(AB) a1 a2 b13 b14 b15 R2(AE) a1 b22 b23 b24 a5 R3(EC) b31 b32 a3 b34 a5 R4(DBC) b41 a2 a3 a4 b45 R5(AC) a1 b52 a3 b54 b55 依次检查F中的每一个函数依赖,无法修改此表,所以?不是无损连接的分解。

(3)因为F={A→D,E→D,D→B,BC→D ,DC→A }已经是最小的函数依赖集,所以根据算法,设?={ AD,ED,DB,BCD,DCA }

判断?是否为无损连接分解,同样构造二维矩阵,如表A-2所示。

表A-2

A B C D E R1(AD) a1 b12 b13 a4 b15 R2(ED) b21 b22 b23 a4 a5 R3(DB) b31 a2 b33 a4 b35 R4(DBC) b41 a2 a3 a4 b45 R5(DAC) a1 b52 a3 a4 b55 (

数据库系统原理与设计 依次检查F中的每一个函数依赖,无法修改

11 围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约,并以需求说明书的形式确定下来,作为以后系统开发的指南和系统验证的依据。

此表,所以?不是无损连接的分解。

令?=?∪{EC},EC是R的码

16. R分解为3NF,并且具有无损连接性和保持函数依赖性的分解如下:?={ AD,ED ,DB,BCD ,DCA ,EC}。

17. 证明:设R为一个二元关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:

(1)A1→A2,但A2?A1,则关系R的码为A1,函数依赖的左部包含码,所以R∈BCNF。(2)A1?A2,A2 →A1,则关系R的码为A2,同样R∈BCNF。

(3)R的码为(A1,A2),则显然R∈BCNF。第7章

一、选择题 1. C 2. B 3. D 4. C

5. A

6.A 7.B 8.B 9.C 10. B

二、填空题 1、数据字典

2、实体联系方法(E-R 方法) 3、键

4、索引, 索引,索引 5、冲突

6. 实体与实体间的联系 7. 数据库子模式 8. 数据字典 9. DBMS 10. 子模式

三、思考题

1. 答:根据规范设计的原则,一般可以把数据库设计分成以下五个阶段:需求分析、概念设计、逻辑设计、物理设计和验证设计。其中验证设计阶段包括数据库实施、数据库的运行和维护两个子阶段。

2. 答:需求分析阶段的任务在于收集数据库所需要的信息内容,调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范

概念设计要从用户的角度看待数据及处理需求和约束,而后产生一个反映用户观点的概念模式。在客观环境下,概念模式相对稳定。当应用系统需要更换DBMS时,只需重新设计逻辑结构,而概念模式可以保持不变。这样就能有效控制设计的复杂程序,便于组织管理。

逻辑设计阶段的任务是把在概念设计阶段得到的概念模式转换成具体DBMS所支持的数据模型。

物理设计的任务是对给定的逻辑数据模型选取一个最适合应用环境的物理结构,确定记录的存储方式和存储方法,确定数据的存放位置,确

定系统的配置。

验证设计包括数据库实施、数据库的运行和维护两个子阶段。

在数据库实施阶段,设计开发人员将数据库逻辑设计和物理设计结果用DBMS提供的数据定义语言(DDL)严格描述出来,使数据模型成为DBMS可以接受的源代码,再经过调试产生目标模式,定义好数据库的结构,最后要组织入库并运行应用程序进行调试。

而在数据库运行和维护阶段,数据库管理员需要进行数据库的转储、恢复,数据库安全性、完整性控制,数据库性能恩系和改进等工作。

3. 答:在调查分析的过程中,根据不同的环境和条件,可以使用不用的调查方法。比较常见的调查方法包括:现场作业、开调查会、专人介绍、询问、问卷调查、查阅记录报表等。

4. 答:数据字典的内容包括:

(1)数据项。数据项内容包括数据项的名称、类型、长度、取值范围。

(2)数据结构。数据结构放映了数据之间的组合关系。一个数据结构可以由若干个数据项或者若干个数据结构组成,也可以由若干个数据项和若干个数据结构混合组成。

12 数据库系统原理与设计 (3)数据流。数据流指的是加工处理过程的

输入和输出数据。描述一个数据流时要说明该数据流由哪些数据项组成,数据流的来源、走向和流量。

(4)数据存储。数据存储是指需要存取的数据文件。描述数据存储时要说明该数据存储由哪些数据项组成,存取频率,存取方式等。例如是检索还是更新,是随机存取还是批处理等。

(5)处理过程。处理过程是对加工处理的描述,包括处理过程名,输入、输出的数据,处理逻辑等。处理过程的具体处理逻辑一般用判定表和判定树来描述。

5. 答:如果没有概念设计阶段,开发人员的注意力往往不能集中在最重要的信息组织结构和处理模式上,而被牵扯到更多的细节限制方面。因此在设计依赖于具体 DBMS 的模式后,当外界环境发生变化时,设计结果就难以适应这个变化。

增加了概念设计阶段之后,开发设计人员仅从用户的角度看待数据及处理需求和约束,而后产生一个反映用户观点的概念模式。在客观环境下,概念模式相对稳定。当应用系统需要更换DBMS时,只需重新设计逻辑结构,而概念模式可以保持不变。这样就能有效控制设计的复杂程序,便于组织管理。

6. 答:概念设计的方法有很多,通常归类为以下四种:

(1)自顶向下。先定义全局概念结构的框架,然后再逐步细化。

(2)自底向上。与自顶向下相反,首先定义局部应用的概念结构,再逐步集合成一个全局的概念结构。

(3)由里向外。先定义最重要的核心概念结构,再逐步向外扩张,直至总体概念结构。

(4)混合策略。这种方法结合了自顶向下和自底向上两种策略。先用自顶向下方法设计一个全局概念结构的框架,然后以全局框架为依据,采用自底向上策略完成其余部分的设计。

不同设计方法的设计步骤不同,最常用的设计方法是自底向上策略。

7. 答:逻辑设计的一般过程包括将E-R图转换成一般数据模型,建立特定DBMS支持下的模式和子模式,模型评价和优化。

8. 答:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这个过程就叫做数据库的物理设计。

9. 答:数据库设计要考虑很多方面,但是在设计时这些方面只是近似估计,很实际数据库系统有一定偏差。数据库试运行阶段的意义在于测试系统的性能指标,实际测量和评价系统性能指标是否达到设计目标的的要求。

10. 答:数据库的重组织不会改变数据库设计产生的数据逻辑结构和物理结构,只是根据原来的设计要求重新安排存储位置,回收垃圾,减少指针链,提高系统性能。数据库重组织的过程为先卸载,再加载。DBMS一般都提供了供重组织数据库使用的实用程序,帮助DBA重新组织数据库。

数据库的重构造与重组织不同,重构造会部分修改数据库的模式和内模式。

第8章

一、选择题 1. A 2. D

3. B

4. C

5. B 6.ABCD 7. A 8. B 9. C

10. AD 二、填空题 1. 数据库的安全性 2. 数据库的完整性 3. 一,任意 4. 置空,置为空值 5. 条件,条件 6. 保护

7. 用户标识与系统鉴别,存取权限控制 8. 更新 9. 授权行为

10. 自主存取控制方法DAC

数据库系统原理与设计 13 11. 主体控制

12. 基于角色的访问控制RBAC 13. 数据字典

14. 该数据库元素创建者执行 15. REVOKE

三、思考题

1. 答:数据库的完整性和安全性都是数据库保护的一部分,数据库的安全性是指对数据库中数据的保护措施,防止不合法使用造成数据泄露、修改或破坏。通常采用用户标识与系统鉴别,存取权限控制等安全策略来保证数据安全。数据库的完整性是指保护数据库数据的正确性和有效性,防止数据库中存在不符合语义的、不正确的数据。通常采用的控制策略是提供定义完整性约束条件的机制,提供完整性检查的方法,进行违规处理。

2. 答: 对数据库的安全性控制,包括用户标识与系统鉴别;存取控制中的自主存取控制DAC、强制存取控制MAC、基于角色的存取控制RBAC;视图机制和审计控制。

3. 答:实体完整性规则是指若属性A或属性组Ai(i=1,2,?k)是关系R的主属性,则A或Ai不能取空值。对数据库改变时,必须要对实体完整性约束进行检查。但只有更新关系时,即插入或修改操作才会对键码约束产生影响,删除操作并不影响键码约束。因此SQL系统只在用户对关系进行插入或修改时,DBMS才按照实体完整性规则对键码进行以下检查:键码值的惟一性,否则拒绝插入或修改;键码各属性值的非空性,否则拒绝插入或修改。

4. 答:参照完整性规则是指若属性或属性组F是一个关系R的外键,它与另一个关系S的键码相对应,则F的取值必为:S中某个元组的键码值;或者取空值。参照完整性检查的默认策略是任何与参照完整性约束相违背的更新均为系统拒绝;其次,可以采用级联策略或置空策略保持参照完整性。

5. 答:

GRANT SELECT, INSERT

ON Course

TO USER2, USER3 WITH GRANT OPTION;

GRANT SELECT ON SC

TO USER2, USER3 WITH GRANT OPTION;

GRANT SELECT, INSERT ON Course TO USER4;

GRANT SELECT ON SC TO USER4;

REVOKE SELECT, INSERT ON Course

FROM USER2 CASECADE;

REVOKE SELECT ON SC

FROM USER2 CASECADE;

6. 答:

CREATE TABLE TEACHER

( Tno NUMERIC (6) PRIMARY KEY, Tname CHAR (12), DeptNo NUMERIC (2), Salary NUMERIC (7,2),

7. 数据库的安全性是指对数据库中数据的

保护措施,防止不合法使用造成数据泄露、修改或破坏。在通常的计算机系统中,安全措施是逐级设计的,数据库系统也不例外。首先对进入系统的用户标识进行身份鉴定,只有合法的用户才能进入系统;进入系统后,DBMS还要对用户的存取权限加以控制,保证访问数据库的权限只授权给有资格的用户,按照预订的用户权限进行存取控制。此外,还有视图、审计等措施来保证数据库的安全性。

8. 存取控制机制包含

(1)对用户权限进行定义,并将其写入数据字典中,作为安全规则或授权规则。

(2)完成合法权限检查。用户发出存取数据库的操作请求后,DBMS查找数据字典,按照授权规则完成合法权限检查,并拒绝越权操作。

9. 自主存取控制方法的特点在于授权的实施主体可以自主赋予和回收其他主体对客体资源的访问权限,这种灵活的数据访问方式,使得DAC广泛应用于商业和工业环境中。由于DAC仅仅通过对数据的存取权限来进行安全控制,用户可以任意传递权限,这种授权机制会存在数据的无意泄漏,使DAC方法提供的安全防护性能相对较低,不能给系统提供充分的数据保护。

14 数据库系统原理与设计 10. 主体对客体的访问有如下方式。 ① 主体安全级别高于客体信息资源的安全

级别时允许查阅的读操作(向下读);

② 主体安全级别低于客体信息资源的安全级别时允许的读操作(向上读);

③ 主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作(向下写);

④ 主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作(向上写)。

第9章

一、选择题 1. D

2. A

3. C

4. B

5. A 6D 7C 8 ABC 9A 10A 11C 12A 13B 14 D 15B 二、填空题

1. 导致事务无法正常执行

2. 其他事务对数据库进行存取或修改操作的,转储和用户事务

3. 做数据删除操作 4. 5. 6. 事务

7. BEGIN TRANSACTION 8. COMMIT TRANSACTION 9. 回滚(ROLLBACK) 10. 中断 11系统故障 12. 介质故障 13. 检查点 14. 数据转储 15. 转储周期 三、思考题

1. 答:事务是一种机制,是一个操作序列,它包含了一组数据库操作命令,所有的命令作为一个整体一起向系统提交或撤消操作请求,即要么都执行,要么都不执行。

事务的特性:原子性(atomicity)、一致性

(consistency)、隔离性(isolation)、持续性(durability)。

2. 答:事务的非正常结束会引起数据库中数据的不一致,使得事务处理数据项的结果不正确。例如在事务由来一节所举的例子。

3. 答:

稳定存储器不可以实现,因为稳定存储器是指其上信息永远不会丢失的存储器。

4. 答:大致可以将数据故障分成三类:事务故障、系统故障、介质故障。

5. 答:基于日志的数据恢复和基于数据转

储的数据恢复。

6. 答:日志文件的作用是用来记录事务对数据库的操作的文件,以备数据恢复使用。

7. 答:延迟修改实现容易,开销代价比立即修改大。立即修改实现困难,需要的代价较小。8. 答:它是日志文件中的一个标签,具有这样的含义:在检查点之前的含有记录的事务在数据恢复时就不需要redo了。它是系统进行redo重作或者undo撤销的一个分水岭。

在事务中插入检查点,需要做如下事情: (1)将主存中的日志记录写到稳定存储器中。

(2)将缓冲区中被更新的数据项写到磁盘。(3)在日志中加入检查点记录,并将它保存到稳定存储器中。

9. 答:

动态转储是指在转储过程中,允许其他事务对数据库进行存取或修改操作的转储方式。也就是说,转储和用户事务并发执行。动态转储有效地克服了静态转储的缺点,它不用等待正在运行的事务结束,也不会影响新事务的开始。动态转储的主要缺点是后援副本中的数据不能保证正确有效。

10. 答:故障检测、控制权移交、恢复时间、提交时间

11.

例如:有T1,T2两个事务,他们都对数据项A进行了操作。事务T1在T2之前执行,当T1执行完毕后再执行T2。因此T2事务读到数据

数据库系统原理与设计 14. 可串行化 15 项A的值是T1更新后的值。在T2的执行过程中,发现T1事务有错误,因此撤销T1。那么此时数据库中数据项A的值就不一致了。

12. 使整个数据库回到错误事务提交前的某一状态,这样做的优点是能保证数据一致,缺点是有一些不访问错误事务修改过数据的事务,事务的撤销是多余的。

13. 可以使用RAID来实现稳定存储器。 14. 事务故障是指那些导致事务无法正常执行的故障,逻辑错误和系统错误可以导致事务故障的发生。

系统故障主要是由于服务器在运行过程中,突然发生操作系统错误、停电等原因造成的非正常中断,造成用户对数据库进行处理的事务被突然中断,内存缓冲区中的数据全部丢失,但硬盘、磁带等外设上的数据未受损失的一种故障。

介质故障是由于硬件的可靠性较差出现的存储介质发生物理损坏,数据库的数据全部或部分丢失,破坏性较大。

15. 数据恢复的基本原理是冗余。

第10章

一、选择题

1 B 2 C 3. B 4. D 5.B 6A 7B 8D 9A 10A 11C 12 D 13B 14.AB 15D

二、填空题 1. 隔离性

2. 调度事务的并发是可串行化的

3. 两段锁协议,时间戳协议,有效检查协议4. 超时法,等待图法 5. 二 6. 意向锁 7. 显式封锁 8. 隐式封锁 9. 死锁 10. 时间戳 11. 一次封锁法 12. 活锁 13. 死锁

15. 三级

三、思考题

1. 答:多个事务并发执行时,使用并发控制可以避免数据不一致。

2. 答:丢失修改、不可重复读、读脏数据 3. 答:封锁是实现事务并发控制非常有效的一种技术。封锁是事务在对数据库某个数据项进行读写操作前,得到系统对该数据项进行操作的一种授权。

4. 答:排它锁(X锁)、共享锁(S锁) 排它锁(exclusive locks)。排它锁又名写锁。当一个数据对象A被事务T加了排它锁后,则只允许事务T读取和修改数据,在此期间,其他事务都不能对数据执行任何操作。

共享锁(share locks)。共享锁又名读锁。当一个数据对象A被事务T加了共享锁后,则事务T对数据对象A可以执行读操作,但是不能执行写操作,在此期间,其他事务也可以数据对象A加共享锁,但是不能对数据对象A加排它锁。

5. 答:一级封锁协议:事务T在对数据项

A修改之前,必须先对数据A加排它锁,直到事务结束才释放。

二级封锁协议是:事务T在对数据修改前,必须先加排它锁,直到事务结束才释放排它锁;事务T在要读取的数据前,必须先加共享锁,读完后即可释放共享锁。

三级封锁协议是事务T在读取数据之前必须先对其加共享锁,在要修改数据之前必须先对其加排它锁,直到事务结束后才释放所有锁。

6. 答:所谓“两段”锁,其含义是数据分两个阶段进行加锁和解锁:

第一阶段是获得封锁,也称为扩展阶段。这在阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。

第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的琐,但是不能再申请任何琐。

16 数据库系统原理与设计 7. 答:时间戳排序协议(timestamp-ordering

事务1读取数据后,事务2对那个数据protocol)是一个串行化调度的协议,它保证对数据项的读写操作有冲突的事务按照时间戳顺序执行,协议内容如下:

1)事务T读数据A——read(A)。

(1)若TS(T)

(2)若TS(T)>=W-timestamp(A),则执行read(A)操作,R-timestamp(A)被设置成TS(T)和R-timestamp(A)中的较大值。

2)事务T写数据A——write(A)

(3)若TS(T)

(4)若TS(T)

(5)若TS(T)不满足上面情况,则执行write(A)操作,并且将W-timestamp(A)设置成TS(T)。

注意:R-timestamp(A),、W-timestamp(A)的初始值等于最小时间戳。如果事务T由于发出read(A)或者write(A)而回滚,那么系统会给事务赋新的时间戳,并且重新启动事务。

8. 答:活锁:这种在多个事务请求对同一数据封锁时,使某一用户总是处于等待的状况。

死锁:这种多事务交错等待的僵持局面称为死锁。

9. 答:一次封锁法、顺序封锁法、等待封锁法。

10. 答:选择牺牲者,回滚,防止饿死。 11. 答:意向锁的含义是如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。

有三种意向锁:意向共享锁(ntent share lock),简记为IS锁,意向排它锁(intent exclusive lock),简记为IX锁,共享意向排它锁(share intent exclusive lock),简记为SIX锁。

12.

在数据库中的副本做了修改,当数据库再次到数据库读取数据时,得到与前一次不同的值。

事务1事务21读取A=172读取A=173A=A-1=16写回数据库4A=A-1=16写回数据库

13. 事务1读取了数据项A,并对它作了

修改,然后又将它写回到数据库;事务2到数据库中同样读取A,此时得到的是修改后的A:由于某种原因,事务1要执行回滚操作,将A恢复为它原来的值,这时事务2中A的值和数据库中A的值就不一致,事务2读到的数据是不正确的——“脏”数据。

事务1事务21读取A=17A=30写回数据库2读取A=30事务回滚3数据库中A恢复原值A=17

14.采用三级封锁协议,如图

事务1事务21Lock-X(A)读A=172Lock-X(B)Lock-X(A)读B=13Lock-X(B)3求和=A+B=30等待4Lock-X(A)读A=17等待5unLock(A)等待unLock(B)等待67Lock-X(A)成功读A=178Lock-X(B)成功读B=13求和=A+B=309A=2*A;写回数据库10unLock(A)11unLock(B)

数据库系统原理与设计 17 15.采用二级封锁协议,如图

事务1事务21Lock-X(A)2读取A=173Lock-X(A)4等待5A=A-1=16写回数据库等待6发生故障rollback等待A=177unLock(A)等待8Lock-X(A)成功9读取A=1710A=A-1=16写回数据库11unLock(A)

第11章

一、选择题 1. C 2. B

3. A

4. C

5. D 二、填空题 1. 无缝连接 2. 方法 3. 实际变元 4. 封装 5. 可扩充性 6. 封装 7. 滞后联编 8. 状态 9. 行为 10. 方法

三、名词解释

1. 答:面向对象:面向对象(Object Oriented)方法,简称OO方法,是建立在“对象”概念基础上的方法学。面向对象的主要思想可以概括为:面向对象方法的万事万物皆对象;每个对象皆由其他对象构成;每个对象都有类型、同一类型的对象所能接收的消息相同;程序是对象的组合,彼此通过消息的传递,请求其他对象进行工作。

2.面向对象数据库:用全新的面向对象的概念来设计数据库。面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言

与数据库的无缝连接。面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、方法、继承等概念。面向对象数据库系统支持面向对象数据模型,简称OO模型。也就是说,一个面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。

3.对象-关系数据库:在主流的关系数据库的基础上加入对象化特征,使之提供面向对象的服务,保留了关系型数据库的结构,但允许关系表中的列含有一个复杂的对象,这些对象能够捆绑处理复杂数据的处理过程。但访问语言还是基于SQL。

4.ODL:对象定义语言(Object Definition

Language)是ODMG推荐的用来创建数据模式的标准语言,支持最新的ODMG 3.0 对象模型的语义结构。它采用面向对象的术语来说明数据库结构,通过给出类的属性、关联和方法来描述面向对象的模型,进而将其直接转换成面向对象数据库管理系统(OODBMS)的说明。ODL是与特定面向对象语言相互独立的。

5.OQL:对象定义语言(Object Definition Language)是ODMG推荐的用来创建数据模式的标准语言,支持最新的ODMG 3.0 对象模型的语义结构。它采用面向对象的术语来说明数据库结构,通过给出类的属性、关联和方法来描述面向对象的模型,进而将其直接转换成面向对象数据库管理系统(OODBMS)的说明。ODL是与特定面向对象语言相互独立的。

6.SQL3:著名的对象-关系数据库语言。SQL3标准支持ORDBMS模型。它以关系数据库为基础,在此基础上加入OO概念扩充,具有明显的SQL特征,适合于数据库的模式定义和操纵。SQL3主要由数据定义和数据查询两部分组成,除了具备传统关系数据库系统SQL的基本功能外,还具有几种OO特征的功能:能够定义复杂数据类型与抽象数据类型;具有数据间的组合和继承功能;能定义和使用函数。

7.类型间继承:类型继承其实就是类继承,表示类型之间的一种超类——子类关系。

18 数据库系统原理与设计 8.表间继承:在SQL3中,不仅可以定义类

型间继承,还可以定义表间继承。表间继承表示不同的表格之间存在的超类——子类关系。

9. SQL3函数(FUNCTION):SQL3允许用户自定义函数(FUNCTION)。利用关键字CREATE FUNCTION,给出函数的名称,说明输入参数以及输出的参数类型,函数的头部就构造完了。函数体由BEGIN和END表明函数的开始和结束,函数的核心部分就是要完成的功能,也是标准的SQL3查询语句。

10. SQL3过程(PROCEDURE):SQL3允许用户自定义过程(PROCEDURE)。SQL3中的PROCEDURE非常类似于某些高级程序语言中的PROCEDURE,它的定义和使用很像高级语句。

四.思考题

1. 答:ODL类型系统有2种类型,一种是基本类型,包括:int、real/float、string、enumerated types,以及class。另外一种是类型构造器,包括:表示结构体的Struct,以及四种集合类型:Set、Bag、List、Array。

2. SQL3对关系数据库中的数据类型进行了扩展,使它不仅可以支持基本数据类型,还可以处理复合数据类型。基本数据类型除了包含SQL2中的数据类型外,在SQL3中又引入了三种新的,他们是:BOOLEAN 类型、CLOB 类型和BLOB 类型。复合数据类型包括两层:数据类型构造器和用户自定义类型。

3. 答:

/*定义超类person*/

interface Person(extent people) {attribute string name; attribute integer age; };

/*类Faculty是超类person的子类*/

Interface Faculty : person(extent Faculties key fno)

{attribute string fno; Attribute integer salary;

/*定义类型Faculty中属性works-for, teach与类型University的staff及其类型coursetext的teacher间的组合关系*/

Relationship University works-for inverse University : staff;

Relationship setteach inverse coursetext : teacher;

/*统计教师授课门数的方法*/

integer num-teach() };

Interface University(extent Unversities key uno)

{attribute string uno; attribute string uname; attribute string city;

relationship Faculty president; relationship set staff inverse Faculty : works-for;

relationship setedit inverse coursetext : editor;

/*统计学校人数的方法*/ integer num-staff() };

Interface coursetext(extent coursetexts)

{attribute string cname; attribute string textname;

relationship Faculty teacher inverse Faculty : teach;

relationship University editor inverse University : edit

};

4. 答:

Select F.works-for.uname, F.name From Faculty F

Where F.num-teach() > 3;

5

Select distinct C.name

From university U, u.staff F, F.teach C Where U.city=\

6. 答:

select p.pname

from Corses c, c.professors p where c.cname=”数据库原理”;

计算过程描述:

for Course中的每个 c do

for c.professors 中的每个p do if c.name=”数据库原理” then 把p.pname 加到输出包中

7. 答: 函数: 声明:

CREATE FUNCTION func_teacher_name(teach-num INTEGER)

RETURN STRING BEGIN

DECLARE name STRING;

Select distinct C.name AS name From university U, u.staff F, F.teach C

Where U.city=\RETURN name; END;

调用:

func_teacher_name(\

过程:

声明

数据库系统原理与设计 19 3.DTD = Document Type Definition / Declaration 文档类型定义/声明。DTD是一套关于标签的语法规则,确定可在文档中使用哪些标签、它们应该按什么顺序出现、嵌套方法、标签属性等等。DTD规定元素的名称、结构和属性及元素间的逻辑关系,以对文档进行有效性检查。DTD声明类型有:元素、属性表、符号和实体。

4.XML Schema:Schema可以翻译成模式、CREATE PROCEDURE proc_course_name(in

city VARCHAR(20), out course VARCHAR(20))

BEGIN

Select distinct C.name INTO course From university U, u.staff F, F.teach C

Where U.city=city; END;

调用:

DECLARE course[ ] STRING;

CALL proc_course_name (\course);

第12章

一、选择题 1. B 2. C

3. B

4. D

5. C 二、填空题

1. 元素,属性,实体引用,注释,处理指令2. 嵌套 3. 寻址 4. XPath 5. 区分 三、名词解释

1. 答:HTML:HyperTextMark-upLanguage,即超文本标记语言,是WWW的描述语言,专门为网页创建和其他可在网页浏览器中看到的信息设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。

2.XML:XML = eXtensible Markup Language可扩展标记语言,由万维网协会W3C(World Wide Web Consortium,1994.10成立,由Web的发明者Tim Berners-Lee领导)于1998年制定的一种基于文本的数据描述语言的语法通用标准,可用来制定定义数据的结构、种类、属性和内容的具体规范。XML被誉为因特网上的世界语,其主要应用领域有:数据交换、Web发布和分布式计算等,是新万维网Web的基础。XML 是一种描述型的标记语言,与HTML 同为SGML(标准通用标记语言, ISO28879 国际标准)的一种应用。

大纲、计划、规划等等,它为XML文档制定一种模式。XML Schema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法。Schema实质上也是XML的一种应用,它将XML的DTD重新按XML语言规范来定义,充分体现了XML

元语言的自描述性特点。

5. XPath:XPath的主要目的是对一个XML文档进行寻址,它也为操纵字符串、URI和XML属性值里的数值和布尔值提供了一些基本的功能。XPath使用一种紧凑的、非XML的语法以方便XPath的使用。XPath在XML文档的一个抽象、逻辑结构上进行操作,而不是在它的表面上的语法上。XPath因为使用类似于URL的路径表示法来在一个XML文档的层次结构中进行导航而得名。

6. XQuery:XQuery将成为一种用于描述对XML数据源的查询的语言,具有精确、强大和易用的特点。XQuery用于查询XML数据,但不仅仅是XML文件,还包括一切以XML形式出现的东西,包括数据库在内。

四.思考题

1. 答:对XML数据库系统的研究主要有两种途径:一是纯(native)XML数据库系统,它是为XML数据量身定做的数据库.它的优点是充分考虑到XML数据的特点,以一种自然的方式来处理XMI.数据,能够从各个方面较好地支持XMI.的存储和查询,但是,纯XML数据库要走向成熟还有很长的路;二是XML使能(XML-enabled)数据库系统,它是在已有的关系数据库系统或面向对象数据库系统的基础上扩充相应的功能,使其能够胜任XMI,数据的处理.目前,XMI.使能数据库的研究主要是基于关系数

20 数据库系统原理与设计 hema\

2. 答:一篇XML文档由标记和内容组成。XML中有六种标记:元素(elements)、属性(attributes)、实体引用(entity references)、注释(comments)、处理指令(processing inst ructions)和CDATA段(CDATA sections)。

3. 答:

]>

4.

<书目> <书 书号=\版本=\类型=\数据理论\

<书名>数据库系统概念 <作者> <作者成员>Abraham Silberschatz

<作者成员>Henry F.Korth

<作者成员>S.Sudarshan

<出版社>机械工业出版社 <价格> 69.00 <书 书号=\7-04-019583-6\版本=\类型=\数据理论\

<书名>数据库系统概论 <作者> <作者成员>王珊 <作者成员>萨师煊 <出版社>高等教育出版社 <价格> 33.80

5. 答:

encoding=\

xmlns:xsd=\

type=\fixed=%use=\

6.

<书目> <书 书号=\版本=\类型=\数据理论\

<书名>数据库系统概念 <作者> <作者成员>Abraham Silberschatz

<作者成员>Henry F.Korth

<作者成员>S.Sudarshan

<出版社>机械工业出版社 <价格> 69.00 <书 书号=\7-04-019583-6\版本=\类型=\数据理论\

<书名>数据库系统概论 <作者> <作者成员>王珊 <作者成员>萨师煊 <出版社>高等教育出版社 <价格> 33.80

本文来源:https://www.bwwdw.com/article/vcsp.html

Top