CN1841379B - 将文件系统模型映射到数据库对象 - Google Patents

将文件系统模型映射到数据库对象 Download PDF

Info

Publication number
CN1841379B
CN1841379B CN2006100515658A CN200610051565A CN1841379B CN 1841379 B CN1841379 B CN 1841379B CN 2006100515658 A CN2006100515658 A CN 2006100515658A CN 200610051565 A CN200610051565 A CN 200610051565A CN 1841379 B CN1841379 B CN 1841379B
Authority
CN
China
Prior art keywords
type
storage
data model
file storage
store
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.)
Expired - Fee Related
Application number
CN2006100515658A
Other languages
English (en)
Other versions
CN1841379A (zh
Inventor
A·舒克拉
A·K·诺里
B·德米罗司基
G·S·弗雷德曼
J·T·亨特
J·T·皮尔斯
M·J·纽曼
N·R·艾利斯
S·P·阿查里雅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1841379A publication Critical patent/CN1841379A/zh
Application granted granted Critical
Publication of CN1841379B publication Critical patent/CN1841379B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供帮便于数据库模型映射到数据库对象的系统和/或方法。类型存储系统可以利用文件存储数据模型的存储映射。该映射可以描述至少部分地基于模式所创建的数据库对象以及该模式中所描述的类型实例如何被存储和/或访问。此外,可以提供查询以便查找满足至少一个准则的项目、文档和/或联系人的至少其中之一。该类型存储系统可以经由接口接收数据以提供存储和查询,其中数据是模式、数据模型、类型、查询和查询准则的至少其中之一。另外,该类型存储系统可以创建展示类型的至少一个实例的视图。

Description

将文件系统模型映射到数据库对象
技术领域
本发明一般涉及数据库,尤其涉及便于存储类型实例和/或查询数据的系统和/或方法。
背景技术
计算机技术的进步(例如,微处理器速度、存储器容量、数据传输带宽、软件功能等等)已经广泛地为各种行业增长的计算机应用做出贡献。常常被配置成服务器阵列的更强大的服务器系统通常用来为从例如万维网等外部源发出的请求提供服务。
随着可用电子数据量的增长,以便于用户友好和快捷数据搜索和检索的可管理方式来存储这类数据变得更为重要。目前,通常的方式是将电子数据存储在一个或多个数据库中。一般地,例如,典型的数据库可以被称为信息的有组织集合,其中的数据被结构化以便使得计算机程序能快捷地搜索和选择所需要的数据片段。通常,数据库里的数据是通过一个或多个表来组织的。这些表可以排列为行和列。
表可以包含一个或多个记录,其中一个记录可以包括一组字段。记录通常被索引为表中的行,而记录字段通常被索引为列,因此索引的一个行/列对可引用表中的特定数据。例如,行可以存储与销售交易、个人或工程相关的全部数据记录。同样,表的列可以定义具有相同的通用数据格式的行的离散部分,其中列可以定义诸记录等字段。
孤立地看,数据的每一单独片段通常不能提供什么信息。数据库应用程序使数据变得更有用,因为它们帮助用户组织和处理数据。数据库应用程序允许用户比较、分类、排序、合并、分离和互连数据,所以可以从数据中生成有用信息。然而,数据库的容量和多功能性已经增长到难以置信的程度,以允许几乎无穷的存储器容量利用数据库。而且,典型的数据库系统提供有限的基于时间、文件扩展名、位置和大小的查询性能。例如,为了搜索关联到数据库的大量数据,典型的搜索限于文件名、文件大小、创建日期,但这样的技术是不足够和不适当的。
随着来自最终用户的持续不断和逐渐增加的数据创建,围绕查找、关联和存储这类数据方面的问题和困难到达了顶峰。最终用户编写文档、存储照片、从光盘提取音乐、接收电子邮件、保留已发送电子邮件的副本等等。例如,在创建音乐光盘的简单过程中,最终用户会创建数兆字节的数据。从光盘提取音乐、将文件转换成适当的格式、创建珠宝盒封面、设计光盘标签,全部都需要创建数据。
这类复杂情况不仅仅困扰用户,开发者也面临类似的数据问题。开发者创建和编写无数的应用程序,从个人应用程序到高度发达的企业应用程序。在创建和/或开发中,开发者常常(如果不是总是)收集数据。在获得这类数据时,需要存储数据。换言之,围绕查找、关联和存储数据方面的问题和困难影响开发者和最终用户。如上所述,需要改进和/或提供减轻与传统系统和数据库相关的困难的系统和/或方法。
发明内容
下面给出本发明简化概述,以便提供对本发明一些方面的基本理解。该内容不是本发明的广泛纵览。该内容并不是要标识本发明的关键或重要的元素,也不是描绘本发明的范围。其唯一目的是以简化的形式给出本发明的一些概念,作为后面给出的更加详细的描述的序言。
本发明涉及便于将数据模型映射到数据库对象的系统和/或方法。类型存储系统能够提供类型实例的存储和/或查询。类型存储能描述数据库对象,以及如何存储和/或访问类型实例。查询可以查找满足特定准则的项目、文件和联系人中的至少其中之一。而且,类型存储系统能利用界面接收数据,其中数据可以包括模式、类型、准则、查询准则等等。
根据本发明的一个方面,该类型存储系统可以包括存储至少一个类型实例的存储组件。该存储可以是数据模型的映射,其中数据模型可以表示文件存储系统。此外,该类型存储系统也可以包括查询组件。该查询组件可以提供文件存储系统数据模型中满足准则的至少一个查询。根据本发明主题的另一个方面,该类型存储系统可以包括可以利用关系型存储和/或关系型查询性能的关系组件。该关系组件可以调用数据库引擎来提供这类关系技术,其中这些技术可以便于存储类型实例和/或查询。
而且,该类型存储系统还可以包括能够提供视图的视图组件,该视图展现了给定类型的所有实例。类型可以是分层结构和/或继承结构。该视图与用基本类型投影这些类型的一个子集的特定类型有关。在本发明的其他方面中,提供便于将数据模型映射到数据库对象的方法。
下列描述和附图详细说明本发明的某些示例性方面。然而,这些方面仅指示可应用本发明原理的各种方法中的一些,本发明主题旨在包括所有这些方面及其等效方面。结合附图一起考虑,从下面的本发明具体实施方式中可以明显看出本发明的其他优点和新颖特征。
附图说明
图1示出便于存储与数据模型相关联的类型实例的示例性系统的框图。
图2示出便于存储类型实例和/或查询以便查找项目、文档和联系人的至少其中之一的示例性系统的框图。
图3示出便于利用关系型存储和/或关系型查询性能的示例性系统的框图。
图4示出结合类型存储系统便于映射和/或查看的示例性系统的框图。
图5示出便于存储与数据模型相关联的类型实例的示例性系统的框图。
图6示出文件存储数据模型中的存储的高层结构的框图。
图7示出具有相关联的表的类型实例的框图。
图8示出类型层次和相应的视图投影的框图。
图9示出用于存储映射到数据模型的类型实例和/或提供查询的示例性方法。
图10示出用于存储映射到数据模型的类型实例和/或提供查询的示例性方法。
图11示出其中可采用本发明的新颖方面的示例性网络环境。
图12示出可以根据本发明使用的示例性操作环境。
具体实施方式
本申请书中所使用的术语“组件”、“系统”、“接口”、“模式”等等意指与计算机有关的实体,可以是硬件、硬件和软件的组合、软件(例如,执行中的软件)和/或固件。例如,组件可以是运行在处理器上的进程、处理器、对象、可执行程序、程序和/或计算机。作为例示,运行在服务器上的应用程序和服务器本身都可以是组件。一个或多个组件可以驻留在一个进程中,并且,组件可以位于一台计算机内和/或分布在两台或更多的计算机之间。
参考附图描述本发明主题,附图中,始终用相同的参考数字来指示相同的元素。在下列描述中,出于解释的目的,阐明了很多具体细节,以提供对本发明主题的全面理解。然而,显然,本发明主题可以不需要这些具体细节就能实现。在其他实例中,以框图的形式显示众所周知的结构和设备,以便于描述本发明。
现在转到附图,图1示出便于存储与数据模型相关联的类型实例的系统100。数据模型可以是允许存储、查找和相关信息的文件存储数据模型102。例如,信息类型可以是,但不限于,文档、图像、视频、联系人、消息、电子邮件、音频剪辑等等。信息类型可以被认为是能被表示为复杂类型的实例的信息单元,这些复杂类型是支持继承的类型系统的一部分。继承可以被定义为其中某些特征从一个上下文传递到另一个上下文的情况。尤其是在面向对象的编程中,对象从其他对象继承属性和/或行为。应当明白,继承可以被认为是分层结构和/或格式。
类型存储系统104可以存储类型实例并且进行查询,以便高效地且有效地查找项目、文档和/或联系人的至少其中之一。类型存储系统104可以接收数据,其中数据可以包括类型、准则、模式、查询准则……。具体来说,存储与消息类型(例如,文件、图像、视频、联系人、消息、电子邮件、音频剪辑)有关的类型实例可以提供以下的至少其中之一:1)在文件存储数据模型102中查找满足特定准则的至少一个项目;2)在文件存储数据模型102中查找满足特定准则的至少一个文档;以及3)查找满足特定准则的至少一个联系人(例如,包括个人、组织和群)。
类型存储系统104可以利用关联到关系存储和关系查询的关系型数据库技术。应当明白,这些性能可以由数据库引擎提供(未示出)。关系型数据库技术可以关联到关系型数据库,其中关系型数据库是被组织为一组规范描述的表的数据项目的集合。表中的数据不需要重新组织数据库表就能以各种方式访问和/或重新汇编。此外,可以容易地扩展关系型数据库,如增加类别而无需修改现有的应用程序和/或数据。应该明白,本发明不限于关系型数据库和/或相关技术,可以利用任何适当的技术。
系统100还包括接口组件106,接口组件106提供各种适配器、连接器、信道、通信路径等等,以将类型存储系统104集成到实际上任何操作系统。另外,接口组件106可以提供规定与数据和类型存储系统104的交互的各种适配器、连接器、信道、通信路径等等。应该明白,尽管接口组件106被合并到类型存储系统104中,但不限于这种实现。例如,接口组件106可以是接收或发送与系统100有关的数据的单独组件。
图2示出便于存储类型实例和/或查询以便查找与数据模型202项关联的项目、文档和联系人的系统200。数据模型202可以是利用分层特性和/或继承的文件存储系统的模型表示。类型可以包括文档、图像、视频、联系人、消息、电子邮件、音频剪辑等等。然而,应该明白,类型可以是被存储在由数据模型202表示的系统中的典型信息类型。类型存储系统204可以存储类型实例并提供能够高效地查找以下的至少其中之一的查询:数据模型202中的项目、数据模型202中的文档以及数据模型202中的联系人。类型存储系统204可以接收数据,其中数据可以是查询准则、模式、准则、模式定义、数据模型、类型……。系统200还可以使用接口206以便于提供各种适配器、连接器、信道、通信路径等等,以将类型存储系统204集成到实际上任何操作系统并便于通信。
类型存储系统204还可以包括能够存储类型实例的存储组件208(“存储208”)。该存储可以是数据模型202的映射,其中该存储映射可以描述基于模式定义所创建的数据库对象,以及该模式中所描述的类型实例如何被存储和/或访问。换言之,存储208可以存储该类型的实例以及与将类型声明映射到数据库对象相关联的至少一个规则。
类型存储系统204可以包括提供数据查询的查询组件210(“查询210”)。查询210可以获得以下的至少其中之一:由数据模型202表示的系统中的项目;由数据模型202表示的系统中的文档;以及由数据模型202表示的系统中的联系人(例如,包括个人、组织和群)。应该明白并理解,查询可以基于经由接口206获得的至少一个特定准则和/或查询准则。此外,查询210不限于项目、文档和联系人,且可以利用存储在由数据模型202表示的系统中的任何适当的信息类型。
图3示出便于利用关系型存储和关系型查询性能的系统300。类型存储系统304可以存储类型实例并查询以便高效地且有效地查找项目、文档和联系人,其中这些元素被关联到由数据模型302表示的文件系统。应该明白,该文件系统可以是利用分层结构和/或继承特性的存储文件系统。类型存储系统304实质上可以类似于分别如图1和2所描述的类型存储系统104、204。类型存储系统304可以调用接口306以便于通信和/或接收要根据本发明进一步利用的数据。
类型存储系统304可以包括存储组件308(存储308)和查询组件310(“查询310”)。存储308可以提供任何适当的存储技术以存储类型实例。查询310能够提供可以高效地且有效地获得以下的至少其中之一的查询:系统中满足准则的至少一个项目;系统中满足准则的至少一个文档;以及符合准则的至少一个联系人。应该明白并理解,存储308和查询310实质上可以类似于如图2所描述的存储208和查询210。
类型存储系统304还可以包括关系组件312(“关系312”)。关系组件312利用数据库技术(例如,利用数据库引擎)建立关系型存储和/或提供关系型查询性能以便于存储类型实例和/或查询。关系组件312可以结合与关系型数据库相关联的技术,其中关系型数据库是如上所述被组织为一组规范描述的表的数据项目的集合。应该明白,本发明不限于关系型数据库和相关技术,可以利用任何适当的技术。
图4示出便于结合数据模型402来映射和/或查看的系统400。数据模型402可以表示允许存储、查找和相关信息的文件存储系统。能够存储在该系统中的典型信息类型可以包括文档、图像、音乐、视频、联系人、消息等等。该信息类型可以被表示为复杂类型的实例,这些复杂类型是支持继承的类型系统的一部分。类型存储系统404可以存储类型实例并提供查询以便查找满足特定准则的项目、文档和联系人。系统400还可以使用接口406来便于通信和/或接收数据,这类数据可以包括准则、类型、模式模型和查询准则。
类型存储系统404还可以包括映射组件408以便于存储类型实例。映射组件408提供将模式中所描述的类型映射到所定义的类型和数据库对象。映射组件408可以是描述至少一个数据库对象和/或模式中所描述的类型实例如何被存储和/或访问的存储映射,其中数据库对象可以基于模式定义来创建。换言之,可以存储类型的实例并可以利用规则,以将类型声明映射到数据库对象中。模式中的每个类型映射到存储中的一个类(例如,公共语言运行库(CLR))。
类型存储系统404可以包括视图组件410以便提供视图投影。视图投影可以展示所查看的类型实例。应该明白,类型可以采用至少利用继承的分层结构。换言之,每个类型是类型层次的一部分。视图可以与一给定的类型相关联,并可以投影与其基本类型相关联的相应类型视图的子集。该视图可以将相关联的实例投影到特定类型。例如,对于类型“消息”,至少基于该分层结构,只有其消息是其父节点的实例才可以被查看。
视图组件410能够提供各种类型的用户界面,以便于用户和耦合到类型存储系统404的任何组件之间的交互。如上所述,视图组件410是被合并到类型存储系统404中的单独实体。然而,应该明白,视图组件410和/或类似视图组件可以是独立于类型存储系统404的单独组件和/或独立单元。视图组件410可以提供一个或多个图形用户界面(GUI)、命令行界面等等。例如,GUI可以被实现为向用户提供加载、导入、读取数据等的区域或方法,并可以包括呈现这些结果的区域。这些区域可以包括已知文本和/或图形区域,包括对话框、静态控件、下拉菜单、列表框、弹出式菜单以及编辑控件、组合框、单选按钮、复选框、下压按钮和图形框。另外,可以使用实用程序来便于显示用于导航的这类垂直和/或水平滚动条,以及确定区域是否可查看的工具栏按钮。例如,用户可以与耦合到类型存储系统404的一个或多个组件交互。
用户也可以与区域交互以便经由各种设备来选择和提供信息,这些设备如鼠标、滚动球、小键盘、键盘、笔和/或语音激活。通常,可以在输入信息以便开始搜索之后使用像下压按钮或键盘上的Enter键这样的机制。然而,应该明白,本发明不限于此。例如,仅仅突出显示复选框就可以启动信息传送。在另一个例子中,可以使用命令行界面。例如,命令行界面可以通过提供文本消息来提示用户(例如,通过显示器上的文本消息和音频音调)输入信息。于是用户可以提供适当的信息,如对应于界面提示中所提供的选项或对提示中所提出问题的字母或数字输入。应该明白,命令行界面可以与GUI和/或API结合一起使用。另外,命令行界面可以与具有有限的图形支持和/或低带宽通信信道的硬件(例如,视频卡)和/或显示器(例如,黑白以及EGA)一起使用。
图5示出利用智能来便于存储与数据模型502相关联的类型实例的系统500。系统500包括类型存储系统504、接口506和数据模型502,它们实质上可以类似于前面的图中所描述的组件。接口506能够便于与数据相关联的通信,包括准则、类型、模式、数据模型和查询准则。系统500能够提供存储类型、查询的存储和/或提供视图。应该明白并理解,数据库引擎能够向系统500提供关系型存储和关系型查询。
系统500还包括智能组件508。智能组件508可以被类型存储系统504用来便于存储和/或查询系统500。例如,智能组件508可以用来便于确定要存储的用户定义类型。结合用户概况,历史数据可以允许智能组件508确定存储该类型和/或以特定准则进行查询。
应该理解,智能组件508能够从通过事件和/或数据所捕捉的一组观察结果中推断或推理系统、环境和/或用户的状态。例如,可以使用推理来标识特定上下文或动作,或者可以产生状态的概率分布。推理可以是概率性的,即,所关心的状态的概率分布的计算以对数据和事件的考虑为基础。推理也可以是用于从一组事件和/或数据构成更高级事件的技术。这类推理导致从一组所观察的事件和/或所存储的事件数据中构造新事件,而无论诸事件是否有在时间上密切相关,也无论事件和数据是来自一个还是多个事件和数据源。各种分类(显式和/或隐式地训练的)方案和/或系统(例如,支持矢量机、神经网络、专家系统、贝斯信任网络、模糊逻辑、数据融合引擎……)能结合本发明用于执行自动和/或推理的动作。
分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到其输入属于一类的置信度的函数,即,f(x)=confidence(class)。这样的分类可以应用基于概率和/或基于统计的分析(例如,包括分析效用和成本)来预测或推理用户想要自动执行的动作。支持矢量机(SVM)是可以应用的分类器的一个例子。SVM通过在可能输入的空间查找超曲面来进行工作,该超曲面尝试将触发准则从非触发事件分离开来。直观上,这使得分类对于接近但不相同的测试数据是正确的。可采用其他有向和无向模型分类方法,包括,例如,单纯贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型和提供不同的独立性模式的概率分类模型。此处使用的分类也包括用来开发优先级模型的统计回归。
此外,智能组件508能利用数据存储510存储用户概况和/或历史数据。数据存储510可以是,例如,易失性存储器或非易失性存储器,或者可以包括易失性存储器或非易失性存储器两者。作为例示而非限制,易失性存储器可以包括只读存储器(ROM)、可编程只读存储器(PROM)、电可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)或闪存。易失性存储器包括担任外部缓冲存储器的随机存取存储器(RAM)。作为例示而非限制,随机存取存储器以许多形式获得,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、Rambus直接随机存储器(RDRAM)、直接Rambus动态随机存储器(DRDRAM)以及Rambus动态随机存储器(RDRAM)。本发明的系统和方法的数据存储510旨在包括但不限于这些和任何其他适当类型的存储器。另外,应该明白,数据存储510可以是服务器和/或数据库。
图6示出存储的高层结构。可以提供一种模式,其中类型的各种实例可以取决于其类型而存储在表中。类型可以是,但不限于,项目、项目扩展、项目片段和链接。每个类型都可以有一个相应的表,该表可以包括在其中有对象实例的列。例如,项目表中的一列可以包含存储器中的所有项目的实例。对每一行,该列可以包含表示项目类型实例的CLR类实例的串行化表示。应该明白,对于项目扩展、项目片段和链接,类型实例可以用类似的结构表示。内联类型实例可以存储在父对象实例中而不是存储在独立的表和/或列中。对于项目、项目扩展、项目片段和链接,可以创建展示该类型的所有实例的视图。每个类型都是类型层次的一部分。例如,项目视图投影存储中的所有项目。
简短地转到图7,描述项目702。项目702的表704可以包含存储中所有项目的实例(未示出)。该表704可以包含对象实例706(“文档”)和对象实例708(“联系人”)。应该明白,模式中的每个类型都映射到存储中的一个CLR类。对象实例706可以包括名称、摘要、打印、作者和与对象实例706相关联的其他各种元数据。同样,对象实例708可以包括各种元数据,如名字、地址、电子邮件等等。
图8示出类型层次800和相应的视图投影820。类型层次800可以包括项目802、联系人804、文档806、消息808、个人810、组织812、电子邮件814、传真816和语音818。应该明白,类型层次800是一个例子,可以根据本发明利用任何适当的层次和/或类型。正如所示的那样,项目802被认为是其中所包括的每个类型的父节点。因此,联系人804是个人810和组织812的父节点,消息808是电子邮件814、传真816的父节点以及语音818的父节点。此外,相应的视图投影820可以反映类型层次800。与给定类型相关联的视图可以投影与其基本类型相关联的视图的项目的一个子集。例如,项目视图投影存储中的所有项目。联系人视图只投影类型联系人(Contact)的项目。个人视图只投影把个人(person)作为最底层派生类型的联系人。
返回到图6,可以提供类型映射,该类型映射利用一种算法来将该类型映射到用于描述存储中相应存储结构的类型。应该明白,该映射可以关联到任何文件存储系统(例如,基于系统的数据模型,其利用类型的复杂实例来描述和/或表示信息单元)。在模式中所声明的每个类型被映射到一支持SQL UDT契约的CLR类。应该明白,尽管在下列例子中使用SQL,但是可以使用任何适当的数据库管理系统。类型属于一名字空间,其名字对应于附加有“.Store(存储)”后缀的模式的名字空间。给定名字空间中的类型被编译为用作该模式的部署单元的单个程序集。CLR类型的名字等同于模式中所声明的名字。对于该类型的所声明的每一特性,以下被添加到相应的CLR类型:1)具有等同于模式中所指定名字的名字的私有字段,前缀为“m_”。该字段用UDT专用属性System.Data.SqlTypes.SqlUdtField来设置属性;2)具有等同于模式中所指定名字的名字的公有属性以及相应的get(获取)/set(设置)语句。该属性用UDT专用属性System.Data.SqlTypes.SqlUdtProperty来设置属性;以及3)该字段的类型和属性是对应于模式中所声明类型的CLR类型。如果该类型是标量类型的其中之一,就将其映射到标量SQL类型的其中之一(在下面讨论)。
下表描述将文件存储系统标量类型映射到相应的SQL受管类型:
                           表1
                                      文件存储系统类型                                       受管SQL类型                                       描述
                                      String                                       SqlString                                       具有最大长度为2^31字符长度的可变长度Unicode数据。该长度可以固定为1-4000个字符或不受限制地使用“max(最大)”关键字。
                                      Binary                                       SqlBinary                                       具有最大长度为2^31字符长度的可变长度二进制数据。该长度可以固定为1-8000字节或不受限制地使用“max(最大)”关键字。
                                      Boolean                                       SqlBoolean                                       可为空的布尔值
                                      Byte                                       SqlByte                                       单个无符号字节
                                      Int16                                       SqlInt16                                       从-2^15(-32,768)到2^15-1(32,767)的整数数据。
                                      Int32                                       SqlInt32                                       从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整数数据。
                                      Int64                                       SqlInt64                                       从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整数数据。
                                      Single                                       SqlSingle                                       从-3.40E+38到3.40E+38的浮动精度数数据。
                                      Double                                       SqlDouble                                       从-1.79E+308到1.79E+308的浮动精度数数据。
                                      Decimal                                       SqlDecimal                                       具有固定精度和标度的数值数据类型。应用于十进制类型特性的精度和标度属性。精度定义十进制数的十进制数字最大个数。这包括小数点左边和右边的数字。精度属性的值是一个在1和28之间的整数。标度定义小数点右边的十进制数字最大个数。标度属性的值必须在0和精度属性之间。注意,对里程碑B:在这一里程碑中不支持这些属性。精度被固定为28,而标度被固定为14。
                                      DateTime                                       SqlDateTime                                       从1753年1月1日到9999年12月31日的日期和时间,精确度为三百分之一秒或3.33毫秒。
                                      Guid                                       SqlGuid                                       全局唯一标识符(GUID)。
                                      Xml                                       SqlString                                       XML通常被存储为字符串字段。正在考虑将本地Xml类型支持用于后Beta1。
                                      Stream                                       TBD                                       为后Beta1所设计的支持。如果获得支持,它可以代替string(max)(字符串(最大))和binary(max)二进制(最大)声明。
