数据库原理及设计 --作业.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
OceanBase 0.4:从API到SQL 日照
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
文科计算机小公共课规划教材 Access 程序设计.
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
数据库应用与程序设计.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
第五讲 利用视图进行查询优化.
第11章 详细设计.
關聯式資料庫.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第六章 學習SQL語言.
資料庫系統 Database Systems
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
实验二 交互式SQL 邓云.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
高等資料庫管理系統 Advanced Database Management System
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第8章 数据库的安全和完整性约束 数据库的破坏一般来自: 1.系统故障; 2.并发所引起的数据不一致; 3.人为的破坏;
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
SQL Server 2000 数据库入门.
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
作业3-点评.
实验二讲评 … 张榆….
数据库技术.
数据库技术与应用.
ORACLE 第九讲 触发器.
MySQL开发规范 DB组-张浩.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
OceanBase 0.4:从API到SQL 日照
第三章 SQL Server数据管理.
第 7 章 建立資料表與資料庫圖表.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第4章 数据查询.
Presentation transcript:

数据库原理及设计 --作业

第一章 数据库系统概述 一. 简答题 1. 简述数据抽象、数据模型及数据模式之间的关系? 数据抽象是一种数据抽取的过程。 数据模型是用来组织数据的工具。 数据模式是抽取的数据利用数据模型组织后得到的结果 数据模型是数据抽象的工具,是数据组织和表示的方式;数据模式是数据抽象利用数据模型,将数据组织起来后得到的结果,简言之,数据模式是数据抽象的结果,这就是它们三者之间的相互关系。

2. DBMS应具备的基本功能? 数据独立性:通过“数据结构”和“数据文件”从应用程序中分离出来,交给DBMS处理和管理来达到的。 安全性:保证不具有权限的用户看不到其不应该看到的东西。 完整性:即完整性约束,保证数据的完整、正确。 故障恢复:保证在出现故障时不丢失任何数据,且故障排除后能恢复故障时的有效数据。 并发控制:提供多用户同时访问的功能,但又能处理访问冲突。

3. OLTP与OLAP间的区别? OLTP即联机事务处理,OLAP即联机分析处理;OLTP是一应用而不是一种产品,它着重于“数据管理”,对响应的时间要求比较高。OLAP着重于“数据分析”,主要是对用户当前及历史数据进行分析,辅助领导决策,通常要进行大量的查询操作,对时间的要求不太严格。

4. 大型DBMS与微机DBMS间的区别? 大型DBMS与微机DBMS间的区别主要区别在功能上。大型DBMS上的应用称为基于主机的“集中式”应用。微机DBMS弱化、甚至去掉了基于主机的RDBMS的某些功能(并发控制、故障恢复、完整性和安全性)。

5. 数据库中对数据最基本的四种操作是什么? 增,删,改,查询。 6. 评价数据模型的三个标准? 能够真实地描述现实系统, 容易被业务用户所理解, 容易被计算机所实现。

7. 数据模型的三个要素? 数据结构,用于描述现实系统中数据的静态特性;数据结构不仅要描述数据本身还要描述数据之间的联系; 数据操作,用于描述数据的动态特性;包括操作及有关的操作规则数据库的主要操作有插入删除修改和查询。 数据约束,描述对数据的约束特性。完整性规则是数据模型中数据及其联系所具有的约束规则用来限定数据库状态以及状态的变化以保证数据的正确。

8. 数据库语言的作用? 数据库语言包括数据定义语言、数据操纵语言和数据控制语言三种。他们分别提供结构定义、数据操纵和系统控制的功能。 9. SQL语言的使用方式? 有两种方式,一是“交互式”,用户直接在DBMS控制台上,使用SQL语言中的SQL语句交互; 一是用户通过开发的应用系统与RDBMS交互,由于RDBMS只提供SQL语言接口,作为应用系统开发工具的高级程序设计语言,也必须通过SQL语言与RDBMS交互,于是出现将SQL语言嵌入到高级编程语言中使用的“嵌入式”方式,即SQL的“嵌入式”使用。

