关系型数据库、范式、函数依赖

来源:互联网 发布:安徽预算软件 编辑:程序博客网 时间:2024/04/27 07:18

重拾旧梦——关系数据库

第一节:基本概念

1、关系模型:采用基本的二维表的概念来组织、管理、存储数据。包括的小概念:(1)关系名:也就是我们常用的表名、(2)属性名:表中列名、(3)关系模式(Schema)和关系:关系模式是描述关系的静态结构、有模式名、关系模式所包含的属性(属性名、属性类型、属性(完整约束条件)组成模式定义。当讨论的问题不涉及关系模式的具体的结构的时候、关系模式被简化为:R( A1,A2,A3,A4…An);(4)元组:对应表中一行、每个分量对应表中的列、(5)域(Domain)定义关系的每个属性的取值类型、关系模式要求元组中每一列的类型只能选择基本类型、不能是集合、列表、数组等类型。(6)主码:即主键、唯一标示一个元组的属性或属性组。 、

关系数据库设计理论

函数依赖

官方解释:设R(U)是一个关系模型、X、Y为属性U全集的子集、若对于R(U)中任意一个可能的关系r中、不可能存在两个元组在X上的属性相等、而在Y属性上不等的情况、则称“X函数决定Y”或称“Y函数依赖X函数”记作:X——>Y;

土话解释:关系模型中若有两个属性X、Y、当X的值一样时、不可能出现两个相同的Y的值、则说明X能决定Y、Y依赖于X。

总结:就是一个属性或者一组属性能唯一决定一个、或者一组属性、反之则不成立。被决定的依赖决定他的、当然、这些关系的依赖是人为认定的。

完全依赖与部分函数依赖

完全依赖:X——>Y、并且X的任何真子集都不能实现X(真)——>Y;

部分函数依赖:X——>Y、并且X存在真子集实现X(真)——>Y;

传递函数依赖:R(u) ,X——>Y、(Y不属于X),Y!——>X,Y——>Z则称Z对X传递函数依赖。

平凡非平凡函数依赖:X——>Y(Y属于X)则称平凡函数依赖、否则称非平凡函数依赖。

码、候选码:能作为主码的码称为候选码、作为主码的码就是码(要注意的是、码必须满足最小化原则、即他的任何真子集都不能作为主码来使用)。

属性集闭包:讲白了就是用来寻找候选码的(但是要注意两点、选取的候选码1、能决定其他所有属性、2、必须是最小集)。

第一范式:每一个元素都是最小项、即不不可分割的。这是数据库最基本的要求、不满足第一范式就不是数据库。

第二范式:前提、关系模式是1NF、且每个非主属性完全依赖于主码、即不存在属性对主码的部分依赖。总结:2NF就是在1NF上消除属性对主码的部分依赖。

第三范式:3NF、不存在非主属性对主码的传递函数依赖、则称是第三范式。总结:主属性决定非主属性、被决定的非主属性又决定下一个非主属性、存在传递依赖、非3NF、在2NF的基础上、消除非主属性对主码的传递函数依赖。

改进第三范式:关系模式R是1NF、若每个属性(包括主属性)既不存在部分函数依赖、也不存在传递函数依赖于候选码、则称R是改进的第三范式(Boyce– Codd Normal Form,BCNF)。

attention:改进第三范式的条件是候选码!!每个元组必须有一且只有一个主码、可以有0个或多个候选码!成为主码的码就已经不是候选码了!

 

原创粉丝点击