首页 > 数据库 >关系数据库_3.关系数据库设计基本理论

关系数据库_3.关系数据库设计基本理论

时间:2024-03-24 21:32:08浏览次数:34  
标签:关系 BCNF 依赖 理论 1NF 模式 关系数据库 设计 属性

        关系数据理论是指导数据库设计的基础,关系数据库设计是数据库语义学的问题。要保证构造的关系既能准确地反映现实世界,又有利于应用和具体的操作。关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,但又可以方便地获取信息。

1.函数依赖

         数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。

2.多值依赖

         若关系模式R(U)中,X、Y、Z是U的子集,并且Z=U-X-Y。当且仅当对R(U)的任何一个关系r,给定一对(x,z)值,有一组Y的值,这组值只由x值决定而与z值无关,则称“Y多值依赖于X”或“X多值决定Y”成立。记为:X—>—>Y。

3.规范化

        关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式到达到几范式来评价模式规范化的程度。范式有:1NF、2NF、3NF、BCNF、4NF和5NF,其中1NF级别最低。这几种范式之间1NF ⊇2NF ⊇3NF ⊇BCNF ⊇4NF ⊇5NF成立。

        通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫做规范化。下面将给出1NF到4NF的定义。

        1)1NF

        若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。

        2)2NF

         若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF。

        3)3NF

         若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z(Z⊈Y)使得X—>Y,(Y↛X)Y—>Z成立,则关系模式R∈3NF。

        即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。

        4)BCNF(Boyce Codd Normal Form,巴克斯范式)

        关系模式R∈1NF,若X—>Y且Y⊈X时,X必含有码,则关系模式R∈BCNF。也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。

        结论:一个满足BCNF的关系模式,应有如下性质:

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

        (2)所有非主属性对每一个不包含它的码,也是完全函数依赖;

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

        例如,设R(Pno,Pname,Mname)的属性分别表是零件号、零件名和厂商名,如果约定,每种零件号只有一个零件名,但不同的零件号可以有相同的零件名;每种零件可以有多个厂商生产,但每家厂商生产的零件应有不同的零件名。这样我们可以得到一组函数依赖:

Pno—>Pname,(Pname,Manme)—>Pno

         由于该关系模式R中的候选码为(Pname,Mname)或(Pno,Mname),因而关系模式R的属性都是主属性,不存在非主属性对码的传递依赖,所以R是3NF的。但是,主属性Pname传递依赖于码(Pname,Mname),因此R不是BCNF的。当一种零件由多个生产厂家生产时,零件名与零件号间的联系将多次重复,带来冗余和操作异常现象。若将R分解成:

R1(Pno,Pname)和R2(Pno,Mname)就可以解决上述问题,并且分解后的关系模式R1、R2都属于BCNF。

        5)4NF

        关系模式R∈1NF,若对于R的每个非平凡多值依赖X—>—>Y且Y⊈X时,X必含有码,则关系模式R(U,F)∈4NF.

        4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。

        注意:若果只考虑函数依赖,关系模式最高的规范化程度是BCNF;如果考虑多值依赖,关系模式最高的规范化程度是4NF。

标签:关系,BCNF,依赖,理论,1NF,模式,关系数据库,设计,属性
From: https://blog.csdn.net/huaqianzkh/article/details/136991889

相关文章

  • 【系统设计】系统设计相关课题的速成“葵花宝典”!
    目录计算机架构(磁盘存储、内存、缓存、CPU)应用程序体系结构(CI/CD、负载均衡器、日志记录和监控)系统SLA网络设计API设计缓存和CDN设计代理服务器(正向和反向)负载均衡器设计数据库设计结束!推荐超级课程:Docker快速入门到精通Kubernetes入门到大师通......
  • 国务院办公厅发布:政府类网站网页设计规范(试行)
    国务院办公厅于2019年12月发布了《政府类网站网页设计规范(试行)》。该规范的发布旨在统一政府类网站的设计风格和标准,提升政府网站的用户体验和可访问性,推动政府信息公开和服务的提升。该规范涵盖了政府类网站的各个方面,包括页面布局、导航结构、色彩和字体、图标和按钮、表格......
  • HMI界面之:上位机界面设计,一文扫盲
    一、什么是上位机上位机(SupervisoryControlandDataAcquisition,简称SCADA)是一种用于监控和控制工业过程的计算机系统。它通常由两个主要部分组成:上位机和下位机。上位机是SCADA系统中的主要控制中心,负责监控和控制整个工业过程。它通过与下位机通信,从下位机获取实时数据......
  • 一篇文章搞懂并设计循环队列
    目录1.为什么使用循环队列2.循环队列组成为什么要只使用size-1个空间存储?3.循环队列的元素进出3.1队尾加入元素3.2队头删除元素3.3取出队头元素3.4取出队尾元素1.为什么使用循环队列“假溢出”——》出队列会空出存储空间,无法再次利用如图:索引为0和1的空......
  • 【附源码】JAVA计算机毕业设计音乐豆瓣(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,音乐作为人们日常生活中不可或缺的一部分,其获取与分享方式也在不断地变革。传统的音乐获取途径,如购买唱片或到实体音乐店挑选......
  • 设计模式-单例模式(模拟面试官八股)
    一、请说下设计模式中,你熟悉的设计模式单例模式二、单例模式你有了解吗单例模式是创建型设计模式,该类负责创建自己的对象,他确保一个类只有一个实例,并且提拱了一个去全局访问点来访问该实例。二、单例模式有几种实现方式 1.饿汉式(静态常量)优点:写法容易,在类加载的时候就......
  • 【测试思考】设计测试用例时,你在想什么
    突然想写这篇文章是因为,前两天看到一篇文章【像用户一样测试】然后想起事儿 ..        想到在2020年上海爆发疫情后,开始频繁使用买菜软件,在一个深夜从某团紧急挑选加购商品,看到提醒自己账户还有一张满减优惠券,挺高兴的。    临近下单想起来还有一些面包没......
  • 马尔可夫决策理论
    马尔可夫决策理论马尔可夫性(无后效性)某阶段的状态一旦确定‚则此后过程的演变不再受此前各状态的影响。也就是说“未来与过去无关”当前的状态是此前历史的一个完整总结,此前的历史只能通过当前的状态去影响过程未来的演变。把握“当前的状态是此前历史的一个完整总结”这一要......
  • 多智能体理论
    多智能体理论智能体的基本特性woofdridge和J七nnLings在总结了前人在agent领域的一些工作后认为‚Agent的基本特性包括:(l)自治性:Agent运行时不直接由人或者其他东西控制‚它对它们自己的行为和内部状态有一定的控制权。(2)社会性:Agent能够通过某种Agent通信语言与其他agent......
  • 如何实现一个电子表单设计器
    什么是电子表单设计器电子表单设计器是一种在线设计工具,可以用于创建和设计电子表单。电子表单设计器一般会提供可视化的交互操作,让用户可以轻松的拖放各种页面元素,如文本框、复选框、下拉框等,实现表单的布局和样式配置,用户也可以通过设计器配置表单的属性,如校验规则、数据绑......