数据库知识点Word文档格式.docx
《数据库知识点Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库知识点Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![数据库知识点Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/10/43ae7902-5ca1-47f1-b4a9-2460e6fa9c61/43ae7902-5ca1-47f1-b4a9-2460e6fa9c611.gif)
(1)数据结构:
描述数据库的组成对象以及对象之间的联系。
(2)数据操作:
是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则。
(3)数据的完整性约束条件:
完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
11.格式化模型中数据结构的单位是基本层次联系。
基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系
12.层次模型:
(1)层次模型类似树。
(2)层次数据库系统只能处理一对多的实体联系。
(3)层次模型表示多对多联系,必首先将多对多联系分解成一对多联系。
(4)分解方法有两种:
冗余结点法和虚拟结点法。
(5)存储结构:
邻接法和链接法
(6)优点:
数据结构简单清晰、查询效率高、提供了良好的完整性支持
(7)缺点:
现实世界很多联系是非层次性的、对一个结点有多个双亲情况表示方法很笨拙、查询子女结点必须通过双亲结点、层次命令趋于程序化。
13.网状模型:
(1)完整性约束:
一、支持记录码的概念二、保证一个联系中双亲记录和子女记录之间是一对多的联系三、可以支持双亲记录和子女记录之间某些约束条件。
(2)存储结构:
链接法、指引元阵列法、二进制阵列法、索引法等。
(3)优点:
能够更为直接地描述现实世界、具有良好的性能,存取效率高。
(4)缺点:
结构复杂、网状结构的DDL/DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握使用。
14.关系模型:
是目前最重要的一种数据模型。
实体完整性、参照完整性、用户完整性
(2)操作:
关系模型中数据操作是集合操作,操作对象和操作结果都是关系,即若干原组的集合。
(3)存储结构:
表
(4)优点:
一、建立在严格的数学概念基础上二、概念单一三、关系模型的存储路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
(5)缺点:
由于存储路径对用户透明,查询效率往往不如格式化数据模型
1.3数据库系统结构
15.模式是数据库中全体数据的逻辑结构和特征的描述。
模式的一个具体值称为模式的一个实力。
模式是相对稳定的,而实例是相对变动的。
16.数据库系统的三级模式结构:
数据库系统是由外模式(子模式或用户模式)、模式(逻辑模式)、内模式(存储模式)三级构成
(1)模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图。
(2)外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
(3)内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法。
(4)一个数据库只有一个模式和内模式,可以有多个外模式。
17.两层映像:
外模式/模式映像(保证逻辑独立性),模式/内模式映像(保证物理独立性)。
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
第二章关系数据库
2.1关系数据结构及形式化定义
1.关系数据库系统是支持关系模型的数据库系统。
2.关系可以有三种基本类型:
基本关系(通常又称为基本表或基表)、查询表和视图表。
●基本表是实际存在的表,它是实际存储数据的逻辑表示。
●查询表是查询结果对应的表。
●视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
2.2关系操作
1.关系的模型中常用的关系操作包括查询(选择、投影、连接、除、并、差、交、笛卡尔积)操作和插入、删除、修改操作两大部分。
2..关系操作的特点是集合操作方式。
这种操作方式也成为一次一集合的方式。
非关系数据模型的数据操作方式则为一次一记录方式。
3.关系数据语言分为三类:
关系代数语言、关系演算语言(元祖关系演算语言、域关系演算语言)、具有关系代数和关系演算双重特点的语言
4.关系语言是一种高度非过程化的语言。
2.3关系的完整性
1.关系模式中有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
其中实体完整性和参照完整性是关系模型中必须满足的完整性约束条件,被称作关系的两个不变性。
●实体完整性规则:
若属性(指一个或一组属性)A是基本关系R是主属性,则A不能取空值。
●参照完整性:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值、或者等于S中某个元组的主码值。
2.4关系代数
1.关系代数的运算对象是关系,运算结果亦为关系。
2.传统的集合运算:
并、差、交、笛卡尔积。
3.专门的关系运算:
选择、投影、连接(等值连接、自然连接)、除运算。
第三章关系数据库标准语言SQL
3.1SQL概述
1.SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:
(1)综合统一
(2)高度非过程化
(3)面向集合的操作方式
(4)以同一种语法结构提供多种使用方式
(5)语言简洁,易学易用
3.3数据定义
2.建立一个“课程”表Course
CreattableCourse
(CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),
CpnoCHAR(4)UNIQUE,
CcreditSMALLINT,
FOREIGNKEYCpnoREFERENCESCourse(Cno)
);
3.向Student表增加“入学时间”列,其数据类型为日期型
ALTERTABLEStudentADDS_entranceDATE;
4.将年龄的数据类型由字符型改为整数
ALTERTABLEStudentALTERCOLUMNSageINT;
5.删除Student表
DROPTABLEStudentCASCADE;
3.4数据查询
3.41单表查询
一、选择表中的若干列
1.查询指定列:
查询全体学生的学号与姓名
SELECTSno,Sname
FROMStudent;
2.查询全部列:
查询全体学生的详细记录
SELECT*
3.查询经过计算的值:
查询全体学生的姓名及其出生年份
SELECTSname,2004-Sage
FROMStudent;
二、选择表中的若干元组
1.消除取值重复的行(DISTINCT):
查询选修了课程的学生学号
SELECTDISTINCTSno
FROMSC;
2.查询满足条件的元祖(WHERE)
(1)比较大小
(2)确定范围:
BETWEEN…AND…,NOTBETWEEN…AND…
(3)确定集合:
IN,NOTIN
例:
查询计算机科学系、数学系、和信息系学生的姓名和性别
SELECTSname,Ssex
FROMStudent
WHERESdeptIN(‘CS’,’MA’,’IS’);
(4)字符匹配:
LIKE,NOTLIKE[ESCAPE’’]
通配符:
%代表任意长度的字符串,_代表任意单个字符
查询以“DB_”开头,且倒数第三个字符为i的课程的详细情况
FROMCourse
WHERECnameLIKE’DB\_%i__’ESCAPE‘\’;
这里的匹配串为:
DB\_%i__。
第一个_前面有换码字符\,所以它被转义为普通的_字符、而i后面的两个_的前面没有换码字符\,所以它们仍作为通配符。
(5)涉及空值的查询IS,ISNOT
查询缺少成绩的学生的学号和相应的课程号
SELECTSno,Cno
FROMSC
WHEREGradeISNULL;
(6)多重条件查询AND,OR,AND优先级大于OR
三、ORDERBY子句,升序(ASC)降序(DESC),缺省值为升序
查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
SELECTSno,Grade
WHERECno=’3’
ORDERBYGradeDESC;
四、聚集函数
COUNT([DISTINCR|ALL]*)统计元组个数
COUNT([DISTINCR|ALL]<
列名>
)统计一列中值的个数
SUM([DISTINCR|ALL]<
)计算一列值的总和(数值型)
AVG([DISTINCR|ALL]<
)计算一列值的平均值(数值型)
MAX([DISTINCR|ALL]<
)求一列值中的最大值
MIN([DISTINCR|ALL]<
)求一列值中的最小值
查询选修了课程的学生人数
SELECTCOUNT(DISTINCTSno)
查询选修1号课程的学生最高分数
SELECTMAX(GRADE)
WHERECno=‘1’;
五、GROUPBY子句
求各个课程号及相应的选课人数
SELECTCno,COUNT(Sno)
GROUPBYCno;
查询选修了3门以上课程的学生学号
SELECTSno
GROUPBYSno
HAVINGCOUNT(*)>
3;
WHERE与HAVING区别在于作用对象不同,前者作用于基本表或视图,后者作用于组。
Ps:
子查询的SELECT语句中不能使用ORDERBY子句,ORDERBY子句只能对最终查询结构排序。
集合操作主要包括并UNION、交操作INTERSECT和差EXCEPT
3.5数据更新
1.插入元组
INSERT
INTOStudent(Sno,Sname,Ssex,Sdept,Sage)
VALUES(‘200215128’,’陈冬’,‘男’,‘IS’,18);
2.修改数据
UPDATEStudent
SETSage=22
WHERESno=’200215121’;
3.删除数据:
删除所有学生选课记录
DELETE
3.6视图
1.子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDERBY,DISTINCT.
2.WITHCHECKOPTION表示对视图进行修改插入删除操作时要保证更新的行满足视图定义中的谓语条件。
3.组成视图的属性列名或者全部省略或者全部指定。
但在以下三个情况下必须明确指定组成视图的所有列名:
(1)某个目标列不是单纯的属性名,而是聚集函数或列表达式
(2)多表连接时选出了几个同名列作为视图的字段
(3)需要在视图中为某个列启用新的更合适的名字
4.建立视图:
建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生
CREATEVIEWIS_Student
As
SELECTSno,Sname,Sage
FROMStudent
WHERESdept=’IS’
WITHCHECKOPTION;
5.若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码,我们称这类视图为行列子集视图。
6.派生属性称为虚拟列,带虚拟列的视图也称为带表达式的视图。
还可以用带有聚集函数和GROUPBY子句的查询来定义视图,这种视图称为分组视图。
7.删除视图:
DROPVIEWBT_SCASCADE(级联);
8.视图消解:
把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。
9.视图的作用:
(1)视图能简化用户的操作
(2)视图使用户能以多种角度看待同一数据
(3)视图对重构数据库提供了一定程度的逻辑独立性
(4)视图能够对机密数据提供安全保护
(5)适当的利用视图可以更清晰的表达查询
第四章数据库安全性
1.计算机系统三类安全性问题:
技术安全、管理安全、政策法律
2.授权与回收:
GRANT,REVOKE
把查询Student表的权限授给用户U1
GRANTSELECT
ONTABLEStudent
TOU1;
把用户U4修改学生学号的权限收回
REVOKEUPDATE(Sno)
FROMU4;
第五章数据库完整性
1.数据库的完整性是指数据的正确性和相容性
2.完整性和安全性是两个不同的概念。
完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。
数据的完整性是保护数据库防止恶意的破坏和非法的存取。
3.为维护数据库的完整性,DBMS必须:
(1)提供定义完整性约束条件的机制
(2)提供完整性检查的方法
(3)违约处理
4.实体完整性:
PRIMARYKEY(Sno,Cno)
参照完整性:
FOREIGNKEY(Sno)REFERENCESStudent(Sno)
用户定义完整性:
NOTNULL,UNIQUE(列值唯一),CHECK(检查列值是否满足一个布尔表达式)
SsexCHAR
(2)CHECK(SsexIN(‘男’‘女’))
第六章关系数据理论
1.第一范式存在问题:
(1)数据冗余太大
(2)更新异常
(3)插入异常
(4)删除异常
2.2NF:
完全函数依赖
3NF:
消除传递依赖
BCNF:
所有非主属性对每一个码都是完全函数依赖
所有的主属性对每一个不包含它的码也是完全函数依赖
没有任何属性完全依赖于非码的任何一组属性
3.公理系统:
自反律
增广律
则
传递律
合并规则
有
伪传递规则
4.模式分解的三个定义:
分解具有“无损连接性”
分解要“保持函数依赖”
分解既要“保持函数依赖”又要“具有无损连接性”
第七章数据库设计
1.数据库设计:
是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
2.数据库设计的特点:
三分技术,七分管理,十二分基础数据
结构(数据)设计和行为(处理)设计相结合
3.数据库设计的基本步骤:
(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计
(5)数据库实施
(6)数据库运行和维护
数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DBMS密切相关。
4.数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个部分。
5.设计概念结构通常有四类方法:
自顶向下,自底向上,逐步扩张,混合策略
6.概念模型是对现实世界的一种抽象,一般有三种抽象:
分类,聚集,概括
7.数据库的运行和维修
(1)数据库的转储和恢复
(2)数据库的安全性、完整性控制
(3)数据库性能的监督、分析和改造
(4)数据库的重组织和重构造
第九章关系查询处理和查询优化
9.1关系数据库系统的查询处理
1.查询处理步骤:
(1)查询分析
(2)查询检查
(3)查询优化
按照优化的层次一般可分为代数优化和物理优化。
代数优化是指关系代数表达式的优化,即按照一定的规则,改变代数表达式中操作的次序和组合,使查询执行更高效;
物理优化则是指存取路径和底层操作算法的选择
(4)查询执行
第十章数据库恢复技术
10.1事务的基本概念
1.所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么不做,是一个不可分割的工作单位。
2.事务是恢复和并发控制的基本单位
3.事务具有四个特征(ACID特性):
(1)原子性
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
(2)一致性
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
(3)隔离性
一个事务的执行不能被其他事务干扰
(4)持续性(永久性)
一个事务一旦提交,它对数据库中数据的改变就应是永久性的。
接下来的其他操作或故障不应该对其执行结果有任何影响
10.3故障的类型
1.事务内部故障
如:
运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性约束等。
2.系统故障(软故障)
特定类型的硬件错误、操作系统故障、DBMS代码错误、系统断电等
3.介质故障(硬故障)
磁盘损坏、磁头碰撞、瞬时磁场干扰等
4.计算机病毒
10.4恢复的实现技术
1.日志文件是用来记录事务对数据库的更新操作的文件。
概括起来有两种格式:
以记录为单位的日志文件和以数据块为单位的日志文件
2.日志的主要内容:
事务标识,操作的类型,操作对象,更新前数据的旧值,更新后数据的新值
第十一章并发控制
1.数据的不一致性主要包括丢失修改不可重复读读‘脏’数据
2.封锁有两种类型:
排它锁(写锁),共享锁(读锁)
3.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行的执行这些事务时的结果相同,称可串行化的调度
可串行性是并发事务正确调度的准则。
一个给定的并发调度,当且仅当它是可串行化的才认为是正确调度
4.两段锁协议
(1)在对任何数据进行读、写操作之前,首先要申请并获得对数据的封锁
(2)在释放一个封锁之后,事务不再申请和获得任何其他封锁。
所谓两段锁的含义是:
事务分为两个阶段,第一阶段是获得封锁,也称为拓展阶段,在这个阶段事务可以申请获得任何数据上的任何类型的锁但是不能释放任何锁。
第二阶段是释放阶段,也称收缩阶段,在这个阶段,事务可以释放任何数据上的任何类型的锁,但是不能再申请任何锁。