在文件存储系统存储中所创建的数据库对象可以按SQL模式名字存储,该SQL模式名字由该文件存储系统模式名字派生而来。后缀“.Store”被附加到文件存储系统模式名字来生成该SQL模式名字。例如,文件存储system.storage模式生成“[System.Storage.Store]”SQL模式中的对象,如“[System.Storage.Store].Item”。
能够通过视图来访问文件存储系统内的内容。下面所描述的视图是只读的,但由于该视图可以允许写,本发明没有这样的限制。每个项目类型可以被映射到一个类型化视图。在文件存储系统存储器中可以使用命名约定[<模式名>.Store].[<项目类型名>]来标识每个类型化项目视图。类型T的类型视图可以返回类型为T以及从T派生的所有类型的所有项目。对应于System.Storage.Item类型的视图是[System.Storage.Store].[Item]。这一视图能够返回文件存储系统存储器中的所有项目。下表描述的一个项目类型视图的列:
                                    表2
                                     列名                                       类型                                       描述
                                     ItemId                                       [System.Storage.Store].ItemId                                       项目的ItemId
                                     TypeId                                       [System.Storage.Store].TypeId                                       模式化类型id
                                     NamespaceName                                       nvarchar(255)                                       该项目的唯一名字
                                     ContainerId                                       [System.Storage.Store].ItemId                                       容器项目的id
                                     Item                                       Item type                                       项目类型的实例
                                     EntityState                                       [System.Storage.Store].EntityState                                       项目的状态信息
                                     ObjectSize                                       Bigint                                       项目对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     ItemSyncMetadata                                       [System.Storage.Store].ItemSyncMetadata                                       同步元数据
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到项目的路径句柄
                                     PromotionStatus                                       Int                                       项目的升级状态
