用于非关系与关系型数据库间数据交互的方法和装置制造方法

文档序号:6537705阅读:253来源:国知局
用于非关系与关系型数据库间数据交互的方法和装置制造方法【专利摘要】本发明公开了一种用于非关系和关系型数据库间数据及数据结构交互的方法和装置,其中该方法包括:获取源数据库的第一物理模型;定义第一物理模型对应的数据库的数据特征和查询特征;根据第一物理模型、数据特征和查询特征生成中间模型;根据预设策略、中间模型的数据结构及中间模型所包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型;建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中。本发明实施例的方法,在关系型数据库的数据模型和非关系型数据库的存储结构间建立中间模型,从而为在关系型数据库和非关系型数据库之间进行存储结构和数据转换提供模型支撑。【专利说明】用于非关系与关系型数据库间数据交互的方法和装置【
技术领域
】[0001]本发明涉及互联网【
技术领域
】,尤其涉及一种用于非关系与关系型数据库间数据及数据结构交互的方法和装置。【
背景技术
】[0002]随着互联网的快速发展,互联网中数据的种类和规模都在以惊人的速度增长,“大数据”时代的来临已经成为现实。目前,由于传统的关系型数据库在应对大数据的存储、查询和分析等需求时,出现了性能和规模上的瓶颈,因此各种非关系型数据库(NoSQL数据库)应运而生,成为数据存储和分析领域的一支新生力量。[0003]NoSQL为非关系型数据存储的广义定义,它打破了长久以来关系型数据库与ACID(一种数据库事务正确执行的四个基本要素的缩写,四个基本要素为:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))理论大一统的局面。非关系型数据库的数据存储不需要固定的表结构,通常也不存在连接操作,并且,在大数据存取上具备关系型数据库无法比拟的性能优势。非关系型数据库以不同的存储结构为分类依据,可分为Key-Value数据库、列族数据库、文档型数据库和图数据库等。虽然各种非关系型数据库在存储结构和存储方式上有极大的区别,但是共通之处都为采取灵活的存储结构、面向应用、有较高的性能。[0004]面对非关系型数据库的存储性能和规模优势,越来越多的互联网应用商开始转向非关系型数据库。例如,在同一个应用中同时使用关系型数据库和非关系型数据库、或是将数据在关系型数据库和非关系型数据库之间进行导入导出、分析非关系型数据库的数据结构等,都是非关系型数据库研究和应用的重要研究方向。[0005]但是,由于非关系型数据库一般没有固定的存储规则(或模型),因此,将数据从关系型数据库导入非关系型数据库时,需要通过应用的性能和规模需求动态设计存储方式。而当数据从非关系型数据库导入关系型数据库时,因非关系型数据库的非结构化特性,将在关系型数据库中建立相应的表结构,以及将数据从非关系型数据库映射到关系型数据库的表结构,都是十分困难的问题。因此,如何在关系型数据库系统与非关系型数据库系统之间进行模型转换,并实现两类系统之间数据的有效迁移已成为学术界和工业界研究的重点。【
发明内容】[0006]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。[0007]为此,本发明的第一个目的在于提出一种用于非关系与关系型数据库间数据及数据结构交互的方法。该方法在关系型数据库的数据模型和非关系型数据库的存储结构间建立中间模型,从而为在关系型数据库和非关系型数据库之间进行存储结构和数据转换提供模型支撑。[0008]本发明的第二个目的在于提出一种用于非关系与关系型数据库间数据及数据结构交互的装置。[0009]为了实现上述目的,本发明第一方面实施例的用于非关系与关系型数据库间数据及数据结构交互的方法,包括:获取源数据库的第一物理模型;定义所述第一物理模型对应的数据库的数据特征和查询特征;根据所述第一物理模型、所述数据特征和查询特征生成中间模型;根据预设策略、所述中间模型的数据结构及所述中间模型所包含的数据特征和查询特征,将所述中间模型转换为目标数据库的第二物理模型;建立所述第一物理模型-中间模型-第二物理模型的映射关系,并根据所述映射关系将所述源数据库中的数据导出到所述目标数据库中。[0010]根据本发明实施例的用于非关系与关系型数据库间数据及数据结构交互的方法,可根据源数据库中的第一物理模型、源数据库中的数据特征和查询特征生成中间模型,并根据预设策略、中间模型的数据结构及中间模型包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型,以及建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互,至少具有以下优点:(1)在非关系型数据库尚不具备统一完备的数据模型的情况下,本发明能够完成从关系型数据库到非关系型数据库的模型和数据的映射和迁移工作,具有很强的新颖性和独创性;(2)通过依据中间模型中的数据特征和查询特征,动态地将中间模型转化为不同的目标数据库的存储模型,提高了实用性和通用性。[0011]为了实现上述目的,本发明第二方面实施例的用于非关系与关系型数据库间数据及数据结构交互的装置,包括:获取模块,用于获取源数据库的第一物理模型;定义模块,用于定义所述第一物理模型对应的数据库的数据特征和查询特征;生成模型,用于根据所述第一物理模型、所述数据特征和查询特征生成中间模型;转换模块,用于根据预设策略、所述中间模型的数据结构及所述中间模型所包含的数据特征和查询特征,将所述中间模型转换为目标数据库的第二物理模型;建立模块,用于建立所述第一物理模型-中间模型-第二物理模型的映射关系,并根据所述映射关系将所述源数据库中的数据导出到所述目标数据库中。[0012]根据本发明实施例的用于非关系与关系型数据库间数据及数据结构交互的装置,可根据源数据库中的第一物理模型、源数据库中的数据特征和查询特征生成中间模型,并根据预设策略、中间模型的数据结构及中间模型包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型,以及建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互,至少具有以下优点:(I)在非关系型数据库尚不具备统一完备的数据模型的情况下,本发明能够完成从关系型数据库到非关系型数据库的模型和数据的映射和迁移工作,具有很强的新颖性和独创性;(2)通过依据中间模型中的数据特征和查询特征,动态地将中间模型转化为不同的目标数据库的存储模型,提高了实用性和通用性。[0013]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。【专利附图】【附图说明】[0014]图1是根据本发明一个实施例的用于非关系与关系型数据库间数据及数据结构交互的方法的流程图;[0015]图2是根据本发明实施例的中间模型的结构示意图;[0016]图3是根据本发明实施例的中间模型的示意图;[0017]图4是根据本发明实施例的关系型数据库的实体-关系模型的示意图;[0018]图5是根据本发明实施例的具有“大数据量”标签的关系的两个实体进行模型转换后得到的物理模型的示意图;[0019]图6是根据本发明一个实施例的用于非关系与关系型数据库间数据及数据结构交互的装置的结构示意图。【具体实施方式】[0020]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。[0021]目前,在现有理论成果中,对关系型数据库已有关系模型(Relationalmodel)作为逻辑模型及实体-关系模型((Entity-relationshipmodel)作为概念模型可对其进行完备的描述。通常地,可以用实体-关系图对一个关系型数据库的模型进行描述。而对关系型数据库的以行-列为基础的表结构及表之间的关系,可用表关系图进行表示,其中,在数据库表关系图中,每个实体可代表关系型数据库的一张表,实体的属性可代表表的列,而实体间的关系可代表与表间的键关系。[0022]对于非关系型数据库,由于其存储数据结构的多样性(如KeyValue/文档形式/列族形式等),目前尚未有一个统一的数据模型能够描述其数据结构。但其数据结构都可归类于包含层次的复合键值对结构。[0023]本发明围绕将数据在关系型数据库系统和非关系型数据库之间进行导入导出的问题,在非关系型数据库的模型构建与模型应用方面提出了新的思想。[0024]下面参考附图描述根据本发明实施例的用于非关系与关系型数据库间数据及数据结构交互的方法和装置。[0025]图1是根据本发明一个实施例的用于非关系与关系型数据库间数据及数据结构交互的方法的流程图。[0026]如图1所示,该用于非关系与关系型数据库间数据及数据结构交互的方法可以包括:[0027]S101,获取源数据库的第一物理模型。[0028]其中,在本发明的实施例中,源数据库可为关系型数据库和非关系型数据库中的任意一种;第一物理模型可为实体-关系模型和层次模型中的任意一种。当源数据库为关系型数据库时,源数据库的第一物理模型可为实体-关系模型;当源数据库为非关系型数据库时,第一物理模型可为层次模型。[0029]举例而言,以源数据库为关系型数据库为例,可通过现有的模型提取工具从关系型数据库中提取出该关系型数据库的物理模型(即实体-关系模型)。其中,在本发明的实施例中,现有的模型提取工具可为官方提供的数据库管理工具,如Mysql对应的管理工具可为phpMyAdmin、SQLServer对应的管理工具可为MicrosoftSQLServer的各种版本等。[0030]应当理解,当源数据库为非关系型数据库时,如Hypertable、MongoDB>ApacheCassandra等,所指的模型提取工具一般均为第三方提供的,且大多为开源软件,如mongodb-Variety等,数据建模人员可自定义这些开源的提供工具以便于数据库的开发及使用。[0031]S102,定义第一物理模型对应的数据库的数据特征和查询特征。[0032]在本发明的实施例中,第一物理模型可具有多个对象,每个对象均可包含若干的数据特征和查询特征。数据特征和查询特征均可有其固定的名字,并可以以标注的形式与对应的对象关联。其中,数据特征可描述在实际数据存储中对应的对象的存储特点,如一个实体的“大数据量”特征,表示在实际存储的数据中,被标注的对象拥有较大的数据量。此夕卜,查询特征可描述在实际数据系统应用中,在进行查询和分析等操作时,对应的对象涉及的查询特点,如一个属性的“常被查询”特征,表示该属性在实际数据应用当中常被进行查询操作。[0033]S103,根据第一物理模型、数据特征和查询特征生成中间模型。[0034]具体而言,在源数据库中,由于各个实体可能会存在多种数据特征和查询特征,所以,可先将这些数据特征和查询特征进行挖掘以获取第一物理模型对应的数据库中的数据特征和查询特征,之后可将这些数据特征和查询特征附加至该第一物理模型中以生成中间模型。[0035]其中,在本发明的实施例中,中间模型可具有多个对象,每个对象可包含多个数据特征和查询特征,数据特征和查询特征均可以以标注的形式与对应的对象关联。例如,图2是根据本发明实施例的中间模型的结构示意图,如图2所示,中间模型可包含对象,还可包含实体、属性、关系等,“实体”、“属性”、“关系”均为对象的一种继承。实体可表示一个离散的对象,可以代表对实际生产中一类对象的总称,如学生、雇员、公司、班级等。关系可描述两个或更多实体间相互如何关联,如在公司和雇员之间有名为“雇佣”的关联。此外,实体可以拥有属性,一个实体拥有的属性数是固定的,属性可描述实体的特征,如学生可拥有学号、姓名、身高、体重等属性。[0036]举例而言,如图3所示,在该中间模型中,包含mb_UserInfo(用户信息)、mb_Blog(博客)、mb_Tag(标签)三个实体,这三个实体分别包含对应的属性,如mb_UserInfo(用户信息)包括nickName(姓名)、Phone(电话)、Email(邮箱地址)、City(城市)等,mb_Blog(博客)包括Uid(用户ID(Identity,身份标识号码))、MessageContent(信息内容)、DateTime(日期)等,mb_Tag(标签)包括MID(标签ID(Identity,身份标识号码))、tagContent(标签内容)、dateTime(日期)等。而mb_UserInfo(用户信息)、和mb_Blog(博客)、mb_Blog(博客)和mb_Tag(标签)间,分别存在关系。本中间模型的重点是在各对象上标注了数据特征和查询特征,如在mb_Tag实体上含有“常被添加的”标注,说明该实体在数据库实际存储中常被进行添加(append)操作。[0037]S104,根据预设策略、中间模型的数据结构及中间模型所包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型。[0038]其中,在本发明的实施例中,预设策略可理解为约定俗成的经验、数据模型转换所遵循的准则和/或规则等。[0039]应当理解,在本发明的实施例中,由于中间模型是由源数据库中的数据特征和查询特征附加到第一物理模型中以生成的,因此,中间模型所包含的数据特征和查询特征与源数据库中定义的数据特征和查询特征是一致的。[0040]具体地,在生成中间模型之后,可根据中间模型的数据结构及其包括的数据特征和查询特征,可以通过预设策略,将中间模型自动地转换为目标数据库的第二物理模型,从而在进行数据和模型迁移时,该中间模型可以映射成符合应用要求的不同的数据库的物理模型。其中,在本发明的实施例中,目标数据库可为关系型数据库和非关系型数据库中的任意一种;第二物理模型可为实体-关系模型和层次模型中的任意一种。应当理解,当目标数据库为非关系型数据库时,目标数据库的第二物理模型可为层次模型;当目标数据库为关系型数据库时,第二物理模型可为实体-关系模型。[0041]需要说明的是,本发明的实施例主要应用于非关系型数据库与关系型数据库之间数据及数据结构的交互,即从关系型数据库迁移数据到非关系型数据库、或从非关系型数据库迁移数据到关系型数据库以实现不同类型数据库之间数据及数据结构的交互。也就是说,当源数据库为关系型数据库时,目标数据库可为非关系型数据库,第一物理模型可为实体-关系模型,第二物理模型可为层次模型;当源数据库为非关系型数据库时,目标数据库可为关系型数据库,第一物理模型可为层次模型,第二物理模型可为实体-关系模型。[0042]S105,建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中。[0043]具体地,中间模型中具有一系列的数据特征和查询特征,可根据这些数据特征和查询特征以及目标数据库,通过预设策略进行模型的转换和映射,以建立第一物理模型-中间模型-第二物理模型的映射关系,之后可根据该映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互。[0044]根据本发明实施例的用于非关系与关系型数据库间数据及数据结构交互的方法,可根据源数据库中的第一物理模型、源数据库中的数据特征和查询特征生成中间模型,并根据预设策略、中间模型的数据结构及中间模型包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型,以及建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互,至少具有以下优点:(I)在非关系型数据库尚不具备统一完备的数据模型的情况下,本发明能够完成从关系型数据库到非关系型数据库的模型和数据的映射和迁移工作,具有很强的新颖性和独创性;(2)通过依据中间模型中的数据特征和查询特征,动态地将中间模型转化为不同的目标数据库的存储模型,提高了实用性和通用性。[0045]为了使得本发明的描述更加清楚,下面举例说明。[0046]例如,以从关系型数据库迁移数据到非关系型数据库为例,对于一个存储用户信息、用户撰写的博客及博客的标签的关系型数据库来说,可提取出其实体-关系模型。如图4所示,为关系型数据库的实体-关系模型,具有mb_userinfo(用户信息)、mb_blog(博客)和mb_tag(标签)这三个实体,以及这三个实体对应的属性、实体之间的关系。在该实体-关系模型当中,各实体可能存在多种数据特征和查询特征,可将这些数据特征和查询特征进行挖掘,并附加到该实体-关系模型中,即可得到用于数据迁移的中间模型。如图3所示,在该中间模型中,定义了一系列数据特征和查询特征,可根据这些数据特征和查询特征,以及非关系型数据库,通过预设策略进行模型的转换和映射,之后可根据该映射将关系型数据库中的数据导出到非关系型数据库中,以实现不同类型数据库间数据及数据结构的交互。[0047]需要说明的是,在本发明的实施例中,当中间模型中实体间的关系包含特殊的数据特征和/或查询特征时,应采取特殊的策略对其进行模型转换。例如,如图3所示,在该中间模型中,mb_Blog(博客)与mb_Tag(标签)间的关系包含“大数据量”标签,表明这两个实体间的关系量较大。对于多数非关系型数据库(如MongoDB等),处理这种具有紧密关系的情况时,可将这两个实体存储在同一个MongoDB集合内,以满足查询性能。因此,可通过中间模型的数据特征以及预设策略,即可得到非关系型数据库(以MongoDB为例)的物理模型。可见,在目标数据库的物理模型中,mb_Tag集合按照数据特征可被存储在mb_Blog集合中(如图5所示),满足了MongoDB的查询性能。[0048]为了实现上述实施例,本发明还提出一种用于非关系与关系型数据库间数据及数据结构交互的装置。[0049]图6是根据本发明一个实施例的用于非关系与关系型数据库间数据及数据结构交互的装置的结构示意图。[0050]如图6所示,该用于非关系与关系型数据库间数据及数据结构交互的装置可以包括:获取模块10、定义模块20、生成模块30、转换模块40和建立模块50。[0051]具体地,获取模块10用于获取源数据库的第一物理模型。其中,在本发明的实施例中,源数据库可为关系型数据库和非关系型数据库中的任意一种;第一物理模型可为实体-关系模型和层次模型中的任意一种。当源数据库为关系型数据库时,源数据库的第一物理模型可为实体-关系模型;当源数据库为非关系型数据库时,第一物理模型可为层次模型。[0052]举例而言,以源数据库为关系型数据库为例,获取模块10可通过现有的模型提取工具从关系型数据库中提取出该关系型数据库的物理模型(即实体-关系模型)。其中,在本发明的实施例中,现有的模型提取工具可为官方提供的数据库管理工具,如Mysql对应的管理工具可为phpMyAdmin、SQLServer对应的管理工具可为MicrosoftSQLServer的各种版本等。[0053]应当理解,当源数据库为非关系型数据库时,如Hypertable、MongoDB>ApacheCassandra等,所指的模型提取工具一般均为第三方提供的,且大多为开源软件,如mongodb-Variety等,数据建模人员可自定义这些开源的提供工具以便于数据库的开发及使用。[0054]定义模块20用于定义第一物理模型对应的数据库的数据特征和查询特征。在本发明的实施例中,第一物理模型可具有多个对象,每个对象均可包含若干的数据特征和查询特征。数据特征和查询特征均可有其固定的名字,并可以以标注的形式与对应的对象关联。[0055]其中,在本发明的实施例中,数据特征可描述在实际数据存储中对应的对象的存储特征,如一个实体的“大数据量”特征,表示在实际存储的数据中,被标注的对象拥有较大的数据量。此外,查询特征可描述在实际数据系统应用中,在进行查询和分析等操作时,对应的对象涉及的查询特点,如一个属性的“常被查询”特征,表示该属性在实际数据应用当中常被进行查询操作。[0056]生成模块30用于根据第一物理模型、数据特征和查询特征生成中间模型。具体而言,在源数据库中,由于各个实体可能会存在多种数据特征和查询特征,所有,生成模块30可先将这些数据特征和查询特征进行挖掘以获取第一物理模型对应的数据库中的数据特征和查询特征,之后可将这些数据特征和查询特征附加至该第一物理模型中以生成中间模型。[0057]其中,在本发明的实施例中,中间模型可具有多个对象,每个对象可包含多个数据特征和查询特征,数据特征和查询特征均可以以标注的形式与对应的对象关联。例如,图2为本发明实施例的中间模型的结构示意图,如图2所示,中间模型可包含对象,还可包含实体、属性、关系等,“实体”、“属性”、“关系”均为对象的一种继承。实体可表示一个离散的对象,可以代表对实际生产中一类对象的总称,如学生、雇员、公司、班级等。关系可描述两个或更多实体间相互如何关联,如在公司和雇员之间有名为“雇佣”的关联。此外,实体可以拥有属性,一个实体拥有的属性数是固定的,属性可描述实体的特征,如学生可拥有学号、姓名、身高、体重等属性。[0058]举例而言,如图3所示,在该中间模型中,包含mb_UserInfo(用户信息)、mb_Blog(博客)、mb_Tag(标签)三个实体,这三个实体分别包含对应的属性,如mb_UserInfo(用户信息)包括nickName(姓名)、Phone(电话)、Email(邮箱地址)、City(城市)等,mb_Blog(博客)包括Uid(用户ID)、MessageContent(信息内容)、DateTime(日期)等,mb_Tag(标签)包括MID(标签ID)、tagContent(标签内容)、dateTime(日期)等。而mb_UserInfo(用户信息)、和mb_Blog(博客)、mb_Blog(博客)和mb_Tag(标签)间,分别存在关系。本中间模型的重点是在各对象上标注了数据特征和查询特征,如在mb_Tag实体上含有“常被添加的”标注,说明该实体在数据库实际存储中常被进行添加(append)操作。[0059]转换模块40用于根据预设策略、中间模型的数据结构及中间模型所包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型。其中,在本发明的实施例中,预设策略可理解为约定俗成的经验、数据模型转换所遵循的准则和/或规则等。[0060]应当理解,在本发明的实施例中,由于中间模型是由源数据库中的数据特征和查询特征附加到第一物理模型中以生成的,因此,中间模型所包含的数据特征和查询特征与源数据库中定义的数据特征和查询特征是一致的。[0061]更具体地,转换模块40在生成模块30生成中间模型之后,可根据中间模型的数据结构及其包括的数据特征和查询特征,可以通过预设策略,将中间模型自动地转换为目标数据库的第二物理模型,从而在进行数据和模型迁移时,该中间模型可以映射成符合应用要求的不同的数据库的物理模型。其中,在本发明的实施例中,目标数据库可为关系型数据库和非关系型数据库中的任意一种;第二物理模型可为实体-关系模型和层次模型中的任意一种。应当理解,当目标数据库为非关系型数据库时,目标数据库的第二物理模型可为层次模型;当目标数据库为关系型数据库时,第二物理模型可为实体-关系模型。[0062]需要说明的是,本发明的实施例主要应用于非关系型数据库与关系型数据库之间数据及数据结构的交互,即从关系型数据库迁移数据到非关系型数据库、或从非关系型数据库迁移数据到关系型数据库以实现不同类型数据库之间数据及数据结构的交互。也就是说,当源数据库为关系型数据库时,目标数据库可为非关系型数据库,第一物理模型可为实体-关系模型,第二物理模型可为层次模型;当源数据库为非关系型数据库时,目标数据库可为关系型数据库,第一物理模型可为层次模型,第二物理模型可为实体-关系模型。[0063]建立模型50用于建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中。更具体地,中间模型中具有一系列的数据特征和查询特征,建立模型50可根据这些数据特征和查询特征以及目标数据库,通过预设策略进行模型的转换和映射,以建立第一物理模型-中间模型-第二物理模型的映射关系,之后可根据该映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互。[0064]根据本发明实施例的用于非关系与关系型数据库间数据及数据结构交互的装置,可通过生成模块根据源数据库的第一物理模型、源数据库的数据特征和查询特征生成中间模型,转换模块根据预设策略、中间模型的数据结构及中间模型所包含的数据特征和查询特征,将中间模型转换为目标数据库的第二物理模型,建立模型建立第一物理模型-中间模型-第二物理模型的映射关系,并根据映射关系将源数据库中的数据导出到目标数据库中,以实现不同类型数据库之间数据及数据结构的交互,至少具有以下优点:(I)在非关系型数据库尚不具备统一完备的数据模型的情况下,本发明能够完成从关系型数据库到非关系型数据库的模型和数据的映射和迁移工作,具有很强的新颖性和独创性;(2)通过依据中间模型中的数据特征和查询特征,动态地将中间模型转化为不同的目标数据库的存储模型,提高了实用性和通用性。[0065]需要说明的是,本发明除在不同数据库间数据导入导出的使用外,还可作为面向数据库管理人员的不同数据库的进入接口。通过本发明实施例中的中间模型,可以以一个统一的结构访问不同的数据库。由此,可具备很强的扩展性和简便性。[0066]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【
技术领域
】的技术人员所理解。[0067]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。[0068]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。[0069]本【
技术领域
】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。[0070]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。[0071]上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0072]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。[0073]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。【权利要求】1.一种用于非关系与关系型数据库间数据及数据结构交互的方法,其特征在于,包括:获取源数据库的第一物理模型;定义所述第一物理模型对应的数据库的数据特征和查询特征;根据所述第一物理模型、所述数据特征和查询特征生成中间模型;根据预设策略、所述中间模型的数据结构及所述中间模型所包含的数据特征和查询特征,将所述中间模型转换为目标数据库的第二物理模型;建立所述第一物理模型-中间模型-第二物理模型的映射关系,并根据所述映射关系将所述源数据库中的数据导出到所述目标数据库中。2.根据权利要求1所述的方法,其特征在于,所述源数据库、目标数据库均为关系型数据库和非关系型数据库中的任意一种;所述第一物理模型、第二物理模型均为实体-关系模型和层次模型中的任意一种。3.根据权利要求1或2所述的方法,其特征在于,当所述源数据库为所述关系型数据库时,所述目标数据库为所述非关系型数据库,所述第一物理模型为所述实体-关系模型,所述第二物理模型为所述层次模型;当所述源数据库为所述非关系型数据库时,所述目标数据库为所述关系型数据库,所述第一物理模型为所述层次模型,所述第二物理模型为所述实体-关系模型。4.根据权利要求1所述的方法,其特征在于,所述根据第一物理模型、所述数据特征和查询特征生成中间模型包括:获取所述第一物理模型对应的数据库中的数据特征和查询特征,并将所述数据特征和查询特征附加至所述第一物理模型中以生成所述中间模型。5.根据权利要求1或4所述的方法,其特征在于,所述中间模型具有多个对象,每个所述对象包含多个所述数据特征和查询特征,所述数据特征和查询特征均以标注的形式与对应的对象关联。6.一种用于非关系与关系型数据库间数据及数据结构交互的装置,其特征在于,包括:获取模块,用于获取源数据库的第一物理模型;定义模块,用于定义所述第一物理模型对应的数据库的数据特征和查询特征;生成模块,用于根据所述第一物理模型、所述数据特征和查询特征生成中间模型;转换模块,用于根据预设策略、所述中间模型的数据结构及所述中间模型所包含的数据特征和查询特征,将所述中间模型转换为目标数据库的第二物理模型;建立模块,用于建立所述第一物理模型-中间模型-第二物理模型的映射关系,并根据所述映射关系将所述源数据库中的数据导出到所述目标数据库中。7.根据权利要求6所述的装置,其特征在于,所述源数据库、目标数据库均为关系型数据库和非关系型数据库中的任意一种;所述第一物理模型、第二物理模型均为实体-关系模型和层次模型中的任意一种。8.根据权利要求6或7所述的装置,其特征在于,当所述源数据库为所述关系型数据库时,所述目标数据库为所述非关系型数据库,所述第一物理模型为所述实体-关系模型,所述第二物理模型为所述层次模型;当所述源数据库为所述非关系型数据库时,所述目标数据库为所述关系型数据库,所述第一物理模型为所述层次模型,所述第二物理模型为所述实体-关系模型。9.根据权利要求6所述的装置,其特征在于,所述生成模块还用于:获取所述第一物理模型对应的数据库中的数据特征和查询特征,并将所述数据特征和查询特征附加至所述第一物理模型中以生成所述中间模型。10.根据权利要求6或9所述的装置,其特征在于,所述中间模型具有多个对象,每个所述对象包含多个所述数据特征和查询特征,所述数据特征和查询特征均以标注的形式与对应的对象关联。【文档编号】G06F17/30GK103810275SQ201410050425【公开日】2014年5月21日申请日期:2014年2月13日优先权日:2014年2月13日【发明者】丁贵广,林运祯申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1