TWI412945B - 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統 - Google Patents
擷取以及保存來自或存至關聯資料庫之各物件的方法及系統 Download PDFInfo
- Publication number
- TWI412945B TWI412945B TW095124383A TW95124383A TWI412945B TW I412945 B TWI412945 B TW I412945B TW 095124383 A TW095124383 A TW 095124383A TW 95124383 A TW95124383 A TW 95124383A TW I412945 B TWI412945 B TW I412945B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- entity
- memory
- database
- collection
- Prior art date
Links
Classifications
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係關於資料處理,尤其係關於一種致能在物件關聯映射中之一致性導覽的系統及方法
隨著軟體策略價值針對許多公司增進,軟體賣者持續地尋出軟體產品的新技術並且增進品質及減低花費與市場時效性。該等技術包含部件技術、可視編程、樣式及框架。當軟體系統之複雜性在範疇及等級方面增進,公司亟需搜尋管理及解決該等複雜性的各技術,該等複雜性包含遞回架構問題,例如實體分配、容錯、複製、安全、一致性及載入平衡等等。因此,當做出特定較簡易的通信交換時,該網際網路的發展則加重了該等架構的挑戰。
特別來說,一共通軟體架構表示為一類別圖。一類別圖呈現出一描述一系統中之各符號之靜態結構的圖形表示,且秀出宣告性(靜態)模型元件的一集合(例如類別、類型、及其內容與關係)。類別以階層方式安排且與其他類別相關聯,該等階層共享一共同結構及行為。類別圖模型使用例如類別、封包及物件的設計元件分類結構以及內容,並且也顯示例如限制(containment)、繼承、關聯性及其他類似者的各關係。在物件導向編程的行話(jargon)中,一類別為一定義一物件導向程式中之一組物件之結構及行為的元件。在一物件導向應用中,各類別具有特性(成
員變數)、操作(成員函數)及其他類別之各關係。
此外,程式碼產生已經在物件關係映射(ORM)之上下文中變得普遍。關聯資料儲存系統(例如DB2、SQL Server、MySQL等等)一般被應用於儲存資料及管理相關關聯。來源-層級語言中所發展之軟體期望來存取及運用儲存在該關係資料儲存系統的關係。當該應用軟體正管理該相關資料時,其亦期望維持繼承於該資料中之各關係。此外,對於該相關資料之任何改變及修改應留存回於該相關資料儲存系統。
一般來說,物件導向語言不提供軟體發展者工具來管理相關資料並確保各關係的一致性。例如,當使用物件導向來源碼映射一對多關係的資料(如顧客訂單關係)時,其通常不使用該等特徵來映射。因此,當各物件以相關資料被填入(populated)時,其一般為該程式設計員之責任來確保該等物件一致於該相關資料。相同地,當移除一物件(例如一訂單)時,該程式設計員將負責於確保該等所有關係能夠被更新。如果刪除一Order(訂單),該Order必須自該相關Customer(顧客)之訂單列表移除。
此外,一旦自該資料庫擷取資料且轉換至物件,該資料存取層接著將遺失追蹤一改變以及兩獨立環境(意即資料庫及記憶體)的能力。在該資料庫的環境中,各列及各行將被運用且一數值提供出對所期望之各物件的存取。相對地,在一記憶體環境中,能夠一般地運用指標器且通常無相配或比較的數值針對物件識別來被執行。
在這樣資料庫及記憶體之間的環境中將會發生不一致性,例如在除錯操作期間或當修改、刪除或***各物件時。接著錯誤將被觸發以拒絕該資料庫中之資料的存留。此外,該發出之接續命令的順序將進一步增加涉及該物件關聯映射的複雜性。
再者,物件關聯映射系統之操作中將存在無效率性。例如,當一程式設計員所撰寫之程式碼導致一記憶體中之各物件的改變時,初始地將一物件帶入記憶體以及此中維持的一拷貝。該拷貝將能夠被維持來當需要一永續操作(persist operation)時的一在後比較。建立所有載入物件之該等拷貝將會耗盡與該計算基礎架構相關的資源。
如下表示了本發明之一簡易的摘要,以提供此中特定態樣的一基本瞭解。此摘要非為本發明之一廣泛的綜觀。其非意在識別出本發明之關鍵/緊要元件或規範本發明之範疇。其僅意於在一簡易的形式上呈現本發明之概念以作為如下所呈現之較詳盡描述的前序。
本發明提供一種致能在一一致性方式中(針對一資料庫及記憶體環境)之導覽且一般上透過各固定物件(例如實體集、實體參考)之集合上的限制確保物件圖形之保真度(fidelity)之物件關聯映射的系統及方法。因此,提供一規定的(prescriptive)程式模型,其中經由一使用者運用一實體集之一特定集合類別能夠在一般上確保該記憶體
端中之物件圖形的保真度,例如藉由提供為雙向一致性的指標。例如,能夠提供各雇員之一類別部門(一實體集)以致使當一使用者運用這樣的特定物件,且加入一雇員時,一雇員部門屬性能夠指回至該部門,以防止一不一致性。如這樣的建立關係將能夠在建立、讀取、更新以及刪除(CRUD)操作期間,在一物件之生命周期期間,而被維持。此外,因為記憶體中之各物件存在一堆疊(heap)中,將能夠提供令人感興趣之各物件的表格來供給各根點的資訊至基礎架構。該令人感興趣之各物件的表格能夠減輕遞回地行旅一相關圖形的一需求。該等實體集及實體參考之各指標為雙向一致性以適當地維持物件關係中的保真度。記憶體中之各物件的修改能夠接著被推回直至資料庫端。
根據本發明之一方法,隨著其中所執行的一修改,各物件首先被載入記憶體。該等修改能夠包含更新、***或刪除。例如,具有於其中工作之兩雇員之一部門能夠被載入記憶體。接著,能夠刪除一雇員,或能夠加入另雇員至該部門,各改變留存回入該資料庫。當刪除一雇員時,能夠明確指示出該刪除。
在相關態樣中,物件保真度能夠經由施行兩限制來提供,意即維護物件識別及確保為一經擷取實體之部分的實體集合之保真度。一般上,在該資料庫端上,物件識別能夠透過主鍵(primary key)來被維持,其中如果指向相同記憶體位置且維持參考相等(reference equality),兩項目
能夠被視為相同。當擷取相同列兩次(例如透過一詢問之不同部分)時,他們由相同物件(例如識別圖,identity map)所表示。維持物件識別能夠經由維持相應於該實體之該主鍵(或唯一鍵)值來實現,並且一般確保無超過一該給定識別(id)值的物件。
同樣地,為了確保為一經擷取實體之一部分之實體集合的保真度,對一給定實體來說,所有相關實體一般應為虛擬可存取(例如實體參照以及實體集之導覽)。此外,本發明能夠提供一延遲載入(lazy loading)及/或預先載入(eager loading)進入記憶體。例如,在具有工作於其中之兩雇員之一部門的案例中,能夠載入該部門而無須載入該兩雇員(延遲載入),或透經該部門能夠被達到何者也載入記憶體(預先載入)。
根據本發明之進一步的態樣,一追蹤部件能夠偵測其發生的各改變,且能夠建立經改變之該等物件的僅一拷貝。能夠提供一最佳化演算法來最佳化用於偵測對該等物件之各改變且維持原始值所需要的一空間及時間。此外,該相關比較工作將會明顯地減少。
在一相關的態樣中,各喜好物件之表格中的每一物件具有一狀態。當增加一物件時,該追蹤部件能夠觀察所有相關項目,且當一物件標記刪除時,所有相關子代將也被自動地刪除。此外,當改變一物件時,能夠應用一通知,並且針對具有該經改變版本的一稍後比較,能夠儲存該未經改變狀態的一拷貝。如此,能夠有效率使用系統資源。
當然帶給一程式設計員使用具該規定框架之該程式碼產生工具的選擇,並且獲得如此最佳化的效益,或替代地撰寫入如所期望一喪失這樣最佳性的類別。
為了達成前述及相關目的,本發明之特定描述態樣係接合如下說明及隨附圖式而加以描述。然而,該等態樣僅為描述性質,在不悖離本發明之精神下將可以不同方式運用本發明,並且本發明係意在涵蓋所有相關態樣且其均等物。本發明之其他優勢及新穎特徵將由當考量結合該等圖示時自本發明之如下細節描述而變得顯而易見。
現在將參照附圖說明本發明,其中相同元件符號係用以參照相同之元件,在以下實施方式中,基於說明之目的,數項特定之實施方式的說明係為提供本發明之整體性的了解,但是,顯然本發明在實際實施時可不需這些特定實施方式,在其他實例中,熟知之架構或裝置係以方塊圖形式顯示以有助於說明本發明。
如本發明中所用者,「組件」及「系統」等項係意於參照電腦相關實體、硬體,或軟硬體之組合,或執行中之軟體,舉例言之,但不限定,一組件可為一處理器上執行之處理程序、處理器、物件、可執行程式、執行線程、程式及/或電腦,從附圖可見,一伺服器上執行之應用程式及該伺服器可為一組件;一或多組件可駐留於一程序及/或執行線程之內,且一組件可位於一電腦及/或散布於二或多電腦
之間。
第1圖係描述針對一物件關聯映射系統100而顯示資料庫端104及記憶體端102間之關係的一示意圖。例如,在該資料庫端104,一顧客及訂單表能夠被呈現成表格,其中存在關係能夠按一主鍵(PK)-外鍵(FK)的形式,與來自該外鍵至主鍵的指標器-(該外鍵能夠為一行或用於建立及施行一來源表格及依目標表格之資料間的一鏈結之各行的組合)。
換句話來說,當該顧客及訂單表被移動至記憶體,各顧客及訂單間之表示的一般自然形式係為維持訂單之集合。因此,替代具有指向該顧客之一訂單,這樣的顧客具有一各訂單的集合。此外,各指標器為自主鍵至外鍵,且當比較該資料庫端時在一不同方向。
在該記憶體端102上各物件能夠存在於一堆疊上,且本發明之一致導覽特徵110致使執行在該記憶體端102上的更新能夠來反映且被推回於該關聯資料庫端104上,僅管該關聯端104中之該導覽鏈結一般為自外鍵至主鍵且在該記憶體端102為相反方向的事實。這樣將致使能夠在一一致性的方式上導覽(針對資料庫及記憶體環境),且一般透過存留物件之集合上(實體集、實體參照)的各限制確保物件圖形的保真度。因此,提供一規定的程式模型,其中運用一使用者之一實體集的一特定集合類別,其能夠一般確保該記憶體端中之物件圖形的保真度,例如藉由供應
為雙向一致的指標器。
第2圖描述係為維持基本關係之保真度的各部件之特定實體集202及實體參照204的產生。該等實體集及實體參照促進了該記憶體端中的雙向導覽,並且提供該記憶體端及該資料庫端之間的一致性。可經由運用該實體集202及實體參照204而產生對應至表格的類別。
一般上,物件關聯映射(ORM)允許映射一類別至一表格或者一或多表格所組成之一檢視。能夠在該資料庫中定義該檢視或透過例如一映射檔案或來源程式碼屬性之一映射人工因素(mapping artifact)。可存在模型化為物件參照或各參照集合之各類別間的關係。第3圖描述具有彼此相關之三類別:Division(部門)310、Employee(雇員)320以及Position(職位)330,其將於如下詳盡描述。如此,一部門中存在零至多雇員(一1:n關係的例子),以及關於一Employee存在零或一職位(一1:1關係的例子)。
經由實施該實體參照及實體集,能夠建立部門及雇員間的一雙向關係。在該物件世界中,該實體集能夠收集指向該個別部門的所有雇員。例如:
該相應類別的概要(outline)可描述為:
部門Id能夠做為該外鍵且DivisionTable為該主鍵。
實體集收集屬於一部門的所有雇員。因此,當執行關聯世界及該物件世界間的映射時,該部門及雇員間之雙向導覽利用該Entityset及Entityref資料物件部件。
第4及第5圖描述部門及雇員間,以及雇員及職位間,之該雙向一致性。如上所描述,該等集或容器能夠被實作成為例舉各物件不同類型的一般類別,其中一集包含一組物件的一聚集(例如一組訂單)。此外,該等集能夠包含被指作為實體集之一組物件,亦或該集能夠包含至一物件的參照(例如一訂單之顧客名)一實體參照。可運用一對實體參照來模型化一一對一關係。該實體參照及實體集的組合能夠用來模型化一對多關係。
根據及如第6圖所述,其提供一規定的程式模型,其中經由一使用者運用一實體集之一特定集合類別,能夠一般地確保該記憶體端602中之物件圖形的保真度,例如藉由供應為雙向一致性的指標器。例如,能夠供應各雇員之一類別部門,以致使當一使用者僱用這樣的特定物件,及加入一雇員時(630),一雇員部門屬性能夠指回該部門,藉以避免一不一致性。如這樣的建立關係能夠在建立、讀取、更新及刪除(CRUD)操作期間,在一物件之生命周
其期間,來被維持。此外,因為記憶體中之各物件存在一堆疊中,用於參與(interesting)各物件之表格能夠供應各根點至該基礎架構的知識。該用於參與各物件之表格減輕了遞迴沿行一相應圖形的需求。該等實體參照及實體集的指標器為雙向一致性,以適當地維持物件關係中的保真度。記憶體中之各物件的修改能夠接著被推回上至該資料庫端606。
一般上,序列操作器允許映射物件上的詢問。一詢問能夠指明用於過濾一組物件的述語。例如,能夠載入具有一特定DivId值的一部門物件。一旦載入一物件,其將重要於維持其取決該特定映射、以該固持表示的的保真度。保真度保證則允許了針對可自一給定物件到達之該物件圖形而寫入程式碼,而不考慮用於擷取該物件之特定詢問。其亦確保以一一致性語義更新該物件。這樣的一可更新固持物件被稱做為一實體。
一般施行兩限制來確保保真度:1.維持物件識別:如在物件關聯框架之案例中,其能夠經由維持相應至該實體之主鍵值(或唯一值)以及確保無超過該給定id值之一物件(至多一給定id值之一物件參照)來實現;及2.確保為一擷取實體之一部分之實體集合的保真度。自一給定實體,一般上所有相關實體應被實
際地存取。吾人應體會到其將不需要在任何給定點及時載入所有相關實體,但簡單地他們維持存取。根據本發明之一態樣,這將是一加入物件識別之傳統ORM機制的新式機制。
經由需要該1:n關係之該1-端上的一實體集實施該第二限制。一EntitySet一般確保,第一,當導覽一相應關係時(如下之程式碼中),該EntitySet載入其內容(若未已經載入)。該等內容相應至該資料庫中之所有目標列之該集。因此,當載入該EntitySet div1.Employees時,相應至呈現在該資料庫中之該部門div1的所有Employee能夠被載入。
Division div1=...; foreach(Employee e in div1.Employees)...
第二,一EntitySet確保考慮到指示一錯誤的一例外,應為該目標實體錯誤載入。第三,一般從不部分載入該EntitySet(任何部分載入將會造成該物件被視為一唯讀,非實體物件且因此不能由該ORM實施來更新,一發展者可自由地使用受到此規定的部份集合)。
因此,EntitySet確保物件圖形保真度。例如,給定一Division實體(如div1),其確保div1.Employees一般上將從不在獲取該等雇員之時自資料庫中之該部門的該組雇員脫離。該實體集機制能夠被一致用於延遲載入(依需求載入,on demand loading),及預先載入(預擷取,
prefetching)。該兩載入策略具有不同空間-時間交易(space time tradeoffs)且適於資料之不同改變設定檔(change profile of data)。本發明提供兩載入類型的支持而無須妥協的保真度(compromising fidelity)。相同地,EntityRef提供在1:n關係之n-端(Employee.Division)及1:1關係之兩者端(Employee.Position及Position.Employee)中之獨參照的延遲載入能力。延遲載入一般適於:1.不頻繁改變的資料或基於導覽在不同時間被載入之能夠容許物件圖形之各部份的應用;2.最小化載入資料的數量-一般僅當存取時載入一實體集;預先載入一般較適於:1.確保一致性資料快照(例如一起載入Division及Employee);2.最小化導覽延遲-預先載入一EntitySet,且因當存取時,將不帶來資料庫往返之延遲。
實體集經由載入整體集合而一般確保延遲載入之案例中的保真度。將任何錯誤報導成一例外。相似地,在預先載入的案例中,載入該整體EntitySet。其也可能針對一物件圖形中之不同關係使用該兩載入能力的一組合。例如,當延遲載入Employee.Position時,Division.Employees能夠被預先載入。
延遲及預先載入之案例中的該EntitySet限制及其語義包含物件獲取。該接次保真度保證機制處理對截取實體的改變及針對最後***資料庫之新實體的建立。其處理單向參照外所建構的物件圖形以及為固有雙向之該基本數值式外鍵限制之間的分隔。
一般上,該資料庫中之一給定外鍵關係可被映射至三種可能方式之一者中的類別,即如:1.相關類別間之雙向參照(例如上述之部門-雇員或雇員-職位物件模型);2.來自映射至包含該相應外鍵之一表格之該類別的單向參照(例如Employee.Division被呈現在該物件模型中,但Division.Employees非如此);3.來自映射至包含該相應父鍵之一表格之該類別的單向參照(例如Division.Employees被呈現在該物件模型中,但Employee.Division非如此)。
在各案例中,該(等)參照可為該物件模型中或者由該ORM實施且在涵蓋下所實作之公開或私有或明確。
無論何時在該物件圖形中改變一關係,該相應改變必須被持續於包含該外鍵之表格中。例如,如果一Employee emp1自Division div1被轉換至Division div2,該如上之首先兩案例能夠簡單被轉變成emp1之外鍵。在該第三案例中,如果一雇員列需要在該資料庫中被更新,則需要一搜尋來找出。
第7圖描述根據本發明之一態樣之修改該資料庫的一示範例方法。雖然本文中已以一系列代表各種事件及/或動作的方塊圖描述過該示範性方法,但本發明並不侷限於該方塊中所描述的先後順序,例如,根據本發明,某些事件或動作之發生順序亦可不同,或與其他事件或動作同時發生,這都與本文中所描述之順序不同,此外,實施根據本發明之方法並非需要其描述之所有方塊、事件或動作,再者,吾人應了解,根據本發明之示範性方法及其他方法可結合本文中所描述並說明之方法實施,亦可結合其他未描述或說明之系統及設備實施。初始在710上,各物件首先被帶入記憶體以供欲於其上執行的一修改。在720,其將能夠隨著在該物件上執行一修改。這樣的修改能夠例如包含更新、刪除,其將於如下描述細節。例如,能夠將具有兩工作於其中之雇員的一部門載入記憶體。可修改、刪除一雇員或將其他雇員加入該部門。之後,在730,存留各改變回進入該資料庫。當刪除一雇員時,其將被明確指示出。
第8圖描述用於刪除一物件之相關方法。初始在810,由一部門及相關於該部門之兩雇員所組成之三物件被擷取進入記憶體。在820,該等雇員之一者能接著被刪除。在830,該刪除能夠接著被存留進入資料庫。這樣的刪除能夠被明確地指出,例如:Read 1 div(D1)+2 employees(E1,E2)
相似地,第9圖描述用於更新一物件之一相關方法。初始在910,由一部門及相關於該部門之兩雇員所組成之三物件被擷取進入記憶體。在920,該等雇員之一者能接著被更新。在830,該修改能夠接著被存留進入資料庫。這樣的刪除能夠被明確地指出,例如:
另者,該較明確表示db.Employees.TrackChanges(e1)也能夠被應用。
相似地,第10圖描述用於***一物件之一相關方法。初始在1010,由一部門及相關於該部門之兩雇員所組成之三物件被擷取進入記憶體。在1020,一新雇員能接著被加入。在1030,該修改能夠接著被存留進入資料庫。這樣的刪除能夠被明確地指出,例如:
在一相關態樣中,該記憶體端之偏好物件之該表格中的每物件具有一狀態。當加入一物件時,一追蹤部件能夠觀察所有相關項目,且當一物件被標記刪除所有相關子代時,其將被自動地刪除。此外,當改變一物件時,將供應一通知,且能夠儲存該未改變狀態之一拷貝以供其中該改變版本的一稍後比較。
第11圖描述根據本發明之一態樣之最佳化改變追蹤的一流程圖。初始在1110,當啟動一屬性設定器,產生的程式碼呼叫該ORM實施以通知該物件係有關於改變。回應於1120,如果欲被改變之該物件已經在之前被複製,該物件固持基礎架構核對。如果無,在1130,該物件固持基礎架構作出該物件之一拷貝,並將其加入針對各改變之欲被核對之各物件的列表(1140)。接著在1150,當呼叫該API以存留各改變,將查閱經修改之各物件的列表以供決定該組經改變之物件(例如該”改變集”)。
一般上,先前ORM實施通常在獲取時依賴作出各物件的拷貝。這樣的拷貝允許保存樂觀一致性之來源值,及當呼叫一API存留物件時之改變刪除的紀錄。本發明之存留基礎架構,在程式碼產生期間,卻利用引入設定器之該
通知機制,例如,不複製未被修改的各物件。其將一般地導致當確保需要最佳化一致性之來源值時之實質上空間及時間的節省。此外,當呼叫API存留改變時,一物件之來源及目前拷貝的一比較將對於改變刪除為不必須。經該變物件之一列表由於各通知在過時上被累積。這將更能夠導致在改變刪除中之實質上時間節省。
因此,本發明之該物件存留基礎架構提供以通知機制針對經產生程式碼的一最佳化實施。仍然,其亦提供不提供通知之物件模型的一次佳化且平均式功能性的預設(例如非由本發明所產生而由發展者所撰寫之類別)。該基礎架構偵測缺少通知機制且主動積極作出最佳化一致性及改變偵測的一拷貝。因此,能夠帶給一程式設計員使用具有規定架構之程式碼產生工具的選擇並且獲得這樣最佳化的益處,或者另寫入所欲之一喪失這樣最佳化的類別。如此,系統資源將能夠被有效地使用。
第12圖係描述一顧客訂單關係範例1200的一方塊圖,其中一顧客資料物件1202能夠具有包含相應於該訂單資料物件1206之物件資訊的一組容器1204。相似地,侅訂單資料物件1206能夠具有包含相應於該顧客資料物件1202之物件資訊的一參照容器1208。對包含在該組容器1204之該物件資訊的一改變能夠造成一通知被傳送至該訂單資料物件1206。相同地,對包含在該參照容器1208之該物件資訊的一改變能夠造成一通知被傳送至該顧客資
料物件1202。此外,如第12圖所示,一追蹤部件1210能夠遞增地建立經改變物件之列表。
根據本發明之另一態樣,該追蹤部件1210能夠偵測其發生時的各改變,且僅以經改變之該等物件的一拷貝能夠被建立。其將能夠提供一最佳化演算法來最佳化用於偵測對該等物件之各改變且維持原始值所需要的一空間及時間。另外,該相關比較工作將會明顯地減少。
第13圖係描述改變物件之追蹤最佳化的一流程圖,藉以最佳化操作。初始在1310,根據本發明之一態樣接收關於一物件改變的一通知。在1320,作出一關於該物件被改變的一決定。在1330,作出被改變之該物件的一拷貝。接著在1340,在該改變物件上之各改變被存留回晉入資料庫。如此,該相關圖形將不需要被遞迴地行經,因為該等改變物件為已知。
下列API方法將能夠用來描述用於提出各改變之物件存留演算法(object persistence algorithm)。一發展者能夠經由修改或刪除擷取物件及建立心存留物件而改變一數目存留物件。如此將導致建立、更新及刪除(使用首字母可稱為CUD)操作。
如下則描述使用本發明之架構之呈現給使用者的CUD操作:
Add()及Remove()最後導致被擱置之***/刪除操作,直至執行SubmitChanges()。
目前,SubmitChanges()做法如下:Tracked::=Add(e) | TrackChanges(e)
- 及物地針對各追蹤實體
- 發現及標記被參照之”追蹤的”實體,及
- 發現加入之新實體
當自動地發現該非頂層、新實體且不必須被標記時,新頂
層實體一般必需針對***被標記。
實施這樣兩手策略方法,其部分係針對下列理由:
1.新物件鏈:針對一新進建立的Division,建立一新Employee,可簡單以一呼叫處理兩者。(此能夠存在作為一附加的便利,但為不需要,This can exist as an additional convenience,but is not required)
2.有時一變數名稱不被呈現來使用在一呼叫中;例如,在下列例子中,沒有一訂單之變數名稱:
加入集合被推斷為如下所描述,但如果移除該集合之一成員,該物件存留基礎架構由該產生的程式碼通知(或必須一般由該程式設計員程式碼通知)。所以如果自div1.Employees移除一雇員,其中div1為一Division,TrackChanges(div1)必須一般在修改之前被呼叫。
交易支持為一物件存留基礎架構之一關鍵態樣。存在ORM實施通常提供一API以供建立及交付/回復(creating and committing/rolling back)一交易。當提供交易能力,
該API造成較困難於其他者非交易處理(例如較低層、關係交易API)。本發明則定址如下所述的複雜性:
1.如果使用特定其他API由一程式設計員建立一交易,其將能夠在該交易之上下文中執行。
2.否則,該物件存留基礎架構代表程式設計員自動地開始一交易。其在該新進建立的交易之上下文中執行***/更新/刪除SQL,且接著在適當時交付或回復該交易。
該第一方法能夠以一API所整合,如下述:其中”op”指表示該物件存留實施的該物件。
現在請參照第14圖,其簡要概括地描述一適用的電腦環境,本發明之複數態樣可實施於該電腦環境中。雖然本發明已以執行於一電腦及/或數電腦上之電腦程式的電腦可執行指令之一般性內容說明於上,但是,熟習本技藝者
應知,本發明亦可結合其他電腦程式模組實施之,一般而言,程式模組包含例行常式、程式、組件、資料結構等執行特定工作及/或實施特定抽象資料類型者,此外,熟習本技藝者亦應了解,本發明之方法可以其他電腦系統組態實施之,這些組態包含單一處理器或多工處理器電腦系統、迷你電腦、大型主機電腦,以及個人電腦、手持式電腦裝置、微處理器或可程式控制的消費性電子產品等等。如前述說明者,本發明中被描述之態樣亦可實施於分散式電腦環境,在該環境中,以一透過一通訊網路連接之遠端處理裝置執行工作;但是非本發明之所有態樣皆如此,若干態樣可實施於單機電腦上。在分散式電腦環境中,程式模組可位於本機端及遠端的記憶儲存裝置上。該示範性環境包含一電腦1420,該電腦中具有一處理單元1421、一系統記憶體1422、及一系統匯流排1423,其中該系統匯流排連接數系統組件,包括連接系統記憶體與該處理單元1421。該處理單元1421可為任一市面上可取得之處理器,雙工微處理器及其他多工處理器架構皆可作為處理單元1421之用。
該系統流排可為數種系統匯流排類型(包含USB、1394、週邊匯流排及使用任一市面上可取得之匯流排架構的區域匯流排)中之任一者;該系統記憶體可包含唯讀記憶體(ROM)1424、及隨機存取記憶體(RAM)1425,ROM中儲存一基本輸入/輸出系統(BIOS),其內含幫助電腦1420內之元件間傳輸資訊的基本常式,例如起動常式。
電腦1420更包含硬碟機1427、磁碟機1428(例如對可抽取式磁碟1429進行讀取及寫入)及光碟機1430(例如用以對光碟1431進行讀取及寫入或對其他光學性媒體進行讀取及寫入)。該硬碟機1427、磁碟機1428及光碟機1430係分別藉由硬碟機介面1432、磁碟機介面1433及光碟機介面1434連接系統匯流排1423;這些磁碟機與其相關聯之電腦可讀取媒體提供電腦1420非揮發性儲存,以儲存資料、資料結構、電腦可執行指令等。雖然上述電腦可讀取之說明係參照硬碟、可抽取式磁碟及CD,熟習本技藝者應了解,其他電腦可讀取之媒體類型,例如卡式磁碟、快閃記憶卡、數位影音光碟、貝努里(Bernoulli)磁匣等亦可用於該示範性操作環境,再者上述任何媒體可包含用以執行本發明之方法的電腦可執行指令。
磁碟機與RAM 1425中可儲存數程式模組,包含一作業系統1435、一或多應用程式1436、其他程式模組1437及程式資料1438,圖中描述之電腦中的作業程式實際上可為任一市面上可取得之作業系統。
使用者可透過鍵盤1440及指向裝置(例如滑鼠1442)輸入命令及資訊至電腦1420內,其他輸入裝置(圖中未顯示)可包含麥克風、遊戲操縱桿、遊戲控制板、碟型天線、掃描器等,這些及其他輸入裝置通常透過一連接系統匯流排之序列埠介面1446連接處理單元1421;但其有可能藉由其他介面連接,例如串列埠、遊戲埠、通用序列埠(USB),一顯示器1447或其他類型之顯示裝置亦透過一介
面例如顯示卡1448連接該系統匯流排1423,除顯示器之外,電腦通常包含其他週邊裝置(圖中未顯示),例如喇叭及印表機。
電腦1420可運行於一使用邏輯連接器連接一或多遠端電腦(例如遠端電腦1449)的網路環境中,遠端電腦1449可為一工作站、伺服器電腦、路由器、端點裝置或其他常用的網路節點,雖然第14圖中僅顯示一記憶儲存裝置1450,但其通常包含多數或全部上述有關電腦1420之元件。第14圖中所描述之邏輯連線可包含一區域網路(LAN)1451及一廣域網路(WAN)1452,該網路環境常用於辦公室、企業內部電腦網路、企業網路(Intranet)和網際網路(Internet)。
當用於一LAN網路環境時,電腦1420可透過一網路介面或配接卡1453連接區域網路1451;當用於一WAN網路環境時,電腦1420通常可包含一數據機1454及/或連接至該LAN的通訊網路伺服器,及/或以其他在廣域網路如Internet上建立通訊傳輸之方式連接。數據機1454可位於內部或外部,其可透過序列埠介面1446連接系統匯流排1423。在一網路環境中,上述與電腦1420有關之程式模組,或其部分可儲存於該遠端記憶儲存裝置中,吾人應可了解圖中所示之網路連線僅示範之用,其他在電腦間建立通訊連結的方式亦可使用。
根據熟習電腦程式寫作技藝者之實施,除非本發明有特別指示,否則本發明已參照表示由一電腦(例如電腦
1420)執行之操作的動作及符號詳述之,這些動作及操作有時亦可被稱為電腦執行,吾人應可了解該些動作及符號表示之操作包含由處理單元1421對一表示資料位元之電子信號的操作(即令該電子信號表示產生資訊傳輸或縮減),及在記憶體系統(包含系統記憶體1422、硬碟機1427、軟碟機1428及CD-ROM 1431)之記憶體位置對資料位元進行之維護,藉由該操控及維護,重新設定或變更電腦系統的操作及其他信號的處理,維護該資料位元之記憶體位置為具有對應該資料位元之電子、磁式或光學特性的特定實體位置。
現在請參照第15圖,其描述能夠運用本發明之實體集與實體參照安排的主從系統1500。該系統1500包含一或多客戶端1510。該客戶端1510可為硬體及/或軟體(例如程式線程、處理程序、電腦裝置)。該系統1500亦可包含一或多伺服器1530。因此,該系統1500能夠能夠相應至其他模型中之一雙層客戶端伺服器模型或一多層模型(例如客戶端、中層伺服器、資料伺服器)。該伺服器1530亦可為硬體及/或軟體(例如程式線程、處理程序、電腦裝置)。舉例言之,該伺服器1530可儲藏(House)程式線程以執行使用本發明之轉換。一客戶端1510及伺服器1530間的一可能通訊能夠按二或多電腦處理程序間進行資訊傳輸之資料封包的形式。該系統1500包含一通訊框架1550,其能夠被運用來促進該客戶端1510及伺服器1530間的通信。
相似地,該伺服器1540可操作連接至可運用來儲存本地至該伺服器1530之資訊的一或多伺服器資料儲存1540。
雖然本發明已針對某些態樣顯示並詳細說明,但吾人應可了解熟習本技藝者可在參閱並了解此詳細規格及附圖後,進行等效的變更及修改,尤其是在考慮由上述之組件(配件、裝置、電路、系統等)之各項功能後,除非特別指出有其他排除情況,否則用以描述該組件之名稱(包含「方法」的參照)僅意於對應任何實施上述組件之特定功能(例如功能性相同者)的組件,即使架構上不同於執行本發明之示範性態樣中描述之功能的已揭示架構者亦然,在此考量下,吾人亦應體認本發明包含一系統以及電腦可讀取媒體,其中該電腦可讀取媒體具有用以執行本發明數方法之動作及/或事件的電腦可執行指令,此外,「包含」一辭的延伸之意為「包括」、「具有」、「具備」及該詞用於實施方式或申請專利範圍中之變體,這些名稱皆意欲含括於「至少包含」一詞相同的用法中。
102‧‧‧記憶體端
104‧‧‧資料庫端
110‧‧‧一致導覽
202‧‧‧實體集
204‧‧‧實體參照
310‧‧‧部門
320‧‧‧雇員
330‧‧‧職位
710‧‧‧將物件帶入記憶體
720‧‧‧執行物件修改
730‧‧‧存留改變回進入該資料庫
810‧‧‧將一部門及兩雇員帶進入記憶體
820‧‧‧刪除關於該部門之一雇員
830‧‧‧存留改變回進入該資料庫
910‧‧‧將一部門及兩雇員帶進入記憶體
920‧‧‧更新關於該部門之一雇員
930‧‧‧存留改變回進入該資料庫
1010‧‧‧將一部門及兩雇員帶進入記憶體
1020‧‧‧***關於該部門之一雇員
1030‧‧‧存留改變回進入該資料庫
1110‧‧‧通知ORM物件改變
1120‧‧‧被改變物件之前已經改變?
1130‧‧‧做出被改變物件之拷貝
1140‧‧‧加入物件至改變表格
1150‧‧‧查閱表格決定該改變物件集
1202‧‧‧顧客資料物件
1204‧‧‧集容器
1206‧‧‧訂單資料物件
1208‧‧‧參照容器
1210‧‧‧追蹤部件
1310‧‧‧接收關於物件改變通知
1320‧‧‧決定何物件應被改變
1330‧‧‧做出被改變之物件的拷貝
1340‧‧‧在資料庫存留改變
第1圖係描述針對一物件關聯映射系統而顯示資料庫端及記憶體端間之關係的一示意圖;第2圖係描述透過實體集及實體參照之該一致導覽的實作,其為維持該基本關係之保真度的各部件,而自該主鍵外鍵關係形成;
第3圖描述針對三類別模型之一零至許多雇員關係以及關於一雇員之一零或一職位的示意圖;第4圖描述各雇員之一實體集及一單一部門之一實體參照間的一雙向導覽;第5圖係描述一職位之一實体集以及一雇員之一實體參照間的另雙向導覽;第6圖描述說明該資料庫端及記憶體端間之關係的示意圖,其中實體集及實體參照供應物件保真度;第7圖描述根據本發明之一態樣之修改資料庫的一例示性方法;第8圖描述根據本發明之一態樣之刪除一物件的一例示性方法;第9圖描述根據本發明之一態樣之更新一物件的一例示性方法;第10圖描述根據本發明之一態樣之***一物件之一例示性方法;第11圖描述根據本發明之一態樣之最佳化改變追蹤的一流程圖;第12圖係描述一顧客訂單關係範例的一方塊圖;第13圖係描述改變物件之追蹤最佳化的一流程圖;第14圖係說明一適格計算環境之一簡扼、一般的描述;第15圖係描述能夠透過本發明之實體集實體參照安排之物件保真度的一客戶-伺服系統。
102‧‧‧記憶體端
104‧‧‧資料庫端
110‧‧‧一致導覽
Claims (16)
- 一種促進物件關聯式映射(object relational mapping)之系統,該系統包含:一或更多處理器;記憶體;一資料庫,該資料庫經實施在一電腦可讀取儲存媒體上,該資料庫包括一第一表格及一第二表格,該第一表格經配置以儲存表示具有一第一實體類型(entity type)之實體(entity)的資料,該第二表格經配置以儲存表示具有一第二實體類型之實體的資料,該第一表格經配置以儲存用於具有該第一實體類型之各實體的一主鍵(primary key),該第二表格經配置以儲存用於具有該第二實體類型之各實體的一主鍵,該第二表格經配置以儲存用於具有該第二實體類型之各實體的一外鍵(foreign key),各外鍵經結合至該第一表格中之一主鍵而作為一資料庫限制條件的部分;電腦可執行指令,該等電腦可執行指令經實施在一電腦可讀取儲存媒體上,當該等電腦可執行指令在該一或更多處理器上被執行時則進行一一致性導覽方法,該方法促進在該記憶體及該資料庫間的雙向關係,該方法包括下列步驟:自該資料庫的該第一表格擷取第一資料,該第一資料表示具有該第一實體類型的一第一實體,該第一資料 包括唯一地識別該第一實體的一主鍵;自該資料庫的該第二表格擷取第二資料,該第二資料表示具有該第二實體類型的複數個實體,該第二資料包括對應於該第一資料之該主鍵的一外鍵;在該記憶體中實現一集合資料物件(set data object),該集合資料物件封裝該第一資料之一部分,該第一資料之該部分對應於具有該第一實體類型之該第一實體;在該記憶體中實現複數個實體資料物件,該等複數個實體資料物件之各者封裝該第二資料之一部分,該第二資料之該部分對應於具有該第二實體類型之該等複數個實體之一者;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,在各實體資料物件內封裝一指標器,該指標器指向在該記憶體中之該集合資料物件;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,在該集合資料物件內封裝指向該等複數個實體資料物件的至少一指標器;以及一追蹤部件,該追蹤部件偵測對該集合資料物件之一改變,並當一集合資料物件狀態並未在先前經複製時,產生在該改變之前該集合資料物件狀態之一複本,其中該集合資料物件及該等複數個實體資料物件經由對於存留物件之收集的限制條件,在被載入該記憶體之一 物件以及在一資料庫端中之該物件的一存留表示(persistent representation)之間提供物件圖形保真度(object graph fidelity),該等限制條件包括至少當該存留物件之收集無法完全載入進該記憶體中時避免更新該存留物件之收集。
- 如申請專利範圍第1項所述之系統,進一步包含一喜好物件表格(interesting object table),該喜好物件表格供應各物件之各根點的知識至該系統。
- 如申請專利範圍第2項所述之系統,該系統更包含一狀態,該狀態關聯於該喜好物件表格中之一物件,該狀態表明欲在該物件上所執行之一修改。
- 如申請專利範圍第3項所述之系統,其中該修改為各物件之一刪除、***或更新中之至少一者。
- 如申請專利範圍第4項所述之系統,該系統更包含一最佳化特徵,當欲改變該物件時,該最佳化特徵減輕一遞迴行經一物件圖形的一需求。
- 一種管理物件關聯式映射的方法,該方法包含:提供一資料庫,該資料庫包括一第一表格及一第二表 格,該第一表格經配置以儲存表示具有一第一實體類型(entity type)之實體(entity)的資料,該第二表格經配置以儲存表示具有一第二實體類型之實體的資料,該第一表格經配置以儲存用於具有該第一實體類型之各實體的一主鍵(primary key),該第二表格經配置以儲存用於具有該第二實體類型之各實體的一主鍵,該第二表格經配置以儲存用於具有該第二實體類型之各實體的一外鍵(foreign key),各外鍵經結合至該第一表格中之一主鍵而作為一資料庫限制條件的部分;藉由使用包括一或更多處理器及一記憶體的一電腦,進行下列步驟:自該資料庫的該第一表格擷取第一資料,該第一資料表示具有該第一實體類型的一第一實體,該第一資料包括唯一地識別該第一實體的一主鍵;自該資料庫的該第二表格擷取第二資料,該第二資料表示具有該第二實體類型的複數個實體,該第二資料包括對應於該第一資料之該主鍵的一外鍵;在該記憶體中實現一集合資料物件(set data object),該集合資料物件封裝該第一資料之一部分,該第一資料之該部分對應於具有該第一實體類型之該第一實體;在該記憶體中實現複數個實體資料物件,該等複數個實體資料物件之各者封裝該第二資料之一部分, 該第二資料之該部分對應於具有該第二實體類型之該等複數個實體之一者;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,該處理器在各實體資料物件內封裝一指標器,該指標器指向在該記憶體中之該集合資料物件;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,該處理器在該集合資料物件內封裝指向該等複數個實體資料物件的至少一指標器;偵測對該集合資料物件之一改變;以及當一集合資料物件狀態並未在先前經複製時,產生在該改變之前該集合資料物件狀態之一複本,其中該集合資料物件及該等複數個實體資料物件經由對於存留物件之收集的限制條件,在被載入該記憶體之一物件以及在一資料庫端中之該物件的一存留表示(persistent representation)之間提供物件圖形保真度(object graph fidelity),該等限制條件包括至少當該存留物件之收集無法完全載入進該記憶體中時避免更新該存留物件之收集。
- 如申請專利範圍第6項所述之方法,該方法更包含透過一更新及刪除之至少一者修改該第一實體資料物件之該複本。
- 如申請專利範圍第7項所述之方法,該方法更包含供應一喜好物件之表格,該喜好物件之表格包含該第一實體資料物件之一狀態。
- 如申請專利範圍第7項所述之方法,該方法更包含供應一物件將被改變的一通知。
- 如申請專利範圍第7項所述之方法,該方法更包含僅複製將被改變之該第一實體資料物件以供一接續比較動作。
- 如申請專利範圍第7項所述之方法,該方法更包含在刪除該第一實體資料物件時,刪除關聯於該第一實體資料物件之各項目(items)。
- 如申請專利範圍第7項所述之方法,該方法更包含維護物件識別。
- 如申請專利範圍第7項所述之方法,其中該第二資料係經由延遲載入或預先載入其中之一者所擷取。
- 如申請專利範圍第7項所述之方法,該方法更包含存 留該第一實體資料物件之該複本進入該資料庫。
- 如申請專利範圍第7項所述之方法,該方法更包含通透的交易映射(transparent transaction mapping),該通透的交易映射係透過下列之一者:在一交易之情境中之一執行,或代表程式設計員自動開始一交易。
- 一種用於在一電腦系統處使用而促進物件關聯式映射(object relational mapping)之電腦程式產品,該電腦程式產品具有電腦可執行指令,當該等電腦可執行指令於一處理器處被執行時,該等電腦可執行指令致使該電腦系統進行下列步驟:提供一資料庫,該資料庫包括一第一表格及一第二表格,該第一表格經配置以儲存表示具有一第一實體類型(entity type)之實體(entity)的資料,該第二表格經配置以儲存表示具有一第二實體類型之實體的資料,該第一表格經配置以儲存用於具有該第一實體類型之各實體的一主鍵(primary key),該第二表格經配置以儲存用於具有該第二實體類型之各實體的一主鍵,該第二表格經配置以儲存用於具有該第二實體類型之各實體的一外鍵(foreign key),各外鍵經結合至該第一表格中之一主鍵而作為一資料庫限制條件的部分;自該資料庫的該第一表格擷取第一資料,該第一資料 表示具有該第一實體類型的一第一實體,該第一資料包括唯一地識別該第一實體的一主鍵;自該資料庫的該第二表格擷取第二資料,該第二資料表示具有該第二實體類型的複數個實體,該第二資料包括對應於該第一資料之該主鍵的一外鍵;在一記憶體中實現一集合資料物件(set data object),該集合資料物件封裝該第一資料之一部分,該第一資料之該部分對應於具有該第一實體類型之該第一實體;在該記憶體中實現複數個實體資料物件,該等複數個實體資料物件之各者封裝該第二資料之一部分,該第二資料之該部分對應於具有該第二實體類型之該等複數個實體之一者;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,該處理器在各實體資料物件內封裝一指標器,該指標器指向在該記憶體中之該集合資料物件;回應於該第二資料包括了對應於該第一資料之該主鍵的該外鍵,該處理器在該集合資料物件內封裝指向該等複數個實體資料物件的至少一指標器;偵測對該集合資料物件之一改變;以及當一集合資料物件狀態並未在先前經複製時,產生在該改變之前該集合資料物件狀態之一複本,其中該集合資料物件及該等複數個實體資料物件經由 對於存留物件之收集的限制條件,在被載入該記憶體之一物件以及在一資料庫端中之該物件的一存留表示(persistent representation)之間提供物件圖形保真度(object graph fidelity),該等限制條件包括至少當該存留物件之收集無法完全載入進該記憶體中時避免更新該存留物件之收集。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/193,574 US7702686B2 (en) | 2005-07-29 | 2005-07-29 | Retrieving and persisting objects from/to relational databases |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200712959A TW200712959A (en) | 2007-04-01 |
TWI412945B true TWI412945B (zh) | 2013-10-21 |
Family
ID=37695617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095124383A TWI412945B (zh) | 2005-07-29 | 2006-07-04 | 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7702686B2 (zh) |
EP (1) | EP1910939A4 (zh) |
CN (1) | CN101233505B (zh) |
TW (1) | TWI412945B (zh) |
WO (1) | WO2007018825A2 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7992140B2 (en) | 2005-07-29 | 2011-08-02 | Microsoft Corporation | Compiler supporting programs as data objects |
US7702686B2 (en) | 2005-07-29 | 2010-04-20 | Microsoft Corporation | Retrieving and persisting objects from/to relational databases |
US7685567B2 (en) * | 2005-07-29 | 2010-03-23 | Microsoft Corporation | Architecture that extends types using extension methods |
US20070027849A1 (en) * | 2005-07-29 | 2007-02-01 | Microsoft Corporation | Integrating query-related operators in a programming language |
US20070044083A1 (en) * | 2005-07-29 | 2007-02-22 | Microsoft Corporation | Lambda expressions |
US7657505B2 (en) * | 2007-01-19 | 2010-02-02 | Microsoft Corporation | Data retrieval from a database utilizing efficient eager loading and customized queries |
US7788275B2 (en) * | 2007-09-18 | 2010-08-31 | Microsoft Corporation | Customization of relationship traversal |
US7890472B2 (en) | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US8484174B2 (en) * | 2008-03-20 | 2013-07-09 | Microsoft Corporation | Computing environment representation |
US20090271765A1 (en) * | 2008-04-29 | 2009-10-29 | Microsoft Corporation | Consumer and producer specific semantics of shared object protocols |
US7890538B2 (en) * | 2008-05-09 | 2011-02-15 | International Business Machines Corporation | System and method for converting and storing data values |
US8280924B2 (en) * | 2009-03-26 | 2012-10-02 | Microsoft Corporation | Object-relational mapping with dynamic relational schemas |
US8381090B2 (en) * | 2010-01-15 | 2013-02-19 | Microsoft Corporation | Dynamic expansion of data calculation scopes |
EP2397939A1 (en) | 2010-06-17 | 2011-12-21 | Siemens Aktiengesellschaft | Accessing entities of a data access layer |
US8538963B2 (en) * | 2010-11-16 | 2013-09-17 | International Business Machines Corporation | Optimal persistence of a business process |
JP5652280B2 (ja) * | 2011-03-18 | 2015-01-14 | 富士通株式会社 | 情報処理プログラム、情報処理装置および情報処理方法 |
CN103092995B (zh) * | 2013-02-21 | 2016-03-30 | 用友网络科技股份有限公司 | 数据卸载装置和数据卸载方法 |
US9367449B2 (en) | 2013-09-11 | 2016-06-14 | Owtware Holdings Limited, BVI | Hierarchical garbage collection in an object relational database system |
EP2849091A1 (en) * | 2013-09-16 | 2015-03-18 | Siemens Aktiengesellschaft | Method and system for merging data into a database table |
US10235434B2 (en) * | 2014-07-29 | 2019-03-19 | Red Hat, Inc. | Optimizing loading of relational data for applications |
US9916154B2 (en) * | 2015-03-12 | 2018-03-13 | Sap Se | File-based transport of table content |
US10691426B2 (en) * | 2017-10-26 | 2020-06-23 | Saudi Arabian Oil Company | Building flexible relationships between reusable software components and data objects |
CN107977470A (zh) * | 2017-12-22 | 2018-05-01 | 陈瑞 | 一种介入对象内部行为的方法及相关装置 |
US20220398232A1 (en) * | 2021-06-14 | 2022-12-15 | Microsoft Technology Licensing, Llc | Versioned metadata using virtual databases |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907846A (en) * | 1996-06-07 | 1999-05-25 | Electronic Data Systems Corporation | Method and system for accessing relational databases using objects |
TW498282B (en) * | 1999-08-31 | 2002-08-11 | Andersen Consulting Llp | System, method, and article of manufacture for a load balancer in environment services patterns |
TW519593B (en) * | 2000-06-20 | 2003-02-01 | Fatwire Corp | System and method for least work publishing |
US20040083244A1 (en) * | 2002-10-23 | 2004-04-29 | Andreas Muecklich | Change-driven replication of data |
US6895471B1 (en) * | 2000-08-22 | 2005-05-17 | Informatica Corporation | Method and apparatus for synchronizing cache with target tables in a data warehousing system |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0792775B2 (ja) | 1989-12-11 | 1995-10-09 | 株式会社日立製作所 | 外部記憶装置群のスペース管理方法 |
US5761493A (en) | 1990-04-30 | 1998-06-02 | Texas Instruments Incorporated | Apparatus and method for adding an associative query capability to a programming language |
US5504885A (en) | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
US5500881A (en) | 1993-07-12 | 1996-03-19 | Digital Equipment Corporation | Language scoping for modular, flexible, concise, configuration descriptions |
WO1995004960A2 (en) | 1993-08-02 | 1995-02-16 | Persistence Software, Inc. | Method and apparatus for managing relational data in an object cache |
US5694598A (en) * | 1994-10-12 | 1997-12-02 | U S West Technologies, Inc. | Method for mapping data between a relational format and an object-oriented format |
US5873093A (en) * | 1994-12-07 | 1999-02-16 | Next Software, Inc. | Method and apparatus for mapping objects to a data source |
US5748966A (en) | 1994-12-30 | 1998-05-05 | The Trustees Of The University Of Pennsylvania | Type error checker for type-free or polymorphic computer language |
US5664180A (en) | 1995-03-20 | 1997-09-02 | Framework Technologies Corporation | Design tool for complex objects which links object structures of a design object in multiple design domains |
US5897622A (en) | 1996-10-16 | 1999-04-27 | Microsoft Corporation | Electronic shopping and merchandising system |
US5937402A (en) | 1997-06-19 | 1999-08-10 | Ontos, Inc. | System for enabling access to a relational database from an object oriented program |
US5937409A (en) | 1997-07-25 | 1999-08-10 | Oracle Corporation | Integrating relational databases in an object oriented environment |
US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
IL135267A0 (en) | 1997-09-26 | 2001-05-20 | Ontos Inc | Object model mapping and runtime engine for employing relational database with object oriented software |
US6574673B1 (en) | 1997-10-31 | 2003-06-03 | Oracle Corporation | Data type mapping for external callouts |
US6339775B1 (en) | 1997-11-07 | 2002-01-15 | Informatica Corporation | Apparatus and method for performing data transformations in data warehousing |
US6243709B1 (en) * | 1998-06-29 | 2001-06-05 | Sun Microsystems, Inc. | Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies |
US6016497A (en) | 1997-12-24 | 2000-01-18 | Microsoft Corporation | Methods and system for storing and accessing embedded information in object-relational databases |
US6148296A (en) | 1998-02-04 | 2000-11-14 | Microsoft, Inc. | Automatic generation of database queries |
US6163776A (en) | 1998-03-23 | 2000-12-19 | Software Tree, Inc. | System and method for exchanging data and commands between an object oriented system and relational system |
US6378126B2 (en) | 1998-09-29 | 2002-04-23 | International Business Machines Corporation | Compilation of embedded language statements in a source code program |
US6470354B1 (en) | 1999-08-05 | 2002-10-22 | International Business Machines Corporation | Implementing persistent object services (POS) on top of a relational database |
US6615323B1 (en) | 1999-09-02 | 2003-09-02 | Thomas Albert Petersen | Optimizing pipelined snoop processing |
US7185016B1 (en) | 2000-09-01 | 2007-02-27 | Cognos Incorporated | Methods and transformations for transforming metadata model |
US6681383B1 (en) | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US6567819B1 (en) | 2000-04-07 | 2003-05-20 | Ebest!, Inc. | Run time objects |
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US6625620B1 (en) | 2000-04-21 | 2003-09-23 | International Business Machines Corporation | Method and apparatus for the management of file attachments in a groupware oriented system |
US6690981B1 (en) | 2000-05-04 | 2004-02-10 | National Instruments Corporation | System and method for encapsulating user interface code for a graphical program |
US6993529B1 (en) | 2001-06-01 | 2006-01-31 | Revenue Science, Inc. | Importing data using metadata |
US7043481B2 (en) * | 2001-06-01 | 2006-05-09 | Thought, Inc. | System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships |
US6857118B2 (en) | 2001-07-25 | 2005-02-15 | The Mathworks, Inc. | Function values in computer programming languages having dynamic types and overloading |
US7054858B2 (en) * | 2001-08-01 | 2006-05-30 | Oic Acquisition Corporation | System and method for retrieval of objects from object to relational mappings |
GB0119488D0 (en) | 2001-08-10 | 2001-10-03 | Cellectivity Ltd | E-commerce method for mobile telephones |
US7103590B1 (en) | 2001-08-24 | 2006-09-05 | Oracle International Corporation | Method and system for pipelined database table functions |
JP2003099441A (ja) | 2001-09-21 | 2003-04-04 | Hitachi Ltd | データ検索手順探索方法 |
US6826568B2 (en) | 2001-12-20 | 2004-11-30 | Microsoft Corporation | Methods and system for model matching |
US7096231B2 (en) | 2001-12-28 | 2006-08-22 | American Management Systems, Inc. | Export engine which builds relational database directly from object model |
JP3870112B2 (ja) | 2002-03-13 | 2007-01-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイル方法、コンパイル装置、及びコンパイル用プログラム |
PL373274A1 (en) | 2002-04-16 | 2005-08-22 | Samsung Electronics Co, Ltd. | Information storage medium for recording interactive contents version information, recording and reproducing method thereof |
US7043720B2 (en) | 2002-04-22 | 2006-05-09 | Sun Microsystems, Inc. | Mechanism for reformatting a simple source code statement into a compound source code statement |
US7149730B2 (en) | 2002-05-03 | 2006-12-12 | Ward Mullins | Dynamic class inheritance and distributed caching with object relational mapping and cartesian model support in a database manipulation and mapping system |
AU2003252065A1 (en) | 2002-07-22 | 2004-02-09 | Thought, Inc. | Dynamic object- driven database manipulation and mapping system |
WO2004044785A1 (en) * | 2002-11-12 | 2004-05-27 | Thought, Inc. | Dynamic transparent object querying generation and parsing |
KR100558765B1 (ko) | 2002-11-14 | 2006-03-10 | 한국과학기술원 | 적응형 경로 인덱스를 이용한 xml 질의 수행 방법 |
US7284242B2 (en) | 2003-01-06 | 2007-10-16 | Xerox Corporation | Program compiler with abstraction composer |
US20040158549A1 (en) * | 2003-02-07 | 2004-08-12 | Vladimir Matena | Method and apparatus for online transaction processing |
US20040194057A1 (en) | 2003-03-25 | 2004-09-30 | Wolfram Schulte | System and method for constructing and validating object oriented XML expressions |
US7103613B2 (en) | 2003-05-14 | 2006-09-05 | International Business Machines Corporation | Object oriented query root leaf inheritance to relational join translator method, system, article of manufacture, and computer program product |
US20040243921A1 (en) | 2003-05-30 | 2004-12-02 | Carr Steven Paul | Methods and systems for synchronizing document elements |
US7383255B2 (en) | 2003-06-23 | 2008-06-03 | Microsoft Corporation | Common query runtime system and application programming interface |
US7086041B2 (en) | 2003-06-27 | 2006-08-01 | Microsoft Corporation | Extensible type system for representing and checking consistency of program components during the process of compilation |
US7013311B2 (en) | 2003-09-05 | 2006-03-14 | International Business Machines Corporation | Providing XML cursor support on an XML repository built on top of a relational database system |
US7185024B2 (en) | 2003-12-22 | 2007-02-27 | International Business Machines Corporation | Method, computer program product, and system of optimized data translation from relational data storage to hierarchical structure |
US7289997B1 (en) | 2004-04-23 | 2007-10-30 | Sun Microsystems, Inc. | System and method for an extensible metadata driven application framework |
US7310638B1 (en) | 2004-10-06 | 2007-12-18 | Metra Tech | Method and apparatus for efficiently processing queries in a streaming transaction processing system |
US7523131B2 (en) | 2005-02-10 | 2009-04-21 | Oracle International Corporation | Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs |
US7853961B2 (en) | 2005-02-28 | 2010-12-14 | Microsoft Corporation | Platform for data services across disparate application frameworks |
US8612468B2 (en) * | 2005-03-02 | 2013-12-17 | Red Hat, Inc. | System and method for retrieving data from a relational database management system |
US7702686B2 (en) | 2005-07-29 | 2010-04-20 | Microsoft Corporation | Retrieving and persisting objects from/to relational databases |
US7992140B2 (en) | 2005-07-29 | 2011-08-02 | Microsoft Corporation | Compiler supporting programs as data objects |
US20070044083A1 (en) | 2005-07-29 | 2007-02-22 | Microsoft Corporation | Lambda expressions |
US20070028222A1 (en) | 2005-07-29 | 2007-02-01 | Microsoft Corporation | Free/outer variable capture |
-
2005
- 2005-07-29 US US11/193,574 patent/US7702686B2/en active Active
-
2006
- 2006-06-29 WO PCT/US2006/025575 patent/WO2007018825A2/en active Application Filing
- 2006-06-29 CN CN2006800274912A patent/CN101233505B/zh active Active
- 2006-06-29 EP EP06785961A patent/EP1910939A4/en not_active Ceased
- 2006-07-04 TW TW095124383A patent/TWI412945B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907846A (en) * | 1996-06-07 | 1999-05-25 | Electronic Data Systems Corporation | Method and system for accessing relational databases using objects |
TW498282B (en) * | 1999-08-31 | 2002-08-11 | Andersen Consulting Llp | System, method, and article of manufacture for a load balancer in environment services patterns |
TW519593B (en) * | 2000-06-20 | 2003-02-01 | Fatwire Corp | System and method for least work publishing |
US6895471B1 (en) * | 2000-08-22 | 2005-05-17 | Informatica Corporation | Method and apparatus for synchronizing cache with target tables in a data warehousing system |
US20040083244A1 (en) * | 2002-10-23 | 2004-04-29 | Andreas Muecklich | Change-driven replication of data |
Also Published As
Publication number | Publication date |
---|---|
US7702686B2 (en) | 2010-04-20 |
EP1910939A2 (en) | 2008-04-16 |
WO2007018825A2 (en) | 2007-02-15 |
CN101233505B (zh) | 2010-11-17 |
CN101233505A (zh) | 2008-07-30 |
WO2007018825A3 (en) | 2008-01-17 |
EP1910939A4 (en) | 2011-03-30 |
TW200712959A (en) | 2007-04-01 |
US20070027906A1 (en) | 2007-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI412945B (zh) | 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統 | |
US7043481B2 (en) | System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships | |
CN105144080B (zh) | 用于元数据管理的*** | |
US8260824B2 (en) | Object-relational based data access for nested relational and hierarchical databases | |
US6704743B1 (en) | Selective inheritance of object parameters in object-oriented computer environment | |
US7822710B1 (en) | System and method for data collection | |
US9311623B2 (en) | System to view and manipulate artifacts at a temporal reference point | |
US20110119683A1 (en) | Object graph editing context and methods of use | |
US20060235899A1 (en) | Method of migrating legacy database systems | |
US8805777B2 (en) | Data record collapse and split functionality | |
US20130080349A1 (en) | Management and notification of object model changes | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
US20200364100A1 (en) | Memory abstraction for lock-free inter-process communication | |
US9606998B2 (en) | Extending a content repository using an auxiliary data store | |
US9390111B2 (en) | Database insert with deferred materialization | |
CN113032393A (zh) | 一种绑定关联对象的方法和装置 | |
US11561976B1 (en) | System and method for facilitating metadata identification and import | |
CN113761040A (zh) | 数据库与应用程序双向映射方法、设备、介质及程序产品 | |
CN114356945A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Enaya | An Experimental Performance Comparison of NoSQL and RDBMS Data Storage Systems in the ERP System Odoo | |
US20210216526A1 (en) | Autonomous self-healing application data validation using database configurations | |
US20150120605A1 (en) | Virtual data write-back for business intelligence reporting | |
Stroud | Android Database Best Practices | |
US11940951B2 (en) | Identification and import of metadata for extensions to database artefacts | |
US20240134883A1 (en) | Data object management using data object clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |