范式3NF简解

范式3NF简解
(作者:张承睿,撰写时间:2019年4月3日)
关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯克范式(BCNF)、第四范式(4NF)和第五范式(5NF)

界面层(显示/操作数据)
逻辑层(处理数据,分布式)
数据层(传输数据)
数据库存储(数据库的逻辑设计和物理设计)

设计一个软件的过程:需求分析、原型设计、数据库设计、编码(界面层、逻辑层、数据层、数据库编码)、测试、实施。

N01:架构师(技术总监):需求分析、原型设计、数据库的逻辑设计
N02:项目组长:数据库的逻辑设计 (3个以上完整项目的经验)
N03:高级软件工程师(干活,悲催的码农)

计算机的单元时间是 千分之一毫秒
完成替换 3 5
如果是传统的excel:无法保证数据的完整性

数据库设计(5NF+1)
三范式原则:3NF——软件系统工程设计的核心!!!
3NF设计原则”和“表关系”
1、第一范式(1NF)字段(列、属性):字段原子性。最小的实际意义的文字单元
指数据库表的每一列都是不可分割的基本数据项,属性不可分割,不可二义!
2、第二范式(2NF)表:行的原子性,元组;表,实体的原子性。
数据库表中的每个实例或行必须可以被唯一地区分。非主属性非部分依赖于主关键字。
3、第三范式(3NF):非键值属性在整个数据库中是唯一的。
消除属性数据冗余。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在就不能再将部门名称、部门简介等与部门有关的信息再加入到其他表中。

学生学籍:
A01院系表:院系ID(主键)、院系名称、院系地址、院系编码
A02专业表:专业ID(主键)、院系ID(外键)、专业名称、国家专业编码、
专业简称 学制、培养层次、年级
A03班级表:班级ID、专业ID(外键)、班级名称、学号前缀
1 计算机16-1
2 网络16-1
A04学生表:学生ID、班级ID、学号、姓名、性别、民族、家庭地址、身份号码

“表关系”:数据库中表的关系靠什么建立关系——(外键!)
(1)一:一的关系
例如:一个人对应一个唯一的身份证号,即为一对一的关系。
(2)一:N关系
例如:一个班级对应多名学生,即为一对多关系
(3)多对多关系(在表物理设计中是不存在,多对多其实以n个一对多的组合,即通过一个“关系表”来联系“n个实体表”)
例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系即是多对多关系。
设计数据库 99%遵循范式 允许 “反范式”!!!

数据库设计总结:
每个表必须有一个主键,主键最好是没有任何意义的整型自增性字段;每个表的包含两类字段:键值字段(1个主键,n个外键);外键和普通字段必须是来描述实体本身不可或缺的属性,该属性的组合(元组)构成对该实体数据的唯一性针对性描述。

来源:weixin_44588331

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月6日
下一篇 2019年3月6日

相关推荐