数据库建表三大范式
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、 删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不 需要的冗余信息。
第一范式(1NF): (列不可再分,且必须有主键)
数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括...
数据库的三级范式如下:
1NF.字段不可再分,满足原子性
2NF.满足第二范式的前提是满足第一个范式,一个表只能说明一个事务,非主键依赖主键属性
3NF.满足第三范式的同时必须要满足第二范式,每列都与主键有直接关系,不存在传递依赖,任何非主属性不依赖于其他非主属性
事务的四个基本要素:
ACID:原子性,一致性,隔离性,持久性
原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,如果在执行过程中发生错误,会被...
◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。◆ 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键...
首先,我们先要了解什么是数据库,数据库简单来说就是数据集合。它有以下几个特点:以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。我们可以视为电子化的文件柜——存储电子文件的处所。用户可以对文件的数据进行新增,查询,更新,删除等操作。其次,什么是范式,简单来说,范式就是指某种约束。百度百科的解释:范式来自英文Normol form(规范的表单),简称NF。想要设计一个好的...
推荐两个博客:
数据库的第一范式,第二范式,第三范式,BCNF范式理解
数据库之六大范式详解
细说数据库三范式
2.1 第一范式(1NF)无重复的列
第一范式(1NF)中数据库表的每一列都是不可分割的基本数据项 同一列中不能有多个值 即实体中的某个属性不能有多个值或者不能有重复的属性。 简而言之,第一范式就是无重复的列。
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
2.2 第二范式(2NF)属性完全依赖于主键[消...
即:X’是(A1,A2,A3,B)的集合,它的真子集X(A1,A2,A3),若存在X’→Y,X→Y,则称Y部分函数依赖于X’。通俗地讲:Y依赖于X‘,也依赖于“部分的X‘”。部分函数依赖与完全函数依赖的区别是:完全函数依赖的意思是,集合X不能再拆分了,再拆分,便不能决定Y了;集合X也不能再添加元素了,再添加元素,便变成了部分函数依赖。集合元素不能增,不能减,叫完全函数依赖。
传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→...
1NF:数据库表的每一列都是不可分割的基本数据项。分析:没有多个表示同一属性的列;某一列的值不能为集合。几不能将一对多关系表示为一个表的多个属性或者一个属性的多个值。解决:创建新表,将“1”作为新表的外键。举例:personidnamehobby1hobby1bobby31markplaying footballrunningswimming或personidnamehobbies1markplaying football,running,awimming2NF:符合1NF;存在主键,并且不存在部分函数依赖(不存在依赖主键的一部分...
范式的目标
应用数据库范式可以带来许多好处,但是最重要的好处归结为三点:
1.减少数据冗余(这是最主要的好处,其他好处都是由此而附带的)
2.消除异常(插入异常,更新异常,删除异常)
3.让数据组织的更加和谐…
DEMO
让我们先从一个未经范式化的表看起,表如下:先对表做一个简单说明,employeeId是员工id,departmentName是部门名称,job代表岗位,jobDescription是岗位说明,skill是员工技能...