数据模型三要素:数据结构、数据操作以及约束条件

关系数据库基础:

  • 数据库的结构域模式:

    关系数据模型三要素:关系数据结构、关系数据操作以及关系约束条件

  • E-R模型:主要概念:实体、联系、属性。

  • 数据规范化:关系数据模型中个属性之间的关系及其对关系模式性能的影响。关系数据库设计理论的核心是函数依赖,衡量的标准是关系规范化的程度及其分解的无损连接和保持函数依赖性。
    • 数据依赖:数据间的相互关系,是数据的内在性质
    • 函数依赖:一种最重要的数据依赖。包括:函数依赖、非平凡函数依赖、平凡函数依赖、部分函数依赖、传递依赖、码、主属性、非主属性、外码、值依赖定义、函数依赖的公理系统。(范式约束条件)
  • 事务管理:事务是一个操作序列。这些操作是"要么都做,要么都不做"。事务是数据库环境中不可分割的逻辑工作单位。

    事务的四个特性:原子性、一致性、隔离性、持久性。

    在SQL语句中事务定义的语句有三条:BEGIN TRANSACTION,COMMIT,ROLLBACK

  • 并发控制:多用户操作的系统中,用户可能同一时刻对统一数据进行操作。DBMS的的并发控制子系统负责协调并发事务的执行,保证数据库的完整。
  • 数据库的备份与恢复:

关系数据库的设计:

  • 数据库设计的特点:
    • 从数据结构开始,并以此为核心
    • 静态结构设计与动态行为设计相分离
    • 试探性
    • 反复性
    • 多步性
  • 数据库设计的方法:
    • 直观设计法
    • 规范设计法
    • 计算机辅助设计法
    • 自动化设计法
    • 常用的为基于3NF的设计方法、基于E-R的设计方法、基于视图概念、面向对象的关系数据库设计、计算机辅助数据库设计、敏捷数据库设计
  • 数据库设计的基本步骤:需求分析、逻辑结构设计、物理结构设计、应用程序设计、运行维护

    • 需求分析

       

    • 概念结构设计
    • 逻辑结构设计
    • 物理结构设计
    • 数据库应用程序设计
    • 数据库运行和维护

数据库设计的范式:

关系模式分解:将一个关系模式分解为多个子关系模式(可以解决数据上的冗余与操作上的异常)。方便插入、更新、删除以及查询。要求:保持无损链接以及函数依赖

关系模式分解的问题

  • 无损链接:

  • 有损链接:

模式分解的衡量标准:

  • 无损性:
    • 定义:关系模式R,分解成p={R1, R2, … , Rk }。F是R上的一个函数依赖集。如果对R中满足F的每一个关系r都有:。则称次分解P是相对于F是无损链接分解。
    • 附注:表示关系r在模式Rk属性上的投影。
    • 优点:在分解后的模式关系中可以存在一些悬浮元素,解决了插入修改等问题。
    • 缺点是查询的时候需要做链接运算,工作量大。
    • 如果一个模式分解不是无损链接,那么不可以通过自然连接运算恢复。因此要求分解时利用属性间的函数依赖性质。
    • 算法:(判别一个分解的无损连接性)
      • 输入:关系模式R上成立的函数依赖集:F。R的分解
      • 输出:判断P相对于F的无损链接。
        • 建立一个k行n列的表格。每列对应一个属性Ai,每行对应一个模式Ri。如果Aj在Rj中,那么在表格的ij处,那么在ij处题上aj,否则填bij。

 

 

 

 

  • 反复检查F的每一个依赖集,并修改表格中的数据。方法如下:
    对F中每一个函数依赖x->y,如果表格中有两行t1,t2。在x上相等,在y上不等。那么修改y,使得在y上两行也相等。
    • 若t1[Ai],t2[Ai]中有一个等于aj,则另一个也修改为aj。
    • 若没有aj,则取t2[Ai]= t1[Ai]=bij。

      (t2的行号小于t1的行号。)上述操作一直到表格不能修改为止。

  • 检查表格,如果存在a1,a2,a3……an的一行,则为无损分解。否则为有损分解。

