oracle數據庫應用與開發_第1頁
oracle數據庫應用與開發_第2頁
oracle數據庫應用與開發_第3頁
oracle數據庫應用與開發_第4頁
oracle數據庫應用與開發_第5頁
已閱讀5頁,還剩235頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫系統教案目錄目錄專題一Oracle入門.11.教學目標.12.工作任務.13.相關實踐知識.13.1Oracle10g的安裝和卸載.13.2用NetConfigurationAssistant配置客戶端服務名.103.3啟動Oracle服務.163.4認識Oracle常用工具.183.5創建數據庫和表空間.243.6Oracle中的用戶管理.324.實驗.345.課后作業.35專題二鎖和表分區.361.教學目標.362.工作任務.363.相關實踐知識.363.1使用行級鎖和時間戳來保證數據完整性.363.2使用表級鎖.403.3使用表分區.434.提高.495.實驗.506.課后作業.5

2、0專題三SQL語句和SQL函數.52教學目標.52案例一Oracle數據庫中的DDL、DML和DCL.531.教學目標.532.工作任務.533.相關實踐知識.534.實驗.675.課后作業.67案例二Oracle數據庫中的函數及子查詢.681.教學目標.682.工作任務.683.相關實踐知識.683.1綜合使用各種函數.683.2字符函數.783.3數字函數.813.4日期函數.843.5轉換函數.854.實驗.86-I-目錄5.課后作業.86專題四數據庫對象.871.教學目標.872.工作任務.873.相關實踐知識.873.1使用同義詞.873.2使用序列實現自增主鍵.893.3使用視圖.

3、923.4使用索引加快表的查詢.994.實驗.1085.課后作業.108專題五PL/SQL編程.1101.教學目標.1102.工作任務.1103.相關實踐知識.1103.1用PL/SQL塊來查詢表內信息.1113.2用條件控制語句來實現為員工加薪.1163.3使用循環控制語句.1183.4用順序控制語句實現更新員工工資.1193.5PL/SQL異常處理機制的應用.1204.提高.1245.實驗.1256.課后作業.126專題六游標.1271.教學目標.1272.工作任務.1273.相關實踐知識.1273.1使用游標屬性.1273.2用游標生成員工報表.1293.3用游標生成分部門員工報表.13

4、33.4用游標更新員工工資.1353.5使用REF游標動態返回結果集.1374.提高.1385.實驗.1406.課后作業.140專題七過程、函數和程序包.1411.教學目標.1412.工作任務.1413.相關實踐知識.1413.1無參的顯示“HelloWorld!”的過程.1413.2用帶輸入參數的過程向表中插入記錄.1423.3用帶輸出參數的過程查詢表中的記錄數.144-II-目錄3.4使用帶輸入輸出參數的過程查詢記錄是否存在.1443.5使用函數查詢部門信息.1453.6使用程序包封裝過程和函數.1474.提高.1504.1用過程返回結果集.1504.2在企業管理器中管理過程、函數和程序包

5、.1515.實驗.1536.課后作業.153專題八觸發器.1551.教學目標.1552.工作任務.1553.相關實踐知識.1553.1BEFORE行級觸發器.1563.2AFTER行級觸發器.1603.3BEFORE語句級觸發器.1613.4AFTER語句級觸發器.1623.5INSTEADOF觸發器.1643.6DDL觸發器.1673.7數據庫啟動和關閉觸發器.1683.8用戶登錄和退出觸發器.1693.9管理觸發器.1714.實驗.1725.課后作業.173專題九數據庫高級管理.1741.教學目標.1742.工作任務.1743.相關實踐知識.1743.1用戶和角色的創建和使用.1743.2

6、調整數據庫從非歸檔模式到歸檔模式.1793.3數據導入導出.1844.實驗.1935.課后作業.193-III-專題一Oracle入門專題一Oracle入門1.教學目標1.1了解Oracle10g的安裝和卸載1.2學會配置Oracle客戶端1.3學會使用Oracle常用工具:企業管理器、iSQL*Plus和SQL*Plus1.4掌握創建數據庫和表空間的方法,了解Oracle的體系結構1.5掌握Oracle中的基本用戶管理2.工作任務2.1在Windows環境下安裝和卸載Oracle10g2.2配置Oracle客戶端2.3學習使用Oracle常用工具:企業管理器、iSQL*Plus和SQL*Pl

7、us2.4創建數據庫和表空間2.5創建用戶并為之授權,修改用戶口令,刪除用戶3.相關實踐知識3.1Oracle10g的安裝和卸載1.在Windows環境下,將Oracle10g安裝盤放入光盤驅動器,安裝程序會自動運行,顯示如如圖1-1所示的窗口。理論知識:Oracle簡介Oracle公司,中文翻譯成甲骨文公司,是全球最大的信息管理軟件及服務供應商。該公司成立于1977年,總部位于美國加州的紅木海岸城。目前,Oracle產品覆蓋了大、中、小型機等幾十種機型,Oracle數據庫已成為世界上使用最廣泛的數據庫系統之一,Oracle公司已成為這一領域的領軍者與標準制訂者。經過30多年的不懈發展,Ora

8、cle數據庫已經可以應用于從支持成千上萬用戶的分布式聯機事務處理系統到擁有數萬億字節的用于決策支持數據倉庫的廣泛領域。Oracle公司推出的Oracle數據庫系統始終占據著數據庫市場龍頭的地位。Oracle公司敢為人先,始終引領著數據庫發展的潮流。在號稱第三代互聯網技術“網格計算”技術蓬勃興起之時,Oracle公司推出了最新的支持網格環境的數據庫解決方案Oracle10g,其中的g代表網格(grid)。-1-Oracle數據庫教案_Oraclel0g數據庫是第一個為企業級網格計算而設計的數據庫。Oraclel0g在Oracle9i的基礎上,提供了針對網格計算更多的特性,如更大的規模、可管理性、