每一链接类型被映射到一个类型化视图。在文件存储系统存储中使用命名约定[<模式名>.Store].[<链接类型名>])来标识每一类型化链接视图。对应于System.Storage.Link类型的视图是[System.Storage.Store].[Link]。这一视图可以包含文件存储系统存储中的所有链接。下表描述链接类型视图的诸列:
                                     表3
                                     列名                                       类型                                       描述
                                     SourceRef                                       [System.Storage.Store].ItemId                                       源项目的ItemIdLinkId
                                     LinkId                                       [System.Storage.Store].LinkId                                       链接的Id
                                     TargetRef                                       [System.Storage.Store].ItemId                                       目标项目的ItemIdTypeId
                                     TypeId                                       [System.Storage.Store].TypeId                                       链接实例的最底层派生类型的TypeId
                                     Link                                       Link type                                       链接类型的实例
                                     EntityState                                       [System.Storage.Store].EntityState                                       链接的状态信息
                                     ObjectSize                                       Bigint                                       链接对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     LinkSyncMetadata                                       [System.Storage.Store].ItemSyncMetadata                                       同步元数据
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到链接源项目的路径句柄
所有项目片段可以通过单个视图[System.Storage.Store].[ItemFragment]来访问。下表描述全局项目片段视图的诸列:
                         表4
                                     列名                                       类型                                       描述
                                     ItemId                                       [System.Storage.Store].ItemId                                       持有项目的ItemId
                                     SetId                                       [System.Storage.Store].SetId                                       项目片段的用法
                                     FragmentId                                       [System.Storage.Store].FragmentId                                       片段实例的Id
                                     TypeId                                       [System.Storage.Store].TypeId                                       ItemFragment实例的最底层派生类型的TypeId
                                     ItemFragment                                       [System.Storage.Store].[ItemFragment]                                       ItemFragment类型的实例
                                     EntityState                                       [System.Storage.Store].EntityState                                       链接的状态信息
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到链接的源项目的路径句柄
每个存储器提供一个称为[System.Storage.Store].[ItemExtension]的全局扩展视图。所有扩展类型的实例可以通过这一视图来访问。下表描述全局扩展视图中的诸列:
                             表5
                                      列名                                       类型                                       描述
                                      ItemId                                       [System.Storage.Store].ItemId                                       扩展的ItemId
                                      TypeId                                       [System.Storage.Store].TypeId                                       模式化类型id
                                      ItemExtension                                       [System.Storage.Store].ItemExtension                                       扩展类型实例
                                      EntityState                                       [System.Storage.Store].EntityState                                       扩展的状
                                      态信息
                                     ObjectSize                                       Bigint                                       扩展对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到拥有扩展的项目的路径句柄
