官术网_书友最值得收藏!

2.3 認識數據庫對象

常見的數據庫對象包括表、索引、視圖。

1. 表

對于初學者來說,對表的概念也有一定的認識。因為使用者對數據庫的操作,90%以上是對表的操作。

什么是數據庫表呢?它用于描述一個實體,例如雇員。可以使用一個表名(如employees)和一個列集來定義表。當用戶創建表時,應該給出每一列的列名、數據類型和寬。

對于關系型數據來說,表其實就是許多行數據的集合。每條數據對應表中的一行。表中列用來標識實體的屬性,而行用來標識實體的實例。例如,雇員實體的屬性對應雇員ID列和姓氏列。行標識一個特定的雇員,可以選擇性地為每個表列指定規則。這些規則稱為完整性約束。例如,“非空”即是一個完整性約束。此約束強制每一行中的該列都包含一個值。

2. 索引

在關系數據庫中,索引是一種與表有關的數據庫結構,同時也是一個可選的數據結構,可以在表中的一個或多個列上創建索引。索引可以提高數據檢索的性能。在處理一個請求時,數據庫可以使用可用索引有效地找到請求的行。當應用程序經常查詢某一特定行或特定范圍的行時,索引很有用。

索引在邏輯和物理上都獨立于數據。因此,可以刪除和創建索引,而對表或其他索引沒有任何影響。在刪除索引后,所有應用程序可以繼續運行。用戶可以將索引的作用想象為一本圖書的目錄,根據目錄中的頁碼快速找到所需的內容,所以在實際的企業生產環境中,索引的使用是必不可少的。

當檢索表中少量的行時,使用Oracle索引能夠更快速地訪問表中的這些行。索引存儲了進行索引的列的值,同時存儲包含索引值的行的物理Rowid,唯一的例外是索引組織表(IOT),它使用主鍵作為邏輯ROWID。一旦在索引中找到匹配值,索引中的ROWID就會指向表行的確切位置:哪個文件、文件中的哪個塊以及塊中的哪一行。可以在一列或多個列上創建索引。索引條目存儲在B-樹結構中,因此遍歷索引以找到行的鍵值只需要使用非常少的O操作。

在唯一索引的情況下,使用索引可能有兩個目的:提高搜索行的速度,以及在索引列上實施唯一或主鍵約束。在插入、更新或刪除表行的內容時,自動更新索引中的條目。刪除表時,在該表上創建的所有索引也自動被刪除。

3. 視圖

視圖允許用戶查看單獨表或多個連接表中數據的自定義表示。視圖也稱為“存儲查詢”,用戶無法看到視圖底層的查詢細節。普通的視圖不存儲任何數據,而只存儲定義,并且在每次訪問視圖時都運行底層的查詢。

普通視圖的擴展稱為“物化視圖”,允許同時存儲查詢的結果和查詢的定義,從而加快處理速度,另外還有其他優點。對象視圖類似于傳統的視圖,它可以隱藏底層表連接的細節,并且允許在數據庫中進行面向對象的開發和處理,而底層的表仍然保持數據庫關系表的格式。

主站蜘蛛池模板: 兴仁县| 湘西| 渭南市| 纳雍县| 乌鲁木齐市| 云梦县| 元谋县| 久治县| 来宾市| 临夏县| 双鸭山市| 陆丰市| 温宿县| 岗巴县| 广宁县| 怀宁县| 鄂托克前旗| 平阴县| 滨州市| 鹿邑县| 德江县| 汤阴县| 收藏| 沁阳市| 万全县| 富源县| 荥阳市| 涿州市| 济阳县| 南投市| 来凤县| 彩票| 宁海县| 靖边县| 福州市| 嘉峪关市| 始兴县| 手机| 越西县| 平乡县| 桦川县|