oracle入門

1.1 ORACLE數據庫簡介
Oracle簡稱甲骨文,是一家名聲不像微軟、IBM那樣顯赫,但在IT軟件業,則是僅次於微軟公司的世界第二大軟件公司,該公司名稱就叫Oracle。該公司成立於1979年,是加利福尼亞州的第一家在世界上推出以關係型數據管理系統(RDBMS)爲中心的一家軟件公司。Oracle不僅在全球最先推出了RDBMS,並且事實上掌握着這個市場的大部分份額。現在,他們的RDBMS被廣泛應用於各種操作環境:Windows NT、基於UNIX系統的小型機、IBM大型機以及一些專用硬件操作系統平臺。事實上,Oracle已經成爲世界上最大的RDBMS供應商,並且是世界上最主要的信息處理軟件供應商。由於Oracle公司的RDBMS都以Oracle爲名,所以,在某種程度上Oracle己經成爲了RDBMS的代名詞。

Oracle數據庫管理系統是一個以關係型和麪向對象爲中心管理數據的數據庫管理軟件系統,其在管理信息系統、企業數據處理、因特網及電子商務等領域有着非常廣泛的應用。因其在數據安全性與數據完整性控制方面的優越性能,以及跨操作系統、跨硬件平臺的數據互操作能力,使得越來越多的用戶將Oracle作爲其應用數據的處理系統。

Oracle數據庫是基於“客戶端/服務器”(Client/Server)模式結構。客戶端應用程序執行與用戶進行交互的活動。其接收用戶信息,並向“服務器端”發送請求。服務器系統負責管理數據信息和各種操作數據的活動。

Oracle數據庫有如下幾個強大的特性:
? 支持多用戶、大事務量的事務處理
? 數據安全性和完整性的有效控制
? 支持分佈式數據處理
? 可移植性強

Oracle體系龐大,對於初學者來說,大體上要明白定位思想:
Oracle大體上分兩大塊,一塊是應用開發,一塊是系統管理。
開發主要是寫寫存儲過程、觸發器什麼的,還有就是用Oracle的Develop工具做form。有點類似於程序員,需要有較強的邏輯思維和創造能力。管理則需要對Oracle數據庫的原理有深刻的認識,有全局操縱的能力和緊密的思維,責任較大,因爲一個小的失誤就會丟失整個數據庫,相對前者來說,後者更看重經驗。
因爲數據庫管理的責任重大,很少公司願意請一個剛剛接觸Oracle的人去管理數據庫。對於剛剛畢業的年輕人來說,可以先選擇做開發,有一定經驗後轉型,去做數據庫的管理。當然,這個還是要看人個的實際情況來定。

Oracle的幾個專業性網站:
http://www.oradb.net/default.asp(Oracle技術網)
http://www.cnoug.org/index.php (ORACLE技術中國用戶討論組)

1.2 ORACLE數據庫的體系結構
數據庫的體系結構是指數據庫的組成、工作過程與原理,以及數據在數據庫中的組織與管理機制
1.2.1 ORACLE服務器
Oracle服務器由Oracle數據庫和Oracle實例組成。Oracle數據庫是一個數據的集合,該集合被視爲一個邏輯單元。在一個裝有Oracle數據庫的服務器上,必須運行一系列進程來管理該數據庫。這些進程使用大塊的內存,這些內存塊分別具有與特定任務相關的用途。
後臺進程和內存結構的集合稱爲Oracle實例。如果要訪問數據庫中的數據,就需啓動該實例。每一個運行的Oracle數據庫都與一個Oracle實例相聯繫。

1.2.2 ORACLE組件

實例、用戶進程和服務器進程駐留在內存中,而所有其他文件都存儲在硬盤上。

? Oracle實例:
Oracle實例是後臺進程和內存結構的集合。必須啓動實例才能訪問數據庫中的數據。Oracle實例啓動時,將分配一個系統全局區(SGA)並啓動一系列Oracle後臺進程。每一個後臺進程在數據庫中執行不同的任務。一個實例只能打開並使用一個數據庫。