9、高可用性及業務智能等。在過去的幾年中,Oracle數據庫環境已成為世界上最流行的數據庫平臺之一。據有關資料所述,目前Oracle已經占領了46以上的數據庫市場份額,并且有進一步擴大的趨勢。在高端數據庫領域,Oracle更是無所匹敵,因此,掌握Oracle數據庫技術是廣大IT人員的一項基本要求。盡管Oracle數據庫的主要目標依舊是服務于那些要求海量數據處理能力的大型公司或政府部門,但Oracle已經推出了許多適合較小組織的新產品,如PersonalOracle等。在各種操作系統平臺上,都有相應的數據庫產品。將Oracle集成到各種類型的企業和組織的計劃正在進行中,并已經取得了巨大的成就,這意味

10、著不只是大企業需要O-racle數據庫,廣大中小企業同樣需要Oracle數據庫。圖1-1光盤自動安裝界面2.單擊“開始安裝”,啟動安裝向導,進入“選擇安裝方法”界面,如圖1-2所示。-2-專題一Oracle入門圖1-2選擇安裝方法3.可以選擇“基本安裝”或“高級安裝”,我們選“基本安裝”,同時選中創建啟動數據庫,輸入創建的全局數據庫(能唯一標識一個數據庫的名稱,Oracle10g之前的版本要求全局數據庫名為數據庫名數據庫域名,Oracle10g對此沒有要求)的名稱(例如“orcl”)和口令。圖1-3選擇安裝類型-3-Oracle數據庫教案_注意:Oracle10gRelease2規定,口令不能

11、為“CHANGE_ON_INSTALL”,“MANAGER”,“DBSNMP”,“SYS-MAN”。這些口令分別為“SYS”“SYSTEM”“SYSMAN”“DBSNMP”四個數據庫用戶的默認口令。理論知識:Oracle10g數據庫核心產品:Oracle數據庫10g標準版1(OracleDatabase10gStandardEditionOne)Oracle數據庫10g標準版(OracleDatabase10gStandardEdition)Oracle數據庫10g企業版(OracleDatabase10gEnterpriseEdition)Oracle數據庫10g個人版(OracleData

12、base10gPersonalEdition)一般的部門級別的應用,比如一個部門的考勤管理,標準版足夠用,只有大型的企業級應用,比如一個大型制造企業的ERP系統,需要數據分布式的存儲和計算,才選擇企業版,個人版本一般個人學習用。4.選擇“安裝類型”。Oracle10gRelease2的安裝類型可為:企業版、標準版和個人版,可根據需要進行選擇,默認為企業版,單擊“下一步”按鈕,開始準備安裝。圖1-4準備安裝接著安裝程序自動進行“產品特定的先決條件檢查”,如圖1-5所示。5.安裝程序自動對當前系統進行檢查,檢查其是否符合安裝要求,只有最終出現“檢查完成。此次檢查的總體結果為:通過”(如圖1-5),

13、才能繼續安裝,否則檢查相應的檢查項,逐一改正,直到“總體結果為:通過”。單擊“下一步”按鈕,繼續安裝,顯示“概要”對話框,如圖1-6所示。-4-專題一Oracle入門圖1-5產品特定的先決條件檢查圖1-6安裝概要-5-Oracle數據庫教案_6.單擊“安裝”按鈕,OracleUniversalInstaller將安裝Oracle系統。在安裝過程中,用戶可以看到Oracle創建數據,以及對一些服務進行配置,如圖1-7、圖1-8、圖1-9所示。圖1-7安裝過程圖1-8配置特定服務-6-專題一Oracle入門圖1-9復制數據庫文件、創建并啟動Oracle實例7.當安裝完成后,安裝向導將彈出如圖1-1

14、0所示的窗口,顯示已經安裝的數據庫信息。圖1-10已安裝數據庫信息8.單擊圖1-10中的“口令管理”,彈出如圖1-11“口令管理”窗口(也可以不點擊“口令管理”,直接點“確定”進入到圖1-12的安裝結束界面,這樣的話SYS、SYSTEM、DB-SNMP、SYSMAN用戶的口令都是在圖1-2中設置的口令,且SCOTT用戶默認是被鎖定的)。-7-Oracle數據庫教案_圖1-11口令管理9.拖動滾動條找到SCOTT用戶,單擊SCOTT用戶“是否鎖定帳戶”列上的藍鉤,解除對SCOTT用戶的鎖定(因為在本書中許多的案例都是在SCOTT用戶下完成的,所以需要為其解鎖,在實際的安裝過程中,用戶可以根據實際

15、情況解鎖或不解鎖),為SYS和SYSTEM用戶設置口令后單擊“確定”,安裝程序將返回到圖1-10的窗口。10.單擊圖1-10中的“確定”,進入“安裝結束”窗口,如圖1-12所示。圖1-12安裝結束-8-專題一Oracle入門11.單擊“退出”,退出安裝程序。至此,Oracle10g安裝完畢。“12.下面開始演示如何卸載Oracle10g。在Windows的“開始”菜單中依次選擇:開始”“程序”“OracleOraDb10g_home1”“OracleInstallationProducts”“UniversalInstaller”,將顯示如圖1-13所示的窗口。圖1-13卸載產品13.單擊“卸

16、載產品”,出現如圖1-14所示的窗口。-9-Oracle數據庫教案_圖1-14產品清單14.展開節點,選定要卸載的項目,然后單擊“刪除”,出現如圖1-15所示的“確認”窗口,顯示選定的卸載項目。圖1-15卸載確認15.如果單擊“是”,程序執行完畢即卸載選定的項目,在此只做演示,所以請點“否”退出卸載產品。3.2用NetConfigurationAssistant配置客戶端服務名1.在Oracle安裝完成之后,客戶端要和數據庫服務器建立連接,必須進行網絡連接配置。在Windows的“開始”菜單中依次選擇:“開始”“程序”“OracleOraDb10g_hom-e1”“配置和移植工具”“NetCo

17、nfigurationAssistant”,會出現如圖1-16所示的窗口。圖1-16歡迎使用-10-專題一Oracle入門理論知識:網絡連接配置Oracle數據庫基于“客戶端/服務器”(Client/Server)系統結構,即客戶端系統和服務器系統。服務器系統執行數據庫相關的所有活動,客戶端系統執行與用戶交互的活動,它們又被稱為前端系統和后端系統。客戶端和服務器可以是一臺機器,也可以是通過網絡連接起來的不同操作系統、不同硬件平臺的機器。客戶端應用程序向數據庫服務器發送請求并接收信息,以此種方式與數據庫進行交互,充當用戶與數據庫之間的接口。數據庫服務器對數據庫進行管理,處理來自多個用戶的訪問,它

18、能夠在所有客戶端應用程序訪問數據的過程中,全面地保持數據庫的完整性,并控制數據庫訪問權限和其它安全性需求。在Oracle安裝完成之后,客戶端要和數據庫服務器建立連接,必須進行網絡連接配置,包括服務器端配置和客戶端配置。即服務器端配置監聽器和客戶端配置服務名。可以用NetConfigurationAssistant或NetManager工具,甚至可以直接修改相關的參數文件。首先,服務器端的監聽配置包括監聽協議、端口號以及其它相關信息的參數。監聽器配置存儲在一個名叫listener.ora的參數文件中,該文件在Windows環境下可能的位置是“C:oracleproduct10.2.0db_1NE

19、TWORKADMIN”。其實我們可以不自己配置監聽器,因為在安裝Oracle的時候系統已經為我們配置好了一個名叫“LISTENER”的監聽器,端口號是1521,它對應的服務是OracleOraDb10g_-home1TNSListener。然后,開始配置客戶端服務名。配置服務名的目的是讓客戶端通過服務名來與遠程或本地的監聽器建立連接。客戶端用它向服務器發送連接請求。要在一臺沒有安裝數據庫服務器的機器上連接Oracle服務器,必須單獨安裝Oracle客戶端軟件,在服務器上則自動包含了客戶端軟件。安裝Oracle時用戶指定了一個全局數據庫名,即SID名稱。Oracle用此SID名稱在服務器端自動創

20、建了一個服務名,如圖1-18中的“ORCL”(因此,當服務器和和客戶端在一臺機器上時,可以不配置服務名而直接使用系統自動創建的服務名)。在客戶端創建服務名時,需要指定服務器端服務名、網絡協議、主機名和監聽器端口等。這些配置信息都存儲在tnsnames.ora文件中,保存位置與listener.ora相同。2.在窗口中選擇“本地Net服務名配置”,點擊“下一步”,進入Net服務名配置,出現如圖1-17所示的窗口。-11-Oracle數據教案_圖1-17服務名配置3.選中“添加”單選按鈕,點擊“下一步”,出現如圖1-18所示的窗口。圖1-18服務名4.在服務名文本框中輸入遠程數據庫的服務名,如“O

21、RCL”,單擊“下一步”,出現“請選擇協議”窗口,如圖1-19所。-12-專題一Oracle入門圖1-19請選擇協議5.選擇“TCP”并單擊“下一步”,出現“TCP/IP協議”窗口,如圖1-20所示。圖1-20TCP/IP協議6.在文本框中輸入數據庫服務器的主機名“HANDSONSERVER”或服務器的IP地址,選擇“使用標準端口號1521”,單擊“下一步”按鈕,出現如圖1-21所示的“測試”窗口。-13-Oracle數據庫教案圖1-21測試7.選擇“是,進行測試”,單擊“下一步”按鈕,出現如圖1-22所示的窗口,提示“測試成功”。圖1-22正在連接-14-專題一Oracle入門注意:如果提示

22、“測試未成功”,請點擊“更改登陸”,改變SYSTEM用戶的登陸口令為安裝時設置的口令。8.在圖1-22所示的窗口中單擊“下一步”按鈕,出現如圖1-23所示的窗口。圖1-23Net服務名9.輸入要創建的本地服務名,如“MYSERVER”,單擊“下一步”按鈕,出現如圖1-24所示的窗口。-15-Oracle數據庫教案圖1-24是否配置另一個Net服務名10.選擇“否”,單擊“下一步”按鈕,出現如圖1-25所示的窗口,提示“Net服務名配置完畢!”。圖1-25服務名配置完畢11.單擊“下一步”按鈕,在出現的窗口中單擊“完成”,結束本地服務名的配置。3.3啟動Oracle服務1.在Windows的“開

23、始”菜單中依次選擇:“設置”“控制面板”,在打開的窗口中選擇“管理工具”,在雙擊打開后的窗口中選擇“服務”,雙擊打開,出現“服務”窗口,查看-16-專題一Oracle入門其中以“Oracle”開頭的服務,如圖1-26所示。圖1-26Oracle服務2.如果圖1-26中的以下幾項服務OracleServiceORCL、OracleOraDb10g_home1TNSList-ener、OracleOraDb10g_home1ISQL*Plus和OracleDBConsoleorcl的狀態不是“已啟動”,則選中該項服務,在單擊右鍵后出現的菜單中選擇“啟動”,以啟動該項服務;在某項服務的右鍵菜單中選擇

