共同学习进步

我学数据库(6)--数据模型之逻辑模型(续)

  在写之前,提一件很高兴的事,终于有网友评论我的随笔了,虽然不是什么大事,但却是对本人学习莫大的支持与鼓励,我会坚持下 去,再接再厉。之前的随笔内容会随着学习的深入有所修改,也欢迎各位网友给出评论指出问题,帮助我学习。欢迎各位网友各抒己见,表达自己好的想法,共同进 步。谢谢网友飘逸的华仔 

  本次随笔是关于其它的一些数据模型,大部分的资料来源于网络,仅供学习参考。

  1、扩展关系模型,对传统的关系模型 (1NF) 进行扩充,引入了少数构造器,称为复杂数据模型,一种是偏重于结构的扩充(嵌套关系模型),一种是侧重于语义的扩充。(构造器,大部分都是介绍java、C #等编程语言构造器,推荐园内网友guowenhui的一篇文章:http://www.cnblogs.com/guowenhui/archive/2011/11/03/2235175.html

  这类研究相对来说是“改良性”的:即在传统关系模型上增添各种特点,或打破原有约束以支持各种新型的、复杂结构的数据。早期对关系模型的扩展主要包括非第一范式和抽象数据类型ADT。(这里给出非第一范式的定义,资料来源于网络,所有解释权归原作者所有。)

   非第一范式打破了关系模型中第一范式的要求,从而能够有效地描述复杂实体。这方面的工作主要集中在20世纪80年代,所作的扩充也各有不同,包 括:P.Pistor等提出的AIM-P中,允许关系的属性为任意域;Jaeschke与Schek所扩充的关系模型允许关系带有集合值属性;由 Thomas和Fischer提出的“嵌套关系模型”。其中,嵌套关系模型融合了前两种模型,它允许关系中集合操作与聚合操作以任意层次相互嵌套,建模能 力最强,因此后续的研究大多围绕嵌套关系进行,包括代数和演算系统、查询语言、规范化等。

  抽象数据 类型( Abstract Data Type,ADT)原本是程序设计中的重要概念,它强调数据的封装,是面向对象思想的起源之一。而在数据库系统中,ADT表示用户定义类型,用户不仅要定 义类型的规格(数据长度及适用函数),还需要用外部语言予以实现。DBMS对新类型进行登记,并在适当时机调用相应函数。将ADT引入DBMS的先驱是加 州伯克利大学的ADT—Ingres,并在其后续系统Postgres中进一步阐明了相关的优化方法。ADT是扩展数据库类型系统的强大武器,在很多系统 中都采用这种方法。

  关系模型的这类扩展,克服了平关系不能自然地表达复杂实体结构的缺点,并因为与 平关系有着自然的联系,从而可以充分利用平关系系统的研究成果和原有的理论基础。另一方面,这种方法虽然确实增强了关系数据库(RDB)的建模能力,但在 数据聚合、概化和特化、刻画复杂对象行为以及对象标识的稳定性等方面,仍未能有根本性改善。(平关系怎么解释?网上没有搜到资料,本人理解好像就是数据库中经常说的关系模型表示的关系吧,就是下边说的标准关系模型表示的那样。)

   在标准关系模型中,关系是相同结构的元组集合,每个元组是具有原子类型值的聚合。在这类关系中,集合、聚合只使用了一次。NF2嵌套关系模型是要把这种 集合概念和聚合概念嵌套使用多次,而且是有限的、预先定义好的次数。即元组的某个属性值是一个关系,关系的元组又是具有原子值和关系值的聚合体,如此嵌套 若干次,直到元组的所有属性都是原子值域为止。

  2、增加全新的数据构造器和数据处理原语,以表达复杂的结构和丰富的语义,即语义数据模型,只用于概念建模。

   语义数据模型的模型结构是由若干种抽象所组成,用这些抽象来描述空间实体的基本语义特征,再根据语义模型结构规则把这些抽象结合起来形成模型。语义模型 的抽象是比数据结构更高的层次,通过抽象在空间实体层次上构造模型,形成空间实体类别以及这些类别之间的关联,在基本语义结构被确定后面加入数据元素。语 义对象模型用来文档化用户需求并建立数据模型的。它通过确定在用户需求中我们称之为语义对象的可标识事物, 然后确定这些事物的属性来表达语义对象的特征及其之间的联系来建立数据模型 。语义对象模型依赖于语义对象、对象属性等构件建立模型。但成熟的数据库管理系统都是基于经典模型的, 因此利用语义对象模型建模方法建立的模型最终还须转化为经典模型, 通常为关系模型。(关于介绍语义模型的资料有很多,感兴趣的网友可以查一查,加深一下对语义模型的认识。这里给出一些语义模型与E-R模型的不同点:建模工具不同;对数据的抽象程度不同;出发点不同;接近用户程序程度不同;包含元数据量不同;适于不同的概念设计)

  3、面向对象的数据模型(对象关系数据库)

   这类研究将面向对象思想融人数据库技术,从而发展为全新概念的面向对象数据库管理系统(object—oriented database management system,OODBMS)。尽管OODB缺乏通用数据模型、形式基础及强有力的实验活动,但一般说来,它至少包含有如下核心概念:

  (1)对象和对象标识。在面向对象系统和语言中,现实世界的客体统一地用对象来模拟,每一对象有与之相联系的惟一标识符。

  (2)属性和方法、封装和消息传递。每一对象都有一个状态和行为。对象的状态是对象属性值的集合,而对象的行为是作用于对象状态上的方法(程序代码)集。对象的属性值本身也是一个对象。被封装在对象中的状态和行为只有通过显式的消息发送才能存取。

  (3)类和ADT。类是把具有相同属性和方法的对象组织在一起的一种手段,对象和类之间的关系是instance-of联系。类的含义与ADT相似。

  (4)类层次和继承。面向对象系统允许用户从已有类中导出新类。新类继承父类的所有属性和方法。它们之间的关系是子类——超类联系。用户可以为新类指定附加的属性和方法。一个类可以有任意多个子类。

   面向对象数据库技术除提供传统关系数据库系统的功能之外,还利用类来组织复杂对象,利用方法来模拟复杂对象行为,利用继承机制来实现对象属性和方法的重 用。虽然 OODBMS在一些特定领域(如CAD)内能较好地满足应用需求,但由于它不支持标准的结构化查询语言(structured query language,SQL),从而在通用性方面失去了优势。还有,目前绝大多数OODBMS都不能很好地支持视图、自动查询优化处理、动态模式演变、并发 控制、安全授权、故障恢复及参数化的系统性能调整等等,所以Won Kim认为OODB更像一个面向对象程序设计语言(object oriented programming language,OOPI)的持久存储系统而不是数据库管理系统。

  4、XML数据模型(XML Query Data Model)

   随着Internet的普及和Web技术的快速发展,作为Internet上信息表示和数据交换标准的XML应运而生。XML数据已在Web上广泛流 行,从企业报表、商业广告到技术文档,无所不包。如何有效地管理XML数据成了Web应用领域中一个亟待解决的重要课题。XML是一个开放的、以文字为基 础的卷标语言,它可以给数据提供结构的以及与语义有关的信息。这些关于数据或中继数据(metadata)提供附加的意义和目录给使用那些数据的应用程 序,而且也将以网络为基础的信息管理和操作提升到一个新的水平。XML已经成为HTML一个强而有力且标准化的互补,作为在网络上传递信息的另一个重要功 能,XML的目的是同时供网页的创作者和程序设计人员使用。XML是以文字为基础的,它可以很容易地让非技术性人员了解。但是,它所提供的组织、描述和结 构化数据的能力,使它也可为技术性的应用程序所使用。因此,XML所建立的结构化数据便可同时供数据处理和显示之用。XML也被称为一种语言,而且能用来 创造其他的语言。

 

  以上都是一些新的理念和建模方法,对数据库的发展起到了巨大的推动作用。虽然这些对以后学习关系数据库的知识没有多大关联,但起码多了解一点关于数据库发展的新方向对学习的总体把握还是有好处的。到此为止呢,逻辑模型的学习就告为一个段落。在下一此随笔中将学习一下关于数据库系统的结构知识。

 

posted on 2013-02-28 12:15  满天海晨星  阅读(606)  评论(0)    收藏  举报

导航