10. ODBC及JDBC的作用? ODBC及JDBC是为各种高级程序语言或应用系统提标准SQL数据访问的中间件;还提供了数据库访问的统一、标准的接口函数,为应用程序实现RDBMS平台的无关性和可移植性奠定了基础。

二.单项选择题 1. ( ① )不是SQL语言的标准。 ①SQL-84 ②SQL-86 ③SQL-89 ④SQL-92 2. ( ④ )数据模型没有被商用DBMS实现。 ①关系模型 ②层次模型 ③网状模型 ④ER模型 3. ( ③ )不是数据模型应满足的要求。 ①真实描述现实世界 ②用户易理解 ③有相当理论基础 ④计算机易实现 4. ( ② )最早使用SQL语言。 ①DB2 ②System R ③Oracle ④Ingres

三.判断题(正确打√,错误打×) 1. 一个数据库系统设计中,概念模式只有一个,而外模式则可有多个。 ( √ )。 2. 每一种DBMS的实现,均是建立在某一种数据模型基础之上。 ( √ )。

第二章 实体联系数据模型 一. 简答题 1. 数据模型的未来? 答:1)设计与实现只用一个数据模型,这样可以从根本上简化问题。 2)层次共存、自动转换,这个可以简化开发的目的。 2. 实体联系数据模型的地位与作用? 答:实体联系数据模型适用的最广泛且最成熟的高级语义数据模型,主要用于数据库的设计。尽管目前受到来自对象模型的严峻挑战,但是仍得到大量用户以及CASE工具的支持。

3. 数据库系统的开发中,为什么需要首先设计数据模式? 答:数据模式是所抽取数据的表现形式,或者说是数据抽象的结果。 因为在数据库系统的开发中,我们首先面对的是现实世界的数据,这些数据必须经过抽象才能成为计算机所能处理的数据。

4. 数据库设计的步骤? 需求分析;需要对数据信息需求、业务需求、性能需求进行了解。 概念数据库设计;将收集到的信息变成数据高级描述以及对数据的约束限制。 逻辑数据库设计;选择一个具体的RDBMS,将概念DB设计的ERM转换为关系模型对应得模式。 模式优化;解决关系模式潜在的问题,需要利用规范化理论,对由ERM转换而来的关系模式进行优化。 物理数据库设计;考虑负载、性能要求,设计并选择物理存取方式。 安全设计;确定用户的权限问题。

5. 用ERM作为工具去描述现实系统时,现实系统中的数据本身用什么描述,数据联系又用什么去描述? 现实系统中的数据本身用实体和实体型描述,数据联系用联系和联系型描述。 6. 属性按结构的分类,以及按取值的分类? 按结构分为:简单属性:不能在分解,复合属性(可以再分为子属性)和子属性; 按取值分为:单值属性,多值属性,导出属性和空值属性。

7. 实体用什么来唯一标识? 答:实体用键来唯一标识。 键是具有惟一标识特性的一个或一组属性用于惟一标识实体型中的实体。 8. 一般情况下,联系用什么来唯一标识? 答:一般情况下,联系由所参与实体的键共同唯一确定。

二. 单项选择题 1. ( ③ )不是数据模型的要素。 ①数据结构 ②数据操作 ③数据类型 ④完整性约束 2. ( ④ )是高级语义数据模型。 ①关系模型 ②层次模型 ③网状模型 ④ER模型

三. 判断题(正确打√,错误打×) 1. ( √ )候选键不一定是主键,而主键必定是候选键之一。 2. ( × )ER模型中,实体有属性,而联系没有属性。 3. ( × )同一实体型不可能存在联系递归联系型 4. ( √ )在EERM中,子类与超类的演绎与归纳应遵循的约束是动态约束。

