关于Oracle数据库的学习记录:
五十二、数据库设计范式(第三范式)
“数据表之中不存在非关键字段对任意候选关键字段的传递函数依赖”
雇员编号 姓名 职位 部门名称 位置 工资
1 张三 经理 技术部 天津 8000
但是,以上的设计里面存在有一个传递的函数依赖,通过张三可以知道他的部门名称,然后通过部门名称可以找到部门位置
范例:要求设计数据表,可以描述出一个学校有多个学生
**第一范式如果要使用的话,一定会出现传递依赖关系
**第二范式可以描述,但是也会存在有:一个学生在多个学校
**使用第三范式设计(一对多关系)
CREATE TABLE school(
schid NUMBER,
name VARCHAR2(50),
address VARCHAR2(200),
tel VARCHAR2(50),
CONSTRAINT pk_schid PRIMARY KEY(schid)
);
CREATE TABLE student(
sid NUMBER,
sname VARCHAR2(50),
schid NUMBER REFERENCES school(schid)
);
只需要参考dept-emp关系即可
总结:如果要想熟练地掌握数据库的分析与设计能力,是需要积累大量的项目开发经验,你必须知道程序可以做哪些事情,数据库又可以做哪些事情
在实际的开发之中,第三范式一定是最优先考虑的