24、“屬性”,可打開“屬性”窗口,在其“常規”選項中可以設置該項服務的“啟動類型”為“自動”、“手動”或“禁用”;完成后關閉窗口退出。注意:在實際應用中,并非所有這些Oracle服務都必須啟動,每項服務的功能請參見相關理論知識部分。理論知識:Windows中的Oracle服務Oracle數據庫作為一項服務呈現給客戶,即數據庫執行客戶端提交的任務。在Wind-ows中Oracle的每個實例都作為一項服務來啟動。服務是在Windows注冊表中注冊的可執行過程,由Windows操作系統管理。Oracle服務可以手動啟動,也可配置為在計算機啟動時自動啟動,無需用戶干預,從而簡化數據庫的啟動過程。Oracl

25、e服務的名稱通常是一個包含全局數據庫名稱和OracleHOME名的字符串。常用的Oracle服務有:1.OracleHOME_NAMETNSListener服務如圖1-26中的OracleOraDb10g_home1TNSListener服務。此服務是Oracle的監聽程序。要連接到數據庫服務器,客戶端必須先連接到駐留在數據庫服務器上的監聽進程。監聽器接收從客戶端發出的請求,然后將請求傳遞給數據庫服務器。一旦建立了連接,客戶端和數據庫服務器就可以直接通信了。監聽器監聽并接受來自客戶端的連接請求。若監聽器未啟動,客戶端將無法連接到數據庫服務器。2.OracleServiceSID服務如圖1-26

26、中的OracleServiceORCL服務。此實例是為名為SID(系統標識符)的數-17-Oracle數據庫教案據庫實例創建的。Oracle實例由一個系統標識符SID唯一地標識,以區別于此計算機上的其它任何實例。每次新創建一個數據庫,系統會自動為該數據庫的實例創建一個服務。如果此服務未啟動,數據庫客戶端應用程序連接到數據庫服務器時就會出現錯誤。3.OracleHOME_NAMEiSQL*Plus服務如圖1-26中的OracleOraDb10g_home1iSQL*Plus服務。要使用iSQL*Plus,必須啟動該服務。4.OracleDBConsoleOracle_SID服務如圖1-26中的O

27、racleDBConsoleorcl服務。要使用企業管理器必須啟動該服務。每次新創建一個數據庫,也會新創建一個此項服務。3.4認識Oracle常用工具3.4.1企業管理器“1.打開瀏覽器,在地址欄中輸入安裝過程中圖1-12中以“em”結尾的URL地址:http:/houtony:1158/em”,出現如圖1-27所示的登錄界面(如果是第一次登陸企業管理器,會出現“OracleDatabase10g許可授予信息”的網頁,點擊網頁右下角的“我接受”按鈕,即可進入到圖1-27所示的界面)。圖1-27企業管理器登錄2.輸入的用戶名和口令,例如“SYS”和“SYS”,選擇連接身份為“SYSDBA”,點擊

28、“登錄”,進入Oracle企業管理器的主界面,如圖1-28所示。-18-專題一Oracle入門圖1-28企業管理器主界面3.分別點擊“主目錄”、“性能”、“管理”、“維護”四個主菜單,查看企業管理器的主要功能。理論知識:Oracle企業管理器(OracleEnterpriseManager),簡稱OEM,從10g開始,可以用瀏覽器的方式來訪問企業管理器。它是Oracle的集成管理平臺,能夠管理整個Or-acle環境,讓用戶可以以可視化的方式完成管理數據庫對象、監視服務器的實時性能、對數據庫進行備份和恢復、完成作業系統等一系列的功能。在Oracle10g安裝完成后,開始時只有SYS和SYSTEM

29、用戶才能登錄到OEM,且S-YS用戶只能以SYSDBA或SYSOPER身份,SYSTEM用戶只能以NORMAL身份,其他用戶必須經過相應的授權后才能登錄。3.4.2SQL*Plus工具1.在Windows的開始菜單中選擇“運行”,在“打開”文本框中輸入“cmd”后,點擊“確定”按鈕,進入到命令控制臺狀態。2.在Dos提示符下輸入命令“sqlplus/nolog”,按回車后可進入到字符界面的SQL*Plus,如圖1-29所示。-19-Oracle數據庫案例教程_教師用書圖1-29進入到字符界面的SQL*Plus3.在SQL提示符下輸入命令“connscott/tiger;”,按回車鍵系統提示“已

30、連接”后,再輸入命令“SELECT*FROMdept;”,再按回車,執行結果如圖1-30所示。圖1-30在字符界面的SQL*Plus中執行查詢命令4.在SQL提示符下輸入“exit”命令,按回車后退出SQL*Plus,回到Dos狀態。5.在Dos提示符下輸入“sqlplusw”后,按回車,或者在Windows的開始菜單中依次選擇“程序”“OracleOraDb10g_home1”“應用程序開發”“SQL*Plus”,都會彈出如圖1-31所示的圖形界面的SQL*Plus登錄界面。-20-專題一Oracle入門圖1-31圖形界面的SQL*Plus登錄6.輸入用戶名“SCOTT”和口令“TIGER”