四. 请根据你的理解,画出商店商品销售管理的ER数据模型。 售货员 客户 商品 库房 存放 工作证号 姓名 性别 住址 数量 销售日期 身份证号 地址 商品编号 名称 价格 日期 库房号 库房类型 面积 m n L 1

第三章 关系数据库系统RDBMS 一. 简答题 1. 表间数据完整性的实现方式? (1)利用外键约束定义;(2)利用触发器。 1. 表间数据完整性的实现方式? (1)利用外键约束定义;(2)利用触发器。 利用外键约束定义,即在从表上定义外键约束(或称参照完整性约束),来完成主表和从表间两个方向的数据完整性。 利用触发器完成两表间数据完整性的维护,即主表的触发器维护主表到从表方向的数据完整性,而从表的触发器维护从表到主表方向的参照完整性。

2. 主键限制的要求? 答:主键值必须唯一,且不能为空值。主键限制需要显式指定,但不需要指明限制的条件。   3.  唯一限制的要求? 答:值惟一,允许有一个且仅有一个空值。

4.SQL-92标准支持的完整性限制是否一定会在SQL SERVER中实现,举例说明? 答:SQL—92标准支持的完整性限制不一定在SQL SERVER中实现。如:断言标准支持,SERVER不支持。CASCADE和NO ACTION两种策略是SQL SERVER支持的,而在SQL-92标准中定义有四种策略,分别是Cascade、No action、Set Null及Set Default。

5. SQL SERVER中规则的目的? 答:规则是针对表中的某一列,指明该列的取值范围。当该列值变化时,RDBMS将检查变化的值是否在该规则规定的范围内。如是,则接受新列值;否则,拒绝该列值的改变,并返回该列值违反的规则名称及相关信息。 6. SQL SERVER中在定义某些限制时,分列级与表级,其分类的原则是什么? 答:列级针对表中一列,而表级针对同一表中多列。

7. 外键限制定义的条件? 答:①在含外键的表上定义。 ②定义外键限制的列必须是另一个表中的主键或候选键。 8. 一张表上可定义的触发器个数? 答:一张表最多可定义3个触发器,即“插入”触发器、“修改”触发器、“删除”触发器。 9. 关系代数的基本操作符? 答:关系代数的基本操作符:SELECTION(选择)、PROJECTION(投影)、UNION(并或称联合)、INTERSECTION(交)、DIFFERENCE(差)、CROSS-PRODUCT(积)。

10. 关系代数中对结果有重复元组时,如何处理? 答:关系代数中对结果有重复元组时,将去掉重复元组。 11. 连接的分类? 答:连接分为条件连接(Condition Join)、等连接(Equi Join)、自然连接(Natural Join)和外连接(Outer Join)。 12. 关系运算的种类? 答:关系运算分为TRC(元组关系运算)、DRC(域关系运算)。

二. 单项选择题 1. ( ③ )不是关系代数的基本操作。 ①Selection ②Projection ③Join ④Intersection 2. ( ③ )用唯一限制来约束。 ①主键 ②外键 ③候选键 ④简单键 3. ( ② )与“列”不同义。 ①字段 ②元组 ③域 ④属性

三. 判断题(正确打√,错误打×) 1. ( √ )关系代数中的改名操作既可用于改名也可用于存放临时关系模式结果。 2. ( × )对主表,插入操作可能会违背参照完整性限制,但删除和更新不会。 3. ( × )等连接是自然连接的特例。 4. ( √ )关系代数和关系运算是两个与关系模型有关的查询语言。

四、将下图中的实体联系模型转换成相应的关系联系模型。 员工 部门 经理 员工号 姓名 任期 部门号 名称 地点 1 将”管理”的”任期”属性移动到”员工”实体 员工(员工号,姓名,性别,任期,部门号) 部门号为外键 部门(部门号,名称,地点) 将”管理”的”任期”属性移动到”部门”实体 员工(员工号,姓名,性别) 部门(部门号,名称,地点,任期,员工号)员工号为外键

