关系数据库
域: 一组具有相同数据类型的的集合 ,例如,整数、实数、 关系: D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系 属性: 每列起一个名字,每列就是一个属性 候选码:关系中的某一属性 组 的能唯一地标识一个元组,该属性 组 为候选码 ,K是RU,F中的属
域 : 一组具有相同数据类型的值的集合 ,例如,整数、实数、
关系: D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系
属性: 每列起一个名字,每列就是一个属性
候选码:关系中的某一属性 组 的值能唯一地标识一个元组,该属性 组 为候选码 ,K是R中的属性或属性组合 如果K确定U,则K为R的候选码
主码:若一个关系有多个候选码,则选定其中一个为主码
范式:规范化的关系
关系模式简记为: R(U)或R(A1,A2,...,An) ,R关系名,U属性名集合,A1,A2,...An为属性名
元组:元组表中的每行(即数据库中的每条记录)就是一个元组
分量:笛卡尔积元素(d1,d2,...d3)中每一个值di叫做一个分量
第一范式:每一个分量是不可分的数据项
完全函数依赖:X Y是U的子集,对于如果X->Y(X确定Y),并且对于X的任何一个真子集X'都有 X‘不->Y,则称Y对X完全函数依赖
主属性:包含在候选码中的一个属性
超码:如果K->R,则K是R的超码
第一范式(1NF)无重复的列
第二范式(2NF)属性完全依赖于主键。
要求数据库表中的每个实例或行必须可以被唯一地区分。
第三范式(3NF)属性不依赖于其它非主属性。
要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
第三范式(3NF)实例分析
接着看上面的学生表Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话),关键字为单一关键字"学号",因为存在如下决定关系:
(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话)
但是还存在下面的决定关系
(学号) → (所在系办)→(系办地点, 系办电话)
即存在非关键字段"系办地点"、"系办电话"对关键字段"学号"的传递函数依赖。
把表分为如下两个表就可以满足第三范式了:
学生:(学号, 姓名, 年龄, 性别,系别);
系别:(系别, 系办地址、系办电话)。
上一篇: Oracle分析query plan