手指画紧箍咒戒指:关于数据库的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/11 17:56:34
举几个简单易懂的关系模式的例子说明一下什么是第一范式、什么是第二范式,什么是第三范式,书上说得太抽象了,看不懂的说…………!

第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列、每列都不可再分。
第二范式是在满足第一范式的基础上,每一个表都要有一个主键,这个关键列唯一的标识每个实例(行),就是跟据这个列的一个值就可以找到对应的行。
第三范式是在满足第二范式的基础上,表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
这样就可以防止数据冗余了

学号(pk)、考试号、姓名、注册日期、年级、班级、语文、数学、英语...
01 01233 xx 1999-9 2 1 90 80 70
02 02234 yy 1999-9 2 1 70 80 90
全班总成绩: 480
1nf:
加上了最后一行就不满足1NF中“表的每一行只包含一个实例的信息.”
这里的实例为学生。
2NF:在1nf基础上
这里定义学号和考试号为主键(pk),既由学号和考试号共同唯一标识某一行。但是某一学生本次单科成绩不必知道学号,在得知考试号后就能查出来(假设考试号每年都在变)。所以他就不满足2NF.将考试号和成绩另存新表后满足2NF。
3NF:(这个表不好举3NF例)总之就是在2nf基础上消除表之间的冗余项。(外键除外)
PS:这个表不知道能不能正常显示

你可以简单的理解为防止数据冗余,第一,二,三范式他们防止数据冗余的条件不一样,一个比一个严格

多用就是了,这个说不清楚,用多了就可以理解其中的意思了,书读百遍其意自见

这个东西本来就很抽象,会用就行了。