关系数据库基础理论

article/2025/10/9 16:20:20

mysql系列之一关系数据库基础理论

正是数据库管理的需要催生了数据库管理系统DBMS,而关系型数据库管理系统为RDBMS

常见的数据模型有三种:
- 层次模型
- 网状模型
- 关系模型


一、关系数据库的产生

在DBMS出现之前,人们用文件来管理数据,但存在很多缺陷:
1. 数据冗余和不一致性。数据冗余表示在每个shell脚本中基本上都是/bin/bash,但很多用户使用的都是bash,那么这个可能出现多次,冗余量很大;不一致性,比如有一个数据在多个文件中都被使用,那么修改的时候,需要把每个文件都手动修改。
2. 数据访问困难。如果数据库有上千万行数据,那么我们使用时,需要把这上千万行数据全部载入内存中,再使用,对硬件的要求会很高而且载入时间很长,但其实我们需要比较的也只是那一行数据而已。
3. 数据孤立。由于数据保存在不同的文件里面,所以这些文件之间的格式可能各不相同,所以后续开发一个软件来管理的话非常困难,因为它们不满足某一个规范,使得数据之间是相互孤立的。
4. 完整性问题。例如两个转账的用户之间数额的总和应该是一样的,但如果在转账的过程中出现了问题,那么文件就无法解决,除非应用程序设计上解决,但应用程序本身并无法理解数据之间的逻辑问题。
5. 原子性问题。类似于完整性问题,数据必须从一个稳定的状态转换为另外一个稳定的状态。
6. 并发访问异常问题。按道理来讲,如果一个用户访问数据库文件的前十行,另一个用户访问最后十行,本身他们俩并不会冲突,但如果某个用户需要修改的话,另外一个用户并不能访问。因为为了保证文件的完整性,我们会加锁的,但文件级别的锁安全性太高,并不适合这种访问。
7. 安全性问题。部分访问授权很难实现,很难使某一个用户只能看到其中指定的某些字段。

因为这些问题,所以出现了关系数据库
1. 关系数据库想要解决数据冗余问题,它将每一个关系都看成了一个,每一列都看成是一个属性,每一行看成是他的一个元组(也就是数据)如果有许多相同值的话,它将具有相同字段的值独立出来,把一张表拆分成两张表,降低所谓的冗余度,这种关系也叫做E-R关系模型(实体关系模型)

  • 常见的关系模型(结构化数据模型)
    • 关系模型:用一张二维表来表示关系模型
    • 实体关系模型:将一张表拆分,让它们产生某种联系
    • 对象关系模型:存储一些比较大的文件如何存储呢?可以将一个比较大的文件先存储在数据库文件管理系统当中的某一个存储空间上,表中用一个指针指向这么某一个数据,把它当作一个存储对象来进行管理。
    • 半结构化数据模型:结构化是指每一行存储的都是一样的,比如/etc/passwd文件中,第一个字段为用户名,第二个为密码等。半结构化表示它并不是唯一的,可能第一行存储的是用户名和性别,第二行存储的是用户名和年龄这种,所以每一行存储不止存储它的数据,还存储它的标签。

2.关系:关系代数,支持代数运算,比如两个集合的交集、并集等。

二、SQL和关系型数据的结构

SQL:Structure Query Language(关系结构化语言)

1、sql分类

  • DML:数据操作语言,增删改查都是DML语句:INSERT、DELETE、UPDATE、SELECT
  • DDL:数据定义语言,实现数据对象的存储和定义。CREATE、DROP、ALTER
    • 关系数据库RDB的对象基本有:库、表、索引、视图、用户、存储过程、触发器、事件调度器等。
    • 实现数据定义时,必须考虑数据的约束关系。数据库需要能够自己检查出来有没有逻辑性的错误,所以建立的时候注意它的有效数据范围。
    • 域约束:数据类型的约束
    • 外键约束:引用完整性约束
    • 主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空,一张表中只能有一个主键
    • 唯一性约束:每一行的某字段都不允许出现相同值,可以为空,一张表中可以有多个
    • 检查性约束:比如年龄只能时int型
  • DCL:数据控制语言。GRANT、REVOKE,用来定义数据库中用户的访问权限