? Oracle數據庫:
Oracle數據庫由操作系統文件組成,這些文件也稱爲數據庫文件,爲數據庫信息提供實際物理存儲區。Oracle數據庫包括邏輯結構和物理結構。數據庫的物理結構包含數據庫中的一組操作系統文件。數據庫的邏輯結構是指數據庫創建之後形成的邏輯概念之間的關係,如表、視圖、索引等對象。


? 會話:
會話是用戶與Oracle服務器的單個連接。當用戶與服務器建立連接時創建會話。當用戶與服務器斷開連接時關閉會話。當一個數據庫用戶同時用多個不同的應用程序或從多個終端連接數據庫時,則爲該用戶創建多個並行會話。

? Oracle實例內存結構:
Oracle的內存結構包含以下兩個內存區:

? 系統全局區:(SGA):實例啓動時分配該內存區。
Oracle實例的SGA(System Global Area)又稱爲共享全局區,它用來存儲數據庫信息,並由多個數據庫進程共享。當數據庫實例啓動時,SGA的內存被自動分配。SGA是數據庫中佔用服務器內存最大的一個區域,同時也是影響數據庫性能的一個重要指標。SGA按其作用不同,可以分爲共享池、數據緩衝區及日誌緩衝區。
? 共享池
共享池是對SQL、PL/SQL程序進行語法分析、編譯、執行的內存區域
共享池由庫緩存和數據字典緩存組成。
共享池的大小直接影響數據庫的性能。

? 數據緩衝區
用於存儲從磁盤數據文件中讀入的數據,所有用戶共享。
服務器進程將讀入的數據保存在數據緩衝區中,當後續的請求需要這些數據時可以在內存中找到,不需要再從磁盤讀取,提高了讀取速度。
數據緩衝區的大小對數據庫的讀取速度有直接的影響。

? 日誌緩衝區
日誌記錄數據庫的所有修改信息,日誌信息首先產生於日誌緩衝區。
當日志緩衝區的日誌數據達到一定數量時,由後臺進程將日誌數據寫入日誌文件中。相對來說,日誌緩衝區對數據庫的性能影響較小。

? 程序全局區:(PGA):服務器進程啓動時分配該內存區。
程序全局區PGA(Program Global Area)包含單個服務器進程或單個後臺進程所需的數據和控制信息。PGA是在用戶進程連接到數據庫並創建一個會話時自動分配的,該區內保留每個與Oracle數據庫連接的用戶進程所需的內存。PGA爲非共享區,只能單個進程使用,當一個用戶會話結束後,PGA釋放。

? Oracle實例進程結構:

? 用戶進程:
用戶進程是一個需要與Oracle服務器進行交互的程序。此進程在數據庫用戶請求連接Oracle服務器時啓動。如用戶啓動數據庫客戶端工具SQL *Plus時,系統自動建立一個用戶進程。

? 服務器進程:
服務器進程用於處理連接到該實例的用戶進程的請求。此進程在用戶建立會話並連接Oracle實例時啓動。服務器進程直接與Oracle數據庫交互,實現調用和返回結果。

? 後臺進程:
在Oracle數據庫中,爲了使系統性能最好和協調多個用戶,實例系統中使用一些附加進程,稱爲後臺進程。這些後臺進程存在於服務器操作系統中,在實例啓動時自動啓動。
常用的幾個後臺進程如下所示:

? 進程監控:(PMON)
在用戶進程出現故障時執行進程恢復。(常見任務見書7)
? 系統監控:(SMON)
在實例啓動時執行實例恢復。(常見任務見書7)
? 數據寫入進程:(DBWR)
將所有修改後的緩衝區數據寫入數據文件。(常見任務見書8)
? 日誌寫入進程:(LGWR)
將日誌緩衝區中的日誌數據信息寫入日誌文件中。
? 檢查點:(CKPT)
保證所有修改過的數據庫緩衝區數據都被寫入數據庫文件中。
? 歸檔進程:(ARCH)
當數據庫運行在歸檔模式下時,產生該進程,用於寫歸檔日誌文件。

