數據庫塊(BLOCK)
ORACLE 數據庫中的最小存儲和處理單位,包含塊本身的頭信息數據或PL/SQL代碼。
ORACLE 塊的大小是可以在安裝時選擇“自定義安裝”來指定,也可以在CREATE DATABASE創建數據庫實例時指定。其最小爲2K,最大可達爲64K。
l 瓶頸(Bottleneck)
指限制系統性能的部件。
l 面向對象的關係數據庫
具有關係數據庫的全部功能,同時又支持面向對象的數據庫,稱作面向對象關係數據庫系統。Oracle7是一種功能完備的關係數據庫系統;oracle8是一種面向對象的關係數據庫系統。
l 客戶/服務器結構(Client/Server)
有客戶機、服務器、網絡三要素的結構,客戶機(PC機)通過網絡與服務器相連和工作。
l 胖客戶機(Fat Client)
一般的Client/Server結構中的客戶機均爲胖客戶機。因爲這些客戶機需要配置較高的設備,如內存、硬盤、主頻、CD_ROM等。
l 瘦客戶機(Thin Client)
也稱作NC(網絡計算機),是一種內存配置小(過去指一般只有4M,現無法定義),無硬盤,只有處理心片的處理機。
l 數據在線分析處理(OLAP)
是一種能以快速、交互、方便的方式洞察數據情況的技術。如Oracle Express,Cognos(加拿大)的Power Play, Business Objects公司的Business Object 等。
l 多線程(MTS)
一個用戶可以同時運行多個程序對數據庫進行訪問,比如Visual C/C++可以提供同時啓動多個進程,而Visual Basic則不能。
l 數據倉庫(Data Warehouse)
支 持大量數據信息存儲的叫做支持數據倉儲或數據倉庫。當把幾個小型數據庫集成爲一個大型數據庫,併爲一個較廣泛的組織服務時,如果該數據庫存儲歷史數據,提 供決策支持,提供數據彙總,提供只讀數據,並且實質上充當所有向它提供數據的相關成品數據庫的數據接收器,那麼它通常被叫做數據倉庫。
l 實例(Instance)
是訪問Oracle數據庫所需的一部分計算機內存和輔助處理後臺進程。
l 對象(Objects)
是實現世界實體的軟件表示,如表、索引、視圖、同義詞、過程等。
l 數據庫文件(Datafile)
Oracle系統中用於存放數據(應用系統數據)的文件。(<<Oracle8初學者指南>>P14中的例子不準確,容易誤導讀者)。
l 控制文件(Control File)
Oracle中存放系統用的一些數據的文件。如數據文件的路徑及文件名,初始化文件路徑及 文件名等都存放在控制文件中。
l 日誌文件(Logs File)
也叫事務記錄文件,該文件記錄有事物對數據庫進行的一切修改操作或事務。
l DBA(Database administrator-數據庫管理員)
是管理數據庫系統的技術工具或人員,在完備的數據庫系統中都提供DBA功能。
l 灰數據塊(Dirty data block)
存放在內存中的原始數據已被修改,而修改後的數據還未寫入數據庫中。
l 熱數據塊(Hot data block)
存放着那些經常被修改數據叫熱數據塊。
l LRU(Least Recently Used-最近最少用)
Oracle系統使用的一種算法,對於在內存中但最近又不用的數據塊(內存塊)叫做LRU,Oracle會根據那些數據屬於LRU而將其移出內存而騰出空間來加載另外的數據。
l 表(Table)
存放專門數據而建立和分配的空間。
l 表空間(Tablespace)
是一個或多個數據文件的集合,所有的數據對象都存放在指定的表空間中,但主要存放的是表, 所以稱作表空間。
l 回滾(Rollback)
將用戶(或者說事務)改變的數據恢復到上一次所處的狀態。
l 恢復信息(Undo Information)
記錄用於恢復的信息稱作恢復信息。回滾就是根據恢復信息內容進行恢復的。
§2.2 Oracle數據庫結構
Oracle數據庫結構是Oracle數據庫系統的主要部分,它是一些可以看得見的軟件,包括:
l Oracle 數據字典
l 表空間與數據文件
l Oracle實例(Instance)
§2.2.1 Oracle 數據字典
Oracle數據庫的重要部分是數據字典。它存放有Oracle數據庫所用的有關信息,對用戶來說是一組只讀的表。數據字典內容包括:
l 數據庫中所有模式對象的信息,如表、視圖、簇、及索引等。
l 分配多少空間,當前使用了多少空間等。
l 列的缺省值。
l 約束信息的完整性。
l Oracle用戶的名字。
l 用戶及角色被授予的權限。
l 用戶訪問或使用的審計信息。
l 其它產生的數據庫信息。
數據庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
數據庫數據字典不僅是每個數據庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問數據庫數據字典。
§2.2.2 表空間與數據文件
簡單說,表空間就是一個或多個數據文件(物理文件)的集合(邏輯文件)。一般有下面的表空間:
1)系統表空間(System tablespace)
是各種不同版本的Oracle必備的部分,存放Oracle系統的一些信息,一般只有一個SYSTEM表空間。
2)臨時表空間(Temporary tablespace )
由於Oracle工作時經常需要一些臨時的磁盤空間,這些空間主要用作查詢時帶有排序(Group by,Order by等)等算法所用,當用完後就立即釋放,對記錄在磁盤區的信息不再使用,因此叫臨時表空間。一般安裝之後只有一個TEMP臨時表空間。
3)工具表空間(Tools tablespace)
用於保存Oracle數據庫工具所需的數據庫對象,這些工具表空間存放在工作時所用的專用表。舊的Oracle版本無此表空間。安裝之後的工具表空間是Tools。
4)用戶表空間(Users tablespace)
用於存放一些實驗例子用的空間,當然也可以用於存放應用系統的數據。舊版本無Users表空間。現在的用戶表空間爲 USERS 。
5)數據及索引表空間
存放數據及索引的表空間,Oracle7以後都提倡在應用系統中,特別是具有大量數據的系統,要把數據和索引分開存放在不同的分區中,以便提高查詢速度。在安裝後索引表空間可能是INDX。數據表空間就是USERS。
6)回滾段表空間(Rollback Segment)
Oracle數據庫系統在運行Insert、Update、Delete時都需要一個磁盤空間來存放恢復信息(Undo Information),以便在進行恢復時能將原來信息讀出來。安裝後的回滾段表空間是RBS表空間。數據庫管理員也可根據應用的需要建立另外的回滾段表空間。
Oracle 以表空間來存儲邏輯數據並 以物理數據相連。如圖:
Tablespace 1 Tablespace 2
數據庫被分成一個或多個邏輯部件稱作表空間。而表空間又被分成稱作段(segment)的邏輯部件。這些段再細分就叫擴展(extents)。
§2.2.3 Oracle實例
Oracle實例(Instance)是由一組後臺進程和內存結構組成。每個運行的數據庫系統都與實例有關。所以,有時稱Oracle實例爲數據庫操作系統。下面是Oracle實例的解釋。
Oracle 進程
Oracle有兩種類型的進程: 服務器進程和後臺進程(server processes and background processes)。
服務器進程
Oracle 服務器進程是處理用戶與實例連接的事務。任務是:
l 分析和執行應用所發出的SQL語句。
l 從數據文件讀必要的數據到SGA區的共享數據區。
l 返回必要信息給應用。
後臺進程
Oracle系統使用一些附加的進程來處理系統的必須的工作。這些進程叫後臺進程:
l 數據庫寫 (DBW0 或