- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于schema可变技术面向对象数据库设计与实现
基于schema可变技术面向对象数据库设计与实现 摘 要 面向对象数据库为适应新的数据库应用需要而产生的数据库系统,它将面向对象的方法与数据库技术融合在一起。本文针对在程序开发时,数据库schema经常变动而导致原有存放在数据库中的数据失效,频繁将数据导入导出的问题,构建基于schema可变技术的面向对象数据库,使得数据库在schema变化的过程中,尽可能的保留数据库中存储的原有数据,减少数据库中数据因schema变化而引起的数据丢失问题,提高面向对象数据库的可用性。 【关键词】schema可变 面向对象数据库 面向对象对象数据库是面向对象技术与数据库技术的结合,构成新的数据库领域研究和发展方向,使数据库管理系统能够全面的支持面向对象的模型,使数据库中的数据接近于面向对象程序所定义的语义结构,实现面向对象程序与数据库的无缝衔接,提高数据库模拟和操纵客观对象的能力。同时面向对象数据库面临着与其它数据库相似的问题,如数据库的可扩展性问题、数据库性能提升问题等。 本文针对在开发设计数据库时schema经常变动而导致原有存放在数据库中的数据失效,频繁将数据导入导出的问题,提出一种基于schema可变技术的面向对象数据库,使得数据库能够在schema变动的情况下尽量保证能够继续使用以前的存储的数据而不必重新导入数据,提高数据库的可用性。 1 数据库的概要设计 依据分层设计的思想是将每个模块划分为不同的层次。整个数据库共分为三个层次,从上到下分别是接口层、数据操纵层、数据存储层,结构如如图1所示。 1.1 用户接口层 该层是数据库提供给用户的接口,主要是用于规范客户端程序如何访问数据库的应用接口,其提供了诸如查询和更新数据库中数据的方法。该层主要包含两个部分: (1)程序接口:增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作是数据库的最基本的操作,它们主要被用于描述软件系统中持久层的基本操作,同时也是数据库中最为常用的操作。 (2)管理接口:提供数据库的基本方法,如删除schema结构,查看数据库表中数据内容等。 1.2 数据操纵层 该层主要负责对数据库内的对象进行操纵,包括反射Java的类结构、类的schema的存储、索引的维护以及创建等,主要分为以下几个模块: (1)Reflector:反射(reflector)是Java语言提供的一种动态的获取加载到JVM中的类的方法、属性以及方法和属性上的标注的技术。在schema可变技术的面向对象数据库中,在很多的地方需要借助到Java语言的反射技术,如类结构的解析、schema的检测、实例中数据的获取等。 (2) ClassicMetadata:主要是用来存储解析出来的类的结构,避免对已经解析过的类的结构再次进行解析,管理类的版本以及schema的演化。 (3)Index Query:主要是对索引进行管理。它的功能体现在以下几个方面:①当需要创建索引时,根据创建索引的条件,创建索引;②当查询条件使用到索引时,根据索引的特点以及查询的方式,选择一种最为适合此种查询的索引操作;③当用户插入的数据造成索引的更新时,更新和调整索引等;④对索引的状态进行管理和监控。 1.3 数据存储层 该层主要用于维护已经存储在数据库中的数据,包括类的存储的组织方式,类的索引的结构等。主要分为以下几个模块: (1)Class Index:由于在面向对象数据库中每个类的实例都是用UUID标识的。根据UUID的重复率低、长度固定、数据结构为string类型的特点,构建索引全部类的实例的数据结构。 (2)Class Field index:由于在每个类中,可以依据每个类的属性,为某个属性建立索引,Classic Field index提供了索引,方便用户快速查询到需要的数据。 (3)ACID transection slot:ACID是指事务的原子性、一致性、独立性及持久性,是数据库必须具备的性质。ACID transection slot就是为了保证ACID在数据库中的实现而设置的。同时它也提供了部分基本的数据结构,为数据的存储提供了可能。 2 schema可变技术的实现 2.1 面向对象数据库中的Schema可变技术 数据库的Schema是对数据模型的实现。Schema表示了数据库的结构或者是数据库中的一个名字空间,包含了一组表结构、视图、和存储过程等对象。在面向对象数据库中,数据库的schema是通过类的结构来表示的,schema的变化可能会导致数据库中存放的原有数据失效或丢失。 Schema可变技术即意味着当数据库的类结构发生变化时,如果该类的部分数据以及数据的限定与上一
文档评论(0)