31、,在主機字符串文本框中輸入本地服務名“MYSERVER”,點擊“確定”,可進入到圖形界面的SQL*Plus的SQL提示符狀態。7.在SQL提示符下輸入命令“SELECT*FROMdept;”按回車后,運行結果如圖1-32所示。圖1-32圖形界面的SQL*Plus中執行查詢理論知識:SQL*Plus是Oracle最常用的工具之一,可用于接受和執行SQL語句和PL/SQL塊。它有兩種界面:字符界面和圖形界面。使用SQL*Plus可以完成打開和關閉數據庫、建立與數據庫的連接、查看幫助信息、生成簡單報表,以格式化的形式輸出查詢結果、查詢數據字-21-Oracle數據庫案例教程_教師用書典、向用戶提示信

32、息并接受用戶輸入等數據庫操作。3.4.3iSQL*Plus工具1.在瀏覽器地址欄中輸入安裝過程中圖1-12所示的以“isqlplus”結尾的URL地址:“http:/houtony:5560/isqlplus”,進入到如圖1-33所示的iSQL*Plus的登錄頁面。圖1-33iSQL*Plus登錄2.輸入用戶名“SCOTT”和口令“TIGER”,在連接標識符文本框中輸入圖1-33中的本地服務名“MYSERVER”,點擊“登錄”,進入到如圖1-34所示的iSQL*Plus主頁面。-22-專題一Oracle入門圖1-34iSQL*Plus主頁面3.在文本框中輸入“SELECT*FROMdept;”

33、,點擊“執行”,會查詢出dept表的信息并顯示在頁面下部,如圖1-35所示。圖1-35iSQL*Plus查詢結果-23-Oracle數據庫案例教程_教師用書4.關閉瀏覽器。理論知識:iSQL*Plus也是Oracle的常用工具,可以用來完成幾乎所有SQL*Plus能完成的任務。該工具的優勢在于能通過瀏覽器訪問,還可以自動將查詢的結果格式化為簡單報表。3.5創建數據庫和表空間數據庫和表空間是Oracle體系結構的重要組件,創建步驟如下:理論知識:Oracle的體系結構數據庫的體系結構是指數據庫的組成、工作過程與原理,以及數據在數據庫中的組織和管理機制。Oracle服務器Oracle服務器由Ora

34、cle數據庫和Oracle實例組成。Oracle數據庫是一個數據的集合,它在物理上是由一系列的文件組成,在邏輯上是由一系列的邏輯組件構成的。Orac-le實例是后臺進程與內存結構的集合。Oracle組件概述Oracle體系結構中包含一系列組件,在圖1-36中列出了Oracle中的主要組件。下面分別介紹這些主要組件及Oracle中的一些重要概念。圖1-36Oracle體系結構的主要組件-24-專題一Oracle入門1.實例后臺進程與內存結構的集合稱為Oracle實例。如果要訪問數據庫中的數據,就必須啟動一個實例,也就是說,只有通過實例才能訪問到數據庫中的數據。實例啟動時將分配一個系統全局區(SG

35、A)并啟動一系列的后臺進程。在任何時候,一個實例只能打開并使用一個數據庫。反之,一個數據庫可以同時被多個實例打開。2.會話會話是用戶與Oracle服務器的單個連接。當用戶與服務器建立連接時創建會話。而當用戶與服務器斷開連接時關閉會話。當一個數據庫用戶同時用多個不同的應用程序或從多個終端連接服務器時,則為該用戶創建多個并行會話。3.內存Oracle的內存結構中包括以下兩個主要的內存區域:系統全局區(SGA):實例啟動時分配該內存區,是Oracle實例的一個基本組件。程序全局區(PGA):服務器進程啟動時分配該內存區。PGA(ProgramGlobeArea)是在用戶進程連接到數據庫并創建一個會話

36、時自動分配的,該區內保留每個與Oracle數據庫連接的用戶進程所需的內存。PGA為非共享區,只能由單個進程使用,當一個會話結束后,PGA釋放。SGA(SystemGlobeArea),又稱共享全局區,它用來存儲數據庫信息,并由多個數據庫進程共享。當數據庫實例啟動時,SGA的內存被自動分配。SGA是數據庫中占用服務器內存最大的一個區域,同時也是影響數據庫性能的一個重要指標。SGA按其作用不同,可分為共享池、數據緩沖區、日志緩沖區等。共享池:共享池是對SQL、PL/SQL程序進行語法分析、編譯和執行的內存區域,它由庫緩存和數據字典緩存組成,其中,庫緩存含有最近執行的SQL、PL/SQL語句的信息,

37、數據字典緩存中含有從數據字典中得到的表、索引、字段和權限等信息。如果共享池太小,則運行SQL、PL/SQL程序所需的時間就會較長,數據庫的性能就會受到影響。當用戶執行一個查詢語句時,Oracle系統首先在數據字典緩存中查看要查詢的表、字段等在數據庫中是否存在,用戶是否有相應權限,如果有再在庫緩存中查找是否存在該語句的信息,如果存在則直接執行,如果不存在再對該查詢語句進行編譯和執行。數據緩沖區:數據緩沖區用于存儲從磁盤數據文件中讀入的數據,由所有用戶共享。數據被修改時,首先要從數據文件中取出,存儲于數據緩沖區中,修改的數據、插入的數據都被存儲于數據緩沖區,當修改完成或滿足其它條件時,數據才被寫入

38、到數據文件中。Oracle服務器進程在處理一個查詢時,首先查找數據緩沖區中是否存在所需的數據塊。如果沒有找到,服務器進程才會去從數據文件中讀取信息,并保存到數據緩沖區中。當以后再有進程要讀取這些塊時,就不用再從數據文件中讀取,而是直接從數據緩沖區中讀了,這樣就提高了讀取速度。因此,數據緩沖區的大小對數據庫的讀取速度有直接影響。日志緩沖區:所有對數據庫的修改先記錄到日志緩沖區,當緩沖區中的數據達到一定數量時,再由日志寫入進程LGWR把日志數據寫入到日志文件中。數據更改可能來自INSERT、UPDATE、DELETE、CREATE、ALTER和DROP等操作。相對于數據緩沖區,日志緩沖區對數據庫性

