数据库系统概述
数据库系统(Database System, DBS)是用于高效管理、存储和检索数据的软件系统。
数据库系统的组成包括:数据库、硬件、软件、人员。
三级模式-两级映像
内模式:管理如何存储物理的数据,对数据的存储方式、优化、存放等。
模式:又称为概念模式,就是我们通常使用的表这个级别,根据应用、需求将物理数据划分为一张张表。
外模式:对应数据库中的视图这个级别,将表进行一定的处理后再提供给用户使用,例如,将用户表中的用户名和密码组成视图提供给登录模块使用,而用户表中的其他列则不对该模块开放,增加了安全性。
数据库设计
ER模型
实体-关系模型用于概念设计,包含实体、属性和关系。
规范化理论
减少冗余,避免异常。常用范式:
- 第一范式(1NF):属性不可再分。
- 第二范式(2NF):满足1NF且非主属性完全依赖主键。
- 第三范式(3NF):满足2NF且消除传递依赖。
SQL语言
数据定义语言(DDL)
创建或修改数据库结构,如CREATE TABLE
、ALTER TABLE
。
数据操作语言(DML)
增删改查数据,如INSERT
、UPDATE
、DELETE
、SELECT
。
数据控制语言(DCL)
权限管理,如GRANT
、REVOKE
。
事务管理
ACID特性
- 原子性(Atomicity):事务全部执行或全部回滚。
- 一致性(Consistency):事务前后数据状态合法。
- 隔离性(Isolation):并发事务互不干扰。
- 持久性(Durability):事务提交后数据永久保存。
隔离级别
- 读未提交(Read Uncommitted)
- 读已提交(Read Committed)
- 可重复读(Repeatable Read)
- 序列化(Serializable)
索引与优化
索引类型
- B树索引:平衡树结构,适合范围查询。
- 哈希索引:精确匹配高效,不支持范围查询。
- 全文索引:文本内容检索。
优化策略
- 避免全表扫描,合理设计索引。
- 使用EXPLAIN分析查询计划。
- 规范化与反规范化权衡。
分布式数据库
CAP理论
在一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)中最多满足两项。
常见技术
- 分片(Sharding):水平拆分数据。
- 复制(Replication):数据多副本存储。
数据库安全
措施
- 权限控制:角色与用户分级授权。
- 数据加密:传输加密(SSL)与存储加密。
- 审计日志:记录关键操作。
新兴趋势
- 云数据库:如AWS RDS、Azure SQL Database。
- NewSQL:结合SQL与NoSQL优势,如Google Spanner。
- 时序数据库:专用于时间序列数据,如InfluxDB。