2、关系型数据的结构

  • 表示层:表
  • 逻辑层:存储引擎,实现表和数据文件的解构
  • 物理层:数据文件
数据存储和查询
  • 存储管理器
  • 查询管理器
    负责接收用户查询,理解用户查询,并将用户的查询包括存储转换为对应的存储管理器可以理解的语句,存储管理器将数据存储到磁盘上或从磁盘上删除的这么一种组件

  • 存储管理器应该具有的组件(功能):权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器

  • 查询管理器应该具有的组件(功能):DML解释器、DDL解释器、查询执行引擎

数据存储和查询的执行过程:
1. 查询管理器接收用户查询,并理解。使用DML和DDL解释器
2. 将DML和DDL解释器的结果给查询执行引擎
3. 查询执行引擎的结果给存储管理器
4. 存储管理器将操作写入磁盘中

这里写图片描述

mysql是单进程多线程的
mysql不允许一个进程为两个用户同时提供服务,比如一个用户请求访问某一个表,而第二个用户同时访问同样的数据,这两个请求不能使用同一个进程得到服务,原因是因该考虑是否两个用户对这个数据是否都有访问权限,如果其中一个没有,那么数据的安全性不能得到保障.

  • 单进程
  • 多线程

    • 守护线程:比如数据库将数据从缓冲区管理器写到磁盘上去,这个操作和应用没有任何关系,所以这些都是需要数据库本身来完成的.
    • 应用线程

    但因为数据库的请求很多时候需要的数据量是很大的,比如现在有十个用户同时对某个数据库访问,第一个用户需要载入256M的数据,第二个用户需要1G的数据等等.所以数据库通常是一个系统最慢的节点所在,应该尽量避免数据库的交互.那么应该怎么提高数据库的交互速度?

    • 缓存:第一次查询后保存缓存第二次访问时直接使用结果
    • 线程重用(thread reuse):一个用户退出之后,它的线程空闲下来之后不直接删除该线程,放在空闲线程池中,以后用户使用,直接用这个空闲的去响应它

三、关系运算

关系运算主要为了实现mysql语句的执行

  1. 投影:只输出指定属性
  2. 选择:只输出符合条件的行,类似于通过WHERE完成
  3. 自然连接:具有相同名字的所有属性上所有取值相同的行
  4. 笛卡尔积:不考虑表与表只见的关系,直接连接
  5. 并:和求并集相同

四、sql语言的组成部分

SQL语言的组成部分:DDL、DML、完整性定义语言(DDL的一部分功能)、视图定义、事务控制、嵌入式SQL和动态SQL、授权

使用程序设计语言如何与RDBMS交互
- 嵌入式SQL:与动态SQL类似,但是其语言必须在程序编译时完全确定下来,并由预处理器进行处理
- 动态SQL:程序设计语言使用函数(mysql_connect())或者方法与RDBMS服务器建立连接,并进行交互,通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理。

五、mysql插件式存储引擎

mysql不同的存储引擎可以实现不同的功能
- 5.5.8之前,默认引擎为MyISAM
- 5.5.8之后,默认引擎为InnoDB
简单来讲,MyISAM不支持事务,而InnoDB支持事务。所以InnoDB更适合在线事务处理系统
这里写图片描述
数据库逻辑请求过程


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

相关文章

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

目录 一、关系数据结构 二、关系的完整性 三、关系运算 四、关系的规范化 一、关系数据结构 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部分:原则、要求和试验&…

IEC60958/61937协议

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

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

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

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

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

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

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

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

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

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

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

iec611313标准下载_IEC 61730-1-2016

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

iec611313标准下载_IEC 62108-2016

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

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

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