数据模型
数据特征的抽象
数据模型(数据 Model)是现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型从抽象层次上描述了数据的静态特征、动态行为和约束条件。数据模型将不同的联系通过筛选、归纳、总结、命名等抽象过程产生出概念模型,用以表示对现实世界的描述,然后转换成真实、容易被人们理解和便于计算机处理的数据表现形式。
20世纪60年代中后期,出现了结构化模型,这是数据模型中最基础的模型之一,主要包括层次模型、网状模型、关系模型和面向对象模型等。20世纪90代末期,随着互联网应用和科学计算等复杂应用的快速发展,开始出现半结构化模型,用以支持结构化模型不能支持的半结构化数据(文本文件、超链接等),该模型包括XML模型、JSON 模型、RDF模型、图模型和超模型等。进入 21世纪,随着电子商务、 商业智能等应用的不断发展,终端用户对数据库查询分析的需求得不到满足,于是数据分析模型成为研究热点。2010年以来,随着大数据工业应用的快速发展,为解决海量数据造成的存储瓶颈以及管理复杂性等问题,以NoSQL和NewSQL数据库系统为代表的大数据模型成为新的研究热点。
数据模型作为数据架构管理的核心模块,主要功能包括数据模型管理、实体关系管理、逻辑转物理模型、数据模型变更管控、模型可视化等。数据模型可以应用在医疗、政务、交通、金融和商业等领域,
发展历程
20世纪60年代中后期,随着信息管理系统(IMS)的出现,结构化模型被提出,它是最早被提出来的数据模型,也是数据模型中最基础的模型之一。结构化模型主要包括层次模型、网状模型、关系模型和面向对象模型等。IBM公司的IMS系统为代表的层次模型、DBTG提出的网状模型和提出的关系模型,层次模型的典型代表是1968年美国IBM公司研发的信息管理系统(information 管理学 system,IMS)。1970年,关系数据库之父E. F. Codd(Edgar Frank Codd)在其发表的论文《A Relational Model of Data for Large Shared Data Banks》中提出了关系模型。
网状数据模型的典型代表是DBTG系统,也称CODASYL系统,它是20世纪70年代数据库系统语言研究会(CODASYL)下属的数据库任务组(DBTG)提出的一个系统方案,该系统提出的基本概念、方法和技术具有普遍意义,对于网状数据库管理系统的研制和发展起了重大的影响。传统数据模型以记录为基础,不能很好地面向用户和应用,20世纪70年代后期出现了第一种非传统的数据模型——E-R模型,即实体联系模型。该模型不同于传统数据模型面向数据库的实现,而是面向现实世界。
20世纪80年代以来,面向对象的方法和技术在计算机的很多领域都产生了深远的影响,也促进了数据库领域中面向对象数据模型的研究和发展。20世纪90年代初期,面向对象模型达到一个顶峰。
20世纪90代末期,随着互联网应用和科学计算等复杂应用的快速发展,结构化模型不能很好的支持半结构化数据(如文本文件、超链接和HTML文档等),于是开始出现半结构化模型,包括XML模型、JSON 模型、RDF 模型、图模型和超模型等。
随着电子商务、商业智能等应用的不断发展,终端用户对数据库查询分析的需求无法得到满足,科德于1993年提出了联机分析处理(OLAP)的概念,同时多维数据库和多维分析的概念被提出,数据分析模型成为研究热点,主要包括ROLAP模型、MOLAP模型和Storm模型等。ROLAP模型主要研究事实表和维表的组织表示及其变种,包括星型模型、雪花模型等;MOLAP模型主要研究数据立方及其优化计算算法。
2010年以来,随着大数据工业应用的快速发展,传统的数据模型已经无法应对数据量的爆炸式增长。为了解决因这些海量数据造成的存储瓶颈以及管理复杂性等问题,以NoSQL和NewSQL数据库系统为代表的大数据模型成为新的研究热点,主要包括key-value模型、key-column模型和key-document模型等。
组成部分
数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件,因此,数据模型通常由数据结构,数据操作和完整性约束三部分组成,也称为数据模型的三要素。
数据结构
数据结构是对系统静态特征的描述,它的描述对象包括数据的类型、内容、性质和数据之间的相互关系。
数据操作
数据操作时指对数据库中各种对象(型)的实例(值)允许执行的操作以及操作规则的集合,是对系统动态特性的描述。数据库主要有查询和更新(插入、删除和修改)两类操作。数据模型必须定义这些操作的确切定义、操作符号、操作规则(如优先级)以及实现操作的语言。
数据的完整性约束
数据的完整性约束条件是一组完整性规则,是给定的数据模型中数据及其联系所具有的制约和依存关系,用以限定符合数据模型的数据库状态以及状态的变化,防止不合语义的、不正确的数据进入数据库,以保证数据的正确、有效和相容。
数据模型类型
计算机不能直接处理现实世界中的具体事物,需通过将信息规范化整理和归类,然后才能将规范信息数据化并传入计算机的数据库中保存起来。即首先需要把这些事务抽象为一种既不依赖于某一具体的计算机,又不受某一具体DBMS所左右的信息世界的概念模型,然后再把该概念模型转换为某一具体DBMS所支持的计算机世界的数据模型。
根据不同模型的应用层次,可以将数据模型分为概念数据模型、逻辑数据模型和物理数据模型。
概念数据模型
概念数据模型是一种面向用户、面向客观世界的模型,是开发数据模型的第一步,主要用来描述现实世界的概念化结构,目标是识别系统内的各种实体、属性及其关系,与具体的数据库管理系统(DBMS)无关。概念模型中最常用的有E-R模型和面向对象模型等。
逻辑数据模型
逻辑数据模型以概念模型的框架为基础,既要面向用户又要面向系统,其内容包含每个实体中的特定数据属性以及这些属性之间的特定关系,能够直观显示数据实体、属性、键和关系。逻辑数据建模不仅会影响数据库设计的方向,还间接影响最终数据库的性能和管理。逻辑数据模型最常用的有层次模型、网状模型和关系模型等。
物理数据模型
物理数据模型是一种以面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。物理数据模型能够直观显示数据库和数据文件的物理结构,与具体的DBMS、操作系统和硬件均有关。物理数据模型包括XML模型和超模型等。
模型具体分类
从数据组织形式,可以将数据模型分为结构化模型、半结构化模型、分析模型和大数据模型。其中,结构模型包括层次模型、网状模型、关系模型、网状模型和面向对象模型;半结构化模型包括XML模型、JSON模型、图模型和超模型。分析模型包括OLAP模型和Storm模型;大数据模型包括NoSQL模型和NewSQL模型。
结构化模型
层次模型
用树形结构表示实体及其之间联系的模型称为层次模型,它是由若干个基本层次联系组成的一棵树,树的每一个节点代表一个记录类型,上一层记录类型和下一层记录类型之间是1:n的联系。层次模型有两点限制:有且仅有一个结点无父结点,此结点即为树的根;其他结点有且仅有一个父结点。
网状模型
用有向图结构表示实体类型以及实体间联系的数据模型称为网状模型。网状模型取消了层次模型的两点限制,允许结点有多个父结点,可以有一个以上的结点没有父结点。
关系模型
关系模型的主要特征是用二维表格来表示实体集,是由若干个关系模式组合的集合。关系模型中,关系的约束有实体完整性约束、参照完整性约束和用户定义的完整性约束。
E-R模型
E-R模型(entity-relationship model)即实体联系模型,这个模型直接从现实世界中抽象出实体类型及实体间的联系,然后用实体联系图(ER图)表示数据模型。ER图有三个基本成分:矩形框,用于表示实体列席;菱形框,用于表示联系类型;椭圆形框,用于表示实体类型和联系类型的属性。两个实体集之间的联系关系可以分为一对一(1:1),一对多(1:n),多对多(m:n)三种。
面向对象模型
面向对象模型是对客观世界活动的自然刻划,其中的对象是对客观世界中有形或无形实体的直接模拟。面向对象模型最基本的概念是对象和类,面向对象模型能完整地描述现实世界的数据结构
例如:在一个面向对象模型中有五个类,分别是P_P,P_S,PROJECT,PART,SUPPLIER。其中类P_P的属性PR取值为类PROJECT中的对象;属性PA取值为PART的对象;类P_S的属性PA取值为类PART的对象,属性PS取值为类SUPPLIER的对象。如图所示:
半结构化模型
XML模型
XML模型分为树模型和图模型,是由若干带有标签的结点组成的有向树,XML模型包括元素节点、属性结点、值结点和有向边。元素节点是XML树中的标签;属性结点是XML树中标签相关的属性;值结点是标签的值;有向边描述了各类型节点之间的关系。XML图模型允许用户引入ID/IDREF属性对树模型进行扩展,其中,ID属性唯一地标示了某个元素;IDREF引用其他被ID属性标示的元素,构成一个有向无环图。
JSON模型
JSON(ECMAScript object notation)是一种易于读写的轻量级数据表示格式,可以被快速、高效地解析。JSON使用文本来标识JavaScript对象的信息,支持字符串、数字、对象和数组等各种类型,并且提供快速读取数据的方式,被广泛应用在数据采集和数据挖掘中。
图模型
虽然JSON模型可以有效地解决互联网中的数据传输问题,但在表示复杂实体关系时的可读性较差,针对这一问题,研究人员基于图论提出了图模型来存储和表示实体间关系。根据边是否有方向,图模型分为无向图和有向图。图模型是提供多种查询方法,例如最短路径查询,子图同构等。
超模型
超模型由一组超实体以及定义在它们上面的关系和约束组成,超模型必须由一个或多个模型来实现。其中,超实体被定义为实体或超实体类型的集合。超实体像实体一样,除试图捕获更高级的信息以外,它还可以有属性、协议以及参加各种关系等。超模型为复杂的实体模型建模提供了快捷的方法。
分析模型
OLAP模型
OLAP即在线分析处理(On-Line Analytical Processing),是一种基于多维数据的模型。OLAP的基本操作主要包括对多维数据进行切片、切块、旋转、钻取等分析操作,可以使得用户从多个角度、多个侧面观察数据库中的数据。OLAP 模型可分为两种类型:MOLAP(多维 OLAP)和 ROLAP(关系 OLAP)
采用关系数据库来存放多维数据进行联机分析处理,则称之为关系联机分析处理(ROLAP)。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维度使用一个或多个表来存放层次、成员类别等维度的描述信息。ROLAP模型主要包括星型模型、雪花模型。
采用多维数据库进行联机分析处理,叫做多维联机分析处理(MOLAP)。MOLAP将OLAP分析所用到的多维数据以多维数组的形式存储。形成“立方体”的结构。MOLAP事先将汇总数据计算好,存放在自己特定的多维数据库中,用户的OLAP操作可以直接映射到多维数据库的访问,不通过SQL访问,加快了响应速度。
Storm模型
Storm一种面向对象的数据模型,该模型集成了不同类型数据的结构和时间两个方面,这些数据包括传统的原子数据,如整数、实数或字符串,以及出现CAD/CAM、地理和医学数据库中的程序、文本、视觉和音频信息。Storm模型注重开放性和动态性。
大数据模型
NoSQL模型
NoSQL模型是指非关系型、不遵循ACID原则的存储模型。NoSQL模型主要有3类,即Key-Value模型、Key-Column模型和Key-Document模型。
Key-VaIue模型由一个键-值映射的字典构成。Kay-Value支持字符串类型、字符串列表、无序(或有序)不重复的字符串集合以及键-值哈希表。Key-Document模型面向集合的,即数据被分组存储在数据集(集合)中,每个集合都有一个唯一的标识,类似于关系型数据库中的表结构,但该模型不需要定义模式。其核心思想是“数据用文档(如JSON)来表示”。Key-Column模型是一个稀疏的、分布式的、持久化的多维排序图,并通过字典顺序来组织数据,支持动态扩展。
NewSQL模型
NewSQL试图在可扩展的NoSQL数据库和SQL数据库之间找到一种中间立场,其目标是扩展和维护一致性,遵循ACID原则。NewSQL将基于OLTP 的事务与NoSQL的高性能解决方案集成。NewSQL使用了无共享的架构,可以方便地部署在海量节点中。
数据建模
数据建模可以使开发人员、数据架构师、业务分析师和其他利益相关方可以更轻松地查看和理解数据库或数据仓库中数据之间的关系。数据建模可分为六个步骤:
第一步是确定实体,确定要建模的数据集中表示的事务、事件或概念,且每个实体都应该是连贯的,并且在逻辑上与其他实体分开;第二步是确定每个实体的关键属性,每个实体都具有一种或多种特有的性质,即属性,用于将其与其他实体类型区分开来;第三步确定实体之间的关系,关系通常由统一建模语言(UML)进行记录。
第四步是将属性完全映射到实体;第五步是根据需要分配键,决定用于平衡减少冗余需求与性能要求的规范化程度,将名为“键”的数字标识符分配给数据组,用于表示它们之间的关系,而无需重复数据;最后一步是完成并验证数据模型,数据建模是一个迭代过程,应该随着业务需求的变化而不断重复并优化。
应用与实例
数据模型作为数据架构管理的核心模块,主要功能包括数据模型管理、实体关系管理、逻辑转物理模型、数据模型变更管控、模型可视化等。数据模型可以被设计为表示组织的当前数据系统,提供对数据如何流经组织的理解,也可以被开发为显示新的所需数据系统。
对数据进行建模,能够减少软件和数据库开发中的错误、改进应用和数据库性能、简化整个组织内的数据映射、增进开发人员和商业团体间的沟通等。基于以上特点,数据模型可以应用在医疗、金融、政务、交通和商业营销等领域。
参考资料
数据资产管理实践白皮书.中国信通院.2024-01-19
What is a Data Model?.Princeton University.2024-01-22
关系数据模型.清华大学出版社.2024-01-19
..2024-01-22
数据治理工具图谱研究报告(2021版).中国电子技术标准化研究院.2024-01-22
..2024-01-22
智慧全南.江西省发改委.2024-01-22
..2024-01-22
Edgar Frank Codd. IEEE Computer Society History Committee.2024-01-19
数据库基础.清华大学出版社.2024-01-19
数据库应用基础教程.清华大学出版社.2024-01-25
什么是数据建模?.Microsoft.2024-01-25
IBM Documentation.IBM.2024-01-25
数据库设计与治理.清华大学出版社.2024-01-25
..2024-01-19
..2024-01-19
面向对象程序设计模型中的并发行为.中国国家数字图书馆.2024-01-19
..2024-01-22
..2024-01-22
基于图模型的Hub网络的结构学习.西北工业大学期刊.2024-01-22
Data Warehousing - OLAP.tutorialspoint.2024-01-22
..2024-01-22
..2024-01-22
IBM Documentation.IBM.2024-01-22
What is NewSQL .Medium.2024-01-22
什么是数据建模?.IBM.2024-01-22
目录
概述
发展历程
组成部分
数据结构
数据操作
数据的完整性约束
数据模型类型
概念数据模型
逻辑数据模型
物理数据模型
模型具体分类
结构化模型
半结构化模型
分析模型
大数据模型
数据建模
应用与实例
参考资料