資料庫開發(19)基於物件的資料庫

笨蛋糕發表於2014-02-24

1、建立物件導向的資料庫系統,即一個以本地方式支援物件導向型別系統,而且允許物件導向程式語言使用本地語言的型別系統直接訪問資料的資料庫系統。

2、自動地將程式語言的本地型別表示的資料轉換為關聯式資料庫的表示形式,反之亦然。資料轉換由物件-關係對映來說明。

3、基本資料項是相當小的記錄,且記錄的域是原子的,即它們沒有本進一步機構化,並且第一正規化成立。而且只有少數幾種記錄型別。

3、多重繼承:即一個型別可以被宣告為多個型別的子型別。

注意:SQL標準不支援多重繼承。在SQL中,一個結構型別的值必須恰好有一個最明確型別,即每一個值在建立時必須被關聯到一個確定的型別。

4、如果子表和父表中的元組在所有的繼承屬性上具有同樣的值,則稱子表中的元組與父表中的元組對應。因此,相對應的元組表示同一個實體。

子表的一致性要求:

1)父表的每個元組至多可以與它的每個直接子表的一個元組相對應。

2)SQL有一個附加約束,所有互相對應的元組必須又同一個元組派生出來(插入到一個表中)。

5、SQL支援兩種集合體型別:

陣列和多重集合。多重集合是一個無需集合,一個元素可能在其中出現多次。與集合的區別在於,集合只允許每個元素最多出現一次。

6、巢狀:將一個1NF關係轉換為巢狀關係的反向過程。

解除巢狀:將一個巢狀關係轉換成具有更少(或沒有)以關係為值的屬性的形式的過程。

7、子表可以在無需複製所有繼承欄位的情況下,以如下方式有效的儲存:

1)每一個表只儲存主碼(可能是從父表中繼承下來的)和區域性定義的屬性。

2)每一個表儲存所有繼承和區域性定義的屬性。

8、物件的持久化:

按類持久。按建立持久。按標誌持久。按可達性持久。

持久物件的物件識別符號使用“持久化指標”來實現。物件的資料部分必須要對每個物件單獨進行儲存。

9、在資料庫中尋找物件的方法:

1)為物件命名。

2)將物件識別符號或指向物件的持久化指標暴露出來,使它們可以在外部儲存。

3)儲存物件的集合體,並允許程式在集合體上迭代尋找所需物件。

10、C++語言的一些物件導向特性為持久化提供支援,而無需改變語言本身。通過類庫來提供持久化支援具有隻需對C++做極少的必要修改的優點,而且相對容易實現。

注意:

持久指標:必須定義一個新的資料型別已表示持久指標。

持久物件建立:new操作符用於通過定義一個“過載的”版本的操作符來建立持久物件。

類區間:每個類的類區間是自動建立和維護的。

聯絡:類之間的聯絡常常通過儲存每個物件指向其相關物件的指標來實現。關聯到給定類的多個物件的物件儲存一個指標的集合。因此如果一對物件之間存在聯絡,那麼每個物件都應該儲存一個指向另一個物件的指標。

迭代器介面:由於程式需要在類成員上迭代,就需要一個介面以在類區間的成員上迭代。

事務:持久化C++系統提供對啟動、提交或回滾一個事務的支援。

更新:允許透明的持久化。

查詢語言:持久化C++系統定義了一個查詢語言。

11、總結:

1)關係系統:簡單資料模型,功能強大的查詢語言,高保護性。

2)基於持久化程式設計語言的物件導向資料庫:複雜的資料型別,與程式設計語言整合,高效能。

3)物件-關係系統:複雜資料型別,強大的查詢語言,高保護性。

4)物件-關係對映系統:整合於程式設計語言中的複雜資料型別,設計為位於關聯式資料庫系統之上的一層。



相關文章