每个扩展类型被映射到一个类型化视图。文件存储系统存储中使用命名约定[<模式名>.Store].[<扩展类型名>])来标识每个类型化扩展视图。下表描述扩展类型视图的诸列:
                                     表6
                                     列名                                       类型                                       描述
                                     ItemId                                       [System.Storage.Store].ItemId                                       扩展的ItemId
                                     TypeId                                       [System.Storage.Store].TypeId                                       模式化类型id
                                     ItemExtension                                       Extension type                                       扩展类型实例
                                     ObjectSize                                       Bigint                                       扩展对象的大小(持久列)
                                     EntityState                                       [System.Storage.Store].EntityState                                       扩展的状态信息
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到拥有扩展的项目
                                      的路径句柄
在文件存储系统中,内联类型实例可以被存储在实体类型实例中。应该明白并理解,它们是通过查询适当的搜索视图来访问的。
所有项目被存储在称为[System.Storage.Store].[Table!Item]的单个项目表中。下表中的唯一关键字是ItemId:
                                  表7
                                     列名                                       类型                                      描述
                                     ItemId                                       [System.Storage.Store].ItemId                                      项目的ItemId
                                     TypeId                                       [System.Storage.Store].TypeId                                      模式化类型id
                                     NamespaceName                                       Nvarchar(255)                                      项目的唯一名字
                                     ContainerId                                       [System.Storage.Store].ItemId                                      容器项目的id
                                     Item                                       Item type                                      项目
                                     EntityState                                       [System.Storage.Store].EntityState                                      包含关于项目的元信息的EntityState udt
                                     SDId                                       Int                                      仅供内部使用(由安全子系统使用)
                                     SDLastUpdateLocalTS                                       Bigint                                      SDId最后一次改变的时间标记。用于改变跟踪。
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                      改变跟踪信息
                                     ItemSyncMetadata                                       [System.Storage.Store].ItemSyncMetadata                                      用于全局标识符的同步元数据
                                     TombstoneStatus                                       Int                                      墓碑状态
                                     LastUpdateLocalTS                                       Bigint                                      仅供内部使用
                                      (用于索引)。这一列实际上被映射到ChangeInformation.LastUpdateLocalTS。需要将其映射以便创建其索引。
                                     MaxOrd                                       int                                       仅供内部使用(用于为被添加到这一容器项目的新项目计算PathHandle)
                                     TypePath                                       Hierarchical_Type_Id                                       仅供内部使用(持久列)
                                     ObjectSize                                       Bigint                                       项目对象的大小(持久列)
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                       到这一项目的路径句柄
                                     PromotionStatus                                       Int                                       该项目的升级状态
                                     LastAccessTime                                       DateTime                                       与项目相关联的文件流的最后访问时间。
                                     StreamSize                                       Bigint                                       与项目有关的流大小
                                     AllocationSize                                       Bigint                                       与项目相关联的流所分配的大小
