1. 程式人生 > 其它 >【資料庫下】第一章 物理設計(資料庫儲存技術)

【資料庫下】第一章 物理設計(資料庫儲存技術)

第一章 物理設計(資料庫儲存技術)

資料庫設計主要有哪些環節?

資料庫邏輯設計後得到什麼?

二維表如何儲存?

主要學習目標

  • 表記錄的儲存方式
  • 表結構的儲存方式

思考問題

  • 作業系統的資料操作方式,CPU、記憶體、硬碟如何進行資料傳輸的?
  • 檔案系統如何儲存資料的?

一、檔案組織

討論:如何在物理儲存介質上組織資料? 
1)資料在物理儲存(磁碟)中如何組織? 

物理設計任務:考慮用檔案表示邏輯資料模型(資料庫模式)的不同方式

​ 一個資料庫被對映到多個不同的檔案(file) ,檔案由作業系統來管理,這些檔案被永久儲存在磁碟上!

​ 一個檔案在邏輯上被組織成記錄的一個序列,記錄被對映到磁碟塊(block)

上。

​ 每個檔案(file)被分成定長的儲存單元-,塊是資料儲存和傳輸的基本單位(預設一般是4-8KB)。

​ 一個塊可以包括很多記錄(假設一個記錄總比塊小;對大資料如圖片等需單獨處理和儲存),且一個記錄的資料不能跨塊儲存。

討論:每條記錄如何進行組織? 
定長記錄和變長記錄各自的特點? 
定長記錄:

特點:
查詢記錄較快,但記錄更新較慢。

變長記錄:

特點:
查詢記錄較慢,但記錄更新較快。

二、(資料庫)檔案中記錄的組織

討論:如何在物理儲存介質上組織資料庫資料?  
  • 堆檔案:

(一個關係表的)記錄在(一個)檔案空間中任意放置。
注:對這種組織方式,在按給定屬性值搜尋記錄時,需依次讀出所有記錄,並依次選出滿足條件的所有記錄,查詢效率低。

  • 順序檔案 :

    按一定的順序在檔案中組織記錄。

  • 雜湊檔案:

    按照雜湊函式計算值存放相應記錄。

  • 多表簇集檔案:

    不同關係表裡的記錄存放在同一個檔案中。

1、順序檔案組織
1) 順序檔案在邏輯上是如何組織資料庫資料(關係)的? 
2) 順序檔案的物理儲存如何實現?

順序檔案的邏輯組織方式:
1)將關係中記錄按“某屬性/組-搜尋碼”順序排列
2)並用指標將記錄依序連線
特點:按搜尋碼搜尋的效率高。

順序檔案的物理組織方式:
1)將關係中記錄按搜尋碼次序進行物理儲存
2)採用定長記錄或變長記錄方式
3)一個記錄的資訊不能分存在兩個物理塊中

3) 順序檔案儲存的資料如何更新?

刪除和插入記錄時的開銷大(需大量移動記錄)!

改善方法(指標管理)

2、多表聚集檔案組織
4) 什麼是多表聚集檔案,物理儲存如何實現,有何好處?

多表聚集檔案組織:是指將多個關係的資料組織在一個檔案中(它們的記錄相互交織在一起)

​ 注意:實現多表聚集檔案組織,需底層作業系統配合,實現對檔案的管理(只有大型資料庫系統才支援)。

5)多表聚集檔案組織方式的優點和不足?
3、物理設計的任務
6) 實際應用中,物理設計到底做什麼?

​ 前面,介紹了大型資料庫管理系統(DBMS)支援的檔案中記錄的物理儲存方式,實際上都是由DBMS自動實現對使用者定義好的邏輯資料(關係)的自動儲存,似乎物理儲存對使用者是透明的,就像大家上機所感受的一樣。

資料庫應用設計人員還需要做物理設計工作嗎,如何做?

資料庫物理設計(應用開發中)的主要工作:
1)在定義關係模式時,需要確定採用定長還是變長記錄;
(通過確定採用的屬性型別,因有變長屬性)
2)對每個關係模式,需要確定影響記錄存放次序的搜尋碼;
(根據常用/重要的查詢要求,確定主碼或建聚集索引Cluster Index)
3)對每個關係模式,需要確定是否還需要建立輔助索引檔案;
(根據常用/重要的查詢要求,確定建哪些索引Index)
4)對具有連線條件的一組關係模式,需要確定是否採用多表聚集檔案儲存;
(根據多表連線上重要應用查詢快速訪問需要)
5)對應用的所有關係模式,需要確定應當劃分為多少個數據庫來儲存;
(根據關係模式間相關性、應用相關性、資料保密需要、資料庫備份需要等)
6)對每個資料庫,需要確定資料庫檔案存放的物理路徑(不同伺服器,不同介質)
(根據訪問效率需要、應用相關性、資料重要性等)

三、資料字典

討論:RDBMS管理什麼資料?  
1)什麼是元資料?
2)資料字典儲存什麼資訊?
3)資料字典儲存的作用?
資料庫儲存機制
討論:RDBMS元資料如何管理?  

一個簡單的ER圖示:

  • 一個數據庫對應n個塊
  • 一個數據庫多個表
Create database完成了什麼事情?
Create table?
這些sql語句是如何處理資料的?
Insert
Delete
Update

找到塊,插入,塊滿了,再申請一個塊
更新、刪除
Oracle的資料字典

四、資料庫緩衝區

1.資料庫緩衝區及作用
討論:資料庫緩衝區在改善資料訪問中的作用?
1)需要建立資料庫緩衝區嗎,為何能提高訪問效率?
2.資料庫緩衝區管理器
2)如何管理資料庫緩衝區?
3.緩衝區替換策略
3) 如何確定緩衝區中的無用區塊?
1、在檔案中,記錄有哪兩種方式表示,對於記錄的集合如何組織?
記錄分為定長記錄、變長記錄。
對於記錄的集合組織為堆檔案、順序檔案、雜湊檔案、多表聚集檔案。
堆檔案:一個關係表的記錄在一個檔案空間中任意放置。
順序檔案 :按一定的順序在檔案中組織記錄。
雜湊檔案:按照雜湊函式計算值存放相應記錄。
多表簇集檔案:不同關係表裡的記錄存放在同一個檔案中。

2、什麼是元資料?元資料如何儲存?
一個關係資料庫需要維護關於關係的資料,如關係的模式等。一般來說,這樣的“關於資料的資料”稱為元資料。
關於關係的關係模式和其他元資料儲存在稱為“資料字典”或系統目錄的結構中。