首页> 中国专利> 将文件系统事件集成到关系数据库中的方法和系统

将文件系统事件集成到关系数据库中的方法和系统

摘要

提供了一种用于将事件集成到数据库管理系统(DBMS)或关系DBMS(RDBMS)中的方法,所述事件诸如与计算机文件相关联的创建、修改和删除。一旦创建、更新或删除了关联于RDBMS的文件,则通知RDBMS该事件,以便可以执行对应于该事件和该文件的触发器。与异步和非阻塞的输入/输出(I/O)功能相关联的文件系统回调机制将文件创建、删除和更新操作的完成传送到RDBMS。RDBMS识别该传送,并激发一个或多个适当的数据库触发器。

著录项

  • 公开/公告号CN1892652A

    专利类型发明专利

  • 公开/公告日2007-01-10

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200610058214.X

  • 发明设计人 P·R·维什努布霍特拉;

    申请日2006-02-24

  • 分类号G06F17/30;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-17 18:04:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-10

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20101229 终止日期:20120224 申请日:20060224

    专利权的终止

  • 2010-12-29

    授权

    授权

  • 2007-03-07

    实质审查的生效

    实质审查的生效

  • 2007-01-10

    公开

    公开

说明书

技术领域

本发明一般地涉及数据库管理系统(DBMS),并更具体地涉及将计算机数据文件与DBMS相集成的方法。

背景技术

计算机和电子数据存储机制的发展已经使得用户能够维护、组织和操作海量的信息。已开发了许多方法使信息处理的存储和组织方面更加便利。起初,数据被存储于卡上,但很快被移到包括磁带和可拆装存储盘的电子存储介质。更近以来,连网和廉价的电子存储器的发展已经使得信息能够被方便地存储于计算机系统本身之中。

在计算机存储器中,起初信息被存储为简单的或“平面的”文件。最终,开发出更为组织化的结构,其中之一是数据库管理系统(DBMS),并更具体是关系DBMS(RDBMS)。在RDBMS中,关系表是数据存储的主要方式,而结构化查询语言(SQL)是访问和操作数据的主要方式。尽管RDBMS具有优点,仍有大量数据被存储于简单文件系统中。

已提供用来将标准文件集成到RDBMS中的技术包括如下各种:

·经由逐个记录的数据移动将标准文件导入到关系文件以及将其从关系文件中导出;

·装入支持数据在标准文件和关系表之间的整体移动的实用程序;以及

·数据链接技术(现在是SOL标准的一部分)使得标准文件系统的文件能够在关系表中被表示为链接。

RDBMS中的另一问题是需要在特定事件出现之时启动动作。大多数RDBMS提供“触发器”,其是由RDBMS存储并管理的特殊的、事件驱动的过程。简而言之,响应于在相关联的表中的数据修改,RDBMS执行或“激发”触发器。所激发的触发器可导致另一数据修改,该数据修改会导致一个或多个其他的触发器被激发。这被称为“嵌套”触发器。

数据存储和RDBMS技术的现有技术水平中缺少的一个特征是将文件事件集成到DBMS和RDBMS中。这种文件事件包括(但不局限于)文件创建、文件更新和文件删除。所需要的是一种将文件事件以及时、可靠和自动的方式集成到RDBMS中的方法。

发明内容

提供了一种将文件事件集成到关系数据库管理系统(RDBMS)中的方法,所述文件事件诸如文件创建、文件更新和文件删除,但并不局限于此。基本上,文件事件被自动引入RDBMS作为数据库触发器。

一旦关联于特定RDBMS的文件被创建、更新或删除,则经由特殊数据库表通知RDBMS该事件,以便可以执行相应的触发器。例如,包含了第一数据库需要导入的信息的文件可被第二数据库所创建。通常,将数据在两个数据库之间传输的最快方式是使一个数据库导入由第二数据库所创建的文件。将被装入的文件也可由非数据库应用所创建,或者从远程站点发送并被存储在本地文件系统中。通常,重要的是,一旦创建了文件,要将来自新创建文件的信息装入RDBMS中。目前,必须实现使用操作系统和脚本工具的低级编程,其典型地轮询文件系统。一旦轮询过程检测到创建了文件,则可通知RDBMS执行装入模块。数据库程序员的职责范围可能不包括此类编程。

以类似方式,当更新文件时,RDBMS可能需要更新表。例如,旧文件可能有新记录被附加或旧记录被替换。再次地,必要的编程可能在数据库程序员的责任之外。此外,当删除文件时,诸如装入文件的程序的程序可能需要被关闭或从计划任务列表中移除。当然,文件创建、修改和删除可各自包括多个任务,这些任务将被执行以保持相应数据库为最新。

