数据库-更新操作、更新异常与规范化

更新操作

更新操作:向关系中插入数据、修改关系中已有的数据、从关系中删除数据。
数据检索操作通常也称为读操作,用于从关系中读取数据。更新操作也叫写操作,用于更新关系中的数据内容。

三种更新操作

插入操作:用于向关系中输入新数据
删除操作:用于从关系中移除数据
修改操作:用于改变关系中已有的数据

更新异常

在包含冗余(不必要的重复)数据的关系中,三种更新操作均可能引起更新异常。因此,共有三种类型的更新异常:插入异常、删除异常和修改异常。

插入异常:是指当用户想要插入某一真实世界中实体的数据时,还必须输入另一个真实世界中的实体的数据。
删除异常:是指当用户想要删除某一真实世界中实体的数据时,还必须删除另一个真实世界中实体的数据。
修改异常:是指当用户要修改某一值时,同样的修改操作需要重复多次。

函数依赖

函数依赖:是指关系的每条记录中一列(或几列)的值唯一决定该条记录的另一列的值。

平凡函数依赖

是指一个或多个属性确定它自己或它的子集。
注:这种依赖在规范化中不会被用到。

增广函数依赖

是指某个依赖式为真,则依赖式左侧,或者两侧同时增加某语句形成的一种依赖关系。
注:这种依赖在规范化中不会被用到。

等价函数依赖

若A->B,且B->A,那么这两个函数式被称之为等价函数依赖
注:这种依赖关系只需要保留一组即可,它不属于规范化的范畴。

部分函数依赖

是指关系的一列函数依赖于组合主码的一部分。这种依赖只有组合主码才存在。
注:这种依赖属于规范化范畴。
例如:
有一个表的主码是A1,B1。
那么函数依赖:
A1->A2,A3
B1->B8,B9
就是部分函数依赖。

完整函数依赖

是指复合主码函数确定关系中的其他列,并且复合主码的任意部分不能单独确定其他列。
注:这种依赖属于规范化范畴。

传递函数依赖

是指非码列函数确定关系中的其他非码列。
注:这种依赖属于规范化范畴。
只有后三种和规范化设计有关

规范化

第一范式(1NF)

1NF:一个表满足1NF,如果表的每一行都是唯一的并且任何行都没有包含多个值的列。
每个关系表都是满足1NF的,因此规范化到1NF不是关系数据库规范化过程的一部分。规范化到1NF只发生在将一个非关系表转换成一个关系表的情况。

第二范式(2NF)

2NF:如果一个表满足1NF且不包含部分函数依赖,则这个表满足2NF。
对于一个关系表,规范化过程是从检查它是否满足2NF开始的。
一个表的主码是单列的,不存在部分函数依赖,因此满足2NF。

第三范式(3NF)

3NF:如果一个表满足2NF且不包含传递依赖函数,则这个表满足3NF。

你可能感兴趣的:(数据库-更新操作、更新异常与规范化)