一、数据库的基本概念
-
数据(Data)
-
信息的符号表示,如数字、文本、图像等。
-
-
数据库(Database, DB)
-
有组织的数据集合,支持高效访问和管理。
-
-
数据库管理系统(DBMS)
-
管理数据库的软件(如 MySQL、Oracle、MongoDB),提供数据定义、操作、安全等功能。
-
-
数据库系统(DBS)
-
包含数据库、DBMS、应用程序及用户的完整系统。
-
二、数据库类型
-
关系型数据库(RDBMS)
-
数据以表(Table)形式存储,表之间通过主键和外键关联。
-
常见系统:MySQL、Oracle、SQL Server、PostgreSQL。
-
-
非关系型数据库(NoSQL)
-
灵活的数据模型(键值对、文档、列族、图等),适合大规模分布式场景。
-
常见系统:MongoDB(文档型)、Redis(键值型)、Cassandra(列族型)、Neo4j(图数据库)。
-
三、关系型数据库核心概念
-
表(Table)
-
由行(记录)和列(字段)组成的数据结构。
-
-
主键(Primary Key)
-
唯一标识表中每行数据的列(如
id
)。
-
-
外键(Foreign Key)
-
指向其他表主键的字段,用于建立表间关系。
-
-
索引(Index)
-
加速数据查询的数据结构(如 B+树)。
-
-
SQL(Structured Query Language)
-
操作数据库的标准语言,分为:
-
DDL(数据定义语言):
CREATE
,ALTER
,DROP
-
DML(数据操作语言):
SELECT
,INSERT
,UPDATE
,DELETE
-
DCL(数据控制语言):
GRANT
,REVOKE
-
-
四、数据库设计
-
范式化(Normalization)
-
减少数据冗余,确保数据一致性,常用范式:
-
第一范式(1NF):列不可再分。
-
第二范式(2NF):消除部分依赖。
-
第三范式(3NF):消除传递依赖。
-
-
-
ER模型(实体-关系模型)
-
通过实体、属性、关系描述数据结构。
-
工具:ER图(如 Chen 图、Crow's Foot 图)。
-
五、事务与ACID特性
-
事务(Transaction)
-
一组原子性操作的集合(如转账操作)。
-
-
ACID特性
-
原子性(Atomicity):事务要么全部完成,要么全部回滚。
-
一致性(Consistency):事务前后数据库状态一致。
-
隔离性(Isolation):并发事务互不干扰。
-
持久性(Durability):事务提交后数据永久保存。
-
六、数据库操作与管理
-
基本SQL示例
-- 创建表 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ); -- 插入数据 INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com'); -- 查询数据 SELECT * FROM users WHERE id = 1; -- 更新数据 UPDATE users SET email = 'alice_new@example.com' WHERE id = 1; -- 删除数据 DELETE FROM users WHERE id = 1;
-
备份与恢复
-
定期备份数据(全量/增量备份),防止数据丢失。
-
-
性能优化
-
使用索引、优化查询语句、分库分表等。
-
七、常见数据库技术扩展
-
视图(View)
-
虚拟表,基于查询结果动态生成。
-
-
存储过程(Stored Procedure)
-
预编译的SQL代码块,提高复用性。
-
-
触发器(Trigger)
-
在特定事件(如INSERT/UPDATE)时自动执行的操作。
-
八、现代数据库趋势
-
云数据库
-
如 AWS RDS、Azure SQL Database、阿里云 PolarDB。
-
-
分布式数据库
-
支持水平扩展,如 Google Spanner、TiDB。
-
-
大数据与数据仓库
-
如 Hadoop、Hive、Snowflake。
-
总结
数据库基础涵盖数据存储、关系模型、SQL语言、事务管理及设计原则。掌握这些知识是开发、数据分析、运维等领域的必备技能。深入学习可进一步探索特定数据库系统(如 MySQL 或 MongoDB)的高级功能。