数据库设计——关系数据理论(超详细)

article/2025/10/9 17:25:20

?问题——什么是一个好的数据库逻辑设计?

●关系型数据库逻辑设计:
➠针对一个具体问题应如何构造一个适合于它的数据模式,即应构造几个关系,每个关系由哪些属性组成等
eg:
在这里插入图片描述

?这样的设计是一个好的设计吗 ?

观察这个表所对应的一个实例(在某个时刻student模式所对应的一个实际的数据情况):如有若干个学生,他们都为’计算机系’,系主任为’张明’,选修了’C1’课程,得到各自的成绩

在这里插入图片描述

☞关系模式STUDENT(Sno,Sdept,Mname,Cno,Grade)中存在的问题:☜
1、数据冗余太大,浪费存储空间

如:系主任的名字重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。

2、更新异常(Update Anomalies)
数据冗余,更新数据时,维护数据完整新代价大
如果某系换主任,系统必须修改与该系学生有关的每一个元组。

3、插入异常(Insertion Anomalies),该插入的数据插不进去

如果成立一个新的软件工程系,还没有招生,我们就无法把这个系及其系主任的信息存入数据库。

4、删除异常(Deletetion Anomalies),不该删除的数据也删除了

如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其主任的信息也丢掉了。

?什么是一个好的模式 ?

➠好的设计模式不会发生插入异常、删除异常、更新异常、数据冗余应尽可能少

问题的原因:
由于模式中的某些数据依赖引起的。
数据依赖:
◆是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系
◆是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现

数据依赖对关系模式的影响:
不合适的数据依赖,造成插入异常、删除异常、更新异常和数据冗余问题

用一张图表示函数依赖
在这里插入图片描述

解决方法:把这个单一模式分成3个关系模式
S( Sno, Sdept, Sno→Sdept);
SC ( Sno, Cno, Grade, (Sno, Cno)→Grade);
DEPT (Sdept, Mname, Sdept→Mname)
这三个模式不会发生插入异常、删除等异常;数据冗余得到控制。

如何解决关系模式中存在的问题:
规范化理论——找出关系模式中不合适的数据依赖,消除它们,可以在不同程度上解决插入异常、删除异常、更新异常和数据冗余问题。

函数依赖

在这里插入图片描述

在这里插入图片描述
如何确定函数依赖?
◆函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。
●如Sname→Sno函数依赖只有在“学生不允许有重名”的条件下成立。

平凡函数依赖与非平凡函数依赖
●X→Y, Y⊈X, 则称X→Y是非平凡的函数依赖。
●X→Y, Y⊆X, 则称X→Y是平凡的函数依赖。

在这里插入图片描述

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

在这里插入图片描述
传递函数依赖
在这里插入图片描述

范式

◆范式是一种符合某一级别的关系模式集合

◆关系数据库中的关系必须满足一定的要求。
满足不同程度要求的为不同范式

