数据库知识点总结.docx
《数据库知识点总结.docx》由会员分享,可在线阅读,更多相关《数据库知识点总结.docx(18页珍藏版)》请在冰豆网上搜索。
数据库知识点总结
第一章:
数据库系统概论
1、数据库管理系统(DBMS):
是由一个相互关联的数据的集合和一组用以访问、管理和控制这些数据的程序组成。
这个相互关联的数据集合称为数据库(DB)。
2、数据库管理系统的特点:
(1)数据结构化,一是指数据不仅仅是内部结构化,而是将数据以及数据之间的联系统一管理起来,使之结构化;二是指在数据库中的数据不是仅仅针对某一个应用,而是面向全组织的所有应用。
(2)数据的共享度高,冗余度底,易扩充。
(3)数据独立性高,包括数据逻辑独立性和数据物理独立性。
(4)数据由数据库管理系统统一管理和控制,提供完整的数据控制功能,如安全性保护、完整性检查、并发控制和数据库恢复等。
3、数据独立:
数据独立是指数据的使用(即应用程序)与数据的说明(即数据的组织结构与存储方式)分离,使应用程序只考虑如何使用数据,而无须关心它们是如何构造和存储的,因而各方(在一定范围内)的变更互不影响。
4、数据独立性:
数据独立性是用来描述应用程序与数据结构之间的依赖程度,包括数据的物理独立性和数据的逻辑独立性,依赖程度越低则独立性越高。
5、数据逻辑独立性:
逻辑独立性是指用户的应用程序与数据库中数据的逻辑结构是相互独立的。
6、数据物理独立性:
物理独立性是指用户的应用程序与数据库中数据的物理结构是相互独立的。
7、数据模型:
数据模型是一个描述数据结构、数据操作以及数据约束的数学形式体系(即概念及其符号表示系统)。
其中,数据结构用于刻画数据、数据语义以及数据与数据之间的联系;数据约束是对数据结构和数据操作的一致性、完整性约束,亦称为数据完整性约束。
8、数据模型通常由数据结构、数据操作和数据完整性约束3部分组成。
(1)数据结构描述数据库的组成对象(实体)以及对象之间的联系。
(2)数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则。
(3)数据完整性约束是一组数据完整性规则。
数据完整性规则是数据、数据语义和数据联系所具有的制约和依存规则,包括数据结构完整性规则和数据操作完整性规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
9、概念模型:
概念层次的数据模型称为概念数据模型,简称为概念模型,它按用户的观点或认识对现实世界的数据和信息进行建模,主要用于数据库设计。
10、逻辑模型:
逻辑层是数据抽象的中间层,用于描述数据库数据的整体逻辑结构,是现实世界的第二层抽象。
该层的数据抽象称为逻辑数据模型(简称为逻辑模型)。
11、物理模型:
物理层是数据抽象的最低层,用来描述数据的物理存储结构和存取方法。
这一层的数据抽象称为物理数据模型。
12、数据库三级模式:
数据库的三级模式结构是指数据库管理系统提供的外模式、模式和内模式3个不同抽象级别观察数据库中数据的角度,它是对数据的3个级别的抽象,它将数据的具体组织留给DBMS管理,使用户能够逻辑地、抽象地看待和处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
13、数据库三级模式作用:
(1)DBMS需要:
隐藏数据的存储和维护细节,为用户提供数据在不同层次上的视图,方便不同的使用者可以从不同的角度去观察和利用数据库中的数据
(2)支持数据独立性的实现
(3)整体结构化的需要:
从而实现数据共享度高,冗余度低,易扩充。
(4)部分支持完整性的实现
14、模式:
也称为逻辑模式,对应于逻辑层数据抽象,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
15、外模式:
也称子模式或用户模式,对应于视图层数据抽象,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一具体应用有关的数据的逻辑表示。
16、内模式:
也称存储模式,对应于物理层数据抽象,它是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。
17、数据库两层映像:
为了能够在系统内部实现数据库中3个抽象层次的数据之间的联系和转换,DBMS在外模式、模式和内模式之间提供了两层映像:
外模式/模式映像、模式/内模式映像。
正是这两层映像保证了数据库管理系统中的数据能够具有较高的逻辑独立性和物理独立性。
18、数据库系统:
是指在计算机系统中引入数据库后的系统。
19、DBMS的主要功能包括:
(1)数据定义;
(2)数据组织、存储和管理;
(3)数据操纵;
(4)数据库的事务管理和运行管理;
(5)数据库的建立和维护;
(6)其他功能,包括:
DBMS与网络中其他软件系统的通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。
第二章:
关系模型与关系代数
1:
、关系:
关系模型的数据结构就是二维表,亦称为关系,每个表(关系)有唯一的名字,即关系名。
表中一行代表的是若干值之间的关联,即表的一行是由有关联的若干值构成。
2、关系数据库:
关系数据库是表的集合,即关系的集合。
在一个给定的应用领域中,所有实体以及实体之间的联系所对应的关系的集合就构成一个关系数据库。
3、域:
是一组具有相同数据类型的值的集合。
4、空值:
(用null表示)是所有可能的域的一个取值,表明值未知或不存在。
5、关系模式:
关系的描述称为关系模式。
它可以形式化地表示为:
r(U,D,DOM,F),其中,r为关系名,U为组成该关系的属性名的集合,D为属性集U中所有属性所来自的域的集合,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合(即体现一个元组的各属性取值之间的“关联”性)。
6、超码:
对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码。
7、候选码:
对于关系r的一个或多个属性的集合A,如果属性集A是关系r的超码,且属性集A的任意真子集都不能成为关系r的超码,则称属性集A为候选码。
8、主码:
若一个关系有多个候选码,则可以选定其中的一个候选码作为该关系的主码。
9、外码:
设F是关系r的一个属性(或属性集),Ks是关系s的主码。
如果F与Ks相对应(即关系r中属性F的取值范围对应于关系s中主码Ks的取值范围的子集),则称F是关系r参照关系s的外码。
10、关系数据库模式:
关系数据库也有型和值之分,关系数据库的型就是关系数据库模式,关系数据库模式就是它所包含的所有关系模式的集合,是对关系数据库的描述;关系数据库的值就是这些关系模式在某一时刻所对应的关系的集合,通常称为关系数据库实例。
11、关系完整性约束:
关系模式中有3类数据完整性约束:
实体完整性、参照完整性和用户自定义完整性。
12、实体完整性:
若属性集A是关系r的主码,则A不能取空值null。
13、参照完整性:
若关系r的外码F参照关系s的主码,则对于关系r中的每一个元组在属性F上的取值,要么为空值null,要么等于关系s中某个元组的主码值。
14、用户自定义完整性:
用户自定义完整性就是针对不同应用业务的语义而由用户自己定义的一些完整性约束条件。
15、数据库模式导航图:
两个关系之间的多对一(或一对一)联系或一个关系内部的多对一(或一对一)联系通过有向连线来表示,且连线由多的一方指向一的一方,即由外码指向主码。
这种带有有向连线的数据库模式图称为数据库模式导航图,它有利于理解一个关系数据库中各关系之间的有机联系。
16、关系操作:
关系模型中的关系操作有查询操作和更新操作(包括插入、删除和修改)两大类。
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。
抽象层次上的关系查询语言有关系代数、关系演算和SQL语言等。
17、关系代数:
关系代数是通过关系代数运算来构造查询表达式。
基本的关系代数运算有选择、投影、集合并、集合差、笛卡尔积和更名等。
在这些基本运算之外,还有一些其他运算,即集合交、自然连接、除和赋值等。
18、
(1)并运算:
r∪s={t∣tr∨ts}
(2)交运算:
r∩s={t∣tr∧ts}
(3)差运算:
r-s={t∣tr∧ts}
(4)笛卡尔积运算:
r×s={tr·ts∣trr∧tss}
(5)选择运算:
σP(r)={t∣tr∧P(t)},其中P表示谓词(即选择条件),它是一个逻辑表达式,取值为“真”或“假”。
简单谓词的形式为:
XopY,其中op为比较运算符,包括<、<=、>、>=、=和!
=(或<>);运算对象X、Y可以是属性名、常量或简单函数等。
通过非()、与(∧)、或(∨)等逻辑运算符可以将多个简单谓词连接起来构成更复杂的谓词。
(6)投影运算:
∏A(r)={t[A]∣tr},其中:
A为关系r的属性集合。
(7)连接运算:
r⋈θs={tr·ts∣trr∧tss∧(r.Aops.B)},θ连接运算就是从关系r和s的笛卡尔积r×s中,选取r关系在A属性集上的值与s关系在B属性集上的值满足连接谓词θ的所有元组,即r⋈θs=
(8)自然连接运算:
r⋈s={tr·ts∣trr∧tss∧(r.A1=s.A1∧r.A2=s.A2∧…∧r.Ak=s.Ak)}
(9)除运算:
设关系r(R)和s(S),属性集S是R的子集,即SR,则关系r÷s是关系r中满足下列条件的元组在属性集R-S上的投影:
trr,记x=tr[R-S],则关系r中属性集R-S的取值x的象集Sx包含关系s。
记作
r÷s={tr[R-S]∣trr∧sSx}
19、象集:
给定一关系r(A,B),A和B为属性集。
tr,记t[A]=x,则在关系r中属性集A的某个取值x的象集定义为:
Bx={t[B]∣tr,t[A]=x},它表示关系r中属性集A上取值为x的所有元组在属性集B上的投影。
第三章:
SQL语言
1、SQL查询:
SQL查询语句SELECT共有6个子句,其中SELECT和FROM是必须的,其它是可选项,它们必须严格按照如下顺序排列:
SELECT[ALL|DISTINCT]<目标列表达式>[AS][<别名>][,<目标列表达式>[AS][<别名>]...]
FROM{<表名>|<视图名>|<查询表>}[AS][<别名>][,{<表名>|<视图名>|<查询表>}[AS][<别名>]...]
[WHERE<条件表达式>]
[GROUPBY<列名1>[,<列名2>...]
[HAVING<条件表达式>]]
[ORDERBY<列名表达式>[ASC|DESC][,<列名表达式>[ASC|DESC]...]]
2、投影运算:
SELECT子句对应于关系代数中的投影运算,用来指定查询结果中所需要的属性或表达式。
3、笛卡尔积:
FROM子句对应于关系代数中的笛卡尔积,用来给出查询所涉及的表,表可以是基本表、视图或查询表。
4、选择运算:
WHERE子句对应于关系代数中的选择运算,用来指定查询结果元组所需要满足的选择条件。
WHERE子句中常用的查询条件有:
比较运算(>、>=、<、<=、=、<>)、范围运算(BETWEEN...AND)、集合运算(IN)、空值判别运算(ISnull)、字符匹配运算(LIKE)和逻辑运算(AND、OR、NOT)。
5、排序运算:
ORDERBY子句实现排序运算,可以实现按指定属性、函数或表达式进行排序,ASC(可缺省)指定按升序排序;DESC指定按降序排序。
6、连接运算:
通过在WHERE子句中加入连接多个关系的连接条件实现多表之间的连接运算,连接谓词中的属性称为连接属性,连接属性之间必须具有可比性。
因此,SQL查询的连接运算可以理解为笛卡尔积(FROM子句)基础上的选择运算(WHERE子句)。
连接运算是关系数据库中使用最广泛的一种运算,包括等值连接、自然连接、非等值连接、自表连接和外连接等。
7、分组聚合运算:
在SQL查询中,往往需要对数据进行分类聚合运算(即分组聚合运算),分组聚合运算的目的是为了细化聚合函数的作用对象,SELECT语句中通过使用GROUPBY和HAVING子句来实现分组聚合运算。
SQL查询提供的聚合函数主要包括:
元组计数函数count、计算元组属性值的总和函数sum、计算元组属性值的平均值函数avg、求元组属性值的最大值函数max、求元组属性值的最小值函数min。
8、嵌套子查询:
在SQL查询中,一个SELECT-FROM-WHERE查询语句称为一个查询块,将一个查询块嵌入到另一个查询块的WHERE子句或HAVING子句中,称为嵌套子查询(简称为子查询)。
可分为非相关子查询和相关子查询。
嵌套子查询可通过使用元素与集合之间的IN运算符、元素与集合之间的比较运算符(如>ANY、<=ALL等)、谓词[NOT]EXISTS等方式来构造。
SQL查询允许多层嵌套子查询,但是在子查询中,不允许使用ORDERBY子句,该子句仅用于最后的输出结果排序。
9、非相关子查询:
非相关子查询是指子查询的结果不依赖于上层查询。
10、相关子查询:
相关子查询是指当上层查询的元组发生变化时,其子查询必须重新执行。
11、SQL数据定义语言:
数据库中的关系集合必须由数据定义语言DDL来定义,包括:
数据库模式、关系模式(含每个属性的名称、值域等)、关系完整性约束、每个关系的索引集合和关系的物理存储结构等。
12、SQL数据更新语言:
SQL数据更新语句包括3条:
插入INSERT、删除DELETE和修改UPDATE。
13、插入:
INSERTINTO[([,...])]
VALUES([,...]])
14、删除:
DELETEFROM[WHERE]
15、修改:
UPDATE
SET=[,=...]
[FROM[AS][]
[,[AS]
第四章:
数据库建模(实体-联系模型)
1、数据库设计:
数据库设计就是根据各种应用处理的要求、硬件环境及操作系统的特性等,将现实世界中的数据进行合理组织,并利用已有的数据库管理系统(DBMS)来建立数据库系统的过程。
具体地说,是对于一个给定的应用环境,构造出最优的数据库逻辑模式和物理模式,并以此来建立数据库及其应用系统,使之能够有效地存储和管理数据,满足用户的信息要求和处理要求。
2、数据库设计过程:
数据库设计过程通常可分为如下6个步骤:
需求分析、概念设计、逻辑设计、模式求精、物理设计、应用与安全设计。
3、需求分析:
该步骤是了解和分析系统将要提供的功能及未来数据库用户的数据需求。
例如,分析系统具有哪些功能需求,哪些数据要存储在数据库中,使用数据的业务规则是什么,数据之间有什么联系及约束,哪些数据会被频繁访问,有哪些性能需求等等,即了解用户真正希望从数据库中得到什么。
4、概念设计:
根据需求分析中得到的信息,选择适当的工具将这些需求转化为数据库的概念模型。
本书主要介绍基于E-R模型的数据库概念设计,其目的是通过实体、联系、属性等概念和工具精确地描述系统的数据需求、数据联系及约束规则。
5、逻辑设计:
本步骤是将数据库的概念设计转化为所选择的数据库管理系统支持的逻辑数据模型,即数据库模式。
由于本书只讨论关系数据库,因此逻辑数据库设计的任务是将E-R模型转化为关系数据库模式。
6、模式求精:
以关系数据理论做指导,对已得到的关系数据库模式进行分析,找出潜在的问题并加以改进和优化,如减少数据冗余,消除更新、插入与删除异常等。
需求分析与概念设计显得比较主观,而模式求精则是基于完善的关系数据理论进行的。
7、属性:
实体是通过一组属性来描述的,属性是实体集中每个实体都具有的特征描述。
8、简单属性:
简单属性是指不能再分为更小部分的属性。
9、复合属性:
复合属性是指可以进一步划分为更小部分的属性。
10、单值属性、多值属性:
如果某属性对一个特定实体任何时候都只能有单独的一个值,则称该属性为单值属性,否则为多值属性。
11、派生属性:
如果某属性的值可以从其它相关属性或实体(集)派生出来,则该属性称为派生属性。
12、多值属性的变换:
多值属性的一个可选的建模方案是:
将多值属性转换为多个单值属性进行表示。
多值属性的另一个可选建模方案是:
将多值属性单独建模为一个弱实体集,它依赖于原实体集而存在。
13、联系集的度:
参与联系集的实体集的数目称为联系集的度。
14、E-R模型:
E-R模型(亦称为E-R图)是通过实体、联系、属性等概念和工具精确地描述系统的数据需求、数据联系及约束规则,用于数据库概念建模。
在E-R图中,实体集用矩形表示;属性用椭圆表示,多值属性用双椭圆表示,派生属性用虚线椭圆表示;联系集用菱形表示;属性与实体集、联系集之间用连线表示,实体集与联系集之间也用连线表示。
15、完整性约束:
E-R模型可以定义一些实体集(或联系集)中的实体(或联系)必须满足的完整性约束,主要包括映射基数约束、码约束、依赖约束及参与约束等。
其中,码约束体现了实体完整性的要求,映射基数约束、依赖约束及参与约束体现了参照完整性的要求。
16、联系集的码:
一对一联系集:
主码可以使用参与联系集中的任何一方实体集的主码;
一对多(多对一)联系集:
主码由“多”的一方实体集的主码组成;
多对多联系集:
主码由参与联系集中所有实体集的主码组成。
17、联系集属性安置:
一对一联系集的属性:
可安置于任一边的实体集上;
一对多联系集的属性:
可安置于联系集上,也可安置在多的那一边的实体
多对多联系集的属性:
它是描述相关联实体集间的交互性语义,因此,联系属性只能安置于联系集上,不能放到相关联的实体集上去。
18、依赖约束:
联系中一种实体的存在依赖于该联系集中联系的存在,称为实体集与联系集之间的依赖约束,并将依赖于联系集而存在的实体集称为依赖实体集。
19、依赖实体集:
联系中一种实体的存在依赖于该联系集中联系的存在,称为实体集与联系集之间的依赖约束,并将依赖于联系集而存在的实体集称为依赖实体集。
20、弱实体集:
联系中一种实体的存在依赖于其他实体集中实体的存在,称为实体集之间的依赖约束,并将依赖于其他实体集而存在的实体集称为弱实体集。
弱实体集中的属性不足以形成主码,它们必须依赖于其它实体集的存在而存在,弱实体集所依赖的实体集称为标识实体集。
弱实体集中用于区分依赖于同一标识实体的多个弱实体的属性(集)称为部分码,标识实体集的主码与弱实体集的部分码联合起来构成弱实体的主码。
对于弱实体集,必须满足下列限制:
(1)标识实体集和弱实体集之间的标识联系集必须是“一对多”的,即一个标识实体可以与一个或多个弱实体相联系,但一个弱实体只能与一个标识实体相联系。
(2)弱实体在标识联系集中必须是全部参与。
21、多值联系:
多值联系是指相关联的实体之间存在多个相同类型的联系,即相关联的实体之间存在的多个联系属于同一个联系集。
多值联系(集)上必有属性。
22、标识实体集:
弱实体集中的属性不足以形成主码,它们必须依赖于其它实体集的存在而存在,弱实体集所依赖的强实体集称为标识实体集。
23、标识联系集:
弱实体集必须与一个标识实体集相关联才有意义,该联系集称为标识联系集。
24、部分码:
弱实体集中用于区分依赖于同一标识实体的多个弱实体的属性(集)称为部分码。
弱实体集中的实体是由其标识实体集中的主码与其部分码共同标识。
25、聚合、联系实体集:
聚合是一种抽象,它将一个联系集及其相关联的实体集抽象为一个联系实体集(或称为高层实体集)对待,然后建立该联系实体集与其它实体集之间的联系集
26、E-R建模的基本原则:
(1)忠实性:
即实体集、联系集、属性都应当反映现实世界,应根据所了解的现实世界去建模。
(2)简单性:
除非有绝对需要,否则不要在设计中增加更多成分。
(3)避免冗余:
在E-R模型设计中,一个原则是一个对象只存放在一个地方。
27、E-R建模的基本方法:
(1)选择实体集还是属性。
通常满足下述两条规则的事物,均可作为属性对待:
①作为属性,不能再具有要描述的性质,即属性不可分。
②属性不能和其它实体相联系。
(2)选择实体集还是联系集。
通常原则是,实体对应于现实世界中实际存在的事物,是名词;而联系对应的概念一般为一种动作,即描述实体间的一种行为。
(3)依赖约束的建模方法。
单独讨论。
(4)多值联系的建模方法。
单独讨论。
(5)多元联系转化为二元联系。
将三元联系转化为二元联系的一般方法是:
通过聚合将二元联系集建模成一个联系实体集,再加上它与原来联系的实体集之间的二元联系;或者建立一个依赖实体集或弱实体集,再与原实体集之间建立二元联系。
28、依赖约束的建模:
(1)对于实体集之间的依赖约束,将依赖于其他实体集而存在的实体集建模为弱实体集即可。
(2)对于实体集与联系集之间的依赖约束,由于依赖于联系集而存在的实体集一般是指伴随着业务发生而形成的单据,因此,将依赖于业务的发生而产生的单据直接建模为依赖实体集(而不是联系集),并将它直接与所依赖的联系集关联起来。
29、多值联系的建模:
为了唯一标识多值联系中的多个联系,可以考虑将多值联系建模为一个依赖实体集或弱实体集,该弱实体集依赖于与它相关联的各个实体集,或该依赖实体集依赖于与它相关联的各个联系集。
也就是说,多值联系的建模问题可转化为依赖约束的建模问题。
30、E-R模型转化方法:
E-R模型向关系模型转化的方法主要包括:
强实体集转化方法、弱实体集转化方法、联系集转化方法、复合属性及多值属性转化方法、类层次转化方法和聚合转化方法等。
第五章:
关系数据理论与模式求精
1、模式分解:
模式分解是指将一个关系模式分解为多个关系模式。
模式分解的要求是在分解后的新关系模式中要保持原关系模式所满足的特性,为此要求模式分解具有无损连接性(即无损分解或无损连接分解)和保持函数依赖性(即保持依赖分解)。
2、函数依赖:
设r(R)为关系模式,R,R。
对任意合法关系r及其中任两个元组ti和tj,ij,若ti[]=tj[],则ti[]=tj[],则称函数确定,或函数依赖于,记作。
3、平凡函数依赖、非平凡函数依赖:
在关系模式r(R)中,R,R。
若,但,则称是非平凡函数依赖。
否则,若,则称是平凡函数依赖。
4、完全函数依赖、部分函数依赖:
在关系模式r(R)中,R,R,且为非平凡函数依赖。
若对任意的,都不成立,则称是完全函数依赖,简称完全依赖。
否则,若存在非空的,使成立,则称是部分函数依赖,简称部分依赖。
5、传递函数依赖:
在关系模式r(R)中,设R,R,R。
若,,则必存在函数依赖;若、和都是非平凡函数依赖,且,则称是传递函数依赖,简称传递依赖。
6、逻辑蕴涵:
若给定函数依赖集F,可以证明其他函数依赖也成立,则称这些函数依赖被F逻辑蕴涵。
7、函数依赖集闭包:
令F为一函数依赖集,F逻辑蕴涵的所有函数依赖组成的集合称为F的闭包,记为F+。
8、Armstrong公理的推理规则:
设关系模式r(R),R,R,R,则有下列规则:
(1)自反律(reflexivityrule):
若存在,则有;
(2)增补律(augmentationrule):
若存在,则有;
(3)传递律(tr