数据库管理系统¶
概述¶
数据库管理系统(Database Management System, DBMS)是用于定义、创建、维护和使用数据库的软件系统。它是现代信息系统的核心,广泛应用于各个领域。
数据库管理系统的功能¶
DBMS的主要功能
DBMS提供数据定义、数据操纵、数据库运行管理等功能。
1. 数据定义功能¶
数据定义语言(DDL)
用于定义数据库的结构,包括:
- 定义数据库模式
- 定义表结构
- 定义视图
- 定义索引
示例:
| SQL | |
|---|---|
2. 数据操纵功能¶
数据操纵语言(DML)
用于对数据库中的数据进行增删改查:
- INSERT: 插入数据
- UPDATE: 更新数据
- DELETE: 删除数据
- SELECT: 查询数据
示例:
| SQL | |
|---|---|
3. 数据库运行管理¶
运行管理功能
- 并发控制: 多用户并发访问控制
- 安全性检查: 用户权限管理
- 完整性检查: 数据完整性约束
- 故障恢复: 数据库恢复机制
4. 数据组织与存储管理¶
- 数据存储结构管理
- 存储空间管理
- 数据存取路径管理
- 缓冲区管理
5. 数据库的建立与维护¶
- 数据库初始化
- 数据转换
- 数据库重组
- 性能监控与优化
数据模型¶
数据模型
数据模型是数据库系统中用于描述数据结构和数据之间联系的方式。
1. 层次模型¶
层次模型
用树形结构表示实体之间的联系
特点:
- 有且只有一个根节点
- 除根节点外,其他节点有且只有一个父节点
- 适合一对多的层次关系
示例:
graph TB
A[学校] --> B[学院1]
A --> C[学院2]
B --> D[系1]
B --> E[系2]
C --> F[系3]
2. 网状模型¶
网状模型
用图结构表示实体之间的联系
特点:
- 允许一个节点有多个父节点
- 允许多对多的关系
- 结构复杂
3. 关系模型¶
关系模型
用二维表表示实体之间的联系
特点:
- 数据结构简单
- 理论基础扎实
- 应用最广泛
示例:
| 学号 | 姓名 | 年龄 | 系别 |
|---|---|---|---|
| 001 | 张三 | 20 | 计算机系 |
| 002 | 李四 | 21 | 数学系 |
| 003 | 王五 | 19 | 物理系 |
关系数据库¶
关系代数¶
关系代数运算
关系代数是关系数据库的数学基础。
1. 传统的集合运算¶
- 并(∪): R ∪ S
- 差(-): R - S
- 交(∩): R ∩ S
- 笛卡尔积(×): R × S
2. 专门的关系运算¶
- 选择(σ): 从关系中选取满足条件的元组
| SQL | |
|---|---|
- 投影(π): 从关系中选取若干属性列
| SQL | |
|---|---|
- 连接(⋈): 两个关系的连接运算
| SQL | |
|---|---|
SQL语言¶
SQL语言
SQL是结构化查询语言,是关系数据库的标准语言。
1. 数据定义语言(DDL)¶
| SQL | |
|---|---|
2. 数据操纵语言(DML)¶
| SQL | |
|---|---|
3. 数据控制语言(DCL)¶
| SQL | |
|---|---|
数据库设计¶
数据库设计步骤¶
graph LR
A[需求分析] --> B[概念结构设计]
B --> C[逻辑结构设计]
C --> D[物理结构设计]
D --> E[数据库实施]
E --> F[数据库运行维护]
1. 需求分析¶
- 收集用户需求
- 分析数据要求
- 分析处理要求
- 编写需求说明书
2. 概念结构设计¶
E-R图
实体-联系图,用于描述概念模型。
E-R图的基本元素:
- 矩形: 实体
- 椭圆: 属性
- 菱形: 联系
- 线段: 连接
3. 逻辑结构设计¶
- 将E-R图转换为关系模式
- 规范化处理
- 模式优化
4. 物理结构设计¶
- 确定数据存储结构
- 设计存取路径
- 确定数据存放位置
数据库的完整性¶
数据完整性
保证数据库中数据的正确性和一致性。
1. 实体完整性¶
- 主键不能为空
- 主键值唯一
2. 参照完整性¶
- 外键值必须是主表中存在的主键值或为空
| SQL | |
|---|---|
3. 用户定义的完整性¶
- 根据应用要求定义的约束条件
| SQL | |
|---|---|
数据库的安全性¶
安全性控制措施¶
安全性措施
- 用户标识与鉴别
- 存取控制
- 视图机制
- 审计
- 数据加密
权限管理¶
| SQL | |
|---|---|
常见数据库管理系统¶
1. 关系型数据库¶
| 数据库 | 特点 | 应用场景 |
|---|---|---|
| MySQL | 开源、轻量、快速 | Web应用、中小型系统 |
| Oracle | 功能强大、安全可靠 | 大型企业应用 |
| SQL Server | 微软产品、集成性好 | Windows环境 |
| PostgreSQL | 开源、功能丰富 | 复杂查询、GIS应用 |
2. NoSQL数据库¶
NoSQL数据库
非关系型数据库,适合大数据和Web应用。
类型:
- 键值存储: Redis, Memcached
- 文档数据库: MongoDB, CouchDB
- 列族数据库: HBase, Cassandra
- 图数据库: Neo4j, JanusGraph