数据库总结.docx
《数据库总结.docx》由会员分享,可在线阅读,更多相关《数据库总结.docx(18页珍藏版)》请在冰豆网上搜索。
数据库总结
第一章绪论
数据(Data):
是数据库中存储的基本对象。
数据的定义:
描述事物的符号记录
数据的特点:
数据与其语义是不可分的。
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:
数据按一定的数据模型组织、描述和储存,冗余度较小,数据独立性较高,易扩展,可为各种用户共享
数据库数据具有永久存储,有组织和可共享三个基本特点。
数据库管理系统(DBMS):
位于用户与操作系统之间的一层数据管理软件。
DBMS的主要功能:
数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,其它功能。
数据库系统:
在计算机系统中引入数据库后的系统构成
数据库系统的构成:
数据库,数据库管理系统(及其开发工具),应用系统,用户+数据库管理员(DBA)。
数据的处理:
指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
数据的管理:
指对数据进行分类、组织、编码、存储、检索和维护
数据管理技术的发展过程:
人工管理阶段(20世纪40年代中--50年代中),文件系统阶段(20世纪50年代末--60年代中),数据库系统阶段(20世纪60年代末--现在)
数据库系统的特点:
数据结构化,数据的共享性高,冗余度低,易扩充,数据独立性高,数据由DBMS统一管理和控制
整体数据的结构化是数据库的主要特征之一
数据库管理系统的优点:
相互关联的数据的集合,较少的数据冗余,程序与数据相互独立,保证数据的安全、可靠,最大限度地保证数据的正确性,数据可以并发使用并能同时保证一致性。
文件系统阶段:
数据可长期保存,数据面向的某一应用程序,共享性差、冗余度大,记录内有结构,整体无结构,独立性差,数据的逻辑结构改变必须修改应用程序,无安全控制功能
数据独立性:
指数据的组织和存储方法与应用程序互不依赖、彼此独立的特性。
数据模型分为两类(分属两个不同的层次):
概念模型(也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计)。
逻辑模型和物理模型(主要用于DBMS的实现)。
数据模型是数据库系统的核心和基础。
数据模型的组成要素:
数据结构数据操作完整性约束条件
常用的概念模型:
实体-联系模型、语义对象模型
实体(Entity):
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
属性(Attribute):
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
码(Key):
唯一标识实体的属性集称为码。
域(Domain)属性的取值范围称为该属性的域。
实体型(EntityType)用实体名及其属性名集合来抽象和刻画同类实体称为实体型
实体集(EntitySet)同一类型实体的集合称为实体集
联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
两个实体型之间的联系:
一对一联系(1:
1),一对多联系(1:
n),多对多联系(m:
n)
概念模型的一种表示方法:
实体-联系方法(E-R方法)
最常用的数据模型:
层次模型(树),网状模型(图),关系模型,面向对象模型,对象关系模型。
(其中层次模型和网状模型成为格式化模型,也即非关系模型。
前三种为最常用)
关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
关系(Relation):
一个关系对应通常说的一张表
元组(Tuple)表中的一行即为一个元组
属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)表中的某个属性组,它可以唯一确定一个元组。
域(Domain)属性的取值范围。
分量:
元组中的一个属性值。
关系模式对关系的描述,关系必须是规范化的,满足一定的规范条件
最基本的规范条件:
关系的每一个分量必须是一个不可分的数据项,不允许表中还有表
关系数据模型的操纵:
查询,插入,删除,更新
关系的完整性约束条件:
实体完整性,参照完整性,用户定义的完整性
关系数据模型的存储结构:
都用表来表示
数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
模式:
数据库逻辑结构和特征的描述,是型的描述,不涉及到具体的值。
模式的一个具体值称为模式的一个实例。
同一个模式可以有很多实例。
数据库系统的三级模式结构:
模式,外模式,内模式
模式:
数据库中全体数据的逻辑结构和特征的描述。
一个数据库只有一个模式
外模式:
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
一个数据库可以有多个外模式
内模式(也称存储模式):
是数据物理结构和存储方式的描述。
是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
采用三级模式的好处:
数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
二级映象在DBMS内部实现这三个抽象层次的联系和转换:
外模式/模式映像,模式/内模式映像。
数据库系统三级模式和两层映象的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。
数据库系统的组成:
硬件平台及数据库,软件,人员
第二章
1.笛卡尔积:
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}
所有域的所有取值的一个组合。
且不能重复
笛卡尔积的表示方法:
笛卡尔积可表示为一个二维表.表中的每行对应一个元组,表中的每列对应一个域。
比方说D1有3个基数,D2有2个,D3有3个,泽笛卡尔积的基数为3*2*3=18,也就是一共有18个元祖。
2.关系:
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系表示为R(D1,D2,…,Dn)其中,R:
关系名。
n:
关系的目或度。
n目关系必有n个属性。
当n=1时,称该关系为单元关系或一元关系
当n=2时,称该关系为二元关系
3关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。
关系是笛卡尔积的有限子集。
4候选码(Candidatekey)能唯一地标识关系中的一个元组的某一最小属性组,称该属性组为候选码;简单的情况:
候选码只包含一个属性。
全码:
最极端的情况:
关系模式的所有属性组是这个关系模式的候选码,称为全码
主码:
若一个关系有多个候选码,则选定其中一个为主码
主属性:
候选码的诸属性称为主属性(Primeattribute)
不包含在任何侯选码中的属性称为非主属性或非码属性
5三类关系:
基本关系(基本表或基表),查询表,视图表
6关系模式(RelationSchema)是型。
。
关系是值
关系模式是对关系的描述
关系模式可以形式化地表示为:
R(U,D,DOM,F)
7关系数据库:
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
8关系的三类完整性约束:
实体完整性和参照完整性,用户定义的完整性。
关系模型必须满足的完整性约束条件称为关系的两个不变性,既实体完整性和参照完整性
9实体完整性:
属性A是基本关系R的主属性,则属性A不能取空值
实体完整性规则的说明
(1)实体完整性规则是针对基本关系而言的。
一个基本表通常对应现实世界的一个实体集。
(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3)关系模型中以主码作为唯一性标识。
(4)主码中的属性即主属性不能取空值。
主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第
(2)点相矛盾,因此这个规则称为实体完整性。
10参照完整性:
设F是基本关系R的一个或一组属性,但不是关系R的码。
如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。
基本关系R称为参照关系。
基本关系S称为被参照关系或目标关系
关系R和S不一定是不同的关系
目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上。
外码并不一定要与相应的主码同名
参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值
11和S具有相同的目n(即两个关系都有n个属性)。
相应的属性取自同一个域
并:
R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}
差:
R-S:
仍为n目关系,由属于R而不属于S的所有元组组成R-S={t|tR∧tS}
交:
R∩S仍为n目关系,由既属于R又属于S的元组组成
R∩S={t|tR∧tS}R∩S=R–(R-S)
笛卡尔积:
R:
n目关系,k1个元组S:
m目关系,k2个元组
R×S={trts|trR∧tsS}
列:
(n+m)列元组的集合元组的前n列是关系R的一个元组,后m列是关系S的一个元组
行:
k1×k2个元组
t[Ai]则表示元组t中相应于属性Ai的一个分量。
trR,tsS,trts称为元组的连接。
trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。
选择:
σF(R)={t|tR∧F(t)='真'}.从行的角度进行的运算
在关系R中选择满足给定条件的诸元组
F:
选择条件,是一个逻辑表达式,基本形式为:
X1θY1
投影:
πA(R)={t[A]|tR}.从R中选择出若干属性列组成新的关系
从列的角度进行运算.但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
连接也称为θ连接:
从两个关系的笛卡尔积中选取属性间满足一定条件的元组R(连接符号))S={trts|trR∧tsS∧tr[A]θts[B]}。
θ为比较运算符
等值连接:
θ为“=”的连接运算称为等值连接。
从行的角度
自然连接:
两个关系中进行比较的分量必须是相同的属性组。
在结果中把重复的属性列去掉。
从行和列的角度
第三章
视图最终是定义在基本表在和ishangde,对视图的一切操作最终也要转换成为对基本表的操作。
视图的作用
1.视图能够简化用户的操作
2.视图使用户能以多种角度看待同一数据
3.视图对重构数据库提供了一定程度的逻辑独立性
4.视图能够对机密数据提供安全保护
5.适当的利用视图可以更清晰的表达查询
SQL的特点
1.综合统一
2.高度非过程化
3.面向集合的操作方式
4.以同一种语法结构提供多种使用方式
5.语言简洁,易学易用
SQL的功能:
数据查询,数据操纵,数据定义,数据控制。
外模式对应视图,模式对应基本表,内模式对应存储文件
一个基本表都属于某一个模式。
一个模式包含多个基本表
第四章
1三类计算机系统安全性问题:
技术安全类,管理安全类,政策法律类
2安全标准:
TCSEC标准,CC标准
3.TCSEC/TDI,从四个方面来描述安全性级别划分的指标:
安全策略,责任,保证,文档
等级D,C(C1,C2),B(B1,B2,B3),A(A1)逐渐增高
4.CC把信息产品的安全要求分为安全功能要求,安全保证要求
5数据库安全性控制的常用方法:
用户标识和鉴定,存取控制,视图,审计,密码存储
6用户标识:
口令,用户名和口令易被窃取
7常用存取控制方法:
自主存取控制,强制存取控制
8用户权限组成:
数据对象和操作类型
9授权GRANT语句
WITHGRANTOPTION子句:
:
指定:
可以再授予;没有指定:
不能传播
不允许循环授权
例如:
把对Student表和Course表的全部权限授予用户U2和U3
GRANTALLPRIVILIGESONTABLEStudent,CourseTOU2,U3;
10把对表SC的查询权限授予所有用户
GRANTSELECTONTABLESCTOPUBLIC;
11REVOKE回收
例如:
收回所有用户对表SC的查询权限
REVOKESELECTONTABLESCFROMPUBLIC;
12色的创建CREATEROLE<角色名>
给角色授权GRANT<权限>ON<对象类型>对象名TO<角色>[,<角色>]…
13AUDIT语句:
设置审计功能NOAUDIT语句:
取消审计功能
14数据加密:
防止数据库中数据在存储和传输中失密的有效手段
15实现数据库系统安全性的技术和方法:
存取控制技术,视图技术,审计技术
第五章
1数据库的完整性:
数据的正确性和相容性
2数据的完整性:
防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
防范对象:
不合语义的、不正确的数据
数据的安全性:
保护数据库防止恶意的破坏和非法的存取
防范对象:
非法用户和非法操作
3为维护数据库的完整性,DBMS必须:
1.提供定义完整性约束条件的机2.提供完整性检查的方法3.违约处理
4实体完整性:
CREATETABLE中用PRIMARYKEY定义
5参照完整性定义
在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
6用户定义的完整性
CREATETABLE时定义:
列值非空(NOTNULL),列值唯一(UNIQUE)。
检查列值是否满足一个布尔表达式(CHECK)
7CONSTRAINT<完整性约束条件名>
CREATETABLEStudent(SsexCHAR
(2)CONSTRAINTC4CHECK(SsexIN('男','女')),88.修改表中的完整性限制:
使用ALTERTABLE语句修改表中的完整性限制
9触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程
由服务器自动激活,可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力
触发器的效率低,能用其他约束代替最好。
第六章
1数据依赖的类型:
函数依赖,多值依赖
2关系模式可能存在的问题:
1.)数据冗余太大2.)更新异常3.)插入异常4.)删除异常
3函数依赖
“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。
4在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y不包含X,则称X→Y是非平凡的函数依赖
若X→Y,但YX,则称X→Y是平凡的函数依赖
5完全函数依赖与部分函数依赖
在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,记作
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作
6传递函数依赖
在R(U)中,如果X→Y,(YX),Y→XY→Z,则称Z对X传递函数依赖。
记为:
X→Z
注:
如果Y→X,即X←→Y,则Z直接依赖于X。
7主属性与非主属性
包含在任何一个候选码中的属性,称为主属性(Primeattribute)
不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性
8范式是符合某一种级别的关系模式的集合
9各种范式之间存在联系:
10某一关系模式R为第n范式,可简记为R∈nNF。
11一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
目的:
尽量消除插入、删除异常,修改复杂,数据冗余
基本思想:
逐步消除数据依赖中不合适的部分
实质:
概念的单一化
12.1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
第一范式是对关系模式的最起码的要求。
不满足第一范式的数据库模式不能称为关系数据库
13.2NF的定义:
若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF
14投影分解办法(1NF分解成2NF)
首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。
然后,将依赖于这些主码的属性放置到相应的表中。
最后,去掉只由主码的子集构成的表。
15采用分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。
16.3NF的定义:
关系模式R中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R∈3NF。
若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
17.2NF分解成3NF
1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;
2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;
3)将决定因子作为新表的主码。
17将一个2NF关系分解为多个3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。
18.BC范式(BCNF):
关系模式R∈1NF,若X→Y且YX时X必含有码,则R∈BCNF。
等价于:
每一个决定属性因素都包含码
若R∈BCNF,则:
所有非主属性对每一个码都是完全函数依赖
所有的主属性对每一个不包含它的码,也是完全函数依赖
没有任何属性完全函数依赖于非码的任何一组属性
R∈BCNF是R∈3NF的充分不必要条件。
如果R∈3NF,且R只有一个候选码,R∈BCNF是R∈3NF的充分必要条件。
例如:
设有关系模式:
Student(学号,姓名,导师号,导师名,课程号,课程说明,成绩)
语义:
一名学生只有一个导师,学生可选多门课。
此表是1NF
学号F→姓名,学号F→导师号,学号F→导师名,课程号F→课程说明,
(学号,课程号)→成绩
主码为(学号,课程号)
存在部分函数依赖关系,不是2NF,首先将其分解为2NF。
学生(学号,姓名,导师号,导师名),
课程(课程号,课程说明),
成绩(学号,课程号,成绩)均为2NF
判是否为3NF
“学生”表不是3NF,其函数依赖为:
学号→姓名,学号→导师号,导师号F→导师名,∴学号传递→导师名
消除依赖于决定者的属性,把它们放在一个单独的表中,得到:
学生(学号,姓名,导师号),导师(导师号,导师名)
19多值依赖Teaching∈BCNF
Teaching模式中存在的问题
(1)数据冗余度大
(2)插入操作复杂(3)删除操作复杂(4)修改操作复杂
定义:
设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y。
关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
20不是规范化程度越高,模式就越好
第七章
1数据库建设的基本规律:
三分技术,七分管理,十二分基础数据,结构(数据)设计和行为(处理)设计相结合
2数据库设计分6个阶段:
需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护
设计一个完善的数据库应用系统往往是上述六个阶段的不断反复
需求分析和概念设计独立于任何数据库管理系统
3需求分析阶段:
明确了解与分析用户需求(包括数据与处理),
调查的重点是“数据”和“处理”,获得用户对数据库要求
数据字典的内容:
数据项,数据结构,数据流,数据存储,处理过程
必须强调用户的参与。
4概念结构设计阶段:
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
描述概念模型的工具:
E-R模型
设计概念结构的四类方法:
自顶向下,自底向上,逐步扩张,混合策略
常用策略:
自顶向下地进行需求分析;自底向上地设计概念结构
概念结构设计的步骤:
抽象数据并设计局部视图,集成局部视图、得到全局概念结构,验证整体概念结构
数据抽象:
分类,聚集,概括
设计局部视图:
1.选择局部应用2.逐一设计分E-R图
集成局部视图:
.合并分E-R图,生成初步E-R图,修改与重构
5逻辑结构设计阶段:
将概念结构转换为某个DBMS所支持的数据模型
任务:
将概念结构转化为具体的数据模型
6数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
关系模式存取方法选择:
索引方法。
聚簇(Cluster)方法。
HASH方法
确定数据库物理结构的内容:
确定数据的存放位置和存储结构,确定系统配置
数据库物理设计的步骤:
确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构
对物理结构进行评价,评价的重点是时间和空间效率
7数据库实施阶段:
运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果
8数据库运行和维护阶段:
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
数据库投入运行标志着开发任务的基本完成和维护工作的开始
9数据库各级模式的形成
数据库的各级模式是在设计过程中逐步形成的
需求分析阶段综合各个用户的应用需求(现实世界的需求)
概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述
在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。
然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式
在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式
第九章
1查询优化分类:
代数优化:
指关系代数表达式的优化
物理优化:
指存取路径和底层操作算法的选择
2RDBMS查询处理阶段:
查询分析,查询检查,查询优化,查询执行
3查询处理是RDBMS的核心,查询优化技术又是查询处理的关键技术
第十章
1事务:
一个数据库操作序列。
恢复和并发控制的基本单位
2事务和程序不同,一个程序通常包含多个事务
3事务的ACID特性:
原子性,一致性,隔离性,持续性
4故障的种类:
事务内部的故障,系统故障,介质故障,计算机病毒
5恢复的实现技术:
数据转储,登录日志文件
6转储方法:
静态转储与动态转储
7数据恢复的目的是为了保证事务的原子性、一致性、持续性、隔离性。
第十一章
1不同的多事务执行方式:
(1)事务串行执行
(2)交叉并发方式(3)同时并发方式
2并发控制机制的任务:
对并发操作进行正确调度,保证事务的隔离性,保证数据库的一致性
3并发操作带来的数据不一致性:
丢失修改,不可重复读,读“脏”数据
“脏”数据,即不正确的数据
4并发控制的主要技术:
有封锁,时间戳,乐观控制法
商用的DBMS一般都采用封锁方法
5基本封锁类型:
排它锁(简记为X锁),共享锁(简记为S锁)
排它锁又称为写锁。
若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁
共享锁又称为读锁
若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁
6避免活锁:
采用先来先服务的策略
解决死锁的方法1.预防死锁