在下表中描述项目表的索引:
                            表8
                                      列                                       唯一                                       聚集                                      所包括的列
                                      TypePath,ItemId                                       是                                       是
                                      ItemId                                       是                                       否                                      TombstoneStatus,TypePath,SDId
                                      PathHandle                                       是                                       否                                      SDId,TombstoneStatus
                                      ContainerId,NamespaceName                                       是                                       否                                      SDId,TombstoneStatus
                                      LastUpdateLocalTS                                       否                                       否                                      SDId,TombstoneStatus,PathHandle
所有链接将被存储在被命名为[System.Storage.Store].[Table!Link]的链接表中。下表中唯一关键字是ItemId、LinkId:
                            表9
                                     列名                                       类型                                       描述
                                     SourceRef                                       [System.Storage.Store].ItemId                                       源项目的ItemId
                                     LinkId                                       [System.Storage.Store].LinkId                                       链接的Id
                                     TargetRef                                       [System.Storage.Store].ItemId                                       目标项目的ItemId
                                     TypeId                                       [System.Storage.Store].TypeId                                       模式化类型id
                                     TypePath                                       Hierarchical_Type_Id                                       仅供内部使用(持久列)
                                     Link                                       Link type                                       链接对象
                                     EntityState                                       [System.Storage.Store].EntityState                                       关于链接的状态信息
                                     SDId                                       Int                                       仅供内部使用
                                     TombstoneStatus                                       Int                                       墓碑状态
                                     ObjectSize                                       Bigint                                       链接对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     LinkSyncMetada                                       [System.Storage.Store].LinkSyncMet                                       同步元数据
                                      ta                                       adata
                                      LastUpdateLocalTS                                       Bigint                                       仅供内部使用(用于索引)。这一列实际上被映射到ChangeInformation.LastUpdateLocalTS。需要将其映射以便创建其索引。
                                      PathHandle                                       [System.Storage.Store].BinPathHandle                                       到作为链接源的项目的路径句柄
链接表的索引在下表中描述:
                             表10
                                     列                                       唯一                                       聚集                                       所包括的列
                                     SourceRef,LinkId                                       是                                       是
                                     TypePath                                       否                                       否                                      SDId,TombstoneStatus
                                     SourceRef,TypePath                                       否                                       否                                      SDId,TombstoneStatus
                                     PathHandle                                       否                                       否                                      SDId,TombstoneStatus
                                     TargetRef                                       否                                       否                                      SDId,TombstoneStatus
                                     LastUpdateLocalTS                                       否                                       否                                      SDId,TombstoneStatus,PathHandle
所有EntityExtension被存储在被称为[System.Storage.Store].[Table!ItemExtension]的单个表中。下表描述项目扩展表:
                         表11
                                      列名                                       类型                                       描述
                                      ItemId                                       [System.Storage.Store].ItemId                                       扩展的ItemId
                                      TypeId                                       [System.Storage.Store].TypeId                                       模式化类型id
                                      TypePath                                       Hierarchical_Type_Id                                       仅供内部使用
                                     (持久列)
                                     ItemExtension                                       [System.Storage.Store].ItemExtension                                      ItemExtension对象
                                     EntityState                                       [System.Storage.Store].EntityState                                      包含关于EntityExtension的元信息的EntityState udt。
                                     SDId                                       Int                                      仅供内部使用
                                     TombstoneStatus                                       Int                                      墓碑状态
                                     ObjectSize                                       Bigint                                      EntityExtension对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                      改变跟踪信息
                                     LastUpdateLocalTS                                       Bigint                                      仅供内部使用(用于索引)。这一列实际上被映射到ChangeInformation.LastUpdateLocalTS。需要将其映射以便创建其索引。
                                     PathHandle                                       [System.Storage.Store].BinPathHandle                                      到拥有这一EntityExtension的项目的路径句柄
下表中描述ItemExtension表的索引:
                         表12
                                      列                                       唯一                                       聚集                                       所包括的列
                                      TypePath,ItemId,TypeId                                       是                                       是
                                      ItemId,TypeId                                       否                                       否                                      SDId,TombstoneStatus,PathHandle
                                      PathHandle                                       是                                       否                                      SDId,TombstoneStatus
                                      LastUpdateLocalTS                                       否                                       否                                      SDId,TombstoneStatus,PathHandle
所有ItemFragment类型实例被存储在一个名为[System.Storage.Store].[Table!ItemFragment]的单个表中。下表描述ItemFragment类型:
                            表13
                                     列名                                       类型                                       描述
                                     ItemId                                       [System.Storage.Store].ItemId                                       持有项目的ItemId
                                     SetId                                       [System.Storage.Store].SetId                                       项目片段的用法
                                     FragmentId                                       [System.Storage.Store].FragmentId                                       片段实例的Id
                                     ItemFragment                                       [System.Storage.Store].ItemFragment                                       ItemFragment对象
                                     TypeId                                       [System.Storage.Store].TypeId                                       模式化化类型id
                                     TypePath                                       Hierarchical_Type_Id                                       仅供内部使用(持久列)
                                     EntityState                                       [System.Storage.Store].EntityState                                       包含关于片段的元信息的EntityState udt。
                                     SDId                                       int                                       仅供内部使用
                                     TombstoneStatus                                       int                                       墓碑状态
                                     ObjectSize                                       bigint                                       ItemFragment对象的大小(持久列)
                                     ChangeInformation                                       [System.Storage.Store].ChangeInformation                                       改变跟踪信息
                                     LastUpdateLocalTS                                       bigint                                       仅供内部使用(用于索引)。
                                      这一列实际上被映射到ChangeInformation.LastUpdateLocalTS。需要将其映射以创建其索引。
                                      PathHandle                                       [System.Storage.Store].BinPathHandle                                       到主项目的路径句柄
下表中描述ItemFragment表的索引:
                            表14
                                     列名                                       唯一                                       聚集                                      所包括的列
                                     TypePath,ItemId,SetId,FragmentId                                       是                                       是
                                     ItemId,SetId,FragmentId                                       是                                       否                                      SDId,TombstoneStatus,PathHandle
                                     PathHandle                                       是                                       否                                      SDId,TombstoneStatus
                                     LastUpdateLocalTS                                       否                                       否                                      SDId,TombstoneStatus,PathHandle
