Oracle_高级功能(1) 数据库设计

1、三范式
规范化关系模式称为范式。
第一范式:在一个关系模型R中,如果R的每一个属性的值域中的值都是不可再分的最小数据单位,
则称R为第一范式(1NF)。
第二范式:如果一个关系模型R属于1NF,并且R的每一个非主属性都完全依赖于它的每一个候选键,
则称R为第二范式(2NF)。
第三范式:如果一个关系模型R属于2NF,并且R的任何一个非主属性都不传递依赖于
它的任何一个候选键,则称R为第三范式(3NF)。

举例:
关系模型:{职员、部门}
1NF:{职员编号、职员名、职位、工资、入职日期、部门名、办公地点}
2NF:{职员编号、职员名、职位、工资、入职日期、部门名}、{部门编号、部门名、部门办公地点}
3NF:{职员编号、职员名、职位、工资、入职日期、部门编号}、{部门编号、部门名、部门办公地点}
关系模型:学生、课程、成绩
1NF:{学号、学生名、课程号、课程名、成绩}
2NF:{学号、学生名}、{课程号、课程名}、{学生名、课程名、成绩}
3NF:{学号、学生名}、{课程号、课程名}、{学号、课程号、成绩}

白话3NF:
1NF:每个列要分到不能再分(最细一层)。
2NF:非主键列必须完全依赖于主键列(把不能完全依赖的列剔除,组成新的表)。
3NF:每个表除外键列以外,不能再有其它表的任何列。

2.实体关系模型
实体(Entity):现实中存在的抽象的事物。
属性(Attribute):实体的特征。
关系(Relationship):实体间(包括:实体和属性间)的相互作用,
分为:1对1,1对多,多对多三种。

举例:
1对1:一个职员/学生只能有一个名字。
1对多:一个职员只能属于一个部门,一个部门可以有多个职员。
多对多:一个学生可以学多门课程,一门课程可以有多个学员来学;
可以将一个多对多转化成2个1对多。

对应到数据库:
实体--》表
属性--》列
1对1关系--》主键
1对多关系--》外键
多对多关系--》关系表+2外键

3.Powerdesigner实操

4.练习
关系模型:{专业、班级、学生、课程、教师}
专业(专业代码、专业名)
班级(专业代码、班级号、班级)
学生(学号、姓名、性别、出生日期)
成绩(学号、课程号、成绩)
课程(课程号、课程名、学时)
讲授(课程号、教师编号)
教师(教师编号、姓名、职称、电话)
设置(专业代码、课程号)
MAJOR

5.作业
浦发银行数据库需求分析