一、数据库系统概述
DBMS的主要特性
- 数据访问的高效和可扩展性
- 缩短应用开发时间
- 数据独立性(物理数据独立性/逻辑数据独立性)
- 数据完整性和安全性
- 并发访问和鲁棒性(恢复)
文件系统的不足
- 数据冗余和不一致
- 多种文件格式、信息重复存储
- 数据访问困难
- 需要编写一个新的程序来完成每一个新的任务
- 数据孤立
- 多文件多格式,检索、共享数据困难
- 完整性问题
- 完整性约束称为程序代码的一部分
- 增加新的约束或更改现有的约束很困难
- 原子性问题
- 在进行数据更新时,一旦发生故障,可能导致数据库处于不一致的状态
- 例如,从一个账户转移资金到另一个账户,要么完成,要么不做
- 并发访问异常
- 为了提高系统的总体性能,许多系统允许并发访问
- 安全性问题
- 并非所有用户都可以访问所有数据
- 文件系统的访问控制不够灵活
数据抽象
- 物理层:描述数据实际上是怎么存储的
- 逻辑层:描述数据库中存储什么数据以及这些数据间存在什么关系
- 视图层:应用程序能够隐藏数据类型的详细信息
实例和模式
- 模式(Schema):数据库的总体设计
- 类似程序中变量的类型信息
- 物理模式:在物理层描述数据库的设计
- 逻辑模式:在逻辑层描述数据库的设计
- 实例(Instance):特定时刻存储在数据库中的信息的集合
- 类似于程序中变量的值
独立性
修改一层的机构定义不影响更高层的结构定义
- 物理数据独立性:修改物理结构不需要改变逻辑结构的能力
- 应用程序依赖于逻辑结构
- 应用程序独立于数据的结构和存储
- 这是使用DBMS最重要的好处
- 逻辑数据独立性:数据逻辑结构的改变不影响应用程序
- 逻辑数据独立性一般难以实现,因为应用程序严重依赖于数据的逻辑结构
数据模型
- 数据模型是一个概念工具的集合,用于描述:
- 数据结构
- 数据关系
- 数据语义
- 数据约束
- 数据抽象的不同层次需要不同的数据模型来描述
- 实体 - 关系模型(概念设计)
- 关系模型(逻辑设计)
- 其他模型
E-R(Entity-Relationship)模型
实体,如客户、账户,实体由属性描述
联系:是几个实体之间的关联