数据复习资料.docx
《数据复习资料.docx》由会员分享,可在线阅读,更多相关《数据复习资料.docx(21页珍藏版)》请在冰豆网上搜索。
数据复习资料
数据库原理复习资料
第一章绪论
1、数据(Data):
数据是数据库中存储的基本对象;
数据的定义:
描述事物的符号记录;
数据的种类:
文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等;
数据的含义称为数据的语义,数据与其语义是不可分的。
2、数据库(Database,简称DB):
定义:
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:
1)数据按一定的数据模型组织、描述和储存;
2)可为各种用户共享、易扩展、冗余度较小;
3)数据独立性较高。
数据库具有永久存储、有组织和可共享三个基本特点。
3、数据库管理系统(DBMS):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
主要功能:
1)数据定义功能;
2)数据组织、存储和管理;
3)数据操纵功能;
4)数据库的事务管理和运行管理;
5)数据库的建立和维护功能;
6)其他功能。
4、数据库系统(DBS):
定义:
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员系统构成。
5、数据库技术的产生和发展:
三个阶段:
人工管理阶段、文件系统、数据库系统。
6、数据库系统的特点:
1)数据结构化:
不仅数据内部结构化,整体也是结构化的;
2)数据的共享性高,冗余度低,易扩充;
3)数据独立性高(物理逻辑性和逻辑独立性);
物理独立性:
指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。
当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:
指用户的应用程序与数据库的逻辑结构是相互独立的。
数据的逻辑结构改变了,用户程序也可以不变。
数据独立性是由DBMS的二级映像功能来保证的
4)数据由DBMS统一管理和控制。
7、数据模型:
(1)数据模型是数据库系统的核心和基础;
(2)两类数据模型:
第一类是概念模型,第二类是逻辑模型和物理模型;
(3)数据模型的组成要素:
数据结构、数据操作和完整性约束;
(4)概念模型的基本概念:
1)实体(Entity):
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念;
2)属性(Attribute):
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画;
3)码(Key):
唯一标识实体的属性集称为码;
4)域(Domain):
属性的取值范围称为该属性的域。
5)实体型(EntityType):
用实体名及其属性名集合来抽象和刻画同类实体称为实体型;
6)实体集(EntitySet):
同一类型实体的集合称为实体集;
7)联系(Relationship):
实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系;
(5)三大经典模型:
层次模型、网状模型、关系模型。
8、数据库系统结构:
(1)模式是数据库中全体数据的逻辑结构和特征的描述。
(2)三级模式:
内模式、模式、外模式。
模式:
是数据库中全体数据的逻辑结构和特征的藐视,是所有用户的公共视图;一个数据库只有一个模式;
外模式:
是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示;一个数据库可以有多个外模式;
内模式:
是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式;一个数据库只有一个内模式。
(3)二级映像:
外模式/模式,模式/内模式;
保证了数据库系统中的数据能够有较高的逻辑独立性和物理独立性。
第二章关系数据库
1、关系
(1)码
候选码(Candidatekey):
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
主码(Primarykey):
若有多个候选码,则选定其中一个为主码;
全码(All-key):
最极端的情况:
关系模式的所有属性组是这个关系模式的候选码,称为全码;
主属性(Primeattribute):
候选码的诸属性称为主属性;
非主属性(Non-Primeattribute):
而不包含在任何侯选码中的属性称为非主属性或非码属性。
(2)关系的三种类型:
基本关系、查询表、视图表;
(3)基本关系的性质:
1)列是同质的(Homogeneous)
2)不同的列可出自同一个域
a)其中的每一列称为一个属性
b)不同的属性要给予不同的属性名
3)列的顺序无所谓,,列的次序可以任意交换
4)任意两个元组的候选码不能相同
5)行的顺序无所谓,行的次序可以任意交换
6)分量必须取原子值(最基本的一条)
(4)关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件;最基本的一条就是:
关系的每一个分量必须是一个不可分的数据项。
(5)关系数据库中,关系模型是型,关系是值;关系模式是对关系的描述。
2、关系操作
(1)基本关系操作:
常用的关系操作包括查询操作和插入、删除、修改操作两大部分;
查询:
选择、投影、连接、除、并、交、差;
数据更新:
插入、删除、修改;
查询的表达能力是其中最主要的部分;
选择、投影、并、差、笛卡尔基是5种基本操作。
(2)关系操作的特点:
集合操作方式,即操作的对象和结果都是集合,一次一集合的方式。
3、关系的完整性
三类完整性约束:
实体完整性、参照完整性、用户定义的完整性;其中前两种是关系模式中必须满足的,被称作是关系的两个不变性。
(1)实体完整性:
若属性A是基本关系R的主属性,则属性A不能取空值且必须唯一。
说明:
1)实体完整性规则是针对基本关系而言的;
2)关系模型中以主码作为唯一性标识;
3)主码中的属性即主属性不能取空值。
(2)参照完整性:
外码:
设F是基本关系R的一个或一组属性,但不是关系R的码。
如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码;基本关系R称为参照关系(ReferencingRelation);基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。
说明:
1)关系R和S不一定是不同的关系;
2)目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上;
3)外码并不一定要与相应的主码同名。
参照完整性规则:
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
参照完整性规则就是定义外码与主码之间的引用规则。
(3)用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
4、关系代数
关系代数运算符:
集合运算符、专门的关系运算符、算术比较运算符、逻辑运算符。
【此部分可以复习书本p55-60,为重点】
第三章关系数据库标准语言SQL
1、SQL特点
SQL集数据查询、数据定义、数据操纵、数据控制功能于一体;
1)数据定义
a)创建数据对象createe.g.Createdatabase
b)修改数据对象altere.g.altertable
c)删除数据对象drope.gdropview
2)数据查询
a)一般查询select
b)集合查询count,avg,sum,max,min
3)数据操纵
a)Insertdeleteupdate
4)数据控制
a)Grant
b)revoke
主要特点:
综合统一,高度非过程化,面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简洁、易学易用。
2、外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。
3、数据定义
操作对象
操作方式
创建
删除
修改
数据库
Createdatabase
Dropdatabase
Alterdatabase
表
Createtable
Droptable
Altertable
视图
Createview
Dropview
索引
Createindex
Dropview
(1)定义数据库
Createdatabase<数据库名>
Dropdatabase<数据库名>
Alterdatabase<数据库名><新数据库名>
(2)定义基本表
创建表:
Createtable<表名>
(<列名><数据类型>[列完整性约束条件]
[,<列名><数据类型>[列完整性约束条件]]…
[,表级完整性约束条件])
表级完整性约束包括:
Primarykey名(字段[,字段2])
foreignkey名reference表2(字段[,字段2])
Check名内容
default
修改表:
Altertable<表名>
[add<新列名><数据类型>[完整性约束]]
[drop<完整性约束名>]
[altercolumn<列名><数据类型>]
删除表:
Droptable<表名>
(3)数据查询【重点!
】
Select[all|distinct]<目标列表达式>[别名][,<目标列表达式>[别名]]…
From<表名或视图名>[别名][,<表名或视图名>[别名]]…
Where<条件表达式>
Groupby<列名>[having<条件表达式>]
Orderby<列名1>[ASC|Desc][,<列名1>[ASC|Desc]]
(4)数据更新
插入数据:
格式1:
Insertinto<基本表名>[(列名表)]value(元组值)
格式2:
Insertinto<基本表名>[(列名表)]
value(元组值),(元组值),(元组值),…
格式3:
Insertinto<基本表名>[(列名表)]
Select查询语句
修改数据:
update<表名>
set<列名>=<值>[,<列名>=<值>,…]
[where<条件表达式>]
删除数据:
Deletefrom<表名>[where<条件表达式>]
(5)定义和删除索引
Create[unique][cluster]index<索引名>ON<表名>(列名[<次序>][,列名[<次序>]]…)
Dropindex<索引名>
建议索引的条件:
1)以查询为主要服务的数据库;
2)值域大的字段上;
3)经常出现在where条件,orderby,groupby中的字段上;
4)经常出现在连接条件中的字段上。
第四章数据库安全性
1、计算机系统三类安全性问题
技术安全类,管理安全类,政策法律类。
2、用户标识与鉴别
(1)用户标识和鉴别是系统提供的最外层安全保护措施。
其方法是由系统提供一定的方式让用户标识自己的名字或身份;
(2)基本方法:
1)系统提供一定的方式让用户标识自己的名字或身份;
2)系统内部记录着所有合法用户的标识;
3)每次用户要求进入系统时,由系统核对用户提供的身份标识;
4)通过鉴定后才提供机器使用权;
5)用户标识和鉴定可以重复多次;
6)比如:
用户名,密码。
3、存取控制
(1)主要包括两部分:
定义用户权限,并将用户权限登记到数据字典中;合法权限检查。
用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。
(2)常用存取控制方法
自主存取控制(DiscretionaryAccessControl,简称DAC):
1)同一用户对于不同的数据对象有不同的存取权限
2)不同的用户对同一对象也有不同的权限
3)用户还可将其拥有的存取权限转授给其他用户
强制存取控制(MandatoryAccessControl,简称MAC):
1)每一个数据对象被标以一定的密级
2)每一个用户也被授予某一个级别的许可证
3)对于任意一个对象,只有具有合法许可证的用户才可以存取
4、自主存取控制(DAC)
(1)用户权限是由两个要素组成的:
数据库对象和操作类型。
(2)通过SQL的grant和revoke语句实现。
(3)定义用户存取权限:
定义用户可以在哪些数据库对象上进行哪些类型的操作。
(4)授权格式:
GRANT<权限>[,<权限>]...
[ON<对象类型><对象名>]
TO<用户>[,<用户>]...
[WITHGRANTOPTION];
(5)不允许循环授权;
(6)发出grant:
DBA,数据库对象的创建者,拥有该权限的用户。
(7)回收格式:
REVOKE<权限>[,<权限>]...
[ON<对象类型><对象名>]
FROM<用户>[,<用户>]...;
(8)授予的权限可以由DBA或授权者收回
5、创建数据库模式的权限
(1)对数据库模式的授权由DBA在创建用户时实现;
(2)格式:
CREATEUSER
[WITH][DBA|RESOURCE|CONNECT]
(3)说明:
只有系统的超级用户才有权创建一个新的数据库用户;新创建的数据库用户只有三种权限:
connect、resource、DBA。
(4)权限和可执行的操作对照
拥有的权限
可否执行的操作
CREATEUSER
CREATESCHEMA
CREATETABLE
登录数据库执行数据查询和操纵
DBA
可以
可以
可以
可以
RESOURCE
不可以
不可以
不可以
不可以
CONNECT
不可以
不可以
不可以
可以,但必须拥有相应权限
(5)数据库角色:
是被命名的一组与数据库操作相关的权限,角色是权限的集合。
6、强制存取控制(MAC)
(1)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段;
(2)MAC不是用户能直接感知或进行控制的。
(3)在MAC中,DBMS所管理的全部实体被分为主体和客体两大类;主体是系统中的活动实体,客体是系统中的被动实体;
(4)MAC机制就是通过对比主体的Lable和客体的Lable,最终确定主体是否能够存取客体;
(5)规则:
仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;
仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
7、视图机制
视图机制间接地实现支持存取谓词的用户权限定义。
第五章数据库完整性
1、数据库的完整性:
数据的正确性和相容性。
2、为维护数据库的完整性,DBMS必须能够:
1)提供定义完整性约束条件的机制
2)提供完整性检查的方法
3)违约处理
3、实体完整性
(1)关系模型的实体完整性在CREATETABLE中用PRIMARYKEY定义;
(2)实体完整性检查和违约处理:
插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。
包括:
1)检查主码值是否唯一,如果不唯一则拒绝插入或修改;
2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
4、参照完整性
(1)关系模型中的参照完整性在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码,用REFERENCES指明其参照的主码。
(2)可能破坏参照完整性的情况和违约处理:
被参照表(例如Student)
参照表(例如SC)
违约处理
可能破坏参照完整性
插入元组
拒绝
可能破坏参照完整性
修改外码值
拒绝
删除元组
可能破坏参照完整性
拒绝/级连删除/设置为空值
修改主码值
可能破坏参照完整性
拒绝/级连修改/设置为空值
5、触发器
(1)触发器是用户定义在关系表上的一类由事件驱动的特殊程序(过程)。
(2)格式:
CREATETRIGGER<触发器名>
{BEFORE|AFTER}<触发事件>ON<表名>
FOREACH{ROW|STATEMENT}
[WHEN<触发条件>]
<触发动作体>
(3)表的创建者可以在表上创建触发器,并且一个表上只能创建一定数量的触发器;
(4)触发事件:
INSERT、DELETE、UPDATE;
(5)触发器类型:
1)行级触发器(FOREACHROW):
对每一行触发一次;
2)语句级触发器(FOREACHSTATEMENT):
触发动作只发生一次;
(6)触发动作体:
匿名PL/SQL过程块,或对已有存储过程的调用。
(7)触发器的执行,是由触发事件激活的,并由数据库服务器自动执行。
(8)触发器激活时执行顺序:
1)执行该表上的BEFORE触发器;
2)激活触发器的SQL语句;
3)执行该表上的AFTER触发器。
(9)删除触发器:
DROPTRIGGER<触发器名>ON<表名>;
触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。
第六章关系数据理论
本章可考题目:
1、判断分解的无损连接性和保持函数依赖
2、求属性集闭包
3、求极小函数依赖
4、分解关系模式,将1NF分解为3NF
1、范式
按属性间依赖情况划分。
(1)第一范式:
每一分量必须是不可分的数据项;
存在问题:
数据冗余太大,更新异常,插入异常,删除异常;
(2)第二范式:
每一个非主属性完全依赖于码;
存在问题:
插入异常,删除异常,修改复杂;
(3)第三范式:
每一个非主属性既不部分依赖于码也不传递依赖于码;
(4)BCNF:
每一个决定属性因素都包含码;
一个满足BCNF的关系模式有:
1)所有非主属性对每一个码都是完全函数依赖;
2)所有的主属性对每一个不包含它的码,也是完全函数依赖;
3)没有任何属性完全函数依赖于非码的任何一组属性;
2、Armstrong公理系统(有效性,完备性)
(1)自反律:
若YÍXÍU,则X→Y为F所蕴含。
(2)增广律:
若X→Y为F所蕴含,且ZÍU,则XZ→YZ为F所蕴含。
(3)传递律:
若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。
3、推理规则
(1)合并规则:
由X→Y,X→Z,有X→YZ。
(2)伪传递规则:
由X→Y,WY→Z,有XW→Z。
(3)分解规则:
由X→Y及ZÍY,有X→Z。
4、函数的依赖闭包
(1)在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作F的闭包,记为F+。
(2)设F为属性集U上的一组函数依赖,XÍU,XF+={A|X→A能由F根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F的闭包。
(3)求闭包算法
求属性集X(XÍU)关于U上的函数依赖集F的闭包XF+
输入:
X,F输出:
XF+
步骤:
(1)令X(0)=X,i=0
(2)求B,这里B={A|($V)($W)(V→WÎF∧VÍX(i)∧AÎW)};
(3)X(i+1)=B∪X(i)
(4)判断X(i+1)=X(i)吗?
(5)若相等或X(i)=U,则X(i)就是XF+,算法终止。
(6)若否,则i=i+l,返回第
(2)步。
5、最小依赖集
(1)如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。
亦称为最小依赖集或最小覆盖。
F中任一函数依赖的右部仅含有一个属性。
F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价。
F中不存在这样的函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
(2)极小化过程:
1)逐一检查F中各函数依赖FDi:
X→Y,若Y=A1A2…Ak,k>2,则用{X→Aj|j=1,2,…,k}来取代X→Y。
2)逐一检查F中各函数依赖FDi:
X→A,令G=F-{X→A},若AÎXG+,则从F中去掉此函数依赖。
3)逐一取出F中各函数依赖FDi:
X→A,设X=B1B2…Bm,逐一考查Bi(i=l,2,…,m),若AÎ(X-Bi)F+,则以X-Bi取代X。
6、分解算法
1)极小化函数依赖集
2)把函数依赖集按左部相同分组
3)有没有一组属性整体包含另一组之中
4)若有,两组放在一个关系里面
5)若无,一组为一个关系,其中左部是他们的主码
6)结束
7、判断分解的无损连接性和保持函数依赖
第七章数据库设计
本章可考题目:
1、设计E-R图
2、E-R图向关系模型转换
1、数据库设计的基本步骤(了解各个阶段的工作)
(1)需求分析
(2)概念结构设计:
E-R图
(3)逻辑结构设计阶段
(4)物理设计阶段
(5)数据库实施阶段
(6)数据库运行和维护阶段
2、概念结构设计
(1)四类方法:
自顶向下,自底向上,逐步扩张,混合策略;
(2)各分E-R图之间的冲突:
属性冲突、命名冲突、结构冲突;
3、E-R图向关系模型转换
(1)E-R图由实体型、实体的属性、实体型之间的联系三个要素组成;
(2)遵循原则:
一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码;
4、数据库的物理设计(了解什么情况下需要建立索引)
1)如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引);
2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;
3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引;
第九章关系查询处理和查询优化
本章可考题目:
1、根据SQL语句写出等价关系代数表达式
2、对查询树进行优化
1、查询处理
(1)查询的四个阶段:
查询分析、查询检查、查询优化、查询执行;
(2)查询优化方法:
代数优化:
指关系代数表达式的优化,即按照一定的规则,改变代数表达式中操作的次序和组合,使查询执行更高效;
物理优化:
指存取路径和底层操作算法的选择,选择的依据可以是基于规则、代价或者语义。
2、代数优化
(1)关系代数表达式等价变换规则【11条】p269
(2)查询树启发式优化规则
1)选择运算应尽可能先做。
在优化策略中这是最重要、最基本的一条
2)把投影运算和选择运算同时进行
3)把投影同其前或其后的双目运算结合起来
4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算
5)找出公共子表达式
(3)方法:
1)利用等价变换规则4把形如σF1∧F2∧…∧Fn(E)变换为σF1(σF2(…(σFn(E))…))。
2)对每一个选择,利用等价变换规则4~9尽可能把它移到树的叶端。
3)对每一个投影利用等价变换规则3,5,10,11中的一般形式尽可能把它移向树的叶端。
4)利用等价变换规则3~5把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影。
使多个选择或投影能同时执行,或在一次扫描中全部完成。
5)把上述得到的语法树的内节点分组。
每一双目运算(×,,∪,-)和它所有的直接祖先为一组(这些直接祖先是(σ,π运算)。
第十章数据库恢复技术
本章可考题目:
基本以选择、填空为主
1、了解事务的概念及四个特性;
2、了解数据库的几种故障以及恢复方法;
3、恢复实现操作的两种方法;
1、事务
(1)事务是用户定义的一个数据库操作序列,这些操作要么全做要么全部做,是一个不可分割的工作单位;
(2)事务通常以begintransaction开始,以commit和rollback结束;
(3)事务的四大特性:
原子性、一致性、隔离性、持续性。
原子性(Atomicity):
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
一致性(Consistency):
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
一致性状态:
数据库中只包含成功事务提交的结果
隔离性(Isolation):