- 精通Oracle 12c 數據庫管理
- 王榮鑫
- 1068字
- 2019-07-30 18:03:56
2.3 認識數據庫對象
常見的數據庫對象包括表、索引、視圖。
1. 表
對于初學者來說,對表的概念也有一定的認識。因為使用者對數據庫的操作,90%以上是對表的操作。
什么是數據庫表呢?它用于描述一個實體,例如雇員。可以使用一個表名(如employees)和一個列集來定義表。當用戶創建表時,應該給出每一列的列名、數據類型和寬。
對于關系型數據來說,表其實就是許多行數據的集合。每條數據對應表中的一行。表中列用來標識實體的屬性,而行用來標識實體的實例。例如,雇員實體的屬性對應雇員ID列和姓氏列。行標識一個特定的雇員,可以選擇性地為每個表列指定規則。這些規則稱為完整性約束。例如,“非空”即是一個完整性約束。此約束強制每一行中的該列都包含一個值。
2. 索引
在關系數據庫中,索引是一種與表有關的數據庫結構,同時也是一個可選的數據結構,可以在表中的一個或多個列上創建索引。索引可以提高數據檢索的性能。在處理一個請求時,數據庫可以使用可用索引有效地找到請求的行。當應用程序經常查詢某一特定行或特定范圍的行時,索引很有用。
索引在邏輯和物理上都獨立于數據。因此,可以刪除和創建索引,而對表或其他索引沒有任何影響。在刪除索引后,所有應用程序可以繼續運行。用戶可以將索引的作用想象為一本圖書的目錄,根據目錄中的頁碼快速找到所需的內容,所以在實際的企業生產環境中,索引的使用是必不可少的。
當檢索表中少量的行時,使用Oracle索引能夠更快速地訪問表中的這些行。索引存儲了進行索引的列的值,同時存儲包含索引值的行的物理Rowid,唯一的例外是索引組織表(IOT),它使用主鍵作為邏輯ROWID。一旦在索引中找到匹配值,索引中的ROWID就會指向表行的確切位置:哪個文件、文件中的哪個塊以及塊中的哪一行。可以在一列或多個列上創建索引。索引條目存儲在B-樹結構中,因此遍歷索引以找到行的鍵值只需要使用非常少的O操作。
在唯一索引的情況下,使用索引可能有兩個目的:提高搜索行的速度,以及在索引列上實施唯一或主鍵約束。在插入、更新或刪除表行的內容時,自動更新索引中的條目。刪除表時,在該表上創建的所有索引也自動被刪除。
3. 視圖
視圖允許用戶查看單獨表或多個連接表中數據的自定義表示。視圖也稱為“存儲查詢”,用戶無法看到視圖底層的查詢細節。普通的視圖不存儲任何數據,而只存儲定義,并且在每次訪問視圖時都運行底層的查詢。
普通視圖的擴展稱為“物化視圖”,允許同時存儲查詢的結果和查詢的定義,從而加快處理速度,另外還有其他優點。對象視圖類似于傳統的視圖,它可以隱藏底層表連接的細節,并且允許在數據庫中進行面向對象的開發和處理,而底層的表仍然保持數據庫關系表的格式。
- 從零開始構建企業級RAG系統
- FuelPHP Application Development Blueprints
- C#完全自學教程
- Twilio Best Practices
- 算法大爆炸:面試通關步步為營
- Lua程序設計(第4版)
- 深入淺出RxJS
- Unity 5.x By Example
- D3.js 4.x Data Visualization(Third Edition)
- Learning FuelPHP for Effective PHP Development
- Visual Basic程序設計
- 詳解MATLAB圖形繪制技術
- Visual Basic 6.0程序設計實驗教程
- 自學Python:編程基礎、科學計算及數據分析(第2版)
- 游戲設計的底層邏輯