数据模型简介
我们将探讨数据模型的含义以及不同类型的模型。
为了在数据库系统中存储数据,我们需要使用一些数据结构。因此,我们通常使用的数据库系统会包含一些复杂的数据结构,这些结构在日常编程中并不常见。为了提高数据检索效率,并降低使用复杂性,开发者采用数据抽象,即向用户隐藏无关的细节。
为了实现这种抽象,我们使用数据模型。
数据模型是一组用于描述数据、数据关系、数据语义和数据约束的概念或表示方法。
在接下来的几节课中,我们将详细解释这些术语的含义。
大多数数据模型还包含一组基本操作,用于对数据库中的数据进行处理。
数据模型的类型
不同的数据模型可以分为以下几类:
1. 高层次概念数据模型
高层次概念数据模型以一种类似于人们认知数据的方式呈现数据。一个典型例子是实体-关系模型,它使用实体、属性和关系等概念来描述数据。
实体-关系模型
- 实体代表现实世界中的对象,例如员工或项目。
- 实体具有属性,用于表示其特征,如员工的姓名、地址和出生日期。
- 关系表示实体之间的关联;例如,一名员工可以参与多个项目。这种关系存在于员工与每个项目之间。
2. 基于记录的逻辑数据模型
基于记录的逻辑数据模型提供了一种用户易于理解的概念,同时仍保持与计算机中数据存储方式的相似性。这类模型中最著名的三种是:层次模型、网络模型和关系模型。
层次模型
在层次模型中,数据以树状结构组织,意味着每个记录只有一个父节点。该结构要求每个子记录只能有一个父记录,而每个父记录可以拥有一个或多个子记录。如下图所示:
网络模型
网络模型在层次结构的基础上进行了扩展,允许每个记录拥有多个父记录和多个子记录,从而形成一种广义的图结构。在关系模型出现之前,它是最受欢迎的数据模型。下图展示了网络模型的结构:
关系模型
关系模型将数据表示为关系(即表格)。例如,大学数据库系统包含多个表(关系),每个表由若干属性(列)和元组(行)组成。
3. 物理数据模型
物理数据模型描述了数据在计算机内存中的实际存储方式,包括数据在内存中的分布与排序方式,以及如何从内存中读取数据。它具体描述每个表的结构、字段及其属性等信息,同时也说明了表在数据库中是如何构建并相互关联的。以下是物理模型的图形化表示:
如图所示,STUDENT 表包含 Std_Id、Std_Name、Age 等属性及其数据类型,DEPARTMENT 表也是如此。箭头仅表示这两个表在该模型中的关联方式。
在下一节课中,我们将讨论模式(schemas)和实例(instances)。