本書主要介紹Oracle數(shù)據(jù)庫的基本概念、知識和技術(shù),注重培養(yǎng)Oracle數(shù)據(jù)庫技術(shù)的基本操作技能。本書內(nèi)容體系完整,覆蓋了Oracle數(shù)據(jù)庫技術(shù)的主要組成部分,設(shè)置有Oracle數(shù)據(jù)庫概述、管理與開發(fā)工具、數(shù)據(jù)庫運行狀態(tài)維護、物理存儲結(jié)構(gòu)、邏輯存儲結(jié)構(gòu)、數(shù)據(jù)庫對象管理、數(shù)據(jù)庫安全管理、數(shù)據(jù)庫備份與恢復(fù)以及PL/SQL程序設(shè)計等9個章節(jié)內(nèi)容。為滿足實際教學(xué)的需要,每章后面均附有課后習題,附錄提供了7個實驗項目,可以作為實驗教學(xué)內(nèi)容。此外,本書有配套的在線課程資源服務(wù)網(wǎng)站,免費提供課后習題及實驗項目的參考答案、課件PPT以及試題庫等教學(xué)資源,并可以進行在線互動交流。
本書適合作為本科院校和高職院校計算機相關(guān)專業(yè)的教材,也適合作為Oracle數(shù)據(jù)庫技術(shù)的自學(xué)或者培訓(xùn)教材。
1.本書以O(shè)racle 12c為平臺,系統(tǒng)講解Oracle數(shù)據(jù)庫的基礎(chǔ)概念、知識和技術(shù),注重基本操作技能的培養(yǎng)。
2.重點突出,詳略得當,詳細介紹了重點技術(shù)內(nèi)容,簡明扼要講解較為繁瑣的理論內(nèi)容。
3.提供大量實用性強的操作實例,并通過代碼演示及操作截圖的方式直觀介紹Oracle數(shù)據(jù)庫技術(shù),適合初學(xué)者閱讀和實踐。
4.每章配有練習題,幫助讀者鞏固所學(xué)知識,附錄提供七個實驗項目,可以作為實驗教學(xué)內(nèi)容。
5.提供各章教學(xué)PPT、課后練習題及實驗項目的參考答案,在自有平臺學(xué)者網(wǎng)創(chuàng)建在線課程,共享各類課程資源,提供互動交流服務(wù)。網(wǎng)址為:http://www.scholat.com/course/odbt。
第5章chapter5
邏輯存儲結(jié)構(gòu)接正文接標題1.1微型計算機簡介本章學(xué)習目標
了解Oracle數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)的組成部分
理解Oracle數(shù)據(jù)庫物理存儲結(jié)構(gòu)與邏輯存儲結(jié)構(gòu)的關(guān)系
掌握表空間的管理方法
掌握段、區(qū)以及數(shù)據(jù)塊的管理方法邏輯存儲結(jié)構(gòu)描述了Oracle數(shù)據(jù)庫的內(nèi)部組織形式,它包含表空間、段、區(qū)以及數(shù)據(jù)塊等組成部分,本章將主要介紹這些邏輯存儲結(jié)構(gòu)的基本管理方法。
5.1邏輯存儲結(jié)構(gòu)概述
邏輯存儲結(jié)構(gòu)是指Oracle數(shù)據(jù)庫的邏輯構(gòu)成形式,它的組成部分按層次等級劃分為表空間、段、區(qū)以及數(shù)據(jù)塊,最高層是表空間,表空間可以包含多個段,多個區(qū)又可以組成一個段,段又由多個數(shù)據(jù)塊組成。
邏輯存儲結(jié)構(gòu)與物理存儲結(jié)構(gòu)分別從邏輯和物理的角度描述了數(shù)據(jù)庫的組成部分,兩者共同組成了Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)(圖51),同時兩者既有本質(zhì)上的區(qū)別也有密切的聯(lián)系。
首先,邏輯存儲結(jié)構(gòu)并沒有與物理存儲結(jié)構(gòu)一樣在操作系統(tǒng)層面存在結(jié)構(gòu)信息數(shù)據(jù),其相關(guān)信息存儲在數(shù)據(jù)字典中。
其次,邏輯存儲結(jié)構(gòu)中的表空間與物理存儲結(jié)構(gòu)中的數(shù)據(jù)文件是包含關(guān)系,數(shù)據(jù)文件必須要指定表空間進行統(tǒng)一管理,表空間可以包含多個數(shù)據(jù)文件。
此外,邏輯存儲結(jié)構(gòu)中的數(shù)據(jù)塊(Block)大小與物理存儲結(jié)構(gòu)中的操作系統(tǒng)數(shù)據(jù)塊(OS_block)大小是整數(shù)倍關(guān)系。◆Oracle數(shù)據(jù)庫技術(shù)基礎(chǔ)教程第◆5章邏輯存儲結(jié)構(gòu)圖51Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)
5.2表空間〖1〗5.2.1概述表空間(Tablespace)是Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)中最大的邏輯劃分,一個數(shù)據(jù)庫可以包含多個表空間,但一個表空間只能屬于一個數(shù)據(jù)庫。同時,一個表空間可以包含多個數(shù)據(jù)文件,但一個數(shù)據(jù)文件只能屬于一個表空間。由于表空間中的數(shù)據(jù)文件主要用于存儲數(shù)據(jù)對象中的表數(shù)據(jù),所以稱為表空間。Oracle數(shù)據(jù)庫中的表空間主要分為系統(tǒng)表空間和非系統(tǒng)表空間兩種類型,這兩類表空間的作用以及包含的內(nèi)容分別描述如下。
1. 系統(tǒng)表空間
系統(tǒng)表空間在Oracle數(shù)據(jù)庫創(chuàng)建時自動創(chuàng)建,其包括system和sysaux兩個表空間,其中,system表空間是系統(tǒng)默認的表空間,專門用于存放數(shù)據(jù)字典以及各種數(shù)據(jù)對象的定義等。sysaux是system的輔助表空間,主要用于存放數(shù)據(jù)庫組件、表統(tǒng)計以及數(shù)據(jù)庫審計等信息。
2. 非系統(tǒng)表空間
非系統(tǒng)表空間主要包括用戶表空間(users)、臨時表空間(temp)以及撤銷表空間(undotabs)三種類型,其中,users表空間用于存放用戶創(chuàng)建的各類數(shù)據(jù)庫對象的應(yīng)用數(shù)據(jù),temp表空間專門用于存放各類系統(tǒng)產(chǎn)生的臨時數(shù)據(jù),例如,SQL語句進行數(shù)據(jù)排序時產(chǎn)生的中間數(shù)據(jù),undotabs表空間則專門用于存放數(shù)據(jù)庫的回滾(rollback)信息,支持數(shù)據(jù)庫的事務(wù)回滾操作。在實際應(yīng)用中,用戶可以創(chuàng)建多個undotabs表空間,默認的表空間命名方式為undotabs1,undotabs2,…,undotbsn。除了users、temp和undotabs表空間外,用戶還可以創(chuàng)建多個自定義的普通表空間,專門用于為各類應(yīng)用系統(tǒng)的數(shù)據(jù)劃分存放位置,這類表空間也歸為非系統(tǒng)表空間的范疇。
從Oracle 11g版本開始,Oracle數(shù)據(jù)庫還引入了另外一個表空間類型: 大文件表空間(Bigfile tablespace)。與普通的表空間允許包含多個小數(shù)據(jù)文件(最多為1024個)不同的是,大文件表空間只包含一個大文件,在64位的操作系統(tǒng)中,該大文件的存儲容量理論上可以達到8EB,從而可以用于創(chuàng)建超大型數(shù)據(jù)庫,但也需要用戶提供相匹配的磁盤存儲空間。