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