Data Model
数据库按照数据结构来组织、存储和管理数据,实际上,数据库一共有三种模型:
- 层次模型
- 网状模型
- 关系模型
层次模型
层次模型就是以“上下级”的层次关系来组织数据的一种方式,层次模型的数据结构看起来就像一颗树。
网状模型
网状模型把每个数据节点和其他很多节点都连接起来,它的数据结构看起来就像很多城市之间的路网。
关系模型
关系模型把数据看作是一个二维表格,任何数据都可以通过行号+列号来唯一确定,它的数据模型看起来就是一个Excel表。
随着时间的推移和市场竞争,最终,基于关系模型的关系数据库获得了绝对市场份额。为什么关系数据库获得了最广泛的应用?
SQL - Structured Query Language
什么是SQL?SQL是结构化查询语言的缩写,用来访问和操作数据库系统。SQL语句既可以查询数据库中的数据,也可以添加、更新和删除数据库中的数据,还可以对数据库进行管理和维护操作。不同的数据库,都支持SQL,这样,我们通过学习SQL这一种语言,就可以操作各种不同的数据库。
虽然SQL已经被ANSI组织定义为标准,不幸地是,各个不同的数据库对标准的SQL支持不太一致。并且,大部分数据库都在标准的SQL上做了扩展。也就是说,如果只使用标准SQL,理论上所有数据库都可以支持,但如果使用某个特定数据库的扩展SQL,换一个数据库就不能执行了。例如,Oracle把自己扩展的SQL称为PL/SQL,Microsoft把自己扩展的SQL称为T-SQL。
现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。
总的来说,SQL语言定义了这么几种操作数据库的能力:
- DDL - Data Definition Language: DDL允许用户定义数据,也就是创建表、删除表、修改表结构这些操作。通常,DDL由数据库管理员执行。
- DML - Data Manipulation Language: DML为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。
- DQL - Data Query Language: DQL允许用户查询数据,这也是通常最频繁的数据库日常操作。
SQL语言关键字不区分大小写!但是,针对不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。同一个数据库,有的在Linux上区分大小写,有的在Windows上不区分大小写。
DB Engine
- InnoDB(MySQL)
- MyISAM(MySQL)
- PBXT
- TokuDB(MySQL)
- XtraDB(MariaDB)
XtraDB
XtraDB是由Percona开发的一款MySQL数据库的高性能存储引擎,其目的是用来代替InnoDB存储引擎,可用于需要更高性能的环境。XtraDB可以看作是InnoDB存储引擎的增强版本,它在InnoDB上进行了大量的修改和补丁,它完全兼容InnoDB,且提供了很多InnoDB不具备的有用的功能。
Reference
- [关系数据库概述]https://www.liaoxuefeng.com/wiki/1177760294764384/1179613436834240
- [TokuDB引擎特性揭秘]http://mysql.taobao.org/monthly/2017/07/04/
- [MySQL高可用性解决方案—Percona XtraDB Cluster]https://cloud.tencent.com/developer/article/1056472
- [TokuDB性能测试报告]https://zhuanlan.zhihu.com/p/25743441