數(shù)據(jù)管理設(shè)備及數(shù)據(jù)管理方法
【專利摘要】本發(fā)明公開了數(shù)據(jù)管理設(shè)備和數(shù)據(jù)管理方法,該數(shù)據(jù)管理設(shè)備管理具有多個項(xiàng)的數(shù)據(jù)庫,多個項(xiàng)中的每個項(xiàng)均具有項(xiàng)屬性數(shù)據(jù)。該數(shù)據(jù)管理設(shè)備包括:綱要檢查單元,在接受到對數(shù)據(jù)庫的更新請求時,該綱要檢查單元確定在更新請求中指定的項(xiàng)是否包括在多個項(xiàng)中;以及綱要擴(kuò)展單元,在所指定的項(xiàng)未包括在多個項(xiàng)中時,該綱要擴(kuò)展單元將指定的項(xiàng)添加至多個項(xiàng),同時將指定的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記改變成不同于第一狀態(tài)的第二狀態(tài),該第一狀態(tài)被設(shè)置給被準(zhǔn)許作為數(shù)據(jù)庫的項(xiàng)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記。
【專利說明】數(shù)據(jù)管理設(shè)備及數(shù)據(jù)管理方法
【技術(shù)領(lǐng)域】
[0001]本文中所討論的實(shí)施例涉及數(shù)據(jù)管理程序等。
【背景技術(shù)】
[0002]在數(shù)據(jù)庫(DB)中,存在在具有綱要(schema)的條件下運(yùn)行的DB(例如,全綱要DB),其中,針對DB的每個項(xiàng)已預(yù)先定義了項(xiàng)名稱和數(shù)據(jù)類型。此外,存在在不具有綱要的條件下運(yùn)行的DB (例如,無綱要DB)。此外,存在在全綱要DB和無綱要DB 二者均存在的條件下運(yùn)行的DB (例如,混合DB)。具體地,在混合DB中,在綱要中定義了被給予構(gòu)成表的項(xiàng)的共同屬性的同時,在綱要中特別地定義了一些項(xiàng)的屬性。
[0003]針對混合DB,已經(jīng)公開了在合并多個數(shù)據(jù)庫源時對綱要執(zhí)行擴(kuò)展的技術(shù)(例如,日本特開專利公布第2006-107466號)。例如,當(dāng)預(yù)定應(yīng)用合并多個數(shù)據(jù)源時,映射每個數(shù)據(jù)源中的字段。具體地,提取第一數(shù)據(jù)源作為初始數(shù)據(jù)源,使得所提取的數(shù)據(jù)源隨后的每個數(shù)據(jù)源的字段與初始數(shù)據(jù)源的字段相關(guān)聯(lián),并且添加隨后的數(shù)據(jù)源中的未包括在初始數(shù)據(jù)源中的字段。將從每個輸入數(shù)據(jù)源映射的字段特別地添加在綱要中。
[0004]然而,在對綱要執(zhí)行擴(kuò)展的技術(shù)中,存在下述問題:當(dāng)不期望的項(xiàng)被添加至綱要時,該不期望的項(xiàng)未被識別。即,通過綱要擴(kuò)展添加至綱要的項(xiàng)是在沒有檢查項(xiàng)名稱、數(shù)據(jù)類型等的情況下添加的。因此,例如,可能通過犯了項(xiàng)名稱的拼寫錯誤而添加不期望的項(xiàng)。因此,在傳統(tǒng)的預(yù)定應(yīng)用中,不可能確定所添加的項(xiàng)是期望的項(xiàng)還是不期望的項(xiàng)。
[0005]因此,這是本發(fā)明的實(shí)施例的一個方面要提供的目的。在一方面,目的是即使在通過綱要擴(kuò)展將不期望的項(xiàng)添加至綱要時也能夠識別不期望的項(xiàng)。
【發(fā)明內(nèi)容】
[0006]根據(jù)實(shí)施例的一方面,由計算機(jī)執(zhí)行數(shù)據(jù)管理方法。該方法包括:當(dāng)接受到對數(shù)據(jù)庫的更新請求時,確定在更新請求中指定的項(xiàng)是否包括在數(shù)據(jù)庫具有的多個項(xiàng)中,多個項(xiàng)中的每個項(xiàng)均具有項(xiàng)屬性數(shù)據(jù)。該方法包括:當(dāng)所指定的項(xiàng)未包括在多個項(xiàng)中時,將所指定的項(xiàng)添加至多個項(xiàng)。該方法包括:將所指定的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記設(shè)置成不同于第一狀態(tài)的第二狀態(tài),該第一狀態(tài)被設(shè)置給被準(zhǔn)許作為數(shù)據(jù)庫的項(xiàng)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記。
【專利附圖】
【附圖說明】
[0007]圖1是根據(jù)實(shí)施例的數(shù)據(jù)管理設(shè)備的框圖;
[0008]圖2A是示出了根據(jù)實(shí)施例的表定義的數(shù)據(jù)配置的示例的圖;
[0009]圖2B是示出了根據(jù)實(shí)施例的表定義的示例的圖;
[0010]圖3A是示出了根據(jù)實(shí)施例的屬性定義的數(shù)據(jù)配置的示例的圖;
[0011]圖3B是示出了根據(jù)實(shí)施例的屬性定義的示例的圖;
[0012]圖4是當(dāng)接受到數(shù)據(jù)添加/更新請求時所執(zhí)行的處理的流程圖;
[0013]圖5是當(dāng)接受到綱要參考(reference)請求時所執(zhí)行的處理的流程圖;
[0014]圖6是當(dāng)接受到對聲明標(biāo)記的改變請求時所執(zhí)行的處理的流程圖;以及
[0015]圖7是示出了執(zhí)行數(shù)據(jù)管理程序的計算機(jī)的示例的圖。
【具體實(shí)施方式】
[0016]將參考附圖闡述本發(fā)明的優(yōu)選實(shí)施例。本發(fā)明不限于實(shí)施例。
[0017]數(shù)據(jù)管理設(shè)備的配置
[0018]圖1是根據(jù)實(shí)施例的數(shù)據(jù)管理設(shè)備的框圖。如圖1中所示,數(shù)據(jù)管理設(shè)備I包括控制單元10和存儲單元20。數(shù)據(jù)管理設(shè)備I管理數(shù)據(jù)庫。當(dāng)要將數(shù)據(jù)添加至數(shù)據(jù)庫中未定義的項(xiàng)時,除了將未定義的項(xiàng)添加至綱要之外,數(shù)據(jù)管理設(shè)備I將新給予綱要的聲明標(biāo)記設(shè)置成指示未聲明(未定義)項(xiàng)的標(biāo)識數(shù)據(jù)(例如,“假”),從而執(zhí)行綱要擴(kuò)展。另一方面,針對在綱要中已經(jīng)定義的項(xiàng),將該項(xiàng)的聲明標(biāo)記設(shè)置成指示已聲明(已定義)項(xiàng)的標(biāo)識數(shù)據(jù)(例如,“真”)。在實(shí)施例中,假設(shè)數(shù)據(jù)庫(DB)是在具有綱要的全綱要DB和不具有綱要的無綱要DB 二者均存在的條件下運(yùn)行的混合DB。即,在根據(jù)實(shí)施例的數(shù)據(jù)庫中,在綱要中定義了假設(shè)被給予構(gòu)成表的項(xiàng)的共同屬性的同時,在綱要中特別定義了一些項(xiàng)的屬性。聲明標(biāo)記是定義設(shè)置標(biāo)記的示例。
[0019]控制單元10包括存儲確定各種處理過程的程序和控制數(shù)據(jù)的內(nèi)部存儲器,并且基于此執(zhí)行各種處理??刂茊卧?0與諸如專用集成電路(ASIC)和現(xiàn)場可編程門陣列(FPGA)的集成電路的電子電路相對應(yīng)。此外,控制單元10與諸如中央處理單元(CPU)和微處理單元(MPU)的電子電路相對應(yīng)。此外,控制單元10包括請求/響應(yīng)單元11、綱要檢查單元12、數(shù)據(jù)添加/更新單元13、綱要擴(kuò)展單元14及綱要管理單元15。綱要管理單元15包括綱要參考單元16和綱要定義改變單元17。
[0020]存儲單元20與例如作為非易失性半導(dǎo)體存儲器裝置(諸如閃存和鐵電隨機(jī)存取存儲器(FRAM))的存儲裝置相對應(yīng)。此外,存儲單元20也可以與例如應(yīng)用易失性半導(dǎo)體存儲器裝置(諸如隨機(jī)存取存儲器(RAM))的存儲裝置相對應(yīng)。在這種情況中,存儲單元20可以被配置成從諸如非易失性半導(dǎo)體存儲器裝置的存儲裝置中下載數(shù)據(jù)。存儲單元20包括數(shù)據(jù)存儲單元21和綱要定義22。數(shù)據(jù)存儲單元21存儲基于一個或更多個項(xiàng)的每個屬性而存儲的數(shù)據(jù)。例如,多個表存儲在數(shù)據(jù)存儲單元21中,并且在每個表中,針對由隨后描述的綱要定義22定義的一個或更多個項(xiàng)中的每個項(xiàng)而存儲值(數(shù)據(jù))。綱要定義22定義項(xiàng)的每個屬性。綱要定義22包括表定義221和屬性定義222。
[0021]參考圖2A和圖2B闡述表定義221的數(shù)據(jù)配置。圖2A是示出了根據(jù)實(shí)施例的表定義的數(shù)據(jù)配置的示例的圖。圖2B是示出了根據(jù)實(shí)施例的表定義的示例的圖。
[0022]如圖2A中所示,表定義221包括作為屬性的表標(biāo)識(ID) 221a和表名稱221b。表ID 221a是用于表管理的唯一 ID。在此示例中,表明了表ID 221a是主鍵(primary key)。表名稱221b是表的名稱。
[0023]如圖2B中所示,表定義221與表ID 221a相關(guān)聯(lián)地存儲表名稱221b。作為示例,當(dāng)表ID 221a是“I”時,將“產(chǎn)品”存儲為表名稱221b。當(dāng)表ID 221a是“2”時,將“訂單”存儲為表名稱221b。
[0024]此外,參考圖3A和圖3B闡述屬性定義222的數(shù)據(jù)配置。圖3A是示出了根據(jù)實(shí)施例的屬性定義的數(shù)據(jù)配置的示例的圖。圖3B是示出了根據(jù)實(shí)施例的屬性定義的示例的圖。
[0025]如圖3A中所示,屬性定義222包括作為屬性的表ID 222a、屬性ID222b、屬性名稱222c、屬性類型222d及聲明標(biāo)記222e。表ID 222a是用于表管理的唯一 ID。屬性ID 222b是唯一地指示與表ID222a相對應(yīng)的表中的項(xiàng)(屬性名稱)的ID。屬性名稱222c是屬性的名稱。注意,要被設(shè)置成屬性名稱222c的屬性名稱與表中的項(xiàng)相對應(yīng)。屬性類型222d是屬性的數(shù)據(jù)類型。例如,當(dāng)屬性數(shù)據(jù)是數(shù)字時,指示類型是數(shù)字的“數(shù)字”被設(shè)置給屬性類型222d。當(dāng)屬性數(shù)據(jù)是字符串時,指示類型是字符串的“字符串”被設(shè)置給屬性類型222d。對于屬性類型222d,如果屬性數(shù)據(jù)是標(biāo)記,則可以設(shè)置指示真(例如,O)或假(例如,I)的“真/假值”。
[0026]聲明標(biāo)記222e是指示是否已經(jīng)聲明(定義)了屬性的真/假值。例如,當(dāng)屬性已經(jīng)被聲明時,指示其已經(jīng)被聲明的“真”被設(shè)置給聲明標(biāo)記222e。當(dāng)屬性未被聲明時,指示其未被聲明的“假”被設(shè)置給聲明標(biāo)記222e。即,當(dāng)要添加數(shù)據(jù)的項(xiàng)未定義在屬性定義222的屬性名稱222c中時,除了將該項(xiàng)添加至屬性定義222的屬性名稱222c之外,隨后要描述的綱要擴(kuò)展單元14將聲明標(biāo)記222e設(shè)置成“假”,并且執(zhí)行綱要擴(kuò)展。
[0027]如圖3B中所示,屬性定義222彼此相關(guān)聯(lián)地存儲表ID 222a、屬性ID 222b、屬性名稱222c、屬性類型222d及聲明標(biāo)記222e。作為示例,當(dāng)表ID 222a是“I”并且屬性ID222b是“I”時,“產(chǎn)品ID”被存儲為屬性名稱222c,“數(shù)字”被存儲為屬性類型222d,并且“真”被存儲為聲明標(biāo)記222e。此外,當(dāng)表ID 222a是“I”并且屬性ID 222b是“4”時,“部門代碼”被存儲作為屬性名稱222c,“數(shù)字”被存儲為屬性類型222d,并且“假”被存儲為聲明標(biāo)記222e。即,當(dāng)要添加數(shù)據(jù)的項(xiàng)是“部門代碼”時,因?yàn)椤安块T代碼”未在屬性定義222的屬性名稱222c中定義,所以聲明標(biāo)記222e被設(shè)置成“假”。即,與“部門代碼”相對應(yīng)的屬性是針對其執(zhí)行了綱要擴(kuò)展的屬性。
[0028]返回參考圖1,請求/響應(yīng)單元11接受對數(shù)據(jù)庫的預(yù)定請求,并且分發(fā)所接受的請求。此外,請求/響應(yīng)單元11將針對請求的處理結(jié)果作為響應(yīng)發(fā)送至請求方。請求/響應(yīng)單元11可以從布置在數(shù)據(jù)管理設(shè)備I外部的外部裝置接收預(yù)定請求,或者可以從數(shù)據(jù)管理設(shè)備I內(nèi)部的另一控制單元接收預(yù)定請求。
[0029]作為示例,當(dāng)接受到對數(shù)據(jù)庫的添加請求或更新請求時,請求/響應(yīng)單元11將所接受的請求分發(fā)給綱要檢查單元12。此時,請求/響應(yīng)單元11接受例如包括要添加數(shù)據(jù)的表的表名稱、要添加數(shù)據(jù)的項(xiàng)名稱以及數(shù)據(jù)的請求作為添加請求。請求/響應(yīng)單元11接受例如包括更新數(shù)據(jù)的表名稱、更新數(shù)據(jù)的項(xiàng)名稱及數(shù)據(jù)的請求作為更新請求。
[0030]作為另一示例,當(dāng)接受到對數(shù)據(jù)庫的綱要的參考請求時,請求/響應(yīng)單元11將所接受的參考請求分發(fā)給綱要參考單元16。此時,請求/響應(yīng)單元11接受例如包括期望參考的表的表名稱和參考方式的請求作為參考請求。此處的參考方式是指示是否參考與聲明標(biāo)記被設(shè)置成“假”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)的方式。指示不參考與聲明標(biāo)記被設(shè)置成“假”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)的方式是“普通參考方式”。指示還參考與聲明標(biāo)記被設(shè)置成“假”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)的方式是“擴(kuò)展參考方式”。作為示例,當(dāng)還參考與聲明標(biāo)記被設(shè)置成“假”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)時,與“擴(kuò)展參考方式”相對應(yīng)的標(biāo)識數(shù)據(jù)被設(shè)置為參考方式。此外,請求/響應(yīng)單元11將對參考請求的參考結(jié)果作為響應(yīng)發(fā)送至請求方。
[0031]作為另一示例,當(dāng)接受到對聲明標(biāo)記的改變請求時,請求/響應(yīng)單元11將所接受的改變請求分發(fā)給綱要定義改變單元17。此時,請求/響應(yīng)單元11接受例如包括具有與要改變其聲明標(biāo)記的屬性名稱相對應(yīng)的項(xiàng)的表的表名稱、屬性名稱及改變的內(nèi)容的請求作為對聲明標(biāo)記的改變請求。對于改變的內(nèi)容,例如,當(dāng)從“假”改變到“真”時設(shè)置“真”。
[0032]綱要檢查單元12基于綱要定義22對關(guān)于數(shù)據(jù)庫的添加請求或更新請求執(zhí)行綱要檢查。在下面,闡述對更新請求執(zhí)行的綱要檢查的示例。因?yàn)轭愃频貓?zhí)行對添加請求執(zhí)行的綱要檢查,所述省略其描述。
[0033]例如,綱要檢查單元12確定在更新請求中所指定的項(xiàng)是否被包括作為存儲在屬性定義222中的項(xiàng)(屬性名稱)當(dāng)中的項(xiàng)。當(dāng)確定所指定的項(xiàng)沒有被包括作為存儲在屬性定義222中的項(xiàng)(屬性名稱)當(dāng)中的項(xiàng)時,綱要檢查單元12使綱要擴(kuò)展單元14擴(kuò)展綱要。
[0034]此外,當(dāng)確定所指定的項(xiàng)被包括作為存儲在屬性定義222中的項(xiàng)(屬性名稱)當(dāng)中的項(xiàng)時,綱要檢查單元12基于屬性定義222確定所指定的項(xiàng)的數(shù)據(jù)是否與屬性類型222d中設(shè)置的類型相兼容。當(dāng)確定所指定的項(xiàng)的數(shù)據(jù)與屬性類型222d中設(shè)置的類型相兼容時,綱要檢查單元12使數(shù)據(jù)添加/更新單元13添加或更新數(shù)據(jù)。此外,當(dāng)確定所指定的項(xiàng)的數(shù)據(jù)與屬性類型222d中設(shè)置的類型不兼容時,綱要擴(kuò)展單元14通知請求/響應(yīng)單元11存在異常。雖然已經(jīng)闡述了綱要檢查單元12確定項(xiàng)的數(shù)據(jù)是否與類型不兼容,但是不限于此,并且綱要檢查單元12可以確定是否存在約束違反,例如數(shù)據(jù)不為空。
[0035]綱要擴(kuò)展單元14將在更新請求中指定的項(xiàng)添加至屬性定義222的屬性名稱222c。此外,綱要擴(kuò)展單元14將與添加的屬性名稱222c相對應(yīng)的聲明標(biāo)記222e設(shè)置成“假”。即,綱要擴(kuò)展單元14將與添加至屬性定義222的屬性名稱222c相對應(yīng)的聲明標(biāo)記222e設(shè)置成指示未準(zhǔn)許的“假”。此外,綱要擴(kuò)展單元14基于所指定的項(xiàng)的數(shù)據(jù)而設(shè)置屬性類型222d。作為示例,當(dāng)所指定的項(xiàng)的數(shù)據(jù)是“123”時,屬性類型222d被設(shè)置成“數(shù)字”。當(dāng)所指定的項(xiàng)的數(shù)據(jù)是“a-1-u”時,屬性類型222d被設(shè)置成“字符串”。當(dāng)所指定的項(xiàng)的數(shù)據(jù)是“真”或“假”時,屬性類型222d被設(shè)置成“真/假值”。這樣,綱要擴(kuò)展單元14將在更新請求中指定的未定義項(xiàng)作為未定義項(xiàng)特別地添加至屬性定義222以擴(kuò)展綱要。
[0036]數(shù)據(jù)添加/更新單元13將在更新請求中指定的項(xiàng)的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元21中。此外,數(shù)據(jù)添加/更新單元13將在添加請求中指定的項(xiàng)的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元21中。
[0037]綱要參考單元16根據(jù)包括在參考請求中的參考方式,針對對數(shù)據(jù)庫的綱要定義22的參考請求,參考存儲在屬性定義222中的內(nèi)容。例如,綱要參考單元16確定包括在參考請求中的參考方式是否是“擴(kuò)展參考方式”。當(dāng)確定參考方式是“擴(kuò)展參考方式”時,綱要參考單元16除了參考與屬性定義222的聲明標(biāo)記222e為“真”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)之外,還參考與聲明標(biāo)記222e為“假”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)。此外,當(dāng)確定參考方式是“普通參考方式”時,綱要參考單元16參考與屬性定義222的聲明標(biāo)記222e為“真”的屬性名稱相對應(yīng)的屬性數(shù)據(jù)。作為示例,要參考的屬性數(shù)據(jù)包括所請求的表的表ID222a、屬性ID 222b、屬性名稱222c、屬性類型222d及聲明標(biāo)記222e。因此,綱要參考單元16可以關(guān)于在表中設(shè)置了什么種類的未被聲明的未定義項(xiàng)進(jìn)行參考。此外,綱要參考單元16可以通過參考未被聲明的未定義項(xiàng)來識別不期望的項(xiàng)。
[0038]綱要定義改變單元17針對對聲明標(biāo)記222e的改變請求,根據(jù)改變請求將當(dāng)前設(shè)置的狀態(tài)改變成不同于當(dāng)前設(shè)置的狀態(tài)的狀態(tài)。例如,綱要定義改變單元17確定改變請求中指示的改變的內(nèi)容是否為“真”。當(dāng)確定改變的內(nèi)容為“真”時,綱要定義改變單元17將與存儲在屬性定義222中的表的屬性名稱相對應(yīng)的聲明標(biāo)記222e從“假”改變成“真”。BP,綱要定義改變單元17將未聲明的未定義項(xiàng)改變成已聲明的項(xiàng)。此外,當(dāng)確定改變的內(nèi)容為“假”時,綱要定義改變單元17將與存儲在屬性定義222中的表的屬性名稱相對應(yīng)的聲明標(biāo)記222e從“真”改變成“假”。即,綱要定義改變單元17將已聲明的項(xiàng)改變成未聲明的未定義項(xiàng)。這樣,綱要定義改變單元17可以僅通過操縱標(biāo)記而將未聲明的未定義項(xiàng)改變成已聲明的項(xiàng),而不改變數(shù)據(jù)存儲單元21中的數(shù)據(jù)。
[0039]當(dāng)接受到數(shù)據(jù)添加/更新請求時的處理的流程圖
[0040]接下來,參考圖4,闡述在接受到數(shù)據(jù)添加/更新請求時所執(zhí)行的處理的過程。圖4是當(dāng)接受到數(shù)據(jù)添加/更新請求時所執(zhí)行的處理的流程圖。在圖4中示出的示例中,闡述了請求/響應(yīng)單元11接受到對數(shù)據(jù)的更新請求的情況。
[0041]如圖4中所示,請求/響應(yīng)單元11接受對數(shù)據(jù)的更新請求(步驟Sll)。例如,請求/響應(yīng)單元11接受包括要更新數(shù)據(jù)的表的表名稱、要更新數(shù)據(jù)的項(xiàng)的項(xiàng)名稱以及數(shù)據(jù)的更新請求。然后請求/響應(yīng)單元11將更新請求分發(fā)至綱要檢查單元12。
[0042]綱要檢查單元12針對在更新請求中指定的項(xiàng)來檢查綱要數(shù)據(jù)(步驟S12),并且確定未定義的項(xiàng)(屬性)是否包括在這些項(xiàng)中(步驟S13)。例如,綱要檢查單元12確定在更新請求中指定的項(xiàng)是否未包括在存儲在屬性定義222中的項(xiàng)(屬性名稱)中。
[0043]當(dāng)確定包括未定義的項(xiàng)(步驟S13:是)時,綱要擴(kuò)展單元14將所有未定義的項(xiàng)添加至屬性定義222。此時,綱要擴(kuò)展單元14針對所有未定義的項(xiàng)將屬性定義222的聲明標(biāo)記222e設(shè)置為“假”(步驟S14)。例如,綱要擴(kuò)展單元14將未定義的項(xiàng)的項(xiàng)名稱添加至屬性定義222的屬性名稱222c。此外,綱要擴(kuò)展單元14將與添加的屬性名稱222c相對應(yīng)的聲明標(biāo)記222e設(shè)置為“假”。即,針對所添加的屬性名稱,設(shè)置表示未聲明的未定義屬性的“假”。此外,綱要擴(kuò)展單元14基于未定義項(xiàng)的數(shù)據(jù)設(shè)置與所添加的屬性名稱222c相對應(yīng)的屬性類型222d。然后綱要擴(kuò)展單元14進(jìn)行至步驟S15。
[0044]另一方面,當(dāng)確定不包括未定義的項(xiàng)(步驟S13:否)時,綱要檢查單元12針對所有已定義的指定項(xiàng),基于屬性定義222確定項(xiàng)的數(shù)據(jù)的類型是否是不兼容的類型(步驟S15)。當(dāng)針對所有已定義的項(xiàng)確定項(xiàng)的數(shù)據(jù)的類型不是不兼容類型(步驟S15:是)時,數(shù)據(jù)添加/更新單元13執(zhí)行數(shù)據(jù)添加/更新處理(步驟S16)。S卩,數(shù)據(jù)添加/更新單元13將在更新請求中指定的項(xiàng)的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元21中。
[0045]另一方面,當(dāng)對于已定義的項(xiàng)中的任一個確定項(xiàng)的數(shù)據(jù)的類型為不兼容(步驟S15:否)時,綱要檢查單元12將錯誤通知給請求/響應(yīng)單元11以發(fā)送錯誤響應(yīng)(步驟S17)。
[0046]綱要檢查單元12可以針對已定義的所有指定項(xiàng)確定項(xiàng)的數(shù)據(jù)是否引起約束違反。在這種情況中,除了表ID 222a、屬性ID 222b、屬性名稱222c、屬性類型222d及聲明標(biāo)記222e之外,還將屬性的約束添加至屬性定義222。綱要檢查單元12可以針對已定義的所有指定項(xiàng)確定項(xiàng)的數(shù)據(jù)是否未引起約束違反。
[0047]當(dāng)接受到綱要參考請求時的處理的流程圖
[0048]接下來,參考圖5,闡述在接受到綱要參考請求時執(zhí)行的處理的過程。圖5是當(dāng)接受到綱要參考請求時所執(zhí)行的處理的流程圖。
[0049]如圖5所述,請求/響應(yīng)單元11接受綱要參考請求(步驟S21)。例如,請求/響應(yīng)單元11接受包括期望參考的表的表名稱及參考方式的綱要參考請求。然后請求/響應(yīng)單元11將綱要參考請求分發(fā)至綱要參考單元16。
[0050]綱要參考單元16確定參考方式是否是指示擴(kuò)展參考的“擴(kuò)展參考方式”(步驟S22)。當(dāng)確定是擴(kuò)展參考方式(步驟S22:是)時,綱要參考單元16從屬性定義222中讀取包括聲明標(biāo)記為“假”的屬性數(shù)據(jù)的屬性數(shù)據(jù)(步驟S23)。例如,除了聲明標(biāo)記為“真”的屬性數(shù)據(jù)之外,綱要參考單元16還從屬性定義222中讀取與在參考請求中指定的表相對應(yīng)的、聲明標(biāo)記為“假”的屬性數(shù)據(jù)。然后綱要參考單元16進(jìn)行至步驟S25。
[0051]另一方面,當(dāng)確定不是擴(kuò)展參考方式(步驟S22:否)時,綱要參考單元16從屬性定義222中讀取不包括聲明標(biāo)記為“假”的屬性數(shù)據(jù)的屬性數(shù)據(jù)(步驟S24)。例如,綱要參考單元16從屬性定義222中讀取與在參考請求中指定的表相對應(yīng)的、聲明標(biāo)記為“真”的屬性數(shù)據(jù)。然后綱要參考單元16進(jìn)行至步驟S25。
[0052]在步驟S25,綱要參考單元16通過請求/響應(yīng)單元將所讀取的屬性數(shù)據(jù)發(fā)送回到請求方(步驟S25)。例如,綱要參考單元16將表ID 222a、屬性ID 222b、屬性名稱222c、屬性類型222d及聲明標(biāo)記222e作為屬性數(shù)據(jù)發(fā)送回到請求方。
[0053]此后,可以在請求方編輯所接收的屬性數(shù)據(jù),并且例如,屬性名稱222c、屬性類型222d和聲明標(biāo)記222e可以顯示在屏幕上。因此,即使在通過綱要擴(kuò)展將不期望的項(xiàng)添加至綱要時,請求方也可以識別不期望的項(xiàng)。
[0054]在接受到對聲明標(biāo)記的改變請求時的處理的流程圖
[0055]接下來,參考圖6,闡述在接受到對聲明標(biāo)記的改變請求時所執(zhí)行的處理的過程。圖6是在接受到對聲明標(biāo)記的改變請求時所執(zhí)行的處理的流程圖。
[0056]如圖6所示,請求/響應(yīng)單元11接受對聲明標(biāo)記的改變請求(步驟S31)。例如,請求/響應(yīng)單元11接受包括具有與要改變其聲明標(biāo)記的屬性名稱相對應(yīng)的項(xiàng)的表的表名稱、屬性名稱及改變的內(nèi)容的改變請求。然后請求/響應(yīng)單元11將改變請求分發(fā)至綱要定義改變單元17。
[0057]綱要定義改變單元17確定改變的內(nèi)容是否為“真”(步驟S32)。當(dāng)確定改變的內(nèi)容為“真”(步驟S32:是)時,綱要定義改變單元17將與屬性定義222中的屬性名稱相對應(yīng)的聲明標(biāo)記222e從“假”改變成“真”(步驟S33)。然后綱要定義改變單元17結(jié)束處理。
[0058]另一方面,當(dāng)確定改變的內(nèi)容不是“真”(步驟S32:否)時,綱要定義改變單元17將與屬性定義222中的屬性名稱相對應(yīng)的聲明標(biāo)記222e從“真”改變成“假”(步驟S34)。然后綱要定義改變單元17結(jié)束處理。
[0059]這樣,綱要定義改變單元17可以僅通過操縱標(biāo)記來將未被聲明的未定義項(xiàng)改變成已定義的項(xiàng),而不改變數(shù)據(jù)存儲單元21中的數(shù)據(jù)。
[0060]闡述了請求/響應(yīng)單元11從在外部布置在數(shù)據(jù)管理設(shè)備I外部的裝置接收預(yù)定請求作為示例。在這種情況下,請求/響應(yīng)單元11可以通過網(wǎng)絡(luò)從通信終端接收請求。例如,請求/響應(yīng)單元11接受從通信終端發(fā)送的對數(shù)據(jù)庫的更新請求,并且將所接受的更新請求分發(fā)至綱要檢查單元12。隨后,當(dāng)綱要檢查單元12確定在更新請求中指定的項(xiàng)(例如,部門代碼)未存儲在屬性定義222中時,綱要擴(kuò)展單元14將該項(xiàng)添加至屬性定義222的屬性名稱222c,并且將聲明標(biāo)記設(shè)置成“假”。這樣,通信終端可以根據(jù)需要將新的項(xiàng)添加至數(shù)據(jù)庫。此外,請求/響應(yīng)單元11接受從同一通信終端發(fā)送的擴(kuò)展參考方式中的參考請求,并且將所接受的參考請求分發(fā)至綱要參考單元16。綱要參考單元16基于參考請求參考與其聲明標(biāo)記222e為“真”和“假”的項(xiàng)相對應(yīng)的屬性數(shù)據(jù),并且將參考結(jié)果通知給請求方的通信終端。這樣,通信終端可以使用參考結(jié)果來區(qū)分“假”的項(xiàng)和“真”的項(xiàng)以執(zhí)行一些應(yīng)用程序。請求/響應(yīng)單元11還接受從同一通信終端發(fā)送的用于改變“部門代碼”的聲明標(biāo)記222e的更新請求,并且將所接受的改變請求分發(fā)至綱要定義改變單元17。然后綱要定義改變單元17將“部門代碼”的聲明標(biāo)記222e從“假”改變成“真”。因此,在作為執(zhí)行應(yīng)用的結(jié)果確定了 “部門代碼”是可用項(xiàng)的情況下,通信終端可以正式地定義“部門代碼”。此外,通信終端可以遠(yuǎn)程地管理數(shù)據(jù)庫。
[0061]實(shí)施例的效果
[0062]根據(jù)上面所描述的實(shí)施例,當(dāng)接受到對數(shù)據(jù)庫的更新請求時,數(shù)據(jù)管理設(shè)備I確定在更新請求中指定的項(xiàng)是否被包括作為存儲在屬性定義222中存儲的項(xiàng)當(dāng)中的項(xiàng)。當(dāng)確定所指定的項(xiàng)未被包括作為這些項(xiàng)當(dāng)中的項(xiàng)時,數(shù)據(jù)管理設(shè)備I將指定的項(xiàng)添加至屬性定義222。然后數(shù)據(jù)管理設(shè)備I將包括在屬性定義222中的聲明標(biāo)記222e設(shè)置成不同于第一狀態(tài)的第二狀態(tài),第一狀態(tài)是針對與被準(zhǔn)許作為數(shù)據(jù)庫的項(xiàng)的項(xiàng)相對應(yīng)的聲明標(biāo)記222e而設(shè)置的。根據(jù)此配置,即使所指定的項(xiàng)未包括在屬性定義222中,數(shù)據(jù)管理設(shè)備I也將該項(xiàng)添加至屬性定義222并且將聲明標(biāo)記222e設(shè)置成不同于所準(zhǔn)許的項(xiàng)的狀態(tài)的狀態(tài),因此可以區(qū)分已準(zhǔn)許的項(xiàng)和所添加的項(xiàng)。因此,即使指定的項(xiàng)是不期望的項(xiàng),數(shù)據(jù)管理設(shè)備I也可以識別該項(xiàng)。
[0063]此外,根據(jù)上面所描述的實(shí)施例,當(dāng)接受到對屬性定義222的參考請求時,數(shù)據(jù)管理設(shè)備I執(zhí)行下面的處理。即,當(dāng)處于用于參考包括其聲明標(biāo)記222e為第二狀態(tài)的項(xiàng)的項(xiàng)的參考綱要中時,數(shù)據(jù)管理設(shè)備I除了輸出第一狀態(tài)的項(xiàng)的屬性數(shù)據(jù)之外,還輸出第二狀態(tài)的項(xiàng)的屬性數(shù)據(jù)。根據(jù)此配置,即使對不期望的項(xiàng)做出更新請求,數(shù)據(jù)管理設(shè)備I也可以通過參考第二狀態(tài)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)來識別不期望的項(xiàng)。
[0064]此外,根據(jù)上面所描述的實(shí)施例,當(dāng)接受到對預(yù)定項(xiàng)的聲明標(biāo)記222e的改變請求時,數(shù)據(jù)管理設(shè)備I將設(shè)置狀態(tài)改變成不同于設(shè)置狀態(tài)的狀態(tài)。根據(jù)此配置,因?yàn)閿?shù)據(jù)管理設(shè)備I根據(jù)對預(yù)定項(xiàng)的聲明標(biāo)記222e的改變請求而改變設(shè)置狀態(tài),所以可以根據(jù)所改變的狀態(tài)輕易地改變與預(yù)定項(xiàng)相關(guān)聯(lián)的數(shù)據(jù)。作為示例,如果預(yù)定項(xiàng)的聲明標(biāo)記222e從第二狀態(tài)改變成第一狀態(tài),則數(shù)據(jù)管理設(shè)備I可以輕易地將與預(yù)定項(xiàng)相關(guān)聯(lián)的數(shù)據(jù)改變成準(zhǔn)許的數(shù)據(jù)。即,數(shù)據(jù)管理設(shè)備I可以在不改變數(shù)據(jù)的情況下僅通過操縱標(biāo)記將未聲明的項(xiàng)改變成聲明的(準(zhǔn)許的)項(xiàng)。作為另一示例,如果預(yù)定項(xiàng)的聲明標(biāo)記222e從第一狀態(tài)改變成第二狀態(tài),則數(shù)據(jù)管理設(shè)備I可以輕易地將與預(yù)定項(xiàng)相關(guān)聯(lián)的數(shù)據(jù)改變成未準(zhǔn)許的數(shù)據(jù)。即,數(shù)據(jù)管理設(shè)備I可以在不改變數(shù)據(jù)的情況下僅通過操縱標(biāo)記將已聲明的項(xiàng)改變成未聲明的項(xiàng)。
[0065]其他
[0066]可以通過將各個功能(諸如綱要檢查單元12、綱要擴(kuò)展單元14、綱要參考單元16及綱要定義改變單元17)安裝至諸如公知的個人計算機(jī)和工作站的裝置來實(shí)現(xiàn)數(shù)據(jù)管理設(shè)備I。
[0067]設(shè)備的各個示出的配置元件不是必須如所示出的那樣物理地配置。即,設(shè)備的分布/集成的具體形式不限于所示出的形式,并且設(shè)備的全部或部分可以根據(jù)各種負(fù)載、使用條件等而在功能上或物理地分布/集成在任意單元中。例如,綱要檢查單元12、數(shù)據(jù)添加/更新單元13和綱要擴(kuò)展單元14可以集成為一個單元。另一方面,請求/響應(yīng)單元11可以分成請求單元和響應(yīng)單元。數(shù)據(jù)添加/更新單元13可以分成數(shù)據(jù)添加單元和數(shù)據(jù)更新單元。此外,存儲單元20可以作為數(shù)據(jù)管理設(shè)備I的外部裝置而被布置成通過網(wǎng)絡(luò)來連接。
[0068]此外,可以通過在諸如個人計算機(jī)和工作站的計算機(jī)上執(zhí)行預(yù)先準(zhǔn)備的程序來實(shí)現(xiàn)上面的實(shí)施例中闡述的各種處理。因此,闡述了執(zhí)行實(shí)現(xiàn)與圖1中示出的數(shù)據(jù)管理設(shè)備I類似的功能的數(shù)據(jù)管理程序的計算機(jī)的示例。圖7是示出了執(zhí)行數(shù)據(jù)管理程序的計算機(jī)的示例的圖。
[0069]如圖7中所示,計算機(jī)200包括執(zhí)行各種算術(shù)處理的CPU 203、接受由用戶輸入的數(shù)據(jù)的輸入裝置215以及控制顯示裝置209的顯示控制單元207。此外,計算機(jī)200包括從記錄介質(zhì)讀取程序等的驅(qū)動裝置213以及通過網(wǎng)絡(luò)與其他計算機(jī)傳輸數(shù)據(jù)的通信控制單元217。此外,計算機(jī)200包括暫時地存儲各種數(shù)據(jù)的存儲器201以及硬盤驅(qū)動器(HDD) 205。存儲器201、CPU 203、HDD 205、顯示控制單元207、驅(qū)動裝置213、輸入裝置215及通信控制單元217通過總線219連接。
[0070]例如,驅(qū)動裝置213是用于可拆卸盤211的裝置。HDD 205存儲數(shù)據(jù)管理程序205a和數(shù)據(jù)管理數(shù)據(jù)205b。
[0071]CPU 203讀取數(shù)據(jù)管理程序205a以在存儲器201上展開,并且作為處理來執(zhí)行。該處理與數(shù)據(jù)管理設(shè)備I的各種功能相對應(yīng)。數(shù)據(jù)管理數(shù)據(jù)205b與數(shù)據(jù)存儲單元21和綱要定義22相對應(yīng)。例如,可拆卸盤211存儲各種數(shù)據(jù)(諸如數(shù)據(jù)管理程序205a)。
[0072]數(shù)據(jù)管理程序205a不需要從開始就存儲在HDD 205中。例如,程序存儲在諸如軟盤(FD)、光盤-只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、磁光盤及集成電路(IC)卡的“便攜式物理介質(zhì)”中。可以配置以使計算機(jī)200從其讀取數(shù)據(jù)管理程序205a以執(zhí)行程序。
[0073]根據(jù)一個方面,即使在通過綱要擴(kuò)展將不期望的項(xiàng)添加至綱要時,也可以識別不期望的項(xiàng)。
【權(quán)利要求】
1.一種由計算機(jī)執(zhí)行的數(shù)據(jù)管理方法,所述方法包括: 當(dāng)接受到對數(shù)據(jù)庫的更新請求時,確定在所述更新請求中指定的項(xiàng)是否包括在所述數(shù)據(jù)庫具有的多個項(xiàng)中,所述多個項(xiàng)中的每個項(xiàng)均具有項(xiàng)屬性數(shù)據(jù); 當(dāng)所指定的項(xiàng)未包括在所述多個項(xiàng)中時,將所指定的項(xiàng)添加至所述多個項(xiàng);以及 將所指定的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記設(shè)置成不同于第一狀態(tài)的第二狀態(tài),所述第一狀態(tài)被設(shè)置給被準(zhǔn)許作為所述數(shù)據(jù)庫的項(xiàng)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)管理方法,其中,所述方法還包括: 當(dāng)接受到對所述數(shù)據(jù)庫的項(xiàng)屬性數(shù)據(jù)的參考請求時,當(dāng)處于用于參考包括所述定義設(shè)置標(biāo)記為所述第二狀態(tài)的項(xiàng)的項(xiàng)的參考綱要中時,除了輸出所述第一狀態(tài)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)之外,還輸出所述第二狀態(tài)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)管理方法,其中,所述方法還包括: 當(dāng)針對預(yù)定項(xiàng)接受到對所述定義設(shè)置標(biāo)記的改變請求時,根據(jù)所述改變請求將設(shè)置狀態(tài)改變成不同于所述設(shè)置狀態(tài)的狀態(tài)。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)管理方法,其中,所述改變包括:當(dāng)針對所述預(yù)定項(xiàng)接受到將所述定義設(shè)置標(biāo)記改變成所述第一狀態(tài)的改變請求時,將已設(shè)置的所述第二狀態(tài)改變成所述第一狀態(tài)。
5.根據(jù)權(quán)利要求3所述的數(shù)據(jù)管理方法,其中,所述改變包括:當(dāng)針對所述預(yù)定項(xiàng)接受到將所述定義設(shè)置標(biāo)記改變成所述第二狀態(tài)的改變請求時,將已設(shè)置的所述第一狀態(tài)改變成所述第二狀態(tài)。
6.一種數(shù)據(jù)管理設(shè)備,包括: 數(shù)據(jù)庫,所述數(shù)據(jù)庫具有多個項(xiàng),所述多個項(xiàng)中的每個項(xiàng)均具有項(xiàng)屬性數(shù)據(jù); 確定單元,當(dāng)接受到對所述數(shù)據(jù)庫的更新請求時,所述確定單元確定在所述更新請求中指定的項(xiàng)是否包括在所述多個項(xiàng)中; 添加單元,當(dāng)所指定的項(xiàng)未包括在所述多個項(xiàng)中時,所述添加單元將所指定的項(xiàng)添加至所述多個項(xiàng);以及 設(shè)置單元,所述設(shè)置單元將所指定的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記設(shè)置成不同于第一狀態(tài)的第二狀態(tài),所述第一狀態(tài)被設(shè)置給被準(zhǔn)許作為所述數(shù)據(jù)庫的項(xiàng)的項(xiàng)的項(xiàng)屬性數(shù)據(jù)中包括的定義設(shè)置標(biāo)記。
【文檔編號】G06F17/30GK104298698SQ201410294768
【公開日】2015年1月21日 申請日期:2014年6月26日 優(yōu)先權(quán)日:2013年7月19日
【發(fā)明者】下野曉生, 三好直樹, 藤島一利, 大塚憲 申請人:富士通株式會社