oracle資料庫結構
『壹』 Oracle資料庫有哪些應用結構
Oracle資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了Oracle知識,便能在各種類型的機器上使用它。
隨著網路技術的發展,Oracle資料庫在各個領域得到了廣泛應用。基於Oracle資料庫的應用系統結構主要分為客戶/伺服器結構、終端/伺服器結構、瀏覽器/伺服器結構和分布式資料庫系統結構等。
1.客戶/伺服器結構
客戶/伺服器(Client/Server,C/S)結構是兩層結構,在C/S結構中,需要在前端客戶機上安裝應用程序,通過網路連接訪問後台資料庫伺服器。用戶信息的輸入、邏輯的處理和結果的返回都在客戶端完成,後台資料庫伺服器接收客戶端對資料庫的操作請求並執行。
C/S結構的優點是客戶機與伺服器可採用不同軟、硬體系統,這樣做的好處是應用與服務分離,安全性高,執行速度快;缺點是維護、升級不方便。
2.終端/伺服器結構
終端/伺服器結構類似於客戶/伺服器結構。與客戶/伺服器結構不同之處在於,其所有的軟體安裝、配置、運行、通信、數據存儲等都在伺服器端完成,終端只作為輸入和輸出的設備,直接運行伺服器上的應用程序,而沒有處理能力。終端把滑鼠和鍵盤輸入傳遞到伺服器上集中處理,伺服器把信息處理結果傳回終端。
終端/伺服器結構的優點是便於實現集中管理,系統安全性高,網路負荷低,對終端設備的要求低;缺點是對伺服器性能的要求較高。
3.瀏覽器/伺服器結構
瀏覽器/伺服器(Browser/Server,B/S)結構是3層結構,在B/S結構中,客戶端只需要安裝瀏覽器就可以了,不需要安裝具體的應用程序;中間的Web伺服器層是連接前端客戶機與後台資料庫伺服器的橋梁,所有的數據計算和應用邏輯處理都在此層實現。用戶通過瀏覽器輸入請求,傳到Web伺服器進行處理。如果需要,Web伺服器與資料庫伺服器進行交互,再將處理結果返回給用戶。
B/S結構的優點是通過Web伺服器處理應用程序邏輯,這樣方便了應用程序的維護和升級。通過增加Web伺服器的數量可以增加支持客戶機的數量。其缺點是增加了網路連接環節,降低了執行效率,同時也降低了系統的安全性。
4. 分布式資料庫的系統結構
資料庫系統按數據分布方式的不同可以分為集中式資料庫和分布式資料庫。集中式資料庫是將資料庫集中在一台資料庫伺服器中,而分布式資料庫是由分布於計算機網路上的多個邏輯相關的資料庫所組成的集合,每個資料庫都具有獨立的處理能力,可以執行局部應用,也可以通過網路執行全局應用
『貳』 Oracle資料庫的文件結構
資料庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=『路徑』。V$CONTROLFILE。
數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
日誌文件:即Redo Log Files和Archivelog Files。記錄資料庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數文件:記錄基本參數。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享伺服器連接
跟蹤文件:show parameter user_mp_dest---使用專用伺服器連接
『叄』 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資料庫組成部分
ORACLE由兩部分:實例和資料庫
實例由以下組成: SGA,Shared pool,Database buffer cache,Redo log buffer cache.
資料庫由物理文件組成,其中必須有的文件是:數據文件,控制文件,重做日誌
另外還有:參數文件,口令文件,歸檔日誌文件(這三個不是必須的)
ORACLE SERVER 由兩個部分組成,
1.INSTANCE:又由內存結構和後台進程組成
2.DATABASE:又由數據文件,日誌文件和控制文件組成<這三個文件是必需的>.
CONTROL FILE是用來連接實例和DATABASE的
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP NOMOUNT
SQL>ALTER DATABASE MOUNT
以上三個過程就是通過CONTROL FILE來連接實例和資料庫.
SQL>ALTER DATABASE OPEN
在OPEN的過程對DATABASE的數據文件和重做日誌文件進行一次性的驗證,驗證它們的狀態.
ORACLE INSTANCE:存取資料庫的一個手段
一個DATABASE與INSTANCE之間是1:N的關系,一個INSTANCE只能操作一個DATABASE,由內存結構(共享池,
BUFFER CACHE,REDO LOG BUFFER CACHE)及相應的進程結構組成(PMON<程序監控進程>,SMON<系統監控進
程>,CKPT<檢查點進程>)
SQL>SHOW SGA ---顯示DATABASE內存結構信息
SQL>SET WRAP OFF
SQL>SET LINESIZE 200
以上這兩個是設置行寬
SQL>SELECT * FROM V$BGPROCESS;
將看到在這個系統中所有可能使用到的進程,其中PADDR並不每個進程都分配到有效的地址,即並不是每個進程都是必須的.
SQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>\'00\'
將顯示所有必需的進程.
ESTABLISHING A CONNECTION AND CREATING A SESSION
連接到ORACLE實例包括建立一個用戶連接及創建會話.
ORACLE MEMORY STRUCTURE (內存結構)
由兩部分組成:
1.SGA
SGA是動態的,其最大值由SGA_MAX_SIZE指定,SGA的內存由SGA COMPONENTS來動態調整.
2.PGA 是不共享的,即其包含的信息是不一樣的,有兩個可享的內存可以由SGA配置
<1> LARGE POOL
<2> JAVA POOL
SQL>SHOW PARAMETER SHARED
SQL>SHOW PARAMETER DB_CACHE
SQL>SHOW PARAMETER LOG
以上三個命令是用於查看相關內存信息
SQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M;
所有內存大小總和不能大於SGA_MAX_SIZE的值,當提示信息出現?號或亂碼時,是由於系統的語言問題.
可以通過ALTER SESSION SET NLS_LANGUAGE=\'AMERICAN\'或ALTER SESSION SET NLS_LANGUAGE=\"SIMPLE
[Page]
CHINESE\"
SHARED POOL (共享池)
含:<1>LIBRARY CACHE 庫緩存
<2>DATA DICTIONARY CACHE 數據字典緩存,有的地方又稱行CACHE,由SHARED_POOL_SIZE指定大小.
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
LIBRARY CACHE 主要為提高代碼的共享,存儲的是最近使用的SQL和PL/SQL代碼.
<1>.用最近最少使用(LRU)演算法
<2>.包括兩個結構 1:共享SQL代碼 2:共享PL/SQL代碼
<3>.不可直接定義,而由SHARED POOL SIZE決定.
DATA DICTONARY CACHE.
執行此命令的過程是:首先確認是否存在AUTHORS,,然後確認欄位存不存在,再檢查語法,最後驗證許可權,而
這些信息就屬於DATA DICTIONARY CACHE的內容.其包含的信息有:DATABASE FILES,表,索引,欄位,用戶,
許可權和其他資料庫對象.
『伍』 什麼是oracle的邏輯資料庫結構和物理資料庫結構
1.Oracle資料庫的物理結構
Oracle物理結構包含了數據文件、重做日誌文件、控制文件、參數文件、密碼文件、歸檔日誌文件、備份文件、告警日誌文件、跟蹤文件等等;其
中數據文件、控制文件、重做日誌文件和參數文件是必須的,其他文件可選。
2.Oracle資料庫的邏輯結構
Oracle資料庫的邏輯結構是一種層次結構,主要由表空間、段、區和數據塊等概念組成。邏輯結構是面向用戶的,用戶使用Oracle開發應用程序使
用的就是邏輯結構。資料庫存儲層次結構及其構成關系,結構對象也從數據塊到表空間形成了不同層次的粒度關系。
『陸』 Oracle資料庫的邏輯結構
它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關系形成了資料庫的關系設計。
段(Segment):
是表空間中一個指定類型的邏輯存儲結構,它由一個或多個范圍組成,段將佔用並增長存儲空間。
其中包括:
數據段:用來存放表數據;
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
范圍(Extent):是資料庫存儲空間分配的邏輯單位,一個范圍由許多連續的數據塊組成,范圍是由段依次分配的,分配的第一個范圍稱為初始范圍,以後分配的范圍稱為增量范圍。
數據塊(Block):
是資料庫進行IO操作的最小單位,它與操作系統的塊不是一個概念。oracle資料庫不是以操作系統的塊為單位來請求數據,而是以多個Oracle資料庫塊為單位。
『柒』 請問Oracle的資料庫體系的物理結構是怎樣的
物理結構,即Oracle資料庫使用的操作系統文件結構。
對於資料庫物理結構文件,不同的oracle版本,不同的操作系統平台上有不同的存儲目錄結構.
資料庫的物理結構文件按其作用可以分為三類:
數據文件
日誌文件
控制文件
一、數據文件
數據文件用來存儲資料庫的數據,如表、索引等。讀取數據時,系統首先從資料庫文件中讀取數據,並存儲到SGA的數據緩沖區中。
二、重做日誌文件
重做日誌文件記錄對資料庫的所有修改信息。它是三類文件中最復雜的一類文件,也是保證資料庫安全與資料庫備份與恢復有直接關系的文件。
三、控制文件
控制文件是一個二進制文件,用來描述資料庫的物理結構,一個資料庫只需要一個控制文件,控制文件的內容包括:
資料庫名及資料庫唯一標識
數據文件和日誌文件標識
資料庫恢復所需的同步信息,即檢查點號
.
Oracle資料庫的體系結構包括四個方面:資料庫的物理結構、邏輯結構、內存結構及進程。
『捌』 Oracle系統的結構
ORACLE資料庫系統為具有管理ORACLE資料庫功能的計算機系統。每一個運行的ORACLE資料庫與一個ORACLE實例(INSTANCE)相聯系。一個ORACLE實例為存取和控制一資料庫的軟體機制。每一次在資料庫伺服器上啟動一資料庫時,稱為系統全局區(SYSTEM GLOBAL AREA)的一內存區(簡稱SGA)被分配,有一個或多個ORACLE進程被啟動。該SGA 和 ORACLE進程的結合稱為一個ORACLE資料庫實例。一個實例的SGA和進程為管理資料庫數據、為該資料庫一個或多個用戶服務而工作。
在ORACLE系統中,首先是實例啟動,然後由實例裝配(MOUNT)一資料庫。在松耦合系統中,在具有ORACLE PARALLEL SERVER 選項時,單個資料庫可被多個實例裝配,即多個實例共享同一物理資料庫。
進程結構和內存結構
進程是操作系統中的一種機制,它可執行一系列的操作步。進程是由多個線程組成的。在有些操作系統中使用作業(JOB)或任務(TASK)的術語。一個進程通常有它自己的專用存儲區。ORACLE進程的體系結構設計使性能最大。
ORACLE實例有兩種類型:單進程實例和多進程實例。
單進程ORACLE(又稱單用戶ORACLE)是一種資料庫系統,一個進程執行全部ORACLE代碼。由於ORACLE部分和客戶應用程序不能分別以進程執行,所以ORACLE的代碼和用戶的資料庫應用是單個進程執行。
在單進程環境下的ORACLE 實例,僅允許一個用戶可存取。例如在MS-DOS上運行ORACLE 。
多進程ORACLE實例(又稱多用戶ORACLE)使用多個進程來執行ORACLE的不同部分,對於每一個連接的用戶都有一個進程。
在多進程系統中,進程分為兩類:用戶進程和ORACLE進程。當一用戶運行一應用程序,如PRO*C程序或一個ORACLE工具(如SQL*PLUS),為用戶運行的應用建立一個用戶進程。ORACLE進程又分為兩類:伺服器進程和後台進程。伺服器進程用於處理連接到該實例的用戶進程的請求。當應用和ORACELE是在同一台機器上運行,而不再通過網路,一般將用戶進程和它相應的伺服器進程組合成單個的進程,可降低系統開銷。然而,當應用和ORACLE運行在不同的機器上時,用戶進程經過一個分離伺服器進程與ORACLE通信。它可執行下列任務:
對應用所發出的SQL語句進行語法分析和執行。
從磁碟(數據文件)中讀入必要的數據塊到SGA的共享資料庫緩沖區(該塊不在緩沖區時),將結果返回給應用程序處理。
系統為了使性能最好和協調多個用戶,在多進程系統中使用一些附加進程,稱為後台進程。在許多操作系統中,後台進程是在實例啟動時自動地建立。一個ORACLE實例可以有許多後台進程,後台進程的名字為:
DBWR資料庫寫入程序
LGWR日誌寫入程序
ARCH歸檔
RECO 恢復
LCKn 封鎖 。
『玖』 Oracle資料庫的物理結構和邏輯結構分別是怎麼樣的
1.Oracle資料庫的物理結構Oracle物理結構包含了數據文件、重做日誌文件、控制文件、參數文件、密碼文件、歸檔日誌文件、備份文件、告警日誌文件、跟蹤文件等等;其中數據文件、控制文件、重做日誌文件和參數文件是必須的,其他文件可選。
2.Oracle資料庫的邏輯結構
Oracle資料庫的邏輯結構是一種層次結構,主要由表空間、段、區和數據塊等概念組成。邏輯結構是面向用戶的,用戶使用Oracle開發應用程序使
用的就是邏輯結構。資料庫存儲層次結構及其構成關系,結構對象也從數據塊到表空間形成了不同層次的粒度關系。
『拾』 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是系統為實例分配的一組共享內存緩沖區,用於存放資料庫實例和控制信息,以實現對資料庫中數據的治理和操作。