3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式

这篇具有很好参考价值的文章主要介绍了3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

范式分类

逐步优化以解决问题:插入异常、删除异常、数据冗余

  • 1NF:属性值都是不可再分的原子值
  • 2NF:消除非主属性对候选键的部份依赖
  • 3NF:消除非主属性对候选键的传递依赖
  • BCNF:消除主属性对候选键的部分和传递依赖

主要考察方向是区分范式、有时候还有优化操作,BCNF只考察判断,不会考察优化。

第一范式

第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。

涉及到属性是否可以再分,可以按下面归类:
简单属性和复合属性、单值属性和多值属性、NULL属性、派生属性

简单属性和复合属性
简单属性,就是原子的,不可再分的,复合属性可以划分成更细小的一些取值,一般认为,在没有说明的情况下,属性都是不可再分的,如果有说明,比如姓名,正常不说就是存name即可,如果有说明按姓,名分别去存,对应就是表两列,first_name,last_name,这样可以再细分的就是复合属性,向常见的记录地址的省市区街道,也可以按复合属性去再分。

简单属性和复合属性
单值属性和多值属性指的是取值,单值表示唯一,多值表示可以在里面记录多个值,比如电话号码、紧急联系人、家属,我们记录的时候会把这种多个属性放在一个位置上,我们就会把这个属性叫做多汁属性,即一个属性对应多个取值。

NULL属性
属性没有值,或者属性未知,表示没有意义,或者不知道。

NULL属性派生属性是可以计算出来的,比如通过出生日期计算年龄,年龄就属于派生属性,同理知道销售量和销售单价可以计算出销售额,销售额就是派生属性

例题

例如:关系模式R(系名称、高级职称人数)是否满足1NF,如果不满足,应该如何调整?
范式判断,架构师考试,数据库
从图中,可以看出高级职称人数还可以继续按职称去分,所以不满足1NF的要求,连二维表的标准都够不上。没有达到1NF是不能成功建表的。需要把下面能够继续再分的树形作为真正的属性。

第二范式

第二范式(2NF):当且仅当实体E是第一范式(1NF),且每一个非主属性完全依赖主键(不存在部份依赖)时,则称实体E是第二范式。

例题

