【数据库原理】关系数据库理论(一)

article/2025/10/9 14:55:25

数据库规范化理论.

当面对一个现实问题,例如要求设计一个教学管理数据库,如何使用关系模型设计一个合理且合适的关系数据库,如何选择一个比较好的关系模式的集合,每个关系由哪些属性组成,这些属于数据库逻辑设计的问题。数据库规范化理论是数据库逻辑设计的理论依据,关系数据库的规范化理论最早是由关系数据库的创始人E.F.Codd于1970提出的。在该理论出现之前,层次型和网状数据模型只是遵循其模型本身的固有原则,相关的数据设计和实现有着很大的随意性和盲目性,说得直白就是在碰运气。由于这样的数据库设计缺乏理论基础,在日后的运行中可能会出现许多意料之外的问题。
在关系数据库中,关系模型包括一组关系模式,并且关系之间并不是一座座孤岛。如何设计一个合适的关系数据库系统,其关键是设计关系型数据库的模式,具体来说就是:

  • 数据库中应该包含哪些关系模式
  • 每一个关系模式应该包括哪些属性
  • 如何将这些相互之间有关联的关系模式组建成一个完整的关系型数据库

关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式Normal Form以及模式设计。其中函数依赖起着核心的作用,是模式分解和模式设计的基础,范式则是模式分解的标准。

一个不合理的关系模式.

我们要求设计一个教学管理数据库,其关系模式SCD如下:
在这里插入图片描述
依据这样的一个关系模式所建立的数据库,存在着如下的问题:

  • 【数据冗余】每一个系名以及系主任的名称的存储次数等于每个学生选课数求和的结果,不难发现,学生的名称、学号、年龄也出现了重复存储的情况,数据的冗余度相当大。
  • 【插入异常】如果学校突然新建了一个系,例如新兴的人工智能系,那么在该系还没有招生时,系名和系主任就无法插入到该表中。由于在这个关系模式中,(SNo+CNo)是主码,当主码为空时,插入操作无法进行。
  • 【删除异常】当某个系的学生全部毕业,并且还没有开始新学期招生时,数据表中所有有关该系的信息就会全部被删除,就好像这个系被撤销了一样,但现实中这个系依旧存在着。
  • 【更新困难】如果某个系更换了系主任,那么所有该系学生的信息中系主任属性都需要发生改变。

可见SCD在实际的应用中,面对着5位乃至6位的学生数,几乎是寸步难行,这也说明它是一个不"合适"的关系模式。而产生这些问题的原因,直观来说是SCD太过于全面,想要包含住所有的信息,而根本原因就是,属性之间存在着数据依赖的关系。
我们将SCD这样的关系模式称为泛模式,它用一个大表来存放所有的数据,对于某些查询,大表能够直接给出结果,但前面也说了,其中各种数据牵连在一起,导致了许多不便甚至异常。
如果我们将SCD分解为下面这样的三个模式,S(SNo,SN,Age,Dept)、SC(SNo,CNo,Score)和D(Dept,MN):
在这里插入图片描述
这样的三个关系模式在某种程度上实现了数据的分离,S表作为学生关系表,存储学生的基本信息,与所选课程及系主任无关;D表作为系别关系表,存储系别的信息,与学生无关;SC表是选课关系别,存储学生学号、所选课程号以及得分情况,与学生表的其它信息、系别表的信息无关。如此一来,数据冗余度明显降低,而且异常也被消除了。新建一个人工智能系只需要在D表中更改即可;所有的毕业生记录都被删除也不会导致该系好像消失了一样。从上面的例子中,我们得出一个合理且合适的关系数据库中关系模式应该满足下面的条件:

  • 尽可能少的数据冗余
  • 没有插入异常
  • 没有删除异常
  • 没有更新异常

将包罗万象的泛模式分解为若干个关系模式之后,可以使得每个模式的结构都很清晰简洁。但我们需要注意,一个合适的关系模式并不是在所有情况下都是绝对的最好,例如我们要查询某个学生选修的课程名以及所在系别系主任的名字,就需要通过连接查询完成,而连接操作所需要的开销非常大,但泛模式中查询就无需连接(因为它包含了所有这些信息)。
按照一定的规范设计关系模式,将复杂的关系分解为多个简单的关系,从而把不规范的数据库模式转换为规范的数据库模式,这就是关系的规范化。


http://chatgpt.dhexx.cn/article/79sc7NKO.shtml

相关文章

数据库基本理论和概念:关系模型

关系模型有三个原理组件:结构性组件、完整性组件以及操纵性组件。 本文主要介绍结构性组件及其它组件的一些基本概念。本文的产生,基于阅读The Definitive Guide to Sqlite后的一些感想! (1)结构性组件 定义了信息的组…

