数据模型三要素:数据结构、数据操作以及约束条件
关系数据库基础:
关系数据模型三要素:关系数据结构、关系数据操作以及关系约束条件
事务的四个特性:原子性、一致性、隔离性、持久性。
在SQL语句中事务定义的语句有三条:BEGIN TRANSACTION,COMMIT,ROLLBACK
关系数据库的设计:
数据库设计的范式:
关系模式分解:将一个关系模式分解为多个子关系模式(可以解决数据上的冗余与操作上的异常)。方便插入、更新、删除以及查询。要求:保持无损链接以及函数依赖
关系模式分解的问题:
模式分解的衡量标准:
(t2的行号小于t1的行号。)上述操作一直到表格不能修改为止。
举例说明:
概念补充:
最小函数依赖集:
① F中的任何一个函数依赖的右部仅含有一个属性;
② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;
③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
函数依赖闭包:在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。U, XF+ ={ A|X→A能由FÍ 定义5.13 设F为属性集U上的一组函数依赖,X 根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F 的闭包在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。
Armstrong 公理:从已知的一些函数依赖,可以推导出另外一些函数依赖的推理规则。设U 是关系模式R 的属性集,F 是R 上成立的只涉及U 中属性的函数依赖集。
函数依赖的推理规则有以下三条:
Armstrong公理系统的有效性和完备性(充要性)
Armstrong公理的推论:
函数依赖的公理系统
② A2增广律:若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含;
③ A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。
根据上面三条推理规则,又可推出下面三条推理规则:
④ 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含;
⑤ 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含;
⑥ 分解规则:若X→Y,ZY,则X→Z为F所蕴含。
引理:X→A1A2…Ak成立的充分必要条件是X→Ai成立(i=1,2...k)。
① A1自反律:若Y X U,则X→Y为F所蕴含
证明1
设Y X U。
对R<U,F>的任一关系r中的任意两个元组t,s:
若t[X]=s[X],由于Y X,则有t[Y]=s[Y],所以X→Y成立,自反律得证。
② A2增广律:若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含
证明2
设X→Y为F所蕴含,且Z U。
对R<U,F>的任一关系r中的任意两个元组t,s:
若t[XZ]=s[XZ],由于X XZ,Z XZ,根据自反律,则有t[X]=s[X]和t[Z]=s[Z];
由于X→Y,于是t[Y]=s[Y],所以t[YZ]=s[YZ];所以XZ→YZ成立,增广律得证。
③ A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含
证明3
设X→Y及Y→Z为F所蕴含。
对R<U,F>的任一关系r中的任意两个元组t,s:
若t[X]=s[X],由于X→Y,有t[Y]=s[Y];
再由于Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含,传递律得证。
④ 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含
证明4
因X→Y (已知)
故X→XY (增广律),XX→XY即X→XY
因X→Z (已知)
故XY→YZ (增广律)
因X→XY,XY→YZ (从上面得知)
故X→YZ (传递律)
⑤ 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含
证明5
因X→Y (已知)
故WX→WY (增广律)
因WY→Z (已知)
故XW→Z (传递律)
⑥ 分解规则:若X→Y,Z Y,则X→Z为F所蕴含
证明6
因Z Y (已知)
故Y→Z (自反律)
因X→Y (已知)
故X→Z (传递律)
函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 "X函数确定Y" 或 "Y函数依赖于X",记作X→Y。 X称为这个函数依赖的决定属性集(Determinant)。Y=f(x)
说明:
若 X → Y,并且 Y → X, 则记为 X ←→ Y。若 Y 不函数依赖于 X, 则记为 X -\→ Y。在关系模式R(U)中,对于U的子集X和Y:
关系模式:由于关系实质上是一张二维表,表的每一行称为一个元组,每一列称为一个属性,一个元组就是该关系所涉及的属性集的笛卡儿积的一个元素。关系是元组的集合,因此关系模式要指出元组集合的结构。一个关系通常由赋予它的元组语义来确定。元组实际上是一个n目谓词[用来描述或判定客体性质、特征或者客体之间关系的词项](n是属性集中属性的个数),凡是使该n目谓词为真的笛卡儿积中的元素的全体就构成了该关系模式的关系。定义:对关系的结构描述称为关系模式,它可以形式化的表示为:R(U,D,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,F为属性间的数据依赖关系集合。关系模式相当于记录类型,是属性的有序集合。
例子:
无损连接分解的方法:
达到3NF且保持函数依赖的分解:
达到3NF且同时保持无损链接与函数依赖分解:
定义:一个关系在BCNF中且没有多值依赖,则该关系满足第四范式。
多值依赖的条件:关系中有两个及以上属性为多值,且他们的值只依赖于一个第三属性。
(此种状况,可以规范化,将BCNF转换成第四范式既可)
补充知识:
关系数据库(RDB):
1.关系
1)域(Domain)
域是一组具有相同数据类型的值的集合。
例:整数,实数,介于某个取值范围的整数,长度指定长度的字符串集合,{'男','女'},介于某个取值范围的日期等
2)笛卡尔积(Cartesian Product)
给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di Di,i=1,2,…,n}
所有域的所有取值的一个组合,不能重复
◇元组(Tuple)
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
◇分量(Component)
笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。
◇基数(Cardinal number)
若Di(i=1,2,…,n)为有限集,其基数为Mi(i=1,2,…,n)
◇笛卡尔积的表示方法
笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
3)关系(Relation)
◇关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为 : R(D1,D2,…,Dn) (R:关系名;n:关系的目或度(Degree))
注意:
关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。
由于笛卡尔积不满足交换律,即 (d1,d2,…,dn )≠(d2,d1,…,dn )
但关系满足交换律,即 (d1,d2 ,…,di ,dj ,…,dn)=(d1,d2 ,…,dj,di ,…,dn)
解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性
◇元组
关系中的每个元素是关系中的元组,通常用t表示。
◇单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)。
当n=2时,称该关系为二元关系(Binary relation)。
◇关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。
◇属性
关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。
n目关系必有n个属性
◇码
候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
在最简单的情况下,候选码只包含一个属性。称为全码(All-key)(肯定有问题)。
在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。
主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key),
关系中,候选码的属性称为主属性(Prime attribute),不包含在任何候选码中的属性称为非码属性(Non-key attribute)。
◇三类关系
基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示
查询表:查询结果对应的表
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
2.关系数据库
1)关系数据库
在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。
2)关系数据库的型与值
关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。
分布式数据库系统:
特点:数据的集中控制性、数据独立性、数据冗余可控性、场地自洽性与存取的有效性。
商业智能:
数据预处理、建立数据仓库、数据分析、数据展现
OLAP利用多维概念,提供了切片、切块、下砖、上卷、旋转等多维度分析与跨纬度分析功能。
数据挖掘:从大量、不完全、有噪音的模糊的随机数据中提取隐含潜在的有用的信息与知识。数据挖掘与传统的数据分析的区别是: