5设计关系数据库时,要遵守一定的规则。尤其是数据库设计范例。简单介绍一下1NF(第一范式)和2NF(第二范式)
1NF:表中的属性都是原子属性,不能再拆分了。
2NF:在第一范式的基础上,要求所有非主属性完全依赖于主键。
例如,1NF:
不符合第一范式:
指导研究生
第一个研究生,第二个研究生
符合第一范式的关系:
导师专业第一届研究生,第二届研究生。
2NF在举例之前,先明确什么是非主观属性,什么是函数依赖。
在表格中:
主属性:候选代码中包含的所有属性。
非主要属性:候选代码中不包含的属性。
候选代码:一个或一组属性,可以唯一地标识一个记录,不包含多余的属性。(其实就是我们常说的主键。一个是一列的主键,一个是多列组成的联合主键)
函数依赖:表中属性X的值可以唯一确定Y的值,所以说X决定Y,或者Y依赖X(记为X->;y).
传输依赖关系:X-& gt;Y,Y-& gt;z .可以说z转移依赖于x。
多值依赖:一个属性的值可以决定一组属性。(函数依赖是一种特殊的多值依赖,整个依赖属性集只有1,不是倍数)。
(例如,假设有一个人事数据的数据表。根据表中记录的一个人的名字,我们可以查出他的年龄:姓名-& gt;年龄。在没有同名的情况下,名称就是这个表的候选键(代码),因为名称可以唯一确定一条记录的其他属性,比如:name->;(性别,年龄,职位),我们选择姓名作为表的主键(包括主属性)。除了名称以外的属性都是非主属性。有时候一个表可以有多个候选键,你需要选择其中一个作为主键,候选键包含的所有属性都是主属性。)