数据库系统基础知识

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

关系数据库基础:

  • 数据库的结构域模式:

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

  • 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公理系统的有效性指的是:由R出发根据Armstrong公理系统推导出来的每一个函数依赖一定是R所逻辑蕴含的函数依赖。
  • Armstrong公理系统的完备性指的是:对于R所逻辑蕴含的每一函数依赖,必定可以由R出发根据Armstrong公理系统推导出来。

Armstrong公理的推论:

  • 合并规则:若X→YX→Z同时在R上成立,则X→YZR上也成立。(增广律)
  • 分解规则:若X→WR上成立,且属性集Z包含于W,则X→ZR上也成立。(自反律与传递律)
  • 伪传递规则:若X→YR上成立,且WY→Z,则XW→Z(增广律与传递律)

函数依赖的公理系统

  • Armstrong公理系统设关系模式R<U,F>,其中U为属性集,FU上的一组函数依赖,那么有如下推理规则:
  1. A1自反律:若Y XU,则X→YF所蕴含;

  ② 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)

  • Armstrong公理系统的证明

    A1自反律:若Y X U,则X→YF所蕴含

  证明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)

说明:

  • 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
  • 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如"姓名年龄"这个函数依赖只有在不允许有同名人的条件下成立
  • 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖"姓名年龄"成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。

X → Y,并且 Y → X, 则记为 X ←→ Y。若 Y 不函数依赖于 X, 则记为 X \→ Y。在关系模式R(U)中,对于U的子集XY

  • 如果 X → Y,但 Y 不为 X 的子集,则称 X → Y 是非平凡的函数依赖。
  • X → Y,但 Y X 的子集, 则称 X → Y 是平凡的函数依赖。
  • x → y 并且,存在 x 的真子集 x1,使得 x1 → y, y 部分函数依赖于 x
  • x → y 并且,对于 x 的任何一个真子集 x1,都不存在 x1 → y 则称y完全函数依赖于x
  • x → y并且y → z,而y \→ x,则有x → z,称这种函数依赖为传递函数依赖。

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

  • 保持函数依赖
  • 保持函数依赖并无损链接
  • 达到更高级的范式
  • 分解的函数的依赖保持性:
    • 根据定义来判断
    • 与无损链接联结性独立:保持关系模式分解等价的另一个重要的条件是关系模式的函数依赖集在分解以后仍在数据库模式中保持不变。即关系模式R到 的分解应使函数依赖集F被F在这些Ri上的投影集合所蕴含。

    例子:

  • 关系模式的泛化
    • 范式是对关系的不同数据的要求程度。
    • 规范化:通过模式分解讲一个低级范式转化为若干高级范式的过程。又称作概念的纯粹化。
    • 三大范式:
      • 1NF:
        • 定义:关系模式R所有的属性值域都是不可以再分的。即不能以属性集合、序列等作为属性值。

        • 分量是否可分与具体应用有关。如果用到值的具体某一部分,则需要进一步分割。

        • 不良特性:
  1. 插入异常
  2. 删除异常
  3. 更新异常
  4. 数据冗余
  • 2NF:
    • 定义:对于关系模式R,若R1NF,且R中的每一个非主属性完全函数依赖于R的某个候选键。则R2NF。(消除非主属性对键的部分依赖)
    • 如果一个数据库模式中每个关系模式都是第二范式的,则称此数据库模式是第二范式的。
    • 从1NF中消除非主属性对于键的依赖,则获得2NF。
    • 概念补充:
  1. 部分函数依赖: x → y 并且,存在 x 的真子集 x1 ,使得 x1 → y, y 部分依赖于 x
  2. 主属性:包含在候选键中的属性,称为主属性,否则为非主属性。
  • 3NF:
    • 如果关系模式R 2NF。,且 每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。(取消非主属性对于键的传递依赖)
    • 如果一个数据库的每个关系模式都是第三范式的,则该数据库模式属于3NF。
    • 注意:此处肥猪属性不可传递依赖于码。
  • BCNF:第三范式的改进。基于1NF。
    • 定义:如果一个关系模式R属于1NF,且 每个属性不传递依赖于R的候选键。则称该关系模式为BCNF。
    • 最高范式:是基于函数依赖的最高范式,担不是数据库的最高范式。
  • 范式之间的关系:

 

 

 

 

 

  • BCNF模式的结论:( 重点
    • 非主属性对关键字完全函数依赖
    • 主属性对不包含他的关键字完全依赖
    • 没有属性完全依赖于一组非主属性
  • 非BCNF的不良特性:
    • 插入异常
    • 删除异常
    • 更新异常
    • 数据冗余
  • 症由:主属性对键的不良依赖
  • 如何判断范式级别:
    • 求出给定关系的候选键(可能不止一个)(求x+是否为U,如果是则x为候选键,否则不是。)
    • 根据键写出主属性与非主属性(候选键包括的所有属性为主属性,否则为非主属性)
    • 判断是否满足第一范式(看属性的值域是否可以分解)
    • 判断是否满足第二范式(非主属性对于键的部分函数依赖)
    • 判断是否满足第三范式(非主属性对于键的传递函数依赖)
    • 判断是否满足BCNF范式(主属性对于键的传递函数依赖)
  • 分解算法:
    • 若要求分解具有无损连接性,那么分解一定可以达到BCNF
    • 若要求分解保持函数依赖,那么分解一定可以达到3NF,但不一定能达到BCNF
    • 若要求分解既保持函数依赖,又具有无损连接性,那么分解也可以达到3NF,但不一定达到BCNF

    无损连接分解的方法:

     

     

     

     

     

     

     

     

     

    达到3NF且保持函数依赖的分解:

     

     

     

     

     

     

     

     

    达到3NF且同时保持无损链接与函数依赖分解:

  • 模式设计方法的原则:关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,…,Rk}一般应具有下面四项特性:
    • Ri应具有某种范式性质
    • 无损联结
    • 保持函数依赖集
    • 最小性,指ρ中模式个数和模式中的属性总数应该尽量少
  • 多值依赖与第四范式

    定义:一个关系在BCNF中且没有多值依赖,则该关系满足第四范式。

    多值依赖的条件:关系中有两个及以上属性为多值,且他们的值只依赖于一个第三属性。

    (此种状况,可以规范化,将BCNF转换成第四范式既可)

 

 

