資料庫開發(19)基於物件的資料庫
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)物件-關係對映系統:整合於程式設計語言中的複雜資料型別,設計為位於關聯式資料庫系統之上的一層。
相關文章
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- 基於gin的golang web開發:訪問mysql資料庫GolangWebMySql資料庫
- 基於gin的golang web開發:使用資料庫事務GolangWeb資料庫
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- 基於PMEM的PG資料庫Memhive資料庫Hive
- SMProxy 分析 (基於 Swoole 開發的 MySQL 資料庫連線池)MySql資料庫
- AndoridSQLite資料庫開發基礎教程(6)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(5)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(4)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(10)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(9)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(8)SQLite資料庫
- AndoridSQLite資料庫開發基礎教程(7)SQLite資料庫
- 基於雲資料庫MongoDB版進行應用開發資料庫MongoDB
- 基於.Net開發的資料庫匯入匯出的開源專案資料庫
- 基於json資料格式實現的簡單資料庫——jsonDBJSON資料庫
- Andorid SQLite資料庫開發基礎教程(2)SQLite資料庫
- Andorid SQLite資料庫開發基礎教程(1)SQLite資料庫
- Andorid SQLite資料庫開發基礎教程(3)SQLite資料庫
- 資料庫管理丨10種不同的雲開發資料庫管理技巧資料庫
- 使用js開發資料庫JS資料庫
- 達夢資料庫開發資料庫
- 資料庫基礎資料庫
- 資料庫 基礎資料庫
- 資料庫系列——基於Canal實現MySQL增量資料同步資料庫MySql
- 12、Oracle中的其它資料庫物件Oracle資料庫物件
- django基礎--02基於資料庫的小專案Django資料庫
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- [python] 基於Tablib庫處理表格資料Python
- 資料庫 資料庫的完整性資料庫
- 開源如何有助於資料庫安全資料庫
- 騰訊基於全時態資料庫技術的資料閃回資料庫
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- 資料庫基礎使用資料庫
- 重新學習MySQL資料庫開篇:資料庫的前世今生MySql資料庫
- 資料庫主要物件及事務資料庫物件
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- 【資料庫設計】資料庫的設計資料庫
- 物件代理資料庫:大資料時代下的應需之作物件資料庫大資料