所要求保护的主题使用了关联于异步和非阻塞(non-blocking)的输入/输出(I/O)函数的文件系统回调机制,以将文件创建、删除和更新操作的完成传送到RDBMS。接着使用所述回调来激发数据库触发器。

此发明内容部分并非旨在作为所要求保护的主题的全面描述,而是旨在提供与所要求保护的主题相关联的某些功能的简要概述。本领域的技术人员在查看了以下附图以及详细描述后,将会清楚或将变得清楚地了解本发明的其他系统、方法、功能、特征和优点。

附图说明

当连同以下附图考虑以下所公开实施例的详细描述时,可以获得对本发明的更好理解。

图1是支持所要求保护的主题的、包括关系数据库管理系统(RDBMS)的计算体系结构的框图。

图2是用来实现所要求保护的主题的图1的RDBMS的示例性File_Events表。

图3是根据所要求保护的主题配置图1的体系结构和RDBMS的设置过程的流程图。

图4是支持所要求保护的主题的中断服务例程(ISR)过程的流程图。

图5是支持所要求保护的主题的数据库(DB)操作过程的流程图。

图6是关联于图5的DB操作过程的三个过程片段的例示图。

具体实施方式

尽管具体参照关系数据库管理系统(RDBMS)描述了所要求保护的主题,但所要求保护的主题可以在提供了用于异步处理事件的机制的任何数据库体系结构中实现。计算领域的技术人员将认识到,所公开的实施例与除了下述计算环境之外的多种计算环境有关。此外,所公开的发明的方法可以用软件、硬件或软硬件结合的方式实现。硬件部分可使用专门逻辑来实现;软件部分可被存储于存储器中,并被适当的指令执行系统例如微处理器、个人计算机(PC)或大型机所执行。

在本文献的语境中,“存储器”或“记录介质”可以是任何这样的装置,其包含、存储、传送、传播或传输程序和/或数据以被指令执行系统、装置或设备所使用或与其共同使用。存储器和记录介质可以是(但不局限于)电子、磁、光、电磁、红外或半导体系统、装置或设备。存储器和记录介质还包括(但不局限于)例如以下各项:便携式计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、以及便携式光盘只读存储器、或者程序和/或数据可被存储其上的另一适当介质。

根据所要求保护的主题的一实施例指向一种用于将文件事件集成到关系数据库管理系统(RDBMS)中的编程方法,所述文件事件诸如(但不局限于)文件创建、文件更新和文件删除。此处所使用的术语“编程方法”被定义为意味着当前执行的一个或多个过程步骤;或者可选地,被使能在将来某个时间点上执行的一个或多个过程步骤。术语编程方法预期了三种可选形式。第一,编程方法包括当前执行的过程步骤。第二,编程方法包括包含有计算机指令的计算机可读的介质,当所述计算机指令被计算机执行时执行一个或多个过程步骤。最后,编程方法包括这样的计算机系统,其已被软件、硬件、固件或上述三者的任何组合所编程,以执行一个或多个过程步骤。应该理解,术语“编程方法”不应被理解为同时地具有多于一种可选形式,而是被理解为在最真实意义上的可选形式,其中,在任何给定时间点,仅存在所述多种可选形式中的一种。

现在转向附图,图1是结合了所要求保护的主题的示例性计算系统体系结构100的框图。台式计算机102包括显示器104、键盘106和鼠标108,这些一起使得人与计算机102的交互更加便利。连接于计算机102的是数据存储部件110,其可被结合到计算机102中(即作为内部设备)或通过各种通常可用的连接设备而外部连接到计算机102,所述连接设备诸如(但不局限于)通用串行总线(USB)端口(未示出)。

数据存储器110存储了关系数据库管理系统112,其包括示例性表Table_1 114和特别用于实现所要求保护的主题的表File_Events表116。下文结合图2更详细地例示了File_Events表116。典型地,数据库包括数十或甚至数百个文件,但出于简明性的目的,仅示出了两(2)个文件。

在此示例中,数据存储器110存储了示例性文件:File_A 122、File_B124和File_C 126。文件122、124和126在以下描述中被用作示例。应该理解,典型的计算机系统具有多个应用文件、数据文件以及配置文件。

服务器计算机132连接于数据存储部件134,与数据存储器110类似,数据存储部件134可以是内部或外部设备。在此示例中,数据存储器134存储应用文件app_01 136和两个示例性数据文件File_D 138和File_E 140。App_01 136和数据文件138和140在以下描述中被用作示例。如上所述,典型的计算机系统具有多个应用文件、数据以及配置和数据文件。

服务器132和计算机102经由局域网(LAN)142通信地耦合。LAN 142仅被用作示例。计算和通信领域中的技术人员应该理解,存在用于提供计算机102和服务器132之间的通信的许多技术。例如,计算机102和服务器132可在专用连接或因特网而非LAN 142上进行通信。