数据库理论

前言 本篇只讲述数据库相关的各种概念理论,具体代码实践不在本篇讨论范围之内,此后会另起一篇写代码和例题 由于是还有几天就要考试了,所以本篇内容尽量精简,采用的语言也并不官方,尽可能通俗易懂。 数据库发展史 什么…

数据库-关系数据库设计

关系数据库设计理论包括 1.数据依赖 2.范式 1NF,2NF,3NF,BCNF 3.关系模式的规范化 设计步骤 数据分析->数据建模->关系数据库模式->关系数据库管理 ER模型 实体指数据对象 实体集指一类实体构成的集合 实体某一特性称为属性 一、函数依赖 关系:描述实体及…

数据库-关系模型

最近开始做数据库的大实验,其中有一条实验要求如下: 通过网络查找相关文献并参考所给资料进行需求分析,画出系统的 E-R 图,给出实体或联系的属性,标明联系的种类,并写出 关系模式。 画ER图没有什么问题&…

【数据库原理及应用】——关系数据库的规范化理论(学习笔记)

📖 前言:关系数据库的规范化理论是数据库设计的一个理论指南,提供了判断一个关系模式优劣的理论依据。本章讨论的关系数据库的规范化理论主要包含三方面内容:函数依赖、范式和模式分解准则。函数依赖起着核心作用,是模…

数据库原理—关系数据库

一、思维导图: 二、基本知识点: 1、关系数据库结构 (1)域:一组具有相同数据类型的值的集合(如整数、实数、指定长度的字符串集合) (2)笛卡尔积运算:假设两个…

数据库原理——关系数据理论(全)

关系数据理论 数据依赖包括函数依赖和多值依赖。 5.1 函数依赖 5.1.1 函数依赖的定义 设 R ( U ) R(U) R(U)是属性集U上的关系模式, X , Y ⊆ U X,Y\subseteq U X,Y⊆U ( X , Y X,Y X,Y是属性), 若对于 ∀ r ( 值 ) ∈ R ( U…

数据库原理——关系数据理论(一)

关系数据理论 数据依赖包括函数依赖和多值依赖。 5.1 函数依赖 5.1.1 函数依赖的定义 设 R ( U ) R(U) R(U)是属性集U上的关系模式, X , Y ⊆ U X,Y\subseteq U X,Y⊆U ( X , Y X,Y X,Y是属性), 若对于 ∀ r ( 值 ) ∈ R ( U…

关系数据库基础理论

mysql系列之一关系数据库基础理论 正是数据库管理的需要催生了数据库管理系统DBMS,而关系型数据库管理系统为RDBMS 常见的数据模型有三种: - 层次模型 - 网状模型 - 关系模型 一、关系数据库的产生 在DBMS出现之前,人们用文件来管理数据…

关系数据库(数据库原理)

目录 一、关系数据结构 二、关系的完整性 三、关系运算 四、关系的规范化 一、关系数据结构 1、关系的定义和性质 (1)、 关系的数学定义: 域: 一组有相同数据类型的值得集合 笛卡尔积: 设任意的N个域D1,D2,…,Dn。…

数据库系统-关系数据理论

数据库系统-关系数据理论 关系数据库规范化理论 关系数据库规范化是为了告诉你如何才能设计出合适的库和表。 关系模式由五部分组成,即它是一个五元组 ​ R(U,D,DOM,F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映像…

关系数据理论

关系数据理论 本篇文章记录了第十五次作业 关系数据理论指的是关系数据库的规范化理论。这一理论是用来规范数据库模式的。落到实践层面来说,就是对数据库里面的这些表应该怎么建才好的一种理论。比如在之前遇到的的学生-选课-课程表中,我们有很多属性&…

关系数据库设计理论

一、关系数据库模型 关系模型是一种基于表的数据模型,以下为关系学生信息,该表有很多不足之处,本文研究内容就是如何改进它: 下面是一些重要术语: 1.属性(attribute):列的名字&…

数据库导论 关系数据库理论

1. 数据库理论 数据库是 一系列有价值的信息组成的结构化的集合 (A structured collection of meaningful data). 我们称任何有价值的信息为 数据, (Data) 用于构建和维护数据库的软件为 数据库管理系统 (DBMS, Database Management System), 而 数据库管理系统 和 数据 共同…

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

?问题——什么是一个好的数据库逻辑设计? ●关系型数据库逻辑设计: ➠针对一个具体问题应如何构造一个适合于它的数据模式,即应构造几个关系,每个关系由哪些属性组成等 eg: ?这样的设计是一个…

关系数据库理论

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

【数据库】关系数据理论

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

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

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

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

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

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

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