1. 程式人生 > >分享知識-快樂自己: Oracle數據庫實例、用戶、表、表空間之間關系

分享知識-快樂自己: Oracle數據庫實例、用戶、表、表空間之間關系

相同 表數 包含 每一個 oracle版本 有一個 http instance 但是

數據庫:

  Oracle數據庫是數據的物理存儲。這就包括(數據文件ORA或者DBF、控制文件、聯機日誌、參數文件)。

  其實Oracle數據庫的概念和其它數據庫不一樣,這裏的數據庫是一個操作系統只有一個庫。可以看作是Oracle就只有一個大數據庫。

實例:

  一個Oracle實例(Oracle Instance)有一系列的後臺進程(Backguound Processes) 和 內存結構(Memory Structures)組成。一個數據庫可以有n個實例。

用戶:

  用戶是在實例下建立的。不同實例可以建相同名字的用戶。

表空間:

  表空間是一個用來管理數據存儲邏輯概念,表空間只是和數據文件(ORA或者DBF文件)發生關系,數據文件是物理的,一個表空間可以包含多個數據文件,而一個數據文件只能隸屬一個表空間。

數據文件(dbf、ora):

  數據文件是數據庫的物理存儲單位。數據庫的數據是存儲在表空間中的,真正是在某一個或者多個數據文件中。而一個表空間可以由一個或多個數據文件組成,一個數據文件只能屬於一個表空間。

  一旦數據文件被加入到某個表空間後,就不能刪除這個文件,如果要刪除某個數據文件,只能刪除其所屬於的表空間才行。

註: 表的數據,是有用戶放入某一個表空間的,而這個表空間會隨機把這些表數據放到一個或者多個數據文件中。

由於oracle的數據庫不是普通的概念,oracle是有用戶和表空間對數據進行管理和存放的。但是表不是有表空間去查詢的,而是由用戶去查的。

因為不同用戶可以在同一個表空間建立同一個名字的表!這裏區分就是用戶了!

技術分享圖片

先需要明白數據庫的物理結構是由數據庫的操作系統文件所決定,每一個Oracle數據庫是由三種類型的文件組成:數據文件、日誌文件和控制文件。數據庫的文件為數據庫信息提供真正的物理存儲。

每一個Oracle數據庫有一個或多個物理的數據文件(data file)。一個數據庫的數據文件包含全部數據庫數據。邏輯數據庫結構(如表、索引等)的數據物理地存儲在數據庫的數據文件中。數據文件通常為*.dbf格式,例如:userCIMS.dbf。

數據文件有下列特征:①、一個數據文件僅與一個數據庫聯系;②、一旦建立,數據文件只增不減;③、一個表空間(數據庫存儲的邏輯單位)由一個或多個數據文件組成。

其次,我們再來敘述一下Oracle的邏輯結構:Oracle的邏輯結構包括表空間(tablespace),段(segment),數據塊(data block)以及模式對象(schema object)。

Oracle數據庫在邏輯上是由多個表空間組成的,表空間在物理上包含一個或多個數據文件。而數據文件大小是塊大小的整數倍;表空間中存儲的對象叫段,比如數據段,索引段和回退段。

段由區組成,區是磁盤分配的最小單位。段的增大是通過增加區的個數來實現的。每個區的大小是數據塊大小的整數倍,區的大小可以不相同;數據塊是數據庫中的最小的I/O單位,同時也是內存數據緩沖區的單位,及數據文件存儲空間單位。

塊的大小由參數DB_BLOCK_SIZE設置,其值應設置為操作系統塊大小的整數倍。

1):表空間(tablespace)

  表空間是數據庫中最大的邏輯單位,每一個表空間由一個或多個數據文件組成,一個數據文件只能與一個表空間相聯系。

  每一個數據庫都有一個SYSTEM表空間,該表空間是在數據庫創建或數據庫安裝時自動創建的,用於存儲系統的數據字典表,程序系統單元,過程函數,包和觸發器等,也可用於存儲用戶數據表,索引對象。

  表空間具有在線(online)和離線(offline)屬性,可以將除SYSTME以外的其他任何表空間置為離線。

2):段(segment)

  數據庫的段可以分為四類:數據段、索引段、回退段和臨時段。

3):區

區是磁盤空間分配的最小單位。磁盤按區劃分,每次至少分配一個區。區存儲與段中,它由連續的數據塊組成。

4):數據塊

  數據塊是數據庫中最小的數據組織單位與管理單位,是數據文件磁盤存儲空間單位,也是數據庫I/O的最小單位,數據塊大小由DB_BLOCK_SIZE參數決定,不同的Oracle版本DB_BLOCK_SIZE的默認值是不同的。

5):模式對象

  模式對象是一種應用,包括:表、聚簇、視圖、索引序列生成器、同義詞、哈希、程序單元、數據庫鏈等。

  最後,在來說一下Oracle的用戶、表空間和數據文件的關系:一個用戶可以使用一個或多個表空間,一個表空間也可以供多個用戶使用。

  用戶和表空間沒有隸屬關系,表空間是一個用來管理數據存儲的邏輯概念,表空間只是和數據文件發生關系,數據文件是物理的,一個表空間可以包含多個數據文件,而一個數據文件只能隸屬一個表空間。

總結:解釋數據庫、表空間、數據文件、表、數據的最好辦法就是想象一個裝滿東西的櫃子。數據庫其實就是櫃子,櫃中的抽屜是表空間,抽屜中的文件夾是數據文件,文件夾中的紙是表,寫在紙上的信息就是數據。

分享知識-快樂自己: Oracle數據庫實例、用戶、表、表空間之間關系