举例说明:

 

 

 

 

 

 

 

 

 

概念补充:

最小函数依赖集:

  • 定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。

  ① F中的任何一个函数依赖的右部仅含有一个属性;

  ② F中不存在这样一个函数依赖X→A,使得FF-{X→A}等价;

  ③ F中不存在这样一个函数依赖X→AX有真子集Z使得F-{X→A}{Z→A}F等价。

  • 求最小函数依赖集分三步:
    • F中的所有依赖右边化为单一元素 此题fd={abd->e,ab->g,b->f,c->j,cj->i,g->h};已经满足
    • 去掉F中的所有依赖左边的冗余属性.作法是属性中去掉其中的一个,看看是否依然可以推此题:abd->e,去掉a,(bd)+不含e,故不能去掉,同理b,d都不是冗余属性ab->g,也没有cj->i,因为c+={c,j,i}其中包含i所以j是冗余的.cj->i将成为c->iF={abd->e,ab->g,b->f,c->j,c->i,g->h};
    • 去掉F中所有冗余依赖关系.做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,YX+,则表明x->是多余的.需要去掉.此题如果F去掉abd->e,F将等于{ab->g,b->f,c->j,c->i,g->h},(abd)+={a,d,b,f,g,h},其中不包含e.所有不是多余的.同理(ab)+={a,b,f}也不包含g,故不是多余的.b+={b}不多余,c+={c,i}不多余c->i,g->h多不能去掉.所以所求最小函数依赖集为 F={abd->e,ab->g,b->f,c->j,c->i,g->h};

函数依赖闭包:在关系模式R<UF>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+U XF+ ={ A|X→A能由FÍ  定义5.13 F为属性集U上的一组函数依赖,X 根据Armstrong公理导出}XF+称为属性集X关于函数依赖集F 的闭包在关系模式R<UF>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+

Armstrong 公理:从已知的一些函数依赖,可以推导出另外一些函数依赖的推理规则。设U 是关系模式R 的属性集,F R 上成立的只涉及U 中属性的函数依赖集。

函数依赖的推理规则有以下三条:

  • 自反律:若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y R 上成立。(此处X→Y是平凡函数依赖)
  • 增广律:若X→Y R 上成立,且属性集Z 包含于属性集U,则XZ→YZ R 上成立。
  • 传递律:若X→Y Y→ZR 上成立,则X →Z R 上成立。

其他的所有函数依赖的推理规则可以使用这三条规则推导出。

Armstrong公理系统的有效性和完备性(充要性)

Armstrong公理的推论:

