数据库原理知识点总结精华.docx
《数据库原理知识点总结精华.docx》由会员分享,可在线阅读,更多相关《数据库原理知识点总结精华.docx(32页珍藏版)》请在冰豆网上搜索。
数据库原理知识点总结精华
数据库系统概述
一、有关概念
四个基本概念
1.数据(Data):
数据库中存储的基本对象
2.数据库的定义 :
数据库(Database,简称DB)是长期储存在电脑内、有组织的、可共享的大量数据集合
3.数据库管理系统〔简称DBMS〕:
位于用户与操作系统之间的一层数据管理软件〔系统软件〕。
用途:
科学地组织和存储数据;高效地获取和维护数据
主要功能:
1.数据定义功能2.数据操作功能3.数据库的事务管理和运行管理功能4.数据库的建立和维护功能5.数据的组织,存储和管理功能6.其他功能
4.数据库系统〔Database System,简称DBS〕:
指在电脑系统中引入数据库后的系统
桌面DBMSAccess,VFP
客户机/服务器型DBMSSQLServer,Oracle,MySQL,DB2
5.数据库系统〔DBS〕的构成
数据库
数据库管理系统〔及其开发工具〕
应用系统
数据库管理员〔DBA)和用户
二、数据管理技术的发展
1.数据管理的三个阶段
人工管理阶段文件系统阶段数据库系统阶段
2数据库系统管理数据的特点如下
1数据共享性高、冗余少;2数据结构化;
3数据独立性高;4由DBMS进行统一的数据控制功能
3.数据库管理系统的主要功能
1数据定义功能2数据操作功能3数据库的事务管理和运行管理功能
4数据库的建立和维护功能5数据的组织,存储和管理功能6其他功能
4.DBMS可以对数据提供哪些控制功能?
数据的安全性〔Security〕保护:
保护数据,以防止不合法的使用造成的数据的泄
密和破坏。
数据的完整性〔Integrity〕检查:
将数据控制在有效的范围内,或保证数据之间满
足一定的关系。
并发〔Concurrency〕控制:
对多用户的并发操作加以控制和协调,防止相互干扰而
得到错误的结果。
数据库恢复〔Recovery〕:
将数据库从错误状态恢复到某一已知的正确状态。
数据模型用来抽象、表示和处理现实世界中的数据和信息的工具。
通俗地讲数据模型就是现实世界数据的模拟。
数据模型三要素:
数据结构,数据操作,数据的完整性约束。
数据模型分为概念模型、逻辑模型和物理模型3个方面。
数据结构:
是所研究的对象类型的集合,它是刻画一个数据模型性质最重要的方面;数据结构是对系统静态特性的描述
数据操作:
对数据库中数据允许执行的操作及有关的操作规则;对数据库中数据的操作主要有查询和更改〔包括插入、修改、删除〕;数据操作是对系统动态特性的描述
数据的约束条件:
数据及其联系应该满足的条件限制
概念模型
一、模型的三个世界
1.现实世界
2.信息世界:
即根据需求分析画概念模型〔即E-R图〕,E-R图与DBMS无关。
3.机器世界:
将E-R图转换为某一种数据模型,数据模型与DBMS相关。
注意:
信息世界又称概念模型,机器世界又称数据模型
二、实体及属性
1〕关系:
一个关系对应通常说的一个表
2〕元组:
表中的每一行数据称作一个元组
3〕属性:
表中的每一列,列可以命名称属性名
4〕码:
也译为码键,表中的某个属性或属性组,它可以是唯一确实定一个元组。
域:
属性的取值范围
6〕分量:
元组中的一个属性值
7〕关系模式:
对关系的描述,表示为:
关系名〔属性1,属性2 …属性n〕
注:
关系模型要求关系必须是标准化的,满足最一定的标准条件,关系的每一个分量必须是一个不可分割的数据项。
实体型:
即二维表的结构
例student(no,name,sex,age,dept)
5.实体集:
即整个二维表
三、实体间的联系:
1.两实体集间实体之间的联系
1:
1联系1:
n联系m:
n联系
2.同一实体集内实体之间的联系
1:
1联系1:
n联系m:
n联系
四、概念模型〔常用E-R图表示〕
实体型:
属性:
联系:
说明:
①E-R图作为用户与开发人员的中间语言。
②E-R图可以等价转换为层次、网状、关系模型。
举例:
学校有假设干个系,每个系有假设干班级和教研室,每个教研室有假设干教员,其中有的教授
和副教授每人各带假设干研究生。
每个班有假设干学生,每个学生选修假设干课程,每门课程有假设干学生选修。
用E-R图画出概念模型。
数据模型
一、层次模型:
用树型结构表示实体之间的联系。
每个结点代表一个实体型。
只能直接处理一对多〔含一对一〕的实体关系。
查找层次数据库中的记录,速度较慢。
二、网状模型:
用图结构表示实体之间的联系。
每个结点代表一个实体型。
可以处理多对多的实体关系。
查找网状数据库中的记录,速度最快。
三、关系模型:
用二维表表示实体之间的联系。
1.重要术语:
关系:
一个关系就是一个二维表;
元组:
二维表的一行,即实体;
关系模式:
在实体型的基础上,注明主码。
关系模型:
指一个数据库中全部二维表结构的集合。
2.特点:
关系模型是建立在严格的数学理论的基础上的;
关系模型的存取路径对用户透明;
查找关系数据库中的记录,速度最慢。
关系模型的数据完整性约束实体完整性参照完整性用户定义的完整性
关系完整性规则
实体完整性规则 主码的属性值不能为空值。
因为如果出现空值,那么主码就无法保证元组的唯一性。
参照完整性规则 在关系模式中实体以及实体之间的联系是用关系来描述的,所以自然存在着关系与关系之间的联系,而关系之间的联系是靠公共属性实现的,如果这个公共属性是一个关系R1的主码,那么在另一个与它有联系的关系R2中就称为外码。
参照完整性规则告诉我们外码的取值只有两种可能,要么是空值,要么等于R1中某个元组的主码值。
用户定义完整性 反映某一具体应用所涉及的数据必须满足的语义要求。
小结:
数据有三种类型,DBMS就有三种类型,DB亦有三种类型。
数据库系统结构
一、数据库系统的体系结构
单机结构:
DBMS、数据库、开发工具、应用系统安装在一台电脑上。
C/S结构:
局域网结构
客户机:
装开发工具、应用系统服务器:
装DBMS、数据库
B/S结构:
Internet结构
服务器:
装DBMS、数据库、开发工具、应用系统客户机:
装IE即可
三、数据库系统的模式结构
1.三级模式
模式:
是数据库中全体数据的逻辑结构和特征的描述。
Ü模式只涉及数据库的结构;
Ü模式既不涉及应用程序,又不涉及数据库结构的存储;
外模式:
是模式的一个子集,是与某一个应用程序有关的逻辑表示。
特点:
一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。
内模式(一个数据库只有一个内模式):
描述数据库结构的存储,但不涉及物理记录。
2.两级映象
外模式/模式映象:
定义了外模型与模式之间的对应关系〔可以有多个〕,保证数据库的逻辑独立性;
模式/内模式映象:
定义了模式与存储结构之间的对应关系〔唯一的〕,保证数据库的物理独立性;
3.两级映象的意义
通过二级映像,可以使数据库有较高的数据独立性,也可以是逻辑结构和物理结构独立性,也可以使逻辑结构和物理结构得以别离,换来了用户使用数据库的方便。
使数据库与应用系统完全分开,数据库改变时,应用系统不必改变。
数据的存取完全由DBMS管理,用户不必考虑存取路径。
关系数据库语言分为关系代数、关系演算和结构化查询语言三大类。
关系的5种基本操作是选择、投影、并、差、笛卡尔积。
关系数据库的特点〔关系数据模型的特点〕
优点1〕建立在严格的数学概念基础上
2〕 概念单一,数据结构简单清晰,易懂易用
3〕 关系模型为存储路径对用户透明,从而具有更好的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作
缺点:
存储路径对用户透明导致查询效率往往不如非关系数据模型
三级模式优点
是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑的抽象的处理数据,而不必关心数据在电脑中的表示和存储 为了能在内部实现这3个抽象层次的联系和转换,数据库系统在这三级模式之间提供了二层映像,外/模和模/内保证了数据库系统中的数据能有较高的逻辑独立性和物理独立性
数据库管理系统
数据库管理员有三个主要工作
ⅰ)数据库设计ⅱ〕数据库维护ⅲ〕改善系统性能,提高系统效率
1.DBMS的功能:
负责对数据库进行统一的管理与控制。
数据定义:
即定义数据库中各对象的结构
②数据操纵:
包括对数据库进行查询、插入、删除、修改等操作。
数据控制:
包括安全性控制、完整性控制、并发控制、数据库恢复。
2.DBMS的组成:
DDL语言
DML语言
DCL语言
实用程序
注意:
SQL集DDL,DML,DCL功能于一体;
所有应用程序通过SQL语句才能访问数据库
一、基本概念
1.码:
能唯一标识元组的属性集。
2.候选码:
一个属性集既能唯一标识元组,且又不含有多余属性,一个关系模式可以有多个候选码。
3.主码:
任选候选码中的一个。
4.主属性:
主码中包含的各个属性。
5.非主属性:
不包含在主码中的各个属性。
6.外码:
设F是关系R的一个属性,不是R的主码,但却是另一个关系S的主码,则称F是关系R的外码。
●阐述DBA的职责。
决定数据库的中的信息内容和结构
决定数据库的存储结构和存取策略
决定数据的安全性要求和完整性约束条件
监控数据库的使用和运行
数据库的改良和重组重构
定期对数据库进行重组织,以提高系统的性能
●日志文件需要登记的内容包括哪些?
各个事物的开始〔BEGINTRANSACTION〕标记;
各个事物的结束〔COMMIT或ROLLBACK〕标记;
各个事物的所有更新操作。
●日志文件的作用有哪些?
事物故障恢复和系统故障恢复必须用日志文件;
在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢
复数据库;
在静态转储方式中,也可以建立日志文件。
关系模式的标准化
一个好的关系模式应满足:
冗余应尽可能少
应尽可能防止插入、删除异常
消去关系中不合适的属性依赖关系。
二、范式
什么叫范式?
指一个关系的非主属性函数依赖于主码的程度。
什么叫关系标准化?
指一个关系从低级范式向高级范式的转换过程。
应用:
关系标准化理论应用在逻辑结构设计阶段。
三、关系模式的标准化
1.第一范式〔1NF〕
定义:
假设关系R的所有属性不能再分,则R∈1NF
存在问题
原因:
存在非主属性对主码的部分依赖。
解决方法:
消除非主属性对主码的部分依赖,将关系R一分为二,将满足完全依赖的属性集组成一个关系;将满足部分依赖的属性集组成另一个关系;
2.第二范式〔2NF〕
定义:
假设关系R∈1NF,且它的每个非主属性都完全依赖于主码,则称R∈2NF。
存在问题:
●冗余大:
R1必要冗余,R2冗余可以修改。
●修改麻烦
●插入异常:
如新来的教师没有上课,则该教师的信息就没方法插入R2表中。
●删除异常:
假设某位教师只授一门课,当该门课不开时,该教师的信息亦被删除。
原因:
存在非主属性对主码的传递依赖。
[传递依赖必须有两个非主属性]
解决方法:
将R2一分为二
3.第三范式〔3NF〕
定义:
假设关系R∈2NF,且它的每个非主属性都不传递依赖于主码,则称R∈3NF。
标准化过程
非标准关系
↓使每个属性都不能再分
1NF
↓消去非主属性对主码的部分依赖
2NF
↓消去非主属性对主码的传递依赖
3NF
4.结论
假设R∈1NF,且主码只含一个属性,则R一定为2NF。
假设R∈2NF,且只有0~1个非主属性,则R一定为3NF。
3NF一般控制了数据冗余,一般防止了操作异常。
范式并非越高越好,适可而止。
数据库设计
数据库设计必须遵循结构设计和行为设计相结合的原则。
一、数据库设计的步骤
①需求分析:
了解分析用户的需要、要求(信息要求、处理要求、安全性与完整性要求)。
②概念结构设计:
根据需求分析的结果画概念模型〔即E-R图〕。
③逻辑结构设计:
将E-R图转换为某一种数据模型,并优化。
物理结构设计
⑤数据库实施
数据库运行与恢复
数据字典主要包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
三种常用抽象方法是分类、聚集和概括。
局部E-R图之间的冲突主要表现在属性冲突、命名冲突和结构冲突三个方面。
数据库常用的存取方法包括索引方法、聚簇方法和HASH方法三种。
确定数据存放位置和存储结构需要考虑的因素主要有:
存取时间、存储空间利用率和维护代价等。
概念结构设计
一、局部E-R图设计
1.确定局部范围
通常把系统涉及的各个部门或各个主要功能作为局部。
2.确定实体与属性
①属性是不能再分的数据项;
联系只发生在两实体之间;
原则上,能够作为属性,就不要作为实体。
二、合并成总体E-R图
1.消除各局部E-R图的冲突问题。
2.按公共实体名合并,生成初步E-R图。
3.消除冗余的属性和冗余的联系,生成总体E-R图。
逻辑结构设计
一、联系的属性和主码
〔1〕联系的属性:
必须包含相关联的各实体型的主码。
〔2〕联系的主码
1:
1联系:
可以是相关联的任一实体型的主码。
1:
n联系:
必须是n方实体型的主码。
m:
n联系:
必须是相关联的各实体型的主码之和。
二、E-R图向关系模型的转换
〔1〕把每个实体型转换为一个关系模式。
〔2〕1:
1联系:
可以消化到相关联的任一实体型对应的关系模式中。
〔3〕1:
n联系:
可以消化到n方实体名对应的关系模式中。
〔4〕m:
n联系:
必须转换为一个关系模式,并且不能消化。
〔5〕多元联系:
不能消化
物理结构设计与数据库实施
1.物理结构设计
在逻辑设计的基础上,为每个关系模式选择合适的存储结构与存储方式。
选择存储结构:
即决定每个表的记录顺序。
选择存取方式:
即决定为哪些属性建立非聚集索引,以便加快查找速度。
一般把经常查询的属性名指定为非聚集索引。
2.数据库实施
主要工作:
定义数据库结构;
组织数据入库;
编写应用程序;
数据库试运行;
创建和使用数据库
一、数据库文件
1.一个数据库至少有一个主要数据文件和一个事务日志文件。
如果数据库很大,可以使用一个主要数据文件、多个次要数据文件和多个事务日志文件。
主数据文件(.mdf)
次数据文件(.ndf)
事务日志文件(.ldf):
用来记录对数据库对象的所有更新操作。
2.系统数据库
Master数据库、Model数据库
二、创建数据库
1.打开数据库:
Use数据库名
2.删除数据库:
Dropdatabase数据库名
三、修改数据库
1.别离和附加数据库
2.备份和复原数据库
3.数据的导入和导出
DBMS对数据库的安全保护功能是通过四方面实现的,即安全性控制、完整性控制、并发性控制和数据库恢复。
完整性控制 数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。
关系模型的完整性包括实体完整性,参照完整性和用户定义完整性。
对于违反实体完整性和用户定义完整性规则的操作一般都是采用拒绝执行的方式进行处理。
完整性约束条件的作用对象可以是表、元组和列。
事务处理
故障种类事务内部的故障、系统故障、介质故障
恢复的实现技术
(1)数据转储:
转储状态、转储方式
(2)日志:
基本格式和内容、日志的作用、登记日志文件并发控制
1.问题:
丧失修改、不可重复读、读“脏”数据
2.封锁共享锁、排它锁
1.什么叫事务?
事务是用户定义的一组操作序列。
1事务是并发控制的基本单位。
2一个事务包含的诸操作要么都执行,要么都不执行。
1.事务的属性
原子性:
事务是数据库的逻辑工作单位,一个事务的诸操作要么都做,要么都不做。
一致性:
指事务执行前后必须保持数据库的逻辑一致性。
一致性和原子性是密切相关的。
隔离性:
指并发执行的各个事务之间不能互相干扰。
持续性:
又称为持久性或永久性,是指一个事务的操作提交后,其对数据库的改变是永久的,属于物理的而非逻辑的。
数据的锁定
一、并发操作与数据不一致性
1.数据不一致性包括三类
丧失修改:
指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏事务1提交的结果,导致事务1的修改被丧失。
不可重复读:
指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。
读脏数据:
指事务1修改某一数据后,事务2读取该数据,事务1由于某种原因被撤销,这时数据又恢复到原值,事务2读到的数据与数据库中的数据不一致,称为“脏”数据。
产生“幽灵”数据:
指当事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中的部分记录,或者在其中添加了部分记录,则当T1再次按相同条件读取数据时,发现其中莫名其妙地少了〔对删除〕或多了〔对插入〕一些记录。
这样的数据对T1来说就是“幽灵”数据或称“幻影”数据。
2.产生数据不一致性的原因
并发操作破坏了事务的隔离性。
二、并发控制的目标、方法
1.目标:
确保DB中的数据一致性。
2.并发事务正确性的原则
几个事务的并发执行是正确的,当且仅当其结果与任何一个串行执行的结果相同。
3.并发控制的方法
DBMS一般采用“封锁”技术,保证并发操作的可串行化。
一、封锁〔Locking〕
1.什么叫封锁?
SQLServer自动强制封锁,并且会将封锁粒度控制在合适的级别,用户不必考虑封锁问题。
2.封锁类型
排它锁〔X锁〕:
事务T对数据A加X锁,其它事务不能再对A加锁,即其它事务不能读取和修改A。
共享锁〔S锁〕:
事务T对数据A加S锁,其它事务只能再对A加S锁,即其它事务只能读A,不能修改A。
3.封锁粒度
封锁对象可以是属性列、元组、关系、整个数据库。
封锁对象的大小称为封锁粒度。
封锁粒度越小,并发度越高,但并发控制的开销越大。
4.封锁协议
事务T在修改数据A之前,必须对其加X锁,直到事务结束才释放。
事务T在读取数据A之前,必须对其加S锁,直到事务结束才释放。
遵循封锁协议,可以解决三种数据不一致性问题:
丧失修改
问题不可重复读
读“脏”数据
四、死锁和活锁
封锁技术可以解决并发操作的不一致性问题,但也带来新的问题,即死锁和活锁。
1.死锁:
定义:
两个事务已经各自锁定一个数据,但是又要访问被对方锁定的数据,造成了循环等待,称为死锁。
防止死锁的方法:
顺序封锁法:
假设规定封锁顺序为A,B,则T1,T2只能先封锁A,再封锁B。
2.活锁:
定义:
假设多个事务请求封锁同一个数据时,其中的某个事务总处于等待状态,则称为活锁。
防止活锁的方法:
先来先服务
一级封锁协议
(1)事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放
(2)解决的问题:
防止丧失修改
二级封锁协议
(1)一级封锁协议加上事务T在读取数据R前必须先对其加S锁,读完后即可释放S锁
(2)解决的问题:
防止丧失修改、防止读“脏”数据
三级封锁协议
(1)一级封锁协议加上事务T在读取数据R前必须先对其加S锁,直到事务结束才释放。
(2)解决的问题:
防止丧失修改、防止读“脏”数据、防止不可重复读
预防死锁两种方法:
一次封锁法、顺序封锁法
死锁的诊断:
超时法,等待图法
死锁的解除:
选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其它事务得以继续进行下去。
数据库的恢复数据库运行故障:
事务故障〔可以利用日志文件撤消此事务对数据库已进行的修改〕
系统故障
介质故障〔重装数据库,然后利用备份或镜像设备恢复数据库。
〕
索引
索引可以分为唯一索引、非唯一索引和聚簇索引三种类型
一、索引的概念:
如果把数据表比作一本书,那么表的索引就是这本书的目录。
可见,索引使用户能快速访问数据表的特定信息。
索引包括两项:
索引字段值、原记录号
索引必须依附于某个基本表,不能单独存在。
二、索引的类型:
聚集索引:
影响数据表的记录顺序
非聚集索引:
不会影响数据表的记录顺序
注:
一个表只能建立一个聚集索引,但可以建立假设干个非聚集索引。
DBMS常用存取方法:
索引方法,目前主要是B+树索引方法聚簇〔Cluster〕方法HASH方法
视图
一、视图的特点:
视图只有结构,没有记录,是虚表;
一个视图总对应着一个select语句;
对视图的查询、更新,实际上是对基本表的查询、更新。
数据库安全性控制的常用方法有哪些?
用户标识和鉴定:
是数据库访问控制的最外层安全保护措施,通过用户标识和口令
实现。
存取控制:
通过用户权限定义和合法权限检查机制共同构成DBMS的安全子系统
视图:
可在一定程度上对保密数据提供隐藏保护。
审计:
用于记录用户对数据库的所有操作以便事后跟踪和追溯。
加密存储:
对高度机密的数据进行数据加密,是防止数据在存储和传输过程中失密
的有效手段。
恢复的实现技术
数据转储〔动态海量转储,动态增量转储,静态海量转储,静态增量转储〕
登记日志文件
故障的种类及其影响以及相应的恢复策略
1、事务内部故障的恢复:
事务内部故障的恢复由DBMS自动完成,对用户而言是透明的。
DBMS执行的恢复步骤如下:
〔1〕反向扫描文件日志〔即从后向前扫描日志文件〕,查找该事务的更新操作。
〔2〕对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
〔3〕继续反向扫描日志文件,进行同样的处理。
〔4〕如此继续下去,直至独到此事务的开始标记,该事务故障恢复就完成了。
2、系统故障的恢复:
会造成数据库处于不一致的状态,主要是一方面,为完成事务对数据库所做的更新可能已写入数据库;另一方面,已提交事务对数据库做的更新可能尚留在缓冲区,未能及时写入数据库。
因此恢复操作就是撤销〔UNDO〕故障发生时为完成的事务,重做〔REDO〕已完成的事务。
恢复步骤如下:
〔1〕正向扫描日志文件,找出在故障发生之前已经提交的事务队列〔REDO队列〕和为完成的事务队列〔UNDO队列〕。
〔2〕对于撤销队列中的各个事务进行UNDO处理。
进行UNDO处理的方法是:
反向扫描日志文件,对每个UNDO事务的过呢更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库中。
〔3〕对重做队列中的各个事务进行REDO处理。
进行REDO处理的方法是:
正向扫描日志文件,对每个REDO事务重新执行日志文件中所登记的操作,激将日志记录中“更新后的值”写入数据库。
3、截至故障的恢复:
恢复方法是重装数据库,然后重做已完成的事务,具体操作如下:
〔1〕DBA装入最新的数据库后备副本〔离故障发生时刻最近的转储副本〕,使数据库回复到转储时的一致性状态。
〔2〕DBA装入转储结束时的日志文件副本。
〔3〕DBA启动系统恢复命令,有DBMS实现恢复功能,即重做