39、能的影響較小。-25-Oracle數據庫案例教程_教師用書4.進程在Oracle的體系結構中主要有以下幾種進程:用戶進程:當數據庫用戶請求連接服務器時啟動。當數據庫用戶運行一個應用程序準備向數據庫服務器發送請求時,即創建了用戶進程,如用戶啟動SQL*Plus時,系統自動建立了一個用戶進程。用戶進程不能直接與數據庫交互,而必須借助于服務器進程。服務器進程:在Oracle實例啟動時啟動。它用于處理連接到該實例的用戶進程的請求,當用戶建立與數據庫的連接時,即產生服務器進程。服務器進程和用戶進程通信并為所連接的用戶請求服務。服務器進程直接與Oracle數據庫交互,實現調用和返回結果。服務器進程可以僅處

40、理一個用戶進程的請求,也可以處理多個用戶進程的請求。后臺進程:在Oracle數據庫中,為了使系統性能更好和協調多個用戶,實例系統中使用了一些附加進程,被稱為后臺進程。這些后臺進程存在于操作系統中,在實例啟動時自動啟動。Oracle常用的后臺進程有:進程監控(PMON):主要作用是在用戶進程出現故障時執行進程恢復。系統監控(SMON):主要完成以下任務:在實例啟動時執行實例恢復;整理數據文件的自由空間;釋放不再使用的臨時段。數據寫入進程(DBWR):執行下列任務:管理數據緩沖區,以便用戶進程能找到空閑的緩沖區;將所有修改了的緩沖區的數據寫入數據文件;使用LRU(最近最少使用)算法將最近使用過的塊

41、保留在內存中;通過延遲寫來優化磁盤I/O讀寫。日志寫入進程(LGWR):此后臺進程負責將日志緩沖區的數據寫入日志文件。數據庫正在運行時,如果對數據進行修改,則產生日志信息,日志信息首先產生于日志緩沖區中。此緩沖區按照“先進先出”的原則進行操作,當日志信息達到一定數量時,由LGWR進程將日志數據寫入到日志文件。檢查點(CKPT):保證所有修改過的數據庫緩沖區內的數據都被寫入到數據庫文件,在給定的時間內,檢查點完成后,CKPT進程更新數據文件頭和控制文件,保存檢查點信息,以保證數據庫的同步。這樣做主要是為了在數據庫恢復時只需要提供從上一個檢查點以來的修改,確定開始恢復數據的位置,即稱為檢查點。歸檔

42、進程(ARCH):當數據庫運行在歸檔日志方式時,才會啟動該進程。在日志寫滿時將日志信息寫到磁盤或磁帶,用于磁盤故障時的數據庫恢復。在一個日志文件寫滿以后,Oracle服務器就開始將數據寫入到下一個日志文件,此過程被稱為日志切換。Oracle數據庫有兩種運行方式,即歸檔日志方式和非歸檔日志方式。在非歸檔日志方式下,日志切換時直接覆蓋以前的文件,不產生歸檔日志。在歸檔日志方式下,在日志切換之前,ARCH進程會對已寫滿的日志文件進行存檔。Oracle數據庫的物理組件和邏輯組件Oracle數據庫的物理文件主要有三類:數據文件、控制文件和日志文件。其它還有歸檔日志文件、參數文件和口令文件等。數據文件:是

43、用于存儲數據庫數據的文件,如表、索引數據等都存儲在數據文件中。每個Oracle數據庫都有一個或多個數據文件(10g中默認有5個),一個數據文件只能與一個數據庫相關聯。-26-專題一Oracle入門控制文件:是記錄數據庫物理結構的二進制文件,Oracle數據庫根據它來查找物理文件的位置,它包含維護和驗證數據庫完整性的必要信息。每個Oracle數據庫都有一個或多個控制文件(10g中默認有3個)。日志文件:又被稱為聯機日志文件或重做日志文件,用于記錄對數據庫進行的修改信息,對數據庫所做的全部修改都被記錄到日志中。每個Oracle數據庫都有一個或多個日志文件(10g中默認有3個)。日志文件主要用于在數

44、據庫出現故障時實施數據恢復。2.邏輯組件從邏輯的角度來分析,Oracle數據庫的邏輯結構主要包括表空間、段、區、數據塊和模式等。它們的組成關系如圖1-37所示。圖1-37數據庫的邏輯結構表空間(TABLESPACE):數據庫可以劃分為一個或多個邏輯單位,該邏輯單位被稱為表空間,它是數所庫中最大的邏輯單位。每個表空間由一個或多個數據文件組成,一個數據文件只能與一個表空間關聯,這是邏輯上和物理上的統一。數據庫管理員可以創建若干個表空間,創建表空間時可以指定數據文件及其要分配的磁盤空間的大小。在每個數據庫中都有一個名為SYSTEM的表空間,即系統表空間,它在創建數據庫或安裝數據庫時自動創建的,用于存

45、儲系統的數據字典表、系統程序單元、過程、函數、包和觸發器等,也可以用于存儲用戶表、索引等對象。段(SEGENT):存在于表空間中,是包含于表空間中的一種指定類型的邏輯存儲結構,由一組區組成。按照段中所存數據的特征以及優化系統性能的需要,將段分為4類:數據段、索引段、回退段、臨時段。區(EXTENT):是磁盤空間分配的最小單位。磁盤按區劃分,每次至少分配一個區。區為段分配空間,它由連續的數據塊組成。當段創建時,它至少包含一個區。當段中所有空間已完全使用時,系統自動為該段分配一個新區。區不能跨數據文件存在,只能存在于一個數據文件中。數據塊(DATABLOCK):是數據庫中最小的數據組織單位與管理單

