<span>软考数据库1</span>
数据库系统
考点归纳
1、数据库模式
三级模式(外模式、概念模式、内模式)、两级独立性(物理独立性、逻辑独立性)
2、ER模型
ER图、实体联系类型重点
、ER图转换为关系模型重点
3、关系运算和元组演算
关系代数的基本运算、元组演算
4、规范化理论
函数依赖、键的概念、求候选键重点
、范式(第一范式、第二范式、第三范式、BC范式)、各种异常
5、SQL语言
SQL语言基础、视图、表的建立、视图的创建、表的查询重点
、表元素的删除、表元素的插入、表元素的修改
6、并发控制
事物的概念、数据的不一致问题、封锁技术
7、其他相关知识
数据库管理系统的特征和功能、数据仓库的概念和特点、分布式数据库的概念和特点
一、四个基础概念
数据(Data)
数据库(Database)
数据库管理系统(DBMS)
数据库系统(DBS)
(1)数据(Data)
是数据库中存储的基本对象,是描述事物的符号记录。
数据的种类:
文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等。
(2)数据库(Database, DB)
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
(3)数据库管理系统(DBMS)
是位于用户与操作系统之间的一层数据管理软件,是一个大型复杂的软件系统。
DBMS的用途
- 科学地组织和存储数据
- 高效地获取和维护数据
(4)数据库系统(Database System,DBS)
是计算机系统中引入数据库后的系统构成。
数据库系统的构成
- 数据库
- 硬件平台
- 软件(应用程序)
- 数据库管理员
二、数据库模型
数据库系统的设计目标是允许用户逻辑地处理数据,而不必涉及这些数据在计算机中是怎样存放的,在数据组织和用户应用之间 提供某种程度的独立性。
一、数据库系统的三级模式
数据库系统可以分为:
- 外模式(子模式、用户模式)
- 模式(概念模式、逻辑模式)
- 内模式(存储模式)
(1)模式(概念模式、逻辑模式)
- 数据库中全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式
(2)外模式(子模式、用户模式)
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式的地位:介于模式与应用之间
- 模式与外模式的关系:一对多
- 外模式通常是模式的子集
- 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。
外模式的用途
- 保证数据库安全性的一个有力措施
- 每个用户只能看见和访问所对应的外模式中的数据
(3)内模式(存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 一个数据库只有一个内模式
二、三个级别
与三级模式相对应,数据库系统可以划分为三个抽象级:
(1)用户级数据库:对应于外模式,是用户看到和使用的数据库,又称用户视图。一个数据库可有多个不同的用户视图。
(2)概念级数据库:对应于概念模式,是所有用户视图的最小并集,一个数据库应用系统只有一个DBA视图。
(3)物理级数据库:对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的,又称为内部视图
三、数据模型
一、关系模型
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
用表格结构表达实体集,用外键(外码)表示实体间联系。
优点:
- 建立在严格的数学概念基础上
- 概念单一,结构简单、清晰,用户易懂易用
- 存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
缺点:由于存取路径透明,查询效率往往不如非关系数据模型。
二、基本概念
1、域
是一组具有相同数据类型的值的集合。
- 整数
- 实数
- {‘男’,‘女’}
- ………………
2、笛卡尔积
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1,d2,…,dn)|di ∈Di,i=1,2,…,n}
- 所有域的所有取值的一个组合
- 不能重复
(3)关系
D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为
R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)
1、关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域
2、属性
关系中不同列可以对应相同的域 为了加以区分,必须对每列起一个名字,称为属性(Attribute) n目关系必有n个属性。
3、候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
4、主码(Primary key)
若一个关系有多个候选码,则选定其中一个为主码。
基本关系具有以下6条性质:
- (1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
- (2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
- (3)列的顺序无所谓,即列的次序可以任意交换。
- (4)任意两个元组不能完全相同。 但多数实际关系数据库产品中,例如Oracle等,如果用户没有定义有关的约束条件,它们都允许关系表中存在两个完全相同的元组。
- (5)行的顺序无所谓,即行的次序可以任意交换。
- (6)分量必须取原子值,即每一个分量都必须是不可分的数据项。
关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为:
- R(U,D,DOM,F)
- R 关系名
- U 组成该关系的属性名集合
- D 属性组U中属性所来自的域
- DOM 属性向域的映象集合
- F 属性间的数据依赖关系集合
通常简记为R(A1,A2,…,An)。 R为关系名, A1,A2…为属性名。
三、规范化理论
设有一个关系模式R(SNAME , CNAME , TNAME , TADDRESS),其属性分别表示学生姓名、课程名、任课教师姓名和任课教师地址。
这个模式存在下列存储异常的问题。
(1)数据冗余
(2)修改异常
(3)插入异常
(4)删除异常
把R分解成下列三个关系模式:R1(SNAME, CNAME)和R2(CNAME, TNAME),R3(TNAME, TADDRESS),则能消除上述的存储异常现象。
模式设计强调“每个联系单独表达”是一条重要的设计原则。
四、范式
(1)第一范式(1NF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么 称R是第一范式的模式,r是规范化的关系。
说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
(2)第二范式(2NF)
若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
简单的说,是表中的属性必须完全依赖于全部主键,而不是部分主键。所以只有一个主键的表如果符合第一范式,那一定是第二范式。
例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。
(3)第三范式(3NF)
如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
例如,存在一个部门信息表,其中每个部门有部门编号
(dept_id)、部门名称、部门简介等信息。
那么在员工信息表中列出部门编号后就不能再将部门名称、部门 简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
(4) BC范式(BCNF)
若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
相对于第三范式,BC范式的要求更加严格。第三范式只是要求R为第二范式且非主属性不传递依赖于R的候选键,而BC范式则是 对R的每个属性都做要求。
在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
每一教师只教一门课。每门课由一名教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确 定了所选课的名称:(S,J)→T,(S,T)→J,T→J
例:设有关系模式R (E,N,M,L,Q),其函数依赖集为F={ E→N, EM→Q,M→L)。则关系模式R达到了( A );该关系模式( D )。
A.1NF B.2NF C.3NF D.BCNF
A.无需进行分解,因为已经达到了3NF
B.无需进行分解,因为已经达到了BCNF
C.尽管不存在部分函数依赖,但还存在传递依赖,所以需要进行分解
D.需要进行分解,因为存在冗余、修改操作的不一致性、插入和删除异常
四、数据操作
一、常用的关系操作
- 查询:选择、投影、连接、除、并、交、差
- 数据更新:插入、删除、修改 查询的表达能力是其中最主要的部分
- 传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积
- 专门的关系运算包括:选择、投影、连接、除4种运算。
(1)并
具有相同的目n(两个关系都有n个属性),R和S的并是由属于R 或属于S的元组组成的集合,记为RUS。
形式定义如下: R ∪ S = { t | t R ∨ t S } 式中t是元组变量(下同)。
显然, RUS = SUR。
(2)差
关系R和S具有相同的目n,R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。
形式定义如下: R -S = { t|t R∧t S }
(3)交
关系R和S具有相同的目n,R和S的交是由既属于R又属于S的元组组成的集合,记为R ∩ S。
形式定义如下: R∩S = { t|t R∧t S } R∩S = R – (R-S) R∩S = S – (S-R)
(4)笛卡儿积
R: n目关系,k1个元组
S: m目关系,k2个元组
R×S
列:(n+m)列元组的集合
- 元组的前n列是关系R的一个元组
- 后m列是关系S的一个元组 行:k1×k2行元组
- R×S = {tr ts |tr ∈ R ∧ts ∈ S }
二、关系运算
关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接。
在关系代数中,由五种基本代数操作经过有限次复合的式子称为关系代数运算表达式。表达式的运算结果仍是一个关系。
(1)投影
投影操作从关系R中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。
记作: πA® = { t[A] | t R } 其中A为R的属性列。
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
(2)选择
选择操作在关系R中选择满足给定条件的所有元组,记作
σF® = {t|t ∈ R∧F(t)= ‘真’}
其中F表示选择条件,是一个逻辑表达式(逻辑运算符+算术表达式)。选择运算是从行的角度进行的运算。
(3) θ连接
θ连接从两个关系的笛卡儿积中选取属性间满足一定条件的元组
记作:
A和B:分别为R和S上度数相等且可比的属性组
θ:比较运算符
- 一般连接
- 等值连接
- 自然连接
1.一般连接
2.等值连接(equijoin)
θ为“=”的连接运算称为等值连接
等值连接的含义
从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组, 即等值连接为:
3.自然连接(Natural join)
自然连接是一种特殊的等值连接
- 两个关系中进行比较的分量必须是相同的属性组
- 在结果中把重复的属性列去掉
自然连接的含义
R和S具有相同的属性组B
(4)外连接(OUTER JOIN)
关系R、S 进行自然连接时,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。
(5)左外连接
关系R、S 进行自然连接时,如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)
(6)右外连接
关系R、S 进行自然连接时,如果只把右边关系S中要舍弃的元组 保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
(7)除法
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),
P是R中满足下列条件的元组在 X 属性列上的投影:
元组在X上分量值x的象集Yx包含S在Y上投影的集合,
记作:
R÷S = {tr [X] | tr ∈ R∧πY (S) ∈ Yx }
Yx:x在R中的象集,x = tr[X]