关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括

关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括关系数据库设计理论设计一个好的关系数据库系统,关键是要设计一个好的数据库模式(数据库逻辑设计问题)数据库逻辑设计主要解决的问题关系数据库应该组织成几个关系模式关系模式中包括哪些属性“不好”的数据库设计举例:为学校设计一个关系数据库关系模式:UN(Sno,Cno,G,Sdept,MN)Sno:描述学生Sdept:描述系名MN:描述系…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

关系数据设计理论

设计一个好的关系数据库系统,关键是要设计一个好的数据库模式(数据库逻辑设计问题)

数据库逻辑设计主要解决的问题

关系数据库应该组织成几个关系模式

关系模式中包括哪些属性

“不好”的数据库设计

举例:为学校设计一个关系数据库

关系模式: UN(Sno,Cno,G,Sdept,MN)

  • Sno:描述学生
  • Sdept:描述系名
  • MN:描述系主任
  • Cno:描述课程
  • G:描述学习成绩
  • 根据对现实世界的分析,可得出:Sno,Cno是码
  • 按照关系模式UN装入部分数据

对数据库操作时,会出现以下问题

    1. 数据冗余(系主任名的存储次数)
      • 数据重复存储:浪费存储空间,数据库维护困难(更新异常)
    1. 插入异常(一个系刚成立)
      • 主码为空的记录不能存在与数据库,导致不能进行插入操作
    1. 删除异常(一个系的学生全部毕业)
      • 删除操作后,一些相关信息无法保存在数据库中

要消除以上的“弊病”,把上面的关系数据库模式分解为三个关系模式

  • S(Sno,Sdept)
  • SG(Sno,Cno,G)
  • Dept(Sdept,MN)

函数依赖

类似于变量之间的单值函数关系

Y=F(X),其中自变量X的值,决定一个唯一的函数值Y

在一个关系模式里的属性,由于它在不同元组里属性值可能不同,由此可以把关系中的属性看作变量

一个属性与另一个属性在取值上可能存在制约关系

函数依赖就是属性间的逻辑依赖关系

定义1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集.对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数决定Y,或Y函数依赖于X,记作:X Y.

X通常称为“决定因素”

几点说明

    1. 函数依赖是语义范畴的概念.它反映了一种语义完整性约束,只能根据语义来确定一个函数依赖.
    1. 函数依赖是指关系R模式的所有关系元组均应满足的约束条件,而不是关系模式中的某个或某些元组满足的约束条件
    1. 函数依赖与属性间的联系类型有关
      • (1)若属性X和Y之间有“一对一”的联系,
      • (2)若属性X和Y之间有“多对一”的联系,
      • (3)若属性X和Y之间有“多对多”的联系,
    1. 如果X Y,并且Y不是X的子集,则称X Y是非平凡的函数依赖;如果Y是X的子集,则称X Y是平凡的函数依赖;

完全函数依赖与部分函数依赖

完全函数依赖

部分函数依赖

码的形式定义

候选码的两个性质

    1. 标识的唯一性: 对于R(U)中的每一元组,K的值确定后,该元组就相应确定了.
    1. 无冗余性: K是属性组的情况下,K的任何一部分都不能唯一标识该元组(定义中的完全函数依赖的意义)

规范化

简介

  • 用几个简单的关系去取代原来结构复杂的关系的过程叫做关系规范化.
  • 规范化理论是研究如何把一个不好的关系模式转化为好的关系模式的理论
  • 规范化理论是E.E.Codd在1971年首先提出的
  • 规范化理论是数据库设计过程中的一个非常有用的辅助工具

