CN103714062B - 基于依赖关系导入实体‑联系模型数据的方法和系统 - Google Patents
基于依赖关系导入实体‑联系模型数据的方法和系统 Download PDFInfo
- Publication number
- CN103714062B CN103714062B CN201210371278.0A CN201210371278A CN103714062B CN 103714062 B CN103714062 B CN 103714062B CN 201210371278 A CN201210371278 A CN 201210371278A CN 103714062 B CN103714062 B CN 103714062B
- Authority
- CN
- China
- Prior art keywords
- entity
- strong
- weak rigidity
- dependence
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术领域。更具体地,本发明涉及利用E‑R模型数据模式中的依赖关系信息,导入E‑R模型数据的方法和系统。提供了一种用于导入E‑R模型数据的方法,包括:接收被导出的E‑R模型数据文件以及所述E‑R模型的数据模式;根据所述数据模式,确定所述数据文件中各个实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及根据所确定的依赖关系类型,相应地导入所述E‑R模型数据文件中的各个实体。
Description
技术领域
本发明涉及数据库技术领域。更具体地,本发明涉及利用E-R模型数据模式中的依赖关系信息,导入E-R模型数据的方法和系统。
背景技术
实体-联系数据模型(E-R)模型是一种语义模型,其在将现实世界的含义和相互关联映射到概念模式方面非常有用。E-R模型采用了三个基本概念:实体集、联系集和属性。
通常来讲,在E-R模型数据的实体间的关联关系(或者称“依赖关系”)存在三种可能的情形,其一是强关联关系,是指某个实体类型被链接至某个另外的实体类型的N个(N>=1)实例。换句话说,某个实体具有一个属性,该属性具有另外一个实体类型,且该属性至少为1个。例如,“学生”这个实体具有“姓名”这一属性,而“姓名”同时也是一个实体,其进一步具有“姓”、“名”、“曾用名”等属性。那么由于每个学生都必须至少具有一个姓名,因此“学生”这一实体类型强关联至“姓名”这一实体类型。其二是弱关联关系,是指某个实体类型被链接至某个另外的实体类型的N个(N>=0)实例。例如,“学生”这个实体类型具有“职务”这一属性,而“职务”同时也是一个具有若干种属性(例如“起始时间”、“任期”)的实体类型,由于并非每个学生都担任一定的职务,因此“学生”这一实体类型弱关联至“职务”这一实体类型。其三是无关联关系,顾名思义,无关联指的是两个实体类型间没有关联关系。
目前,随着E-R模型在信息技术领域,尤其是数据库领域的广泛应用,单一服务器通常存储了大量的基于E-R模型的数据,并且大多数系统都具有对这些海量E-R模型数据进行备份、归档的需求。另一方面,需要在不同的系统间进行E-R模型数据传输操作。这两方面的需求都需要对序列化的E-R模型数据进行导出和导入操作。现有技术中导入E-R模型数据时,不管实体的依赖关系是强关联还是弱关联,都要等待至一个实体所依赖的所有其它实体都导入后,才能导入该实体。并且从一个系统导出的E-R数据文件往往并非按照待导入系统的要求的顺序所组织。这存在的显著问题是:当将从一个系统导出的E-R数据文件导入至另一个系统时,如果E-R数据文件很大的话,为了防止导入后实体间的关联关系发生错误,必须按照待导入的系统重新组织E-R数据文件的数据结构,这非常耗时,并且会耗费大量的存储资源来储存从E-R数据文件中读取到但是不能即时导入的实体。
发明内容
考虑到上述存在的问题,本发明的目的之一在于提供一种导入E-R模型数据时减少存储资源消耗的方法或系统。本发明的另一目的在于提供一种在导入E-R模型数据时令模型元素(实体)尽可能早地被导入从而减小导入耗时的方法或系统。上述目的明显具有独立存在之意义,即使可能或已经发生,本发明可能但并非一定同时解决所有上述目的。
根据本发明的一个方面,提供了一种用于导入E-R模型数据的方法,包括:接收被导出的E-R模型数据文件以及所述E-R模型的数据模式;根据所述数据模式,确定所述数据文件中各个实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体。
根据本发明的另一方面,提供了一种用于导入E-R模型数据的系统,包括:接收装置,被配置为接收被导出的E-R模型数据文件以及所述E-R模型的数据模式;依赖关系确定装置,被配置为根据所述数据模式,确定所述数据文件中各个实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及导入装置,被配置为根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体。
根据本发明所提供的方法或系统,基于不同实体的不同的依赖关系类型,采取相应的导入方式,无需在客户侧针对待导入系统的特性进行海量E-R模型数据的重新整理、组织,可以尽早地导入E-R模型数据中的实体,并且可以节省大量的用于缓存已经读取但是无法直接导入的实体的存储资源。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了根据本发明一实施例的用于导入E-R模型数据的方法的流程图;
图3示出了根据本发明一实施例的导入强关联实体的方法的流程图;
图4示出了根据本发明一实施例的导入弱关联实体的方法的流程图;
图5示出了根据本发明一实施例的用于导入无关联实体的方法的流程图;
图6示出了根据本发明一个具体实例的导入E-R模型数据的数据模式;
图7示出了根据本发明一实施例的用于导入E-R模型数据的系统的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下面参看图1。图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图2示出了示出了根据本发明一实施例的用于导入E-R模型数据的方法的流程图。图2所示的方法从步骤201开始,在步骤201中,接收被导出的E-R模型数据文件以及所述E-R模型的数据模式。被导出的E-R模型数据文件是指将任一源系统中的基于E-R模型的原始数据导出后而生成的格式化E-R模型数据文件。本领域技术人员应当理解,导出的E-R模型数据文件可以体现为XML(Extensible Markup Language)文件、EMF(Eclipse ModelingFramework)文件或者关系型数据库表等。具体如何从源系统导出E-R模型数据文件属于现有技术内容,在此不再赘述。E-R模型的数据模式(Data Schema)是指表征了E-R模型中的实体类型间的关联关系(或称“依赖关系”)的信息。E-R模型的数据模式在创建原始的基于E-R模型的数据时同时建立。在步骤201中仅接收导出的E-R模型数据文件和E-R模型的数据模式。
接下来,图2所示的方法进行至步骤202,根据所述数据模式,确定所述数据文件中各个实体的依赖关系类型,其中依赖关系类型包括至少下列之一:无关联、弱关联或强关联。关于“无关联”、“弱关联”、“强关联”的含义已在上文中详细介绍,此处不再赘述。一旦在步骤201中获得了E-R模型的数据模式,就能从中确定各个实体类型的依赖关系的类型。在步骤202中,依照文件内容自身的组织顺序通过依次读取格式化的导出的E-R模型数据文件中的各个实体,根据E-R模型的数据模式,确定的相应实体类型的依赖关系类型。需要强调的是,依赖关系类型是针对每个实体类型而言的。例如,“学生”这一实体类型强关联于“姓名”这一实体类型。
在步骤203中,根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体。例如确定了E-R模型数据文件中的某个实体类型的的依赖关系为强关联,则按照强关联的方式导入该实体。如果确定了E-R模型数据文件中的某个实体类型的的依赖关系为弱关联,则按照弱关联的方式导入该实体。需要指出的是,E-R模型数据文件中的实体是逐个导入的,直到将E-R模型数据文件中的所有实体(以及实体的属性)都导入后,就完成了整个E-R模型数据的导入。根据本发明的一个实施例,对于弱关联实体和无关联实体,在步骤203中可以直接导入。而对于强关联实体,则先将其存储在强关联表中,强关联表可以包含多种可能的物理存储模式,如硬盘、缓存(Cache)以及任何形式的临时存储等,直到该强关联实体的最小引用数目已满足才将其导入。“最小引用数目”是指某个强关联实体在E-R数据模式中被限定的其至少关联至几个被关联实体。例如,“学生”这一实体类型被限定为至少关联至一个“姓名”实体类型,那么对“学生”这一强关联实体而言,其针对“姓名”实体的最小引用数目为1。关于具体的各种根据不同的依赖关系类型进行实体导入操作的实施例,将在下文结合附图3-5详细描述。
通过图2所示的方法可以看出,本发明利用所确定的各个实体的依赖关系类型,采取不同的实体导入方式,无需对每一个实体均等待至其所关联的其它实体被导入后才进行导入,可以尽早地导入E-R模型数据中的实体,并且可以节省大量的用于缓存已经读取但是无法直接导入的实体的存储资源。
图3示出了根据本发明另一实施例的导入强关联实体的方法的流程图。具体而言,图3示出了针对强关联实体的导入操作的流程图。在步骤301中,判断被确定为强关联实体的最小引用数目是否已满足。
如果判断结果为是,则进行至步骤304,直接导入该强关联实体。可以理解为,虽然某个实体根据E-R数据模式来看属于强关联实体,但是由于之前已经导入的其它实体导致该强关联实体的强关联约束条件已经满足,因此可以将该强关联实体看作已经不是真正的强关联实体,因此在步骤304中直接导入。
如果步骤301的判断结果为否,则进行至步骤302,构建强关联表以记录将该实体的强关联引用信息。也就是说,如果某一强关联实体的强关联约束条件尚未满足,则此时不能直接将该强关联实体导入(否则会造成E-R数据结构出错),而必须先将该强关联实体及强关联引用信息记录在强关联表中。需要指出的是,“强关联表”是功能性的描述,其具体的物理存储位置有多种可能,在此不做限定。并且“强关联表”也并不意味着必须体现为传统意义上的数据库表的方式,任何信息记录的方式均可能实现“强关联表”的功能。还需要指出的是,步骤302中的“创建强关联表”只是针对处理E-R模型数据文件中的第一个强关联实体时才进行的操作。对于后续的强关联实体,无需再创建新的强关联表,而只需将其记录至已有的强关联表中即可。
接下来,图3所示的流程进行至步骤303,响应于后续弱关联或无关联实体的导入,导入该强关联实体。首先,并非每次导入一个后续弱关联或无关联实体,都需要导入该强关联实体。步骤303中的“响应于”隐含了判断后续弱关联或无关联实体的导入是否会导致该强关联实体的约束条件(即“最小引用数目”)被满足。如果不会导致该强关联实体的约束条件(即“最小引用数目”)被满足,则流程结束,而不会进行至步骤305。如果导致了该强关联实体的约束条件(即“最小引用数目”)被满足,则可能(而不是一定)进行至步骤305。这将在下文结合图4及图5关于弱关联实体和无关联实体的导入流程进行详细描述。
接下来,步骤303和304均进行至步骤305,将该强关联实体记录在弱关联表中。需要指出的是,并非只要在后续导入了该强关联实体就一定需要将该强关联实体记录在弱关联表中,步骤305隐含了判断是否需要将该被导入的强关联实体记录在弱关联表中的步骤。如果不需要将该被导入的强关联实体记录在弱关联表中,则步骤304和303均不会进行至步骤305。这同样将在下文结合图4及图5关于弱关联实体和无关联实体的导入流程进行详细描述。还需要指出的是,在步骤303和305之间,根据本发明的一个实施例,还包含从强关联表中删除该强关联实体的记录的步骤,为了简洁,该步骤并未在图3中示出。
图4示出了根据本发明一实施例的导入弱关联实体的方法的流程图。在步骤401中,直接导入该弱关联实体。由于弱关联实体的约束条件是非强制性的(可以是0),因此直接导入弱关联实体并不会导致E-R模型数据结构出错。接下来在步骤402中,构建弱关联表以记录该弱关联实体的弱关联引用信息。同样,与“在强关联表中记录”类似,这里“在弱关联表中记录”也仅是针对处理E-R数据模型文件中的第一个弱关联实体而言,对于后续其它的弱关联实体,可以直接记录在已有的弱关联表中。并且,“弱关联表”也仅仅是功能性的描述,其具有多种可能的物理位置,甚至可能与“强关联表”存储于同一物理数据表中。并且“弱关联表”也并非一定体现为传统意义上的数据库表的形式。
接下来,从步骤403开始,进入根据弱关联实体的导入而导入之前读取到但还未导入的强关联实体,并且更新强关联表的各个步骤。具体地,在步骤403中,判断被导入的弱关联实体是否导致某强关联实体满足约束条件(即“最小引用数目”)。如果满足则进行至步骤404,导入该约束条件被满足并且事先记录在强关联表中的强关联实体。由于强关联实体已被导入,在步骤405中,从强关联表中删除该被导入的强关联实体。举例而言,先读取到E-R模型数据文件中的一个强关联实体“学生”,其约束条件为:强关联至至少一个弱关联实体“姓名”。那么先将“学生”这一实体及其强关联引用信息记录在强关联表中。接下来,读取到了E-R模型数据文件中的弱关联实体“姓名”,直接将“姓名”这一实体导入,并将“姓名”这一实体及其弱关联引用信息记录在弱关联表中。同时判断出由于“姓名”这一实体的导入,导致“学生”这一强关联实体的约束条件(即“最小引用信息”)已经被满足,因此将“学生”这一强关联实体导入,同时从强关联表中删除“学生”这一行记录。需要指出的是,如果一个强关联实体同时强关联至一个以上的其它实体,那么即使其中一个被关联至的实体被导入,该强关联实体的约束条件仍然未满足。
图4所示的流程进行至步骤406,判断是否需要步骤404中被导入的该强关联实体记录在弱关联表中。响应于步骤406的判断结果为是,在步骤407中在弱关联表中记录该强关联实体。例如,从E-R模型数据文件中读取到“学生1”这一强关联实体的实例在数据文件中关联至两个“姓名”实体类型的实例(假设该学生有两个名字,“姓名1”和“姓名2”),那么当导入其中一个“姓名”实体的实例后,虽然依上所述“学生1”这一强关联实体的实例可以被导入并从强关联表中删除其记录,仍然有一个关联至“学生1”的“姓名”实体的实例尚未被导入,因此需要将“学生1”记录在弱关联表中。
根据本发明的一个实施例,等到E-R模型数据文件中的所有实体被处理完毕(即所有实体均被导入),将弱关联表中的所有行生成更新请求,统一更新已被导入的各个实体的依赖关系信息。根据本发明的另一实施例,响应于处理到弱关联表中记录的被关联的实体,即时更新导入的实体的依赖关系信息,并同时删除弱关联表中的相关记录。
回到步骤403,如果其判断结果为否,则图4所示的流程结束。
图5示出了根据本发明一实施例的用于导入无关联实体的方法的流程图。在步骤501中,直接导入该无关联实体。接下来,从步骤502开始,执行类似于图4中的403-407的步骤。所不同的是,在图5中没有类似于图4中的步骤402的步骤,这是因为无关联实体不会关联到其它任何实体,因此无需记录该实体及其引用关系信息。之所以步骤502-506类似于图4中的步骤403-407,是因为无关联实体的导入同样有可能导致之前读取到的强关联实体的约束条件被满足,从而触发导入该强关联实体,并在需要的情况下将该强关联实体及其引用关系信息从强关联表中删除,并记录在弱关联表中。
图6示出了根据本发明一个具体实例的导入E-R模型数据的数据模式。结合该实例,有助于更好地理解上文中描述的本发明的构思及实施例。从图6中可以看出,存在三个实体类型:“用户”、“账户”、“灵通卡”。其实际含义可以理解为,一个银行用户在注册后,至少要有一个账户,并且可以有多个账户。每个账户可以关联一个灵通卡,或者不关联灵通卡。因此,“用户”这一实体类型强关联至“账户”这一实体类型,在图6中用由“用户”指向“账户”的箭头以及“1..*”表示,其中“1..*”表示至少关联一个,也就是最小引用数目为1。“账户”这一实体类型弱关联至“灵通卡”这一实体类型,在图6中用由“账户”指向“灵通卡”的箭头以及“0..1”表示,其中“0..1”表示可以不关联,也可以关联1个。“灵通卡”这一实体类型的依赖关系属于无关联实体。
下面,假设已经存在从某系统导出的E-R模型数据文件如下(用斜体表示):
其含义为:用户实例1关联至账户实例1和实例2,账户实例1关联至灵通卡实例1,账户实例2关联至灵通卡实例2。本领域技术人员应当理解,上面给出的E-R模型数据文件仅仅是示例性地简洁展示数据文件的核心内容,并不代表实际上导出的数据文件就是上面的固定格式,E-R模型数据文件可以通过XML,EMF等多种格式化文件体现。
根据本发明的一个实施例,接收到了图6所示的E-R模型数据模式以及上面给出的E-R模型数据文件后,开始进行E-R模型数据的导入。第一步,从E-R模型数据文件中读取用户1,根据图6的E-R模型数据模式得知“用户”这一实体类型与“账户”这一实体类型有最小引用数目为1的强关联,首先检查是否强关联的最小引用数目已经被满足。由于用户至少需要引用到一个账户,所以不满足,将用户1写到强关联表中(如下表1所示)
ID | 强关联类型 | 强关联ID |
用户1 | 账户 | 账户1,账户2 |
表1强关联表
本领域技术人员应当理解,上面的强关联表可以通过“外键引用”的方式链接至图6所示的E-R模型数据模式,以监视用户1的强关联约束条件是否满足。
接下来,第二步,读取账户1,由图6所示的数据模式知道账户1为弱关联,因此直接导入账户1,并把账户1对灵通卡1的弱关联加到弱关联表中,如下表2所示。
ID | 弱关联类型 | 弱关联ID |
账户1 | 灵通卡 | 灵通卡1 |
表2弱关联表
同时,检查强关联表,发现用户1在账户属性上的最小关联数目约束已经满足,所以导入用户1,并把用户1从强关联表中清除。由于从E-R模型数据文件中(或者从强关联表中的记录)得知用户1实际上除了关联至账户1外,还关联至账户2,因此需要将用户1加入至弱关联表中。更新后的弱关联表如表3所示。
ID | 弱关联类型 | 弱关联ID |
账户1 | 灵通卡 | 灵通卡1 |
用户1 | 账户 | 账户2 |
表3更新后的弱关联表
接下来,第三步,从E-R模型数据文件中读取账户2,由图6所示的数据模式知道账户2也为弱关联,因此直接导入账户2,并把它对灵通卡2的弱关联引用加到弱关联表,更新后的弱关联表如表4所示。
ID(实体实例) | 弱关联类型 | 弱关联ID |
账户1 | 灵通卡 | 灵通卡1 |
用户1 | 账户 | 账户2 |
账户2 | 灵通卡 | 灵通卡2 |
表4第二次更新后的弱关联表
接下来,第四步,从E-R模型数据文件中读取灵通卡1,通过图6所示的E-R数据模式发现它的依赖关系为无关联,因此直接导入。接下来,从E-R模型数据文件中读取灵通卡2,通过图6所示的E-R数据模式发现它的依赖关系也为无关联,因此同样直接导入。
然后,第五步,发现E-R模型数据文件已经扫描完毕,所有的实体实例均已经被导入(如表5所示),因此将表4所示的弱关联表内三行数据信息生成更新请求并导入,以完成E-R模型数据的全部导入。
ID(实体实例) |
账户1 |
用户1 |
账户2 |
灵通卡1 |
灵通卡2 |
表5全部导入的实体表
为了更好地体现上述根据本发明的构思而导入E-R模型数据的实例的效果,下面简要介绍一下现有技术处理上述同一实例的方式。现有技术中,需要建立完整的内存模型后才能导入。第一步:读取用户1,在内存创建对象User1,因为有两个关联尚未在内存,所以User1不能被导入,留在内存。第二步:读取账户1,在内存创建对象Account1,并将其设置到User1的账户属性。因为Account1也有一个关联未在内存,所以Account1也不能导入,也留在内存。第三步:读取账户2,做法与上一步类似,在内存创建Account2,设置到Userl的账户属性,但不导入。第四步:读取灵通卡1,在内存创建对象Card1,并设置到Account1的灵通卡属性。此时,由于Card1没有关联,因此可以直接导入,Account1因为Card1的导入,关联全部到位,也可以导入。但User1因为Account2尚未导入,因此仍然不能导入。第五步:读取灵通卡2,在内存创建对象Card2,并设置到Account2的灵通卡属性。此时,Card2没有关联,直接导入,Account2因为Card2的导入,关联全部到位,也可以导入。最后,类似地,User1因为Account2的导入而所有的关联到位,最终得以导入。这种方法会在占用很大的内存存储,但E-R模型极大时,处理会造成内存溢出。
根据另外一种现有技术中的作法:首先将待导入的实体实例根据关联的依赖关系进行排序,而后再顺序导入。首先,用排序算法将E-R模型数据文件重新排序并生成新的E-R模型数据文件如下(斜体表示):
然后,按照排序后的E-R模型数据文件顺序导入E-R模型数据。按照排序后的顺序,不会有关联关系的依赖等待。但是,这种做法在排序阶段会非常耗时,而且对于大文件,会生成一个中间的大的拷贝,占用较大的硬盘空间。
通过这一具体的实例可以看出,利用本发明的构思可以克服上面两种现有技术在进行E-R模型数据导入时存在的问题。
图7示出了根据本发明一实施例的用于导入E-R模型数据的系统的框图。图7所示的系统在整体上由系统700表示。具体地,系统700包括接收装置701,被配置为接收被导出的E-R模型数据文件以及所述E-R模型的数据模式;依赖关系确定装置702,被配置为根据所述数据模式,确定所述数据文件中各个实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及导入装置703,被配置为根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体。应当理解,系统700中的装置701-703分别对应于图2所示的方法中的步骤201-203,在此不再赘述。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种用于导入E-R模型数据的方法,包括:
接收被导出的E-R模型数据文件以及所述E-R模型的数据模式;
根据所述数据模式,确定所述数据文件中实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及
根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的实体;
其中根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体包括:
响应于所确定的实体的依赖关系类型为弱关联或无关联,直接导入该实体;
响应于所确定的实体的依赖关系类型为强关联,则将该实体存储在强关联表中,直到该实体的强关联的最小引用数目被满足才导入该实体,以及
判断被导入的无关联或弱关联实体是否影响记录在强关联表中的实体;
响应于判断结果为是,
导入所述记录在强关联表中的实体;
从强关联表中删除所述被记录在强关联表中的实体。
2.如权利要求1所述的方法,其中根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体包括:
响应于所确定的实体的依赖关系为强关联,判断该实体的强关联的最小引用数目是否已满足;
响应于判断结果为否,将该实体的强关联引用信息记录在强关联表中;以及
响应于判断结果为是,直接导入该实体。
3.如权利要求1所述的方法,其中根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的各个实体包括:
响应于所确定的实体的依赖关系为弱关联,直接导入该实体;以及
将该实体的弱关联引用信息记录在弱关联表中。
4.如权利要求1所述的方法,进一步包括:
判断从强关联表中被删除的所述实体是否需要被记录在弱关联表中;以及
响应于判断结果为是,将从强关联表中被删除的所述实体记录在弱关联表中。
5.如权利要求1所述的方法,进一步包括:
响应于所述E-R模型数据文件中的所有实体被处理完毕,将弱关联表的所有行生成更新请求,以更新已被导入的各个实体的依赖关系信息。
6.一种用于导入E-R模型数据的系统,包括:
接收装置,被配置为接收被导出的E-R模型数据文件以及所述E-R模型的数据模式;
依赖关系确定装置,被配置为根据所述数据模式,确定所述数据文件中实体的依赖关系类型,其中所述依赖关系类型包括至少下列之一:无关联、弱关联或强关联;以及
导入装置,被配置为根据所确定的依赖关系类型,相应地导入所述E-R模型数据文件中的实体,
其中导入装置被进一步配置为:
响应于所确定的实体的依赖关系类型为弱关联或无关联,直接导入该实体;
响应于所确定的实体的依赖关系类型为强关联,则将该实体存储在强关联表中,直到该实体的强关联的最小引用数目被满足才导入该实体,
判断被导入的无关联或弱关联实体是否影响记录在强关联表中 的实体;以及
响应于判断结果为是,
导入所述记录在强关联表中的实体;以及
从强关联表中删除所述被记录在强关联表中的实体。
7.如权利要求6所述的系统,其中导入装置被配置为:
响应于所确定的实体的依赖关系为强关联,判断该实体的强关联的最小引用数目是否已满足;
响应于判断结果为否,将该实体的强关联引用信息记录在强关联表中;以及
响应于判断结果为是,直接导入该实体。
8.如权利要求6所述的系统,其中导入装置被配置为:
响应于所确定的实体的依赖关系为弱关联,直接导入该实体;以及
将该实体的弱关联引用信息记录在弱关联表中。
9.如权利要求6所述的系统,导入装置被进一步配置为:
判断从强关联表中被删除的所述实体是否需要被记录在弱关联表中;以及
响应于判断结果为是,将从强关联表中被删除的所述实体记录在弱关联表中。
10.如权利要求6所述的系统,导入装置被进一步配置为:
响应于所述E-R模型数据文件中的所有实体被处理完毕,将弱关联表的所有行生成更新请求,以更新已被导入的各个实体的依赖关系信息。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371278.0A CN103714062B (zh) | 2012-09-28 | 2012-09-28 | 基于依赖关系导入实体‑联系模型数据的方法和系统 |
US14/038,280 US9600562B2 (en) | 2012-09-28 | 2013-09-26 | Method and apparatus for asynchronized de-serialization of E-R model in a huge data trunk |
US15/420,290 US10089385B2 (en) | 2012-09-28 | 2017-01-31 | Method and apparatus for asynchroinzed de-serialization of E-R model in a huge data trunk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371278.0A CN103714062B (zh) | 2012-09-28 | 2012-09-28 | 基于依赖关系导入实体‑联系模型数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714062A CN103714062A (zh) | 2014-04-09 |
CN103714062B true CN103714062B (zh) | 2017-05-31 |
Family
ID=50407052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371278.0A Active CN103714062B (zh) | 2012-09-28 | 2012-09-28 | 基于依赖关系导入实体‑联系模型数据的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9600562B2 (zh) |
CN (1) | CN103714062B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203640B (zh) * | 2017-06-14 | 2019-12-31 | 成都四方伟业软件股份有限公司 | 通过数据库运行记录建立物理模型的方法及系统 |
CN107633870B (zh) * | 2017-10-25 | 2020-12-08 | 天津开心生活科技有限公司 | 数据提取方法及装置、存储介质、电子设备 |
CN111061816B (zh) * | 2019-12-16 | 2021-11-02 | 中国航空综合技术研究所 | 多维度动态标准体系构建方法 |
CN112711629B (zh) * | 2020-12-30 | 2022-10-21 | 浙江中控技术股份有限公司 | 数据及关联数据导入导出方法、装置、设备及存储介质 |
CN113129126B (zh) * | 2021-04-15 | 2023-04-25 | 算话智能科技有限公司 | 一种业务数据处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095561B2 (en) * | 2009-04-23 | 2012-01-10 | Microsoft Corporation | Extensible framework for data import and export |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369761A (en) * | 1990-03-30 | 1994-11-29 | Conley; John D. | Automatic and transparent denormalization support, wherein denormalization is achieved through appending of fields to base relations of a normalized database |
US6076090A (en) * | 1997-11-26 | 2000-06-13 | International Business Machines Corporation | Default schema mapping |
US6381600B1 (en) | 1999-09-22 | 2002-04-30 | International Business Machines Corporation | Exporting and importing of data in object-relational databases |
US7613695B1 (en) * | 1999-12-06 | 2009-11-03 | Reed Elsevier Inc. | Relationship management system that provides an indication of users having a relationship with a specified contact |
US7072896B2 (en) * | 2000-02-16 | 2006-07-04 | Verizon Laboratories Inc. | System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor |
US6718336B1 (en) | 2000-09-29 | 2004-04-06 | Battelle Memorial Institute | Data import system for data analysis system |
US20040044687A1 (en) * | 2002-08-30 | 2004-03-04 | Thomas Vachuska | Apparatus and method using pre-described patterns and reflection to generate a database schema |
US7191186B1 (en) | 2002-11-27 | 2007-03-13 | Microsoft Corporation | Method and computer-readable medium for importing and exporting hierarchically structured data |
US7017112B2 (en) | 2003-02-28 | 2006-03-21 | Microsoft Corporation | Importing and exporting markup language data in a spreadsheet application document |
CA2468406A1 (en) | 2003-05-27 | 2004-11-27 | Cognos Incorporated | System and method of modelling of a multi-dimensional data source in an entity-relationship model |
US8131728B2 (en) | 2006-06-23 | 2012-03-06 | International Business Machines Corporation | Processing large sized relationship-specifying markup language documents |
US7668860B2 (en) * | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
US7792793B2 (en) | 2007-04-24 | 2010-09-07 | Kryptiq Corporation | Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer |
US8666960B2 (en) | 2008-06-26 | 2014-03-04 | Microsoft Corporation | Schema-based data transfer between a data-based application and a document application |
US8825601B2 (en) * | 2010-02-01 | 2014-09-02 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
US20110264703A1 (en) | 2010-04-27 | 2011-10-27 | Microsoft Corporation | Importing Tree Structure |
-
2012
- 2012-09-28 CN CN201210371278.0A patent/CN103714062B/zh active Active
-
2013
- 2013-09-26 US US14/038,280 patent/US9600562B2/en not_active Expired - Fee Related
-
2017
- 2017-01-31 US US15/420,290 patent/US10089385B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095561B2 (en) * | 2009-04-23 | 2012-01-10 | Microsoft Corporation | Extensible framework for data import and export |
Also Published As
Publication number | Publication date |
---|---|
US9600562B2 (en) | 2017-03-21 |
US10089385B2 (en) | 2018-10-02 |
US20140172923A1 (en) | 2014-06-19 |
US20170140032A1 (en) | 2017-05-18 |
CN103714062A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793422B (zh) | 基于增强星型模型的立方体元数据及查询语句生成 | |
CN103714062B (zh) | 基于依赖关系导入实体‑联系模型数据的方法和系统 | |
CN102640144B (zh) | 协同操作数据的方法和系统 | |
US8195647B2 (en) | Abstract records | |
CN110472068A (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
CN104285222B (zh) | 用于重写查询的方法和系统 | |
US7444332B2 (en) | Strict validation of inference rule based on abstraction environment | |
CN104376037B (zh) | 用于对数据进行建模的系统及方法 | |
EP3418910A1 (en) | Big data-based method and device for calculating relationship between development objects | |
US8972463B2 (en) | Method and apparatus for functional integration of metadata | |
US20130311483A1 (en) | Method and system for accurate medical-code translation | |
US20120023586A1 (en) | Determining privacy risk for database queries | |
CN104216894A (zh) | 用于数据查询的方法和系统 | |
CN104732154A (zh) | 将数据匿名化的方法和系统 | |
CN102270225A (zh) | 数据变更日志监控方法和数据变更日志监控装置 | |
CN109918394A (zh) | 数据查询方法、系统、计算机装置及计算机可读存储介质 | |
WO2008091282A2 (en) | Apparatuses, systems, and methods to automate procedural tasks | |
US10909160B2 (en) | Digital duplicate | |
CN102479255A (zh) | 用于优化数据库查询的方法和系统 | |
CN107766353A (zh) | 一种数据库统计信息迁移的方法和设备 | |
CN108388623A (zh) | Er关系生成方法、装置、计算机设备及存储介质 | |
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
CN114328980A (zh) | 结合rpa及ai的知识图谱构建方法、装置、终端及存储介质 | |
CN105335466A (zh) | 一种音频数据的检索方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |