计算机考研基础班讲义专题02数据库知识.docx
- 文档编号:6826633
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:31
- 大小:78.78KB
计算机考研基础班讲义专题02数据库知识.docx
《计算机考研基础班讲义专题02数据库知识.docx》由会员分享,可在线阅读,更多相关《计算机考研基础班讲义专题02数据库知识.docx(31页珍藏版)》请在冰豆网上搜索。
计算机考研基础班讲义专题02数据库知识
专题二:
数据库基础
数据库管理系统的功能和特征
·数据库模型(概念模式、外模式、内模式)
·数据模型,ER图,第一范式、第二范式、第三范式
·数据操作(集合运算和关系运算)
·数据库语言(SQL)
·数据库的控制功能(并发控制、恢复、安全性、完整性)
·数据仓库和分布式数据库基础知识
1、数据库知识
1.1数据管理技术的发展
数据管理技术的发展阶段:
人工阶段:
数据处理方式是批处理。
其特点是:
Ø 数据不保存
Ø 没有专用的软件对数据进行管理
Ø 只有程序概念,没有文件概念
Ø 一组数据对应一个程序,即数据是面向程序的
文件系统阶段:
数据处理方式有批处理,也有联机实时处理。
其特点是:
Ø 数据可长期保存在外存上
Ø 数据的逻辑结构与物理结构有了区别,但简单
Ø 文件组织已多样化,有索引文件、链接文件和直接存取文件等,但文件之间相互独立,没有联系
Ø 数据不再属于某个特定的程序,可重复使用,但数据结构和程序之间的依赖关系并未根本改变。
其缺点是:
Ø 数据冗余性
Ø 数据不一致性
Ø 数据联系弱
数据库阶段:
其特点是:
Ø 用关系模型表示复杂的数据模型
Ø 有较高的数据独立性
Ø 数据库系统为用户提供了方便的用户接口
Ø 数据库管理系统提供了四个方面的数据控制能力-数据完整性、数据安全性、数据库的并发控制、数据库的恢复
数据库的基本概念
数据库(DB):
是存储在一起的相关数据的集合。
DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的程序与数据的独立性。
数据库管理系统(DBMS):
DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBMS可分为层次型、网状型、关系型、面向对象型。
数据库系统(DBS):
即是采用了数据库技术的计算机系统,是实现有组织地、动态存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源而组成的系统。
数据库技术:
研究数据库的结构、存储、设计、管理和使用的一门软件学科。
1.2数据模型
表示实体类型及实体之间联系的模型称为“数据模型”。
数据模型是严格定义的概念的集合,数据库的数据模型应包括数据结构(指对实体类型和实体之间联系的表达和实现)、数据操作(指对数据库的检索和更新两大类操作)和完整性约束(给出数据及其所具有的制约合依赖规则)3个部分。
数据模型的种类很多。
目前广泛使用的数据模型可分为两种:
概念数据模型和结构数据模型。
概念数据模型
这是一种独立于任何计算机系统的模型,完全不涉及信息在计算机系统中的表示,用于建立信息世界的数据模型,是现实世界的第一层抽象,是用户和数据库设计人员进行交流的工具,其中最著名的模型是“实体联系模型”(ER模型)。
ER模型直接从现实世界中抽取出实体类型及实体间联系图(ER图)表示数据模型。
一般遇到实际问题时,总是先设计一个ER模型,然后再把ER模型转换成与DBMS关联的数据模型。
结构数据模型(亦称基本数据模型):
这是直接面向数据库的逻辑数据结构,通常有一组严格定义了语法和语义的数据库语言,用来定义、操纵数据库中的数据。
其主要有层次、网状、关系模型三种。
◆层次模型:
用树型(层次)结构表示实体类型及实体之间联系的数据模型称为层次模型。
层次结构是一棵树,树的结点是记录类型,非根结点有且只有一个父结点。
上一层记录类型和下一层记录类型的联系是1:
M联系。
◆网状模型:
用从结构(网络结构)表示实体类型及实体间联系的数据模型称为网状模型。
记录之间的联系通过指针实现,M:
N联系容易实现(一个M:
N联系可拆成两个1:
M联系),查询效率高。
◆关系模型:
用规范化了的二维表格结构表示实体集,用键表示实体间联系。
通常是若干个关系模型组成的集合。
1.3数据库系统的结构
⏹ 数据库的数据体系结构
数据库的数据体系结构分成3个级别:
内部级、概念级、外部级。
从某个角度看到的数据特性称为数据视图。
Ø 外部级最接近用户,是用户看到的数据特性,用户的数据视图称为外模型。
Ø 概念级是涉及到所有用户的数据定义,也就是全局的数据视图,称为概念模型。
Ø 内部级是最接近于物理存储设备,涉及到实际数据的存储方式。
物理存储的数据视图称为内模型。
这些模型用数据库的数据定义语言(DDL)描述后,分别得到外模式、概念模式、内模式。
为实现这3个抽象级别的转换,数据库和管理系统在这3级结构之间提供了两层映象:
外模式/概念模式映象和概念模式/内模式映象
数据库管理系统的主要目标:
把数据作为可管理的资源处理。
数据库管理系统的5个重要功能:
数据库的定义功能、数据库的操纵功能、数据库的保护功能、数据库的维护功能、数据字典。
数据库的全局结构:
DBS的某些功能是由计算机的OS提供的,OS提供了DBS最基本的服务,因此DBS必须在OS基础上工作。
在DBS中就应包含DBMS和OS之间的界面。
DBS的全局结构由数据库用户、数据库管理系统的查询处理器、数据库管理系统的存储管理器和磁盘存储器中的数据结构等部分组成。
1.4关系模型和关系运算
⏹ 基本概述
关系数据库是应用关系数据模型来建立和处理数据库中的数据。
这其中主要涉及几个重要的概念。
◆ 关系
关系实际上就可以看作是一个二维表。
其中,表的每一列称为属性,并用属性名来标识。
每个属性的取值范围,就是该属性所对应的值域。
表的每一行称为元组。
约定该表的行、列的次序的改变,不改变关系的语义性质。
对于一个关系,应该具备下列性质:
Ø 关系中每一个属性值都是不可分解的;
Ø 关系中不允许出现相同的元组;不让用户考虑元组的顺序;
Ø 用户在使用时应考虑列的顺序。
◆ 关系模型
关系模型是目前最流行的一种数据模型,它是用二维表格结构表示实体集,关键码表示实体间的联系。
◆ 关键字(键)
I. 候选键
关系中的某一属性或属性组,若它的值可以唯一标识关系中的一个元组而又不含有多余的属性,则称该属性或属性组为候选关键字。
II. 主键
关系模式中用户正使用的候选关键字称为主关键字。
III.外关键字
若模式R中某属性集是其他模式的候选键,那么该属性集对模式R而言就是外关键字。
IV. 超键
关系模式中,为唯一标识元组的属性集称为超键。
⏹ 关系模型
关系模型遵循数据库的3级体系结构。
◆ 关系模式
数据库的概念模式定义为关系模式的集合。
每个关系模式就是记录类型。
◆ 关系子模式
这是对用户所用到的那部分数据的描述。
除了指出用户用到的数据外,还应指出数据与模式中相应数据的联系,即指出子模式与模式之间的对应性。
◆ 关系存储模式(关系内模式)
这是作为文件看待的,每个元组就是一个记录。
关系模型有3个部分构成:
◆ 数据结构
关系模型采用的数据结构是关系。
◆ 关系操作
关系模型提供一组完备的关系运算,以支持对数据库的各种操作。
关系运算的理论是关系代数和关系演算。
◆ 关系的完整性
在关系模型中,数据的约束条件通过三类完整性约束条件来描述。
即:
I. 实体完整性
要求关系中的元组的主键值不能是空值。
II. 参照完整性
要求在关系中不允许引用不存在的实体。
III.用户定义的完整性
这是针对某一具体数据的约束条件,由应用环境决定,例如属性的值限制。
⏹ 关系代数
关系查询语言根据其理论基础的不同分成两大类:
◆ 关系代数语言:
查询操作是以集合操作为基础的运算。
◆ 关系演算语言:
查询操作是以谓词演算为基础的运算。
其中,关系代数是以集合代数为基础发展起来的,它是以关系为运算对象的一组高级运算的集合。
关系代数的运算可分为两类:
基本运算操作:
并、差、笛卡尔积、投影和选择。
组合运算操作:
交、联接、自然联接和除。
另外,还有几种扩充的关系代数操作:
外联接(左外联接和右外联接)、外部并和半联接。
以下对几种常用的关系运算作一个简单的介绍。
◆ 基本运算
1. 并
设有两个关系R和S具有相同的关系模式,关系R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。
形式定义如下:
R∪S≡{t│t∈R∨t∈S}
2. 差
设有两个关系R和S具有相同的关系模式,关系R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。
形式定义如下:
R-S≡{t│t∈R∧t ̄∈S}
3. 笛卡儿积
设关系R和S元数分别为r和s。
定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R×S形式定义如下:
R×S≡{t│t=<tr,ts>tr∈R∧ts∈S}
若R有m个元组,S有n个元组,则R×S有(mn)个元组。
4. 投影
该操作是对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。
5. 选择
这个操作是根据某些条件对关系作水平分割,即选择符合条件的元组。
条件可用命题公式F表示,F中的运算对象是常数(用引号括起来)或元组分量(属性名或列的序号)。
运算符有算术比较运算符(≤,<,≥,>,=,≠)和逻辑运算符(∧,∨,┐)。
δF(R)≡{t│t∈R∧F(t)=true}
δ为选择运算符,δF(R)表示从R中挑选满足公式F的元组所构成的集合。
常量用引号括起来,而属性号或属性名不要用引号括起来。
◆ 组合运算
1. 交
设有两个关系R和S具有相同的关系模式,关系R和S的交是由属于R又属于S的元组组成的集合,记为R∩S。
形式定义如下:
R∩S≡{t│t∈R∧t∈S}
2. 联接(又称θ联接)
从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组,记为:
R│×│S≡δiθ(i+j)(R×S)ijθ
这里R的元数是r,θ是算术比较运算符。
R│×│S操作是在R和Sijθ的笛卡尔积中挑选第i个分量和第(r+j)个分量满足θ运算的元组组成的新的关系。
3. 自然联接
两个关系R和S的自然联接用R│×│S表示,具体计算过程如下:
A) 计算R×S
B) 设R和S的公共属性是A1,A2,A3,..Ak.,挑选R×S中满足R.A1=S.A1,R.A2,...,R.Ak=S.Ak的那些元组
C) 去掉S.A1,S.A2,..S.Ak
R│×│S可用下列形式定义:
R│×│S≡πi1i2,...,im(δR.A1=S.A1∧...∧R.Ak=S.Ak(R×S)。
4. 除法
设两个关系R和S的元数分别为r和s(r>s>0),那么R÷S是一个(r-s)元的元组的集合。
(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组
R÷S的具体计算过程如下:
A) T=π1,2,..r-s(R)
B) W=(T×S)-R求出T×S中不在R的元组
C) V=π1,2,...r-s(W)
D) R÷S=T-V
因此R÷S≡π1,2,..r-s(R)-π1,2,..r-s((π1,2,..r-s(R)×S)-R)。
1.5关系数据库SQL语言
SQL数据库的数据体系结构
SQL数据库的数据体系结构基本上也是3级结构,但术语与传统关系模型术语不同。
SQL中,关系模型称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。
SQL语言的组成
一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。
一个表或者是一个基本表,或者是一个视图。
基本表是实际存储在数据库的表,视图是由若干基本表或其他视图构成的表的定义。
SQL包括了所有对数据库的操作,主要有4个部分:
数据定义(SQL DDL)、数据操纵(SQL DML)、访问数据控制、嵌入式SQL语言的规定。
SQL DDL主要是定义基本表、视图、索引3个部分:
◆基本表的定义、修改、撤销
基本表的定义可用“CREATETABLE”语句实现,增加属性可以用“ALTER...ADD...”语句,删除属性可以用“ALTER...DROP...”语句;删除已存在的表可用“DROPTABLE...”语句。
◆视图的定义和撤销
视图的定义可以用CREATE VIEW语句实现。
视图的撤消可以用DROP VIEW语句实现。
◆索引的定义和撤销
索引的定义可以用CREATE,用DROP撤销。
◆SQLDML数据查询语句
SQL的查询语句只有SELECT语句。
◆SELECT查询语句
在关系代数中最常用的式子是“投影选择联接表达式”:
πA1,A2,,...An(δF(R1×R2×...×Rm)),这里R1,R2,...Rm为基本表,F是公式,A1,A2,...An为属性。
针对这个表达式,SQL设计了SELECT句型:
SELCET A1,A2,...An
FROM R1,R2,...Rm
WHERE F
在WHERE子句的条件表达式F中可出现下列操作符和运算特点:
算术比较符、逻辑运算符、集合运算符、集合成员资格运算符、谓词和聚合函数。
◆库函数
COUNT(*) 计算元组的个数
COUNT(列名) 对某一列中的值计算个数。
SUM(列名) 求某一列值的总和
AVG(列名) 求某一列值的平均值
MAX(列名) 求某一列值中的最大值
MIN(列名) 求某一列值中的最小值
◆SELECT语句完整的句法
SELECT 目标表的列名或列表达式序列
FROM 基本表或(和)视图序列
[WHERE 行条件表达式
[GROUTBY 列名序列
[HAVING 组条件表达式
[DRDERBY 列名[序]...
前两个句子是必不可少的,后面的4个句子可以缺省。
整个语句的语义如下:
从FROM子句中列出的表,选取满足WHERE子句中给出的行条件表达式的元组,然后按GROUP子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。
ORDER子句(排序子句)是对输出的目标表进行排序,可附加说明ASC(升序)或DESC(降序)
◆SQLDML的数据更新语句
INSERT 插入语句
DELETE 删除语句
UPDATE 修改语句
◆SQL的访问控制
SQL的访问控制功能主要是指对用户访问数据的控制。
有授权语句和回收语句。
授权语句的格式如下:
GRANT权限表
ON表名
TO用户名表
[WITHGRANTOPTION]
该语句把表的使用权授予指定的若干用户。
在有WITHGRANTOPTION短语时,被授权的用户还可将获得的权限再转授给其他用户。
权限表中的权限可以有:
SELECT,INSERT,DELETE,UPDATE,EXPAND,INDEX,ALLPRIVILEGES。
回收语句格式:
REVOKE 权限表
ON表名
FROM用户名表
该语句把已授给指定用户的在指定表上的使用权限收回。
◆嵌入式SQL
由于SQL是基于关系模型的语言,而高级语言是基于整数、实数、字符、记录、数组等的数据类型,因此两者之间有很大的区别,称为有缝隙。
为了能在宿主语言的程序中嵌入SQL语句,有一些规定:
I.在程序中要区分SQL语句和宿主语言的语句;
II.在嵌入的SQL语句中可以引用宿主语言的程序变量,但主语言的语句不能引用数据库中的各种变量(属性名、关系名),SQL的集合处理方式与宿主语言的单记录处理方式之间的协调用游标技术实现。
1.6数据库设计
数据库应用系统的开发是一项软件工程,但又有自身的特点,所以称为“数据库工程”。
数据库系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。
此生存期可分为7个阶段:
规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行和维护。
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段:
◆需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
◆概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
◆逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。
◆数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
◆数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
◆数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
设计一个完善的数据库应用系统不可能一蹴而就,它往往是上述六个阶段的不断反复。
1.7关系数据库规范化理论
为了使数据库设计的方法走向完备,人们研究了规范化理论,指导我们设计规范的数据库模式。
按属性间依赖情况来区分,关系规范化的程度为第一范式、第二范式、第三范式、BCNF范式和第四范式等。
函数依赖
数据依赖是现实世界中属性间联系和约束的抽象,是数据的内在性质。
函数依赖(functionaldependency,FD)是一种最重要、最基本的数据依赖。
其具体定义如下:
设有关系模式R(U),X和Y是属性集U的子集,FD是行为X→Y的一个命题,只要r是R的关系,对r中任意两个元组都有“X值相等蕴涵Y值相等”,那么函数依赖X→Y在关系模式R(U)中成立。
FD与侯选键之间的关系:
若存在X->U,并且不存在X的任意真子集X1,使得X1->U成立,那么就称X为关系的一个侯选键。
函数依赖还有几条推理规则:
自反性;增广性;传递性;并规则;分解规则;伪传递规则;
◆模式分解:
目的是消除冗余和操作异常问题
模式分解的三个定义:
● 分解具有“无损连接性”
● 分解要“保持函数依赖”
● 分解既要“保持函数依赖”,又要具有“无损连接性”。
关系模式分解的两个特性实际涉及到两个数据库模式的等价性问题。
包括数据等价和依赖等价两个方面:
数据等价:
两个数据库实例应表示同样的信息内容,用“无损联接”衡量。
依赖等价:
两个数据库模式应有相互逻辑关系的函数依赖集,此时数据的语义是不会出现差错的。
例:
关系模式S-L-C(SNO,SDEPT,SLOC,CNO,G)中,SLOC为学生的住处,并且每个系的学生住在同一个地方。
这里码为(SNO,CNO)。
函数依赖有:
(SNO,CNO)
G
SNO→SDEPT,
(SNO,CNO)
SDEPTSNO→SLOC,
(SNO,CNO)
SLOC
SDEPT→SLOC
用投影分解把关系模式S-L-C分解为3NF范式,且保持函数依赖。
解法:
⑴对R〈U,F〉中的函数依赖集F进行“极小化处理”。
F={SNO,CNO→G,SNO→SDEPT,SDEPT→SLOC}。
⑵R中没有不在F中出现的属性。
⑶不存在X→AÎF,且XA=U,接着做第=4\*GB2⑷步。
⑷对F按具有相同左部的原则分组。
r={SC{SNO,CNO,G},SNO,CNO→G},S-D〈{SNO,SDEPT},SNO→SDEPT〉,
D-L〈{SDEPT,SLOC},SDEPT→SLOC〉}
◆范式
范式(normalform,NF)是衡量关系模式的优劣的标准。
范式有很多种,与数据依赖有着直接的联系。
第一范式1NF
如果关系模式R中,每个分量是不可分的数据项,就称R属于第一范式。
第二范式2NF
若关系模式R属于1NF,且每个非主属性完全函数依赖于候选关键字,则称R属于第二范式。
第三范式3NF
若关系模式R属于1NF,且每个非主属性都不传递依赖于R的候选关键字,则称R属于第三范式。
这里的主属性是指键的属性,而不是任何键的属性就是非主属性
BC范式BCNF
若关系模式R属于1NF,且每个属性都不传递依赖于R的候选关键字,则称R属于BC范式。
由上可知,4种范式之间的关系:
BCNF<3NF<2NF<1NF
1.8数据库保护
⏹ 概述
在数据库系统运行时,DBMS要对数据库进行监控,以保证整个系统的正常运转,保证数据库中的数据安全可靠、正确有效,防止各种错误的产生,这就是对数据库的保护,有时也称为“数据控制”。
这具体包括以下四个方面:
◆ 数据库的恢复
◆ 完整性控制(主键约束,外键约束,属性的值域约束)
◆ 并发控制(琐机制)
◆ 安全性控制(存储控制,审计,视图保护和日志监视)
⏹ 事务
事务在数据库里面是一个十分重要的概念。
数据库系统运行的基本工作单位是事务。
它相当于操作系统中的进程,一个事务由应用程序中的一组操作序列组成。
实际上,事务可以看作是一个原子,是一个不可分割的操作序列。
事务中包括的所有操作要么都执行,要么都不执行。
事务通常以BEGINTRANSACTION语句开始,它主要涉及两个语句。
、
◆ 事务提交语句COMMIT
◆ 事务回滚语句ROLLBACK
事务的特性:
事务具有四个特性:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。
这个四个特性也简称为ACID特性。
1.原子性:
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
2.一致性:
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。
如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 考研 基础 讲义 专题 02 数据库 知识
![提示](https://static.bdocx.com/images/bang_tan.gif)