潜山论坛,潜山网,天柱山论坛

 找回密码
 注册会员
查看: 1442|回复: 0

数据模型

[复制链接]
发表于 2007-6-25 00:03 | 显示全部楼层 |阅读模式

马上注册,即可查看完整内容,享用更多功能,让你轻松玩转潜山论坛。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
(1)数据模型的概念
数据模型是数据库管理系统中用于提供信息数据表示和操作手段的形式,它是对现实世界中的具体事物的抽象与表示,是由若干概念构成的集合。数据模型通常由数据结构、数据操作和完整性约束3个部分组成,也称数据模型三要素。
数据结构是数据库系统静态特性的描述,是所研究的对象类型的集合。这些对象是数据库的组成部分。对象一般分为两大类:一类是与数据类型、内容、性质有关的对象;另一类是与数据之间关联有关的对象。根据数据结构的类型不同,数据库结构通常分为层次模型、网状模型、关系模型和面向对象模型。
数据操作是对数据库系统动态特性的描述。对数据库的操作主要有两类:检索和更新(包括插入、删除、替换、修改)。数据模型要定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。
数据的约束条件是实现数据库完整性规则的集合。所谓完整性是指给定的数据模型中数据及它们之间的关联所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据库数据的正确、有效、相容和一致。数据模型应该提供定义数据完整性约束条件的机制,以反映数据必须遵守的特定的语义约束条件。
数据库的数据模型先后经历了网状模型、层次模型、关系模型和面向对象模型等阶段。其中关系模型因为有完整的理论基础,取代了网状模型和层次模型,目前关系数据库在实际应用中居于主导地位。
与传统数据相比,多媒体数据对数据模型提出了更高的要求。多媒体数据模型能够有效地抽象及表示多媒体数据库的静态及动态特征。静态特征包括多媒体对象的构成、媒体对象的属性及内容、媒体对象间的约束关系等,而动态特征则包括对媒体对象的各种形式的操作、用户交互、媒体对象间的消息传递等。在选择具体数据模型时,要考虑具体应用的要求,如为了支持多媒体数据的实时写操作,应强调数据模型的简洁性及灵活性等。由于交互性是多媒体系统的一个根本特点,因而对交互性的支持也是对多媒体数据模型的要求。此外,多媒体数据模型还要能够反映多媒体数据库的一致性约束条件等。
(2)层次模型
利用树型结构来表示实体以及实体之间的联系的模型为层次模型。层次模型中的节点为记录型,表示某种类型的实体,节点之间的连线则表示了它们之间的关系。在层次模型中,没有任何父节点的节点为根节点,只有父节点而无任何子节点的节点为叶结点。在建模过程中,层次模型主要受到两条限制,一是任何非根节点的节点有一个且仅有一个父节点;二是父子节点之间只能存在1:n关系。
层次模型构造简单、易于实现,但受到上述两个条件的限制。它不能直接表示某类实体同其他n类实体间可能存在的隶属关系,例如研究所由学校与公司合办,研究所则为学校与公司共同拥有。层次模型也不能表示两类实体间的m:n关系,如某个研究所可能由几个学校合办,研究所则为这几个学校所共同拥有。这就是层次模型的局限性。
(3)网状模型
利用网状结构来表示实体以及实体与实体之间的联系的数据模型为网状模型。网状模型与层次模型类似,其节点为记录型,用于表示某类实体,父子节点的记录之间只存在1:n关系。但网状模型允许其节点有多个父节点,从而可以直接表示某类实体与其他几类实体间可能存在的关系,因此比层次模型更为通用。
层次DBMS和网状DBMS的一个共同的缺陷是不支持数据独立性,因而数据库的层次或网状结构也就反映了库存数据记录在物理存储介质上的组织方式,同时也决定了对数据记录的访问路径。这意味着,当用户在创建一个数据库时要考虑数据的物理存储细节,数据库结构有所调整迫使相关的应用也随之发生变化。这就限制了数据库系统及其应用的可扩展性、可重用性及可移植性。
(4)关系模型
为了提高数据模型的表现能力,克服层次数据库和网状数据库的缺陷,在20世纪70年代提出了关系数据模型。关系模型利用二维表来表示实体以及实体之间的关系,每一张二维表又被称为一个关系。二维表中的每一列代表实体或实体间关系的某种属性。二维表中的一行叫做一个元组,是记录类型的实例,代表了某个具体的实体或具体实体间的特定关系。关系模型不仅可以方便地表示两个实体类型间的1:1、1:n关系,而且可以直接描述它们之间的m:n关系。
基于关系模型的数据库为关系数据库。关系数据库管理系统是到目前为止最为常见的产品,较为著名的有Oracle、SQL Server、Sybase等。关系DBMS通常支持数据独立性,因而可维护性、可扩展性、可重用性都比较好。
由于商业、行政管理等领域所涉及到的信息实体(如产品价目表、人事档案等)往往具有相类似的结构,而且实体的属性又可以为基本的数据类型所表示,这些领域的信息实体具有同构的特点,可以直接用关系数据模型表示,所以关系DBMS在商业、行政管理等应用中取得了巨大的成功。
但是,关系数据库系统不能很好地满足机械CAD(Computer Aided Design,计算机辅助设计)、多媒体等应用的需求。机械CAD、多媒体等应用所涉及的信息实体通常具有复杂、多样的结构,表现出很强的异构性。如文字、图像、图形、语音、活动图像等不同媒体类型的对象有着不同的结构,对象的属性也不完全具备原子性,而且也不再局限于几种基本的数据类型。此外,不同的多媒体对象又可能由不同数目、不同类型的媒体对象按不同的方式所构成。关系模型在数据抽象能力上的缺陷使它不能很好地表示这种复杂的、带有异构性特点的信息实体。
数据对象除了具有状态特征以外,还有一定的行为特征,如三维物体的几何变换、视频对象的播放等。状态特征和行为特征有着紧密的联系,是数据对象在应用空间所具有的语义的两个表现方面。一个数据对象的状态特征不仅在一定程度上反应了它在应用空间所经历过的各种变化,同时又是对它今后可能发生的行为的一种限制;而数据对象的行为特征则决定了该对象的状态在应用过程中的具体表现形式及其发展变化的规律。因此,在数据对象的模型化过程中,除了要利用某种数据结构来表示数据对象的状态特征以外,还要定义行为特征。
但是,关系数据模型无法表示数据对象的行为,人们只能利用关系数据库来保存数据对象在应用空间的状态,而不是与之相关的各种操作。关系数据库系统使得数据对象的状态特征与行为特征产生分离。
由于数据库保存的数据对象来源于具体的应用,因而数据对象状态特征与行为特征的分离意味着实现某一应用的各种操作无法为其他应用所共享。其他应用为了实现相同的功能的操作,需要重新编写代码。这不仅意味着工作上的重复,以及数据对象使用效率的降低,有时甚至是难以实现的。以多媒体对象为例,多媒体对象的复杂性及多样性,决定了应用程序只有在全面了解了某一类型的多媒体对象各方面的特点之后,才有可能准确地实现各种操作。例如在了解了视频数据的压缩方式及具体压缩参数以后,视频数据的编辑、播放操作才可能实现,通常只有具体生成某一多媒体对象的应用程序才具备这一基础。因此,多媒体对象状态特征和行为特征如果被分割开来将妨碍多媒体数据在不同应用程序间的共享。换言之,关系数据库系统不适合于多媒体应用。
(5)语义模型
80年代前后,人们提出了一些新的数据模型。在这些的数据模型之中,语义模型是较具代表性的一种。
ER模型是最早出现的语义模型。ER模型包含了实体、属性以及实体间关系等基本概念。实体、关系都有型与值之分。实体类型代表相同属性的实体构成的集合,在ER模型中被称为实体集;关系类型是由若干实体类型组成的有序列。一个具体的实体必定隶属于某一个实体集,即表现为相应的实体类型的取值。由若干具体的实体构成的有序列则表现为某种关系类型的取值。虽然ER模型可以直接表示实体间的1:1、1:n及m:n关系,但早期的ER模型并不完全具备聚集和归纳/限定的概念。改进后的ER模型能够支持聚集和归纳/限定的抽象方法,有了很强的抽象能力,称为EER(Enhanced ER)模型。
虽然语义模型具有很强的抽象能力,但它不具备表示数据操作的功能,为此人们在语义模型的基础之上又提出了一系列的功能数据模型,其中DAPLEX是较具影响的一种。在DAPLEX模型中,实体的属性以函数的形式出现,通过对这些函数的调用,属性的取值则可以被访问及更新。
(6)复杂对象模型
复杂对象模型是继语义模型之后又一种带有实验性质的数据模型,它是对关系模型的一种扩展,其目的在于弥补关系模型在抽象能力上的缺陷。
嵌套或关系模型是较早出现的复杂对象模型,又被称为N2F (Non-First Normal)模型,VERSO模型是较为著名的N2F模型,它们的共同点是允许将关系的属性表示为关系,即允许表中嵌表。但是,由于N2F模型没有很好地解决数据对象的标识问题,因而没有办法支持同一对象同时为多个其他的对象所包含,结果造成了数据冗余,并增大了数据维护的难度。
尽管各种语义模型和复杂对象模型只在一些实验性系统中得到了运用,它们却对下一代数据库系统(即面向对象数据库系统)产生了较大的影响。
(7)面向对象数据模型
面向对象数据模型体现了面向对象技术在客观事物的模型化过程中的运用。面向对象技术是一种系统设计和开发的方法,有助于简化复杂系统的构造过程,而这种技术也使得面向对象数据模型具备了较强的抽象能力,使其能够以最为自然、最为贴切的方式表现各类媒体对象。
抽象数据类型、继承和对象标识是面向对象数据模型的三个最为基本的概念。
面向对象数据模型可以将任何一个客观事物(如声音、图片、文字、汽车、树木等)抽象为对象,对象具有状态及行为两方面特征,而由具有相同特征的对象所构成的集合则可用抽象数据类型表示。
抽象数据类型可由面向对象编程语言中的类(class)来实现。一方面,类将数据及相关的各类操作紧密地结合在一起,使之成为一个单一的实体;另一方面,类还可以限制外界所能访问的数据或操作。前一特点被称为封装(encapsulation),而后一特点则被称为信息隐藏(information hiding)。
对象标识是一种使一个对象有别于其他对象的标记,也就是说,不同的对象拥有不同的对象标识。利用对象标识的一个对象可以包含多个对象,同时,也能为多个其他对象所包含。
继承是一种在某一类定义的基础之上构造新的类定义的手段。继承使面向对象数据模型具有了归纳/限定的抽象能力,从生成类到基类是一个归纳的过程,从基类到生成类是一个限定的过程。
多态是与继承紧密相关的另一个重要的概念,它可被用来表示对象在行为方式上的差异。具体地讲,不同的数据对象可以具有某种意义相同的行为,但却有着不同的行为方式,而多态与继承则赋与了面向对象数据模型表示这种现象的能力。
总之,由于抽象数据类型、对象标识、继承及多态等特征使得面向对象数据模型具有了其他数据模型所无法比拟的抽象能力,因而这一数据模型被认为是表示多媒体信息的最佳数据模型。

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|小黑屋|潜山论坛 ( 皖ICP备19002730号-1 )
法律顾问 涂有根 网站举报电话 0556-8281111 网站举报邮箱 124200840@qq.com

GMT+8, 2024-5-23 15:21 , Processed in 0.072155 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表