1.第一范式(1NF)原子性
数据表的每一列都要保持它的原子特性,也就是列不能再被分割。
2.第二范式(2NF):主键依赖
2.1候选码:
当一个属性或者属性组确定的情况下,这张表的其余所有属性就能确定下来,这个或这组属性就叫候选码。
一张表可以有多个候选码,一般只选一个候选码作为主键。
2.2依赖:
属性(属性组)x确定的情况下,能完全推出来属性Y则完全依赖X
(1)完全依赖:
完全依赖针对与属性组来说,当一组属性X能推出Y则说Y完全依赖于X。
(2)部分依赖:
一组属性x中的一个或几个属性就能推出Y就说Y部分依赖于X
当一个第一范式的候选码只有一个属性时,就是第二范式,即消除部分依赖。
3.第三范式(3NF)(非主属性间无依赖)
3.1概念:
所有非主属性不依赖于其他的非主属性
主属性:学号
非主属性:姓名,系名,系主任
知道系名可以推出系主任,即系主任依赖系名,系名依赖学号,非主属性对主属性学号存在传递依赖关系,不符合要求。
4.BC范式
主属性不能对候选码存在部分依赖或者传递依赖
仓库名是主属性,管理员和物品名都是候选码
仓库名对于管理员和物品名的部分依赖。
修改为:
仓库(仓库名,管理员)
库存(仓库名、物品数、数量)
5.数据库的ACID特性
数据库事务必须具备ACID特性,ACID分别是
Atomic原子性,Consistency一致性,
Isolation隔离性,Durability持久性。
6.读时模式和写时模式
7.结构化,半结构化,非结构化数据
结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。
半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。
半结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。
属性的顺序是不重要的,不同的半结构化数据的属性的个数是不一定一样的。
常见的半结构数据有XML和JSON。
顾名思义,就是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。