补充知识:

关系数据库(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)关系数据库的型与值

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

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

 

分布式数据库系统:

  • 分布式数据库的概念:地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。满足分布性、逻辑相关性、场地透明性和场地自洽性的数据库系统统称为完全分布式数据库系统。

    特点:数据的集中控制性、数据独立性、数据冗余可控性、场地自洽性与存取的有效性。

  • 分布式数据库体系结构

  • 分布式数据库系统应用:

 

商业智能:

  • 商业智能基本概念:

    数据预处理、建立数据仓库、数据分析、数据展现

  • 数据仓库:
    • 概念:面向主题的集成的以及相对稳定的随时间变化的数据集合。特征:面向主题、集成、非易失、时变。
    • 结构:
      • 底层:数据仓库服务器
      • 中间层:OLAP服务器
      • 顶层:前端工具
    • 实现方法:

 

 

 

 

 

 

 

 

 

 

 

  • 多维分析海量数据分析器:

    OLAP利用多维概念,提供了切片、切块、下砖、上卷、旋转等多维度分析与跨纬度分析功能。

  • 数据挖掘:

    数据挖掘:从大量、不完全、有噪音的模糊的随机数据中提取隐含潜在的有用的信息与知识。数据挖掘与传统的数据分析的区别是:

    • 数据挖掘的功能:自动预测行为趋势、关联分析、聚类、概念描述、偏差检测
    • 数据挖掘技术:关联分析、分类分析、聚类分析、预测、时间序列分析
    • 数据挖掘流程:确定挖掘对象、准备数据、建立模型、数据挖掘、结果分析、知识应用
    • 数据挖掘应用:生物、金融方面

转载于:https://www.cnblogs.com/BLoodMaster/archive/2010/05/06/1728588.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值