用于可视化关系数据库的基于图的方法
【专利摘要】在此描述了用于生成和操纵关系数据库的可视图的技术。数据表的列表被从数据库中检索并且根据每个数据表的关系的数目被排序。数据库图被生成,其包含与列表中的每个数据表相对应的小块,其中与有关系的数据表相对应的小块沿着小块的至少一个边缘或角在可能的地方相邻。每个小块的显示属性可以被调整为反映相应数据表的性质。然后,数据库图在用户界面中被显示给用户,并且控件被提供,所述控件允许用户在用户界面中导航和缩放数据库图,以便揭示包含在与所显示的小块相对应的数据表中的数据。
【专利说明】用于可视化关系数据库的基于图的方法
[0001]直量
[0002]关系数据库常常用于实现用于业务应用的数据存储机制,其中数据映射到现实世 界项,比如财务记录、医疗记录、个人信息、制造和物流数据等等。对于新手用户,关系数据 库可能是难以可视化和理解的。探索和查询关系数据的传统形式着眼于各个表的视图。随 着关系数据库变得越来越归一化并且同时表的数目增加并且每个表中的人类可读列的数 目减少,可能变得越来越难以通过孤立地查看任何表来理解数据库。
[0003]传统的数据库可视化工具可以允许用户创建图表,比如实体关系(“ER”)图表,其 一并示出关系数据库中的所有表、以及这些表的关系如何。表被绘制为包含方案(schema) 的框,并且表之间的关系被描述为连接框的线。线上的标记或它们的端点可以指示被连接 的表所共有的关系的种类。然而,即使对于中等大小的关系数据库而言,这些图表都可能变 得太复杂而难以理解。
[0004]本发明所做出的公开正是对于这些和其它考虑而提出的。
【发明内容】
[0005]在此描述了用于生成和操纵关系数据库的可视图的技术。利用在此所述的技术, 可以实现用于数据库可视化的新颖的隐语,其可视地将关系数据库中的表描绘成数据库 图。该数据库图可以被生成为使得数据库中的彼此具有关系的表表现为在数据库图中尽可 能地彼此接近。通过这种方式,紧密相连或关系紧密的表的组可以一起被显示在区中。这 可以提供对传统ER图的改进,其中传统ER图通常迫使用户将表手动定位在表面上或者基 于字母数字顺序或其他某个简单度量而具有缺省定位。
[0006]另外,尽管表最初被可视化为包含表的名称和/或其他文本标签的小块,但是可 以向用户提供便利以探索、搜索和缩放数据库图以探索数据库中的表的内容。通过这种方 式,提供给用户的第一视图提供对象的高级概况以及它们相关的方式,同时允许用户按照 需要揭示底层数据。这可以提供对传统ER图表的另一改进,其中传统ER图常常示出过多 的细节以至于难以给出大图片视图。
[0007]根据实施例,数据表的列表被从数据库中检索并且根据每个数据表的关系的数目 被排序。数据库图被生成,其包含与列表中的每个数据表相对应的小块,其中与有关系的数 据表相对应的小块沿着小块的至少一个边缘或角在可能的地方相邻。每个小块的显示属性 可以被调整为反映相应数据表的性质。然后,数据库图在用户界面中被显示给用户,并且控 件被提供,所述控件允许用户在用户界面中导航和缩放数据库图,以便揭示包含在数据表 中的与所显示的小块相对应的数据。
[0008]应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如 计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他 特征将变得显而易见。
[0009]提供本
【发明内容】
是为了以简化的形式介绍将在以下详细描述中进一步描述的选 择的概念。本
【发明内容】
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本
【发明内容】
用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在 本公开的任一部分中所提及的任何或所有缺点的实现。
[0010]附图简沭
[0011]图1是示出由本文呈现的实施例所提供的说明性操作环境和若干软件组件的多 方面的框图;
[0012]图2A — 2C是根据在此所述的实施例的屏幕图,其示出了用于显示和导航关系数 据库的数据库图的说明性用户界面;
[0013]图3是示出根据本文描述的各实施例的用于使用“空间划分”生成关系数据库的 数据库图的一个方法的流程图;
[0014]图4是根据在此所述的实施例的ER图,其一并示出了示例性关系数据库中的多个 表、以及表之间的关系。
[0015]图5A和5B是根据在此所述的实施例的框图,其示出了关于使用空间划分布局生 成关系数据库的数据库图的附加细节。
[0016]图6是示出根据在此描述的各实施例的用于使用“边缘粘接”布局生成关系数据 库的数据库图的另一方法的流程图;
[0017]图7A和7B是根据在此所述的实施例的框图,其示出了关于使用边缘粘接布局生 成关系数据库的数据库图的附加细节。
[0018]图8是示出能够实现本文呈现的实施例的多方面的计算系统的说明性计算机硬 件和软件体系结构的框图。
[0019]详细描沭
[0020]下面的详细描述所针对的是用于生成和操纵关系数据库的可视图的技术。尽管在 结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中提出 了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模 块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、 组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系 统配置来实施本文描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于 微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。
[0021]在以下详细描述中,参考了构成其一部分并作为说明示出各具体实施例或示例的 附图。在附图中,在全部若干附图中相似的附图标记表示相似的元素。
[0022]图1示出了根据此处提供的各实施例的包括用于生成和操纵关系数据库的可视 图的若干软件组件的说明性操作环境100。环境100包括计算机系统102。计算机系统102 可表示用户计算设备,诸如个人计算机(“PC”)、桌面工作站、膝上型计算机、笔记本、移动设 备、个人数字助理(“PDA”)等等。可替代地,计算机系统102可以表示可操作地连接到下列 各项的用户计算设备:一个或多个应用服务器、Web服务器、数据库服务器、网络设备、专用 硬件设备、和/或现有技术中已知的其他服务器计算机或用户计算设备。计算机系统102 由用户104通过显示设备106以及诸如图1所示的键盘和/或鼠标之类的一个或多个输入 设备108来访问。
[0023]根据实施例,数据库可视化模块110在计算机系统102上执行,其从关系数据库 中生成可视数据库图,向用户104提供服务以对所述数据库图进行导航。数据库可视化模块110可以在计算机系统102的用户计算设备上本地地执行,或者可以在由用户计算设备 上所执行的客户端应用访问的诸如Web服务器之类的服务器计算机上执行。数据库可视化 模块110可以被实现为硬件、软件或者二者的组合。数据库可视化模块110可以是诸如来 自华盛顿州雷蒙德市的微软公司的MICROSOFT? ACCESS?数据库软件之类的关系
数据库管理系统(“RDBMS”)的插件或组件,并且可以包括多个应用程序模块和计算机系统 102上的其他组件。
[0024]数据库可视化模块110访问数据库112以便生成数据库图。数据库112可以是关 系数据库或者本领域已知的其他数据存储机制,并且包含多个用于存储数据的数据表114。 数据库112也可以包含定义数据库的结构或“方案”的元数据116,比如数据表114之间的 关系。根据一个实施例,数据库可视化模块110利用元数据116来生成表示数据库112中 的数据表114的数据库图,并且在显示设备106上向用户104显示所述数据库图,这将在此 处予以更详细描述。
[0025]图2A — 2C示出了由数据库可视化模块110显示的说明性用户界面200的示例。 用户界面200包括里面显示数据库图204的窗口 202。根据实施例,如图2A所示,数据库 图204包括多个小块206A - 206N (在此统称为小块206)。每个小块206都对应于数据库 112中的单个对象,比如数据表114。小块206A - 206N是根据相应数据表114之间的关系 被布置在数据库图204中的,这将在下面参照图3和6予以更详细描述。数据库可视化模 块110可以从数据库112中的元数据116中确定数据表114之间的关系以便生成数据库图 204。
[0026]每个小块206都可以用相应数据表114的标识符(比如图2A所示的表名称)来标 注。每个小块的标签都可以提供关于相应数据表114的进一步信息,比如表中的行数。根 据实施例,每个小块206的大小可以涉及数据库的相应数据表114的相对重要性、数据表的 关系的数目、数据表中的记录的数目或其组合,这将在下面予以更详细描述。另外,每个小 块206的其他属性可以涉及相应数据表114的性质。例如,与具有相对大数目的关系或记 录的数据表114相对应的小块206可以被着色为较深的颜色,而与具有相对少的关系或记 录的表相对应的小块可以被着色为较淡的颜色。能够理解,每个小块206的其他属性都可 以由数据库可视化模块110来调整以反映相应数据表114的其他属性,包括、但不限于:小 块的底纹、用于小块的标签的字体、小块的边框的厚度或质量等等。
[0027]根据另外的实施例,数据可视化模块110可以提供允许用户104操纵数据库图204 的便利。例如,数据库可视化模块110可以提供指针控件208,其允许用户104通过例如用 鼠标操纵指针控件来选择与数据库112中的数据表114相对应的特定小块206八。数据库可 视化模块110还可以提供一组导航控件210,所述导航控件210允许用户104平移和缩放窗 口 202中的数据库图204。
[0028]根据一个实施例,如果数据库图204被缩放到一缩放水平,使得诸如小块206A之 类的特定小块超过阈值大小,小块上的标签可以被数据网格212或其他显示替代,所述数 据网格212或其他显示示出来自数据库112的相应数据表114中的记录,这在图2B中示出。 在另一实施例中,双击特定小块206A可以致使数据库可视化模块110将小块在图中居中并 且将数据库图204缩放到合适的缩放水平,同时示出包含来自小块206A的相应数据表114 的记录的数据网格212。[0029]数据库可视化模块110还可以提供一组搜索控件214,所述搜索控件214允许用户104在数据库112中搜索特定数据。例如,搜索控件214可以允许输入搜索字符串或关键字,比如“HEALTH (健康)”。当用户104在搜索控件214中键入字符时,数据库可视化模块110可以在数据表114或数据库112中搜索单词的索引。数据库可视化模块110然后可以通过如下方式在数据库图204中突出与包含搜索字符串或关键字的数据表114相对应的那些小块206G - 206H:改变小块的显示属性和/或从视图中淡化与不包含所搜索的数据的数据表114相对应的那些小块206,这在图2C中示出。
[0030]在一个实施例中,当仅仅一个小块206保持在数据库图204被突出时,用户104可以按下键盘上的按键以致使数据库可视化模块110将数据库图204居中和缩放到小块上, 同时在包括来自所搜索数据的相应数据表114的那些记录的小块中显示数据网格212。能够理解,本领域公知的在数据库112中搜索数据的其他方法可以由数据库可视化模块110 使用搜索控件214来实现。
[0031]现在参考图3和6,提供关于本文所呈现实施例的附加细节。应当理解,参照图3 和6所描述的逻辑操作被实现为(I)在计算系统上运行的计算机实现动作序列或程序模块和/或(2)计算系统内的互连机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,该实现是设计问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑、及其任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可按与所述次序不同的次序来执行。
[0032]图3示出了根据一个实施例的用于使用“空间划分”布局从数据库112中生成数据库图204的一个例程300。在空间划分布局中,数据库图204包含针对数据库112的每个数据表114的小块206,同时保留总体方形形状。另外,数据库112中的数据表114之间的关系或“亲和性”是通过数据库图204中的小块206的布局来反映的。根据一个实施例,例程300由在计算机系统102和/或其他服务器或计算设备上执行的数据库可视化模块110 来执行。可以明白,例程300也可由在其它计算设备上执行的其它模块或组件执行,或者由模块、组件和计算设备的任何组合来执行。
[0033]例程300始于操作302,其中数据库可视化模块110从数据库112中检索数据表 114的列表,并且按照每个表所具有的关系的数目将所述列表从最高到最低进行排序。数据库可视化模块110可以从数据库112中的定义数据表的方案的元数据116中确定每个数据表114的关系的数目。例如,图4示出了包含具有所指示的关系的五个数据表114A - 114E 的数据库112的简化实体关系(“ER”)图400。从图4的ER图表400中所描绘的数据库112 中,数据库可视化模块110可以生成下面在表1中所示的表的经排序的列表。
[0035]表1 一表的经排序的列表[0036]从操作302,例程300进行到操作304,其中数据库可视化模块110最初在数据库 图204中为表的经排序列表中的第一数据表114创建方形小块206。例如,数据库图204的 初始的当前布局500可以包括与表3114C相对应的方形小块206A,这在图5A的步骤I中示 出。例程300然后从操作304进行到操作306,其中数据库可视化模块110为数据库图204 生成可能的新布局504的列表,所述新布局包含表的经排序列表中的下一数据表114。
[0037]根据一个实施例,可能的新布局504的列表中的每个布局都包括与当前布局500 相等的布置,其中一个现有小块206被分割成两个以为与要添加的下一数据表114相对应 的新小块创建新位置。例如,如在图5A中的步骤2所示,表3114C的当前小块206A被分割, 这由分割线502来指示,从而为可能的新布局的列表创建两个布局以用于将表2114B的新 小块添加到数据库图204。在一个实施例中,现有小块206的分割将要么是水平的以便产生 两个方形小块、要么是垂直的以便产生两个竖直的矩形,即高度大于它们的宽度的矩形,这 在图5A中的步骤2由小块206A的分割线502所指示的分割来示出。
[0038]从操作306,例程300进行到操作308,其中数据库可视化模块110为可能的新布 局504的列表中的每个布局计算“能量”以用于量化该布局可视地反映数据库图204中的 数据表114的亲和性的能力。根据一个实施例,每个布局的能量都表示沿着每个小块206 的接触如下另一小块的边缘的像素或其他单元的总数:该另一小块对应于同与第一小块相 对应的数据表在数据库112中相关的数据表114。接着,在操作310,数据库可视化模块110 从可能的新布局504的列表中选择具有最高的所计算能量的布局以作为数据库图204的新 当前布局500。例如,从图5A的步骤2所示的两个可能的新布局中,数据库可视化模块110 可以选择在步骤3所示的布局500,其一并包含与数据表3114C相对应的分割小块206A以 及新小块206B,该新小块206B对应于来自数据表的经排序列表的数据表2114B。
[0039]例程300从操作310进行到操作312,其中数据库可视化模块110确定:在表的 经排序列表中是否存在更多的数据表114要添加到数据库图204。如果存在更多的数据表 114,则例程300返回到操作306,其中数据库可视化模块110为数据库图204生成可能的新 布局504的新列表,其包含表的经排序列表中的下一数据表的小块,比如数据表1114A,这 在图5A的步骤4示出。从可能的新布局504的新列表中,数据库可视化模块110选择包含 下一数据表114A的小块206C的具有最高所计算能量的布局以作为新当前布局500,这如上 面参照操作308和310所述以及在图5A的步骤5所示。操作306至310迭代地对表的经 排序列表中的剩余数据表继续进行,这如在图5A的针对数据表4114D的步骤6和7以及在 图5B的针对数据表5114E的步骤8和9所描绘的那样。
[0040]如果在操作312,数据库可视化模块110确定:在表的经排序列表中不存在更多的 数据表114要添加到数据库图204,则例程300结束。能够理解,通过对图4中的ER图表 400中所描绘的数据库112应用上述空间划分布局例程300,数据库可视化模块110可以生 成类似于图5B的结果处所示的所得到的数据库图204。然后,数据库可视化模块110可以 在用户界面200中向用户104显示所生成的数据库图204,这如上面参照图2A — 2C所述。
[0041]图6示出了根据另一实施例的用于使用“边缘粘接”布局从数据库112中生成数据 库图204的另一例程600。在边缘粘接布局中,除了通过小块206的布局来反映数据库112 中的数据表114的亲和性之外,数据库图204的每个小块的相对大小可以涉及相应数据表 的性质。例如,小块206的相对宽度可以涉及相应数据表114的关系的数目,而小块的相对高度可以涉及表中的记录的数目。根据一个实施例,例程600由在计算机系统102和/或 其他服务器或计算设备上执行的数据库可视化模块110来执行。可以明白,例程600也可 由在其它计算设备上执行的其它模块或组件执行,或者由模块、组件和计算设备的任何组 合来执行。
[0042]例程600始于操作602,其中数据库可视化模块110从数据库中检索数据表114的 列表,并且按照每个表所具有的关系的数目将所述列表从最高到最低进行排序。下面将会 得知,对数据表114的该排序可以导致生成如下的数据库图204:其中具有最多关系的那些 数据表114处于或接近该图的中心。如上面参照操作302所述,数据库可视化模块110可以 从数据库112中的定义数据表的方案的元数据116中确定每个数据表114的关系的数目。 使用在图4中的ER图表400中所描绘的示例性数据库112,数据库可视化模块110可以生 成上面在表I中所示的表的经排序的列表。
[0043]从操作602,例程600进行到操作604,其中数据库可视化模块110为与表的经排 序列表中的每个数据表114A - 114E相对应的每个小块206A — 206E计算相对大小。根据 一个实施例,数据库可视化模块110从相应数据表114的关系的相对数目中计算出每个小 块206的宽度,并且参照列表中的其他数据表中的记录的数目从相应数据表中的记录的数 目中计算出小块的高度。另外,如果需要的话,数据库可视化模块110可以通过将小块的高 度增加到至少小块的宽度来保证没有小块206的宽度大于其高度。能够理解,这将导致在 数据库图204中根据边缘粘接所生成的小块206要么是方形的、要么是竖直的矩形。例如, 从上面表I中的表的经排序列表中的数据表114中,数据库可视化模块110可以生成具有 如图7A中的步骤I所示的相对高度和宽度的相应小块206A - 206E以供包括在数据库图 204 中。
[0044]在另外的实施例中,关系数目、记录数目、唯一键的数目或数据库112中的数据表 114的其他性质的其他某个组合可以被数据库可视化模块110用于为数据库图204计算每 个小块206的相对宽度和/或高度。接着,在操作606,数据库可视化模块110将与数据表 的经排序列表中的第一数据表114相对应的小块206放置在数据库图204的中心。例如, 数据库图500的初始当前布局500可以包括与数据表3114C相对应的小块206A,这在图7A 的步骤2中示出。
[0045]例程600从操作606进行到操作608,其中数据库可视化模块110为数据库图204 生成可能的新布局的列表,所述新布局包含与表的经排序列表中的下一数据表114相对应 的小块206。为了生成可能的新布局的列表,数据库可视化模块110可以在当前布局500的 小块周围创建槽702A - 702H (在此统称槽702)的列表。槽702可以在布局的现有小块 206的每个开放的边缘和角处创建。例如,从放置在数据库图204中的初始小块206A中,数 据库可视化模块110可以生成八个槽702A - 702H的列表,这在图7A的步骤2示出。
[0046]能够理解,在图7A和7B中所示的当前布局500中的现有小块206周围的可用槽 702的编号是仅出于说明目的示出的,并且这些槽可以以与所示不同的顺序或方向来编号。 另外,比附图中所示和在此所述更多或更少的槽702可以由数据库可视化模块110标识出。 根据一个实施例,可能的新布局的列表包括如下的当前布局500:其中与表的经排序列表 中的下一数据表114相对应的小块206被安放到每个开放槽702中,使得新小块不覆盖布 局中的任何现有小块。例如,对于与表的经排序列表中的下一数据表、数据表2114B相对应的小块206B而言,可能的新布局的列表可以包括最初放置在数据库图204中的小块206A, 其中小块206B放置在八个枚举的槽702A — 702H的每个中。
[0047]从操作608,例程600进行到操作610,其中数据库可视化模块110为可能的新布 局的列表中的每个布局计算能量。根据一个实施例,每个布局的能量都表示新近安放的小 块206的中心与如下那些小块之间的距离的倒数之和:所述小块对应于在数据库112中与 新小块相对应的数据表相关的数据表114。接着,在操作612,数据库可视化模块110从可 能的新布局的列表中选择具有最高的所计算能量的布局以作为数据库图204的新当前布 局500。例如,从与图7A中的步骤2所示的每个槽702A — 702H中的小块206B相对应的八 个可能布局中,数据库可视化模块110可以选择步骤3所示的布局500,其包含与表的经排 序列表中的数据表2114B相对应的新小块206B,该新小块206B被定位为与槽1702A中的小 块206A相邻。
[0048]例程600从操作612进行到操作614,其中数据库可视化模块110确定:在表的 经排序列表中是否存在更多与数据表114相对应的小块206要添加到数据库图204。如果 存在更多的小块206,则例程600返回到操作606,其中数据库可视化模块110在当前布局 500中的现有小块周围创建槽的新列表,这在图7A中的步骤3示出,并且然后为数据库图 204创建可能的新布局的新列表,所述新布局包含与表的经排序列表中的下一数据表、数据 表1114A相对应的小块206C。从可能的新布局的新列表中,可视化模块110选择包含小块 206C的具有最高所计算能量的布局以作为新当前布局500,这在上面参照操作610和612 予以了描述以及在图7A的步骤4示出。操作606至612迭代地对与表的经排序列表中的 剩余数据表相对应的小块206继续进行,这如在图1k的针对数据表4114D的步骤5以及在 图7B的针对数据表5114E的步骤6所描绘的那样。
[0049]如果在操作614,数据库可视化模块110确定:不存在更多的与表的经排序列表中 数据表114相对应的小块206要添加到数据库图204,则例程600结束。能够理解,通过对 图4中的ER图表400中所描绘的数据库112应用上述边缘粘接布局例程600,数据库可视 化模块110可以生成类似于图7B的结果处所示的所得到的数据库图204。然后,数据库可 视化模块110可以在用户界面200中向用户104显示所生成的数据库图204,这如上面参照 图2A — 2C所述。
[0050]尽管本公开使用方形或矩形小块206描述了数据库图204的生成,但是能够理解, 其他多边形可以被数据库可视化模块110用于生成与数据库图中所描绘的每个数据表114 相对应的小块,包括但不限于:三角形、六边形和八边形。在另一实施例中,数据库可视化模 块110可以将一定空间量放置在数据库图204的相邻小块206之间,使得与相邻小块相对 应的数据表114之间的关系(如果有的话)可以例如使用常规ER图表示法在该空间中示出。
[0051]图8示出用于能够执行此处所描述的用于以上面呈现的方式生成和操纵关系数 据库的可视图的软件组件的计算机800的示例性计算机体系结构。图8所示的计算机体系 结构示出常规桌面计算机、膝上型计算机、笔记本计算机、PDA、无线电话、服务器计算机或 其它计算设备,并可以用来执行本文呈现的被描述为在计算机系统102或其它计算设备上 执行的软件组件的任何方面。
[0052]图8所示的计算机体系结构包括一个或多个中央处理单元(“CPU”)802。CPU802 可以是执行计算机800的操作所需的算术和逻辑操作的标准处理器。CPU802通过从一个分立的物理状态转换到下一状态来执行必要的操作,该转换是通过操纵在各状态之间进行区 别并改变这些状态的切换元件来实现的。切换元件一般可包括维持两个二进制状态之一的 电子电路,诸如触发电路,以及基于一个或多个其它切换元件的状态的逻辑组合来提供输 出状态的电子电路,诸如逻辑门。这些基本切换元件可被组合以创建更复杂的逻辑电路,包 括寄存器、加减器、算术逻辑单元、浮点单元和其它逻辑元件。
[0053]该计算机体系结构还包括含有随机存取存储器(“RAM”)814和只读存储器816 (“ROM”)的系统存储器808、以及将存储器耦合至CPU802的系统总线804。基本输入/输出 系统被存储在R0M816中,该系统包含帮助诸如在启动期间在计算机800中的元件之间传递 信息的基本例程。计算机800还包括用于存储操作系统122、应用程序和其它程序模块的大 容量存储设备810,这将在本文中更为详尽地描述。
[0054]大容量存储设备810通过连接至总线804的大容量存储控制器(未示出)连接到 CPU802。大容量存储设备810为计算机800提供非易失性存储。计算机800可通过变换大 容量存储设备810的物理状态来反映被存储的信息来将信息存储在该设备上。在本说明书 的不同实现中,物理状态的具体变换可取决于各种因素。这些因素的示例可以包括,但不仅 限于:用于实现大容量存储设备的技术,大容量存储设备被表征为主存储还是辅存储等等。
[0055]例如,计算机800可通过向大容量存储控制器发出以下指令来将信息存储到大容 量存储设备810:变更磁盘驱动器内的特定位置的磁特性;变更光存储设备中的特定位置 的反射或折射特性;或变更固态存储设备中的特定电容、晶体管或其它分立元件的电特性。 在不背离本发明的范围和精神的情况下,物理介质的其它变换是可能的。计算机800还可 通过检测大容量存储设备内的一个或多个特定位置的物理状态或特性来从大容量存储设 备810读取信息。
[0056]如上简述,多个程序模块和数据文件可存储在计算机800的大容量存储设备810 和RAM814中,包括适用于控制计算机的操作的操作系统818。大容量存储设备810和 RAM814还可以存储一个或多个程序模块。具体而言,大容量存储设备810和RAM814可存储 数据库可视化模块110,这曾在上文中参照图1更详细地描述过。大容量存储设备810和 RAM814还可存储其它类型的程序模块或数据。
[0057]除了上述大容量存储设备810之外,计算机800能够访问其它计算机可读介质以 存储和检索信息,诸如程序模块、数据结构或其它数据。本领域技术人员应该明白,计算机 可读介质可以是计算机800可访问的任何可用介质,包括计算机可读存储介质和通信介 质。通信介质包括瞬时信号。计算机可读存储介质包括以存储如计算机可读指令、数据结 构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不 可移动介质。例如,计算机可读存储介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其 它固态存储器技术,⑶-ROM、数字多功能盘(DVD)、HD-DVD、蓝光、或其它光学存储、磁带盒、 磁带、磁盘存储或其它磁存储设备,或可以用来存储所需信息并可由计算机800访问的任 何其它介质。
[0058]计算机可读存储介质可以用计算机可执行指令来编码,该指令在被加载到计算机 800中时可将计算机系统从通用计算系统变换成能够实现本文描述的实施例的专用计算 机。计算机可执行指令可通过变更计算机可读存储介质中的特定位置的电、光、磁或其它物 理特性来在该介质上编码。这些计算机可执行指令通过如上所述地指定CPU802如何在各状态之间转换来变换计算机800。根据一个实施例,计算机800能够访问存储计算机可执行 指令的计算机可读存储介质,所述指令在由计算机执行时执行以上参照图3和6描述的用 于从关系数据库中生成数据库图的例程300和600。
[0059]根据各种实施例,计算机800可使用通过一个或多个网络820到远程计算设备和 计算机系统的逻辑连接在联网环境中操作,所述网络诸如LAN、WAN、因特网或本领域已知的 任何拓扑结构的网络。计算机800可以通过连接到总线806的网络接口单元804连接到网 络820。应当理解,网络接口单元806还可以被用来连接到其他类型的网络和远程计算机系 统。
[0060]计算机800还可包括用于接收并处理来自包括键盘、鼠标、触摸垫、触摸屏、电子 指示笔、或其它类型的输入设备的多个输入设备108的输入的输入/输出控制器812。类似 地,输入/输出控制器812还可向诸如计算机监视器、平板显示器、数字投影仪、打印机、绘 图仪之类的显示设备106或其他类型的输出设备提供输出。可以明白,计算机800可以不 包括图8所示的全部组件,可以包括未在图8中明确示出的其它组件,或者可使用完全不同 于图8所示的体系结构。
[0061]基于前面的描述,应当理解,此处提供了用于生成和操纵关系数据库的可视图的 技术。虽然以计算机结构特征、方法动作、以及计算机可读存储介质专用的语言描述了本文 呈现的主题,但是应该理解,在所附权利要求书中所限定的本发明不一定仅限于本文描述 的具体特征、动作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形 式来公开的。
[0062]以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所描述的 主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用且不背离所附权利 要求书中所阐述的本发明的真正精神和范围。
【权利要求】
1.一种用于生成描绘数据库中的多个数据表的数据库图的计算机实现的方法,该方法包括在计算机系统中执行指令以执行以下操作:从所述数据库中检索所个多个数据表的列表;确定第一小块在所述数据库图中的相对大小和位置,所述第一小块对应于所述多个数据表中的第一数据表,其中第一小块包括多边形并且第一小块的位置被确定为使得第一小块的至少一个边缘或角与所述数据库图中的第二小块相邻,所述第一小块对应于所述多个数据表中的与第一数据表相关的另一数据表;以及在用户界面中显示所述数据库图,其中所述用户界面包括一个或多个控件,所述控件允许用户导航和缩放所述数据库图以便揭示包含在与第一小块相对应的第一数据表中的数据。
2.如权利要求1所述的计算机实现的方法,其特征在于,第一小块的相对宽度对应于第一数据表与所述数据库中的其他数据表之间的关系的数目,并且其中第一小块的相对高度对应于包含在第一数据表中的记录的数目。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述多边形包括正方形和竖直矩形之一。
4.如权利要求1所述的计算机实现的方法,其特征在于,与具有最高数目的关系的数据表相对应的小块被定位为接近所述数据库图的中心。
5.一种用计算机可执行指令编码的计算机可读存储介质,所述指令在由计算机执行时使所述计算机:从数据库中检索数据表的列表;根据数据表的列表中的每个数据表的关系的数目对所述列表进行排序;将第一小块放置在数据库图的当前布局中,所述第一小块对应于数据表的列表中的具有最大数目的关系的第一数据表;生成所述数据库图的包括新小块的可能的布局的列表,所述新小块对应于数据表的列表中的下一数据表,其中可能的布局的列表中的每个可能的布局都包括所述当前布局, 其中一个现有小块被分割以创建用于放置所述新小块的位置;为可能的布局的列表中的每个可能的布局计算能量;从可能的布局的列表中选择具有最大能量的可能的布局以作为所述数据库图的当前布局;确定在数据表的列表中是否存在更多数据表以用于在所述数据库图中放置相应小块;以及在确定在数据表的列表中存在更多数据表以用于在所述数据库图中放置相应小块以后,重复生成、计算和选择操作,直到在数据表的列表中不存在更多数据表以用于在所述数据库图中放置相应小块。
6.如权利要求5所述的计算机可读存储介质,其特征在于,为每个可能的布局计算能量包括:确定沿着所述数据库图中的每个小块的接触如下另一小块的边缘的单元的总数: 该另一小块对应于与该小块相对应的数据表在所述数据库中相关的数据表。
7.如权利要求5所述的计算机可读存储介质,其特征在于,可能的布局中的现有小块能够被水平地分割以便产生两个方形小块、或者垂直地分割以便产生两个竖直的矩形。
8.一种用于从数据库中生成数据库图的系统,该系统包括:计算机;以及数据库可视化模块,其在所述计算机上执行并且被配置为:从所述数据库中检索数据表的列表;根据数据表的列表中的每个数据表的关系的数目对所述列表进行排序;为与数据表的列表中的每个数据表相对应的小块计算相对大小;将如下的小块放置在所述数据库图的当前布局的中心处:所述小块对应于数据表的列表中的具有最大数目的关系的第一数据表;生成数据库图的可能的布局的列表,所述可能的布局包括与数据表的列表中的下一数据表相对应的小块,其中可能的布局的列表中的每个可能的布局都包括所述当前布局,其中与所述下一数据表相对应的小块被安放到定位在所述当前布局中的现有小块的边缘和角处的多个槽之一中;为可能的布局的列表中的每个可能的布局计算能量;从可能的布局的列表中选择具有最大能量的可能的布局以作为所述数据库图的当前布局;确定在数据表的列表中是否存在更多数据表以用于在所述数据库图中放置相应小块;以及在确定在数据表的列表中存在更多数据表以用于在所述数据库图中放置相应小块以后,重复生成、计算和选择操作,直到在数据表的列表中不存在更多数据表以用于在所述数据库图中放置相应小块。
9.如权利要求8所述的系统,其特征在于,为每个可能的布局计算能量包括:计算与所述下一数据表相对应的小块的中心与对应于所述下一数据表在所述数据库中相关的数据表的那些小块之间的距离的倒数之和。
10.如权利要求8所述的系统,其特征在于,小块的相对宽度是从相应数据表与所述数据库中的其他数据表之间的关系的数目中计算出的,并且所述小块的相对高度是从包含在相应数据表中的记录的数目中计算出的。
【文档编号】G06F3/14GK103562917SQ201280026433
【公开日】2014年2月5日 申请日期:2012年5月31日 优先权日:2011年6月2日
【发明者】J·麦克弗森, R·W·小刘易斯 申请人:微软公司