●范式的种类:
第一范式(1NF)☞☞☞☞☞☞☞☞(关系模式R的所有属性都是不可分的基本数据项)
第二范式(2NF)☞☞☞☞☞☞☞☞(关系模式R⊆1NF,并且每一个非主属性都完全函数依赖于R的码,则R⊆2NF。
第三范式(3NF)☞☞☞☞☞☞☞☞(关系模式R⊆1NF,若R中不存在这样的码X、属性组Y及非属性Z(Y⊉Z),使得X→Y,Y→Z,Y↛X,成立,则称R<U,F>⊆3NF ◆若R⊆3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码
)
BC范式(BCNF,Boyce和Codd共同提出的范式)☞☞☞☞☞☞☞☞通常也认为BC范式是修正的第三范式,有时也称为扩展的第三范式,即在关系模式R<U,F>中,如果每一个决定因素都包含码,则R⊆BCNF。
◆BCNF关系模式所具有的性质:
①所有非主属对每一个码都是完全依赖函数。
②所有的主属性对每一个不包含它的码也是完全函数依赖。
③没有任何属性完全函数依赖于非码的任何一组属性。

第四范式(4NF)☞☞☞☞☞☞☞☞
第五范式(5NF☞☞☞☞☞☞☞☞
●各种范式之间存在联系(低级范式包含高级范式):
在这里插入图片描述

规范化小结

●一个关系模式只要是其分量都是不可分的数据项,它就是规范化的关系模式,但这只是最基本的规范化。
●规范化程度过低的关系模式不一定能够很好的描述现实世界,可能会存在插入异常、删除异常、修改异常、数据冗余等问题,解决方法就是对其进行规范化,转换成高级范式。
●一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化
●关系数据库的规范化理论是数据库逻辑设计的工具。

◆关系模式规范化的基本步骤:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/lpdBmCkX.shtml

相关文章

关系数据库理论

关系数据库理论 关系模式的组成 一个关系模式应当是一个五元组R(U,D,DOM,F) 这里R是符号化的元组语义 U为一组属性D为属性组U中的属性所来自的域DOM为属性到域的映射F为属性组U上一组数据依赖&#xff08;是一组数据依赖的集合&#xff09; 由于D,DOM与模式涉及关系不大&a…

【数据库】关系数据理论

问题的提出 一、概念回顾 关系&#xff1a;描述实体、属性、实体间的联系。 从形式上看&#xff0c;它是一张二维表&#xff0c;是所涉及属性的笛卡尔积的一个子集。 关系模式&#xff1a;用来定义关系。 关系数据库&#xff1a;基于关系模型的数据库&#xff0c;利用关系来描…

数据库原理(2)关系型数据库理论

二、关系型数据库理论 2.1 关系型数据库中基本概念 关系&#xff08;Relation&#xff09; 一个关系就是一张二维表&#xff0c;每个关系都有一个关系名元组 二维表中的行称为元组属性 二维表中的列称为属性关系模式 关系模式是对关系的描述。一般格式为R(D1,D2,D3..) R关系名…

锂离子电池的国际标准和国家标准(含安全方面IEC62133等,IEC61060电性能和UN38.3 GB4943运输存储标准)

做锂电池测试的相关标准 锂离子电池相关标准&#xff1a; 国家标准公开系统&#xff1a;国家标准全文公开 国家标准|GB 31241-2022下载和预览 GB31241-2022《便携式电子产品锂离子电池和电池组 安全技术规范》与2014变化内容 GB31241-2022国家强制标准&#xff0c;2024年1月1…

IEC 60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验

IEC 60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验 IEC60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验-咨询文档类资源-CSDN下载IEC60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验&…

IEC60958/61937协议

目录 第零节 本文内容 第一节 IEC60958/61937协议概述 第二节 IEC60958/61937硬件接口 第三节 IEC60958数据格式 第四节 IEC61937数据格式 第零节 本文内容 IEC60958/61937协议是我们音频开发中常见的一种协议&#xff0c;本文就叙述一下该协议的架构&#…

c 17 语言标准下载,C++ 17 标准手册(含C++ 17 STL Cookbook) 官方pdf原版

这里提供C 17 标准手册&#xff1a;Working Draft, Standard for Programming Language C 和C 17 STL Cookbook下载&#xff0c;包含C17 标准 ISOIEC 14882 2017 官方pdf文档&#xff0c;需要的朋友可下载试试&#xff01; C17 是继 C14 之后&#xff0c;C 编程语言 ISO/IEC 标…

漫谈工业软件(2)-IEC61499标准

IEC 61499是用于分布式工业过程测量与控制系统(IPMCSs)功能块的标准。该标准的名称表明了两个重要的概念 -分布式工业过程测量与控制系统 (IPMCSs)表明该标准针对的是工业分布式系统-由多台设备通过网络构成的系统。相比之下&#xff0c;IEC61131 PLC 标准针对的是单台设备的…

行业认证标准:IEC 62304-医疗设备软件安全分类标准

什么是IEC 62304? IEC 62304标准在医疗设备行业中使用,它是一种软件安全分类,它为软件生命周期过程提供了一个框架,其中包含为安全设计和维护医疗设备软件所必需的活动和任务。美国FDA接受IEC 62304合规性作为证明医疗设备软件已根据要求的法规/标准进行设计的证据,因为它…

c语言c11标准 下载,【整理】C语言的各种版本:C89,AMD1,C99,C11

【背景】 之前就知道了有个C90和C99。 后来又在&#xff1a; 期间知道有C11。 现在去整理一下&#xff0c;关于C语言的版本方面的更详细的内容。 参考内容&#xff1a; C语言版本历史 C语言主要有三个版本&#xff1a; ANSI CC89C90 ANSI C standardX3.159-1989 1989年批准通过…

iec611313标准下载_IEC 60249-1-1982(R1993)

基本信息 标准号&#xff1a;IEC 60249-1-1982(R1993) 标准名称&#xff1a;Base Materials For Printed Circuits. Part 1: Test Methods 外文名&#xff1a; Base Materials For Printed Circuits. Part 1: Test Methods 标准状态&#xff1a; 废止 被以下替代标准&#xff1…

iec611313标准下载_IEC 61730-1-2016

基本信息 标准号&#xff1a;IEC 61730-1-2016 标准名称&#xff1a;Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction 外文名&#xff1a; Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction…

iec611313标准下载_IEC 62108-2016

基本信息 标准号&#xff1a;IEC 62108-2016 标准名称&#xff1a;Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification And Type Approval 外文名&#xff1a; Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification…

国际著名标准化组织及ISO/IEC/ASTM/IEEE等国际标准免费下载地址

在知识经济时代&#xff0c;标准已被称作世界的通用语言。你看不懂语言没关系&#xff0c;但是一个标准的图形符号&#xff0c;你就能看明白&#xff0c;很快能GET到你需要的信息。在没有标准的世界&#xff0c;不仅人与人之间难以沟通&#xff0c;机器、零部件以及产品之间的联…

光伏产品标准 - IEC 61215:2021版系列简介及标准下载

光伏产品标准 - IEC 61215:2021版全系列简介及标准下载 2021年初&#xff0c;IEC正式发布了光伏产品IEC 61215:2021相关系列标准的更新版本&#xff0c;这也是IEC 61215:2016发布以来的首次更新。近五年来光伏行业技术发展迅猛&#xff0c;新标准的推出也迫在眉睫&#xff0c;历…

Java入门教程(二)程序设计基础

Java入门 二.Java程序设计基础1.标识符和关键字1.1标识符概述1.2标识符1.3关键字概述1.4关键字特点&#xff1a; 2.注释2.1概述2.2注释分类 3.Java常量3.1常量概述3.2常量分类 4.数据类型4.1计算机存储单元4.2数据类型4.3内存占用和取值范围 5.Java变量5.1变量概述5.2变量定义5…

Java程序设计教程——第四、六章习题

1、判断题 下标是用于指出数组中位置的数字或变量。&#xff08;X&#xff09;同一个数组中可以存放多个不同类型的数据。&#xff08;X&#xff09;[数组是相同数据类型的数据元素的集合]数组的下标可以是int型或float型。&#xff08;X&#xff09;数组可声明为任何数据类型…

Java程序设计与实践教程

Java简介&#xff1a; Java的名字来源于印度尼西亚爪哇岛的英文名&#xff0c;这个小岛因盛产咖啡而闻名。JavaBeans&#xff08;咖啡豆&#xff09;&#xff0c;Sun和Java的标识也正是一杯冒着热气的咖啡。Sun&#xff08;Stanford University Network&#xff09;公司被美国…

java入门-java程序

前言 java入门系列&#xff0c;自我学习总结&#xff0c;用来记录一些入门简单的知识点和自己的思考总结&#xff0c;不会很详细的进行记录。 参考文档地址&#xff1a;菜鸟教程 参考文档地址&#xff1a;廖雪峰 Java 教程 参考视频笔记&#xff1a;b站尚硅谷 什么是计算机程…

《Java语言程序设计》

一、Java概述 Java是简单的&#xff0c;面向对象的语言&#xff0c;具有分布性、安全性、健壮性&#xff1b;最初版本是解释执行的&#xff0c;后期增加了编译执行&#xff1b;是多线程的、动态的&#xff1b;最主要的是与平台无关&#xff0c;解决了软件移植的问题。 Java语…