图2更详细地例示了RDBMS 112的File_Events表116,二者均在图1中引入。表116具有三列:“文件通用资源定位符(URL)”列152、“文件存在”列154和“文件计数”列156。文件URL列存储标识存储于在本示例中的数据存储器110上的文件的信息,所述数据存储器110与诸如RDBMS 112的表table_1114有关。第一行158关联于File_A 122(图1),如由存储于文件URL列152中的字母‘A’所示。当然,列152中示出的数据仅用于例示性目的;标识数据存储器110上的特定文件的实际数据将唯一地标识文件,诸如使用完全限定的目录路径和文件名来标识。

表116的第二行160对应于file_B 124(图1);表116的第三行162对应于file_C 126(图1)以及表116第四行164对应于File_D 138(图1),在本示例中File_D 138位于数据存储器134(图1)上,而不是数据存储器110上。下文结合图3-6更详细地说明了存储于文件存在列154和文件计数列156中的数据的意义。

图3是用于根据所要求保护的主题配置图1的体系结构100和RDBMS112的设置过程200的流程图。过程200开始于“开始设置”框202,并且控制立即前进到“注册数据库”框204。在框204期间,实现所要求保护的主题的数据库(在此示例中为RDBMS 112)向计算机102(图1)的操作系统(OS)(未示出)进行通知或注册。可实现所公开技术的OS的示例包括(但不局限于):由华盛顿Redmond的微软公司发布的Windows、以及Unix和Linux。OS的确切类型对本发明的精神并不重要。

理想地,OS的文件系统识别并可以访问File_Events表116(图1和2)。当RDBMS 112向OS注册时,通知OS File_Events表116的存在及位置,因此OS可以将关于文件访问的相关信息插入到File_Events表116中。在“注册文件”框206期间,RDBMS 112向OS提供需要监视其文件访问活动的文件列表。在“创建回调”框208期间,过程200安装中断服务例程(ISR),其接收来自文件访问活动的异步中断,并分析文件活动以发现影响在框206期间所注册的文件的动作。最后,在“结束设置”框219期间,过程200完成,并且计算机102的OS准备好监视在框206期间所标识的文件,并在已经出现相关文件访问之时通知在框204期间所注册的数据库。下文结合图4更详细地说明已经由过程200设置的文件监视ISR的操作。

图4是支持所要求保护的主题的回调或ISR过程230的流程图。在创建回调框208(图3)期间,ISR过程230被安装于计算机102(图1)的OS中。过程230开始于“开始IRS”框232,在此期间,OS已接收与对文件系统的访问相关联的中断。控制立即前进到“接收中断”框234,在此期间,由OS接收由文件访问生成的回调。在“文件已注册?”框236期间,过程230确定在框234期间所接收的回调或中断是否对应于在注册文件框206(图3)期间所注册的文件。如果否,则控制前进到“完成ISR”框242,在此期间,执行典型地与文件访问ISR相关联的过程。

如果在框236期间,过程230确定在框206期间已注册了关联于在框234期间所接收的中断的文件,则控制前进到“将文件关联到数据库(DB)”框238。在框238期间,过程230将关联于在框234期间所接收的中断的文件关联到在注册数据库框204(图3)期间所注册的相应数据库(在本示例中为RDBMS 112(图1))。接着控制前进到“更新DB”框240,在此期间,过程230更新File_Events表116中的信息。在另一可选方案中,过程230不是直接访问File_Events表116,而是将包含文件访问信息的消息传输到RDBMS 112,而由RDBMS 112负责更新表116。下文结合图5和6更详细地说明了更新过程。控制前进到完成ISR框242,在此期间,如上所述,执行ISR的正常过程。最后,过程230前进到“结束ISR”框249,其中过程230完成。

图5是在本示例中由图1的RDBMS 112所执行的“DB操作”过程260的流程图。过程260开始于“开始DB操作”框262,并立即前进到“接收触发器”框264。在框264期间,过程260等待出现触发器。RDBMS 112被编程为每当对File_Events表116做出改变时,生成触发器。在此示例中,在更新DB框240(图4)期间更新了表116,因此控制前进到“确定动作”框266。在框266期间,过程260通过对File_Events表116的检查来确定出现的动作的类型,例如文件创建、文件删除或文件修改。如果已创建了文件,则已用值‘1’替换了文件存在列154的相应行中的值‘0’。如果已删除了文件,则已用值‘0’替换了文件存在列154的相应行中的值‘1’。如果已修改了文件,则已修改了文件计数列156中相应行的值,以表示已创建了特定的、已修改的文件的新版本。

在“已创建文件?”框268中,过程260确定在框264期间导致了触发器并在框266期间被确定的动作是否是文件创建事件。如果是,则过程260前进到转移点A 274,下文结合图6更详细地说明了该转移点A 274。