学生 课程 选课 学生(学号,姓名) 课程(课程号,课程名,学分) 选课(学号,课程号,成绩)学号,课程号为外键。 学号 姓名 成绩 课程号 M N 学生(学号,姓名) 课程(课程号,课程名,学分) 选课(学号,课程号,成绩)学号,课程号为外键。

五、有如下四个关系模式,即:stu(学生信息)、apt(公寓信息)、room(寝室信息)及assign(住宿分配信息),其中公寓信息中的“性别属性”指该公寓是“男”生公寓还是“女”生公寓。 stu(sid(学号),sname(姓名),ssex(性别)dept(所属院系),edate(入学日期)) apt(aid(公寓号),aname(公寓名),asex(性别属性)) room(aid(公寓号),rid(寝室号),num(已住学生数)) assign(aid(公寓号),rid(寝室号),sid(学号))

写出如下查询的关系代数表达式: (1) 找出“计算机学院”且在“2001-09-01”入学的所有学生的学号、姓名; πsid,sname(σdept=计算机学院(stu)∩σedate=2001-09-01(stu)) πsid,sname(σdept=’计算机学院’,edate=’2001-09-01’(stu)) (2)找出至少入住了1名学生的寝室(注意:“公寓号”和“寝室号”才能完整地代表一个寝室); πaid,rid(σnum>=1(room))

  (3) 查询“计算机学院”学生的住宿分布情况(即入住了计算机学院学生的“公寓名”) πaname(πsid(σdep=’计算机学院’(stu)) (assign)) Stu assign 之间为自然连接。

用SQL的DDL创建表1至表4,并定义各表的主键限制、外键限制(对于主表到从表的完整性策略根据情况合理选择)。对表1和表2的“性别”和“性别属性”定义检查限制,要求“性别”和“性别属性”只能取“男”或“女”两种值。 (1) 学生信息(Stud) create table stud (sid char(8) primary key, sname varchar(10) not null, ssex char(2) not null, constraint ssex_constraint check (ssex in ('男','女')), dept varchar(30) not null, edate datetime not null, ) 列级主键,列级检查约束

create table stud (sid char(8) not null, sname varchar(10) not null, ssex char(2) not null, constraint ssex2_constraint check (ssex in ('男','女')), dept varchar(30) not null, edate datetime not null, constraint sid_primary primary key(sid), )表级主键

(2) 公寓信息(Apt) create table apt (aid char(6) primary key, aname varchar(20) null, asex char(2) null, constraint asex_constraint check (asex in ('男','女')) ) //error: constraint asex_constraint check(asex in(‘man’,’woman’)) 列级主键

create table apt_2 (aid char(6) , aname varchar(20) null, asex char(2) null, constraint asex11_constraint check (asex in ('男','女')), constraint aid_constraint primary key (aid), )表级主键

(3) 寝室信息(Room) create table room (aid char(6) not null, rid char(5) not null, num tinyint null, constraint aid_constraint foreign key(aid) references apt(aid) on delete cascade on update cascade, constraint aidrid_constraint primary key(aid,rid), )//表级主键,表级外键

create table room_11 (aid char(6) not null constraint aid_constraint11 references apt(aid) on delete cascade on update cascade, rid char(5) not null, num tinyint null, constraint aidrid_constraint11 primary key(aid,rid), )//列级外键,表级主键

(4) 住宿分配信息(Assign) create table assign (aid char(6) not null, rid char(5) not null, sid char(8) not null, constraint aidrid_constraint1 foreign key (aid,rid) references room(aid,rid) on delete cascade on update cascade, constraint sid_constraint foreign key (sid) references stud(sid) constraint aidridsid_constraint primary key(aid,rid,sid) )

