关系型数据库(一)

自顶向下的体系结构分析

Posted by Remilia Scarlet on April 1, 2020

从文件到数据库系统

关系型数据库出现之前的历史

1945年, ENIAC

在曼哈顿计划结束后,这些女性之后很多都投入到了电子计算机的研发之中, 成为了著名的“The Ladies of ENIAC”。 曼哈顿计划

现代电子计算机

但ENIAC没有外部存储

而作为曼哈顿计划参与者的冯诺依曼也备受这无存储

在诞生之初, 很多概念都是对现实事物的抽象. 例如文件就对应现实中的纸质文件, 文件的分类存储容器就对应现实生活中的文件夹或档案

从冯诺依曼

离散变量自动电子计算机(Electronic Discrete Variable Automatic Computer, EDVAC)

文件系统的出现终于让数据能够以固定的格式存储在外部存储设备中, 这显著提升了数据的重用性

在20世纪40年代, 电子计算机

在现代诞生初期, 也就是1940s

而由于当时计算机的主要用途是辅助科学家进行

产生的计算结果马上就会被

没人在乎数据

美国航空航天局(National Aeronautics and Space Administration, NASA)

的阿波罗计划的衍生品

终于在1969年, 由国际商业机器公司(International Business Machines Corporation, IBM)主导研制的基于层次模型的数据管理系统(Information Management System, IMS)正式发布, 这标志着通过程序自动化地

从1969年

IBM发布的开始算起

层次型数据库

数据库概论是CS基础课程之一, mysql是一种具体实现

三幻神: Oracle, MS SQL SERVER, mysql; 曾经占据了数据库系统的xxx; 直到后来互联网公司的兴起, 笨重的关系型数据库无法适应复杂多变的数据格式.

NoSQL的出现…

而随着核心技术的掌握, 国内开始去Oracle化, 开源的mysql凭借优秀的扩展性…

SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言

体系结构

数据库:MYSQL

  • 连接层: 使用连接池接收客户端发送的请求, 核心数据结构为线程池,
  • 服务层: 核心功能为处理用户输入的SQL语句, 以服务的形式提供了SQL的编译器; 具体模块包括SQL语言接口、SQL语法解析器、SQL代码优化器; 此外还提供了缓存功能以及用于备份恢复数据的实用组件
  • 引擎层: 操作的实际执行者, 负责数据的存储与查询; 表级存储引擎 MylSAM InnoDB
  • 存储层: 通过文件系统, 借助操作系统层面的硬件驱动完成数据的持久化存储

MySQL区别于Oracle、SqlServer等其他关系型数据库的最大特点是插件化的存储引擎; 定制化的存储引擎可以用来解决特定的问题

数据引擎

日志

索引

数据结构

索引优化

索引失效

参考内容

MySQL语法总结-高级语法 MySQL-5.7 高阶语法及流程控制 数据库中为什么不推荐使用外键约束