范式

  • 简介
    • 规范化理论是围绕着范式建立的.
    • 满足不同程度要求的约束集则称为不同的范式.
    • 如果一个关系满足某个指定的约束集,则称它属于某个特定的范式.
    • 较高层次的范式比较低层次的范式具有“更合乎要求的性质”
    • 一个低一级范式的关系模式,通过投影运算可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化.
    • 如果一个关系满足某个范式要求,则它也会满足较其级别低的所有范式的要求
  • 范式层次
  • 第一范式(1NF)
    • 定义5: 在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系,记作R∈1NF.
    • 数据库理论研究的是规范化关系.
    • 1NF规范化: 把非规范化关系规范提高到1NF关系模式的集合.
  • 第二范式(2NF)
    • 定义6: 若关系模式R∈1NF,且每个非主属性都完全依赖于R的任意候选码,则关系模式R属于第二范式,记作R ∈2NF.
    • 2NF规范化是把1NF关系模式规范提高到变成2NF关系模式的集合.
    • 从1NF中消除非主属性对候选码的部分函数依赖,则获得2NF关系.
    • 举例:UN(Sno,Cno,G,SDN,MN)
  • 第三范式(3NF)
    • 定义7: 若关系模式R∈2NF,且每个非主属性都不传递依赖于R的任意候选码,则R∈3NF.
    • 从2NF关系中,消除非主属性对码的传递依赖函数而获得3NF关系
    • R∈3NF,则每个非主属性既不部分依赖,也不传递依赖于R的任何候选码.
    • 3NF的规范化
  • BCNF范式
    • 3NF的不完善性
      • 定义8: 若R∈1NF,且R中每个决定因素都是候选码,则R ∈BCNF.
      • 满足BCNF的关系将消除任何属性对候选码的部分依赖与传递依赖
      • 应用BCNF定义时,可直接判断1NF是否属于BCNF
      • BCNF规范化
        这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181256.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于JavaWeb网上商城(以卖书为主)

    基于JavaWeb网上商城(以卖书为主)本文章是JavaWeb课程的课程设计1.项目概况1.1课题背景、目的及意义1.1.1课题背景随着互联网的普及和电子商务的兴起,网上图书销售是互联网电子商务在图书销售行业中的必然结果,这种新型的图书销售形式越来越受人们的欢迎,正在以不可阻挡的气势替代着传统的图书销售模式。与其传统销售模式相比拥有许多优势,一是降低了销售成本,二是利用互联网作为交易平台,是的交易活动不受时间和空间的限制,…

    2022年7月8日
    24
  • java怎样解决除法精度_java 除法 精度问题

    java怎样解决除法精度_java 除法 精度问题inta=4;intb=3;floatc=(float)a/b;System.out.print(c);//输出:1如果要的到精确的结果,要用下面的方法inta=4;intb=3;floatc=(float)a/(float)b;System.out.print(c);//输出:1.3333334importjava.text.DecimalFormat;public…

    2022年6月5日
    81
  • Idea激活码最新教程2020.1.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2020.1.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2020 1 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2020 1 3 成功激活

    2025年5月23日
    10
  • 恢复mysql数据结构(.frm)和数据(.ibd)

    恢复mysql数据结构(.frm)和数据(.ibd)恢复mysql数据结构(.frm)和数据(.ibd)

    2022年4月24日
    56
  • 巧设IP路由 实现不同网段互通[通俗易懂]

    巧设IP路由 实现不同网段互通[通俗易懂]【简介】当一个局域网中必须存在两个以上网段时,分属于不同网段内的主机彼此互不可见。为了解决这个问题,就必须在不同的网段之间设置路由器。如果花费上万元资金购买一台路由器,仅仅用于连接局域网中的两个网段,实在不值得。有什么好的解决方案吗?当然有,这就是Windows中的IP路由。  当一个局域网中必须存在两个以上网段时,分属于不同网段内的主机彼此互不可见。为了解决这个问题,就必须在不同的网段之间设置…

    2022年9月12日
    2
  • Service Mesh详解

    Service Mesh详解ServiceMesh简介:这个词最早使用由开发Linkerd的Buoyant公司提出,并在内部使用。2016年9月29日第一次公开使用这个术语。2017年的时候随着Linkerd的传入,ServiceMesh进入国内技术社区的视野。最早翻译为“服务啮合层”,这个词比较拗口。用了几个月之后改成了服务网格。微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(SmallBuildingBlocks)为基础,利用模块化

    2025年5月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号