當前位置:首頁 » 存儲配置 » oracle數據存儲結構

oracle數據存儲結構

發布時間: 2023-07-07 01:43:37

㈠ Oracle資料庫的一些基本常識

Oracle資料庫的一些基本常識
一、Oracle所包含的組件:
在Oracle,資料庫是指整個 Oracle RDBMS 環境,它包括以下組件:
1.Oracle 資料庫進程和緩沖(實例)。
2.SYSTEM 表空間包含一個集中系統類目,它可以由一個或多個數據文件構成。
3.其它由資料庫管理員 (DBA)(可選)定義的表空間,每個都由一個或多個數據文件構成。
4.兩個以上的聯機恢復日誌。
5.歸檔恢復日誌(可選)。
6.其它文件(控制文件、Init.ora、Config.ora 等)。
每個 Oracle 資料庫都在一個中央系統類目和數據字典上運行,它位於SYSTEM 表空間。
二、關於「日誌」
Oracle資料庫使用幾種結構來保護數據:資料庫後備、日誌、回滾段和控制文件。下面我們將大體上了解一下作為主要結構之一的「日誌」:
每一個Oracle資料庫實例都提供日誌,記錄資料庫中所作的全部修改。每一個運行的Oracle資料庫實例相應地有一個在線日誌,它與Oracle後台進程LGWR一起工作,立即記錄該實例所作的全部修改。歸檔(離線)日誌是可選擇的,一個Oracle資料庫實例一旦在線日誌填滿後,可形成在鋒頌毀線日誌歸檔文件。歸檔的在線日誌文件被唯一標識並合並成歸檔日誌。
關於在線日誌:一個Oracle資料庫的每一實例有一個相關聯的在線日誌。一個在線日誌由多個在線日誌文件組成。在線日誌櫻毀文件(online redo log file)填入日誌項(redo entry),日誌項記錄的數據用於重構對資料庫所作的全部修改。
關於歸檔日誌:Oracle要將填滿的在線日誌文件組歸檔時,則要建立歸檔日誌(archived redo log)。其對資料庫備份和恢復有下列用處:
1資料庫後備以及在線和歸檔日誌文件,在操作系統和磁碟故障中可保證全部提交的事物可被恢復。
2在資料庫打開和正常系統使用下,如果歸檔日誌是永久保存,在線後備可以進行和使用。
資料庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。資料庫在NOARCHIVELOG方式下使用時,不能進行在線日誌的歸檔。如果資料庫在ARCHIVELOG方式下運行,可實施在線日誌的歸檔。
三、物理和邏輯存儲結構:
Oracle RDBMS是由表空間組成的,而表空間又是由數銀備據文件組成的。表空間數據文件被格式化為內部的塊單位。塊的大小,是由DBA在Oracle第一次創建的時候設置的,可以在512到8192個位元組的范圍內變動。當一個對象在Oracle表空間中創建的時候,用戶用叫做長度的單位(初始長度((initial extent)、下一個長度(next extent)、最小長度(min extents)、以及最大長度(max extents))來標明該對象的空間大小。一個Oracle長度的大小可以變化,但是要包含一個由至少五個連續的塊構成的鏈。
4.Oracle與Microsoft SQL Server比較下的聯網協議:

㈡ oracle中的數據結構是那樣的!

基本數據結構



表是關系資料庫中的一個基本數據結構。表就是行的集合。每行(row)包含一個或多個列。

從Oracle8企業版以後,就提供了分區選件,它允許將表和索引進行分區。利用分區,Oracle可從以下兩方面改善性能:

。Oracle不用去訪問那些不滿足查詢條件的分區

。如果分區中所有數據都滿足查詢條件,那麼Oracle將選擇全部數據而不需要對每行均進行字句檢查。

視圖

視圖(view)是Oracle中的一種由SQL語句構造的數據結構。SQL語句存儲在資料庫中,在查詢中使用一個視圖時,所存儲的查詢將得以執行,並向用戶返回基表(base table)中的數據。

視圖不包含數據,而是表示一些方法可以查看查詢所指定的基表數據。

視圖有以下幾種用途:

。簡化對多個表數據的訪問

。可以保證表中數據的安全(如,創建包含WHERE子句的視圖就可以限制訪問表中的數據)

。將應用與表中某些特定的結構分離

視圖建立在基表集合的基礎之上,基表包括Oracle資料庫中的事實表或者其他視圖。如果視圖中的任何一個基表進行修改,那麼該視圖將無法繼續使用它們,因此視圖本身也無法再使用。

索引

索引(index)是用來加快訪問資料庫中記錄速度的一種數據結構。一個索引與一個特定的表相關,而且包含該表的一個或多個列的數據。

創建索引的SQL基本語法:

CREAT INDEX emp_idx1 on emp (ename,job);

其中,emp_idx1時索引名,emp是創建索引的表,ename和job時構成索引的列值。

除了索引數據以外,索引項中還為其相關行保存了ROWID.ROWID是獲取資料庫行的最快方式,因此隨後資料庫行的獲取都是以這種最佳方式來完成。

Oracle中使用的4中類型的索引結構:標准B*-樹索引、反向鍵索引、點陣圖索引以及Oracle8i引入的基於函數的索引。Oracle使你可以對表中的數據進行聚合,從而改善性能。

其它數據結構

序列(Sequence)

在多用戶資料庫中經常出現的大問題,就是很難為鍵或標識符提供唯一的序號。在這種情況下,Oracle允許創建序列對象。

序列號可以用名字,一個遞增值或有關序列的其他一些信息。序列獨立於任何錶,因此多個表可以使用同樣的序列號。

同義詞(Synonym)

所有的Oracle資料庫的數據結構都存儲在一個特定的模式(schema)。模式是和一個特定的用戶名相關聯的,所有對象都通過帶有對象名的模式名得到引用。

例如,模式DEMO中有一個表名為EMP.如果想引用表EMP,那麼應該通過完整名DEMO.EMP來引用。如果沒有提供特定的模式名,那麼Oracle假定該結構處於當前用戶名的模式中。

集群(Cluster)

集群是一種能夠改善獲取性能的數據結構。集群和索引一樣,不會影響表的邏輯視圖。

散列集群(Hash Cluster)

數據設計

約束

約束(constraint)強制資料庫中某些數據的完整性。當給某列增加一個約束,Oracle自動確保不滿足此約束的數據是絕不能被接受的。

約束可以在創建或增加包括某列(通過關鍵字)的表時與列相關聯,或者在表創建後通過SQL命令ALTER TABLE來實現與該列的關聯。在Oracle8及以後的版本中支持以下5個約束類型:

NOT NULL

對於任何列都可以設為NOT NULL.如果在任何SQL操作中將一個NULL值賦給某個有NOT NULL約束的列,Oracle會為這個語句返回一個錯誤。

惟一性

主鍵

外鍵

校驗

某些約束需要創建所以來支持。

約束可以是立即的或延遲的。立即約束(immediate constraint)只要有寫操作就會立即對受約束列產生影響;而延遲約束(deferred constraint)只有在對約束行產生變化的SQL語句執行完時才有強製作用。

對於某個特定表的約束可設置成暫時掛起。當再次啟動該約束操作時,再要求Oracle對該約束驗證所有數據,或者只是對新數據應用約束。在現有表中增加約束時,可以指定是否對表中所有記錄進行約束校驗。

觸發器

觸發器是個代碼塊,當某個表中發生了某種類型的資料庫事件時它就會被觸發,有以下3種事件會導致觸發器的觸發:

。資料庫UPDATE

。資料庫INSERT

。資料庫DELETE

例如,可以定義一個觸發器,從而在用戶改變某一行時,寫一個定製的審查記錄。

觸發器是在行一級被定義的。可以指定觸發器是對每一行觸發,或者對觸發該觸發器事件的SQL語句觸發。

觸發器的觸發有3個時機:
。在執行觸發事件之前
。在執行觸發事件之後
。非觸發事件

將前兩種時間選項與觸發器所觸發的行和語句的結合,則有4種可能的觸發器實現:在語句之前;在行之前;在語句之後;在行之後。

任何觸發器都可以有一個觸發器限制(trigger restriction)。觸發器限制是一個布爾表達式,如果其值為FALSE,那麼就阻止觸發器觸發。

觸發器的定義和存儲都獨立於使用它們的表。因為觸發器包含邏輯,所以必須通過比SQL功能強的某種實現數據訪問的語言來寫。可以直接用PL/SQL或Java來寫觸發器,也可以通過調用其中任一種語言編寫的現有存儲過程來寫觸發器。

觸發器觸發是SQL語句執行的結果,該SQL語句修改了某個表中的行。觸發觸發器的操作可能是修改這個表中的數據,或者產生某些改變來觸發其他表的觸發器。這么做的最後結果可能是以某種方法修改了數據,但Oracle認為這是不合邏輯的。這些情況都會導致Oracle返回變異表(mutating table,被其他觸發器修改的表)的運行時錯誤,或是返回約束表(constraining table,被其他約束修改的表)的運行時錯誤。

Oracle8i還引入了一組非常有用的系統事件觸發器和用戶事件觸發器。現在可以在系統事件(如,資料庫啟動或關閉)中放置觸發器,也可以在用戶事件(登錄和退出)中放置觸發器。

㈢ Oracle存儲結構正確的是()

B。

Oracle資料庫邏輯存儲結構是Oracle資料庫創建後利用邏輯概念來描述資料庫內部數據的組織和管理形式。包括表空間(tablespace)、段(segment)、區(extent)和塊(block)四種。

一個表空間由多個段構成;一個段由多個區構成,一個區由多個塊構成。資料庫是由表空間構成的,數據存儲在表空間中。一個表空間包含一個或多個數據文件,但一個數據文件只能屬於一個表空間。

(3)oracle數據存儲結構擴展閱讀:

1、存儲過程參數不帶取值范圍,in表示傳入,out表示輸出類型可以使用任意Oracle中的合法類型。

2、變數帶取值范圍,後面接分號

3、在判斷語句前最好先用count(*)函數判斷是否存在該條操作記錄

4、用select 。。。into。。。給變數賦值

5、在代碼中拋異常用 raise+異常名

㈣ 如何分析oracle資料庫中的表結構

去這里看看??
數據結構被稱為物理(存儲)的數據結構在計算機中的表示(圖片)。它包括一個數據元素表示的關系的表示。
物理結構,也就是由Oracle資料庫所使用的操作系統的文件結構。對於資料庫的物理結構文件,不同版本的Oracle,不同的操作系統平台上的資料庫文件存放的目錄結構不同的物理結構
其作用可分為三類:
數據日誌文件的文件
控制文件
數據文件,數據文件,用於存儲資料庫中的數據,如表,索引等。當讀取數據時,系統首先讀取的數據從資料庫文件,並存儲到數據緩沖器,SGA。
重做日誌文件,重做日誌文件
所有的記錄在資料庫中的信息。這是三種類型的文件,文件中最復雜的,而且要保證資料庫的安全性和資料庫的備份和恢復文件直接。
控制文件
控制文件是一個二進制文件,用來描述資料庫的物理結構,資料庫只需要一個控制文件,控制文件的內容,包括:
>同步需要恢復的數據文件和日誌文件的信息標識資料庫和資料庫的名稱,唯一標識
資料庫,檢查點數量
/
a>
如果有,請記得採納為滿意的答復,謝謝你!我祝你幸福的生活!
vaela

㈤ oracle資料庫的結構是什麼

Oracle資料庫的體系結構包括四個方面:資料庫的物理結構、邏輯結構、內存結構及進程。

1. 物理結構

物理資料庫結構是由構成資料庫的操作系統文件所決定,Oracle資料庫文件包括:

數據文件(Data File)
數據文件用來存儲資料庫中的全部數據,例如資料庫表中的數據和索引數據.通常以為*.dbf格式,例如:userCIMS.dbf 。

日誌文件(Redo Log File)
日誌文件用於記錄資料庫所做的全部變更(如增加、刪除、修改)、以便在系統發生故障時,用它對資料庫進行恢復。名字通常為Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。

控制文件(Control File)
每個Oracle資料庫都有相應的控制文件,它們是較小的二進制文件,用於記錄資料庫的物理結構,如:資料庫名、資料庫的數據文件和日誌文件的名字和位置等信息。用於打開、存取資料庫。名字通常為Ctrl*ctl 格式,如Ctrl1CIMS.ctl。

配置文件
配置文件記錄Oracle資料庫運行時的一些重要參數,如:數據塊的大小,內存結構的配置等。名字通常為init*.ora 格式,如:initCIMS.ora 。

2 邏輯結構

Oracle資料庫的邏輯結構描述了資料庫從邏輯上如何來存儲資料庫中的數據。邏輯結構包括表空間、段、區、數據塊和模式對象。資料庫的邏輯結構將支配一個資料庫如何使用系統的物理空間.模式對象及其之間的聯系則描述了關系資料庫之間的設計.

一個資料庫從邏輯上說是由一個或多個表空間所組成,表空間是資料庫中物理編組的數據倉庫,每一個表空間是由段(segment)組成,一個段是由一組區(extent)所組成,一個區是由一組連續的資料庫塊(database block)組成,而一個資料庫塊對應硬碟上的一個或多個物理塊。一個表空間存放一個或多個資料庫的物理文件(即數據文件).一個資料庫中的數據被邏輯地存儲在表空間上。

表空間(tablespace)
Oracle資料庫被劃分為一個或多個稱為表空間的邏輯結構,它包括兩類表空間,System表空間和非System表空間,其中,System表空間是安裝資料庫時自動建立的,它包含資料庫的全部數據字典,存儲過程、包、函數和觸發器的定義以及系統回滾段。除此之外,還能包含用戶數據。。

一個表空間包含許多段,每個段有一些可以不連續的區組成,每個區由一組連續的數據塊組成,數據塊是資料庫進行操作的最小單位。

每個表空間對應一個或多個數據文件,每個數據文件只能屬於一個表空間。

資料庫塊(database block)
資料庫塊也稱邏輯塊或ORACLE塊,它對應磁碟上一個或多個物理塊,它的大小由初始化參數db-block-size(在文件init.ora中)決定,典型的大小是2k。Pckfree 和pctused 兩個參數用來優化數據塊空間的使用。

區(extent)
區是由一組連續的數據塊所組成的資料庫存儲空間分配的邏輯單位。

段(segment)
段是一個或多個不連續的區的集合,它包括一個表空間內特定邏輯結構的所有數據,段不能跨表空間存放。Oracle資料庫包括數據段、索引段、臨時段、回滾段等。

模式對象(schema object)
Oracle資料庫的模式對象包括表、視圖、序列、同意詞、索引、觸發器、存儲.過程等,關於它們將重點在後面章節介紹。

3.Oracle Server系統進程與內存結構

當在計算機伺服器上啟動Oracle資料庫後,稱伺服器上啟動了一個Oracle實例(Instance)。ORACLE 實例(Instance)是存取和控制資料庫的軟體機制,它包含系統全局區(SGA)和ORACLE進程兩部分。SGA是系統為實例分配的一組共享內存緩沖區,用於存放資料庫實例和控制信息,以實現對資料庫中數據的治理和操作。

進程是操作系統中一個極為重要的概念。一個進程執行一組操作,完成一個特定的任務.對ORACLE資料庫治理系統來說,進程由用戶進程、伺服器進程和後台進程所組成。

當用戶運行一個應用程序時,系統就為它建立一個用戶進程。伺服器進程處理與之相連的用戶進程的請求,它與用戶進程相通訊,為相連的用戶進程的ORACLE請求服務。

為了提高系統性能,更好地實現多用戶功能,ORACLE還在系統後台啟動一些後台進程,用於資料庫數據操作。

系統進程的後台進程主要包括:
SMON 系統監控進程:(system monitor)負責完成自動實例恢復和回收分類(sort)表空間。
PMON 進程監控進程:(PRocess monitor)實現用戶進程故障恢復、清理內存區和釋放該進程所需資源等。
DBWR 資料庫寫進程:資料庫緩沖區的治理進程。
在它的治理下,資料庫緩沖區中總保持有一定數量的自由緩沖塊,以確保用戶進程總能找到供其使用的自由緩沖塊。
LGWR 日誌文件寫進程:是日誌緩沖區的治理進程,負責把日誌緩沖區中的日誌項寫入磁碟中的日誌文件上。每個實例只有一個LGWR進程。
ARCH 歸檔進程:(archiver process)把已經填滿的在線日誌文件拷貝到一個指定的存儲設備上。僅當日誌文件組開關(switch)出現時,才進行ARCH操作。ARCH不是必須的,而只有當自動歸檔可使用或者當手工歸檔請求時才發出。
RECO 恢復進程:是在具有分布式選項時使用的一個進程,主要用於解決引用分布式事務時所出現的故障。它只能在答應分布式事務的系統中出現。
LCKn 封鎖進程:用於並行伺服器系統,主要完成實例之間的封鎖。
內存結構(SGA)
SGA是Oracle為一個實例分配的一組共享內存緩沖區,它包含該實例的數據和控制信息。SGA在實例啟動時被自動分配,當實例關閉時被收回。資料庫的所有數據操作都要通過SGA來進行。

SGA中內存根據存放信息的不同,可以分為如下幾個區域:Buffer Cache:存放資料庫中資料庫塊的拷貝。它是由一組緩沖塊所組成,這些緩沖塊為所有與該實例相鏈接的用戶進程所共享。緩沖塊的數目由初始化參數DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數DB_BLOCK_SIZE確定。大的數據塊可提高查詢速度。它由DBWR操作。

b. 日誌緩沖區Redo Log Buffer:存放數據操作的更改信息。它們以日誌項(redo entry)的形式存放在日誌緩沖區中。當需要進行資料庫恢復時,日誌項用於重構或回滾對資料庫所做的變更。日誌緩沖區的大小由初始化參數LOG_BUFFER確定。大的日誌緩沖區可減少日誌文件I/O的次數。後台進程LGWR將日誌緩沖區中的信息寫入磁碟的日誌文件中,可啟動ARCH後台進程進行日誌信息歸檔。

c. 共享池Shared Pool:包含用來處理的SQL語句信息。它包含共享SQL區和數據字典存儲區。共享SQL區包含執行特定的SQL語句所用的信息。數據字典區用於存放數據字典,它為所有用戶進程所共享。

Cursors:一些內存指針,執行待處理的SQL語句
其他信息區:除了上述幾個信息區外,還包括一些進程之間的通訊信息(如封鎖信息);在多線索伺服器配置下,還有一些程序全局區的信息,請求隊列和響應隊列等。 本文來自: http://hi..com/ipbun/blog/item/3f75d7230a7f5ee698250a7c.html

熱點內容
外賣盒子如何設置密碼 發布:2025-02-04 05:49:33 瀏覽:504
國產安卓編程軟體哪個最好 發布:2025-02-04 05:49:25 瀏覽:387
什麼是身份證密碼 發布:2025-02-04 05:43:41 瀏覽:785
雲伺服器江蘇 發布:2025-02-04 05:38:46 瀏覽:237
演算法及vb 發布:2025-02-04 05:33:37 瀏覽:102
安卓手機怎麼自檢電池 發布:2025-02-04 05:31:31 瀏覽:410
兩種存儲 發布:2025-02-04 05:26:43 瀏覽:203
手機php源碼 發布:2025-02-04 05:08:22 瀏覽:548
全戰帝國與拿戰哪個配置高 發布:2025-02-04 04:59:39 瀏覽:754
海控聯盟怎麼下載安卓版 發布:2025-02-04 04:55:52 瀏覽:768