第一篇:2018年数据库原理复习例题
一、单选题 关系演算的基础是()
A、形式逻辑中的逻辑演算
B、形式逻辑中的关系演算
C、数理逻辑中的谓词演算
D、数理逻辑中的形式演算
答案:C 关于数据库系统的说法不正确的是().
A、数据库系统是指引入数据库技术后的计算机系统
B、狭义地讲,数据库系统就是数据库管理系统
C、狭义地讲,数据库系统由数据库和数据库管理系统组成
D、广义地讲,数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统,数据库管理员和用户构成答案:B 对数据库并发操作有可能带来的问题包括()
A、读出“脏数据”
B、带来数据的冗余
C、未被授权的用户非法存取数据
D
答案:A 事务有多个性质,其中不包括()
A、一致性
B、唯一性
C、原子性
D
答案:B 属性类型允许是基本数据类型、结构类型和集合类型的模型是()
A、平面关系模型
B、嵌套关系模型
C、复合对象模型 D、分布式关系模型
答案:C 反映现实世界中实体及实体间联系的信息模型是()
A、关系模型
B、层次模型
C、网状模型
D、E-R
答案:D 设在关系模型中,同一表中的不同属性命名()。
A、可相同
B、必须相同
C、必须不同
D、可相同,但数据类型不同
答案:C 关系模式的规范化过程主要是为克服数据库逻辑结构中存在的插入异常、删除异常以及()
A、数据不一致性
B、结构不合理
C、数据冗余度大
D、数据丢失
答案:C 局部E-R图中实体类的冲突主要类型是().
A、属性冲突、命名冲突和结构冲突
B、命名冲突和属性冲突
C、属性冲突
D、结构冲突和命名冲突
答案:A 在关系演算中,元组变量的变化范围是().
A、某一命名的关系
B、数据库中的所有关系
C、某一个域 D、数据库中的所有域
答案:C 数据字典的内容应包括().
A、数据项,数据结构
B、数据流,数据存储,处理过程
C、数据项,数据结构,数据流,数据存储,处理过程
D、数据结构,数据流
答案:C 关于数据处理和数据管理,下列叙述正确的是()
A、数据处理经历了人工系统、文件系统、数据库系统三个阶段
B、数据处理是数据管理的中心问题
C、数据管理的主要工作是对数据进行收集、分类整理、组织、存储、维护、检索等操作
D、数据管理技术优劣不影响数据处理的效率
答案:C SQL的全局约束是指基于元组的检查子句和()
A、非空值约束
B、域约束子句
C、断言
D、外键子句
答案:C
14下列四项中,不属于数据库特点的是()
A、数据共享
B
C、数据冗余很高
D
答案:C
15关系数据模型的三个组成部分中,不包括()
A、完整性规则
B、数据结构 C、数据操作
D
答案:D
16如何构造出一个合适的数据逻辑结构是()主要解决的问题。
A、关系数据库优化
B、数据字典
C、关系数据库规范化理论
D
答案:C 下面系统中不属于关系数据库管理系统的是()
A、Oracle
B、MS SQL Server
C、IMS
D、DB2 答案:C 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于()
A、实体完整性约束
B、参照完整性约束
C、用户自定义完整性约束
D、关键字完整性约束
答案:A 关于数据库的说法不正确的是().
A、一个相互关联的数据集合
B、包含了关于某个企业或组织的信息
C、是信息系统的核心和基础
D、是一种数据管理的软件
答案:D
每个属性,都有一个取值范围,这叫属性()。
A、域
B、值
C、主属性
D、关键字
答案:A 已知学生关系:(学号,性别,年龄,籍贯),若执行SQL语句:Select 姓名,年龄 From 学生 Where 籍贯='北京' 说明该语句对学生执行了()操作.
A、交和选择
B、投影和选择
C、选择和连接
D、连接和投影
答案:B 以下数据库的数据模型中,现今使用的主要的数据模型是().
A、层次模型
B、网状模型
C、关系模型
D、面向对象模型
答案:C 概念设计的步骤是().
A、进行数据抽象,设计局部概念模式;评审;集成局部概念模式,得到全局概念模式
B、进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式;评审
C、进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式
D、评审;进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式
答案:B 因为每个中间运算的结果被创建,然后用于下一层的运算,这种查询表达式的计算方法被称为()计算.
A、实体化
B、流水线
C、双缓冲
D、临时区
答案:A SQL语言通常称为()
A、结构化查询语言
B
C、结构化定义语言
D、结构化操纵语言
答案:A SQL中的视图提高了数据库系统的()
A、完整性
B、并发控制
C、隔离性
D、独立性
答案:D 在二维表中,不允许“表中套表”是指()。
A、分量是原子的 B、值是原子的 C、属性是原子的 D、域是原子的答案:A 数据的逻辑独立性是指()
A、模式变,应用程序不变
B、应用程序变,模式不变
C、内模式变,应用程序不变
D、应用程序变,内模式不变
答案:D 下列不是数据库系统与文件系统的本质区别是().
A、数据库系统实现了整体数据结构化,而文件系统只考虑某个具体应用的数据结构
B、数据具有较高的共享性,减少了冗余;文件之间基本不能共享,导致数据冗余度高
C、数据库系统中程序与数据的逻辑结构和物理存储相独立,而文件系统中数据逻辑结构与文件结构紧密联系
D、数据由数据库管理系统统一管理和控制
答案:A 如果文件没有使用索引,并按某一属性排序,且选择条件是镇属性上的等值比较,则可用()的选择运算算法来定位符合选择条件的记录.
A、线性搜索
B、二分搜索
C、聚簇索引
D、辅助索引
答案:B
要保证数据库逻辑数据独立性,需要修改的是()
A、模式
B
C、模式与外模式的映射
D、内模式
答案:C
在笛卡尔积可看成为一张()。
A、一维表
B、二维表
C、三维表
D、四维表
答案:B
关系模型是().
A、用关系表示实体
B、用关系表示联系
C、用关系表示实体及其联系
D、用关系表示属性
答案:C
对于经常在查询条件中出现的属性或者经常在聚集函数中出现的属性,可以考虑在这些属性上建立().
A、视图
B、关系
C、连接
D、索引
答案:D
35()是相互矛盾的,数据库物理设计过程中需要对它们进行折中权衡.
A、时间效率,维护代价
B、时间效率,空间效率
C、时间效率,空间效率,维护代价
D、空间效率,维护代价
答案:C
分布式数据库系统中分片模式和分配模式均是()
A、全局的 B、局部的 C、分布的 D、集中的答案:A
学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是()
A、多对多
B、一对一
C、多对一
D
答案:D
关系代数表达式的优化策略中,首先要做的是()
A、对文件进行预处理
B、尽早执行选择运算
C、执行笛卡儿积运算
D 答案:B
在关系代数运算中,五种基本运算为()
A、并、差、选择、投影、自然连接
B、并、差、选择、交、投影
C、并、差、选择、投影、笛卡儿积
D、并、差、交、选择、笛卡儿积
答案:C
40()是关系代数的基本运算之一.
A、交
B、除
C、关系模型
D、广义笛卡儿积
答案:D
如果文件没有使用索引,并按某一属性排序,且选择条件是镇属性上的等值比较,则可用()的选择运算算法来定位符合选择条件的记录.
A、线性搜索
B、二分搜索
C、聚簇索引
D、辅助索引
答案:B
在关系数据库中,外模式对应的是()。
A、基本表
B、视图
C、存储文件
D、关系
答案:B
事务(TransaCtion)是用户定义的一个数据库操作序列,下列()不是它的特性。
A、原子性
B、一致性
C、并发性 D、持续性
答案:C
根据关系模型的完整性规则,一个关系中的主码().
A、不能有两个
B、不可作为其他关系的外部键
C、可以取空值
D、不可以是属性组合答案:A
数据库逻辑设计的主要任务是()。
A、建立E-R图和说明书
B、创建数据库说明
C、建立数据流图
D、把数据送入数据库
答案:C
二、填空题 SQL语言是一种________型数据库系统,它是以_______的形式组织起来的数据集合,二维表中的一行,在关系中称为_______;二维表中的一列,在关系中称为_______。
答案:关系型、表、元组、属性从逻辑结构的角度进行分类,数据库的数据模型主要有________和________模型.
答案:格式化、关系引起数据不一致的主要原因是事务的____________在并发中遭到了破坏.
答案:隔离性在函数信赖中,平凡的函数信赖根据Armstrong推理规则中的_______________律就可推出。
答案:自反数据库物理设计中选择何种存储结构与选定的_________________类型有关。
答案:DBMS 一个关系表中只能有___________个PRIMARY KEY,UNIQUE可以有______多个.
答案:一,任意事务必须具有的四个性质是: 原子性、____________、隔离性、持久性。
答案:不确定关键字是用来标识_________________。
答案:实体数据库操纵技术就是指插入、_______、_______和检索表中数据的技术.其中,前三种又被并称为更新操作.
答案:删除、修改数据库中要储存批发商与零售商的供货合同信息。一个合同中可以填写多种商品,每种商品需要记录定货数量。对应的关系模式为:合同(合同号,商品号,商品名,商品单价,数量),该关系的码是________________________。
答案:合同号,商品号事务必须具有的四个性质是:原子性、一致性、_______________和持久性。
答案:隔离性______是事务T在对数据项A修改之前,必须先对数据A加排它锁,直到事务结束才释放。
答案:一级封锁协议.假定利用CREATE TABLE命令建立如下一个表:BOOK(总编号C(6),分类号C(3),书名C(16),单价N(10,2)),则单价字段的类型为_____型,字段宽度为_____,其中包含有_______位小数.
答案:Numeric、10、2 从逻辑结构的角度进行分类,数据库的数据模型主要有格式化和________模型.
答案:关系
一般地,属性个数少的表上不建_______________,不同属性值少的属性上也不用建________________,元组数少或跟新频率高的关系上也不建索引.答案:索引,索引设关系模式R(A,B,C),F是R上成立的FD集,F = {B→A,B→C},则分解ρ = {AB,AC}丢失的FD是_______________。
答案:B→C 如果记录是做插入操作,那么撤销操作相当于__________________。
答案:做数据删除操作关系数据库的关系演算语言是以_______________为基础的DML语言。
答案:谓词演算实体是______“事件”或“物体’。
答案:客观存在并可相互区别的关系查询处理可以分4个步骤,包括_____,_____、______、______。
答案:查询分析和检查、查询翻译、查询优化、查询执行。用树型结构表示实体类型及实体间联系的数据模型称为_______________。
答案:层次模型分布式数据库中定义数据分片时,必须满足三个条件:完备性条件、重构条件和_______________。
答案:不相交条件在有泛化/细化联系的对象类型之间,较低层的对象类型称为_______________。
答案:子类型弱实体集的属性_______。
答案:不足以形成主码_____________是衡量模式优劣的标准,_______________表达了模式中数据依赖之间应满足的联系. 答案:范式,范式一个类可以从直接的或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的_______________。
答案:可重用性(或共享性)第一范式是指同一列中不能有________,即实体中的某个属性必须是原于项.
答案:多个值分解模式的目标是____________________,此外要遵守两个基本原则:分解是无损的,分解保持函数依赖。
答案:达到更高级的范式分解模式的目标是达到更高级的范式,此外要遵守两个基本原则:分解是无损的,________________________。
答案:分解保持函数依赖关系规范化的过程实质是___________的过程。
答案:不断分解
三、分析题 现有如下的银行系统关系: Branch(branch_name nvarchar(10),branch_city nvarchar(10),asserts int)Customer(customer_name nvarchar(10),customer_street nvarchar(10),customer_city rvarchar(10))Loan(10an_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以上的的支行名.
答案:(1)创建Branch表,其中branch_name和branch_city为联合主键 3分 create table Branch(branch_name nvarchar(10), branch_city nvarchar(10), asserts int primary key(branch_name, branch_city))(2)向Branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。2分 alter table Branch add address nvarchar(10)(3)删除Branch表的address列 2分 alter table Branch rop column address(4)查询位于“广州”的,资产在10,000,000以上的的支行名。3分 select branch_name from Branch where asserts> 10000000 一个电影资料数据库假定有三个基本表:电影表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年以前制作的所有电影记录以及电影主演记录.
答案:(1)统计1999年制作电影的平均长度和最短长度。2分 select平均长度=avg(Length), 最短长度=min(Length)from Movie where Year=1999(2)在1999年主演过电影的演员姓名 2分 select ActorName from Movie inner join Acts on Movie.Title=Acts.MovieTitle where Movie.Year=1999(3)把电影“我的世界”的长度改为110分钟。3分 update Movie set Length=110 where Title=’我的世界’(4)删除1940年以前制作的所有电影记录以及电影主演记录。3分 delete Acts where MovieTitle in(select Title from Movie where Year< 1904)delete MovieTitle where Year< 1940 现有如下的银行系统关系: Branch(branch_name nvarchar(10),branch_city nvarchar(10),asserts int)Customer(customer_name nvarchar(10),customer_street nvarchar(10),customer_city rvarchar(10))Loan(10an_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表中增加一个“address”列,其数据类型为10个字长的unicode字符串.(2)创建一个视图来显示每个顾客的顾客信息,贷款总额.(3)删除所有贷款在100以下的贷款记录.(4)删除每家支行贷款数额最大的记录.
答案:(1)向Branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。alter table Branch add address nvarchar(10)(2)创建一个视图来显示每个顾客的顾客信息、贷款总额。3分 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(3)删除所有贷款在100以下的贷款记录 2分 delete from loan where amount< 100(4)删除每家支行贷款数额最大的记录 3分 delete loan where not exists(select * from loan as t2 where loan.branch_name=t2.branch_name and loan.amount< t2.amount)
四、问答题已知学生关系模式Student(Sno,Sname,Sdept,MN,Course,Grade),其中:Sno:学号,Sname:学生姓名,Sdept:系名,MN:系主任名,Course:课程名,Grade:成绩.(1)写出关系模式Student的基本函数依赖及其主码.(2)将关系模式分解为2NF,并说明为什么?(3)将关系模式分解为3NF,并说明为什么? 答案:答:(1)该关系模式存在以下函数依赖: Sno→Sname,Sdept→MN,Sno→Sdept,(Sno,Course)→Grade 显然关系模式的码为Sno,Course。(2)原关系模式是属于1NF的,非主属性Grade完全按函数依赖于码,而其他非主属性对码的函数依赖均为部分函数依赖,所以不属于2NF。可将该关系模式分解为2NF如下: Student1(Sno,Sname,Sdept,MN)Student2(Sno,Course,Grade)(3)(2)中的关系模式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)请举一个属于2NF,但不属于3NF的关系模式的例子,并指出可能出现的“异常”。
答案:关系模式R(A, B, C, D, E),在R上有如下函数依赖集:F={AB→E,B→C,C→D} 数据库设计的基本步骤分为哪几个阶段,各阶段结束后分别产生哪些文档或得到什么结果。
答案:数据库设计的基本步骤(六个阶段)需求分析、概念结构设计(E-R图)、逻辑结构设计(规范化)、物理结构设计、数据库实施、数据库运行和维护什么是数据库的物理设计? 答案:答:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这个过程就叫做数据库的物理设计。用实体完整性规则解释关系数据库中,表的主码(主键)不能取空值的原因.
答案:答:(1)关系对应着事物实体集,如学生关系对应于一个学生集合;(2)现实世界的实体是可区分的,如学号是区分不同学生的标志;(3)关系以主码作为区分关系元组的惟一性标志,因此,候选码中的属性(主属性)不能取空值。否则,关系的一个元组就不能被标识,也就是说有个事物实体是不能区分的,这就和(2)矛盾。这种述规则称为关系的实体完整性。例如:邮政局派信,显然,信封上的通讯地址和姓名是主属性。如果这两个属性之一取空值,即“不知道”,那么信件将无法投递给收信人。这样,这封信就是不完整的。数据库的基本恢复技术有哪些?
答案:答:基于日志的数据恢复和基于数据转储的数据恢复。数据库为什么要并发控制?
答案:答:多个事务并发执行时,使用并发控制可以避免数据不一致。
数据库的体系的三级结构。
答案:答:数据库的体系的三级结构指数据库系统是由模式、外模式和内模式三级构成的。关系规范化一般应遵循的原则是什么?各范式之间有什么关系? 答案:(1)关系模式规范化一般应遵循的原则如下: ① 将关系模式进行无损连接分解,在关系模式分解的过程中,数据不能丢失或增加,要保持数据的完整性; ② 合理地选择规范化程度。在规范化时,既要考虑到低级范式造成的冗余度高、数据不一致性,又要考虑到高级范式带来的查询效率低的问题; ③ 要考虑正确性和可实现原则,即要保证规范化过程是正确的,并且通过规范化能达到要求。(2)各范式之间的关系为:4NF BCNF 3NF 2NF 1NF,1NF消去非主属性对码的部分函数依赖便得到2NF,2NF消去非主属性对码的传递函数依赖便得到3NF,3NF消去主属性对码的部分和传递函数依赖便得到BCNF,BCNF消去非平凡且非函数依赖的多值依赖得到4NF。
第二篇:数据库原理复习
1.请写出SQL Server 2000中的六种约束。
主键约束,唯一键约束,检查约束,默认值约束,外键约束,级联参照完整性约束
2.在关系模型中,有哪三类完整性约束?
实体完整性:体现在实体的唯一性上,在一个关系R中,设属性A是它的主
关键字的组成部分,则属性A不能取空值;
参照完整性:本关系的某一个非主属性值,必须等于另一个关系的关键
字的值;
用户定义的完整性:针对某一具体数据库的约束条件,由应用环境决定,它反映某一具体应用所涉及的数据必须满足的语义要求。
3.数据模型由哪三部分组成?
数据结构,数据操作,完整性约束
1.创建一个名为“产品”的数据库,其包含一个主文件和一个事务日志文件。主文件的逻辑名为“产品销售_data”,物理文件名为“C:产品销售_data.mdf”,初始容量为10MB,最大容量是20MB,每次的增量是10%。事务日志文件的逻辑名为“产品销售_log”,物理文件名为“C:产品销售_log.ldf”,初始容量是2MB,最大容量不受限制,每次的增量是2MB。
CREATE DATABASE产品
ON
PRIMARY
(NAME=产品销售_data,FILENAME='C:产品销售_data.mdf',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=10%)
LOG ON
(NAME=产品销售_log,FILENAME='C: 产品销售_log.ldf',SIZE=2MB,MAXSIZE=UNLIMITED,FILEGROWTH=2MB)
2、打开“产品”的数据库。
USE产品
3、将“产品”的数据库改名为“产品销售”的数据库
EXEC sp_renamedb产品, 产品销售
4、删除“产品销售”的数据库
DROP DATABASE产品销售5、2)、产品编号、销售商编号都是外键,其中产品编号参照表“产品信息”的产品编号属性,销售商编号参照表“销售商信息”的销售商编号属性。
CREATE TABLE 销售
(产品编号 CHAR(6)references 产品信息(产品编号),销售商编号 CHAR(6)references销售商信息(销售商编号),销售时间DatetimeNOT NULL,数量Int NOT NULL,PRIMARY KEY(产品编号,销售商编号)
6、已知有学生信息表:STUDENT;课程表:COURSE;成绩表:SC
1)、向SC表中添加一条记录(’ 9309119’,‘EE-201’,90.5);
INSERTSC
VALUES('9309119','EE-201',90.5)
2)、删除SC表中学号为9309120的记录;
DELETE SC
WHERE SNO='9309120'
3)、把所有课程的学分都改为4分;
UPDATE COURSE
SET CREDIT =
44)、把学号为9104421的学生的身高改为1.83;
UPDATE STUDENT
SET high=1.8
3WHERE SNO='9104421'
5)、查询COURSE表中每门课程的课程名称、学分;
SELECTcname,creditFROMCOURSE
ORDER BYCREDITDESC
6)、查询所有男同学的学号和姓名;
SELECT sno,sname
FROM student
WHERE sex='男'
7)、查询成绩在90分以上的学生的学号、课程号、成绩。
SELECT sno,cno,grade
FROM sc
WHERE grade>90
8)、查询至少有一门课的成绩在80分以上的男同学的学号;
SELECT sno
FROM student A
WHERE exists(SELECT *
FROM scB
WHERE A.sno=B.sno AND grade>80)
9)、求各门课程的最高分、最低分、平均分;
SELECT sno,max(grade),min(grade), avg(grade)
FROM sc
GROUP BY sno
10)、查询欧阳美龄选修的课程名称和成绩,结果按成绩降序排列;
SELECTcname,grade
FROM student A,course B,sc C
WHERE sname='欧阳美龄' AND A.sno=C.sno AND B.cno=C.cno
11)、查询身高大于李惟德身高的学生的姓名。
SELECTsname
FROM student
WHEREhigh>(SELECT high
FROM student
WHERE sname='李惟德'
12)、求选修了全部课程的学生学号、姓名
SELECT sno
FROM student
WHERE(select distinct cno
FROM sc B
WHERE A.sno=B.sno)
=(SELECT COUNT(*)FROMcourse)
1.实体间的联系可分为三类1:1(或一对一),1:N(或一对多),M:N(或多对多)
2.E-R模型的组成要素包括: 实体,属性,联系。
3.唯一标识实体的属性或属性组称为: 主键
4.关系模型要求关系必须规范化也就是要求关系必须满足一定的条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是: 不可再分的数据项。
5.四种专门的关系操作是:选择、投影、连接、除。
第三篇:数据库原理总结
1关系的范式及规范化
范式是衡量关系模式优劣的标准。范式级别越高,其数据冗余和操作异常现象就越少。第一范式:如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式。第二范式:若关系模式R属于第一范式,且每个非主属性都完全函数依赖于主键,则R属于第二范式。第三范式:若关系模式R属于第一范式,且每个非主属性都不传递依赖于主关键字,则R属于第三范式。BC范式:若关系模式R属于第一范式,且每个属性都不传递依赖于主关键字,则R属于BC范式。
2对模式的分解显然不是随意的,主要涉及以下两个原则:无损联结:当对关系模式R进行分解时,R的元组将分别在相应属性集进行投影而产生新的关系。如果对新的关系进行自然联接得到的元组的集合与原关系完全一致,则称为无损联结。保持依赖:当对关系模式R进行分解时,R的函数依赖集也将按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。
3事务的定义:事务是数据库的逻辑工作单位,由用户定义的一组操作序列组成,序列中的操作要么全做要么全不做。
4简述事务所具有的ACID(原子性,一致性,隔离性,持续性)特性:事务的ACID特性是: 原子性:事务是一个不可分割的单位。一致性:事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。隔离性:多个事务的并发执行不互相干扰。持续性:事务一旦提交,它对数据库中数据的改变就是永久性的。5事务的调度:事务的执行次序称为调度。若多个事务是按照某一次序串行地执行,则称事务的调度是串行调度。若多个事务同时交叉地并行执行,则称事务的调度为并发调度。
6事务并发执行产生的不一致情况及避免:并发操作可能会产生丢失修改,不能重复读和读”脏”数据这三种不一致情况,采用封锁机制来进行并发控制,可避各种不一致情况。一级封锁协议可以避免丢失修改,二级封锁协议可以避免丢失修改和读”脏”数据,三级封锁协议可以避免丢失修改、不能重复读和读”脏”数据。
7事务的COMMIT语句和ROLLBACK语句的功能是什么?答:COMMIT语句表示事务执行成功地接结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。
8活锁和死锁:活锁:在多个事务并发执行的过程中,可能会存在某个总有机会获得锁的事务却永远也没得到锁的现象,可以通过“先来先服务”的策略预防活锁的发生。死锁:在多个事务并发执行过程中,多个并发事务处于相互等待的状态的现象。
9死锁的预防:数据库当中预防死锁的方法有两种。第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预定的加锁顺序对使用到的数据加锁。第二种方法是每当处于等待状态的事务由可能导致死锁时,就不再等待下去,强行回滚该事务。
10完整性约束的定义:关系数据库提供的三类完整性约束:实体完整性、参照完整性和用户自定义完整性。实体完整性:实体完整性约束是指任何基本表(关系)的主键(主关键字)中的每一个属性列都不能取空值,即基本表中的每一个元组在主键上的分量都有值。参照完整性:根据参照完整性原则,用户只要定义了某一个关系(基本表)的外键(外部关键字),系统就会控制外键的值要么为空,要么等于被参照关系中某一个主键的值,这就是系统对外键的一种约束。用户定义完整性:用户定义完整性约束条件的作用对象可以是属性列、元组或关系(基本表),其中对属性列的约束可以规定属性列的数据类型、取值范围等;对元组的约束可以规定元组中各属性间的相互关系;而对关系的约束则可以规定各元组间或关系间的相互联系。
11故障恢复的原则:对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有被破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。12恢复算法一般由两部分组成:在正常事务处理时采取措施,保证有足够的冗余信息可用于故障恢复。故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事务原子性及持久性的状态。
13数据库在运行过程中可能产生的故障有哪几类? 答:1)事务故障:事务在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事务发生死锁等,使事务未能运行到正常中指点之前就被撤消了,这种情况称为“事务故障”。2)系统故障:系统故障是指系统在运行过程中,由于某些原因,如OS和DBMS代码错误,操作员操作事物。特定类型的硬件错误(CPU故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。3)介质故障:系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。14故障恢复技术:数据转储、日志文件、检查点方法、数据库镜像
15关系的完整性约束:域完整性约束:关系中属性的值应是域中的值,并由语义决定其能否为空值。实体完整性约束:关系中的主键不能为空值。参照完整性约束:关系的外键必须是另一个关系主键的有效值或者是空值。用户自定义完整性约束:正对某一具体数据的约束条件,由应用环境决定。
16故障恢复原理是冗余可分为副本和日志。恢复算法:在正常事物处理时采取措施,保证有足够的冗余信息可用于故障恢复、故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事物原子性及持久性的状态。
17事务故障的恢复:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的,系统的恢复步骤是:⑴ 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。⑷ 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
18系统故障的恢复:系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此,恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务。系统恢复步骤如下:正向扫描日志文件,即从头扫描日志文件,找出在故障发证前已经提交的事务,将其事务标示记入重做队列,同时找出故障发证时尚未完成的事务,将其事务标识计入撤销队列、对撤销队列中的各个事务进行撤销处理、对重做队列中的各个事务进行重做扫描
19日志文件作用及建立原因:答:日志文件是用来记录事务对数据库的更新操作的文件。目的是进行事物故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
20三级模式:三级模式结构:数据库的三级模式由外模式、概念模式和内模式三级模式构成。概念模式:简称模式,又称数据库模式、逻辑模式。一个数据库只有一个概念模式,它是数据库系统三级模式结构的中间层,概念模式是数据库中全体数据的逻辑描述,而不是数据库本身,它是装配数据的一个结构框架。外模式:外模式简称子模式,又称用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是用户与数据库系统之间的接口。一个数据库可以有多个外模式,设置外模式的优点如下:方便用户使用,简化用户接口、保证数据的独立性、有利于数据共享、有利于数据安全和保密。内模式:内模式也称存储模式。是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。一个数据库只能有一个内模式。21两级映像:外模式/概念模式映像:外模式/概念模式映像定义了各个外模式与概念模式间的映像关系。概念模式/内模式映像:概念模式/内模式映像定义了数据库全局逻辑结构与存储结构之间的对应关系。
22两极结构的独立性:物理数据独立性:如果数据库内模式要修改,即数据库的物理结构有所变化,那么只要对概念模式/内模式做相应的修改即可。概念模式/内模式提供了数据的物理数据独立性。逻辑数据独立性:如果概念模式要修改,例如增加记录类型或增加数据项,那么只要对外模式/概念模式映像做相应的修改,就可以使外模式和应用程序尽可能保持不变。这样,就称数据库打到了逻辑数据独立性。外模式/概念模式映像提供了数据的逻辑独立性。
23数据库技术的发展阶段:工管理阶段(数据部保存、没有对数据进行管理的软件系统、没有文件的概念、一组数据对应于一个程序,数据时面向应用的)、文件系统阶段(数据需要长期保存在外存上供反复使用、程序和数据之间有了一定得独立性、文件的形式已经多样化、数据的存取基本以记录为单位)、数据库系统阶段(数据结构化、数据共享、减少数据冗余、具有较高的数据独立性、方便用户接口、统一的数据管理与控制功能)
某校与教学管理相关的3个关系模式的结构如下: 学生(学号、姓名、年龄、性别、所在系)课程(课程号、课程名、开课系、任课教师)学习(学号、课程号、成绩)试进行如下操作:
1.创建“教学”数据库,在“教学”数据库中创建“学生”、“课程”、“学习”这3个基本表,并说明主键和外键。2.使用SQL的查询语句表达下列查询(1)查询刘老师所授课程的课程号和课程名(2)查询年龄大于23岁的男学生的学号和姓名
(3)查询至少修读刘老师所授课程中一门课程的女学生和姓名(4)查询王乐同学不学的课程的课程号(5)查询至少修读两门课程的学生学号
(6)查询全部学生都修读的课程的课程号与课程名(7)查询修读课程中包含刘老师所授课程的学生学号
3)SELECT 姓名 FROM 学生 WHERE 性别=‘女’ AND EXISTS(SELECT * FROM 学习WHERE 学习.学号=学生.学号 AND 课程号 IN(SELECT 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’))4)SELECT 课程号 FROM 课程 WHERE NOT EXISTS(SELECT * FROM 学习WHERE 学习.课程号=课程.课程号 AND 学号 IN(SELECT 学号 FROM 学生 WHERE 姓名=‘王乐’))5)SELECT 学号 FROM 学生 GROUP BY 学号 HAVING COUNT(*)>=2 6)SELECT 课程号,课程名 FROM 课程 WHERE NOT EXISTS(SELECT * FROM 学生 WHERE NOT EXISTS(SELECT * 学号 FROM 学习WHERE 学习.课程号=课程.课程号 AND 学习.学号=学生.学号))7)SELECT 学号 FROM 学习WHERE EXISTS(SELECT * FROM 学习WHERE 课程号 IN(SELECT * FROM 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’))试用SQL查询语句表达下列对教学数据库中3个基本表“学生”、“课程”、“学习”的查询(1)统计有学生修读的课程门数(2)求修读C4课程的学生的平均年龄
(3)求刘老师所授课程的每门课程的学生平均成绩
(4)统计每门课程学生的修读人数(超过10人的课程才统计),要求输出课程号和修读人数,查询结果按人数降序排列,若人数相同,按课程号升序排列(5)查询学号比王乐同学大,而年龄比他小的学生姓名(6)查询姓名以王打头的所有学生的姓名和年龄(7)在“学习”表中检索成绩为空值的学生学号和课程号(8)求年龄大于女同学平均年龄的男学生姓名和年龄(9)求年龄大于所有女同学年龄的男学生姓名和年龄 SELECT COUNT(DISTINCT 课程号)FROM 学习
SELECT AVG(年龄)FROM 学生 WHERE EXISTS(SELECT * FROM 学习WHERE学生.学号=学习.学号 AND 课程号=’C4’)SELECT AVG(成绩)FROM 学习WHERE GROUP BY 课程号 HAVING 课程号 IN(SELECT 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’)SELECT 课程号,COUNT(*)AS C_COUNT FROM 学习HAVING C_COUNT>10 ORDER BY C_COUNT DESC,课程号
SELECT 姓名 FROM 学生 WHERE 学号>ALL(SELECT 学号FROM 学生WHERE 姓名=’王乐’)AND 年龄
(2)在基本表“学生”中查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把查询到的值送往另一个已存在的基本表“结果”(学号,姓名,性别)中(3)在基本表“学习”中删除尚无成绩的元组
(4)把王乐同学在“学习”基本表中的课程和成绩全部删除(5)把修读Java课程不及格的成绩全改为空值(6)把低于总平均成绩的女同学成绩提高5%(7)在基本表“学习”中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)INSERT INTO 学生 VALUES(‘S009’,’吴’,18)INSERT INTO 结果(学号,姓名,性别)SELECT学号,姓名,性别 FROM 学生 WHERE NOT EXISTS(SELECT * FROM 学习WHERE 学生.学号=学习.学号 AND 成绩<80)DELETE FROM 学习WHERE 成绩 IS NULL DELETE FROM 学习WHERE 学号 IN(SELECT 学号 FROM 学生 WHERE 姓名=’王乐’)UPDATE 学习SET成绩=NULL WHERE 成绩<60 AND 课程号 IN(SELECT 课程号 FROM 课程 WHERE 课程名=’JAVA’)UPDATE 学习SET 成绩=成绩*1.05 WHERE 成绩<(SELECT AVG(成绩)FROM 学生)UPDATE 学习SET 成绩=成绩*1.04 WHERE 成绩>75 AND 课程号=’C4’ UPDATE 学习SET 成绩=成绩*1.05 WHERE 成绩<=75 AND 课程号=’C4’
第四篇:数据库原理实验报告
南 京 晓 庄 学 院
《数据库原理与应用》
课程实验报告
实验一 SQL Server 2005常用服务与实用工具实验
所在院(系): 数学与信息技术学院 班级:
学号:
姓名:
1.实验目的
(1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。(2)了解SQL Server 2005的主要组件、常用服务和系统配置。
(3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。
2.实验要求
(1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。
(2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。
(3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得所感兴趣的相关产品主题/技术文档。
(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查询语句。
(5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。(6)按要求完成实验报告。
3.实验步骤、结果和总结实验步骤/结果
(1)简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。
(2)总结SQL Server Management Studio的主要操作方法。
(3)总结查询编辑器的功能和主要操作方法,并举例说明。
(4)总结“模板”的使用方法,并举例说明。
4.实验思考:
查询相关资料,简要描述SQL Server 2005的主要服务。
第五篇:数据库原理-教案
第一章 绪论
内容概述
阐述数据库的基本概念,介绍数据管理技术的进展情况、数据库技术产生和发展的背景,数据模型的基本概念、组成要素和主要的数据模型,概念模型的基本概念及ER方法,数据库系统的3级模式结构以及数据库系统的组成。
本章目标
本章讲解的数据库基本概念和基本知识是学习后续各个章节的基础。学习本章的目的在于了解基本知识,掌握基本概念,为以后的学习打好扎实的基础。
重点和难点
重点:牢固掌握概念模型的基本概念及其主要建模方法ER方法;掌握关系数据模型的相关概念、数据库系统三级模式和两层映像的体系结构、数据库系统的逻辑独立性和物理独立性等;对于如何通过ER方法描述现实世界的概念模型要做到能够举一反三的程度。
难点:本章的难点是需要掌握数据库领域大量的基本概念。有些概念一开始接触会感到比较抽象,但不要紧,随着学习的逐渐推进,在后续章节中,这些抽象的概念会逐渐变得清晰具体起来。此外,数据模型及数据库系统的体系结构也是本章的难点。
第二章 关系数据库
内容概述
系统地讲解关系数据库的重要概念,并着重对关系模型进行讲解。关系模型包括关系数据结构、关系操作集合、以及关系完整性约束三个组成部分。讲解关系代数、元组关系演算和域关系演算。从具体到抽象,先讲解实际的语言ALPHA(元组关系演算语言)和QBE(域关系演算语言),然后讲解抽象的元组关系演算。本章目标
掌握关系模型的三个组成部分及各部分所包括的主要内容;牢固掌握关系数据结构及其定义;关系的三类完整性约束的概念。为学习后面关系数据库系统打好基础。
重点和难点
重点:掌握关系数据结构及其定义;关系的三类完整性约束的概念。需要举一反三的是:关系代数(包括抽象的语言及具体的语言);关系代数中的各种运算(包括并、交、差、选择、投影、连接、除、及广义笛卡尔积等)、元组关系演算语言ALPHA及域关系演算语言QBE等,能够使用这些语言完成各种数据操纵。
难点:由于关系代数较为抽象,因此在学习的过程中一定要结合具体的实例进行学习。同时,要注意把握由具体语言到抽象语言的原则,即通过对具体语言如ALPHA和QBE的学习过渡到对抽象的关系演算的把握。
实验内容
实验1 学习安装某一个数据库管理系统,通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架,熟悉对DBMS的安装,为后面的实验做准备。
第三章 关系数据库标准语言SQL
内容概述
详细介绍关系数据库语言SQL。SQL是关系数据库的标准语言。它内容十分丰富,功能非常强大。因为关系数据库系统的主要功能是通过SQL来实现的,因此讲解SQL的同时要进一步讲述关系数据库的基本概念。
本章目标 牢固掌握SQL,达到举一反三的掌握SQL的功能。同时通过实践,体会面向过程的语言和SQL的区别和优点。体会关系数据库系统为数据库应用系统的开发提供良好环境,减轻用户负担,提高用户生产率的原因。
重点和难点
重点:关系模型和关系数据库是《数据库系统概论》课程的重点,第3章又是重点中的重点。要熟练正确的使用SQL完成对数据库的查询、插入、删除、更新操作。在使用具体的SQL时,能有意识地和关系代数、关系演算等语言进行比较,了解他们各自的特点。
难点:用SQL语言正确完成复杂查询,掌握SQL语言强大的查询功能。因此在学习过程中一定要多练习,要在安装好的数据库系统上进行实际操作,检查你的答案,你查询的结果是否正确。只有通过大量练习才能真正达到举一反三的熟练程度。
实验内容
实验2 在安装好的数据库系统下创建数据库、创建表、创建索引;使用SQL对数据库进行各类查询操作(单表查询,连接查询,嵌套查询,集合查询)和更新操作(插入数据,修改数据,删除数据)。练习数据定义操作,包括基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除。对视图的查询,更新(注意更新的条件)。完成书后作业的SQL练习
第四章 数据库安全性
内容概述
介绍计算机以及信息安全技术标准的进展。详细讲解数据库安全性问题和实现技术。RDBMS实现数据库系统安全性的技术和方法有多种,本章讲解最重要的存取控制技术、视图技术和审计技术。讲解存取控制机制中用户权限的授权与回收,合法权限检查。数据库角色的概念和定义等。本章目标
掌握什么是数据库的安全性问题,牢固掌握数据库管理系统实现数据库安全性控制的常用方法和技术。
重点和难点
重点:使用SQL中的GRANT 语句和 REVOKE 语句来实现数据库的实现自主存取控制功能。使用SQL中CREATE ROLE语句创建角色,用GRANT 语句给角色授权。掌握视图机制在数据库安全保护中的作用。
难点:强制存取控制(MAC)机制中确定主体能否存取客体的存取规则,同学们要理解并掌握存取规则为什么要这样规定。
实验内容
实验3 在安装好的数据库系统下对已经建立的数据库创建用户、角色、视图;使用SQL对数据进行安全性控制,包括:授权和权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。本实验可以分小组完成。例如,用户A登录、建表、建视图等,授权一些数据操作权限用户B,然后用户B登录,检查是否具有授予的数据操作权限。也可以一个人建2个用户来完成。
第五章 数据库完整性
内容概述
详细讲解数据库的完整性概念。包括,什么是数据库的完整性,数据库的完整性概念与数据库的安全性概念的区别和联系,RDBMS的数据库完整性实现机制,包括实体完整性、参照完整性和用户自己定义的完整性约束的定义机制、完整性检查机制和违背完整性约束条件时RDBMS采取的预防措施。触发器的概念和在数据库完整性检查中的应用。本章目标
掌握什么是数据库的完整性,掌握用SQL语言定义关系模式的完整性约束条件。
重点和难点
重点:牢固掌握DBMS完整性控制机制的三个方面,即完整性约束条件的定义、完整性约束条件的检查和违约反应。需要举一反三的:用SQL语言定义关系模式的完整性约束条件。包括定义每个模式的主码;定义参照完整性;定义与应用有关的完整性。
难点:RDBMS如何实现完整性的策略,即当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,RDBMS如何进行处理,以确保数据的正确与有效。其中比较复杂的是参照完整性的实现机制。
实验内容
实验4 在安装好的数据库系统下对已经建立的数据库使用SQL对数据进行完整性控制(三类完整性、CHECK短语、CONSTRAIN子句、触发器)。进行违约操作,用实验证实,当操作违反了完整性约束条件时,系统是如何进行违约处理的
第六章 关系数据理论
内容概述
详细讲解关系数据理论,主要是关系数据库规范化理论。包括关系数据库逻辑设计可能出现的问题,数据依赖的基本概念(包括,函数依赖、平凡函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念;码、候选码、外码的概念;多值依赖的概念),范式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法。数据依赖的Armstrong公理系统。本章内容分为基本要求部分(《概论》6.1-6.3)和高级部分(《概论》6.4)。前者是计算机大学本科学生应该掌握的内容。后者是研究生应该学习掌握的内容。本章目标
关系数据理论既是关系数据库的重要理论基础也是数据库逻辑设计的理论指南和有力工具。要掌握规范化理论和优化数据库模式设计的方法。
重点和难点
重点:了解什么是一个“不好”的数据库模式。什么是模式的插入异常和删除异常。规范化理论的重要意义。牢固掌握数据依赖的基本概念,范式的概念,从1NF到4NF的定义,规范化的含义和作用。需要举一反三的:四个范式的理解与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法。
难点:能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式。各个级别范式的关系及其证明。
本章内容的理论性较强。要通过具体例子和习题练习理解和掌握理论知识
第七章 数据库设计
内容概述
讲解数据库设计方法和技术。数据库设计的特点,数据库设计的基本步骤,数据库设计过程中数据字典的内容,数据库设计各个阶段的设计目标、具体设计内容、设计描述、设计方法等。本章内容的实践性较强,教师可以少讲,让学生多读书并进行实践。
本章目标
了解数据库设计的重要性和数据库设计在信息系统开发和建设中的核心地位。掌握数据库设计方法和步骤,使学生具有设计数据库模式以及开发数据库应用系统的基本能力,能在实际工作中运用这些知识、技术和方法,设计符合应用需求的数据库及其应用系统。重点和难点
重点:掌握数据库设计步骤和数据库设计过程中的各级模式设计方法。特别是数据库概念结构的设计和逻辑结构的设计,这是数据库设计过程中最重要的两个环节。牢固掌握用E-R图来表示概念模型的方法,掌握E-R图的设计,E-R图向关系模型的转换。
难点: 技术上的难点是E-R图的设计和数据模型的优化,包括对现实世界进行抽象的能力,提取实体、属性、实体型之间的联系,正确划分实体与属性的能力。如何把第6章关系数据理论与本章结合,用关系数据理论指导数据库的逻辑设计。真正的难点是理论与实际的结合。同学们一般缺乏实际经验,缺乏对实际问题解决的能力。特别是缺乏应用领域的知识。而数据库设计需要设计人员对应用环境、专业业务有具体深入的了解,这样才能设计出符合具体领域要求的数据库及其应用系统。要在完成本章习题的基础上认真完成大作业。体会这些要点,从而真正掌握本章讲解的知识、方法和技术。
课程大作业 《数据库设计与应用开发》
在某个RDBMS产品上,选择合适的应用系统开发工具为某个部门或单位开发一个数据库应用系统。通过实践,掌握本章介绍的数据库设计方法,同时培养团队合作精神。要求5~6位同学组成一个开发小组,每位同学承担不同角色(例如:项目管理员、DBA、系统分析员、系统设计员、系统开发员、系统测试员)。具体要求:
* 给出数据库设计各个阶段的详细设计报告;
* 写出系统的主要功能和使用说明;
* 提交运行的系统;
* 写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想与建议;
每个小组进行60分钟的报告和答辩,讲解设计方案,演示系统运行,汇报分工与合作情况
第八章 数据库编程 内容概述
在数据库应用系统的开发中常常使用编程方法对数据库进行操纵。本章讲解这些编程技术涉及的概念和使用的方法。主要包括嵌入式SQL、游标的概念;SQL的过程化扩展PL/SQL和存储过程;使用ODBC设计开发数据库应用程序的方法。
因为JDBC编程、OLEDB编程与ODBC编程的思路基本相同,限于篇幅本章就不讲解JDBC和OLEDB编程,学生可以通过上机实验了解这些技术。本章内容的实践性较强,教师可以少讲,让学生多读书并进行实践。
本章目标
掌握开发数据库应用系统的各种编程方法,具有正确选择不同的方法和技术开发应用程序的能力。
重点和难点
重点:了解SQL编程技术可以有效克服SQL实现复杂应用方面的不足,提高应用系统和RDBMS间的互操作性。掌握嵌入SQL中游标的概念和使用方法;掌握PL/SQL和存储过程的基本概念,基本结构,语句语法和用法。了解使用ODBC开发应用系统的体系结构,掌握ODBC API和ODBC的应用程序的工作流程。
难点:理论联系实际,能够在实际安装的RDBMS上通过编程的方式开发应用程序,完成对数据库的各种操作。能够使用ODBC来进行数据库应用程序的设计,使设计的应用系统可移植性好,并且能同时访问不同的数据库,共享数据资源。
实验内容
《数据库系统概论》第4版给出了4个实验,教师可以根据情况选择其中部分实验让学生完成。具体实验要求请参见教科书。实验
5通过嵌入式SQL访问数据库 实验6
使用PL/SQL编写存储过程访问数据库 实验7
通过ODBC访问数据库
实验8
通过JDBC访问数据库(注:因为JDBC编程与ODBC编程的思路基本相同,限于篇幅本章没有讲解JDBC,同学可以自学,也可以参考中国人民大学 数据库系统概论精品课程教学网站:http://www.xiexiebang.com/ 中的课程实验)。
第九章 关系查询处理和查询优化
内容概述
通过实例讲解关系数据库查询优化的重要性和可能性。讲解RDBMS的查询处理步骤,即查询分析、查询检查、查询优化和查询执行;查询优化的基本概念,查询优化包括代数优化和物理优化;代数优化是指关系代数表达式的优化;物理优化则是指存取路径和底层操作算法的选择,所以先讲解实现查询操作的主要算法,主要是选择操作和连接操作的主要算法思想,然后讲解关系代数表达式等价变换规则,关系代数表达式的优化,物理优化方法(基于启发式规则的存取路径选择优化,操作算法的执行代价估算方法,基于代价的优化方法)。
本章目标
本章并不要求学生掌握RDBMS查询处理和查询优化的内部实现技术,因此没有详细讲解技术细节。
本章的目的是希望学生了解RDBMS查询处理的基本步骤,查询优化的概念、基本方法和技术,为数据库应用开发中利用查询优化技术提高查询效率和系统性能打下基础。
重点和难点
重点:了解关系数据库查询优化的重要性。掌握查询处理各个步骤的主要功能。能够把SQL语句转换成查询树,对查询树进行代数优化,转换成优化的查询树。掌握物理优化的基本方法。难点:能运用本章学习的查询优化知识,对于比较复杂的查询,尤其是涉及连接和嵌套的查询,写出适合RDBMS自动优化的SQL语句。对于RDBMS不能优化的查询需要重写查询语句,进行手工调整以优化性能。不要把优化的任务全部放在RDBMS上。
实验内容
实验9 查询优化 通过本章实验,了解你安装使用的RDBMS的查询优化方法和查询计划表示,能够利用它分析查询语句的实际执行方案和查询代价,进而通过建立索引或者修改SQL语句来降低查询代价,达到优化系统性能的目标。
具体实验内容: 对单表查询
例如以下的查询(可以自己给出查询语句)select * from student
where age>20 ; 2.连接查询,普通的两表连接查询或多表连接查询
3.嵌套查询,自己写几个带有子查询的例子,主要考虑带有IN和EXISTS谓词的子查询,包括相关子查询和不相关子查询。也可以使用《数据库系统概论》书上列举的例子。
对以上各种查询,通过建立索引或者删除索引(单表查询语句)、修改连接顺序(连接查询语句)、重写SQL语句即查询重写(嵌套查询);比较不同查询计划执行的性能差异,达到降低查询代价,优化性能的目标。
第十章 数据库恢复技术
内容概述
事务处理技术主要包括数据库恢复技术和并发控制技术。因为事务是数据库恢复和并发控制的基本单位,所以首先讲解事务的基本概念和事务的ACID性质。
本章讲解数据库恢复技术。包括数据库运行中可能发生的故障类型,数据库恢复中最经常使用的技术—数据转储和登录日志文件。讲解日志文件的内容及作用,登记日志文件所要遵循的原则,针对事务故障、系统故障和介质故障等不同故障的恢复策略和恢复方法。具有检查点的恢复技术。数据库镜像功能。
本章目标
掌握事务的基本概念和事务的ACID性质。了解数据库恢复技术的重要性,针对不同的故障类型,掌握恢复数据库的策略和方法。
重点和难点
重点:牢固掌握事务的基本概念和事务的ACID性质。要掌握数据库故障恢复的策略和方法。数据库恢复的基本原理是数据备份,它貌似简单,实际却很复杂。数据库的事务管理策略(不仅有数据库恢复策略,还有并发控制策略)和DBMS缓冲区管理策略、事务一致性级别密切相关,同学们要在学习完这些知识后把这些问题联系起来,提升对这些技术的理解和掌握。
难点:掌握日志文件的使用,系统故障、介质故障的恢复方法。对于刚刚学习数据库的学生来讲并不体会数据库故障恢复的复杂性和重要性。在实际工作中,则必须正确了解所用的DBMS产品提供的恢复技术和恢复方法,并且能够根据这些机制正确制定系统的恢复策略,以保证数据库系统7*24小时正确运行。保证数据库系统在遇到故障时能及时恢复正常运行,提高抗故障抗灾难的能力。
实验内容
在安装好的数据库系统下对已经建立的数据库人为地制造事务内部故障和系统故障,检查系统是否进行了恢复。
第十一章 并发控制
内容概述 数据库管理系统必须提供并发控制机制来协调并发用户的并发操作以保证并发事务的隔离性和一致性,保证数据库的一致性。本章讨论数据库并发控制的基本概念和实现技术。包括封锁技术、封锁协议、活锁和死锁的概念、并发调度的可串行性、冲突可串行化调度、两段锁协议、封锁的粒度、意向锁。
本章目标
了解的数据库并发控制技术的必要性和重要性。牢固掌握并发控制的基本概念。
重点和难点
重点:掌握并发操作产生的数据不一致性(丢失修改、不可重复读、读“脏数据”)的确切含义。封锁协议与数据一致性的关系;并发调度的可串行性概念。
难点:两段锁协议与串行性的关系、与死锁的关系。具有意向锁的多粒度封锁方法的封锁过程。
本章内容有一定的深度和难度,可以通过对实例的学习和习题的练习来正确理解和掌握基本概念