CN1211744C - 维护检查实用程序所用例外表的方法 - Google Patents
维护检查实用程序所用例外表的方法 Download PDFInfo
- Publication number
- CN1211744C CN1211744C CNB998126551A CN99812655A CN1211744C CN 1211744 C CN1211744 C CN 1211744C CN B998126551 A CNB998126551 A CN B998126551A CN 99812655 A CN99812655 A CN 99812655A CN 1211744 C CN1211744 C CN 1211744C
- Authority
- CN
- China
- Prior art keywords
- exception table
- exception
- statement
- control statement
- sql statement
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Peptides Or Proteins (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于检查实用程序维护例外表的方法,包括生成一个控制语句,该语句中包括关键词和用于预定例外表参数的相关值。该控制语句由检查实用程序来分析,该检查实用程序自动地建立和执行创建和删除例外表所需要的SQL语句。
Description
发明领域
本发明涉及数据库管理系统,尤其涉及一种用于在数据库管理系统中检查实用程序所用例外表的方法。
发明背景
一种公知的数据库软件程序是IBM公司发布的DATABASE 2(DB2)数据库软件。如在本技术领域中公知的,DB2作为工作在IBMMVS操作系统软件下的计算机系统中的一个子系统工作。在DB2环境中,用户数据驻留在表格空间中的DB2表中。一个表格空间是例如诸如磁盘驱动器的一个直接访问存储设备(DASD)中的一部分存储空间。为了示范性目的,下面表示的是将被存储在表格空间中的一个定单项目(order-entry)表。定单项目表包含以下各列:customer_number(客户编号)、Product_code(产品编码)、Order_number(定单编号)、buyer_name(顾客姓名)和ship_to_zip(运送到的邮编)。
定单项目表
客户编号 | 产品编码 | 定单编号 | 顾客姓名 | 运送到的邮编 |
1111111111 | 0010 | 1234500001 | John Doe | 60606 |
1111111111 | 0040 | 1234500002 | Jane Doe | 70707 |
3333333333 | 0020 | 1234500003 | Bill Smith | 90909 |
2222222222 | 0030 | 1234500004 | Fred Smith | 80808 |
虽然上述定单项目表显示了四行,该表格可以具有用于一个公司所有定单的几百万行,例如四百万行。定单项目表还具有例如三个索引关键字和两个外部关键字。一个索引关键字是用于表格特定行的一个标识符,而外部关键字也标识一行,但是也如上所述被用于参照整性(referential integrity)。例如,在定单项目表中,一个索引关键字可以基于定单编号,另一个索引关键字基于顾客姓名,第三关键字基于运送到的邮编。如在现有技术中公知的,用于一个特定表格的一个索引关键字表示行的标识(RID)和对该行的一个选定值(例如索引关键字数值)。
索引关键字可以被用来生成用于该表格的一个索引,该索引便于随后搜索该表格中的特定数据。例如,定单项目表将具有三个索引(例如每个索引关键字使用一个索引),每个索引被存储在一个索引空间中。类似于表格空间,索引空间例如是DASD的一个指定部分。因而,如果一个用户在定单项目表中寻找包含一个特定购买者姓名的行,数据库管理系统将在表格中查找顾客索引,以识别出该顾客名称的所有出现,而不需要读取整个表格来找到该行的位置。
DB2管理者分析访问一个数据库表格的应用程序的性能特性以发现用于快速访问数据库表格的最佳索引结构。将用作一个索引的数值必需比认真地选择,因为每个索引导致数据库系统的额外开销。例如,诸如增加或删除的数据库表格中的每次处理要求用于该表格的每个索引也被更新。因而,希望用于一个表格的索引数被最小化以增强应用程序的性能。例如根据通常是在线处理用户的表格用户最频繁访问的数据来选择用于数据库表格的索引。索引关键字通常不依据外部关键字,因为外部关键字主要用于验证目的(例如强制约束constraintenforcement)。
如在现有技术中公知,数据库中的每个表格可以是一个父表或一个子表或者两者。一个子表通过外部关键字数值或者在子表的列中包含的数值与一个父表相联系。例如,一个外部关键字数值可以在一个子表中出现多次(例如子表中的多行可以具有相同的外部关键字,例如定单项目表中的“客户编号”和“产品编码”项目),但是每个外部关键字必需与子表的父表中的一个唯一关键字相联系。
参照完整性确保每个外部关键字数值是有效的(例如具有父表中的一个相应主关键字)。因此,参照完整性(RI)是指,当表格中一行某列中的值还存在于另一个表格的一个索引中时,这个值是有效的。如果一行违反了一个约束就不应当在一个表格中。如上所示的定单项目表具有两个外部关键字,它具有在“客户编号”和“产品编码”上的RI约束。如在现有技术中公知的,当DB2数据库管理系统的一个用户创建一个表格时,用户还定义该表格的约束条件(例如用户还定义相关完整性标准)。下面图示的是一个示例性产品表和一个示例性客户表(例如用于定单项目表中外部关键字的父表)。
产品表
产品编码 | 产品说明 | 零售价格 |
00010 | 膝上型计算机 | 1000.00 |
00020 | 桌面计算机 | 1100.00 |
00030 | 办公计算机 | 1200.00 |
00040 | 网络计算机 | 3500.00 |
00050 | 家用计算机 | 999.99 |
产品表显示了五行,当然该表可以具有用于一个公司不同的所有产品的几千行。产品表例如具有基于“产品编码”列的一个索引,其值以升序表示。“产品编码”列中的每个数值都是唯一的,因为仅有一个产品编码被分配给每个产品,因此在这个表格中,一个产品编码不可能被包括多次。因此,用于该产品表的一个索引将包括关键字数字(例如在产品编码列中所存储的数值)和RID。产品表索引将驻留在一个DB2索引空间中。
下面表示的客户表格显示了四行,当然这个表格也可以具有用于一个公司所有客户的几千行。客户表例如具有一个基于“客户编号”列的索引,其值以升序被排列。“客户编号”列中的值每个都是唯一的,因为仅有一个该列的客户编号被分配给每个客户名称,因此一个客户编号在该表中将不会被包括多次。因此,用于客户表的一个索引将包括关键字数值(例如“客户编号”列的数值)和一个RID。客户索引也将驻留在一个DB2索引空间中。
客户表
客户编号 | 买主名称 | 客户地址 |
1111111111 | John Doe | A州 |
2222222222 | Fred Smith | B州 |
3333333333 | Bill Smith | C州 |
4444444444 | Steve Jones | D州 |
如上面的表格所示,定单项目表中的所有行是有效的(例如没有违反参照完整性约束),因为定单项目表的产品编码列中的外部关键字的值也存在于产品表中,定单项目表的客户编号列中的值也存在于客户表中。
诸如DB2的常规数据库管理系统向用户提供识别在一行可以被添加到一个表格之前它必需满足的具体条件的能力。这些条件被称作“约束”,因为它们限制一行可以包括的值。约束例如包括检查约束和参照完整性约束。检查约束包括例如用于一个特定值的限定标准,例如在00000到99999范围内的邮政编码值(例如在定单项目表中的“运送到的邮编”值)。如上所述,当表格内一行中的一个数值还存在于另一个表格的一个索引中时,参考整体约束确保该数值是正确的。
在将数据被装载在数据库表格内之前或者在数据已经被装载到一个数据库表格内之后可以执行强制约束。当在将数据装入数据库表格内之后执行强制约束,例如作为一个硬件的软件故障之后的恢复操作的一部分,通常由一个检查实用程序来执行强制约束,例如IBM公司的CHECK DATA、BMC软件公司的CHECK PLUS和白金技术公司的FASTCHECK。
常规检查实用程序确保表格中的数据不违反已经为该表格建立的任何约束。可以在生成表格时建立约束。例如,约束可以在表格在数据库系统中被初始创建时被定义并被存储在DB2目录中,它可以随后由检查实用程序来识别约束信息。
如在现有技术中公知的,为了执行强制约束,一个常规检查实用程序例如可以被初始化并标识可以被应用于表格中通过读取DB2目录来检查的任何约束。然后,检查实用程序例如将读取数据库表格的每一行,并检查所谓的检查约束违反和/或参照完整性约束违反。
如在现有技术中公知的,在检查实用程序每次对一个表格进行操作之前生成一个例外表(例如生成一个新的例外表或每次执行强制约束时替换一个先前的例外表)。例如,当一个用户创建一个工作流以执行检查实用程序时,工作流的步骤包括创建一个新的例外表。例外表例如是数据库的一个镜像,除了例外表仅包含包括一个违反约束的行。例如,检查实用程序将整个行拷贝到例外表中。将一个错误行拷贝到例外表中的一个示例性SQL语句如下:
INSERT INTO PDLNR.EXTDOCDPP4 VALUES (′SALE′ ,′2004-10-04′ ,′07.55.34′ ,0 ,33329 ,’V’ ,-.05 ,x’0000201′ <dp n="d5"/> ,CURRENT TIMESTAMP);
如上述代码所示,在数据库表格PDLNR.TDOCDPP中包含一个违反约束的行将被复制到例外表PDLNR.EXTDOCDPP4中。
然而,在检查实用程序使用一个例外表之前,必需创建例外表。而且,如果检查实用程序先前已经对一个表格进行操作,先前创建的例外表必需被删除并创建一个新的例外表。现有技术检查实用程序执行的关于例外表的创建和删除的一个例子如下。例如,假设包括三个父表和三十一个从属表的一个典型的用户应用系统(父表和从属表的其它组合也是可能的)。当客户为从属表执行一个常规检查实用程序时,每个从属表仅需要一个例外表。如上所述并且是在现有技术中公知的,每个例外表例如是一个用于包含检查实用程序标识为违反一个约束的行的工作表格。当为一个参考完整性约束违反检查一个从属表的表格空间时,常规检查实用程序的用户需要执行下述步骤。
例如,对于每个从属表格,用户必需编码和执行下述示例性SQL语句。
DROP TABLESPACE DBISIP.TSISIP01; CREATE TABLESPACE TSISIP01 IN DBISIP USING STOCROUP SGISIP PRIQTY 52 SECQTY 26 ERASE NO FREEPAGE 0 PCTFREEE 5 BUFFERPOOL BPO LOCKSIZE ANY CLOSE YES <dp n="d6"/> LOCKMAX SYSTEM CCSID EBCDIC CREATE TABLE PDISIP.TBHORDCT LIKE PDUTL03.TBHORDCT IN DBISIP.TSISP01; ALTER TABLE PDISIP.TSISIP01 ADD RID CHAR(4); ALTER TABLE PDISIP.TBHORDCT ADD TIME TIMESTAMP NOT NULL WITH DEFAULT
上述代码描述例如删除一个已有例外表(例如TSISIP01)和为每个将被检查的从属表创建一个新的例外表(例如TSISIP01)的步骤。另外,该代码说明用于新创建例外表的检查实用程序所需要的示例性修改(例如添加用于行标识的一个新列和用于时间标记的一个新列)。
因为上述例子具有三十一个从属表格空间,上述代码必需被写入和执行三十一次(例如每次用于一个从属表格空间)。另外,检查实用程序的用户还必需编码一个控制语句以运行检查实用程序,控制语句命名所有的将被检查的从属表格空间并标识与从属表格相关的所有例外表。为了这个目的,将由一个用户编写的示例性SQL语句被表示如下:
CHECK DATA TABLESPACE JTINLAND.SCHORDCT ,TABLESPACE JTINLAND.SCHITMDI ,TABLESPACE JTINLAND.SCHHDINF ,TABLESPACE JTINLAND.SCHREFL2 ,TABLESPACE JTINLAND.SCHCMAIL ,TABLESPACE JTINLAND.SCHBILDG ,TABLESPACE JTINLAND.SCHFACFW <dp n="d7"/> ,TABLESPACE JTINLAND.SCHEHRAC ,TABLESPACE JTINLAND.SCHCOATI ,TABLESPACE JTINLAND.SCHCTGCM ,TABLESPACE JTINLAND.SCHSSTCK ,TABLESPACE JTINLAND.SCHSRORD ,TABLESPACE JTINLAND.SCPEPRCE ,TABLESPACE JTINLAND.SQOMFGHD ,TABLESPACE JTINLAND.SQOMFCHI ,TABLESPACE JTINLAND.SQOMFCMT ,TABLESPACE JTINLAND.SQOMFOVR ,TABLESPACE JTINLAND SQOMFOVU ,TABLESPACE JTINLAND.SQOMFMPL ,TABLESPACE JTINLAND.SQOMFOVP ,TABLESPACE JTINLAND SQOMFCHE ,TABLESPACE JTINLAND.SQOMFUNT ,TABLESPACE JTINLAND.SQOMFTRQ ,TABLESPACE JTINLAND.SCHEITMR ,TABLESPACE JTINLAND.SCHORDFW ,TABLESPACE JTINLAND.SCHORHLD ,TABLESPACE JTINLAND.SCHREFRL ,TABLESPACE JTINLAND.SCHRETYP ,TABLESPACE JTINLAND.SCPEPICS ,TABLESPACE JTINLAND.SCHERCYL ,TABLESPACE JTINLAND.SCHCACKW FOR EXCEPTION IN PDUTL03.TBHORDCT USE PDISIP.TBHORDCT FOR EXCEPTION IN PDUTL03.TBHITMDI USE PDISIP TBHITMDI FOR EXCEPTION IN PDUTL03.TBHHDINF USE PDISIP.TBHMDINF FOR EXCEPTION IN PDUTL03.TBHREFL2 USE PDISIP.TBHREFL2 FOR EXCEPTION IN PDUTL03.TBHCMAIL USE PDISIP.TBHCMAIL FOR EXCEPTION IN PDUTL03.TBHBILDG USE PDISIP.TBHBILDG <dp n="d8"/> FOR EXCEPTION IN PDUTL03.TBHFACFW USE PDISIP.TBHFAcFW FOR EXCEPTION IN PDUTL03.TBHEHRAC USE PDISIP.TBHEHRAC FOR EXCEPTION IN PDUTL03.TBHCOATI USE PDISIP.TBHCOATI FOR EXCEPTION IN PDUTL03.TBHCTGCM USE PDISIP.TBHCTGCM FOR EXCEPTION IN PDUTL03.T~HSSTCK USE PDISIP.TBHSSTcK FOR EXCEPTION IN PDUTL03.TBHSRORD USE PDISIP.TBHSRORD FOR EXCEPTION IN PDUTL03.TBPEPRCE USE PDISIP.TBPEPRcE FOR EXCEPTION IN PDUTL03.TQOMFGHD USE PDISIP.TQOMFGHD FOR EXCEPTION IN PDUTL03.TQOMFCHI USE PDISIP.TQOMFCHI FOR EXCEPTION IN PDUTL03.TQOMFCMT USE PDISIP.TQOMFCMT FOR EXCEPTION IN PDUTL03 TQOMFOVR USE PDISIP.TQOMFOVR FOR EXCEPTION IN PDUTL03.TQOMFOVU USE PDISIP.TQOMFOVU FOR EXCEPTION IN PDUTL03.TQOMFMPL USE PDISIP.TQOMFMPL FOR EXCEPTION IN PDUTL03.TQOMFOVP USE PDISIP.TQOMFOVP FOR EXCEPTION IN PDUTL03.TQOMFCHE USE PDISIP.TQOMFCHE FOR EXCEPTION IN PDUTL03.TQOMFUNT USE PDISIP.TQOMFUNT FOR EXCEPTION IN PDUTL03.TQOMFTRQ USE PDISIP.TQOMFTRQ FOR EXCEPTION IN PDUTL03.TBHEITMR USE PDISIP.TBHEITMR FOR EXCEPTION IN PDUTL03.TBHORDFW USE PDISIP.TBHORDFW FOR EXCEPTION IN PDUTL03.TBHORHLD USE PDISIP.TBHORHLD FOR EXCEPTION IN PDUTL03.TBHREFRL USE PDISIP.TBHREFRL FOR EXCEPTION IN PDUTL03.TBHRETYP USE PDISIP.TBHRETYP FOR EXCEPTION IN PDUTL03.TBPEPICS USE PDISIP.TBPEPICS FOR EXCEPTION IN PDUTL03.TBHERCYL USE PDISIP.TBHERCYL FOR EXCEPTION IN DUTL03.TBHCACKW USE PDISIP.TBHCACKW
如上述控制语句所示,每个从属表格空间被标识(例如“TABLESPACE JTINLAND.SCHORDCT”表示数据库JTINLAND所拥有的从属表格SCHORDCT)。在标识三十一个从属表格之后,将用于每个独立表格的例外表被标识(例如“FOR EXCEPTION INPDUTL03.TBHORDCT USE PDISIP.TBHORDCT”表示例外表TBHORDCT将用于从属表格TBHORDCT)。
如上面的为常规检查实用程序执行约束限制的操作必需被编写和执行的示例性代码所表示的,用户必需消耗大量的精力来诸如删除检查实用程序在先前操作中创建的例外表的表格空间和创建新的例外表的表格空间。
因为数据库经常具有大量的从属表,用户必需定期地对这些表格和所有从属表格执行参考整体检查。这一处理可能很长,并繁杂地涉及许多步骤和大量的手写编码SQL命令以表示将被检查的表格,创建例外表和将例外表指定给参照完整性检查实用程序。这个处理不仅消耗时间,而且容易出错。因此,希望以自动的方式简化与从属表格参照完整性检查相关的工作。
发明概述
根据本发明的一个实施例,一个程序对将由检查实用程序检查的表格空间加以标识,以便表格空间和相关例外表格空间被自动地标识给检查实用程序,从而消除常规检查实用程序操作所需要的SQL语句的大量手写编码。根据本发明的一个示范性实施例,包括预定关键字的控制语句被提供给检查实用程序,检查实用程序分析控制语句以删除现有例外表表格空间和创建新的例外表表格空间。
附图简要说明
图1图示根据本发明一个实施例用于为一个检查实用程序维护例外表的一个示例性流程图。
图2图示根据本发明一个实施例用于为一个检查实用程序根据维护例外表的另一个示例性流程图。
本发明的详细说明
图1图示根据本发明一个实施例的用于为一个检查实用程序根据维护例外表的一个示例性流程图。如图1所示,在步骤1010,读取一个控制语句,标识执行指定表格空间上的约束限制所需的参数。在步骤1020,由例如根据本发明的一个实施例修改的一个常规检查实用程序处理该控制语句。在步骤1030,生成删除或创建例外表所需的SQL语句。在步骤1040,执行在步骤1030中生成的SQL语句。
下面所述的是根据本发明一个实施例的一个示例性SQL控制语句。例如,这个控制语句可以在图1所示的步骤1010中由检查实用程序的一个用户生成。然后,根据本发明的一个实施例,该控制语句将被提供给一个常规检查实用程序进行处理。
CHECK DATA TABLESPACE JTINLAND.SCHORDCT ,TABLESPACE JTINLAND.SCHITMDI ,TABLESPACE JTINLAND.SCHHDINF ,TABLESPACE JTINLAND.SCHREFL2 ,TABLESPACE JTINLAND.SCHCMAIL ,TABLESPACE JTINLAND.SCHBILDG ,TABLESPACE JTINLAND.SCHFACFW ,TABLESPACE JTINLAND.SCHEHRAC ,TABLESPACE JTINLAND.SCHCOATI ,TABLESPACE JTINLAND.SCHCTGCM ,TABLESPACE JTINLAND.SCHSSTCK ,TABLESPACE JTINLAND.SCHSRORD ,TABLESPACE JTINLAND.SCPEPRCE ,TABLESPACE JTINLAND.SQOMFGHD ,TABLESPACE JTINLAND.SQOMFCHI ,TABLESPACE JTINLAND.SQOMFCMT ,TABLESPACE JTINLAND.SQOMFOVR ,TABLESPACE JTINLAND SQOMFOVU <dp n="d11"/> ,TABLESPACE JTINLAND.SQOMFMPL ,TABLESPACE JTINLAND.SQOMFOVP ,TABLESPACE JTINLAND SQOMFCHE ,TABLESPACE JTINLAND.SQOMFUNT ,TABLESPACE JTINLAND.SQOMFTRQ ,TABLESPACE JTINLAND.SCHEITMR ,TABLESPACE JTINLAND.SCHORDFW ,TABLESPACE JTINLAND.SCHORHLD ,TABLESPACE JTINLAND.SCHREFRL ,TABLESPACE JTINLAND.SCHRETYP ,TABLESPACE JTINLAND.SCPEPICS ,TABLESPACE JTINLAND.SCHERCYL ,TABLESPACE JTINLAND.SCHCACKW USING DATABASE DBISIP TABLESPACE TSISIP STOGROUP SGISIP PRIQTY 52 SECQTY 26 OWNER PDISIP DROP YES
如在上述示例性SQL控制语句中表示的,根据本发明的一个实施例,在语句USING之后控制语句包含由常规检查实用程序处理的多个关键字。控制语句的格式是设计选择的问题,只要该格式可以由检查实用程序来处理(例如分析)。然而,在关键字之前,将被检查的从属表格空间的名称由用户提供,根据该名称可以确定将被检查的从属表格。例如,如在现有技术中公知的,检查实用程序例如通过读取数据库的DB2目录可以识别在每个从属表格空间中从属表格的名称。在由本申请的代理人代理的序列号No.09/151,750,标题为“强制约束最佳处理的动态确定(DYNAMIC DETERMINATION OFOPTIMAL PROCESS FOR ENFORCING CONSTRAINTS)”的待审专利申请中包含有如何读取DB2目录的说明,在此引用作为参考。
在本发明的另一实施例中,并不提供将被检查的所有从属表格空间的名称,可以在控制语句中提供父表格空间的名称。使用这个信息,DB2目录可以被读取以识别相关从属表格空间,从而不需要用户手工地标识从属表格空间。例如,仅标识父表格空间的控制语句可以具有任何格式或语法,如果该格式或语法可以由适当的实体来解释和处理,例如检查实用程序或可以访问一个DB2目录的其它DB2实用程序。
根据本发明一个实施例的示例性SQL控制语句包括用于预定例外表格参数的关键词。例如,一个关键词是将被创建的表格空间中数据库的名称(例如用于新创建表格空间的逻辑分组的数据库名称)。在这个例子中,数据库的名称是DBISIP。另一个关键词是将被创建的例外表格空间名称,例如TSISIP(它在数据库DBISIP中)。如果需要多个例外表格空间,根据本发明一个实施例的方法可以创建它们,例如使用相同数据库名称的连续编号的表格空间(例如TSISIP01、TSISIP02等)。关键词还包括在本技术领域中公知的一个存储组标识符(例如例外表格空间将驻留的位置)。在这个例子中STOGROUP被命名为SGISIP。
根据本发明一个实施例的关键词还包括例如将在存储组中被使用的第一数量的DASD和第二数量的DASD(例如将由DB2为例外表格空间分配的DASD页面)。如在现有技术中公知的,第一数量和第二数量的DASD例如可以由用户指定,例如根据将由检查实用程序识别的错误数的估计值。在这个例子中,为存储组分配DASD的52个页面,如果需要的话其它26个页面也是可用的。
如在控制语句中表示的,在这个PDISIP的情况下,关键词还可以标识将被创建的例外表的所有者。根据本发明的一个实施例,这个所有者例如将在响应于控制语句由检查实用程序生成的创建表格SQL语句中使用。例外,关键词包括一个删除语句以表示在创建一个新的例外表之前是否要删除现有的例外表或现有的例外表是否要被重新使用。根据本发明的一个示例性实施例,新创建的例外表被指定一个由用户提供的所有者并具有与被检查的相应从属表相同的名称(例如它具有一个不同的所有者名称)。
根据本发明一个示范性实施例的常规检查实用程序生成和删除例外表的一个示范性处理被用下述伪码来表示并示于图2中。
PARSE CONTROL STATEMENT IF KEYWORD=USING IF KEYWORD=USING IF DROP=YES DROP TABLESPACES ENDIF CREATE TABLESPACE CREATE TABLE ALTER TABLE TWICE SET FLAG EXCEPTION_TABLE SET FLAG DROP_IF_EMPTY ELSE IF KEYWORD=EXCEPTION IN SET FLAG EXCEPTION_TABLE ENDIF PERFORM CHECK DATA PROCESS IF NO_VIOLATIONS IF DROP_IF_EMPTY DROP TABLESPACES ENDIF ENDIF
图2表示根据本发明一个实施例的用于为一个检查实用程序维护例外表的另一个示例性流程图。在步骤2010,由常规检查实用程序接收一个控制语句。例如根据本发明的一个示例性实施例,控制语句将包括预定例外表参数,如上所述,由检查实用程序来分析。在步骤2020,所接收的控制语句被分析并确定将一个删除(DROP)参数设置为例如是或非。如果该值为非,来自一个先前检查操作的现有例外表格空间将被用于当前的检查操作。如果删除值为是,则在步骤2030将删除现有的例外表格空间。
在步骤2030之后,在步骤2040由检查实用程序使用例如从所分析的控制语句获得的表格空间名称建立一个创建表格空间SQL语句(例如建立一个数据结构)。在步骤2050,生成例外表格空间,例如通过执行创建表格空间SQL语句,(例如一部分DASD被分配给例外表格空间)。在步骤2060,确定例外表格空间先前是否存在。例如,DB2表示(例如通过一个SQL代码)一个新的例外表格空间是否被创建(例如,SQL语句的执行是否成功),或者它是否不能被创建,例如因为表格空间已经存在。如果先前存在例外表格空间,该程序前进到步骤2090,如下所述。如果先前例外表格空间并不存在,则该程序前进到步骤2070。在步骤2070,建立和执行一个创建表格SQL语句以创建例外表。在步骤2080,建立和执行任何需要的变更SQL语句,例如将行标识或时间标记添加给例外表。
在步骤2090,确定是否有另外一个从属表格要检查。如果不再有要检查的表格,该程序在步骤2100上结束。如果有要检查的另一个表格,该程序返回步骤2020直到所有被标识的表格已经被检查。与处理例外表的常规检查实用程序相反,常规检查实用程序要求由检查实用程序的用户标识所有的例外表,根据本发明从属表被自动地标识并生成相应的例外表,因而避免在标识所有所需的例外表中潜在的错误或遗漏。
因此,根据本发明的一个实施例,上述处理可以由常规检查实用程序来执行(例如该方法可以被提供为检查实用程序软件中的一个软件算法)以创建和删除例外表。例如,使用本发明的方法,将三个父表和指定关键词包含在控制语句中将导致生成强制约束所需要的三十一个例外表表格空间所需要的SQL语句的自动生成和执行。因而,根据本发明的一个实施例,与约束检查的常规处理所需要的工作相比,一个检查实用程序的用户可以执行更少的工作以生成参照完整性强制约束所需要的例外表。
Claims (9)
1.一种用于维护例外表的方法,包括步骤:
生成包括预定例外表参数的控制语句,该控制语句标识在选定的表格空间上执行约束限制所需的一个或多个参数,这些例外表参数至少包括是删除还是重新使用已有的例外表;
在一个检查实用程序中接收该控制语句;
为每个预定例外表参数生成SQL语句;和
执行每个SQL语句,其中生成或删除一个例外表是通过执行至少一个SQL语句来完成的,该例外表具有包含约束违反的一个或多个数据库行的镜像。
2.一种在数据库系统中维护例外表的方法,包括步骤:
接收控制语句,该控制语句包括至少一个预定例外表参数,该控制语句标识在选定的表格空间上执行约束限制所需的一个或多个参数,该至少一个预定例外表参数包括是删除还是重新使用已有的例外表,一例外表具有包含约束违反的一个或多个数据库行的镜像;
分析该控制语句;
使用分析的控制语句为至少一个例外表参数生成SQL语句;和
执行该SQL语句。
3.根据权利要求2的方法,其中至少一个预定例外表参数包括数据库名称、例外表格空间名称、存储组名称、第一数量值、第二数量值、所有者名称和删除值之一。
4.根据权利要求3的方法,其中控制语句包括多个例外表参数。
5.根据权利要求2的方法,其中分析控制语句由一个常规检查实用程序来执行。
6.根据权利要求2的方法,其中所述生成SQL语句的步骤包括生成用于多个例外表参数的SQL语句。
7.一种维护例外表的方法,包括:
生成包括一个或多个预定例外表关键字和一个或多个选定的表格空间的控制语句,该控制语句标识在选定的表格空间上执行约束限制所需的一个或多个参数,该一个或多个预定例外表关键字包括是删除还是重新使用已有的例外表,一例外表具有包含约束违反的一个或多个数据库行的镜像;
为每一个预定例外表关键字生成SQL语句;
执行SQL语句,对一个或多个选定的表格空间进行操作和对一个或多个选定的表格空间的从属表进行操作;
其中生成或删除一个例外表是通过执行至少一个SQL语句来完成的。
8.一种维护例外表的方法,包括:
生成包括供检查实用程序处理的一个或多个预定例外表参数的控制语句,该控制语句向该检查实用程序提供指令来创建一个或多个例外表,该一个或多个例外表具有包含约束违反的一个或多个数据库行的镜像,该控制语句标识在选定的表格空间上执行约束限制所需的一个或多个参数,这些例外表参数至少包括是删除还是重新使用已有的例外表;
为每个预定例外表参数生成SQL语句;和
执行每个SQL语句。
9.根据权利要求8的维护例外表的方法,其中生成SQL语句包括:
根据控制语句自动地为每个预定例外表参数生成SQL语句,该SQL语句还包括生成或删除例外表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/179,533 US6401089B2 (en) | 1998-10-27 | 1998-10-27 | Method for maintaining exception tables for a check utility |
US09/179,533 | 1998-10-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1324465A CN1324465A (zh) | 2001-11-28 |
CN1211744C true CN1211744C (zh) | 2005-07-20 |
Family
ID=22656988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998126551A Expired - Fee Related CN1211744C (zh) | 1998-10-27 | 1999-10-27 | 维护检查实用程序所用例外表的方法 |
Country Status (12)
Country | Link |
---|---|
US (1) | US6401089B2 (zh) |
EP (1) | EP1145156B1 (zh) |
JP (1) | JP2002528822A (zh) |
KR (1) | KR20010090596A (zh) |
CN (1) | CN1211744C (zh) |
AT (1) | ATE546786T1 (zh) |
AU (1) | AU1236000A (zh) |
BR (1) | BR9914750A (zh) |
CA (1) | CA2347785A1 (zh) |
HK (1) | HK1042563A1 (zh) |
IL (2) | IL142570A0 (zh) |
WO (1) | WO2000025236A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609122B1 (en) * | 2000-08-01 | 2003-08-19 | Bmc Software, Inc. | Navigation of view relationships in database system |
US6502092B1 (en) * | 2000-08-01 | 2002-12-31 | Bmc Software, Inc. | Referential integrity navigation in a database system |
CA2382712A1 (en) | 2002-04-19 | 2003-10-19 | Ibm Canada Limited-Ibm Canada Limitee | Detection and prevention of writing conflicts within nested query statements |
US7181461B2 (en) | 2002-08-19 | 2007-02-20 | International Business Machines Corporation | System and method for real time statistics collection for use in the automatic management of a database system |
US20050038786A1 (en) * | 2003-08-11 | 2005-02-17 | International Business Machines Corporation (Ibm) | Self-configuration of database tables |
US20050071359A1 (en) * | 2003-09-25 | 2005-03-31 | Elandassery Deepak S. | Method for automated database schema evolution |
US7225209B2 (en) * | 2003-11-06 | 2007-05-29 | International Business Machines Corporation | Computer-implemented method for allocating new additional area for the dataset in storage based on the size of the new additional area wherein if the new area number does not exceed clipping threshold, the size of a new additional area being greater than the size of each previously allocated additional area of the dataset |
US7624119B2 (en) * | 2004-02-11 | 2009-11-24 | International Business Machines Corporation | Low-overhead built-in timestamp column for relational database systems |
US20060004846A1 (en) * | 2004-06-16 | 2006-01-05 | Bmc Software, Inc. | Low-overhead relational database backup and restore operations |
CN100377108C (zh) * | 2005-04-30 | 2008-03-26 | 华为技术有限公司 | 一种测试用例的执行方法 |
US7958456B2 (en) * | 2005-12-23 | 2011-06-07 | Apple Inc. | Scrolling list with floating adjacent index symbols |
US20070162493A1 (en) * | 2005-12-30 | 2007-07-12 | Matthias Schmitt | Business object duplicates |
US7945921B2 (en) * | 2007-03-01 | 2011-05-17 | Microsoft Corporation | Cross application domain late binding to non-local types |
US8321435B2 (en) * | 2009-08-12 | 2012-11-27 | Apple Inc. | Quick find for data fields |
US10169404B2 (en) | 2014-11-11 | 2019-01-01 | International Business Machines Corporation | Automatically aggregating data in database tables |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0489861B1 (en) * | 1989-09-01 | 1997-07-09 | Amdahl Corporation | Operating system and data base |
US5732262A (en) | 1994-01-31 | 1998-03-24 | International Business Machines Corporation | Database definition language generator |
US5764973A (en) * | 1994-02-08 | 1998-06-09 | Enterworks.Com, Inc. | System for generating structured query language statements and integrating legacy systems |
US5706494A (en) * | 1995-02-10 | 1998-01-06 | International Business Machines Corporation | System and method for constraint checking bulk data in a database |
-
1998
- 1998-10-27 US US09/179,533 patent/US6401089B2/en not_active Expired - Lifetime
-
1999
- 1999-10-27 CN CNB998126551A patent/CN1211744C/zh not_active Expired - Fee Related
- 1999-10-27 KR KR1020017005205A patent/KR20010090596A/ko not_active Application Discontinuation
- 1999-10-27 WO PCT/US1999/025158 patent/WO2000025236A1/en not_active Application Discontinuation
- 1999-10-27 JP JP2000578751A patent/JP2002528822A/ja active Pending
- 1999-10-27 EP EP99971120A patent/EP1145156B1/en not_active Expired - Lifetime
- 1999-10-27 IL IL14257099A patent/IL142570A0/xx active IP Right Grant
- 1999-10-27 AU AU12360/00A patent/AU1236000A/en not_active Abandoned
- 1999-10-27 CA CA002347785A patent/CA2347785A1/en not_active Abandoned
- 1999-10-27 BR BR9914750-5A patent/BR9914750A/pt not_active IP Right Cessation
- 1999-10-27 AT AT99971120T patent/ATE546786T1/de active
-
2001
- 2001-04-12 IL IL142570A patent/IL142570A/en not_active IP Right Cessation
-
2002
- 2002-03-21 HK HK02102178.8A patent/HK1042563A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
IL142570A0 (en) | 2002-03-10 |
ATE546786T1 (de) | 2012-03-15 |
JP2002528822A (ja) | 2002-09-03 |
US6401089B2 (en) | 2002-06-04 |
CN1324465A (zh) | 2001-11-28 |
CA2347785A1 (en) | 2000-05-04 |
WO2000025236A1 (en) | 2000-05-04 |
HK1042563A1 (zh) | 2002-08-16 |
EP1145156A4 (en) | 2003-09-10 |
AU1236000A (en) | 2000-05-15 |
US20010016844A1 (en) | 2001-08-23 |
EP1145156B1 (en) | 2012-02-22 |
KR20010090596A (ko) | 2001-10-18 |
IL142570A (en) | 2006-10-31 |
BR9914750A (pt) | 2001-07-10 |
EP1145156A1 (en) | 2001-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1211744C (zh) | 维护检查实用程序所用例外表的方法 | |
US8112448B2 (en) | Table classification device, table classification method, and table classification program | |
US4933848A (en) | Method for enforcing referential constraints in a database management system | |
AU2013202007B2 (en) | Data selection and identification | |
US8244675B2 (en) | Method and apparatus for updating a database using table staging and queued relocation and deletion | |
US8473955B2 (en) | Reducing processing overhead and storage cost by batching task records and converting to audit records | |
KR20000047630A (ko) | 데이터베이스 동작 정렬 방법, 시스템 및 컴퓨터 프로그램제품 | |
US6189010B1 (en) | Method for repairing constraint violations in a database management system | |
US5857205A (en) | Method for determining if data item characteristics in periodically updated and replaced files have unexpectedly changed | |
US20040122868A1 (en) | System and method for identifying and maintaining base table data blocks requiring deferred incremental integrity maintenance | |
CN101046822A (zh) | 数据节点的集中管理 | |
US7559048B1 (en) | System and method for managing objects between projects | |
CN1211745C (zh) | 校验参照完整性中涉及的表空间的方法 | |
US7953714B2 (en) | Method for maintaining parallelism in database processing using record identifier substitution assignment | |
AU2004202616B2 (en) | Method for Maintaining Exception Tables for a Check Utility | |
US20160132544A1 (en) | Efficient sorting in a relational database | |
CN111563142A (zh) | 一种sql自动对标的匹配方法及装置 | |
EP1665152A1 (en) | A financial data evaluation method | |
Burgess | DB2 Update |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |