数据模型

数据模型
上级分类概念模型 编辑
用途科學建模 编辑
制作方法数据建模 编辑
拥有特性数据元素 编辑
表现概念数据建模 编辑
Stack Exchange標籤https://stackoverflow.com/tags/datamodel 编辑

在软件工程中,数据模型是定义数据如何输入和与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础,现有的数据库系统都是基于某种数据模型而建立起来的。

数据模型的作用

从更广泛的意义上说,数据模型是一种抽象模型,它组织数据元素并标准化它们之间的相互关系以及与真实世界实体属性的对应关系。[1][2]例如,一个数据模型可以规定表示汽车的属性由颜色、尺寸和车主等多个元素组成。相应地,数据建模的专业活动称为数据建模或更具体的数据库设计。有结构的数据称为结构化数据,与非结构化数据和半结构化数据相对。

要求

  1. 比较直观地模拟现实世界
  2. 容易为人理解
  3. 便于计算机实现[3]

三要素

  1. 数据结构:储存在数据库中对象类型的集合,作用是描述数据库组成对象以及对象之间的联系。
  2. 数据操作:指对数据库中各种对象实例允许执行的操作的集合,包括操作及其相关的操作规则。
  3. 数据完整性约束条件:指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,它能保证数据的正确性和一致性。[3]

角色

“数据模型”一词有两种相关但不同的含义:有时指特定应用领域中对象和关系的抽象形式化(如制造业中的客户、产品和订单);有时指定义这种形式化所使用的概念集合(如实体、属性、关系或表等概念)。[4]

数据模型的主要目的是为信息系统提供数据的定义和格式。根据韦斯特和福勒(1999)的观点,如果在系统间一致地采用相同的数据结构,那么不同应用系统可以实现数据的兼容和共享;然而,由于缺乏标准,当前的数据模型质量常常较差——业务规则被固化在数据模型中,实体类型识别不准确导致数据重复,不同系统的数据模型差异过大导致系统间接口成本高达系统总成本的25–70%。[5]

三个层次

根据美国国家标准学会(ANSI)1975年的规定,数据模型可以分为三个层次:[6]

  • 概念数据模型:描述领域的语义,定义实体类及其之间的关系。
  • 逻辑数据模型:描述由特定数据操作技术所表达的语义,包括表、列、面向对象类的描述。
  • 物理数据模型:描述数据存储的物理手段,涉及分区、处理器、表空间等。

这三个层次相对独立——存储技术的变化不影响逻辑或概念模型;表和列结构的变化(未必)影响概念模型。

历史

关系数据模型是数据库领域最重要的里程碑。1969年,埃德加·科德在IBM提出了关系模型,基于一阶谓词逻辑将数据库描述为谓词变量的有限集合上的谓词集合,为现代关系数据库奠定了数学基础。[7]

1976年,陈品山提出了实体-关系模型(ER模型),作为一种概念数据建模的全新方法,在需求分析阶段用于描述需存储的信息需求。[8]20世纪80年代,面向对象程序设计范型的兴起使数据和操作从分离走向结合,促进了对象关系数据库的发展。1990年代,对象-角色建模(ORM)等方法进一步丰富了概念建模的手段。

类型

数据库模型

常见的数据库模型包括:

  • 层次模型:以树形结构组织数据,记录之间形成一对多的父子关系。
  • 网状模型:以图结构组织数据,支持多对多关系。
  • 关系模型:以二维表为核心,通过外键维护表间关系,是目前最主流的数据库模型。
  • 对象关系模型:在关系模型的基础上扩展对象、类和继承等面向对象特性。
  • 星型模式:数据仓库中最简单的模式,由一个事实表和多个维度表组成。

实体-关系模型

实体-关系模型(ER模型)以图形方式(ER图)表示实体类型、属性和关系,常用于软件工程中的概念数据建模。ER模型有多种表示法,如IDEF1X和乌鸦脚表示法。

语义数据模型

语义数据模型定义了数据在其与其他数据相互关系中的含义,是一种描述存储符号与现实世界之间关系的抽象。它与概念数据模型密切关联,用于弥补具体DBMS在语义表达能力上的不足。[9]

地理数据模型

地理信息系统中的数据模型包括矢量模型(以点、线、面表示地理对象)和栅格模型(以像元矩阵表示连续表面),以及不规则三角网(TIN)模型。[10]

主题

数据建模

数据建模是根据业务需求创建数据模型的过程。通常先开发概念数据模型,然后细化成逻辑数据模型,最终转换为物理数据模型并生成物理数据库。

数据模型理论

数据模型理论包含三个主要组成部分:[11]

  • 结构部分:用于创建表示实体的数据库的数据结构集合。
  • 完整性部分:确保数据结构的完整性约束规则。
  • 操作部分:可应用于数据结构以更新和查询数据的操作符集合。

例如,在关系模型中,结构部分基于数学关系的概念;完整性部分以一阶逻辑表达;操作部分则运用关系代数和关系演算。

数据属性

数据模型需要满足的数据属性包括:定义相关属性(相关性、清晰性、一致性)、内容相关属性(及时性、准确性)、以及两者均涉及的属性(完整性、可访问性、成本)。[5]

参考文献

  1. ^ What is a Data Model?. Princeton University. [29 May 2024] (英语). 
  2. ^ Data Model. IBM. [2026-06-03] (英语). 
  3. ^ 3.0 3.1 陈国明,徐长航. 安全工程信息化技术概论. 中国石油大学出版社. 2008年12月: 14. ISBN 9787563623679 (中文(简体)). 
  4. ^ What is a Data Model?. IBM. [2026-06-03] (英语). 
  5. ^ 5.0 5.1 Matthew West and Julian Fowler (1999). Developing High Quality Data Models. EPISTLE.
  6. ^ American National Standards Institute. 1975. ANSI/X3/SPARC Study Group on Data Base Management Systems; Interim Report. FDT (Bulletin of ACM SIGMOD) 7:2.
  7. ^ "Derivability, Redundancy, and Consistency of Relations Stored in Large Data Banks", E.F. Codd, IBM Research Report, 1969.
  8. ^ Chen, Peter P. The Entity-Relationship Model — Toward a Unified View of Data. ACM Transactions on Database Systems. 1976, 1 (1): 9–36. doi:10.1145/320434.320440 (英语). 
  9. ^ FIPS Publication 184 released of IDEF1X by NIST, 21 December 1993.
  10. ^ Wade, T. and Sommer, S. eds. A to Z GIS
  11. ^ Beynon-Davies P. (2004). Database Systems 3rd Edition. Palgrave, UK. ISBN 1-4039-1601-2.