说明:结合多篇博客总结
第一范式(1NF)
详细定义:
- 消除重复的组
- 定义主键
- 必须使用主键唯一标识所有记录。主键是唯一的,并且不允许有任何重复的值。
- 除了主键外的所有其他字段必须直接或者间接地依赖于主键。
- 所有字段必须包含一个值
- 每个字段中的所有值必须是相同的数据类型
- 创建新表时,从原始表中一定重复的组
简单理解:
字段不可再细分
第二范式(2NF)上面这张表"名称"为主键
详细定义:
- 表必须处于1NF中
- 所有非键值必须完全函数依赖于主键。换言之,不允许非键字段完全地和单独的依赖于主键
- 必须删除部分依赖。部分依赖是特殊类型的函数依赖,当字段完全依赖于符合主键的一部分时存在这种依赖
简单理解:
非主键字段必须依赖主键,说明一个表只表达一个事物。
第三范式(3NF)
- 表必须处于2NF中
- 消除传递依赖。传递依赖是其中一个字段由主键间接决定,因为该字段函数依赖于第二个字段,而第二个字段依赖于主键
- 创建新的表以包含任何独立的字段
详细简单理解:
每列都与主键有关系,除了主键外的其他列互相之间不存在依赖关系
名词解释
- 实体:现实世界中客观存在并可以被区别的事物。可以是实物,也可以是虚拟的。
- 属性:属性是实体所具有的某一特性,可以看作表的一列
- 元组:表中的一行
- 分量:元组的属性。元组是不可分割的
- 码:表中可以为唯一确定一个元组的某个属性或属性组。如果这样的码有很多个,那么大家都叫候选码,我们从候选码中挑一个叫主码
- 全码:如果一个码包含了所有的属性,这个码就是全码
- 主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性
- 非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性
- 外码:一个属性(或属性组),它不是码,但是它是别的表的码
数据库事务
原子性:
指的是数据库操作中一系列的操作集合,这些操作要么都发生,要么都不发生。如果在事务过程中发生错误,会回滚到事务开始前的状态。
一致性:
要求事务不能破坏关系数据库的完整性以及业务逻辑上的一致性
隔离性:
对数据进行修改的多个事务是彼此隔离的。这表明事务必须独立,不应该以任何方式影响别的事务。
持久性:
事务完成之后,它对系统的影响是永久的,即使系统出现故障,也会保留此事务操作的结果
优秀博文