46、位,是Oracle服務器所能分配、讀取或寫入的最小存儲單元。Oracle服務器以數據塊為單位管理數據文件的存儲空間。數據塊的取值范圍在2KB4KB之間,10g中默認大小是8K。模式(SCHEMA):是對用戶所創建的數據庫對象的總稱,在Oracle中任何數據庫對象都屬于一個特定用戶,一個用戶及其所擁有的對象稱為模式。一個用戶與相同名稱的模式相關聯,因此,模式又稱為用戶模式。1.在Windows的開始菜單中依次選擇“程序”“OracleOraDb10g_home1”“配置和移植工具”“DatabaseConfigurationAssistant”,將彈出如圖1-38所示的窗口(直接在Dos中執行命

47、令“dbca”,也可進入到該窗口)。-27-Oracle數據庫案例教程_教師用書圖1-38選擇操作2.選擇“創建數據庫”,點擊“下一步”,出現如圖1-39所示的“數據庫模板”窗口。圖1-39數據庫模板3.選擇“一般用途”的數據庫模板,點擊“下一步”,出現如圖1-40所示的“數據庫標識”窗口。-28-專題一Oracle入門圖1-40數據庫標識4.輸入全局數據庫名如“MYDB”,在SID文本框中自動出現的名稱與全局數據庫名相同,也可以更改SID名稱使其不同,點擊“下一步”,出現如圖1-41所示的“管理選項”窗口。圖1-41管理選項5.選擇“使用EnterpriseManager配置數據庫”,點擊“

48、下一步”,出現如圖1-42所示的“數據庫身份證明”窗口。-29-Oracle數據庫案例教程_教師用書圖1-42數據庫身份證明6.選擇“所有帳戶使用同一口令”或“使用不同的口令”,輸入口令和確認口令后,點擊“下一步”,出現如圖1-43所示的“網絡配置”窗口。圖1-43網絡配置-30-專題一Oracle入門7.選擇“將此數據庫注冊到所有監聽程序”后點擊“完成”,出現如圖1-44所示的窗口,讓用戶確認要創建的數據庫的詳細資料。圖1-44操作確認8.點擊“確定”,出現如圖1-45所示的窗口,開始創建數據庫。圖1-45創建數據庫-31-Oracle數據庫案例教程_教師用書9.數據庫創建完成后,會彈出如圖

49、1-46所示的窗口,向用戶提示數據庫創建完成的信息,點擊“退出”,完成數據庫的創建。圖1-46數據庫創建完成10.打開SQL*Plus,在SQL提示符下,輸入“CONNSYS/SYSMYDBASSYSDBA”命令,以SYSDBA身份登錄到新創建的數據庫,再輸入以下的命令創建表空間:CREATETABLESPACEmytablespaceDATAFILED:ORACLEPRODUCT10.2.0ORADATAMYDBMYTABLESPACE.DBFSIZE10MAUTOEXTENDON;理論知識:創建表空間語法如下:CREATETABLESPACEtablespace_nameDATAFILEf

50、ile_nameSIZEint_numK|MAUTOEXTENDON|OFF;其中:tablespace_name是要創建的表空間的名稱,DATAFILE指定組成表空間的一個或多個數據文件(當有多個數據文件時使用逗號分隔),file_name是數據文件的路徑及名稱,SIZE指定文件的大小,AUTOEXTEND子句用來啟用或禁用數據文件的自動擴展。11.系統提示“表空間已創建”后,打開“我的電腦”,找到上面創建表空間的路徑,可以看到新創建的“mytablespace.dbf”文件,在該文件夾下還有其它一些文件,分別是以“DBF”、“CTL”、“LOG”為后綴,它們是數據庫的主要物理組件。3.6O

51、racle中的用戶管理Oracle中的用戶管理包括創建用戶、為用戶授權、修改用戶口令、刪除用戶等。理論知識:在Oracle數據庫中,系統通過安全措施防止非法用戶對數據庫進行操作。因此,要連-32-專題一Oracle入門接到Oracle,就需要一個用戶帳號。數據庫管理員負責管理允許訪問數據庫的用戶帳號,包括創建、授權、刪除等。在安裝數據庫時,Oracle將創建一些默認的數據庫用戶模式,如SYS、SYSTEM、SY-SMAN、DBSNMP和SCOTT等。下面先簡單介紹一下SYS、SYSTEM和SCOTT用戶。SYS用戶是Oracle中的一個超級用戶。數據庫中所有的數據字典和視圖都存儲在SY-S模式

52、中。數據字典存儲了用來管理數據庫對象的所有信息,是Oracle數據庫中非常重要的系統信息。SYS用戶主要用來維護系統信息和管理實例,SYS用戶只能以SYSOPER或S-YSDBA角色登陸。SYSTEM用戶是Oracle默認的系統管理員,它擁有DBA權限。該用戶擁有Oracle管理工具使用的內部表和視圖。通常通過SYSTEM用戶管理Oracle數據庫的用戶、權限和存儲等。不建議在SYSTEM用戶模式中創建用戶表。SYS和SYSTEM用戶都是Oracle系統用戶,它們使用SYSTEM表空間存儲模式對象。SCOTT用戶是Oracle數據庫的一個示范用戶。在數據庫安裝時創建(在10g中默認情況下,該用

53、戶是被鎖定的,可在安裝時解鎖)。SCOTT用戶模式下有四個示范表,其中有兩個是dept(部門表)和emp(員工表),在本書后面的許多示例中要用到。如果安裝時不更改其口令,其默認口令是TIGER。1.以SYSDBA身份登錄到SQL*Plus的SQL提示符狀態,輸入以下的命令創建用戶:CREATEUSERuser1IDENTIFIEDBYpwd1DEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMP;理論知識:在Oracle中可以用CREATEUSER命令來創建新用戶。每個用戶都有一個默認表空間和一個臨時表空間,在創建時可以為它們指定,如果不指定,Oracle就

