Oracle数据库第一范式、第二范式、第三范式区别

第一范式:
        一个表中,每个【列的值是不能再分割的】.
        例如:我们设计的表中有一个列是:爱好
        这个列的值可能会是这样:足球篮球乒乓球
        但是这值是可以再分割的:足球、篮球、乒乓球
        所以这种设计是不满足第一范式

    第二范式:
        第二范式是在满足第一范式的基础上
        表中的【非主键列都必须依赖于主键列】
        例如:
        订单表: 订单编号 是主键
        订单编号  订单名称   订单日期  订单中产品的生产地
        这几个非主键列中,产品生产地是不依赖于订单编号的,所以这种设计是不满足第二范式

    第三范式:
        第三范式是在满足第二范式的基础上
        表中的非主键列都必须【直接依赖】于主键列,而不能间接的依赖.
        (不能产生依赖传递)
        例如:
        订单表:   订单编号 是主键
        订单编号  订单名称  顾客编号  顾客姓名
        顾客编号依赖于订单编号,顾客姓名依赖于顾客编号,从而顾客姓名间接的依赖于订单编号,那么这里产生了依赖传递,所以这个设计是不满足第三范式的

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
表设计规范 2017年11月3日 oracle数据库表设计全文共29页,当前为第1页。 表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第2页。 表设计规范-范式 1NF:如果关系R 中所有属性的域都是单纯域,那么关系模式R是第一范式的 那么符合第一模式的特点就有 1)有主关键字 2)主键不能为空, 3)主键不能重复, 4)字段不可以再分 例如: StudyNo " Name " Sex " Contact 20040901 john Male Email:kkkk@ee.net,phone:222456 20040901 mary famale email:kkk@fff.net phone:123455 以上的表就不符合,第一范式:主键重复(实际中数据库不允许重复的),而且Contact字段可以再分所以变更为正确的是 StudyNo " Name " Sex " Email " Phone 20040901 john Male kkkk@ee.net 222456 20040902 mary famale kkk@fff.net 123455 oracle数据库表设计全文共29页,当前为第3页。 表设计规范-范式 2NF:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式的 满足第一范式的前提下,消除部分函数依赖 StudyNo " Name " Sex " Email " Phone " ClassNo " ClassAddress 01 john Male kkkk@ee.net 222456 200401 A楼2 01 mary famale kkk@fff.net 123455 200402 A楼3 这个表完全满足于第一范式, 主键由StudyNo和ClassNo组成,这样才能定位到指定行 但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress), 所以要变为两个表 表一 StudyNo " Name " Sex " Email " Phone " ClassNo 01 john Male kkkk@ee.net 222456 200401 01 mary famale kkk@fff.net 123455 200402 表二 ClassNo " ClassAddress 200401 A楼2 200402 A楼3 oracle数据库表设计全文共29页,当前为第4页。 表设计规范-范式 3NF:不存在非主属性的传递性依赖以及部分性依赖 StudyNo " Name " Sex " Email " bounsLevel " bouns 20040901 john Male kkkk@ee.net 优秀 $1000 20040902 mary famale kkk@fff.net 良 $600 这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖 更改为: 表1: StudyNo " Name " Sex " Email " bouunsNo 20040901 john Male kkkk@ee.net 1 20040902 mary famale kkk@fff.net 2 表2: bounsNo " bounsLevel " bouns 1 优秀 $1000 2 良 $600 oracle数据库表设计全文共29页,当前为第5页。 基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性:   (1) 原子性。基本表中的字段是不可再分解的。   (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。   (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。   (4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。 理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。 范式标准 基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 例如: 表1 商品表的表结构  商品名称 商品型号 单价 数量 金额  电视机 29寸 2,500 40 100,000增加"金额"这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。 oracle数据库表设计全文共29页,当前为第6页。 表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第7页。 表与表关联关系 表关联: 一对一、一对多 、多对多 要善于识别与正确处理多对多的关系 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值