图9-10例示根据本发明主题的方法。出于简化解释的目的,这些方法被描写和描述为一系列的动作。应该理解并明白,本发明主题不受所示的动作和/或动作顺序所限制,例如动作可以按各种顺序发生和/或与此处未呈现和描述的其它动作同时发生。此外,并非需要所有示出的动作来实现根据本发明主题的方法。另外,本领域的技术人员可以理解并明白,这些方法可以替换地通过状态图表示为一系列相互联系的状态或事件。
图9示出便于存储映射到数据模型和/或提供查询的类型实例的方法900。该数据模型可以是允许存储、查找以及相关信息的文件存储数据模型。信息类型可以是,但不限于,文件、图像、视频、联系人、消息、电子邮件、音频剪辑等等。这些信息类型(例如,信息单元)可以被表示为复杂类型的实例,这些复杂类型是支持继承的类型系统的一部分,其中继承允许对象从其他对象继承属性和/或行为。应该明白,继承可以被认为是分层结构和/或格式。
在参考标号902,可以接收数据,其中数据可以包括类型、准则、模式、查询准则……。在参考标号904,可以存储类型实例以便映射到数据模型(例如,文件存储数据模型)。例如,该模型能将模式中所描述的类型映射到用户定义的类型和数据库对象。存储器映射可以描述基于模式定义所创建的数据库对象,以及模式中所描述的类型实例如何被存储和/或访问。在一个例子中,可以设计数据库结构以使得可以提供类型实例以及将类型声明映射到数据库对象中的规则。
在参考标号906,可以调用满足至少一个准则的查询以便高效地且有效地查找项目、文档和联系人。例如,存储与诸信息类型有关的类型实例可以利用该查询来提供以下的至少其中之一:1)查找文件存储数据模型102中满足特定准则的至少一个项目;2)查找文件存储数据模型102中满足特定准则的至少一个文档;以及3)查找满足特定准则的至少一个联系人(例如,包括个人、组织和群)。
图10示出便于存储类型实例和/或提供查询的方法1000。在参考标号1002,获得和/或接收数据。该数据可以包括类型、准则、模式、查询准则等等。在1004,可以利用数据库引擎来提供用于存储类型实例和/用于查询的至少一个机制。例如,可以利用关系型数据库引擎来提供关系型存储和关系型查询性能。该关系型数据库引擎可以利用被组织为一组规范描述的表的数据项目的集合。表中的数据不需要重新组织数据库表就能以各种方式访问和/或重新汇编。此外,关系型数据库可被容易地扩展,如增加新的类别而无须修改现有的应用程序和/或数据。
在参考标号1006,存储类型实例以便映射到数据模型,其中该数据模型可以是文件存储系统。存储器映射描述基于模式所创建的数据库对象以及模式中所描述的类型实例如何被存储和/或访问。映射可以是模式中所描述的类型,其中这样的映射是映射到用户定义的类型和数据库对象。在参考标号1008,可以提供查询以便查找项目、文件和联系人的至少其中之一。该查询可以被用来至少部分地基于准则来搜索。而且,在参考标号1010,可以使用视图来展示类型的实例。例如,该类型系统可以是分层结构的,其中可以创建视图来展示任何特定的类型实例。换言之,由于分层结构,该视图与一给定类型相关联,其中该视图投影与其基本类型相关联的视图的特定类型的一个子集。
为了提供用于实现本发明各方面的附加的环境,图11-12以及下面的讨论提供可以在其中实现本发明各方面的合适计算环境的简要概括描述。尽管前面已经在运行在本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的一般上下文中描述本发明,本领域的技术人员将认识到,本发明也可以与其他程序模块结合实现。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、数据结构等等。
而且,本领域内的技术人员将会明白,本发明的方法可以与其他计算机系统配置一起实施,这些其他计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机以及个人计算机、手持式计算设备、基于微处理器的和/或可编程的消费性电子产品等等,其中的每一个都可以在操作上与一个或多个相关联的设备通信。本发明的示例性方面也可以在分布式计算环境中实施,在分布式计算环境中,特定任务由通过通信网络连接的远程处理设备执行。然而,本发明一些方面(如果不是全部方面)可以在独立计算机上实施。在分布式计算环境中,程序模块可以置于本地和/或远程的存储器设备。
图11是可以与本发明交互的示例计算环境1100的示意性框图。系统1100包括一个或多个客户机1110。客户机1110可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1100也包括一个或多个服务器1120。服务器1120可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1120可以主存线程用于例如通过使用本发明来执行转换。
在客户机1110和服务器1120之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据包形式进行。系统1100包括可以用来帮助客户即1140和服务器1110之间通信的通信框架1120。客户机1110可在操作上耦合到一个或多个可以用来存储客户机1110的本地信息的客户机存储1150。同样地,服务器1120可在操作上耦合到一个或多个可以用来存储服务器1140的本地信息的服务器存储1130。
参照图12,实施本发明的各个方面的示例性系统包括计算机1212。计算机1212包括处理单元1214、系统存储器1216和系统总线1218。系统总线1218将包括但不限于系统存储器1216在内的系统组件耦合到处理单元1214。处理单元1214可以是各种可用处理器中的任意几种。双微处理机和其他多处理器结构也可以用作处理单元1214。
系统总线1218可以是多种类型总线的总线结构中的任意几种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用任意多种可用总线体系结构的局部总线,这些总线体系结构包括但不限于工业标准体系结构(ISA)、微通道体系结构(MCA)、增强型ISA(EISA)、智能驱动器电路(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、插件总线、通用串行总线(USB)、加速图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE 1394)以及小型计算机系统接口(SCSI)。
系统存储器1216包括易失性存储器1220和非易失性存储器1222。基本输入/输出系统(BIOS)1226存储在非易失性存储器1222中,它包含比如在启动过程中帮助在计算机1212内的元件之间传输信息的基本例程。作为例示而非限制,非易失性存储器1222可以包括只读存储器(ROM)、可编程只读存储器(PROM)、电可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)或闪存。易失性存储器1220包括担任外部高速缓冲存储的随机存取存储器(ROM)。作为例示而非限制,RAM以许多形式获得,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、Rambus直接随机存储器(RDRAM)、直接Rambus动态随机存储器(DRDRAM)以及Rambus动态随机存储器(RDRAM)。
计算机1212也包括可移动的/不可移动的、易失性/非易失性的计算机存储介质。例如,图12示出磁盘存储1224。磁盘存储1224包括但不限于,像磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒那样的设备。另外,磁盘存储1224可以包括单独的或与其他存储介质组合的存储介质,包括但不限于光盘驱动器,如只读光盘设备(CD-ROM)、可记录CD驱动器(CD-R驱动器)、可重复刻录CD驱动器(CD-RW驱动器)或只读数字多功能盘驱动器(DVD-ROM)。为了便于将磁盘存储设备1224连接到系统总线1218,通常使用可移动或不可移动的接口,如接口1226。
应该明白,图12描述担当在用户和在适当的操作环境1200中所描述的基本计算机资源之间的中介的软件。这类软件包括操作系统1228。操作系统1228可以被存储在磁盘存储器1224上,它控制和分配计算机系统1212的资源。系统应用程序1230利用操作系统1228通过存储在系统存储器1216中或在磁盘存储1224上的程序模块1232和程序数据1234的资源管理。应该明白,本发明可以与各种操作系统或操作系统的组合一起实现。
用户通过输入设备1236将命令或信息输入到计算机1212中。输入设备1236包括但不限于,如鼠标、跟踪球、指示笔、触摸板等定位设备、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、电视调谐器、数码相机、数码摄像机、网络摄像头等等。这些和其他的输入设备经由接口端口1238通过系统总线1218连接到处理单元1214。接口端口1238包括,例如,串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备1240使用一些与输入设备1236相同类型的端口。因此,例如,USB端口可以用来提供到计算机1212的输入,以及从计算机1212到输出设备1240的输出信息。提供输出适配器1242,以示出在其他输出设备1240中有某些输出设备1240,如监视器、扬声器和打印机需要特殊的适配器。输出适配器1242包括,作为例示而非限制,提供输出设备1240和系统总线1218之间的连接手段的显卡和声卡。应该注意,其他设备和/或系统设备信息也提供输入和输出性能,如远程计算机1244。
计算机1212可以使用到一个或多个远程计算机,如远程计算设备1244的逻辑连接在网络化环境中操作。远程计算机1244可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或者其他常见的网络节点等等,而且一般包括许多或者所有上文相对于计算机1212所描述的元件。尽管为简单起见,只与远程计算机1244一起示出存储器存储设备1246。远程计算机1244在逻辑上通过网络接口1248被连接到计算机1212,然后在物理上经由通信连接1250被连接。网络接口1248包括有线和/或无线通信网络,如局域网(LAN)和广域网(WAN)。LAN包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(FDDI)、以太网、令牌环等等。WAN技术包括但不限于,点对点链路、如综合业务数字网(ISDN)及其变种等电路交换网、分组交换网和数字用户线(DSL)。
通信连接1250是指用于将网络接口1248连接到总线1218的硬件/软件。尽管为了清楚例示而示出通信连接1250在计算机1212内部,但它也可以在计算机1212外部。仅出于示例目的,到网络接口1248的连接所必需的硬件/软件包括内部和外部技术,如包括常规电话等级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器器的调制解调器和以太网卡。
上面已经描述的内容包括本发明的例子。当然,不可能为了描述本发明而描述组件或方法的每一个可以想到的组合,但本领域内的普通技术人员应该认识到,本发明的许多进一步的组合和排列都是可能的。因此,本发明包括所有这些落入所附权利要求书的精神和范围内的改变、修改和变动。
尤其关于由上面所描述的组件、设备、电路、系统等等所执行的各种功能,除非另外指出,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述组件(例如,功能等效)的指定功能的任何组件,即使在结构上不等同于所公开的、执行在此所示的本发明示例性方面的功能的结构。在这方面,也应该认识到,本发明包括系统和计算机可读介质,该计算机可读介质具有用于执行本发明各种方法的动作和/或事件的计算机可执行指令。
另外,尽管只参考若干实现中的一种公开本发明的具体特征,但在需要及有利于任何给定或特定应用时,这样的特征可以和其他实现的一种或多种特征结合。此外,在具体实施方式或权利要求书中使用术语“包含”的意义上,这样的术语是指以类似于术语“包括”的方式为包括性的。

