产生数据模型的制作方法

文档序号:6437953阅读:236来源:国知局
专利名称:产生数据模型的制作方法
技术领域
本发明涉及产生数据模型。
背景技术
大多数大型数据项目是增量地构建的。例如,在企业数据仓库项目中,随时间可能对数据模型有多个变化。不幸的是,这样的改变可能对代码和已经参考了数据模型之前版本的那些客户有连锁反应。为解决这一点,开发者有时候使用对于改变更有回复力的数据模型。在这样的数据模型中,可在不破坏已有代码的情况下对数据模型作出改变。不幸的是,这样的模型难以理解、难以确认且难以为新的改变作更新。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。

发明内容
简单来说,这里所描述的主题的各方面涉及产生数据模型。在各方面中,获得代表源数据模型的数据。还可获得用于产生目标数据模型的设置。基于该数据和该设置,根据该设置通过将源数据模型的实体转换为目标数据模型的实体而产生代表目标数据模型的数据。提供本概述是为了简要地标识在以下详细描述中进一步描述的主题的一些方面。 本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。除非上下文清楚地指出,否则短语“此处所描述的主题”指的是详细描述中所描述的主题。术语“方面”被当作“至少一个方面”。标识详细描述中所描述的主题的各方面不旨在标识所要求保护的主题的关键特征或必要特征。上述各方面和此处所描述的主题的其它方面是借助于示例说明的,并且不受附图限制,附图中相同的标号指出相似的元素。


