首页 > 编程知识 正文

第三范式比BC范式的限制更严格(简述第一范式和第二范式)

时间:2023-05-06 21:04:00 阅读:67733 作者:89

要阐明一般范式,首先需要理解以下概念:

数据描述术语对应表

关键码

1 )超级密钥)在关系中唯一标识元组的属性或属性集称为密钥模式超级密钥。

2 )候补键)不包含多馀属性的超级键称为候补键。 也就是说,候选键中删除属性的不是键。

3 )主键)用户选择用于标识元组的候选键称为主键。 一般不说明,键是指主键。

4 )外键)如果模式r的属性k是另一模式的主键,则k在模式r中称为外键。

http://www.Sina.com/http://www.Sina.com/:以x,y为关系r的两个属性集合,XY存在,x’y存在,则y部分函数依赖x

举个例子,在学生基本信息表r中,(学校号码、身份证号码、姓名)当然,学校号码属性所取的值是唯一的。 在r关系中,)学校号码、身份证号码(-) )、) )学校号码(-)、姓名)、)、身份证号码(-) )、姓名); 所以名字的一些函数是和(学校号码,身份证号码); 33558www.Sina.com/:x:以x,y为关系r的两个属性的集合,x’是x的真子集,存在XY,但每个x’都有x’! Y表示y的完全函数依赖于x。

例)学生基本信息表r (学校号、班级、姓名)假设不同班级的学校号相同,班级内的学校号不能相同。 在r关系中,)学校号码、班级)-)名字),但(学校号码)-)名字)不成立,因此姓名完全) )依赖于学校号码

33558www.Sina.com/:x、y、z是关系r中相互不同属性的集合,假设存在xy(y )! X )、YZ时,据说z传递函数依赖于x。

例(有关r )学号、宿舍、费用)中,(学号(-)宿舍)、宿舍! (学号,)宿舍(-)费用,费用!=宿舍,所以满足传递函数的要求;

完全依赖、部分依赖、传递依赖一言以蔽之,“第一范式的数据表必须是二维数据表”。 第一范式是指数据库的各列是不可分割的基本数据项,强调列的原子性,问题中的某个属性不能有一些值。 例如,数据库的电话号码属性不能包含固定电话和移动电话值,如下图所示。

说明:在所有关系数据库中,第一范式(1NF )是关系模型的基本要求,不满足第一范式(1NF )的数据库不是关系数据库。

部分函数依赖第二范式基于第一范式构建,即满足第二范式必须满足第一范式,第二范式要求数据表的每个实例或行被唯一识别。 除了满足第一范式以外,还有两个条件。 一是表格必须有主键。 第二,不在主键中的列完全依赖于主键,不能只依赖于主键的一部分。

每行中的数据只能与其中一列相关联。 也就是说,一行数据只能做一件事。 只要数据列中有数据重复,就必须分割表。

例如,如果数据表具有联盟主键,并且某些列依赖于仅由联盟主键的一个或多个属性组成的联盟主键,则必须拆分表才能对第二规范化进行复合。

完全函数依赖如果一个范式是辅助范式,并且每个非主属性不传递依赖于该范式的候选密钥,则将其称为第三范式。 这意味着,非主键列a依赖于非主键列b,而非主键列b依赖于主键。

例如,employee(emp_id、emp_name、emp_age、dept_id、dept_name、dept_info )表示员工表中的EMP_id为员工

除了传递函数依赖第三范式之外,数据库表还符合第三范式,除非字段对任何关键字段候选的传递函数依赖。

)1)所有非主属性对每个代码都是完全的函数依赖;

)2)所有主属性对不包含该主属性的每个代码也是完全函数依赖的

)3)没有依赖于非代码任一组合的属性完全函数。

r属于3NF,不一定属于BCNF,r属于BCNF时一定属于3NF。

假设仓库管理关系表为StorehouseManage (仓库ID、仓库ID、管理员ID、数量),一个管理员只在一个仓库中工作。 一个仓库可以储存多件物品。 此数据库表具有以下决策关系:

(仓库ID、保管物ID )(管理者ID、数量) ) )。

(管理员ID、保管物ID )() (仓库ID、数量) ) ) )。

因此,StorehouseManage的候补关键词是仓库ID、保管物ID、管理者ID、保管物ID,表中唯一的非重要字段是数量,符合第3范式。 但是,存在以下决定关系:

(仓库ID) (管理员id ) ) ) ) ) )。

(管理员ID) (仓库id ) )。

这意味着密钥字段可能决定密钥字段,因此不符合BCNF范例。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。