DB2數據庫基本概念

http://db365.net/home.php?mod=space&uid=19鑑於CSDN無故刪除博文,本博客不再更新,暫時遷至http://www.db365.net


1 DB2數據庫基本概念

1.1數據庫對象

關鍵的數據庫對象包括:實例、數據庫、節點組、表、視圖、索引、模式、系統目錄表。圖1顯示了一些數據庫對象之間的關係。它也顯示了表、索引和長整型數據存儲在表空間中的情況。

 

 

1.一些數據庫對象之間的關係

 

1.1.1實例

實例(有時稱爲數據庫管理程序)是管理數據的DB2代碼。它控制可對數據執行的操作,並管理分配給它的系統資源。每一個實例都是一個完整的環境。一個實例有它自己的數據庫(其他的實例不能存取它)。它還有獨立的安全性,不受同一機器(系統)上其他實例的影響。

1.1.2數據庫

關係數據庫將數據表示成表的集合。表由數目已定的列和任意數目的行組成。每個數據庫都包括一組描述數據的邏輯和物理結構的系統目錄表,一個包含爲該數據庫分配的參數值的配置文件以及一個帶有正在進行的事務和可歸檔事務的恢復日誌。

1.1.3節點組

節點組是一個或多個數據庫分區組成的集合。當您想爲數據庫創建表時,首先創建節點組以存儲表空間,然後創建表空間以存儲表。

1.1.4

關係數據庫將數據表示成表的集合。表由邏輯排列的行和列數據組成。所有數據庫的表數據都被存儲在表空間中。

1.1.5視圖

視圖是高效率的數據呈現方法(無需維護數據)。視圖不是實際的表,不需要永久性存儲器。創建並使用一個“虛擬表”。

視圖可以包括它所基於的表中的所有或某些列或行。例如,可以在視圖中連接一個部門表和一個員工表,以便可以列出特定部門中的所有僱員。圖2顯示了表和視圖的關係。

1.1.6索引

索引是一組關鍵字,其每一個都指向一些行。例如,圖3中,表A的一個索引基於表中的員工號碼。此關鍵字提供指向錶行的指針:員工號碼19指向員工KMP。通過使用指針創建指向數據的直接路徑,索引是更有效的存取錶行成爲可能。

SQL優化器自動選擇最有效率的存取表中數據的方法。當確定最快速的數據存取路徑時,優化器會將索引考慮在內。

可創建唯一索引以確保索引關鍵字的唯一性。索引關鍵字是定義了索引的一個列或一些列的有序集合。使用唯一索引將確保在編入的索引的列中,每個索引關鍵字的值都是唯一的。圖3顯示了索引與表之間的關係。

 

2.表和視圖之間的關係

 

 

3.索引與表之間的關係

1.1.7模式

模式是一個標識符,如用戶ID,它幫助分組表和其他數據庫對象。模式可以歸個人擁有,擁有者可以控制對數據以及其中的對象的存取。

模式也可以是數據庫中的對象。它可以在創建模式中的第一個對象時自動創建。這樣的對象可以是任何可以由模式名限定的對象,如表、索引、視圖、程序包、單值類型、函數或觸發器。

1.1.8系統目錄表

每個數據庫都包括一組描述數據的邏輯和物理結構的系統目錄表。DB2爲每個數據庫維護一大組系統目錄表。這些表包含有關數據庫對象(例如,用戶表、視圖和索引)的定義信息,以及用戶對這些對象所擁有的權限的安全性信息。它們在數據庫創建時被創建,並在常規操作期間得到更新。不能顯示的創建或卸載下它們,但是可以使用目錄視圖查詢和查看它們的內容。

1.2存儲器對象

下列數據庫對象用來定義在系統上存儲數據的方式以及改進(與存取數據相關的)性能的方法:表空間、容器和緩衝池。

1.2.1表空間

數據庫由稱爲表空間的部件組成。表空間是用來存儲表的位置。當創建表時,您可以決定將特定對象(如索引和大對象)數據與其餘表數據分開存放。表空間也可以分佈在一個或多個物理存儲設備上。圖4顯示了在表空間之間分佈數據時具有的一些靈活性。

 

 

4.表空間

將容器分配給表空間。容器是分配的物理存儲器(如文件和設備)。

表空間可以使系統管理空間(SMS)或數據庫管理空間(DMS)。對於SMS表空間,每個容器都是操作系統的文件空間中的一個目錄,由操作系統的文件管理器控制存儲空間。對於DMS表空間,每個容器或者是固定大小的預分配文件,或者是物理設備如磁盤,由數據庫管理程序控制存儲空間。

表空間有三種類型:規則、臨時和長整數。

包含用戶數據的表存放在規則表空間中。缺省用戶表空間名爲USERSPACE1。索引也存儲在規則表空間中。系統目錄表存放在規則表空間中。缺省系統目錄表空間名爲SYSCATSAPCE

包含長整數字段數據或長整數對象數據(如多媒體對象)的表存放在長整數表空間中。

臨時表空間分爲系統臨時表空間或用戶臨時表空間。系統臨時表空間用來存儲SQL操作(如排序、重組表、創建索引和連接表)期間所需的內部臨時數據。雖然可以創建任意數目個系統臨時表空間,但建議您只適用大多數表所使用的頁大小創建一個。缺省系統臨時表空間名爲TEMPSPACE1。用戶臨時表空間用來存儲已說明全局臨時表(已說明全局臨時表存儲的是應用程序臨時數據)。用戶臨時表空間不是在數據庫創建時缺省創建的。

1.2.2容器

容器是物理存儲設備。它可以由目錄名、設備名或文件名標識。

將爲表空間分配容器。單個表空間可以橫跨多個容器,但每個容器只能屬於一個表空間。

5舉例說明了表與數據庫中的表空間、相關聯的容器和磁盤之間的關係。

 

 

5.表空間、相關聯的容器和磁盤之間的關係

EMPLOYEEDEPARTMENTPROJECT表在HUMANRES表空間中,該表空間橫跨容器01234。此示例顯示每個容器存在於不同的磁盤上。

任何表的數據都以循環方式存儲在表空間中的所有容器中。這能在屬於給定表空間容器之間平衡數據。數據庫管理程序在使用另一個容器之前寫入一個容器的頁數稱爲數據塊大小。

1.2.3緩衝池

緩衝池指的是從磁盤讀去高速緩存表和索引數據頁時或修改它們時分配給它們的主存儲器。緩衝池的目的是改進系統性能。從內存存取數據要比從磁盤存取數據塊的多;因此,數據庫管理程序需要讀寫(I/O)的次數越少,性能也越好。(可以創建多個緩衝池,雖然在大多數情況下只需要一個。)

因爲可以縮短慢速I/O所造成的延遲,所以緩衝池的配置是最重要的調整項目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章