图1是表示其中可结合此处所描述主题的各方面的示例性通用计算环境的框图;图2-3是包括根据此处描述的主题的各方面的示例性系统的框图;图4是根据此处描述的主题的各方面的示例性数据模型;图5示出根据此处描述的主题的各方面的在第一数据模型和第二数据模型之间的示例性转换;以及图6是概括地表示根据此处所描述主题的各方面的、可进行的示例性动作的流程图。
具体实施例方式如此处所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。 除非上下文清楚地指示出,否则术语“或”被当“作和/或”。术语“基于”被当作“至少部分基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例” 被当作“至少一个其他实施例”。如此处所使用的,诸如“一” (“a,” “an,”)和“该”等术语包括了所指示的项目或动作中的一个或多个。具体而言,在权利要求书中,对一个项的引用一般表示至少一个这样的项存在,并且对一个动作的引用表示执行该动作的至少一个实例。标题是仅出于方便起见的;关于给定话题的信息可在其标题指示该话题的节之外找到。其他显式或隐式定义可包括在下文中。示例件操作环境图1示出可在其上实现此处所描述的主题的各方面的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非旨在对此处所描述的主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。此处所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。可适用于此处所述的主题的各方面的已知计算系统、环境或配置的示例包括个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒,媒体中心或其他家电的家电设备、嵌入汽车或附加到汽车的计算设备、 其他移动设备、包括任何上述系统或设备的分布式计算环境等等。此处所描述的主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。此处所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现此处所描述的主题的各方面的示例性系统包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构 (MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层 (Mezzanine)总线的外围部件互连(PCI)总线、扩展外围部件互连(PCI-X)总线、高级图形端 口(AGP)、以及快速 PCI (PCIe)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传送介质。术语“已调制数据信号” 是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RFjl 外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133 ¢10 包含诸如在启动期间帮助在计算机110内的元件之间传输信息的基本例程,它通常储存储在ROM 131中。RAM 132通常包含处理单元120可立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器 141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如⑶ROM 或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通过接口 140可连接至系统总线121,且磁盘驱动器151和光盘驱动器155可通过诸如接口 150之类的用于可移除非易失性存储器的接口连接至系统总线121。以上描述并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意, 这些组件可以与操作系统134、应用程序135、其他程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161(通常被称为鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、写字板等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口 160连接至处理单元120,但也可以由其他接口和总线结构,例如并行端口、游戏端口或通用串行总线(USB)来连接。监视器191或其他类型的显示设备也通过诸如视频接口 190之类的接口连接至系统总线121。除监视器之外,计算机也可包括诸如扬声器197和打印机196之类的其他外围输出设备,它们可以通过输出外围接口 195来连接。计算机110可以使用到一个或多个远程计算机(如远程计算机180)的逻辑连接, 以在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。当用于LAN网络环境中时,计算机110通过网络接口或适配器171连接到LAN 170。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等的WAN 173来建立通信的其它装置。可为内置或可为外置的调制解调器172可以经由用户输入接口 160或其他合适的机制连接至系统总线121。在联网环境中,参考计算机110 所描述的程序模块,或其某些部分,可以存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。产牛数据樽型如上所述,可对改变有回复力的数据模型可有其他问题。图2-3是包括根据此处描述的主题的各方面的示例性系统的框图;图2中示出的组件是示例性的且不意味着包括一切的可能需要或包括在实现中的组件。在其他实施例中,结合图2-3描述的一个或多个组件可被包括在其他组件(示出或未示出)中或者被分为其他组件而不背离此处所描述的主题的各方面的精神或范围。在某些实施例中,结合图 2-3所描述的组件可跨多个设备地分布。可使用一个或多个计算机(如,图1的计算机110)和与之相关联的存储设备来实现这些组件中的一个或多个。经由各种网络可达到该多个组件,所述网络包括办公室内和办公室间网络、一个或多个局域网、广域网、直接连接、虚拟连接、专用网络、虚拟专用网络、 上述组合等。如这里所使用的,术语组件要被当作包括硬件,所述硬件诸如以下的全部或一部分设备、一个或多个软件模块或其部分的集合、一个或多个软件模块或其部分与一个或多个设备或其部分的某种组合等等。转到图2,第一数据模型205可代表物理的或逻辑的数据模型。数据模型可无关于任何相关联过程来描述实体以及实体之间的关系。数据模型可包括元数据,其提供与数据模型相关的附加信息。实体可通过其属性来定义。例如,可用名、姓、生日和其他属性来定义人。一个或多个属性可形成键码-可用于标识特定实体的东西。例如,名、中间名、姓和生日可以是足以形成可用于标识一个人的键码的信息。在一些数据库系统中,分配给每一个实体不同的整数。例如,可将不同的雇员标识符分配给每一个机构雇员。作为另一个示例,可将不同的职位标识符分配给机构的每一个职位。可使用这个标识符作为键码来标识数据库表格中的特定实体。当可使用两个或更多个键码来标识特定实体时,可分配这些键码中的一个作为主键码而分配其他键码作为可选的键码。关于实体的属性经常用表格来表示。表格可具有表示实体的不同属性的字段。表格的每一行可表示关于单个实体的属性。还可使用表格来表示两个或更多个实体之间的关系。例如,通过对实体的每一个键码都具有字段,表格可表示实体之间的关系。图4是根据此处描述的主题的各方面的示例性数据模型。数据模型400包括人员实体406、职位实体408和映射实体407。人员实体406包括用于表示人的属性。例如,人可具有名、中间名、姓、第二名字、优选名字、后缀等。职位实体408包括职位(诸如在机构中的职位)的属性。这些属性可包括,例如, 主管的标识符(如,向其报告职位ID属性)、职位代码、职位的有效日期、职位的过期日期。映射实体407可包括用于关联职位实体408和人员实体406的属性。例如,映射实体407可包括人员实体406的键码的属性和职位实体408的键码的属性。具有两个属性可容许该映射实体407来描述人员实体406和职位实体408之间的关系。线410表示人员实体406相关于该映射实体407。通过映射实体407的 PersormelSID(人员SID)属性可捕捉这个关系。PersormelSID属性是外部键码,其可映射到人员实体406的相应的PersormelSID属性。类似地,线411表示映射实体407相关于职位实体408。经由映射实体407的 PositionSID (职位SID)属性可捕捉这个关系。PositionSID属性是外部键码,其映射到职位实体408的相应的PositionSID属性。线412表示职位实体408具有的与它自己的关系。职位实体408可包括涉及职位的关系属性。例如,可使用这个来捕捉关系数据,该关系数据表示一个人可向另一个人报告且可有其他人要向他或她报告。可将实体406-408表示为表格,其具有对应于实体的属性的字段。因此,人员实体 406有时可称为人员表格,而映射实体408有时可称为映射表格。当数据模型不详细说明如何实现数据库时,该数据模型可以说是逻辑数据模型。 例如,如果数据模型在没有具体说明如何实现数据库的情况下,指示实体以及实体之间的关系,则这个数据模型可以说是逻辑数据模型。如本领域技术人员已知的,可根据各种范式来组织数据,包括第一范式、第二范式、第三范式、第四范式和第五范式。经常根据第三范式或更高的范式来组织逻辑数据模型。图4中示出的数据模型是部分逻辑数据模型的示例,因为它没有具体说明如何实现数据库。可以从图4的数据模型中导出物理数据模型。然后可使用这样的物理数据模型来实现数据库。数据库可包括关系数据库、面向对象的数据库、分层数据库、网络数据库、另一种类型的数据库、上述的一些组合或扩展等。可将存储于数据库中的数据组织为表格、记录、 对象、其他数据结构等。可将存储于数据库中的数据存储在专用数据库文件、专用硬盘分区、HTML文件、XML文件、电子表格、平面文件、文档文件、配置文件、其他文件等中。数据库可参考对数据库只读的一组数据,或者可具有向该组数据读和写的能力。可经由数据库管理系统(DBMS)来访问数据库中的数据。DBMS可包括一个或多个程序,其控制数据库数据的组织、存储、管理和检索。DBMS可接收访问数据库中数据的请求,并可执行提供这个访问所需要的操作。此处使用的访问可包括读取数据、写入数据、删除数据、更新数据、以及包括以上两个或多个的组合等。在描述此处描述的主题的各方面时,为简洁起见,本文中有时使用与关系数据库相关联的术语。尽管本文中有时使用关系数据库术语,还可将本文中的示教应用到其它类型的数据库,包括之前已经提到的那些数据库。回到图2,第二数据模型206可表示物理数据模型。例如,第二数据模型可表示数据仓库或其他物理数据模型。数据模型产生器210是获得表示第一数据模型205的第一数据并基于第一数据和设置215来产生表示第二数据模型206的第二数据的组件。为此,数据模型产生器210可定位第一数据模型205的表格之间的关系,然后可创建表示第二数据模型的表格的数据。以下将参考图5描述对两个表格执行的示例性过程。转向图5,示出两个表格505-506。表格505包括主键码Al和两个属性ATAl和 ATA2。表格506包括主键码Bi、外键码Al和属性ATB1。表格505和506以及表格之间的关系可表示逻辑数据模型。为了从表格505-506创建物理数据模型,可执行以下动作。作为一个动作,创建表格510。表格505的主键码Al被置于表格510中。另外,可在表格510中包括附加维持属性(未示出)。这些附加维持属性可包括, 例如,源系统标识符(如,标识表示机构的特定数据源的数据源的数字)、插入日期(如,系统产生的表示记录何时被插入的日期/时间)、IsDeletedFlag(已删除标记)(如,用于标记已删除记录的指示符)、IsSuspectFlag(可疑标记)(如,用于标记诸如没有相应父记录的子记录的“可疑”记录的指示符)。例如,这个指示符可由并行数据加载中的验证/重新加载逻辑、第一被插入的日期(如,在关系首次建立时的日期)、失效日期(如,关系终止时的日期)和其他维持属性来使用。可使用这些维持属性来提供保留历史数据(如,用于时间点查询、改变数据跟踪等)、改变(version)数据模式版本等的能力。可根据表格类型来分配包括在表格中的维持属性。例如,用户界面可示出网格界面,其容许用户来指定为集线器、卫星、链路和其他由数据模式产生器产生的表格所包括的维持属性。这些设置可存储在图2的设置215中。表格505的其他属性被置于独立表格511中(有时称为卫星表格)。表格510的主键码Al也被置于表格511中以将两个表格关联在一起。另外,日期属性(插入日期)可被置于表格511的主键码中,以表示创建表格510和表格511之间关系的日期。类似地,创建表格512-513。表格506的主键码Al被置于表格512中。表格506 的属性ATBl被置于表格513中。表格506的主键码Bl还被置于表格513中以将两个表格关联在一起。另外,数据属性(插入数据)可被置于表格513的主键码中,以表示创建表格 512和表格513之间关系的日期。另外,创建了表格514。表格514是关联表格510和表格512的链接表。表格514 包括作为主键码的属性Al和Bi。表格510和512有时称为集线器表格,而表格511和513有时称为卫星表格。创建表格可包括创建表示表格的数据(如,经由图2的数据模型产生器210)、创建表示表格的模型数据(如,经由图3的建模界面320与模型管理器310通过接口连接)、创建表示表格的文件数据、创建数据库中的表格(如,经由一个或多个SQL指令)等。回到图2,设置215可指示数据模型产生器210如何产生第二数据模型206。例如, 设置215可指示使用什么作为集线器表格的主键码。例如,参看图5,设置可指示使用表格 505的主键码Al作为表格510的主键码Al。表格505的主键码Al作为表格510的主键码可能是不理想的。例如,如果Al不是序列号(诸如整数),则Al作为表格510的主键码可能是不理想的。在这个情况下,设置 215可进一步指示是在任何情况下都使用Al、还是将为表格510产生新的主键码。在后一情况下,可为表格510产生新的主键码,且可添加表格510的主键码Al作为表格510的属性。设置215可指示在原始表格中是否有替代键码(如果存在的话)要插入到集线器表格中。例如,如果表格505包括一个或多个替代键码,设置215可表示替代键码中的哪一个要被置于表格510中。例如,设置215可指示在生成的过程中,要将第一替代键码、第二替代键码、最后一个替代键码、一组替代键码、所有替代键码等放置到表格510中。数据模型产生器210可将没有被包括在集线器表格中的任何一个属性放置到一个或多个卫星表格中去。数据模型产生器210可基于与表格相关联的元数据而确定这样做。例如,与表格505的属性相关联的元数据520可指示属性ATAl和ATA2要放置的一个或多个卫星表格。例如,表格505的每一个属性可与指示该属性要放置的卫星表格的元数据相关联。如果元数据520不指示要放置属性的卫星表格,则该属性可与元数据不指示卫星表格的其他属性一起放置到单独的卫星表格中。例如,如果属性ATAl和ATA2没有指示卫星表格的元数据,则ATAl和ATA2都被放置到卫星表格511。与元数据520类似的配置设置可被存储在元数据521中。另外,元数据中包含的配置设置可指定集线器和/或卫星表格的名称。在产生集线器或卫星表格时,数据模型产生器210可从元数据获得一个或多个名称,并基于这些名称创建集线器和卫星表格。设置215可指定后缀以附加在集线器表格的名称之后。例如,如果表格505被命名为“雇员”(Employee),则在创建集线器表格510时,设置可容许用户指示为“雇员”添加后缀。类似地,设置215可指定后缀以附加在卫星表格的名称之后。所产生的表格可根据类型归组。例如,所产生的表格可包括集线器表格、卫星表格、链接表格等。设置215可指定与特定类型相关联的命名规则。然后在创建特定类型表格时可遵循命名规则。另外,设置215可指定与特定类型相关联的色彩。例如,设置215可指定集线器表格要显示为红色、卫星表格要显示为黄色、链接表格要显示为绿色。基于这些设置,数据模型产生器210可产生带有编码在该数据模型(或其元数据)中的色彩的数据模型,从而当在模型工具中查看这个数据模型时,以所编码的色彩来显示表格。也可将设置215的色彩设置指定为与表格或数据模型相关联的元数据。在这个情况下,数据模型产生器210可编码由元数据指定的色彩,或者将色彩替换为在设置215中指定的其他色彩设置。除了创建第二数据模型206之外,数据模型产生器210能够产生SQL代码。SQL代码可抽象由数据模型产生器210所产生的物理数据模型,并容许用户引用所产生模型中的对象作为在原始(源)数据模型中定义的对象。数据模型产生器210是否产生SQL代码可在设置215的设置中指定。为创建诸如表格514之类的链接表格,数据模型产生器210可重复表格506的属性并确定表格506是表格505的子表格。这可由表格506的外键码Al来指示。使用这个数据,数据模型产生器210可找到父表格505。然后,数据模型产生器210可将表格505和 506的键码仏1和似)放置到链接表格514中。如果表格包括附加外键码,则这些外键码也可被放置到链接表格514中。转向图3,示出数据模型产生器210和建模环境305、模型接口 320、模型提取器 325、模型构建器335、确认器;340、设置存储库345和SQL代码产生器350。建模环境305包括模型管理器310和模型存储315。模型管理器310可包括建模工具,其容许用户使用图形用户界面来设计数据模型。可将与数据模型相关的数据存储在模型存储315中。模型存储315可包括能够存储数据的任何存储介质。例如,模型存储315可包括诸如RAM的易失性存储器、诸如硬盘之类的非易失性存储器、结合图1描述的其他存储介质、 其他存储器、上述的组合等,且可跨多个设备地分布。术语数据可包括由一个或多个计算机存储元件所表示的任何东西。逻辑上,数据可被表示成易失性或非易失性存储器中的一系列1和0。在具有非二进制存储介质的计算机中,数据可根据存储介质的能力来表示。数据可被组织成不同类型的数据结构,包括诸如数字、字母等之类的简单数据类型,分层、链接或其他相关数据类型、包括多个其他数据结构或简单数据类型的数据结构等等。模型接口 320可与模型管理器310和/或模型存储315通过接口相连。模型接口 320可提供一组应用程序编程接口(API),容许模型提取器325从模型管理器310和/或模型存储315处获得数据模型。类似地,模型接口 320可提供一组API,这些API容许模型构建器335使用模型管理器310创建数据模型和/或使用模型存储315创建表示数据模型的文件。模型提取器325可操作地使用模型接口 320获得表示数据模型的数据。如上所述, 此数据可通过与模型管理器310通过接口相连得到、和/或通过直接从模型存储315获得数据得到。模型提取器325还可获得与数据模型相关的元数据。模型提取器325可将此元数据传递给数据模型产生器210,或者可更新设置存储库345中的设置来反映在数据模型中获得的元数据。已经由模型提取器325获得的数据模型可通过确认器340传递。确认器340可确定数据是否符合(如,符合或者根据其格式化)数据库范式(如,第三范式)。确认器340 可产生报告,指示数据模型是否符合,且如果不符合的话,数据模型中什么有问题。数据模型产生器210可从设置存储库345中检索设置。如果模型提取器325也放置对应于在数据模型中找到的元数据的设置,则数据模型产生器210也可从设置存储库 345中获得这些设置。否则,数据模型产生器210可从模型提取器325处获得元数据。数据模型产生器210可通过执行动作而产生表示第二数据模型的数据,包括
1.创建第一集线器数据,其包括第一键码和第一集线器数据的维持数据。例如,参看图5,可创建表示表格510的数据。表格510可创建为带有维持属性。2.创建第二集线器数据,其包括第二键码和第二集线器属性的维持数据。例如,参看图2,可创建表示表格512的数据。表格512也可创建为带有维持属性。3.创建含有第一键码和第二键码的链接数据。例如,参看图2,可创建表格514,其基于键码Al和Bl链接表格510和512。另外,如前所示,还可创建包括卫星表格的其他表格。可在源数据模型中的一组相关表格执行数次上述动作。然后,模型构建器335可使用来自数据模型产生器210的输出来创建第二模型。例如,模型构建器335可使用模型接口 320与模型管理器310通过接口相连。例如,模型构建器335可与接口交互,该接口容许模型构建器335访问模型管理器310的对象。使用这些对象,模型构建器335可创建第二模型。作为另一个示例,模型构建器335可创建文件,其以适于由模型管理器310读取的方式编码第二模型。例如,如果模型管理器310用于存储模型的语法是已知的,则模型构建器335可使用该语法来创建编码第二模型的文件。结构化查询语言(SQL)产生器350以第一模型的形式创建用于查看根据第二模型存储的数据的数据库指令。例如,当从逻辑数据模型转换到物理数据模型时,可创建更多的表格。SQL产生器350可创建查询,其容许物理数据模型中的数据以逻辑数据模型的形式查看。在产生数据模型时,数据模型产生器210可从设置存储库345中获得(例如,检索)设置。例如,所检索出的设置可指示是否将来自源数据模型的表格的键码用作为目标数据模型表格中的键码。数据模型产生器210还可操作地确定源表格的键码用作为目标表格中的键码是否理想(如,序列整数)。图6是概括地表示根据此处所描述主题的各方面的、可进行的示例性动作的流程图。为解释简明起见,结合图6描述的方法被描绘和描述为一系列动作。可以理解和明白, 此处所描述的主题的各方面不受所示出的动作和/或动作次序的限制。在一个实施例中, 动作以如下描述的次序发生。然而,在其它实施例中,动作可以并行地发生,以另一次序发生,和/或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白, 方法也可以替代地经由状态图或作为事件表示为一系列相互相关联的状态。转向图6,在框605,动作开始。在框610,获得表示第一数据模型的数据。例如,参看图3,数据模型产生器210可从模型提取器325获得表示第一数据模型的数据。第一数据模型指示第一表格和第二表格之间的关系。指示第一和第二表格之间的关系并不一定意味着第一数据模型仅表示第一和第二表格之间的关系。实际上,第一数据模型还可指示其他表格之间的关系。第一数据模型可表示逻辑数据模型、物理数据模型或者逻辑与物理数据模型的某组合。在框615,获得用于创建第二数据模型的可配置设置。例如,参看图3,数据模型产生器210可从设置存储库345获得设置。数据模型产生器210还可从模型提取器325提供的模型中获得元数据。此处使用的“可配置”指示可由用户、进程或其他实体来修改该设置。
在框620,产生表示第二数据模型的第二数据。基于第一数据和可配置设置产生第二数据。例如,参看图3,数据模型产生器210可基于从模型提取器325获得的第一数据以及设置存储库345的设置产生第二数据。数据模型产生器210可将此第二数据传递给模型构建器325和SQL代码产生器350。数据模型产生器210可通过执行动作来产生第二数据,这些动作包括1.创建第一集线器数据,其包括第一键码和第一集线器数据的维持属性。第一集线器数据对应于第一表格。例如,参看图5,可创建对应于表格510的数据。表格510的属性可包括维持属性。表格510的属性还可包括第一表格的替代键码。2.创建第二集线器数据,其包括第二键码和第二集线器数据的维持数据。第二集线器数据对应于第二表格。例如,参看图5,可创建对应于表格512的数据。表格512的属性可包括维持属性。3.创建含有第一键码和第二键码的链接数据。例如,参看图5,可创建对应于表格 514的数据。在框625,可以执行其他动作(如果存在)。其它动作可包括,例如,基于可配置的设置命名一个或多个表格。例如,设置可指示后缀或命名一个或多个表格的其他命名规则。可能发生的另一个动作是对第一表格创建卫星数据。卫星数据包括第一表格的属性和引用第一集线器数据的键码。可能发生的另一个动作是对第二表格创建卫星数据。该卫星数据包括第二表格的属性和引用第二集线器数据的键码。如从上述详细描述中可以看到,已经描述了关于产生数据模型的各方面。尽管此处所描述的主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入此处所描述的主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。
权利要求
1.一种至少部分地由计算机实现的方法,所述方法包括获得(610)表示第一数据模型的第一数据,所述第一数据模型指示第一表格和第二表格之间的关系;从所述第一数据模型处获得(61 可配置设置用于创建第二数据模型; 基于所述第一数据和所述可配置设置,通过执行动作来产生(620)表示第二数据模型的第二数据,所述动作包括创建第一集线器数据,其包括第一键码和所述第一集线器数据的维持属性,所述第一集线器数据与所述第一表格相对应;创建第二集线器数据,其包括第二键码和所述第二集线器数据的维持属性,所述第二集线器数据与所述第二表格相对应;创建含有第一键码和第二键码的链接数据。
2.如权利要求1所述的方法,其特征在于,还包括创建第一卫星数据,其包括所述第一表格的属性,并且还包括引用所述第一集线器数据的键码。
3.如权利要求1所述的方法,其特征在于,创建含有第一键码和第一集线器数据的维持数据的第一集线器数据包括创建还包括第一表格的替代键码的第一集线器数据。
4.如权利要求1所述的方法,其特征在于,创建含有第一键码的第一集线器数据包括获得指示所述第一表格的表格属性要被用作第一键码的可配置设置,以及确定所述表格属性用作所述第一键码是否是理想的。
5.如权利要求4所述的方法,其特征在于,确定所述表格属性用作所述第一键码是否是理想的包括确定表格属性是否包括序列号,所述序列号能作为所述第一表格的主键码。
6.如权利要求1所述的方法,其特征在于,产生表示第二数据模型的第二数据还包括基于在所述可配置设置中所指示的色彩在所述第二数据中编码颜色,由所述第一集线器数据表示的表格将显示为所述颜色。
7.一种计算环境中的系统,包括模型提取器(325),可用来获得表示第一数据模型的第一数据,所述第一数据模型指示第一表格和第二表格之间的关系;设置存储库(345),可用来存储用于从所述第一模型产生第二模型的设置; 数据模型产生器O10),可用来检索所述设置并通过执行动作来产生表示第二数据模型的第二数据,所述动作包括创建第一集线器数据,其包括第一键码和第一集线器数据的维持数据, 创建第二集线器数据,其包括第二键码和第二集线器数据的维持数据,以及创建含有第一键码和第二键码的链接数据;以及模型构建器(335),可用来使用所述第二数据创建所述第二模型。
8.如权利要求7所述的系统,其特征在于,还包括代码产生器,可用来以第一模型的形式创建用于查看根据第二模型所存储的数据的数据库指令。
9.如权利要求7所述的系统,其特征在于,所述数据模型产生器通过可操作地从设置存储库检索设置用来创建包括第一键码的第一集线器数据,所述设置指示是否将所述第一表格的键码用作所述第一键码。
10.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在执行时执行以下动作,包括获得(610)第一数据模型,所述第一数据模型指示第一表格和第二表格之间的关系; 从所述第一数据模型处获得(61 可配置设置用于产生第二数据模型;以及基于所述第一数据和所述可配置设置,通过执行动作产生(620)第二数据模型,所述动作包括创建包括第一主键码和第一替代键码的第一集线器表格,所述第一替代键码从所述第一表格获得;创建包括第二主键码和第二替代键码的第二集线器表格,所述第二替代键码从所述第二表格获得;创建含有第一主键码和第二主键码的链接数据表格;以及基于所述可配置设置命名所述第一集线器表格。
全文摘要
本发明涉及产生数据模型。在各方面中,获得表示源数据模型的数据。还可获得用于产生目标数据模型的设置。基于该数据和该设置,根据该设置通过将源数据模型的实体转换为目标数据模型的实体而产生表示目标数据模型的数据。
文档编号G06F17/30GK102567451SQ20111035594
公开日2012年7月11日 申请日期2011年10月27日 优先权日2010年10月28日
发明者L·Z·赫雷涅维茨基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1