Claims (16)

1.一种便于映射数据模型的系统,包括:
用于定义映射模式的文件存储数据模型;以及
类型存储组件,它基于与所述文件存储数据模型相关联的映射模式将模式对象映射到数据库对象以存储所述映射模式中的类型的实例;其中所述类型存储组件还提供查询以便查找以下的至少其中之一:所述文件存储数据模型中满足相应准则的至少一个项目;所述文件存储数据模型中满足相应准则的至少一个文档;以及所述文件存储数据模型中满足相应准则的至少一个联系人;以及
智能组件,通过推断特定上下文或用户动作来确定要存储的用户定义类型,并基于数据和事件的考虑来产生所关心的状态的概率分布。
2.如权利要求1所述的系统,其特征在于,所述类型的实例是以下的至少其中之一:文档;图像;音乐;视频;联系人;消息;个人;组织;电子邮件;传真;语音;以及音频剪辑。
3.如权利要求1所述的系统,其特征在于,所述联系人可以包括以下的至少其中之一:个人;组织;以及群。
4.如权利要求1所述的系统,其特征在于,还包括利用关系型存储和关系型查询性能的至少其中之一的关系型组件。
5.如权利要求4所述的系统,其特征在于,所述关系型组件利用关系型数据库技术,所述关系型数据库技术是被组织为一组规范描述的表的数据项目的集合,其中数据是以下的至少其中之一:不需要重新组织就可以访问,以及不需要重新组织就可以重新汇编。
6.如权利要求4所述的系统,其特征在于,所述映射描述以下的至少其中之一:基于所述模式创建的数据库对象,以及所述模式中描述的类型的实例如何被存储和访问。
7.如权利要求1所述的系统,其特征在于,所述模式中的类型映射到所述文件存储数据模型的存储中的公共语言运行库CLR类。
8.如权利要求7所述的系统,其特征在于,所述类型是以下的至少其中之一:项目;项目扩展;项目片段;以及链接。
9.如权利要求1所述的系统,其特征在于,还包括具有以下的至少其中之一的表:1)包含相应类型的至少一个实例的列;以及2)包含表示所述类型实例的公共语言运行库CLR类实例的串行化表示的行。
10.如权利要求1所述的系统,其特征在于,还包括创建展示所述类型的至少一个实例的视图的视图组件,其中所述视图投影与基本类型相关联的视图的相应类型的一个子集。
11.如权利要求1所述的系统,其特征在于,所述类型包括以下的至少其中之一:类型层次和继承。
12.如权利要求10所述的系统,所述视图组件调用用户界面以便在用户和所述类型存储组件之间交互。
13.一种便于存储类型实例并查询数据的计算机实现的方法,包括:
获得文件存储数据模型;
接收模式、类型、准则和查询信息;
基于与所述文件存储数据模型相关联的模式将模式对象映射到数据库对象;以及
存储来自所述模式的类型的实例;以及
进行查询以便查找以下的至少其中之一:所述文件存储数据模型中满足相应准则的至少一个项目;所述文件存储数据模型中满足相应准则的至少一个文档;以及所述文件存储数据模型中满足相应准则的至少一个联系人;以及
其中,所述方法进一步包括:通过推断特定上下文或用户动作来确定要存储的用户定义类型,并基于数据和事件的考虑来产生所关心的状态的概率分布。
14.如权利要求13所述的方法,其特征在于,还包括利用关系型数据库引擎提供关系型存储和关系型查询性能。
15.如权利要求13所述的方法,其特征在于,还包括创建展示所述类型的至少一个实例的视图,其中所述视图投影与基本类型相关联的视图的相应类型的一个子集。
16.一种便于存储类型实例并查询数据的计算机实现的系统,包括:
用于获得文件存储数据模型的装置;
用于接收模式、类型、准则和查询准则的装置;
用于基于与文件存储数据模型相关联的模式将模式对象映射到数据库对象的装置,以存储所述模式中的类型的实例,以及
用于进行查询以便查找以下的至少其中之一的装置:所述文件存储数据模型中满足相应准则的至少一个项目;所述文件存储数据模型中满足相应准则的至少一个文档;以及所述文件存储数据模型中满足相应准则的至少一个联系人;以及
其中,所述系统进一步包括:用于通过推断特定上下文或用户动作来确定要存储的用户定义类型,并基于数据和事件的考虑来产生所关心的状态的概率分布的装置。
CN2006100515658A 2005-03-28 2006-02-28 将文件系统模型映射到数据库对象 Expired - Fee Related CN1841379B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/091,079 2005-03-28
US11/091,079 US7478102B2 (en) 2005-03-28 2005-03-28 Mapping of a file system model to a database object

Publications (2)

Publication Number Publication Date
CN1841379A CN1841379A (zh) 2006-10-04
CN1841379B true CN1841379B (zh) 2011-05-18

Family

ID=36683505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100515658A Expired - Fee Related CN1841379B (zh) 2005-03-28 2006-02-28 将文件系统模型映射到数据库对象

Country Status (18)