第四章 SQL查询语言 一. 简答题 1. SQL语言的使用方式? 答:使用方式: 交互式 嵌入式 2. 完整的SQL包括哪三个子语言分类? 数据定义子语言DDL 数据操纵子语言DML 数据控制子语言DCL

3. SQL语言中定义的数据库与第一章中的数据库概念之异同? 答:相同点:都包含有对数据进行组织、管理等操作的意思; 不同点:SQL语言中定义的“数据库”,是指存在于物理磁盘上的一个存储空间,用于存放相关数据集合;而第一章中的“数据库”,是一个宽泛的概念,可以说它是一种组织、管理数据的手段、方法,也可以说它是一个实际的产品。 4. 标准的SQL语言与实际数据库产品中的SQL数据库语言的关系? 答:绝大多数RDBMS产品并不完全支持标准SQL,反过来,实际RDBMS产品的SQL语言,也有可能出现标准SQL中没有出现的功能或特性,而且这种差异也会在命令和语法上得到体现。

5. SQL语言对数据库对象的定义使用哪三个SQL命令关键字? Create(创建) Alter(修改) Drop(删除) 6. 定义索引的目的? 答:索引是数据位置信息的关键字表,利用索引,系统可以较快地在磁盘上定位所需数据,而不需要从磁盘上从头到尾或从后向前,一个数据一个数据地匹配和查找,从而加快了数据查询的速度。

7. 数据修改与删除命令中,加锁选项的作用? 答:实现多用户对表的更新操作。 8. T-SQL中游标的作用? 答:游标的作用:通过在内存中开辟一段缓冲区,SQL Server提供了存取该缓冲区数据的行的“指针”,这样,用户利用该指针即可存取和处理各行数据,也为高级编程语言提供了按行处理查询结果集合的途径。

9. T-SQL中存储过程的好处? 答:存储过程的优点: 执行速度快 可用于实现经常使用的数据操作 实现较复杂的完整性约束 可在程序中被反复调用,有助于程序的模块化 有助于提高安全性,即使用户没有直接执行存储过程中SQL语句的权限,但如被授予了执行存储过程的权限,该用户也可以执行该存储过程 实现复杂敏感事务的自动化 减少网络流量,用户执行存储过程,只需在网络上传送一条调用存储过程的语句即可

二. 根据新版教材P346-348的表11-1、11-2、11-3、11-4、11-5、11-6,完成如下任务: 写出创建Person表的代码: create table person (p_no char(6) primary key, p_name varchar(10) not null, sex char(2) not null, birthdate datetime null, prof varchar(10) null, deptno char(4) not null constraint deptno_constraint references dept(deptno) on delete cascade on update cascade)

写出向表Person插入一行(表11-4中的任一行均可)数据的代码: insert into person values('000001','王云','男','19730407','中级','0001') insert into person values('000003','王云','男','1973-4-7','中级','0001')   将表11-4中“000006”的Deptno由“0003”改为“0001”,写出代码: update person set deptno='0001' where p_no='000006'

删除表11-4中“000002”员工,写出代码: delete from person where p_no='000002'   根据表11-4,按部门Deptno分组统计各部门人数,写出查询代码: select deptno 部门号, count(p_no) 人数 from person group by deptno //select子句的列表中,除了使用聚集函数的列之外,其余各列都必须出现在group by 子句的列表中.

根据表11-4,利用Compute by子句按职称分组统计人数,写出查询代码: select p_no 职工号,prof 职称 from person order by prof compute count(p_no) by prof //compute by必须与order by联用,且compute by 后的表达式应与order by后的表达式(或子集)内容一致,聚集函数应放在compute之后,不在select语句中。

第五~八章 数据库安全性、完整性、故障恢复、并发控制 一. 简答题 1. 导致数据库破坏的四种类型?DBMS分别用何措施来保护之? 非法用户,指那些没有经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限访问数据库的用户。 解决方法:利用权限机制,只允许有合法权限的用户存取所允许的资料。 非法数据,指那些不符合规定或语义要求的数据,一般由用户的误操作引起。解决方法:利用完整性约束,防止非法数据进入数据库。

