一、數據庫(Database) 數據庫是一個數據的集合,不僅是指物理上的數據,也指物理、存儲及進程對象的一個組合。Oracle是關係型數據庫管理系統(RDBMS)。 二、實例(Instance) 數據庫實例(也稱爲服務器Server)就是用來訪問一個數據庫文件集的一個存儲結構及後臺進程的集合。它使一個單獨的數據庫可以被多個實例訪問(也就是ORACLE並行服務器-- OPS)。實例和數據庫的關係如下: ---------------------------------------------------------------------------- | 實例1 SGA+進程 | 實例2 SGA+進程 | ---------------------------------------------------------------------------- | 數據庫(一組數據文件) | ---------------------------------------------------------------------------- 決定實例的組成及大小的參數存儲在init<sid>.ora文件中。 三、內部結構 表、列、數據類型(Table、Column、Datatype):Oracle中是以表的形式存儲數據的,它包含若干個列;列是表的屬性的描述;列由數據類型和長度組成;Oracle中定義的數據類型主要有CHAR、VARCHAR2、NUMBER、DATE、LONG、LOB、BFILE等 約束條件(Constraint) :表中以及表間可以存在一些數據上的邏輯關係、限制,也就是約束。Oracle中的約束主要有主鍵(PK)、外鍵(FK)、檢查(CHECK)、唯一性(UNIQUE)等幾種;擁有約束的表中每條數據均必須符合約束條件。 抽象數據類型(Abstract Datatype):可以利用CREATE TYPE命令創建自定義的抽象數據類型。 分區(Partition):可以利用分區將大表分隔成若干個小的存儲單元,邏輯上仍然是一個完整的獨立單一實體,以減小訪問時數據的查找量,提高訪問、存儲效率。 用戶(User):用戶不是一個物理結構,但是它與數據庫的對象擁有非常重要的關係--用戶擁有數據庫對象,以及對象的使用權。 模式(Schema):用戶帳號擁有的對象集合稱爲模式。 索引(Index):數據庫中每行記錄的物理位置並不重要,Oracle爲每條記錄用一個ROWID來標識,ROWID記錄了記錄的準確位置。索引是供用戶快速查找到記錄的數據庫結構。ORACLE8中有簇索引、表索引、位圖索引三種索引形式。 簇(Cluster):經常被頻繁引用的表可以在物理位置上被存儲在一起,簇就是用來管理這種集中存儲的。集中存儲可以減少I/O次數,以達到性能的改善和提高。 散列簇(Hash Cluster):簇的另一種形式,這種簇中的數據要通過散列函數計算得出物理位置,它可以極大程度的提高等值查詢的效率。 視圖(View):可以理解爲固化的查詢或者沒有數據存儲的表,它是一組表的查詢結果集合,對應用來說是獨立的結構,除沒有數據存儲以外,擁有和表同樣的屬性。 序列(Sequence):一個唯一數值的序列生成器,它每次被引用後,自動遞增。 過程、函數(Procedure、Function):編譯存儲在數據庫中的一個PL/SQL程序段,可以被引用。函數返回調用者一個值,過程則不返回任何值。 包(Package):函數、過程的集合。包中可以包含不同的元素,可以是公有的也可以是私有的。 觸發器(Trigger):觸發器是一些過程或PL/SQL程序段,當一個特定的事件發生時,就會自動引發這些過程的執行。 同義詞(Synonyms):在分佈式數據庫環境中,要完全識別一個對象,必須指出對象的主機、屬主等信息,爲了簡化這一過程,可以對這些對象建立同義詞,引用這些同義詞時系統自動轉義成對原始對象的引用。 權限、角色(Privilege、Role):爲了引用數據庫的對象,必須擁有這些對象的相應權限,角色是這些權限的集合,例如--DBA就是一個角色,它包括一組數據庫權限。 數據庫鏈路(Database Link):引用其他數據庫的數據時,需要指明詳細路徑,鏈路就是詳細路徑的識別名。 四、內部存儲結構 系統全局區(System Global Area,SGA):包括--數據塊緩衝存儲區(Data Block Buffer Area)、字典緩衝區(Dictionary Cache)、日誌緩衝區(Redo Log Buffer)、SQL共享池(Shared SQL Pool)四部分。 正文區間(Context Area):每個用戶都擁有自己的私有SQL區域,保存相關的SQL語句,直到語句相關的光標關閉爲止。 程序全局區(Program Global Area,PGA):它是存儲區中被單個用戶進程所使用的區域,PGA不能共享。 五、後臺進程(BACKGROUND PROCESSES) 系統監控(SMON):用以取消系統不再需要的事物對象以及清理數據庫。 進程監控(PMON):清除用戶失敗後的後臺進程,並釋放進程所佔用的資源。 數據庫寫入進程(DBWR):管理數據塊緩衝區及字典緩衝區的內容。 日誌寫入進程(LGWR):將日誌緩衝區的內容寫到日誌文件中。 檢查點進程(CKPT):用來減少實例恢復所需的時間。 歸檔進程(ARCH):負責在歸檔模式下,將日誌備份到相關位置。 RECO進程:用於分佈式數據庫中的失敗處理。 快照進程(SNPn):用來管理快照的刷新。 後臺進程(LCKn):當ORACLE以並行服務器方式進行時,後臺進程用來解決內部實例的鎖定問題。 Dnnn進程:在MTS模式下,用來減少多重連接所需的信息源。 服務器進程Sever(Snnn):用來管理需要專用服務器的數據庫的連接。 六、外部結構 包括:日誌文件、控制文件、跟蹤文件與修改日誌。 七、一個簡單數據庫的組成 一個或多個數據文件 一個或多個控制文件 兩個或多個聯機日誌文件 多個用戶/模式 一個或多個回滾段 一個或多個表空間 數據字典表 用戶對象(表、視圖、索引等) 一個SGA區 SMON進程 PMON進程 DBWR進程 LGWR進程 與用戶進程相關的PGA區 |
數據庫的一些概念
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.