DataBase Architecture Basic Knowledge

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