Skip to main content

基本概念

数据库术语

模式(schemas): 不同的表结构

实例(instance): 表头下的数据

内模式: 数据存储在硬盘上的文件,数据文件、索引文件

外模式: 不同的表结构,用户看到数据视图。

关系: 就是数据表的名字

关系模式: 数据表结构R(U,D,DOM,F)

关系模式中的参数: R:关系名; U: 该关系的属性名集合; D: 属性组中U中的属性所来自的域; F:属性之间的依赖关系集合

函数依赖

  1. 1(XX)对1(YY)的关系时,有两个函数依赖(XY,YXX\rarr Y, Y\rarr X)
  2. 1(XX)对多(YY)时,有一个函数依赖(YXY\rarr X)
  3. 多对多时,没有函数依赖

平凡函数依赖

右边是否是左边的子集:

  • 如果是,则为平凡函数依赖(ABB)(AB\rarr B)
  • 如果不是,则为非平凡函数依赖(AB)(A\rarr B)

部分函数依赖

tip

部分函数依赖:设X,YX,Y是关系RR的两个属性集合,存在XYX\rarr Y,若XX'XX的真子集,存在XYX'\rarr Y,则称YY部分函数依赖于XX

完全函数依赖:设X,Y是关系R的两个属性集合,XX'XX的真子集,存在XYX\rarr Y,但对每一个XX'都有X↛YX'\not\rarr Y,则称Y完全函数依赖于X。

左边集合中是否有能决定右边的:

  • 如果是,则是部分函数依赖
  • 如果不是,则是完全函数依赖

传递函数依赖

X,Y,ZX, Y, Z是关系RR中互不相同的属性集合,存在XY(Y↛X),YZX\rarr Y(Y \not\rarr X), Y\rarr Z,则称ZZ传递函数依赖于XX

传递函数依赖AB,BCA\rarr B, B\rarr C,此时ACA\rarr C就是传递函数依赖。

超码:码或码的子集是码的属性集合。唯一标识元组的属性集。(需要集合中所有的属性来确定一个元组)

候选码:能够唯一决定一个元组的属性集叫做候选码,候选码是一个集合,里面包含多个属性。能够唯一确定一行(表里的一行,也叫元组)的属性集合.不含有多余属性的超键。(只需要里面其中一个或多个就能确定元组的属性)

主码:一个关系如果有多个候选码,则其中一个就叫主码

外码:R1中一个属性不是主码,但是该属性在另一个R2中是主码,此时该属性就是外码

主属性:从候选码中挑出来一个都是主属性

非主属性:不在候选码里的属性

范式

第一范式

tip

能写出来的二维表都叫第一范式

  • 要满足1NF就是要保证数据在实际使用的时候不用对字段数据进行二次拆分
  • 1NF的核心就行数据要有原子性(不可拆分)

第二范式

tip

不存在非主属性对码的部分函数依赖。

第二范式就是要解决表设计中非主属性对主属性的部分函数依赖。

第三范式

tip

不存非主属性对码的传递函数依赖

BC范式

tip

不存在主属性对码的部分函数依赖和传递函数依赖

对于任意一个函数i依赖,左边全为超键,即左边永远能推出整个属性集合。对每个非平凡依赖,或左边为超键,或右边全部由主属性构成 推论:每一个非主属性,既不部分依赖于码,也不传递依赖于码.