MySQL的架构体系以及设计范式和表关系

架构体系

MySQL体系结构是由SQL接口,解析器,优化器,缓存,存储引擎组成。
对于MySQL来说,虽然经历了多个版本迭代(MySQL5.5,MySQL5.6,MySQL5.7,MySQL8),但是每次迭代都是基于MySQL基础架构,MySQL基础架构大致包括如下几大模板组件:
1.MySQL向外提供的交互接口(Connectors)
2.管理服务组件和工具组件(Management Service&Utilities)
3.连接池组件(Connection Pool)
4.SQL接口组件(SQL Interface)
5.查询分析器组件(Parser)
6.优化器组件(Optimizer)
7.缓存主件(Caches&Buffers)
8.插件式储存引擎(Pluggable Storage Engines)
9.物理文件(File System)
MySQL的架构体系以及设计范式和表关系_第1张图片
1.MySQL向外提供的交互接口(Connectors):向外提供的交互组件,如java,.net,PHP等语言可以通过该组件来操作SQL语句,实现与SQL的交互。
2.管理服务组件和工具组件(Management Service&Utilities):提供对MySQL的集成管理,如备份(Backup),恢复(Recovery),安全管理(Security)等。
3.连接池组件(Connection Pool):负责监听对客服端向MySQL Server端的各种请求,接收请求并转发请求到目标模板。每个成功连接MySQL Server的客服请求都会被创建或分配一个线程,该线程负责客服端与MySQL Server端的通信,接收客服端发送的命令,传递服务端的结果信息等。
4.SQL接口组件(SQL Interface):接收用户SQL命令,如DML,DDL和存储过程等,并将最终结果返回给用户。
5.查询分析器组件(Parser):首先分析SQL命令语法的合法性,并尝试将SQL命令分解成数据结构,若分解失败,则提示SQL语句不合理。
6.优化器组件(Optimizer):对SQL命令按照标准流程进行优化分析。
7.缓存主件(Caches&Buffers):缓存和缓冲组件。
8.MySQL储存引擎:储存引擎真正负责MySQL中数据的存储和提取。服务器通过APl与存储引擎进行通信。
9.物理文件(File System):实际储存MySQL数据库文件和一些日志文件等的系统,如Linux。Unix,Windows等。

范式

什么是范式
范式(Normal Format),指的是符合某一种级别的关系模型的集合,表示一个关系内部各属性(字段)之间联系的合理化程度。
数据库的设计范式的目的是为了满足组织和储存的前提下使数据结构冗余最小化。
范式的级别越高,表的级别就越标准。
目前数据库应用到的范式有以下几种:
第一范式:1NF
第二范式:2NF
第三范式:3NF
为什么要使用范式
使用范式的原因在于:
1.数据结构合理化
2.数据冗余最小化
第一范式
第一范式(1NF),它是数据字段设计时必须满足原子性,数据字段是不需要拆分就可以直接应用。
实现第一范式的步骤如下:
1.设计的字段是否在使用时还需要在拆分?
2.将数据拆分到最小单位,然后设计字段
3.满足第一范式的定义
第二范式
第二范式是指字段在设计时不存在部分依赖,简单的说,第二范式规定表中必须要有主键。
部分依赖是指,首先表中存在复合主键,其次有的字段不是依赖整个主键而是 依赖主键的一部分。
第三范式
第三范式是在设计时字段之间不能存在传递依赖。
传递依赖是指某个非主键字段不直接依赖主键,而是通过别的字段传递到主键上的情况。

表关系

什么是表关系
表关系是指一个表代表一个实体,实体之间都有关联关系。这些关系可分为一对多、多对一、多对多、一对一等关系。
设计范式可以让表的结构更合理,让数据冗余更少;而好的表关系可以提高数据的查询效率。
一对一关系
一对一关系是指一张表中的一条记录与另一张表中有且只有一条记录有关系。
一对多关系
一对多关系是指一张表中的一条记录与另一张表中的多条记录有对应关系,就是一对多关系。反过来一张表中多条记录和另一张表中一条记录有对应关系就是多对一关系。
一对多关系是在真实项目设计中使用最常见的一种关系。
多对多关系
多对多关系是指表A中的一条记录对应表B中的多条记录,反之表B中的一条记录对应表A中的多条记录。

你可能感兴趣的:(mysql,架构,数据库)