各种故障,包括硬件故障、系统软件和应用软件错误等。解决方法:提供故障恢复能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态。 多用户的并发访问  解决方法:提供并发控制机制,控制多个用户对同一资料的并发操作,以保证多个用户并发访问的顺利进行。 2. SQL SERVER安全体系与标准SQL推荐的安全体系一样吗?为什么? 不完全一样。 因为标准SQL推荐的安全体系由连接、资源、对象三级组成。SQL SERVER安全体系也是由三级组成,从外到内为:DBMS或DB服务器(对应标准的连接)、DB级(对应标准的资源)、语句与对象级,并且一级比一级要求高,即内部级比外部级高。

3. 完整性约束的实现步骤? 解:完整性约束的实现步骤:定义、验证。 4. 显式完整性约束的定义方式? 解:过程化定义:利用过程或函数来定义和验证显示约束。   断言:是指数据库状态必须满足的逻辑条件。   触发器:用于定义在数据库完整性约束被违背时应执行的操作。 5. 事务的特点? 解:事务由多个步骤构成,只有所有步骤都成功执行,该事务才可“提交”完成;否则,其中任何一个步骤执行失败,该事务失败,事务中已经执行的步骤应该“撤销”或“回退”。

6. 所谓的故障恢复,是对什么进行恢复? 解:恢复主要是恢复数据库本身,即在故障引起当前数据库状态不一致的时候,利用备份副本,将数据库恢复到某一正确状态或一致状态。 7. 故障恢复时,对事务处理的总的原则是什么? 解:对已提交的事务应该保证他的更新操作   未提交的事务应该对它所做的所有操作予以撤销 8. 日志的基本内容? 解:日志的基本内容包括:活动事务表(ATL)、提交事务表(CTL)、前象(BI)、后象(AI)。

9. 为顺利恢复,DBMS应执行的事务外围操作有哪些? 解:为顺利恢复,DBMS应执行的事务外围操作包括:1.后像(AI)应在事物“提交前”写入磁盘上的数据库,或磁盘上的日志中;2.如后像(AI)在事物“提交前”写入磁盘上的数据库,需先将前像(BI)写入磁盘上的日志,以便事务失败后,撤销事务所作的更新。 10. 为何要并发? 解:1)提高系统的资源利用率; 2)改善短事务的响应时间(Response Time)

11. 并发执行可能引起哪些问题?产生这些问题的原因各是什么? 丢失更新(覆盖未提交的数据)即:一个事务的更新的数据还没有提交,另一个事务又将该未提交的数据再次更新。原因:两个或多个事务对“同一数据”并发地“写入”引起,又称为“写-写”冲 读“脏”数据(读未提交的数据),即一个事务更新的数据尚未提交,被另一事务读到。  原因:一个事务读另一事务尚未提交的数据引起,称为“写-读”冲突。 读值不可复现 ,即两次对同一数据读操作,但是却读到不同的数据。 原因:“读-写”冲突引起。

12. 并发控制的正确性准则? 解:正确性准则:“冲突可串行化”。 13. 加锁协议的思想? 解:用“加锁”来实现并发控制,即在操作前对被操作的对象加锁。锁的作用锁住事务要访问的数据对象,使得其他事务无法访问同一数据对象,尤其要阻止其他事务改变该数据对象。 14. 加锁协议中相容矩阵的作用? 解:相容矩阵,是说明锁请求在什么情况下可获准或被拒绝。如果获准了,就说明数据对象上已有的锁与申请要再加上的锁“相容”;如果被拒绝,则说明数据对象上已有的锁与申请要再加上去的锁“冲突”或“相斥”。