如下图,从关系模式看会存在哪些问题(数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?

范式判断,架构师考试,数据库

从图中可以看出学号和课程号可以得到成绩,由课程号可以得到对应的课程学分,途中学分的数据是冗余的,会更新异常,容易更新部分,导致更新不全,可能造成数据不一致,加入有一门课程还没有学生,就没有办法插入学分,就会产生插入异常,这个课程不在使用的时候,要进行删除,会同时删除掉学生的学号信息,会产生删除异常。

如何优化?
①首先确定关系模式满足第几范式
可以看出属性值都是不可再分的原子值,因此至少满足1NF
②找候选键
在1NF的基础上,来找关系模式的候选键,从函数依赖来看,由学号和课程号才能确定唯一的学生对应课程的成绩,这两个条件缺一不可,因此可以得到候选键是学号和课程号,候选键(学号,课程号)
③知道候选键,求主属性和非主属性
主属性:学号、课程号
非主属性:成绩、学分
④是否存在非主属性对候选键的部分函数依赖
如果候选键是单属性,则不可能出现部分函数依赖
所以考虑2NF的时候,都是出现组合候选键,由非主属性部分依赖依赖于候选键
学分只依赖于课程号,不依赖于学号,所以是非主属性部分函数依赖候选键
因此只达到了1NF,想要优化达到2NF,要拆分关系,拆分关系时要注意,保留原有的函数依赖关系
(课程号,学分)
(学号,课程号,成绩)

第三范式

第三范式(3NF):当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖于码(即候选键)时,则称实体是第三范式。

非主属性传递依赖于码时:A→B,B→C,C传递依赖于A,且B为非主属性,则满足第三范式。

只有达到第三范式,才能解决数据冗余、更新异常、插入异常、删除异常问题。

在考虑规范化程度的情况下,如果没有非主属性,则认为至少能够达到3NF。

例题

如下图,从关系模式看会存在哪些问题(数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?
范式判断,架构师考试,数据库
如图可知,学号→姓名,学号→系号,系号→系名,系号→系位置
分析属于第几范式
①首先确定关系模式满足第几范式
可以看出属性值都是不可再分的原子值,因此至少满足1NF
②找候选键
这里是学号
③知道候选键,求主属性和非主属性
主属性:学号
非主属性:姓名,系号,系名,系位置
④是否存在非主属性对候选键的部分函数依赖
如果候选键是单属性,则不可能出现部分函数依赖
所以考虑2NF的时候,都是出现组合候选键,由非主属性部分依赖依赖于候选键
而候选键只有一个属性,学号,因此不可能存在部分函数依赖
所以满足2NF
⑤看没有非主属性是否传递依赖于候选键
学号→姓名,学号→系号,系号→系名,系号→系位置
可知,系名,系位置都通过系号得出,因此是传递依赖于学号

所以规范化程度只能达到第二范式,要优化成第三范式,需要对系号的关系进行拆分,将系号相关的作为另一个关系模式,系号需要保留,来作为两个关系模式的关联方式

(学号,姓名,系号)
(系号,系名,系位置)

BC范式

BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

BCNF的规范化程度就很高了,它是消除主属性对相应的候选键产生的部分函数依赖和传递函数依赖,没有消除就不满足BC,消除就满足。左侧决定因素都包含候选码。

一般达到3NF就可以,BCNF拆的太细,会涉及到多表联表查询,而联合查询效率低,因此为了查询效率出现了反规范化的思想。

例题

关系模式STJ(S,T,J)中,S表示学生,T表示老师,J表示课程。每一老师只教一门课程。没门课程有若干老师,某一学生选定某门课,就对应一个固定老师。

范式判断,架构师考试,数据库
函数依赖集合为:F={T→J,SJ→T}
①判断是否满足1NF
属性不可再分满足
②判断候选键
候选键只出现在左侧,入度为0的是候选键
候选键为两个组合键SJ,ST
③判断主属性和非主属性
候选键为两个组合键SJ,ST,也就是STJ都是主属性,即没有非主属性,满足2NF
④考虑部分函数依赖
在候选键存在组合键的情况下,有可能出现部分函数依赖

考虑的部分函数依赖是非主属性对候选键的部分函数依赖,而没有非主属性,则说明没有这部分依赖,也就是说,消除了非主属性对候选键的部分函数依赖,满足2NF

没有非主属性,则满足3NF,没有非主属性传递依赖于码(即候选键)时,则称实体是第三范式。

在考虑规范化程度的情况下,如果没有非主属性,则认为至少能够达到3NF。
⑤根据定义判断是否满足BCNF
函数依赖集合为:F={T→J,SJ→T}
候选键为两个组合键SJ,ST
T→J的T不包含候选键
SJ→T的SJ包含候选键

定义:BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

需要都包含才能达到BCNF,所以不满足,只达到了3NF。文章来源地址https://www.toymoban.com/news/detail-781564.html

到了这里,关于3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库三大范式、BC范式、第四范式

    为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 第一范式是最基本的范式。 如果数据库表中的所有字段

    2024年01月18日
    浏览(44)
  • 数据库|数据库范式(待完成)

    数据库的一般操作是通过SET是对数据进行设置,同时用GET去获得存放在数据库中的信息。 产生的背景(没有规范化的坏处/带来的问题) 规范化表格设计的要求 一是要使得数据库易于理解(易于理解才方便在使用过程中快速上手) 易于增强和扩展(在现实开发场景中,往往

    2024年01月17日
    浏览(47)
  • 【数据库基础】数据库介绍和三大范式

           数据库 (DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。        数据库管理系统 (DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库

    2024年02月07日
    浏览(65)
  • 数据库系统概论(第五版)——第一章参考答案

    第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 ( 1 )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系

    2024年01月23日
    浏览(44)
  • SS第一章信号分类以及系统性质判断

                       

    2023年04月09日
    浏览(35)
  • 数据库期末复习(SQL,范式,数据库设计例题)

    创表 视图 例题:建立一个视图V1,显示老师与学生的授课关系,包括年份,学期,课程名称,老师ID,老师姓名,学生ID,学生姓名 向表中添加或删除约束 添加信息 例题:给“Aufr”同学选上2010年秋季学期的所有课程 删除信息 例题:删除“Comp. Sci.”学院“Ploski”同学,所有

    2024年02月02日
    浏览(65)
  • 数据库范式使用规范

    好的设计会尽可能少的引入冗余数据,或做有损拆分,而是使用 规范的方法 找到正确的分解。而范式则是关系数据库实现设计优化的通用手段。范式与关系数据库的关系可以参考笔者之前的WIKI。 在进行数据库设计时,如果能够满足第三范式,要尽量保证第三范式,如果因为

    2024年02月11日
    浏览(43)
  • 数据库——范式

    1、范式简介 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式的英文名称是 Normal Form ,简称 NF 。它是英国人E.F.Cod

    2024年02月03日
    浏览(42)
  • 数据库的三大范式

    文章是看尚硅谷的MySQL所写的笔记 设计数据表的时候,要考虑很多的问题: 用户需要哪些数据,我们在数据表中要保存哪一些数据 怎么保证数据表中的数据的正确性 如何降低数据表的冗余度 开发人员怎么才能更方便的使用数据库 如果数据库设计得不合理的话,可能导致下面

    2024年02月02日
    浏览(48)
  • 数据库设计-范式

    范式就是数据库的构建规则,目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包