数据库
数据库
数据库,即 Database,简称 DB,是对数据进行组织、存储、管理的仓库。
- 结构性:通过结构使数据产生联系的表达。
- 类型性:每一个数据的类型是确定的。
- 独立性:数据可以被数据库分类独立存储。
- 关联性:分类存储的数据可以产生联系。
- 共享性:数据在多个应用程序之间共同操作。
数据库类型
关系型
- 关系型数据库,即 Relational Database。
- 以列和行(表)的方式存储数据。
- 表之间可以通过主 键和外键来关联和管理与维护数据之间的关系。
- 主要存储有固定结构、长期存储、需要稳定管理的数据。
- 对数据进行类型、结构和序列化的强约束。
/*
students:
列
+----+--------+---------+
| id | name | cid | <-- 列: 用户表的字段
+----+--------+---------+
| 1 | 张三 | 4 | <-- 行: 用户张三,课程ID为4
| 2 | 李四 | 5 | <-- 行: 用户李四,课程ID为5
| 3 | 王五 | 6 | <-- 行: 用户王五,课程ID为6
+----+--------+---------+
courses:
列
+----+--------+---------+
| id | name | number | <-- 列: 课程表的字段
+----+--------+---------+
| 4 | Java | 20 | <-- 行: 课程Java,人数为20
| 5 | Go | 21 | <-- 行: 课程Go,人数为21
| 6 | Rust | 22 | <-- 行: 课程Rust,人数为22
+----+--------+---------+
*/
非关系型
- 非关系型数据库,即 Non Relational Database 或 NoSQL。
- 以键值对的方式进行数据存储,无关系模型,不定义数据结构。
- 主要完成记录数据的任务,不记录数据之间的关系。
- 主要存储结构比较多样,数据多变、高并发、量比较大的数据。
/**
{
id: 1,
name: "张三"
}
*/
数据库产品
MySQL
- MySQL 是一种关系型数据库,开源免费,Oracle 旗下。
- 读写性能在关系型数据库中较为突出。
- 有特定引擎驱动,MyISAM(4/5)、InnoDB(5.5)、XtraDB。
MariaDB
- MariaDB 是在 MySQL 的基础上进行的升级,全面兼容 MySQL。
Oracle
- Oracle 是一种关系型数据库,闭源收费,Oracle 旗下。
- 分布式能力强,安全性极高,稳定性极高。
- 企业级复杂与大型数据库部署。
- 读写方面性能不如 MySQL。
SQL Server
- SQL Server 是一种关系型数据库,半免费、闭源,微软旗下。
- 目前使用相对较少。
Access
- Access 是一种关系型数据库,免费开源,微软旗下。
PostgreSQL
- PostgreSQL 是一种关系型数据库,开源免费。
- 适用于数据分析、地理信息系统、科学研究、GIS 等领域。
HaBase
- HaBase 是一种非关系型数据库。
- 分布式的、面向列的存储。
BigTable
- BigTable 是一种非关系型数据库,谷歌旗下。
- 分布式的、面向列的存储。
高并发缓存
- Redis、MemcacheDB 都是非关系型数据库.
- 适合高并发缓存存储。
文档存储
- MongoDB、CouchDB 都是非关系型数据库。
- 适合大量数据访问的文档存储。
国产数据库
- Oceanbase - 蚂蚁金服
- GaussDB - 华为
- PolarDB - 阿里
- TiDB - PingCAP
- DM8 - 达梦
数据库系统
Database
Database 即数据库,是对数据进行组织、存储、管理的仓库,本质是运行在操作系统中的软件服务。
Data
数据的本质是描述一个具体事物属性的值。
Data File
Data File 即数据文件,是数据的存储方,数据的存取本质上就是在一个个文件中读写数据。
DBMS
DBMS 即数据库管理系统,面向数据库管理员与数据库软件,数据库管理员可通过数据库管理系统来指示数据库完成对数据的组织、存储与管理。
DBA
DBA,即数据库管理员,是对数据进行操作管理的人。