ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Orcle系列(一)——范式

2019-02-21 16:01:22  阅读:222  来源: 互联网

标签:Orcle 系列 数据库 员工 部门 编号 范式 主键


范式——设计关系型数据库的准则。关系型数据库的设计标准就是数据库的范式,包括第一范式,第二范式,第三范式。

第一范式:

目前只要是使用关系型数据库来设计数据库,基本都能够满足数据库设计的第一范式。第一范式(1NF)就是数据库表中的字段都是单一属性的,不可再分。这个单一属性可以使数据库中任何一种基本数据类型,如整数,字符型,日期型等。

第二范式:

第二范式是在第一范式的基础上进一步对关系型数据库进行规范,官方给出的定义是要求在数据库表中不存在非关键字段对任意候选关键字段的部分函数依赖。意思就是说在第二范式中组合主键(AB)里面的A或B与其他字段不能存在组合重复。为解决这个问题,通常的做法是不用组合主键,添加一个编号列,作为唯一主键即可满足第二范式。例如设计一个购物信息表,字段包括客户编号,产品名称,产品数量,产品类型,产品价格等,如果用客户编号和产品名称作为组合主键,那么在组合主键中产品名称和产品类型存在一定的关系,室友产品名称决定产品类型,所以不满足第二范式,如果不满足第二范式,就会出现以下四个问题:数据冗余,更新异常,插入异常,删除异常。

第三范式:

第三范式是在第二范式的基础上对数据库进行规范,第三范式的要求是数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。所谓传递函数依赖,指的是如果存在A决定B,B决定C的决定关系,则C传递函数依赖于A。因此满足第三范式的数据库表应该不存在依赖关系,假定员工信息表为employee(员工编号,姓名,年龄,所在部门,部门电话),使用员工编号作为员工信息的主键,那么就存在决定关系,员工编号就决定了姓名,年龄,所在部门,部门电话这些字段。从上面的关系可以看出,在表中存在一个主键,数据表的设计满足了第二范式的要求。但是没有满足第三范式的要求,因为存在决定关系:员工编号决定了所在部门,所在部门有决定了部门电话,那么就存在了传递函数依赖关系,即员工编号决定部门电话,这样也会出现不满足第二范式时出现的那四个问题。为了满足第三范式的要求,必须把员工信息表拆分为两个表:员工表:员工编号,姓名,年龄,所在部门;部门表:部门名称,部门电话。

拓:除了上面三种范式,还有一种范式经常使用,即鲍依斯-科得范式(BCNF)。它是建立在第三范式的基础上,如果数据库表中不存在任何字段对任一候选关键字段的传递函数依赖,那么就符合此范式。

标签:Orcle,系列,数据库,员工,部门,编号,范式,主键
来源: https://www.cnblogs.com/yeluowuti/p/10413078.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有