1.2.3 ORACLE的物理組件
數據庫的物理組件是指從物理角度分析數據庫的組成,也就是Oracle數據庫創建後使用的操作系統物理文件。Oracle數據庫的物理文件可分爲三類,即數據文件、日誌文件和控制文件。

? 數據文件:(SYSTEM01.DBF/SYSTEM01.ORA)
數據文件(Data Files)用於存儲數據庫數據的文件。如表、索引等數據都是存儲在數據文件中。每個Oracle數據庫有一個或多個物理數據文件。一個數據文件只能與一個數據庫關聯。
? 日誌文件:(REDO01.LOG)
日誌文件(Redo Log Files)用於記錄對數據庫所進行的修改。日誌文件主要用於在數據庫出現故障時實施數據庫恢復。

? 控制文件:(CONTROL01.CTL)
控制文件(Control Files)用於記錄數據庫物理結構的二進制文件。該文件包含維護和驗證數據庫完整性的必要信息。

1.2.4 ORACLE的邏輯組件
數據庫的邏輯組件是從邏輯的角度分析數據庫的組成。Oracle對於邏輯結構的描述是通過數據字典存儲完成的。Oracle數據庫的邏輯組件包括
表空間、段、區、塊和用戶模式等。

? 表空間(TABLESPACE):
表空間是數據庫中最大的邏輯單位,Oracle數據庫採用表空間將相關的邏輯組件組合在一起,一個Oracle數據庫至少包含一個表空間。每個表空間由一個或多個數據文件組成,一個數據文件只能與一個表空間相聯繫。
在每一個數據庫中都有一個名爲SYSTEM的表空間,即系統表空間,該表空間是在創建數據庫或數據庫安裝時自動創建的,用於存儲系統的數據字典表、程序單元、過程、函數、包和觸發器等。
創建表空間的語法如下:

擴展數據文件的語法如下:


? 段(SEGMENT):
一個表空間包含一個或多個段。段是一種指定類型的邏輯存儲結構一個段由多個區組成。如常用的4類段結構:
(數據段——索引段——回滾段——臨時段)
? 區(EXTENT):
區是磁盤空間分配的最小單位。磁盤按區劃分,每次至少分配一個區。區爲段分配空間,它由連續的數據塊組成。一個區由多個數據塊組成,塊是進行數據讀寫操作的最小單元。
? 數據塊(DATA BLOCK):
數據塊是數據庫中最小的數據組織單位與管理單位,Oracle數據庫中的數據存儲於數據塊中。數據塊的取值範圍在2KB~64KB之間。
? 模式(SCHEMA):
模式是對用戶所創建的數據庫對象的總稱,在Oracle數據庫中任何數據庫對象都屬於一個特定用戶,一個用戶及其所擁有的對象即稱爲模式。模式對象包括表、視圖、索引、同義詞、序列、過程和程序包等。一個用戶與相同名稱的模式相關聯,所以又稱爲用戶模式。
1.3 登陸到ORACLE
在Oracle產品安裝完成後,客戶端爲了與數據庫服務器連接進行數據訪問,必須進行網絡連接配置,網絡配置包括服務器端配置和客戶端配置。
  
? 服務器配置:(監聽器)
服務器端配置,是指配置一個監聽器。用於監聽客戶端發過來的連接請求。
監聽器配置包括監聽協議、地址以及其它相關的信息參數。
監聽器配置存儲在一個名稱爲listener.ora的配置文件中。
該文件位於D:/oracle/ora90/network/ADMIN/listener.ora
默認的監聽器監聽以下TCP/IP協議地址。

