分類(lèi): Oracle
涉及到數據庫的物理結構和邏輯結構。
首先,你需要明白的一點(diǎn)是:數據庫的物理結構是由數據庫的操作系統文件所決定,每一個(gè)Oracle數據庫是由三種類(lèi)型的文件組成:數據文件、日志文件和控制文件。數據庫的文件為數據庫信息提供真正的物理存儲。
每一個(gè)Oracle數據庫有一個(gè)或多個(gè)物理的數據文件(data file)。一個(gè)數據庫的數據文件包含全部數據庫數據。邏輯數據庫結構(如表、索引等)的數據物理地存儲在數據庫的數據文件中。數據文件通常為*.dbf格式,例如:userCIMS.dbf。數據文件有下列特征:①、一個(gè)數據文件僅與一個(gè)數據庫聯(lián)系;②、一旦建立,數據文件只增不減;③、一個(gè)表空間(數據庫存儲的邏輯單位)由一個(gè)或多個(gè)數據文件組成。
其次,我們再來(lái)敘述一下Oracle的邏輯結構:Oracle的邏輯結構包括表空間(tablespace),段(segment),數據塊(data block)以及模式對象(schema object)。
Oracle數據庫在邏輯上是由多個(gè)表空間組成的,表空間在物理上包含一個(gè)或多個(gè)數據文件。而數據文件大小是塊大小的整數倍;表空間中存儲的對象叫段,比如數據段,索引段和回退段。段由區組成,區是磁盤(pán)分配的最小單位。段的增大是通過(guò)增加區的個(gè)數來(lái)實(shí)現的。每個(gè)區的大小是數據塊大小的整數倍,區的大小可以不相同;數據塊是數據庫中的最小的I/O單位,同時(shí)也是內存數據緩沖區的單位,及數據文件存儲空間單位。塊的大小由參數DB_BLOCK_SIZE設置,其值應設置為操作系統塊大小的整數倍。
⑴、表空間(tablespace)
表空間是數據庫中最大的邏輯單位,每一個(gè)表空間由一個(gè)或多個(gè)數據文件組成,一個(gè)數據文件只能與一個(gè)表空間相聯(lián)系。每一個(gè)數據庫都有一個(gè)SYSTEM表空間,該表空間是在數據庫創(chuàng )建或數據庫安裝時(shí)自動(dòng)創(chuàng )建的,用于存儲系統的數據字典表,程序系統單元,過(guò)程函數,包和觸發(fā)器等,也可用于存儲用戶(hù)數據表,索引對象。表空間具有在線(xiàn)(online)和離線(xiàn)(offline)屬性,可以將除SYSTME以外的其他任何表空間置為離線(xiàn)。
⑵、段(segment)
數據庫的段可以分為四類(lèi):數據段、索引段、回退段和臨時(shí)段。
⑶、區
區是磁盤(pán)空間分配的最小單位。磁盤(pán)按區劃分,每次至少分配一個(gè)區。區存儲與段中,它由連續的數據塊組成。
⑷、數據塊
數據塊是數據庫中最小的數據組織單位與管理單位,是數據文件磁盤(pán)存儲空間單位,也是數據庫I/O的最小單位,數據塊大小由DB_BLOCK_SIZE參數決定,不同的Oracle版本DB_BLOCK_SIZE的默認值是不同的。
⑸、模式對象
模式對象是一種應用,包括:表、聚簇、視圖、索引序列生成器、同義詞、哈希、程序單元、數據庫鏈等。
最后,在來(lái)說(shuō)一下Oracle的用戶(hù)、表空間和數據文件的關(guān)系:
一個(gè)用戶(hù)可以使用一個(gè)或多個(gè)表空間,一個(gè)表空間也可以供多個(gè)用戶(hù)使用。用戶(hù)和表空間沒(méi)有隸屬關(guān)系,表空間是一個(gè)用來(lái)管理數據存儲的邏輯概念,表空間只是和數據文件發(fā)生關(guān)系,數據文件是物理的,一個(gè)表空間可以包含多個(gè)數據文件,而一個(gè)數據文件只能隸屬一個(gè)表空間。
總結一下:解釋數據庫、表空間、數據文件、表、數據的最好辦法就是想象一個(gè)裝滿(mǎn)東西的柜子。數據庫其實(shí)就是柜子,柜中的抽屜是表空間,抽屜中的文件夾是數據文件,文件夾中的紙是表,寫(xiě)在紙上的信息就是數據。
聯(lián)系客服