Country Link
US (1) US7478102B2 (zh)
EP (1) EP1708107A3 (zh)
JP (1) JP5008878B2 (zh)
KR (1) KR101278785B1 (zh)
CN (1) CN1841379B (zh)
AU (1) AU2006200383B2 (zh)
BR (1) BRPI0600547A (zh)
CA (1) CA2534725C (zh)
CO (1) CO5790182A1 (zh)
IL (1) IL174023A (zh)
MX (1) MXPA06002334A (zh)
MY (1) MY140667A (zh)
NO (1) NO20060071L (zh)
NZ (1) NZ545614A (zh)
RU (1) RU2409847C2 (zh)
SG (1) SG126029A1 (zh)
TW (1) TW200636510A (zh)
ZA (1) ZA200601695B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631114B1 (en) * 2006-01-03 2014-01-14 Emc Corporation Information roll-up in distributed environments
US20080162440A1 (en) * 2006-12-27 2008-07-03 Nortel Networks Limited Communication information searching
US20080201234A1 (en) * 2007-02-16 2008-08-21 Microsoft Corporation Live entities internet store service
US20090043768A1 (en) * 2007-05-03 2009-02-12 Kivati Software, Llc method for differentiating states of n machines
US7761473B2 (en) 2007-05-18 2010-07-20 Microsoft Corporation Typed relationships between items
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
US7853583B2 (en) * 2007-12-27 2010-12-14 Yahoo! Inc. System and method for generating expertise based search results
US8688622B2 (en) * 2008-06-02 2014-04-01 The Boeing Company Methods and systems for loading data into a temporal data warehouse
KR101667415B1 (ko) * 2009-04-02 2016-10-18 삼성전자주식회사 휴대단말기의 인맥관리 서비스 장치 및 방법
US8290916B2 (en) * 2009-07-09 2012-10-16 International Business Machines Corporation Rule-based record profiles to automate record declaration of electronic documents
US8577829B2 (en) * 2009-09-11 2013-11-05 Hewlett-Packard Development Company, L.P. Extracting information from unstructured data and mapping the information to a structured schema using the naïve bayesian probability model
US8341154B2 (en) * 2009-10-28 2012-12-25 Microsoft Corporation Extending types hosted in database to other platforms
US8380759B2 (en) 2009-11-21 2013-02-19 Microsoft Corporation Type projection query of an instance space
US8825745B2 (en) 2010-07-11 2014-09-02 Microsoft Corporation URL-facilitated access to spreadsheet elements
CN102253967B (zh) * 2011-06-03 2013-03-27 用友软件股份有限公司 数据查找系统和数据查找方法
TWI423055B (zh) * 2011-08-10 2014-01-11 Vimtek Virtual Reality Tech Co Ltd 以關聯式資料庫管理及展示擬真模型之方法
US8694559B2 (en) * 2012-07-13 2014-04-08 Sap Ag Using database content for multiple business data systems connected to one database
US8676857B1 (en) * 2012-08-23 2014-03-18 International Business Machines Corporation Context-based search for a data store related to a graph node
US9053134B2 (en) * 2013-03-14 2015-06-09 Sap Se View variants in database schema mapping
US9418086B2 (en) * 2013-08-20 2016-08-16 Microsoft Technology Licensing, Llc Database access
US9430523B2 (en) 2013-09-06 2016-08-30 Sap Se Entity-relationship model extensions using annotations
US9442977B2 (en) 2013-09-06 2016-09-13 Sap Se Database language extended to accommodate entity-relationship models
US9639572B2 (en) 2013-09-06 2017-05-02 Sap Se SQL enhancements simplifying database querying
US9619552B2 (en) * 2013-09-06 2017-04-11 Sap Se Core data services extensibility for entity-relationship models
US9361407B2 (en) 2013-09-06 2016-06-07 Sap Se SQL extended with transient fields for calculation expressions in enhanced data models
RU2693682C2 (ru) * 2014-12-19 2019-07-03 Сергей Анатольевич Горишний Система и способ управления функционально связанными данными
CN104537090B (zh) * 2015-01-05 2017-12-19 国家电网公司 用户信息标准化数据处理方法和装置
RU2634223C2 (ru) * 2015-06-30 2017-10-24 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) управления данными, связанными с иерархической структурой
TWI647579B (zh) * 2015-10-02 2019-01-11 林柏全 資料集成系統的運作方法
JP7326667B2 (ja) * 2018-07-31 2023-08-16 マーベル アジア ピーティーイー、リミテッド ストレージエッジにおけるメタデータ生成
KR102121504B1 (ko) * 2018-11-29 2020-06-10 주식회사 솔트룩스 복수의 데이터 소스들 기반 지식 데이터 베이스 구축 시스템 및 방법
US12111840B2 (en) 2019-10-22 2024-10-08 Honeywell International Inc. Methods, apparatuses, and systems for data mapping
CN112632331A (zh) * 2020-12-18 2021-04-09 上海电气集团股份有限公司 一种信息处理方法、系统、电子设备及存储介质
CN113568888A (zh) * 2021-07-30 2021-10-29 中国工商银行股份有限公司 索引推荐方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1190477A (zh) * 1995-07-07 1998-08-12 瓦尔数据公司 修改现有数据库以反映相应对象模型变化的方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704744B1 (en) * 1994-12-07 2004-03-09 Next Computer, Inc. Method and apparatus for mapping objects to multiple tables of a database
US5937409A (en) * 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6711585B1 (en) * 1999-06-15 2004-03-23 Kanisa Inc. System and method for implementing a knowledge management system
US20020053020A1 (en) * 2000-06-30 2002-05-02 Raytheon Company Secure compartmented mode knowledge management portal
CA2347304C (en) * 2001-05-10 2010-10-05 Atreus Systems, Inc. Broadband network service delivery method and device
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US7225411B1 (en) * 2003-06-30 2007-05-29 Tibco Software Inc. Efficient transformation of information between a source schema and a target schema
EP1581894A4 (en) * 2003-08-21 2006-04-26 Microsoft Corp SYSTEMS AND METHODS FOR PROVIDING SYNCHRONIZATION SERVICES FOR INFORMATION UNITS MAY BE MANAGED BY A HARDWARE / SOFTWARE INTERFACE SYSTEM
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1190477A (zh) * 1995-07-07 1998-08-12 瓦尔数据公司 修改现有数据库以反映相应对象模型变化的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Andrew D. Gordon et. al.Typing a Multi-Language Intermediate Code.Proceedings of the 28th ACM SIGPLAN-SIGACT symposium.2001,248-260. *
google desktop search features.http://web.archive.org/web/20050327074843/http://desktop.google.com/features.html.2005,1-14. *

Also Published As

Publication number Publication date
CO5790182A1 (es) 2007-08-31
BRPI0600547A (pt) 2006-11-28
CA2534725A1 (en) 2006-09-28
EP1708107A2 (en) 2006-10-04
KR101278785B1 (ko) 2013-06-25
JP2006277726A (ja) 2006-10-12
KR20060103828A (ko) 2006-10-04
US20060215448A1 (en) 2006-09-28
MXPA06002334A (es) 2006-09-27
SG126029A1 (en) 2006-10-30
CA2534725C (en) 2013-04-30
MY140667A (en) 2010-01-15
NZ545614A (en) 2007-03-30
AU2006200383B2 (en) 2011-02-24
US7478102B2 (en) 2009-01-13
IL174023A (en) 2011-09-27
AU2006200383A1 (en) 2006-10-12
EP1708107A3 (en) 2009-08-12
TW200636510A (en) 2006-10-16
RU2006105517A (ru) 2007-09-27
IL174023A0 (en) 2006-08-01
CN1841379A (zh) 2006-10-04
RU2409847C2 (ru) 2011-01-20
ZA200601695B (en) 2008-04-30
NO20060071L (no) 2006-09-29
JP5008878B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
CN1841379B (zh) 将文件系统模型映射到数据库对象
CN1749999B (zh) .net数据类型和实例的持久存储
US7634478B2 (en) Metadata driven intelligent data navigation
US8311998B2 (en) System and methods for facilitating a linear grid database with data organization by dimension
CN100478944C (zh) 自动任务生成器的方法和系统
CN100565510C (zh) 数据访问层类生成器
CN1755677B (zh) 使用索引关键词的范围搜索系统和方法
US20020091923A1 (en) System, method, and medium for retrieving, organizing, and utilizing networked data using databases
CN101685444B (zh) 用于实现元数据搜索的系统和方法
MXPA06001214A (es) Sistema de archivos representados dentro de una base de datos.
CN101617311A (zh) 现实实体因特网存储服务
EP1872278A1 (en) Relational query of a hierarchical database
JP2002182970A (ja) オブジェクト統合管理システム
CN101578579A (zh) 分类对象建模
Černjeka et al. NoSQL document store translation to data vault based EDW
CN100445989C (zh) 用于生成对关于选择对象的信息的请求的系统和方法
JP3565117B2 (ja) 複数異種情報源アクセス方法及びクライアント装置及び複数異種情報源アクセスプログラムを格納した記憶媒体
CN100429654C (zh) 用于管理来自单个接口的多层次数据的技术
US12124460B2 (en) Deep mining of enterprise data sources
US20240184793A1 (en) Deep mining of enterprise data sources
CN118377479B (zh) 一种模型可重用的低代码软件应用系统
Schimkat et al. Living documents-Micro servers for documents
CN114398374B (zh) 一种地质调查智能空间的数据资源治理方法
Vert et al. Converting a fuzzy data model to an object-oriented design for managing GIS data files
Barish et al. Theaterloc: A case study in building an information integration application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110518

Termination date: 20210228