在安裝Oracle數據庫軟件時,安裝程序自動配置一個名稱爲LISTENER的監聽器。監聽器對應於windows服務OracleOraHome92TNSListener

? 客戶端配置:(服務名)
客戶端要與服務器連接請求,則須創建一個網絡服務名,該服務名與遠程或本地的監聽器建立連接,客戶用它向服務器端發出連接請求。
要在一臺沒有安裝Oracle數據庫服務器的工作站上連接Oracle服務器,必須單獨安裝Oracle客戶端軟件。在客戶端創建服務名時,需要指定網絡協議、與協議相關的信息和數據庫的SID(全局數據庫名)。這些配置信息都存儲在tnsnames.ora文件中,保存位置與listener.ora相同。
該文件位於D:/oracle/ora90/network/ADMIN/ tnsnames.ora

※: [ Oracle中的 Net Configuration Assistant和Net Manager工具都能用來配置監聽器和網絡服務名 ]

1.4 ORACLE的應用工具
? Oracle查詢工具:(Oracle Query Tools)
? SQL *Plus
? Isql *Plus
? PL/SQL

? Oracle企業管理器:(Oracle Enterprise Manager)
1.5 用戶管理
在Oracle中,爲了加強數據的安全性,用戶必須擁有相應的帳號及其權限纔可訪問Oracle數據庫。數據庫管理員可以創建允許訪問數據庫的用戶賬號,並授予其訪問權限,帳號創建後,用戶就能根據管理員授予的權限訪問Oracle數據庫了。
? 在Oracle中創建用戶:
當創建一個新數據庫時,Oracle將創建一些默認數據庫用戶及其相應模式。默認使用的用戶有如下幾個:
1. SYS:超級用戶:——(password:  changle_on_install)
數據庫中所有數據字典和視圖都存儲在SYS模式中。該用戶主要用來維護系統信息和管理實例。在Oracle9i版本中,SYS用戶只能以SYSOPER或SYSDBA角色登錄系統。

2. SYSTEM:系統管理員:——(password:  manager)
SYSTEM用戶是Oracle中默認的系統管理員,它擁有DBA權限。通常用於管理數據庫的用戶、權限和存儲等,不建議在該用戶模式中創建用戶表。

3. SCOTT:示範帳號:——(password:  tiger)
該用戶在Oracle安裝時自動創建。一般作測試和示範用,其有4個示範表。

Oracle中的CREATE USER命令用於創建新用戶。每個用戶都有一個默認表空間和一個臨時表空間。如果創建時沒有指定,Oracle就將SYSTEM設爲默認表空間,將TEMP設爲臨時表空間。
創建Oracle用戶及其權限的語法如下:

? 爲Oracle用戶授權/撤消:
1:grant——授權
grant  select,  insert  on  tbtest  to  user1;

2: grant——with grant option授權並使該用戶可以授這些權給其他用戶
grant  select, insert  on  tbtest  to  user1  with grant option

3: revoke——撤消
revoke  select,  insert  on  tbtest  from  user1;

? 修改用戶口令:
Oracle中的ALTER USER命令可用於更改口令。


? 刪除用戶:
刪除一個用戶時,若用戶模式中包含有模式對象,則所有這些對象也將立即刪除。Oracle中的DROP USER命令可用於刪除用戶,當用戶擁有模式對象時必須使用CASCADE選項以刪除所有模式對象。

1.6 ORACLE的安裝與卸載
(詳見Oracle安裝圖解.xls  與  NT下如何徹底刪除Oracle.htm)

1.7 ORACLE的各種服務
在windows中Oracle的每個實例都作爲一項服務來啓動。服務是在
windows註冊表中註冊的可執行進程,由windows操作系統管理。
windows服務對話框中的各項 Oracle 服務如圖所示:






1.8 使用 Oracle 數據庫的開發流程

 

發佈了51 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章