專利名稱::動態(tài)對象儲存系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種動態(tài)對象儲存系統(tǒng)及方法,特別是涉及一種使用于一數(shù)據(jù)庫的動態(tài)對象儲存系統(tǒng)及方法,用以增加預(yù)存于該數(shù)據(jù)庫的多個預(yù)定對象中一預(yù)定對象的一屬性名稱與該屬性名稱所對應(yīng)的一預(yù)定屬性值。
背景技術(shù):
:請參閱圖1,圖1為公知數(shù)據(jù)表10的示意圖。公知數(shù)據(jù)庫常利用一數(shù)據(jù)表10以儲存多個預(yù)定對象。如圖1所示,公知數(shù)據(jù)表10包含有多個屬性名稱字段11以及多個屬性值字段13。所述屬性名稱字段11用以分別記錄多個預(yù)定屬性名稱,例如Name、Age、Phonenumber、ID等。所述屬性值字段13中,每一屬性值字段13用以記錄一個預(yù)定對象在所述預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值。例如數(shù)據(jù)表10中,以“Tony”開頭的第二列所包含的多個屬性值字段13便可以代表一預(yù)定對象15,預(yù)定對象15可以稱為對象“Tony”,而“26”則為對象“Tony”所對應(yīng)的屬性名稱“Age”的一屬性值。請參閱圖2,圖2為公知一數(shù)據(jù)表12增加對象“Tony”的新屬性名稱為“Year”的屬性值“2”的示意圖。在公知技術(shù)中,當(dāng)一數(shù)據(jù)表12增加對象“Tony”的新屬性名稱為“Year”的屬性值“2”之后,在重置數(shù)據(jù)表12中則浪費了屬性值字段14、16的存儲器空間,由此可知,當(dāng)所述預(yù)定對象間的預(yù)定屬性名稱的重復(fù)性愈低,則會浪費更多的存儲器空間。
發(fā)明內(nèi)容因此,本發(fā)明提供一種動態(tài)對象儲存系統(tǒng)及方法,以解決上述問題。為了達到上述目的,本發(fā)明提供一種動態(tài)對象儲存系統(tǒng),該動態(tài)對象儲存系統(tǒng)包含有一數(shù)據(jù)庫及一對象儲存模塊。該數(shù)據(jù)庫包含有一對象數(shù)據(jù)表(objecttable)。該對象數(shù)據(jù)表包含有多個屬性名稱字段(attributenamefields)、多個屬性值字段(attributevaluefields)以及多個動態(tài)屬性值字段(dynamicattributevaluefields)。該對象數(shù)據(jù)表用以預(yù)存多個預(yù)定對象。所述屬性名稱字段用以分別記錄多個預(yù)定屬性名稱(predeterminedattributename)。所述屬性值字段中每一屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象在所述預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值(predeterminedattributevalue)。所述動態(tài)屬性值字段中每一動態(tài)屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象所對應(yīng)的一動態(tài)屬性值。該對象儲存模塊連接于該數(shù)據(jù)庫用以依據(jù)一可延伸標(biāo)記語言(extensiblemarkuplanguage,XML)對所述預(yù)定對象中的一個預(yù)定對象所對應(yīng)的一動態(tài)屬性值執(zhí)行一動態(tài)對象儲存處理。本發(fā)明還提供一種使用于一數(shù)據(jù)庫的動態(tài)對象儲存方法,該數(shù)據(jù)庫包含有一對象數(shù)據(jù)表(objecttable),用以預(yù)存多個預(yù)定對象,該對象數(shù)據(jù)表包含有多個屬性名稱字段(attributenamefields),用以分別記錄多個預(yù)定屬性名稱(predeterminedattributename);多個屬性值字段(attributevaluefields),每一屬性值字段用以記錄多個預(yù)定對象中的一個預(yù)定對象,在所述預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值(predeterminedattributevalue);以及至少一動態(tài)屬性值字段(dynamicattributevaluefields),該動態(tài)屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象所對應(yīng)的一動態(tài)屬性值;該動態(tài)對象儲存方法包含有依據(jù)一可延伸標(biāo)記語言(extensiblemarkuplanguage,XML)對所述預(yù)定對象所對應(yīng)的一動態(tài)屬性值,執(zhí)行一動態(tài)對象儲存處理。通過本發(fā)明所提供的動態(tài)對象儲存系統(tǒng)及方法,數(shù)據(jù)庫管理者可不必再擔(dān)心數(shù)據(jù)庫存儲器空間不足或在增加一預(yù)定對象時儲存時間太長的情形。關(guān)于本發(fā)明的優(yōu)點與精神可以通過以下的發(fā)明詳述及附圖得到進一步的了解。圖1為公知數(shù)據(jù)表的示意圖。圖2為公知一數(shù)據(jù)表增加對象“Tony”的新屬性名稱為“Year”的屬性值“2”的示意圖。圖3為本發(fā)明動態(tài)對象儲存系統(tǒng)的示意圖。圖4為圖3所示對象數(shù)據(jù)表的示意圖。圖5為本發(fā)明動態(tài)對象儲存方法的流程圖。圖中10數(shù)據(jù)表11屬性名稱字段12數(shù)據(jù)表13屬性值字段14屬性值字段15預(yù)定對象16屬性值字段18動態(tài)對象儲存系統(tǒng)20數(shù)據(jù)庫22對象數(shù)據(jù)表23預(yù)定對象24對象儲存模塊26屬性名稱字段28屬性值字段30動態(tài)屬性值字段具體實施方式請參閱圖3及圖4,圖3為本發(fā)明動態(tài)對象儲存系統(tǒng)18的示意圖,圖4為圖3所示對象數(shù)據(jù)表22的示意圖。本發(fā)明提供一種動態(tài)對象儲存系統(tǒng)18,包含有一數(shù)據(jù)庫20及一對象儲存模塊24。數(shù)據(jù)庫20包含有一對象數(shù)據(jù)表22,其中數(shù)據(jù)庫20可以是一實體關(guān)系數(shù)據(jù)模型(Entity-RelationshipDataModel,ERModel)系統(tǒng)。對象數(shù)據(jù)表22用以預(yù)存多個預(yù)定對象,其包含有多個屬性名稱字段26、多個屬性值字段28以及多個動態(tài)屬性值字段30。多個屬性名稱字段26用以分別記錄多個預(yù)定屬性名稱,例如Name、Age、Phonenumber、ID等。每一屬性值字段28用以記錄多個預(yù)定對象中的一個預(yù)定對象,在多個預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值。多個動態(tài)屬性字段30中,每一動態(tài)屬性值字段30用以記錄所述預(yù)定對象中的一個預(yù)定對象所對應(yīng)的一動態(tài)屬性值(如“DAV1”)。其中,“DAV1”用以指示一可延伸標(biāo)記語言(extensiblemarkuplanguage,XML)的文字,該動態(tài)屬性值以一文本(TEXT)型態(tài)儲存。請參閱圖4。例如在對象數(shù)據(jù)表22中,以“Tony”開頭的第二列所包含的多個屬性值字段28以及一個動態(tài)屬性值字段30便可以代表一預(yù)定對象23,預(yù)定對象23可以稱為對象“Tony”,而“26”則為對象“Tony”所對應(yīng)的屬性名稱“Age”的一屬性值,而“DAV1”則為對象“Tony”所對應(yīng)的動態(tài)屬性值。請參閱圖3及圖4。對象儲存模塊24連接于數(shù)據(jù)庫20,當(dāng)本發(fā)明動態(tài)對象儲存系統(tǒng)18要增加對象“Tony”的一新屬性名稱“Year”及一屬性值“2”時,對象儲存模塊24會依據(jù)一可延伸標(biāo)記語言(extensiblemarkuplanguage,XML)對對象“Tony”所對應(yīng)的動態(tài)屬性值“DAV1”執(zhí)行一動態(tài)對象儲存處理,其中動態(tài)對象儲存處理包含以下步驟由對象“Tony”所相對應(yīng)的動態(tài)屬性值字段30中,讀取出對象“Tony”所對應(yīng)的動態(tài)屬性值“DAV1”;在對象“Tony”所對應(yīng)的動態(tài)屬性值“DAV1”中,尋找是否有一標(biāo)記(tag)表示為</xml>;若能找到一標(biāo)記為</xml>,則加入一對象儲存字符串至該標(biāo)記的前端;以及將動態(tài)屬性值“DAV1”儲存回對象“Tony”所對應(yīng)的動態(tài)屬性值字段30。以上步驟該對象儲存字符串只需插入一標(biāo)記(tag)表示為<xml>以及另一標(biāo)記(tag)表示為</xml>中間即可。不需拘泥于該標(biāo)記(tag)表示為<xml>之后或另一標(biāo)記(tag)表示為</xml>之前。本發(fā)明動態(tài)對象儲存系統(tǒng)18所采用的對象儲存字符串可以由一左中括號字符“<”,加上對象“Tony”所想增加的屬性名稱(如“Year”)、一右中括號字符“>”,接著加上屬性名稱所相應(yīng)的屬性值(如“2”)、一左中括號字符“<”、一反斜線“/”,加上對象“Tony”所想增加的屬性名稱(如“Year”)、以及一右中括號字符“>”。在本發(fā)明的一實施例中,對象儲存字符串為“<year>2</year>”。此外,本發(fā)明動態(tài)對象儲存系統(tǒng)18的實施例中,動態(tài)屬性值“DAV1”可用以指示出下列字符串<xml><year>2</year></xml>。此外,當(dāng)本發(fā)明動態(tài)對象儲存系統(tǒng)18要再增加對象“Tony”的一新增屬性名稱“country”及一新增屬性值“taiwan”時,動態(tài)屬性字段“DAV1”則可用以指示出下列字符串<xml><year>2</year><country>taiwan</country></xml>。由此可知,本發(fā)明動態(tài)對象儲存系統(tǒng)18相較于公知技術(shù),當(dāng)增加預(yù)定對象的一新預(yù)定屬性名稱及一預(yù)定屬性值時,并不需要建置(create)多余的存儲器空間。請參閱圖5,圖5為本發(fā)明動態(tài)對象儲存方法的流程圖。本發(fā)明提供一種動態(tài)對象儲存方法包含下列步驟步驟S50開始;步驟S52由對象“Tony”所相對應(yīng)的動態(tài)屬性值字段30中,讀取出對象“Tony”所對應(yīng)的動態(tài)屬性值“DAV1”;步驟S54在對象“Tony”所對應(yīng)的動態(tài)屬性值“DAV1″中尋找是否有一標(biāo)記(tag)表示為</xml>;步驟S56若找到一個標(biāo)記</xml>,則在</xml>前加入一左中括號字符“<”,加上對象“Tony”所想增加的預(yù)定屬性名稱(如“Year”)、一右中括號字符“>”;步驟S58接著加上該預(yù)定屬性名稱(如“Year”)所相應(yīng)的該屬性值(如“2”);步驟S60再加上一左中括號字符“<”、一反斜線“/”,加上該預(yù)定對象所想增加的該預(yù)定屬性名稱(如“/Year”)、以及一右中括號字符“>”;步驟S62將動態(tài)屬性值“DAV1”儲存回對象“Tony”所對應(yīng)的動態(tài)屬性值字段30;以及步驟S64完成。相較于公知技術(shù),通過本發(fā)明動態(tài)對象儲存方法,當(dāng)增加預(yù)定對象的一新預(yù)定屬性名稱及一預(yù)定屬性值時,并不需要建置(create)多余的存儲器空間。通過以上較佳具體實施例的詳細(xì)描述,能更加清楚描述本發(fā)明的特征與精神,但是并非以上述所揭示的較佳具體實施例來對本發(fā)明的范圍加以限制。相反地,不脫離本發(fā)明的精神的各種改變及具等效性的改型均應(yīng)屬于本發(fā)明所要求申請的專利范圍內(nèi)。權(quán)利要求1.一種動態(tài)對象儲存系統(tǒng),包含有一數(shù)據(jù)庫,該數(shù)據(jù)庫包含有至少一對象數(shù)據(jù)表,用以預(yù)存多個預(yù)定對象,該對象數(shù)據(jù)表包含有多個屬性名稱字段,用以分別記錄多個預(yù)定屬性名稱;多個屬性值字段,每一屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象,在所述預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值;以及至少一個動態(tài)屬性值字段,該動態(tài)屬性值字段用以記錄所述預(yù)定對象所對應(yīng)的一動態(tài)屬性值;以及一對象儲存模塊,連接于該數(shù)據(jù)庫,用以依據(jù)一可延伸標(biāo)記語言,對所述預(yù)定對象所對應(yīng)的一動態(tài)屬性值,執(zhí)行一動態(tài)對象儲存處理。2.如權(quán)利要求1所述的動態(tài)對象儲存系統(tǒng),其中該動態(tài)對象儲存處理包含下列步驟(A1)從該動態(tài)屬性值字段中讀取出該預(yù)定對象所對應(yīng)的該動態(tài)屬性值;(A2)在該預(yù)定對象所對應(yīng)的該動態(tài)屬性值中尋找是否有一標(biāo)記表示為</xml>;(A3)若能找到一標(biāo)記為</xml>,則加入一對象儲存字符串至該標(biāo)記的前端;以及(A4)將該動態(tài)屬性值儲存回該預(yù)定對象所對應(yīng)的該動態(tài)屬性值字段。3.如權(quán)利要求2所述的動態(tài)對象儲存系統(tǒng),其中在步驟(A3)的該對象儲存字符串由一左中括號字符“<”,加上該預(yù)定對象預(yù)定增加的該屬性名稱、一右中括號字符“>”,接著加上該屬性名稱所相應(yīng)的該屬性值、一左中括號字符“<”、一反斜線“/”,加上該預(yù)定對象預(yù)定增加的該屬性名稱、以及一右中括號字符“>”。4.如權(quán)利要求1所述的動態(tài)對象儲存系統(tǒng),其中該動態(tài)屬性值以一文本型態(tài)儲存。5.如權(quán)利要求1所述的動態(tài)對象儲存系統(tǒng),其中該數(shù)據(jù)庫是一實體關(guān)系數(shù)據(jù)模型系統(tǒng)。6.一種使用于一數(shù)據(jù)庫的動態(tài)對象儲存方法,該數(shù)據(jù)庫包含有一對象數(shù)據(jù)表,用以預(yù)存多個預(yù)定對象,該對象數(shù)據(jù)表包含有多個屬性名稱字段,用以分別記錄多個預(yù)定屬性名稱;多個屬性值字段,每一屬性值字段用以記錄多個預(yù)定對象中的一個預(yù)定對象,在所述預(yù)定屬性名稱中的一個預(yù)定屬性名稱所對應(yīng)的一預(yù)定屬性值;以及至少一動態(tài)屬性值字段,該動態(tài)屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象所對應(yīng)的一動態(tài)屬性值;該動態(tài)對象儲存方法包含有依據(jù)一可延伸標(biāo)記語言對所述預(yù)定對象所對應(yīng)的一動態(tài)屬性值,執(zhí)行一動態(tài)對象儲存處理。7.如權(quán)利要求6所述的動態(tài)對象儲存方法,其中該動態(tài)對象儲存處理包含下列步驟(B1)從該動態(tài)屬性值字段中讀取出該預(yù)定對象所對應(yīng)的該動態(tài)屬性值;(B2)在該預(yù)定對象所對應(yīng)的該動態(tài)屬性值中尋找是否有一標(biāo)記表示為</xml>;(B3)若能找到一標(biāo)記為</xml>,則加入一對象儲存字符串至該標(biāo)記的前端;以及(B4)將該動態(tài)屬性值儲存回該預(yù)定對象所對應(yīng)的該動態(tài)屬性值字段中。8.如權(quán)利要求7所述的動態(tài)對象儲存方法,其中在步驟(B3)的該對象儲存字符串由一左中括號字符“<”,加上該預(yù)定對象預(yù)定增加的該屬性名稱、一右中括號字符“>”,接著加上該屬性名稱所相應(yīng)的該屬性值、一左中括號字符“<”、一反斜線“/”,加上該預(yù)定對象預(yù)定增加的該屬性名稱、以及一右中括號字符“>”。9.如權(quán)利要求6所述的動態(tài)對象儲存方法,其中該動態(tài)屬性值以一文本型態(tài)儲存。10.如權(quán)利要求6所述的動態(tài)對象儲存方法,其中該數(shù)據(jù)庫是一實體關(guān)系數(shù)據(jù)模型系統(tǒng)。全文摘要本發(fā)明提供一種動態(tài)對象儲存系統(tǒng)及方法,該系統(tǒng)包含有一數(shù)據(jù)庫及一對象儲存模塊。該數(shù)據(jù)庫包含有一對象數(shù)據(jù)表。該對象數(shù)據(jù)表包含多個屬性名稱字段、多個屬性值字段以及多個動態(tài)屬性值字段。該對象數(shù)據(jù)表用以預(yù)存多個預(yù)定對象。所述屬性名稱字段用以分別記錄多個預(yù)定屬性名稱。所述屬性值字段中每一屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象在所述預(yù)定屬性名稱中一個預(yù)定屬性名稱對應(yīng)的一預(yù)定屬性值。所述動態(tài)屬性值字段中每一動態(tài)屬性值字段用以記錄所述預(yù)定對象中的一個預(yù)定對象對應(yīng)的一動態(tài)屬性值。該對象儲存模塊連接于該數(shù)據(jù)庫,用以依據(jù)一可延伸標(biāo)記語言對所述預(yù)定對象中一個預(yù)定對象對應(yīng)的一動態(tài)屬性值執(zhí)行一動態(tài)對象儲存處理。文檔編號G06F17/30GK1713175SQ20041006948公開日2005年12月28日申請日期2004年6月24日優(yōu)先權(quán)日2004年6月24日發(fā)明者胡修華,葉志強申請人:華夏科技股份有限公司