数据表的设计规范
1. 通俗地理解三个范式:
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;也就是字段是不可再分解的,比如“姓名”字段(数据项)可以分成“姓”和“名”两项,必要时连接成为一个,这样管理有利于查找。
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。 这个惟一标识指的就是“关键字”,对关键字的操作(例如:排序)就是对记录的重新排列。
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。尽管基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
〖例2〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,
因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。
简单来说,3NF 规定:
* 表内的每一个值都只能被表达一次。
* 表内的每一行都应该被唯一的标识(有唯一键)。
* 表内不应该存储依赖于其他键的非键信息。
2.表中数据项的行列要遵守有一定的顺序。比如数据项横向排列要按时间顺序:1991年、1992年、…,纵向要按关键字排序,比如“编号”。而且要在表的标题上注明这个顺序:
表3.2.1.1 按学号升序排序的学生成绩表
专业名称 | 班级 | 学号 | 成绩 |
电子商务管理 | 电商0402 | 2004618226 | 70 |
电子商务管理 | 电商0402 | 2004618231 | 80 |
电子商务管理 | 电商0402 | 2004618248 | 60 |