数据库环境
ANSI-SPARC三层体系结构
ANSI(美国国家标准化协会)-SPARC(需求委员会)提出带系统目录的三层结构体系,是理解DBMS某些功能的基础
三层体系结构目的将用户的数据库视图和数据库的物理描述分离开
- 每个用户都能访问相同的数据,但可用各自定制的数据视图。每个用户都能够改变自己的数据视图,但不会影响其他用户
- 不要求用户直接处理数据库物理存储的细节,用户与数据库的交互应该独立于存储细节
- 数据库管理员(DBA)能在不影响用户试图的情况下修改数据库存储结构
- 数据库的内部结构不受存储的物理变化的影响,例如将数据转存到某个新的存储设备上
- DBA能在不影响所有用户的情况下修改数据库的概念结构
外部层 | 数据库的用户视图。这一层描述与每个用户相关的数据库部分
概念层 | 数据库的整体视图。这一层描述了哪些数据被存储在数据库中,以及这些数据 之间的联系
概念层描述:
- 所有的实体、实体的属性和实体间的联系
- 数据的约束
- 数据的语义信息
- 安全性和完整性信息
内部层 | 数据库在计算机上的物理表示。这一层描述数据是如何存储在数据库中
内部层工作:
- 数据和索引的存储空间分配
- 用于存储的记录描述(数据项的存储大小)
- 记录设置
- 数据压缩和数据加密技术
内部层之下是物理层
模式、映射和实例
对数据库的整体描述称为数据库模式。
- 在最高层,有若干外部模式(子模式),与不同的数据视图相对应
- 在概念层,有概念模式,它描述所有的实体、属性和联系及其上的完整性约束
- 在抽象的最底层,有内部模式,是内部模型的完整描述,包括存储记录的定义、表示方法、数据域,必要时还有所使用的索引和散列方案
(一个数据库只有一个概念模式和内部模式)
DBMS负责三种模式之间的映射
- 概念模式通过概念层到内部层的映射与内部模式相联系
- 每一个外部模式通过外部层到概念层的映射与概念模式相联系
上述模式和映射的案例如图
在任意时间点上,数据库中的数据构成一个数据库实例(模式有时被称为数据库的内含,实例则被称为外延)
数据独立性
逻辑数据独立性 | 外部模式不受概念模式变化的影响
修改概念模式(eg:添加或删除实体、属性或者联系)只需要让需要知道的用户知道,其他用户不用知道
物理数据独立性 | 概念模式不受内部模式变化的影响
修改内部模式(eg:使用不同的文件组织方式或存储结构、使用不同的存储设备、修改索引或散列算法)不影响概念模式,唯一需注意性能的影响
数据库语言
数据定义语言(DDL)
DDL | 一种供DBA或用户描述和明明应用所需实体、属性和联系及其相关的完整性约束和安全约束的语言
DDL可用于定义模式或修改已存在的模式,但不能用来操作数据
数据操作语言(DML)
DML | 提供了一组基本操作,支持对数据库中存储数据进行各种处理操作的语言
数据处理包括:
- 在数据库中插入新的数据
- 对数据库中存储的数据进行修改
- 检索数据库中的数据
- 删除数据库中的数据
DML中涉及数据检索的部分称为查询语言
过程化DML
过程化DML | 要求用户既告诉系统需要什么数据又说明如何检索这些数据的语言
非过程化DML
非过程化DML | 只要求用户告诉系统需要哪些数据而不需说明如何检索它们的语言
数据模型和概念建模
数据模型 | 一组集成的概念,用于描述和操作那个组织机构内的数据、数据间联系以及对数据的约束
数据模型包含:
- 结构部分(structural part)
- 操纵部分(manipulative part)
- 一组完整性约束(a set of integrity rules)
数据模型种类:
- 基于对象
常见的基于对象的数据模型
- Entity-Relationship实体-联系模型(ER)
- Semantic 语义模型
- Functional 函数模型
- Object-Oriented 面向对象模型
基于记录
- relational关系数据模型:表格
- network网状数据模型:联系被表示为络(set)
- hierarchical层次数据模型:网状模型的一种受限形式
- 物理数据模型