数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据库系统中用以提供信息表示和操作手段的形式构架。数据模型包括数据库数据的结构部分、数据库数据的操作部分和数据库数据的约束条件
内容
数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。
1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。
2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。
3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。
类型
数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。
1、概念数据模型(Conceptual Data Model):简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
2、逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。
3、物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。
在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。在逻辑数据类型中最常用的是层次模型、网状模型、关系模型。
数据库领域采用的数据模型有层次模型、网状模型和关系模型,其中应用最广泛的是关系模型。
层次模型:它的特点是将数据组织成一对多关系的结构。
层次结构采用关键字来访问其中每一层次的每一部分。
优点:
存取方便且速度快
结构清晰,容易理解
数据修改和数据库扩展容易实现
检索关键属性十分方便
缺陷:
结构呆板,缺乏灵活性
同一属性数据要存储多次,数据冗余大(如公共边)
不适合于拓扑空间数据的组织
网状模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式
优点:
能明确而方便地表示数据间的复杂关系
数据冗余小
缺陷:
网状结构的复杂,增加了用户查询和定位的困难。
需要存储数据间联系的指针,使得数据量增大
数据的修改不方便(指针必须修改)
关系数据库模型是以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法
优点:
结构特别灵活,满足所有布尔逻辑运算和数学运算规则形成的查询要求
能搜索、组合和比较不同类型的数据
增加和删除数据非常方便
缺陷:
数据库大时,查找满足特定关系的数据费时
对空间关系无法满足
数据结构
数据结构是目标类型的集合。目标类型是数据库的组成成分,一般可分为两类:数据类型、数据类型之间的联系。数据类型如DBTG(数据库任务组)网状模型中的记录型、数据项,关系模型中的关系、域等。联系部分有DBTG网状模型中的系型等。数据操作部分是操作算符的集合,包括若干操作和推理规则,用以对目标类型的有效实例所组成的数据库进行操作。数据约束条件是完整性规则的集合,用以限定符合数据模型的数据库状态,以及状态的变化。约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束;静态约束和动态约束;实体约束和实体间的参照约束等。
概念的发展
随着数据库学科的发展,数据模型的概念也逐渐深入和完善。早期,一般把数据模型仅理解为数据结构。其后,在一些数据库系统中,则把数据模型归结为数据的逻辑结构、物理配置、存取路径和完整性约束条件等四个方面。现代数据模型的概念,则认为数据结构只是数据模型的组成成分之一。数据的物理配置和存取路径是关于数据存储的概念,不属于数据模型的内容。此外,数据模型不仅应该提供数据表示的手段,还应该提供数据操作的类型和方法,因为数据库不是静态的而是动态的。因此,数据模型还包括数据操作部分。
三种重要模型
层次模型、网状模型和关系模型是三种重要的数据模型。这三种模型是按其数据结构而命名的。前两种采用格式化的结构。在这类结构中实体用记录型表示,而记录型抽象为图的顶点。记录型之间的联系抽象为顶点间的连接弧。整个数据结构与图相对应。对应于树形图的数据模型为层次模型;对应于网状图的数据模型为网状模型。关系模型为非格式化的结构,用单一的二维表的结构表示实体及实体之间的联系。满足一定条件的二维表,称为一个关系(见关系数据库)。
格式化模型可以描述复杂的数据结构,用存取路径实现数据间的联系。从60年代后期以来,在各种计算机系统上建立了许多层次模型和网状模型的数据库管理系统。这些系统成功地应用于数据处理。但这类系统具有以下缺点。首先是使用了许多与数据操作任务无关的概念,如DBTG系统中的系,用户必须按照存取路径存取数据库中的数据。其次,不支持集合处理,即未提供一次处理多个记录的功能。第三,没有充分认识端点用户直接与数据库对话的需求,缺乏为适应非预期查询而增加系统设施的能力。这些缺点降低了程序和数据的独立性,影响应用程序员的工作效率,限制端点用户对数据库的使用。
关系模型严格符合现代数据模型的定义。数据结构简单清晰。存取路径完全向用户隐蔽,使程序和数据具有高度的独立性。关系模型的数据语言非过程化程度较高,用户性能好,具有集合处理能力,并有定义、操纵、控制一体化的优点。关系模型中,结构、操作和完整性规则三部分联系紧密。关系数据库系统为提高程序员的生产率,以及端点用户直接使用数据库提供了一个现实基础。
关系模型研究的一个课题,是扩展关系模型和把数据模型形式化。1981年提出可把数据模型看成是抽象的程序设计语言。数据库是变量,数据库模式是变量的类型。数据库状态是某类变量所取的值。数据定义语言给出说明数据库变量的语法,数据操纵语言是数据模型中操作类型的具体实现,而数据库管理系统是某个数据定义语言和数据操纵语言的具体实现。这样,就可以用程序设计语言的形式概念和方法来研究数据模型。