作用:隐藏数据存储和维护细节,简化用户操作。
最低层次的抽象,描述数据实际上是怎样存储的。
描述数据库中存储什么数据,以及不同数据间存在何种关系。
注意:逻辑层抽象是由数据库管理员而不是逻辑层的用户所使用的。
最高层次抽象,只描述整个数据库中的某个部分。同一数据库可以提供多个视图。
视图层不仅对用户屏蔽数据库的逻辑层细节,还提供了防止用户访问数据库某些部分的安全机制。
实例:特定时刻存储在数据库中的信息的集合。
模式:数据库的总体设计。
对比程序设计语言,数据库模式对应于程序设计语言中的变量定义,而变量的值对应于数据库模式的一个实例。
数据独立性:在某个层次上修改模式定义而不影响位于其上一层模式的能力。
有点类似于程序设计语言中的抽象数据类型。用于屏蔽具体实现的细节,关注概括的结构。
数据库系统有两个层次的数据独立性:
1)物理数据独立性:修改物理模式而不必重写应用程序的能力。
2)逻辑数据独立性:修改逻辑模式而不必重写应用程序的能力。
数据模型:描述数据、数据关系、数据语义及一致性约束的概念工具的集合,是数据库结构的基础。
用于在逻辑层和视图层上描述数据。
特点:提供灵活的结构组织能力,允许显示定义数据约束。
这类模型比较著名的有:
· 实体 - 联系模型(ER数据模型)
· 面向对象模型
· 语义数据模型
· 功能数据模型
在逻辑层和视图层上描述数据。既用来定义数据库的全局逻辑结构,又用来提供关于实现的高层描述。
这类模型比较著名的有:
· 关系模型
· 网状模型
· 层次模型
在最低层次上描述数据。
常用的两种物理数据模型:
· 一致化模型
· 框架存储模型
数据库系统提供两种不同类型的语言:
1)数据定义语言 DDL:用于定义数据库模式;
2)数据操作语言 DML:用于表达数据库的查询和更新。
数据定义语言 DDL 编译结果是产生了一系列数据字典。
数据字典是一个包含元数据的文件,元数据是关于数据的数据。
数据操纵是指对数据进行增删改查。
数据操纵语言使得用户可以访问和操纵由适当的数据模式组织起来的数据。通常有两类数据操纵语言:
过程化的DML | 非过程化的DML | |
---|---|---|
特点 | 1. 要求用户指定需要什么数据; 2. 要求用户指明如何获得这些数据 | 只要求用户指定需要什么数据 |
优点 | 易学易用 | 效率高 |
事务:数据库应用中完成单一逻辑功能的操纵集合。
特点:原子性、单一性。
存储管理器:在数据库中存储的低层数据与应用程序及向系统提交的查询之间提供接口的程序模块。
存储管理器负责数据库中数据的存储、检索和更新。