论文部分内容阅读
近年来面向对象技术的迅速和成熟为软件开发提供了一种全新的视野,然而,与软件开发息息相关的数据存储技术,仍然是关系数据库一支独秀。由于关系数据理论和面向对象技术基于不同的理论基础,使得二者在协同工作时出现阻抗不匹配(Impedance Mismatch),迫切需要一种方法,使二者能够协同工作。在面向对象技术与数据库相结合有三种途径:一是设计全新的面向对象数据库(OODBMS);二是将传统的关系数据库加以扩充,增加对面向对象技术的支持,成为对象-关系数据库(ORDBMS);三是在应用程序和关系数据库之间搭建一个通用的对象-关系映射层(或称为对象持久层)。OODBMS 目前还不成熟,它缺乏坚实的数学理论基础,并且没有一个被广泛接受的、切实可行的标准;ORDBMS虽然兼有关系数据库和支持面向对象的优点,但同样缺乏统一的标准,不同数据库提供商基于各自的技术进行设计和开发,数据共享、迁移远没有纯关系数据库方便。这样,应用关系数据库,在应用程序和关系数据库之间构建一个独立于应用程序和数据库的对象持久层,成为当前切实可行的策略。对象持久层是一层位于应用程序和数据存储之间,负责将应用程序中的对象持久化到数据存储的一种机制,本文研究的是以关系数据库为底层数据存储的持久层,也称为对象-关系映射(Object-Relational Mapping,ORM)层。目前,在对象模型与关系模型之间的映射、持久层的框架设计等方面的研究都取得了一定的成果。然而,目前在持久层方面的研究,大多将持久层看成应用程序的一个组件,该组件与应用程序密切相关,并试图使该组件提供DBMS 内核(Kernel)的部分甚至全部功能。这样的设计思想,使得持久层本身结构异常复杂、耦合性高且不易实现,或者实现后的持久层功能过于集中、复杂,增加了应用难度。考虑到目前持久层研究的现状,本文提出了一个基于组件的持久层框架,基于组件的设计大大简化了持久层框架的设计,并提供了很高的灵活型和可重用性。本文提出的持久层框架分为4 层。第一层(0 层)是一个基本的持久化管理层,提供存储管理和缓存管理;第二层(1 层)通过日志管理为持久层框架提供可靠性支持;第三层(2 层)提供对事务的支持;第四层(3 层)通过映射管理提供灵活的映射配置管理。基于该框架的持久层可以视为一组集成良好的组件,每个组件提供单一的功能,如日志记录、存储管理、映射管理等。这些组件既可以为满足特定需要而单独使用,又可以良好地结合在一起协同工作,这些组件高内聚、低耦合的特性使得对象持久层结构清晰,实现简单,并可以根据实际需要进行配置。本文系统地分析了从对象模型到关系数据库模型的各种映射模策略,比较了不同映射策略在性能、空间消耗、灵活性等方面的表现,并从完整性和关系约束