数据库基础
约 1025 字大约 3 分钟
作者寄语:
数据库就是存储数据的仓库,是电子化的文件柜,而SQL是使用最广泛的数据库语言,SQL基础是必须的。
什么是数据库
数据库的定义
数据库(Database) 是一个系统化的数据集合,以结构化(如表格)或非结构化(如文档、键值对)的形式存储,并支持高效的数据存取、管理和更新。
简单来说,数据库就像一个电子化的“文件柜”,用于存储和管理大量关联性数据。
数据库的作用
- 数据持久化:长期存储数据,避免丢失。
- 数据共享与安全:支持多用户并发访问,并通过权限控制保护敏感数据。
- 高效查询:通过索引和优化技术快速检索数据。
- 一致性保障:通过事务机制确保数据的完整性和一致性。
数据库管理系统
数据库管理系统(Database Management System, DBMS)是操作和管理数据库的软件,提供以下核心功能。
- 数据定义:创建、修改表结构(如
CREATE TABLE
)。 - 数据操作:增删改查(
INSERT
,DELETE
,UPDATE
,SELECT
)。 - 数据控制:用户权限管理(
GRANT
,REVOKE
)。 - 事务管理:保证多个操作的原子性、一致性、隔离性和持久性(ACID)。
- 备份与恢复:防止数据丢失。
数据库类型
数据库根据数据模型、存储方式和适用场景的不同,可以分为多种类型。
关系型数据库
以表(Table)形式存储数据,表之间通过主键和外键建立关联,遵循严格的结构化数据模型,使用结构化查询语言(SQL)进行数据操作。
特点:
- 结构化存储:数据按预定义的模式(Schema)组织,如字段类型、约束(如非空、唯一性)。
- ACID事务:支持原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
- 强一致性:通过事务和锁机制保证数据一致。
常见产品:
- MySQL:开源、轻量级,适合Web应用。
- Oracle:企业级,支持高并发和海量数据,但商业授权费用高。
非关系型数据库(NoSQL)
为适应大数据、高并发和灵活数据结构而设计,不强制使用固定表结构,通常牺牲部分ACID特性以换取高性能或扩展性。
四大类型:
文档型数据库
- 特点:以JSON/BSON格式存储文档,支持嵌套结构和动态字段。
- 代表:MongoDB、CouchDB。
键值型数据库
- 特点:通过唯一键(Key)快速存取值(Value),简单高效。
- 代表:Redis(内存数据库,支持持久化)、DynamoDB(AWS托管服务)。
宽列存储数据库
- 特点:按列族(Column Family)存储,适合海量数据和高吞吐写入。
- 代表:Cassandra、HBase。
图数据库
- 特点:以节点(Node)和边(Edge)存储关系,高效处理复杂关联查询。
- 代表:Neo4j、Amazon Neptune。
适用场景:
- 数据结构多变或半结构化(如用户行为日志)。
- 高并发读写(如实时排行榜、缓存)。
- 需要水平扩展(分片)的场景(如分布式系统)。
核心术语
表: 某种特定类型数据的结构化清单。同一个数据库中每个表都有一个名字,作为唯一标识,不允许重复。
列: 表中的一个字段,所有表都是由一个或多个列组成的。
行: 表中的一个记录。
主键: 一列或一组列,其值能够唯一区分表中的每一行。
外键:一个表中的字段,指向另一张表的主键,用于建立表之间的关联。
数据类型: 所容许的数据的类型。每个表列都有相应的数据类型,限制该列中存储的数据。
索引:用于加速对表中数据的查询,是一种”以空间换时间“的典型优化手段。