15. 级联回退的原因?如何避免? 解:级联回退的原因是过早释放锁。避免方法:要求不管是写操作还是读操作锁,都应保持到事务结束才释放。 16. 为什么说(S,X)协议比X协议提高了并发度? 解:与X锁协议相比,由于读操作使用S锁,不再是X锁,并且“读-读”不是冲突操作对,故可将S锁与S锁设计为相容,即同一数据对象可允许多个事务并发读,这样就提高了并发度。 (并发度即同一时刻允许访问的用户数)

17. 多粒度加锁中,粒度、控制复杂性及并发度之间的关系? 解:加锁粒度越大,锁控制的层次越高,这样控制的精细度就越粗,从而控制越简单,系统开销就越小,但同时会降低并发访问度:反之,加锁粒度越小,锁控制的层次越低,这样控制的精细度就越高,从而所需的控制越复杂,系统的开销就越大,不过可提高并发度。 18. 试说明,多粒度加锁的锁冲突检测问题。 解:如果只有显式锁,则锁冲突较容易发现;若有隐式锁,则检查冲突就较复杂。多粒度加锁下,要对某数据对象加锁时,锁冲突检测为:检查数据对象本身,是否存在显式锁;检查数据对象所有祖先,是否存在显式锁;检查数据对象所有子孙,是否存在显式锁。

19. 对付死锁的方法? 解:对付死锁,DBMS采用两种方法,即,防止死锁;检测死锁,发现死锁后处理死锁。 预防死锁的两个策略:等待-死亡策略(年老的等待年轻的事务)和击伤-等待策略(年轻的等待年老的事务)。 死锁的检测的两种方法:超时法(设定一个时限)和等待图法(等待图中出现回路即发生死锁) 死锁的处理思想是“杀死”事务,打破循环等待,解除死锁。

二. 单项选择题 1. ( ① )不是数据库复制的方式。 ①分布式复制 ②主从复制 ③对等复制 ④级联复制 2. ( ④ )DBMS中未涉及的故障。 ①系统故障 ②介质故障 ③事务失效 ④网络故障 3. ( ① )检查点是哪种失效类型的恢复措施的改进。 ①系统失效 ②介质失效 ③事务失效 ④网络失效

三. 判断题(正确打√,错误打×) 1. (× )DBMS不构建自己的安全体系,而只利用OS的安全体系来保证DB的安全。 2. ( × )SQL-92支持MAC,不支持DAC。(SQL-92支持DAC,不支持MAC。) 3. ( × )SQL SERVER中的登录用户与数据库用户是一回事. 4. ( × )SQL SERVER中的Public角色是数据库级的,而DBO角色是服务器级的。

四. 给定事务集={T1,T2,T3,T4,T5},对如下并发调度: 四. 给定事务集={T1,T2,T3,T4,T5},对如下并发调度: S=W3(y)R1(x)W5(z)R2(y)W3(x)R5(y)W2(x)W3(z)R4(z)W4(x) 请利用前趋图来回答: ①  该调度是否可串行化? 不可以  因为在T3和T5之间有回路 ② 如是,与其等价的串行调度是什么?

S=W3(y)R1(x)W5(z)R2(y)W3(x)R5(y)W2(x)W3(z) R4(z)W4(x) T1 T2 T5 T3 T4 S=W3(y)R1(x)W5(z)R2(y)W3(x)R5(y)W2(x)W3(z) R4(z)W4(x)

S=W3(y)R1(x)W3(z)R2(y)W3(x)R5(y)W2(x)W5(z) R4(z)W4(x) T1 T2 T5 T3 T4 S=W3(y)R1(x)W3(z)R2(y)W3(x)R5(y)W2(x)W5(z) R4(z)W4(x) T1,T3,T2,T5,T4或T1,T3,T5,T2,T4 S串=R1(x)W3(y)W3(z)W3(x)R2(y)W2(x)R5(y)W5(z)R4(z)W4(x)