函数依赖的公理系统

  ② A2增广律:若X→YF所蕴含,且Z U,则XZ→YZF所蕴含;

  ③ A3传递律:若X→YY→ZF所蕴含,则X→ZF所蕴含。

  根据上面三条推理规则,又可推出下面三条推理规则:

  ④ 合并规则:若X→YX→Z,则X→YZF所蕴含;

  ⑤ 伪传递规则:若X→YWY→Z,则XW→ZF所蕴含;

  ⑥ 分解规则:若X→YZY,则X→ZF所蕴含。

  引理:X→A1A2…Ak成立的充分必要条件是X→Ai成立(i=1,2...k)

  证明1

  设Y X U

  对R<U,F>的任一关系r中的任意两个元组t,s

  若t[X]=s[X],由于Y X,则有t[Y]=s[Y],所以X→Y成立,自反律得证。

  ② A2增广律:若X→YF所蕴含,且Z U,则XZ→YZF所蕴含

  证明2

  设X→YF所蕴含,且Z U

  对R<U,F>的任一关系r中的任意两个元组t,s

  若t[XZ]=s[XZ],由于X XZZ XZ,根据自反律,则有t[X]=s[X]t[Z]=s[Z]

  由于X→Y,于是t[Y]=s[Y],所以t[YZ]=s[YZ];所以XZ→YZ成立,增广律得证。

  ③ A3传递律:若X→YY→ZF所蕴含,则X→ZF所蕴含

  证明3

  设X→YY→ZF所蕴含。

  对R<U,F>的任一关系r中的任意两个元组t,s

  若t[X]=s[X],由于X→Y,有t[Y]=s[Y]

  再由于Y→Z,有t[Z]=s[Z],所以X→ZF所蕴含,传递律得证。

  ④ 合并规则:若X→YX→Z,则X→YZF所蕴含

  证明4

  因X→Y (已知)

  故X→XY (增广律),XX→XYX→XY

  因X→Z (已知)

  故XY→YZ (增广律)

  因X→XYXY→YZ (从上面得知)

  故X→YZ (传递律)

  ⑤ 伪传递规则:若X→YWY→Z,则XW→ZF所蕴含

  证明5

  因X→Y (已知)

  故WX→WY (增广律)

  因WY→Z (已知)

  故XW→Z (传递律)

  ⑥ 分解规则:若X→YZ Y,则X→ZF所蕴含

  证明6

  因Z Y (已知)

  故Y→Z (自反律)

  因X→Y (已知)

  故X→Z (传递律)

函数依赖:R(U)是一个属性集U上的关系模式,XYU子集。若对于R(U)的任意一个可能的关系rr中不可能存在两个元组在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的子集XY

关系模式:由于关系实质上是一张二维表,表的每一行称为一个元组每一列称为一个属性一个元组就是该关系所涉及的属性集的笛卡儿积的一个元素关系是元组的集合,因此关系模式要指出元组集合的结构。一个关系通常由赋予它的元组语义来确定。元组实际上是一个n谓词[用来描述或判定客体性质、特征或者客体之间关系的词项]n是属性集中属性的个数),凡是使该n目谓词为真的笛卡儿积中的元素的全体就构成了该关系模式的关系。定义:对关系的结构描述称为关系模式,它可以形式化的表示为:R(U,D,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域F为属性间的数据依赖关系集合。关系模式相当于记录类型,是属性的有序集合。

 

 

 

 

 

 

 

补充知识:

关系数据库(RDB):

1.关系

  1)域(Domain

  域是一组具有相同数据类型的值的集合。

  例:整数,实数,介于某个取值范围的整数,长度指定长度的字符串集合,{''''},介于某个取值范围的日期等

  2)笛卡尔积(Cartesian Product

给定一组域D1D2Dn,这些域中可以有相同的。D1D2Dn的笛卡尔积为:

D1×D2×…×Dn={(d1d2dn)|di Dii12n

  所有域的所有取值的一个组合,不能重复

  ◇元组(Tuple

  笛卡尔积中每一个元素(d1d2dn)叫作一个n元组(n-tuple)或简称元组。

  ◇分量(Component

  笛卡尔积元素(d1d2dn)中的每一个值di叫作一个分量。

  ◇基数(Cardinal number

  若Dii12n)为有限集,其基数为Mii12n

  ◇笛卡尔积的表示方法

  笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。

  3)关系(Relation

  ◇关系

  D1×D2×…×Dn的子集叫作在域D1D2Dn上的关系,表示为 : RD1D2Dn (R:关系名;n:关系的目或度(Degree)

  注意:

  关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。

  由于笛卡尔积不满足交换律,即 (d1d2dn )≠(d2d1dn )

  但关系满足交换律,即 (d1d2 di dj dn=d1d2 djdi 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)关系数据库的型与值

  关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式。

  关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。

 

分布式数据库系统:

 

商业智能:

 

 

 

 

 

 

 

 

 

 

 

posted on 2010-05-06 09:44  BLoodMaster  阅读(4976)  评论(0编辑  收藏  举报