基本概念
数据库术语
模式(schemas): 不同的表结构
实例(instance): 表头下的数据
内模式: 数据存储在硬盘上的文件,数据文件、索引文件
外模式: 不同的表结构,用户看到数据视图。
关系: 就是数据表的名字
关系模式: 数据表结构R(U,D,DOM,F)
关系模式中的参数: R:关系名; U: 该关系的属性名集合; D: 属性组中U中的属性所来自的域; F:属性之间的依赖关系集合
函数依赖
- 1()对1()的关系时,有两个函数依赖()
- 1()对多()时,有一个函数依赖()
- 多对多时,没有函数依赖
平凡函数依赖
右边是否是左边的子集:
- 如果是,则为平凡函数依赖
- 如果不是,则为非平凡函数依赖
部分函数依赖
部分函数依赖:设是关系的两个属性集合,存在,若是的真子集,存在,则称部分函数依赖于。
完全函数依赖:设X,Y是关系R的两个属性集合,是的真子集,存在,但对每一个都有,则称Y完全函数依赖于X。
左边集合中是否有能决定右边的:
- 如果是,则是部分函数依赖
- 如果不是,则是完全函数依赖
传递函数依赖
设是关系中互不相同的属性集合,存在,则称传递函数依赖于。
传递函数依赖,此时就是传递函数依赖。
码
超码:码或码的子集是码的属性集合。唯一标识元组的属性集。(需要集合中所有的属性来确定一个元组)
候选码:能够唯一决定一个元组的属性集叫做候选码,候选码是一个集合,里面包含多个属性。能够唯一确定一行(表里的一行,也叫元组)的属性集合.不含有多余属性的超键。(只需要里面其中一个或多个就能确定元组的属性)
主码:一个关系如果有多个候选码,则其中一个就叫主码
外码:R1中一个属性不是主码,但是该属性在另一个R2中是主码,此时该属性就是外码
主属性:从候选码中挑出来一个都是主属性
非主属性:不在候选码里的属性
范式
第一范式
能写出来的二维表都叫第一范式
- 要满足1NF就是要保证数据在实际使用的时候不用对字段数据进行二次拆分
- 1NF的核心就行数据要有原子性(不可拆分)
第二范式
不存在非主属性对码的部分函数依赖。
第二范式就是要解决表设计中非主属性对主属性的部分函数依赖。
第三范式
不存非主属性对码的传递函数依赖
BC范式
不存在主属性对码的部分函数依赖和传递函数依赖
对于任意一个函数i依赖,左边全为超键,即左边永远能推出整个属性集合。对每个非平凡依赖,或左边为超键,或右边全部由主属性构成 推论:每一个非主属性,既不部分依赖于码,也不传递依赖于码.