如果所述动作不是文件创建事件,则控制前进到“已更新文件?”框270,在此期间,过程260确定在框264期间导致了触发器并在框266期间被确定的动作是否是文件更新或修改事件。如果是,则过程260前进到转移点B 276,下文结合图6更详细地说明了该转移点B 276。

如果所述动作不是文件更新事件,则控制前进到“已删除文件?”框272,在此期间,过程260确定在框264期间导致了触发器并在框266期间被确定的动作是否是文件删除事件。如果是,则过程260前进到转移点C278,下文结合图6更详细地说明了该转移点C 278。

如果在框272期间,触发事件被确定为不是文件删除事件,则过程260前进到转移点D 280,其将控制返回到框264,在此,如上所述,过程260等待下一触发事件。

最后,借助于中断282停止过程260,该中断将控制传递到“结束DB操作”框289,在此完成过程260。典型地,当过程260为其一部分的OS、浏览器、应用等等自身被停止时,生成中断282。在标准操作期间,过程260持续循环通过框264、266、268、270和272;转移点274、276和278;以及与转移点274、276和278相关联的各种处理,这些处理在数据源可用时处理数据源。

图6是关联于图5的DB操作过程260的三个过程的例示图。所示出的是“文件创建”过程300、“文件更新”过程310和“文件删除”过程320。基于在确定动作框266(图5)中所确定的触发事件的类型来执行过程300、310和320。

过程300经由转移点A 274(图5)来执行。“处理文件创建”框302包括将在发生文件创建触发器时被执行的代码。应该理解,触发器可能是“在前”或“在后”触发器。在前触发器在执行相应动作之前执行,而在后触发器在执行相应动作之后执行。此外,某些事件可以同时关联于在前和在后触发器。

预期数据库程序员在确定了相关联组织的特定需求之后,会定制框302来符合这些需要。以下是可能关联于框302的代码的简单例子:

CREATE TRIGGER fileCreated

AFTER UPDATE OF fileExists ON FileEvents

REFERENCING NEW AS N

FOR EACH ROW MODE DB2SQL

WHEN(N.fileExists=1)

    SIGNAL SQLSTATE‘90001’SET MESSAGE_TEXT=

‘File Created’以上代码仅在接收到文件创建触发器之时发送SQL错误消息。过程300经由转移点D 280将控制返回过程260。

过程310经由转移点B 276(图5)来执行。“处理文件更新”框312包括将在发生文件修改触发器时被执行的代码。以下是可能关联于框312的代码的简单例子:

CREATE TRIGGER fileUpdated

AFTER UPDATE OF fileUpdateCount ON FileEvents

REFERENCING NEW AS N

FOR EACH ROW MODE DB2SQL

WHEN(N.fileUpdateCount>0)

    SIGNAL SQLSTATE‘90003’SET MESSAGE_TEXT=

‘File Updated’以上代码仅在接收到文件更新触发器之时发送SQL错误消息。过程310经由转移点D 280将控制返回过程260。

过程320经由转移点C 278(图5)来执行。“处理文件删除”框322包括将在发生文件删除触发器时被执行的代码。以下是可能关联于框322的代码的简单例子:

CREATE TRIGGER fileDeleted

AFTER UPDATE OF fileExists ON FileEvents

REFERENCING NEW AS N

FOR EACH ROW MODE DB2SQL

WHEN(N.fileExists=0)

    SIGNAL SQLSTATE‘90002’SET MESSAGE_TEXT=

‘File Deleted’以上代码仅在接收到文件删除触发器之时发送SQL错误消息。过程320经由转移点D 280将控制返回过程260。

尽管针对在单个计算机上的文件更新、创建和删除描述了所要求保护的主题,所述系统也可被扩展为包括其他系统上的文件,诸如file_D 138(图1)和file_E 140(图1)。如果File_Events表116被远程安装于服务器132上,服务器132的OS被恰当地配置,并且在File_Events表116中存在文件138和/或140的适当条目,则RDBMS 112可以处理文件138和140的更新、删除和创建,如同这些文件位于计算机102上。

此外,可以通过跟踪所监视文件的文件大小以及定期比较文件大小来检测对特定文件的更新。当然,此方法具有下述缺点,即它将不会检测到未导致文件大小改变的对文件的改变。检测文件改变的另一方法是定期监视文件时间戳。不过,即使文件未改变,时间戳也可能改变。在可选方案中,可以维护所注册文件的散列值,并定期重新计算所述散列值来检查改变。

尽管已参考本发明的特定实施例示出并描述了本发明,但是本领域技术人员将会理解,可以在其中做出在形式上和细节上的前述和其他改变,而不会背离本发明的精神和范围,这些改变包括(但不局限于)额外的、更少的或修改过的单元和/或以相同或不同顺序执行的额外的、更少的或修改过的框。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号