数据库系统包含复杂的数据结构。为了使系统在数据检索方面高效,并在用户可用性方面降低复杂性,开发人员使用抽象,即向用户隐藏不相关的细节。这种方法简化了数据库设计。
数据抽象主要有3个层次:
物理:这是最低级别的数据抽象。它告诉我们数据实际上是如何存储在内存中的。访问方法如顺序或随机访问和文件组织方法如 B+ 树,哈希用于相同。可用性、内存大小和记录次数是我们在设计数据库时需要了解的因素。
假设我们需要存储员工的详细信息。用于这些目的的存储块和内存量对用户是隐藏的。
逻辑:该级别包括实际以表格形式存储在数据库中的信息。它还以相对简单的结构存储数据实体之间的关系。在这个级别,用户在视图级别可用的信息是未知的。
我们可以存储员工的各种属性和关系,例如也可以存储与经理的关系。
视图:这是最高级别的抽象。用户只能查看实际数据库的一部分。此级别的存在是为了简化单个用户对数据库的访问。用户以行和列的形式查看数据。表和关系用于存储数据。同一数据库可能存在多个视图。用户可以只查看数据并与数据库交互,存储和实施细节对他们隐藏。
数据抽象的主要目的是实现数据的独立性,以节省修改或更改数据库所需的时间和成本。
我们有两个级别的数据独立性来自这些抽象级别:
物理级数据独立性:它是指能够修改物理模式而不对概念或逻辑模式进行任何更改的特性,用于优化目的,例如,数据库的概念结构不会受到存储大小的任何变化的影响数据库系统服务器。从顺序访问文件更改为随机访问文件就是这样的一个例子。这些对物理结构的更改或修改可能包括:
- 使用新的存储设备。
- 修改用于存储的数据结构。
- 更改索引或使用替代文件组织技术等。
逻辑级数据独立性:是指能够在不影响外部模式或应用程序的情况下修改逻辑模式的特性。数据的用户视图不会受到数据概念视图的任何更改的影响。这些更改可能包括插入或删除属性、更改表结构实体或与逻辑模式的关系等。