54、把SYSTEM設為默認表空間,TEMP設為臨時表空間。創建新用戶的語法如下:CREATEUSERuser_nameIDENTIFIEDBYpasswordDEFAULTTABLESPACEtablespace_name1TEMPORARYTABLESPACEtablespace_name2;2.按回車后系統提示“用戶已創建”,表明創建用戶成功。該用戶的用戶名是“user1”,口令是“pwd1”,默認表空間是“USERS”,臨時表空間是“TEMP”。3.在SQL提示符下,輸入以下的命令,為用戶user1授予CONNECT權限。GRANTCONNECTTOuser1;理論知識:權限指的是用戶執行特

55、定類型的SQL命令或訪問其他對象的權利。如連接數據庫、創建表、執行過程等都是一些權限。若沒有任何權限,新創建的用戶將無法登錄到數據庫。-33-Oracle數據庫案例教程_教師用書Oracle用戶權限有兩種類型:系統權限和對象權限。系統權限是指允許用戶執行某些數據庫操作。如創建表空間就是一個系統權限。對象權限指允許對某一特定對象(如表、視圖等)執行特定操作。用戶必須是對象的所有者或者是已經擁有了GRANTOPTION對象權限才能為其他用戶授予對象權限。為用戶授權的語法為:GRANTpopedom_nameONobject_nameTOuser_name;其中:popedom_name為權限名或角

56、色名,object_name為對象名,user_name為用戶名。4.在SQL提示符下輸入“CONNSCOTT/TIGER”,以SCOTT用戶身份登錄后,繼續輸入下面的授權命令,為用戶user1授予查看表dept的權限,user1同時還擁有了把此查看權限授予其他用戶的權限。GRANTSELECTONempTOuser1WITHGRANTOPTION;5.再輸入“CONN/ASSYSDBA”命令以SYSDBA身份登錄后,在SQL提示符下輸入以下命令,修改用戶user1的口令。ALTERUSERuser1IDENTIFIEDBYpwd2;理論知識:Oracle中用ALTERUSER命令修改用戶口令

57、,語法如下:ALTERUSERuser_nameIDENTIFIEDBYnew_password;6.系統提示“用戶已更改”,表明口令修改成功。在SQL提示符下輸入下面的命令來刪除用戶user1。DROPUSERuser1CASCADE;理論知識:Oracle中的DROPUSER命令用于刪除用戶。當刪除一個用戶時,如果該用戶模式中包含模式對象時,必須使用CASCADE選項以刪除模式對象。刪除用戶的語法為:DROPUSERuser_nameCASCADE;7.系統提示“用戶已刪除”,表明用戶user1刪除成功。4.實驗按照相關實踐知識部分依次練習:-34-專題一Oracle入門1.配置Oracl

58、e客戶端服務名,參見3.2(20分鐘)。2.查看Oracle服務,參見3.3(10分鐘)。3.認識Oracle常用工具,參見3.4(20分鐘)。4.創建數據庫和表空間,參見3.5(20分鐘)。5.用戶的創建、修改口令和刪除以用及為用戶授權,參見3.6(20分鐘)。5.課后作業1.分別用SQL*Plus和iSQL*Plus查看SCOTT用戶模式下emp表的內容。2.新建一個數據庫TESTDB,并在該數據庫中新建一個表空間testspace。3.先新建一個用戶testuser,口令為“test”,然后賦予他CONNECT權限,再修改其口令為“testuser”,最后刪除該用戶。-35-Oracle

59、數據庫案例教程_教師用書專題二鎖和表分區1.教學目標1.1理解鎖定的概念1.2會使用鎖和時間戳機制來避免數據并發時造成的數據不一致1.3理解和使用表分區2.工作任務2.1用鎖和時間戳來保證并發操作時數據的一致性2.2使用表級鎖2.2使用表分區,創建分區表3.相關實踐知識3.1使用行級鎖和時間戳來保證數據完整性3.1.1兩個會話同時修改某一員工工資從開始菜單中打開SQL*Plus工具,以SCOTT用戶的身份登錄到數據庫;然后再重新從開始菜單打開SQL*Plus工具,仍以SCOTT用戶的身份登錄到數據庫。這樣就創建了兩個會話。雇員編號為7934的雇員,由于工作業績表現好,工資需要在現工資1300元

60、的基礎上加500元,作為新的工資。人事部門把通知下發到財務處,在財務處正好有兩個人員處理有關工資變動的工作。這兩個財務人員操作如下:1.在第一個會話中的SQL提示符下,輸入以下代碼:SELECTsalFROMEMPWHEREempno=7934;按回車鍵,系統顯示當前工資為1300元。2.在第二個會話的SQL提示符下,輸入以下代碼:SELECTsalFROMempWHEREempno=7934;按回車鍵,系統顯示當前工資為1300元。3.在第一個會話中,第一個財務人員執行修改工資操作,輸入代碼如下:-36-專題二鎖和表分區UPDATEempoSETsal=sal+500WHEREempno=7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論