数据抽象是一种将现实世界事件抽象化的方法,用它来创建、捕获和存储用户应用程序所需的数据,同时省略不必要的细节。在确定需求时,收集关于不同业务流程及其所需数据的信息。在这个过程中,数据库设计者可能会收集大量的信息——并非所有信息都立即需要用于数据建模。需要将业务对象与理解业务对象的信息分离开来。
当从一个层次(高层次概念化到低层次实现)的数据模型转移到另一个层次时,这就是如何为业务对象添加更多细节的方法。遵循数据抽象的层次,从用户级别的数据请求转移到数据库中数据的物理表示。称这为三层数据库设计架构。
这个层次也被称为外部视图。识别每个用户组的数据需求包括识别用户对数据的视图。首先,展示每个用户组所需的数据以及需要存储在底层数据库中的数据。数据库设计满足整个组织的数据需求。
一个用户组因此是一个组织的部门或分支。这样一个部门或分支的数据需求可能只是一小套数据,足以满足他们的功能需求。因此,每个部门或分支可能需要一个可能与其他相关部门或分支不同的数据集;然而,可能存在一些重叠。
以一个假设的大学为例,想要为其设计一个数据库。识别用户组如下:
HRD视图 — HRD需要关于员工的数据,即支持和学术人员,员工福利等信息。
注册视图 — 注册办公室需要关于学生注册和学生考试成绩的信息。
财务视图 — 学生账户(商务办公室)需要关于财务援助、奖学金和学生费用支付的信息。
学生生活视图 — 学生生活需要关于住在宿舍的学生的数据。
体育视图 — 体育部门需要代表大学参加区域、州和国家体育赛事的学生的数据。
员工表将包含关于员工的信息;工作台将包含关于特价的数据。教授特征表将包含关于学术人员的数据。工作表将包含不同的职位。计划表将包含关于各种健康和人寿保险计划的信息。福利表将包含关于员工选择的福利的数据。
这个抽象层次满足组织的数据需求。经常使用“概念化”这个词来表示对给定情况的总体画面。一旦概念化,就很容易想象。在数据库设计中,概念层次代表组织对数据的视图,将或整合外部视图到一个单一视图中。
这是组织范围内的数据表示,由高层管理人员查看。在那个层次上,识别主要的数据对象并以最少的细节描述它们。这就是从可能存在于它们之间的关系的角度来查看数据的地方。
为了更好地概述数据表示,使用最常用的概念模型:实体关系模型(ERM)。使用ERM,创建一个概念图来设计数据库。下图显示了使用ERM创建概念图的方法。这种方法的优点是将所有外部视图合并到组织的数据需求中,并显示数据之间的关系。
内部模型特定于所选的数据库管理系统(DBMS)。将概念模型实现到这个特定的DBMS中。本质上,将概念模型映射到所选模型的特性和限制上。这意味着内部模型依赖于DBMS。因此,DBMS软件的任何变化都可能需要更改ER模型映射以满足DBMS的要求。概念模型不受影响。这被称为逻辑独立性。
假设决定使用关系数据库管理系统(RDBMS),那么概念模型将被映射到RDBMS内部模型。这样,实体将被映射到表中。然而,选择安装DBMS的硬件平台并不重要,这使得内部模型独立于硬件,因为它不受选择安装软件的计算机的影响。