更新時間:2021-02-25 17:33:49 來源:動力節(jié)點 瀏覽1409次
Oracle至少由一個表空間和數(shù)據(jù)庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu)。模式對象包括這樣一些結(jié)構(gòu):表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等。邏輯存儲結(jié)構(gòu)包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫的物理空間。Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)大致就是按照這個結(jié)構(gòu)模型來構(gòu)建的,下面我來詳細看看Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)。
首先我們要知道邏輯結(jié)構(gòu)由邏輯存儲結(jié)構(gòu)(表空間,段,范圍,塊)和邏輯數(shù)據(jù)結(jié)構(gòu)(表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等)組成,而其中的模式對象(邏輯數(shù)據(jù)結(jié)構(gòu))和關(guān)系形成了數(shù)據(jù)庫的關(guān)系設(shè)計。因此,Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)體系分為以下4個方面:
1、段(Segment)
是表空間中一個指定類型的邏輯存儲結(jié)構(gòu),它由一個或多個范圍組成,段將占用并增長存儲空間。
2、區(qū)(Extent)
是數(shù)據(jù)庫存儲空間分配的邏輯單位,一個范圍由許多連續(xù)的數(shù)據(jù)塊組成,范圍是由段依次分配的,分配的第一個范圍稱為初始范圍,以后分配的范圍稱為增量范圍。
1)在數(shù)據(jù)表進行數(shù)據(jù)插入時,會自動擴展數(shù)據(jù)表的空間,使用的便是該邏輯單元。
2)數(shù)據(jù)表建立時,便已經(jīng)分配好了若干個數(shù)據(jù)塊組成了初始數(shù)據(jù)擴展(initial extent),以便數(shù)據(jù)表新數(shù)據(jù)的存儲。
3)當(dāng)段(數(shù)據(jù)表)分配的空間不夠存儲新數(shù)據(jù)時,ORACLE將自動為其分配一個新增數(shù)據(jù)擴展新增的數(shù)據(jù)擴展區(qū)(EXTENT)大小始終大于等于前一個數(shù)據(jù)擴展區(qū)(EXTENT)的大小。
4)數(shù)據(jù)表初始化的分配的空間大小及最多能夠容納的數(shù)據(jù)擴展數(shù)量可以在新建數(shù)據(jù)表時通過STORAGE子句進行設(shè)置,若不設(shè)置,則默認使用所屬表空間的參數(shù)設(shè)置。
5)EXTENT 管理方式有本地管理(local)與數(shù)據(jù)字典管理(dictionary)兩種,后者將被淘汰,默認為本地管理。
6)新增的數(shù)據(jù)擴展區(qū)的大小既可以固定,也可以由我們自主選擇,取決于新建TABLESPACE時,使用了什么指令,UNIFORM 指令(固定大小)、AUTOALLOCATE指令(由系統(tǒng)管理)。uniform size 10M
3、數(shù)據(jù)塊(Block)
是數(shù)據(jù)庫進行IO操作的最小單位,它與操作系統(tǒng)的塊不是一個概念。 數(shù)據(jù)庫BLOCK的大小一般要設(shè)置為操作系統(tǒng)OS塊容量的整數(shù)倍,這樣可以減少IO操作 (若操作系統(tǒng)塊大小為1k,若數(shù)據(jù)庫塊大小為1.3k,則實際需要2個操作系統(tǒng)塊數(shù)據(jù)才能存儲(2k),這導(dǎo)致還有0.7k的空間被浪費了,故設(shè)置成OS塊的整數(shù)倍,能夠減少數(shù)據(jù)空間的浪費)
BLOCK主要有如下部分組成:
① 數(shù)據(jù)塊頭:記錄了該數(shù)據(jù)塊的概要信息,塊地址、所屬段的類型。。。
② 表目錄區(qū):只要該數(shù)據(jù)塊中包含數(shù)據(jù),該區(qū)域便會包含數(shù)據(jù)所在表的信息
③ 行目錄區(qū):存放你插入的行的地址信息
④ 可用空間區(qū):存放該數(shù)據(jù)塊中空余空間的信息,由建表時表屬性pctfree控制
⑤ 行數(shù)據(jù)區(qū):數(shù)據(jù)實際存放的區(qū)域
4、TABLESPACE(表空間)
數(shù)據(jù)庫的組成單元。
1) ORACLE數(shù)據(jù)庫中表空間的分類:
① 系統(tǒng)表空間:主要用于存儲管理掐表空間的工具信息及其他表空間的相關(guān)信息。
② 臨時表空間:主要用于在數(shù)據(jù)庫數(shù)據(jù)讀取時緩存數(shù)據(jù)。
③ 回滾表空間:主要用于處理非請求數(shù)據(jù)返回數(shù)據(jù)庫的情況。
④ 數(shù)據(jù)表空間:主要用于存儲相關(guān)用戶數(shù)據(jù)。
2) 新建表空間的方式
// 普通數(shù)據(jù)表空間
SQL> create tablespace 表空間名
datafile '文件路徑'
size 文件大小
extent management 區(qū)管理方式(有l(wèi)ocal,dictionary兩種,默認為local)
segment sapce management auto ;(自動管理segment)
// 臨時數(shù)據(jù)表空間
SQL> create temporary tablespace 表空間名
tempfile '文件路徑'
size 文件大小;
// 回滾段表空間
SQL> create undo tablespace 表空間名
datafile '文件路徑'
size 文件大小;
以上就是Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu),總體來看,Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)只有4個方面,但詳細去看的話,內(nèi)容還是很復(fù)雜的,需要我們花費不少時間去學(xué)習(xí)。本站的Oracle教程中,有Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)圖,我們結(jié)合本文來看效果更佳。
0基礎(chǔ) 0學(xué)費 15天面授
有基礎(chǔ) 直達就業(yè)
業(yè)余時間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)