DBMS数据抽象是数据库管理系统的基本特征之一。它指的是将数据从其用户视图、逻辑层次和物理存储层次中分离出来的过程。DBMS通过数据抽象能够隐藏数据存储的复杂性,使用户能够通过简单而清晰的概念模型来理解和使用数据。在这个过程中,DBMS提供了三个级别的数据抽象,包括物理级别、逻辑级别和视图级别。
物理级别
物理级别是数据抽象中最低的一级,它描述了数据记录在存储设备上的实际位置和存储方式。物理级别的主要问题是如何有效地访问和管理数据。数据库管理系统使用一种叫做数据存取方法(data access method)的普通编程技术来管理物理级别的数据(例如索引和数据缓冲器等)。数据存取方法可以有效地隐藏数据存储的具体细节,让开发人员集中精力处理更重要的问题。
物理级别的一个实例是:有一个表格students
,其中包括学生的姓名(name)、性别(gender)、年龄(age)信息。在物理级别中,该表格的数据记录被存储在内存中。
逻辑级别
逻辑级别描述了数据的逻辑结构,它定义了数据在数据库中的组织方式。通常,逻辑级别的组织方式是根据数据实体和关系来进行的。有两种主要的逻辑模型:关系模型和层次模型。
关系模型将数据看作是一个多维表格,其中每一个表格称为一个“关系”,表格中的每一行称为一个“元组”,每一列称为一个“属性”。关系数据模型通过提供完整性约束来保证数据在关系表中的准确性。
层次模型将数据组织成树形结构,其中每一个节点表示一个数据实体,每一个分支表示数据间的关系。层次模型在一些特定的场景下显得比较有用。
逻辑级别的一个实例是:将students
表格的姓名、性别和年龄划分为三个属性,将每个学生看作一个实体,以表格的形式(如MySQL中的CREATE TABLE
语句)定义这个逻辑结构。
CREATE TABLE students(
name VARCHAR(20),
gender CHAR(1),
age INT(2)
);
视图级别
视图级别描述的是用户对数据的观察,也称用户级别。视图级别通常是与数据库应用程序密切相关的,并且是由应用程序程序员设计和定义的。视图级别通过描述和定义数据的子集和不同的数据组合来支持应用程序。
视图是一个表格形式的数据结构,但是与关系模型中的普通表格不同的是:视图是由其他表格组合而成的。
视图级别的一个实例是:用户需要显示students
表格中所有学生的姓名和电话号码,除此之外,用户需要显示出11岁或以上的学生的身高。这时,用户可以通过建立如下的视图来实现这个需求。
CREATE VIEW student_info AS
SELECT name, phone, height
FROM students
WHERE age >= 11;
总的来说,DBMS数据抽象通过将数据从物理存储、逻辑结构和用户视角中分离出来,使得用户可以用更加直接的方式查询和访问数据。每一级抽象代表了对数据的不同抽象层次,应用程序可以根据不同的需求使用和组合这些层次。