達夢資料庫基礎知識(二)資料庫邏輯結構

winderen111發表於2021-10-26

1、資料庫和例項

在DM7 之前版本的 DM 資料庫中,資料庫和例項 這兩個術語經常可以互相替換,

意義也很相近。在DM7 以及之後版本的資料庫中資料庫和例項這兩個概念之間有

著很大的差別,甚至可以 說它們是兩個完全不同的實體 。

    1) 資料庫

在有些情況下,資料庫的概念包含的內容會很廣泛。如在單獨提到達夢資料庫時,可能

指的是達夢資料庫產品,也有可能是正在執行的達夢資料庫例項, 還可能是達夢資料庫執行中需的一系列物理 檔案的集合等。但是,當同時出現達夢資料庫和例項時,達夢資料庫指的是磁碟上存放在達夢資料庫中的資料的集合,一般包括:資料檔案、日誌檔案、控制檔案以及臨時資料檔案等 。

2) 例項

例項一般是由一組正在執行的 DM 後臺進 程 執行緒以及一個大型的共享記憶體組 成。簡 單來說,例項就是運算元據庫的一種手段,是用來訪問資料 庫的記憶體結構 以及後 臺程式的集合。

達夢資料庫儲存在伺服器的磁碟上,而例項則儲存於伺服器的記憶體中。 透過執行例項,可以運算元據庫中的內容。在任何時候,一個例項只能與 個資料庫進行關聯(裝載、開啟或者掛起數 據庫)。在大多數情況下,一個資料庫也只有一個例項對其進行操作。但

是在 DM 共享 儲存 叢集 DMDSC 中,多個例項可以同時裝載並開啟一個資料庫(位於一組由多臺服 務器 共 享的 物 理磁碟上)。此時,我們可以同時從多臺不同的計算機訪問這個資料庫。

 

2、達夢資料庫邏輯結構

      DM 資料庫為資料庫中的所有物件分配邏輯空間,並 存放在資料文 件中。在 DM 資料庫內部,所有的資料檔案組合在一起被劃分到一個 或者多個表空間中,所有的資料 庫內部物件都存放在這些表空間中。同時表空間被進一步劃分為段、簇和頁(也稱塊)。透過這種細分,可以使得 DM 資料庫能夠更加高效地控制磁碟空間的利用率。


可以看出,在DM8 中儲存的層次結構如下:

  (1)資料庫由一個或多個表空間組成;

  (2)每個表空間由一個或多個資料檔案組成;

  (3)每個資料檔案由一個或多個簇組成;

  (4) 段是簇的上級邏輯單元,一個段可以跨多個資料檔案;

  (5)簇由磁碟上連續的頁組成,一個簇總是在一個資料檔案中;

 (6)頁是資料庫中最小的分配單元,也是資料庫中使用的最小的IO 單元。

 

1)      表空間

在達夢資料庫中,表空間由一個或者多個資料檔案組成。達夢資料庫中的所有物件在邏輯上都存放在表空間中,而物理上都儲存在所屬表空間的資料檔案中。

在建立達夢資料庫時,會自動建立5 個表空間:SYSTEM 表空間、ROLL 表空間、MAIN

表空間、TEMP 表空間和HMAIN 表空間。

  (1)SYSTEM 表空間存放了有關達夢資料庫的字典資訊,使用者不能在SYSTEM 表空間創

建表和索引。

  (2)ROLL 表空間完全由達夢資料庫自動維護,使用者無需干預。該表空間用來存放事務運

行過程中執行DML 操作之前的值,從而為訪問該表的其他使用者提供表資料的讀一致

性檢視。

  (3)MAIN 表空間在初始化庫的時候,就會自動建立一個大小為128M 的資料檔案

MAIN.DBF。在建立使用者時,如果沒有指定預設表空間,則系統自動指定MAIN 表

空間為使用者預設的表空間。

  (4)TEMP 表空間完全由達夢資料庫自動維護。當使用者的SQL 語句需要磁碟空間來完成

某個操作時,達夢資料庫會從TEMP 表空間分配臨時段。如建立索引、無法在記憶體中

完成的排序操作、SQL 語句中間結果集以及使用者建立的臨時表等都會使用到TEMP

表空間。

  (5)HMAIN 表空間屬於HTS 表空間,完全由達夢資料庫自動維護,使用者無需干涉。當用

戶在建立HUGE 表時,未指定HTS 表空間的情況下,充當預設HTS 表空間。

 

  2)記錄

資料庫表中的每一行是一條記錄。在達夢資料庫中,除了 Huge 表,其他的表都是在資料頁中按記錄儲存資料的。也就是說,記錄是儲存在資料頁中的,記錄並不是達夢資料庫的儲存單位,頁才是。 由於記錄不能跨頁儲存,這樣記錄的長度就受到資料頁大小的限制 。資料頁中還包含了頁頭控制資訊等空間,因此達夢規定每條記錄的總長度不能超過頁面大小的一半。

  3)頁

資料頁(也稱資料塊) 是達夢資料庫中最小的資料儲存單元。頁的大小對應物理儲存空間上特定數量的儲存位元組,在達夢資料庫中,頁大小可以為4KB、8KB、16KB或者32 K B

使用者在建立資料庫時可以指定,預設大小為8K B ,一旦建立好了資料庫,則在該庫的整個生命週期內,頁大小都不能夠改變。

  4)簇

簇是資料頁的上級邏輯單元,由同一個資料檔案中16個或32個或64個 連續的資料頁組成。在達夢資料庫中,簇的大小由使用者在建立資料庫時指定,預設大小16 。假定某個數

據檔案大小為32MB頁大小為8KB,則共有 32MB/8KB /16 =256 個簇,每個簇的大小為

8K*16=1 28K 。和資料頁的大小一樣 ,一旦建立好資料庫,此後該資料庫的簇的大小就不能夠改變。

  5)段

段是簇的上級邏輯分割槽單元,它由一組簇組成。在同一個表空間中,段可以包含來自不

同資料檔案的簇,即一個段可以跨越不同的資料檔案 。而一個簇以及該簇所包含的資料頁則只能來自一個資料檔案,是連續的16或者32個資料頁。由於簇的數量是按需分配的 ,資料段中的不同簇在磁碟上不一定連續。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29210902/viewspace-2839240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章