Oracle數(shù)據(jù)庫基礎(chǔ)教程課后習(xí)題答案_第1頁
Oracle數(shù)據(jù)庫基礎(chǔ)教程課后習(xí)題答案_第2頁
Oracle數(shù)據(jù)庫基礎(chǔ)教程課后習(xí)題答案_第3頁
Oracle數(shù)據(jù)庫基礎(chǔ)教程課后習(xí)題答案_第4頁
Oracle數(shù)據(jù)庫基礎(chǔ)教程課后習(xí)題答案_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Oracle數(shù)據(jù)庫基礎(chǔ)教程

參考答案

第1章Oracle數(shù)據(jù)庫概述

1.簡答題

(1)

數(shù)據(jù)是描述事物的符號,是數(shù)據(jù)庫中存儲的基本對象。在計算機(jī)中,用記錄的形式來描

述數(shù)據(jù)。數(shù)據(jù)與數(shù)據(jù)的解釋即數(shù)據(jù)的語義是緊密結(jié)合的。數(shù)據(jù)庫是指按一定的數(shù)據(jù)模型組織、

描述和存儲的數(shù)據(jù)的集合。數(shù)據(jù)庫管理系統(tǒng)是位于操作系統(tǒng)與用戶之間的一層數(shù)據(jù)管理軟

件。數(shù)據(jù)庫系統(tǒng)是指數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與計算機(jī)系統(tǒng)的結(jié)合。通常,在不引起混淆的

情況卜將數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。

(2)

數(shù)據(jù)庫管理系統(tǒng)的主要功能包括:數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫運(yùn)行與控制、數(shù)據(jù)庫建

立與維護(hù)、數(shù)據(jù)字典定義以及數(shù)據(jù)通信等。數(shù)據(jù)庫管理系統(tǒng)的內(nèi)部分多個層次,由應(yīng)用層、

語言定義及其翻譯處理層、數(shù)據(jù)存取層、數(shù)據(jù)存儲層、操作系統(tǒng)以及數(shù)據(jù)庫組成。

(3)

數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、開發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理

員以及數(shù)據(jù)庫用戶組成。

(4)

概念模型是用簡單、清晰、用戶易于理解的概念來描述現(xiàn)實世界具體事物及事物之間的

關(guān)系。它是現(xiàn)實世界到信息世界的抽象,是數(shù)據(jù)庫設(shè)計人員進(jìn)行數(shù)據(jù)庫設(shè)計的工具,與具體

的數(shù)據(jù)庫管理系統(tǒng)無關(guān)。

組織數(shù)據(jù)模型是從數(shù)據(jù)組織方式的角度來描述信息,它決定了數(shù)據(jù)在數(shù)據(jù)庫中的組織結(jié)

構(gòu)。

(5)

E-R圖由3個要素組成:實體、聯(lián)系與屬性。實體之間的聯(lián)系有1:1、1:n、n:n三

種類型。

(6)

Oracle之所以得到廣大用戶的青睞,其主要原因在于:支持多用戶、大事務(wù)量的事務(wù)處

理、提供標(biāo)準(zhǔn)操作接口、實施安全性控制和完整性控制、支持分布式數(shù)據(jù)處理、具有可移值

性、可兼容性和可連接性。

(7)

目前市場上常見的關(guān)系數(shù)據(jù)庫管理系統(tǒng)包括Oracle、DB2、Sybase和SQLServer等。

Oracle是當(dāng)今最大的數(shù)據(jù)庫廠商Oracle公司的數(shù)據(jù)庫產(chǎn)品。它是世界上第一個商品化

的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),也是第一個推出與?數(shù)據(jù)庫結(jié)合的第四代語言開發(fā)工具的數(shù)據(jù)庫產(chǎn)

品。

DB2是IBM公司于1983年推出的一個商業(yè)化關(guān)系數(shù)據(jù)庫管理系統(tǒng),它是基于SystemR

基礎(chǔ)上實現(xiàn)的??梢赃\(yùn)行在各種不同的操作系統(tǒng)平臺上,如UNIX,VMS,Windows,OS/2

等。

Sybase可以運(yùn)行在不同的操作系統(tǒng)平臺上,如UNIX,VMS,Windows,Netware等。

作為網(wǎng)絡(luò)數(shù)據(jù)庫,Sybase采用開放的體系結(jié)構(gòu),支持網(wǎng)絡(luò)環(huán)境下各節(jié)點數(shù)據(jù)庫的互相訪問。

MicrosoftSQLServer是微軟公司推出的應(yīng)用于Windows操作系統(tǒng)上的關(guān)系數(shù)據(jù)庫產(chǎn)

品。MicrosoftSQLServer是Microsoft公司從Sybase公司購買技術(shù)而開發(fā)的產(chǎn)品,與Sybase

數(shù)據(jù)庫完全兼容,它支持客戶機(jī)/服務(wù)器結(jié)構(gòu)。

(8)

基于Oracle數(shù)據(jù)庫的應(yīng)用系統(tǒng)結(jié)構(gòu)主要分為客戶機(jī)/服務(wù)器結(jié)構(gòu)、瀏覽器/服務(wù)器結(jié)構(gòu)以

及分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)等。

(9)

關(guān)系的完整性約束包括三類:實體完整性、參照完整性和用戶定義完整性。

實體完整性:是指關(guān)系中必須定義主鍵,以惟一的確定一個元組。主鍵由一個或多個屬

性構(gòu)成,其取值惟一且不能為空(NULL)。

參照完整性:在關(guān)系模型中,通過外鍵來表示表之間的聯(lián)系。參照完整性是指一個表中

的外鍵的取值必須是參照表中主鍵存在的值或為空(NULL)。例如,學(xué)生信息表中“班號”

屬性為外鍵,其取值必須是班級信息表中“班號”屬性的某一個值或為空。

用戶定義完整性:是指用戶根據(jù)特定應(yīng)用情況,設(shè)定一些約束,反映某一具體應(yīng)用所涉

及的數(shù)據(jù)必須滿足的語義要求。例如,“性別”屬性的域為“男、女”。

(10)

Oracle9i作為Oracle公司一代軟件平臺的艦旗產(chǎn)品,被業(yè)界稱為Oracle有史以來“最重

大的軟件工程”,對以前版本的數(shù)據(jù)庫性能進(jìn)行改進(jìn)的同時,增加了很多新的功能:系統(tǒng)管

理、數(shù)據(jù)庫可靠性、數(shù)據(jù)庫可擴(kuò)展性、數(shù)據(jù)庫性能和數(shù)據(jù)庫安全性等。此外,Oracle》中還

引入了很多新的特性,如實現(xiàn)連續(xù)的數(shù)據(jù)可用性、自助錯誤更正、端到端的安全體系結(jié)構(gòu)、

可管理性等。

OraclelOg數(shù)據(jù)庫特性:OraclelOg是第一個為網(wǎng)格計算設(shè)計的關(guān)系數(shù)據(jù)庫,其中的g是

指網(wǎng)格(grid)。OraclelOg提供了企業(yè)網(wǎng)格計算所需要的集群、工作負(fù)載和數(shù)據(jù)中心自動化

等,提高了系統(tǒng)的管理性能和服務(wù)質(zhì)量。為了支持網(wǎng)格計算,OraclelOg在增強(qiáng)Oracle9i性

能的同時,又增加了一些新的特性,包括網(wǎng)格計算、數(shù)據(jù)庫自動化、數(shù)據(jù)庫自我調(diào)整、真正

集群技術(shù)、高可用性、超大型數(shù)據(jù)庫支持、分布式事務(wù)處理等。

2.實訓(xùn)題

(2)E-R圖如下:

T姓名性別〕髓X。)

關(guān)系模式如下:

教師(教師號,姓名,性別,出生日期,系,職稱,課程號)

課程(課程號,課程名,學(xué)分)

學(xué)生(箜號,姓名,性別,年齡,班級,系)

學(xué)習(xí)(學(xué)號,課程號,成績)

第2章數(shù)據(jù)庫服務(wù)器的安裝與卸載

1.簡答題

(1)

在安裝數(shù)據(jù)庫服務(wù)器之前需要進(jìn)行如下準(zhǔn)備:

①啟動操作系統(tǒng),并以Administrator身份登錄。

②檢查計算機(jī)名稱、檢查源文件完整路徑,如果包含中文字符則需要修改為不含中文字

符。

③檢查服務(wù)器系統(tǒng)是否滿足軟硬件要求。

④對服務(wù)器進(jìn)行正確網(wǎng)絡(luò)配置。

⑤如果服務(wù)器上運(yùn)行其它Oracle服務(wù),必須在安裝前將它們?nèi)客V埂?/p>

⑥如果服務(wù)器上運(yùn)行有以前版本的Oracle數(shù)據(jù)庫,則必須對其數(shù)據(jù)進(jìn)行備份。

⑦決定數(shù)據(jù)庫的創(chuàng)建方式。

(2)

企業(yè)版數(shù)據(jù)庫服務(wù)器包含所有的數(shù)據(jù)庫組件,主要針對高端的應(yīng)用環(huán)境,適用于安全性

和性能要求較高的聯(lián)機(jī)事務(wù)處理(OETP)、查詢密集型的數(shù)據(jù)倉庫和要求較高的Internet應(yīng)

用程序:標(biāo)準(zhǔn)版數(shù)據(jù)庫服務(wù)器提供大部分核心的數(shù)據(jù)庫功能和特性,適合于工作組或部門級

的應(yīng)用程序:個人版數(shù)據(jù)庫服務(wù)器只提供基本數(shù)據(jù)庫管理功能和特性,適合單用戶的開發(fā)環(huán)

境,為用戶提供開發(fā)測試平臺。

(3)

常用數(shù)據(jù)庫類型包括事務(wù)處理類、數(shù)據(jù)倉庫類以通用類型。其中事務(wù)處理類型主要針對

具有大量并發(fā)用戶連接,并且用戶主要執(zhí)行簡單事務(wù)處理的應(yīng)用環(huán)境。事務(wù)處理數(shù)據(jù)庫的典

型應(yīng)用有銀行系統(tǒng)數(shù)據(jù)庫、Internet電子商務(wù)數(shù)據(jù)庫、證券交易系統(tǒng)數(shù)據(jù)庫等。對于需要較

高的可用性和事務(wù)處理性能、存在大量用戶并行訪問相同數(shù)據(jù)以及需要較高恢復(fù)性能的數(shù)據(jù)

庫環(huán)境,事務(wù)處理類型的配置可以提供最佳性能;數(shù)據(jù)倉庫類型的數(shù)據(jù)庫主要針對有大量的

對某個主題進(jìn)行復(fù)雜查詢的應(yīng)用環(huán)境。數(shù)據(jù)倉庫的典型應(yīng)用有客戶訂單研究、支持呼叫、銷

售預(yù)測、采購模式以及其他戰(zhàn)略性業(yè)務(wù)問題的歷史數(shù)據(jù)研究。對于需要對大量數(shù)據(jù)進(jìn)行快速

訪問,以及復(fù)雜查詢的數(shù)據(jù)庫環(huán)境,數(shù)據(jù)倉庫類型配置是最佳選擇;通用類型配置的數(shù)據(jù)庫

是事務(wù)處理數(shù)據(jù)庫與數(shù)據(jù)倉庫配置的折衷方案。既可以支持大量并發(fā)用戶的事務(wù)處理,又可

以快速對大量歷史數(shù)據(jù)進(jìn)行復(fù)雜的數(shù)據(jù)掃描和處理。

(4)略

(5)

以SYSDBA身份登錄的用戶具有創(chuàng)建數(shù)據(jù)庫啟動或關(guān)閉數(shù)據(jù)庫與實例、使用ALTER

DATABASE執(zhí)行打開、備份數(shù)據(jù)庫等變更操作、對數(shù)據(jù)庫進(jìn)行歸檔或恢復(fù)、受限狀態(tài)下連

接數(shù)據(jù)庫以及創(chuàng)建服務(wù)器端初始化參數(shù)文件等權(quán)限。以SYSOPER身份登錄的用戶具有啟動

或關(guān)閉數(shù)據(jù)庫與實例、使用ALTERDATABASE執(zhí)行打開、備份數(shù)據(jù)庫等變更操作、對數(shù)

據(jù)庫進(jìn)行歸檔或恢復(fù)、受限狀態(tài)下連接數(shù)據(jù)庫以及創(chuàng)建服務(wù)器端初始化參數(shù)文件等權(quán)限。

(6)

在本地數(shù)據(jù)庫服務(wù)器系統(tǒng)中,以SYSDBA身份登錄數(shù)據(jù)庫服務(wù)器然后重新設(shè)定SYS或

SYSTEM用戶的口令。

(7)

卸載數(shù)據(jù)庫服務(wù)器軟件的步驟為:

①停止所有Oracle相關(guān)的服務(wù)

②卸載Oracle9數(shù)據(jù)庫服務(wù)器組件

③刪除注冊表中Oracle目錄、服務(wù)以及事件日志

④刪除Oracle環(huán)境變量

⑤刪除TEMP目錄下Oracle相關(guān)的文件夾

⑥檢查“開始”菜單中是否還有Oracle菜單,如果有,則將其刪除

⑦刪除Windows系統(tǒng)安裝磁盤中的ProgramFiles\Oracle目錄

⑧刪除Oracle安裝目錄

(8)參考(2)題。

(9)

OFA是Oracle組織文件以及文件命名的一套規(guī)則。例如<ORA_HOME>對應(yīng)存放安裝軟

件的目錄,在Oracle相關(guān)服務(wù)中都包含主目錄名稱等。

(10)略

2.實訓(xùn)題

⑴略

(2)略

(3)

打開網(wǎng)絡(luò)管理對話框,分別選中左側(cè)樹狀結(jié)構(gòu)中的監(jiān)聽器和數(shù)據(jù)庫,修改右側(cè)對話框中

的主機(jī)名為當(dāng)前的計算機(jī)名。

(4)略

第3章創(chuàng)建數(shù)據(jù)庫

1.簡答題

(1)

創(chuàng)建數(shù)據(jù)庫方法有兩種:使用數(shù)據(jù)庫配置助手(DBCA)創(chuàng)建數(shù)據(jù)庫或運(yùn)行腳本手工創(chuàng)

建數(shù)據(jù)庫。DBCA(DatabaseConfigurationAssistant)是Oracle提供的用于創(chuàng)建數(shù)據(jù)庫的圖

形界面工具,內(nèi)置數(shù)據(jù)庫模板,可以直觀快速地創(chuàng)建數(shù)據(jù)庫??稍贠racle9i數(shù)據(jù)庫服務(wù)安裝

時自動啟動,或在需要創(chuàng)建數(shù)據(jù)庫時單獨啟動。該創(chuàng)建方式比較適合于初學(xué)者。手動創(chuàng)建數(shù)

據(jù)庫方式比DBCA方式具有更大的靈活性和效率,但需要用戶對Oracle9i數(shù)據(jù)庫的創(chuàng)建語

法和參數(shù)有深入了解,適合有經(jīng)驗的DBA。

(2)

創(chuàng)建數(shù)據(jù)庫的模板包括“數(shù)據(jù)倉庫”、“通用”、“事務(wù)處理”、“自定義”四種,其中“數(shù)

據(jù)倉庫”用于創(chuàng)建數(shù)據(jù)量大、數(shù)據(jù)變化小,用戶少,用戶數(shù)據(jù)分析和決策支持?!笆聞?wù)處理”

類型數(shù)據(jù)庫主要用戶聯(lián)機(jī)處理,用戶多,數(shù)據(jù)不斷變化?!巴ㄓ谩鳖愋蛿?shù)據(jù)庫是集前兩者的

優(yōu)點,具有通用性;“自定義”是用戶自己選擇安裝組件和參數(shù)設(shè)置。

(3)

創(chuàng)建數(shù)據(jù)庫之前應(yīng)該做好規(guī)劃、檢查系統(tǒng)資源情況以及決定數(shù)據(jù)庫的創(chuàng)建方式。

(4)

手動創(chuàng)建數(shù)據(jù)庫通常包含如下的操作步驟:

①確定新建數(shù)據(jù)庫名稱與實例名稱;

②確數(shù)據(jù)庫管理員的認(rèn)證方式;

③創(chuàng)建初始化參數(shù)文件;

④創(chuàng)建實例;

⑤連接并啟動實例;

⑥使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫;

⑦創(chuàng)建附加的表空間;

⑧運(yùn)行腳本創(chuàng)建數(shù)據(jù)字典視圖

(5)

CREATEDATABASE語句中參數(shù)含義為:

參數(shù)名稱說明

MAXINSTANCES指定同一時刻數(shù)據(jù)庫允許被多少個實例裝載和打開

MAXLOGHISTORY可以自動歸檔的最大日志文件的數(shù)量

MAXLOGFILES最大日志文件組數(shù)量

MAXLOGMEMBERS每個日志文件組中最大成員日志文件數(shù)量

MAXDATAFILES數(shù)據(jù)庫中所允許創(chuàng)建的最多數(shù)據(jù)文件數(shù)量

ARCHIVELOG新建數(shù)據(jù)庫處于歸檔模式

NOARCHIVELOG新建數(shù)據(jù)庫處于非歸檔模式

CONTROLFILEREUSE按初始化參數(shù)文件中CONTROL_FILES的值創(chuàng)建控制文件:

如果同名文件存在則覆蓋

LOGFILE指定重做H志文件組及組成員日志文件名稱

DATAFILE為SYSTEM表空間創(chuàng)建的一個或多個數(shù)據(jù)文件的名稱和位置

UNDOTABLESPACE創(chuàng)建撤銷表空間,并為撤銷表空間指定文件名稱和為值

DEFAULTTEMPORARY創(chuàng)建臨時表空間

TABLESPACE

CHARACTERSET指定使用的數(shù)據(jù)庫字符集

NATIONALCHARACTER指定國家字符集

SET

AUTOEXTEND指定數(shù)據(jù)文件的自動擴(kuò)展

(6)

文本初始化參數(shù)文件是一個本地的初始化參數(shù)文件,而服務(wù)器初始化參數(shù)文件是一個放

在數(shù)據(jù)庫服務(wù)器端的共享的二進(jìn)制初始化參數(shù)文件。文本參數(shù)文件的修改是通過直接對文本

的修改實現(xiàn)的,通過命令行是無法將修改后的參數(shù)值寫入該文件中,而服務(wù)器初始化參數(shù)文

件是不能直接修改的,必須通過ALTERSYSTEM語句來進(jìn)行參數(shù)修改的。

(7)

使用ALTERSYSTEM修改參數(shù)時應(yīng)注意SCOPE的取值。

SCOPE子句說明

SCOPE=SPFILE對參數(shù)的修改僅記錄在服務(wù)器初始化參數(shù)文件中,對動態(tài)參數(shù)和靜態(tài)參數(shù)都適用,

修改后的參數(shù)在下一次數(shù)據(jù)庫啟動時生效。

SCOPE=MEMORY對參數(shù)的修改僅記錄在內(nèi)存中,只適合動態(tài)參數(shù)的修改,修改后立即生效。由于修

改結(jié)果并不會保存到服務(wù)器初始化參數(shù)文件中,因此下一次啟動數(shù)據(jù)蚱實例時仍然采

用修改前的參數(shù)設(shè)置

SCOPE=BOTH對參數(shù)的修改同時保存到服務(wù)器初始化參數(shù)文件和內(nèi)存中,只適合對動態(tài)參數(shù)的修

改,更改后立即生效,并日.下一次啟動數(shù)據(jù)庫實例時將使用修改后的參數(shù)設(shè)置。當(dāng)執(zhí)

行ALTERSYSTEM語句時,如果沒有指定SCOPE子句,那么Oracle默認(rèn)地招SCOPE

設(shè)置為BOTH

(8)

以通過以下方法查看初始化參數(shù)的設(shè)置情況。

?SHOWPARAMETERS命令

②查詢數(shù)據(jù)字典V$PARAMETER或V$PARAMETER2或VSSPPARAMETER

③將服務(wù)器初始參數(shù)文件轉(zhuǎn)換為文本出示參數(shù)文件。

2.實訓(xùn)題

(1)CREATESPFILEFROMPFILE=path

(2)CREATEPFILEFROMSPFILE

(3)略

(4)略

(5)SELECTNAME,VALUEFROMV$PARAMETER

(6)AETETSESSIONSETNLSDATEFORMAT=,YYYY-MM-DDHH24:MI:SS,

3.選擇題

(1)c

(2)C

(3)A

(4)B

(5)A

(6)A

(7)C

(8)A

(9)B

(10)D

第4章Oracle企業(yè)管理器

1.簡答題

(1)

第一層由客戶端控制臺(Console)和集成工具組成,為數(shù)據(jù)庫管理員提供一個可視化

的圖形管理界面。管理員利用該圖形界面可以進(jìn)行數(shù)據(jù)庫的管理操作,包括任務(wù)定制、對象

管理等。管理操作命令傳送到第二層的Oracle管理服務(wù)器進(jìn)行處理。第二層由一個或多個

OMS組成,是OEM體系結(jié)構(gòu)的核心。它提供了一個集中化的智能管理環(huán)境,在控制臺和目標(biāo)

節(jié)點之間傳遞信息,將從控制臺接收的信息處理后發(fā)送到目標(biāo)節(jié)點,同時將目標(biāo)節(jié)點的執(zhí)行

結(jié)果返回給控制臺。第三層由安裝了智能代理(OracleIntelligentAgent)程序的目標(biāo)節(jié)

點組成,執(zhí)行由OMS發(fā)送過來的任務(wù)。

(2)

首先啟動相應(yīng)的Oracle服務(wù),然后啟動OEM,登錄到相應(yīng)數(shù)據(jù)庫后進(jìn)行數(shù)據(jù)庫的管理。

如果進(jìn)行復(fù)雜的管理操作,需要首先配置OMS,然后登錄到OMS方式進(jìn)行數(shù)據(jù)庫的管理操作。

(3)

獨立啟動OEM可以進(jìn)行數(shù)據(jù)庫的簡單管理操作,而要管理除數(shù)據(jù)庫外的其他類型的目

標(biāo)、在多個OMS管理員之間共享管理數(shù)據(jù)、從Web瀏覽器中運(yùn)行控制臺、自動提示系統(tǒng)存在

的潛在問題、自動重復(fù)管理任務(wù)等需要采用登錄到OMS方式進(jìn)行。

(4)

通常以獨立方式運(yùn)行控制臺時不需要連接到OMS,因此也沒有必要創(chuàng)建OMS所需要的資

料檔案庫。但是,如果要在獨立方式啟動的OEM控制臺中運(yùn)行一些特殊的OEM集成工具,包

括ChangeManager、OracleExpertOracleSQLAnalyze、OracleIndexTuningWizard

和OracleTablespaceManager,則需要為控制臺創(chuàng)建一個獨立的資料檔案庫,以存儲這些

工具在運(yùn)行時所需要的管理數(shù)據(jù)。

獨立資料檔案庫與OMS所使用的濱料檔案庫是不一樣的,明顯不同之處是獨立資料檔

案庫只能由一個用戶使用,而OMS所使用的資料檔案庫可以同時被多個用戶共享。

(5)

使用多個OMS可以均衡載荷、實現(xiàn)信息共享。使用時需要注意每個OMS必須使用一

個資料檔案庫,但一個資料檔案庫可以被多個OMS使用o

(6)

在OEM中沒有出現(xiàn)目標(biāo)節(jié)點,其原因可能是該節(jié)點上的沒有運(yùn)行智能代理服務(wù),或是

該節(jié)點已關(guān)閉,也可能是網(wǎng)絡(luò)故障導(dǎo)致連接失敗;

2.實訓(xùn)題

⑴略

(2)略

(3)略

(4)略

(5)略

第5章SQL*PLUS

1.簡答題

(1)

在SQL*PLUS中可以執(zhí)行的數(shù)據(jù)庫管理管理包括:輸入、編輯、存儲、提取、運(yùn)行和

調(diào)試SQL語句和PUSQL程序;處理數(shù)據(jù)、生成報表、存儲、打印、格式化查詢結(jié)果;列

出任何表的列的定義;在數(shù)據(jù)庫之間存取和拷貝數(shù)據(jù);從一個用戶端發(fā)送和接受消息等。

(2)

保存文件的方法為:SAVEfilename

讀取文件的方法為:GETfilename

(3)

CONNLECT]:連接數(shù)據(jù)庫

DISCONNECT]:斷開連接

SAVE:保存文件

GET:讀入文件

START:執(zhí)行文件

SHOW:顯示環(huán)境變量值

SET:設(shè)置環(huán)境變量值

DESCRIBE:查看對象結(jié)構(gòu)

CLEAR:清空緩沖區(qū)

COLUMN:設(shè)置格式輸出

(4)

常用的格式控制命令包括:

COLUMN

TTITLE

BTITLE

REPHEADER

REPFOOTER

(5)

可以在SQL*PLUS環(huán)境中定義綁定變量或定義替換變量,用戶與程序的交互。

2.實訓(xùn)題

(1)CONNECTSYSTEM/MANAGER@ORCL

(2)CONNECT/?ORCLASSYSDBA

(3)略

(4)

COLUMNSALFORMATL99999.99

SELECTEMPNO,SALFROMSCOTT.EMP;

(5)

TTITLECENTER'員工信息:'

BTITLERIGHT,制作人:,

SELECT*FROMSCOTT.EMP;

第6章物理存儲結(jié)構(gòu)

1.簡答題

(1)

Oracle數(shù)據(jù)庫體系結(jié)構(gòu)由物理存儲結(jié)構(gòu)、邏輯存儲結(jié)構(gòu)和實例組成。其中物理存儲結(jié)構(gòu)

描述了操作系統(tǒng)層次數(shù)據(jù)的存儲與管理,包括數(shù)據(jù)文件、日志文件、重做日志文件等組成。

邏輯結(jié)構(gòu)描述了數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的組織與管理,由表空間、段、區(qū)、塊組成。實例是數(shù)據(jù)庫

運(yùn)行的軟件結(jié)構(gòu),由內(nèi)存結(jié)構(gòu)和后臺進(jìn)程組成。數(shù)據(jù)庫運(yùn)行過程中,用戶的操作在內(nèi)存區(qū)中

進(jìn)行,最終通過后臺進(jìn)行轉(zhuǎn)化為對數(shù)據(jù)庫的操作。

(2)

Oracle數(shù)據(jù)庫物理結(jié)構(gòu)包括數(shù)據(jù)文件、控制文件、重做日志文件、初始化參數(shù)文件、歸

檔文件、口令文件等。在控制文件中記錄了當(dāng)前數(shù)據(jù)庫所有的數(shù)據(jù)文件的名稱與位置、重做

日志文件的名稱與位置,以及數(shù)據(jù)文件、重做日志文件的狀態(tài)等。

數(shù)據(jù)文件中保存了數(shù)據(jù)庫中的所有數(shù)據(jù),包括數(shù)據(jù)字典以及用戶數(shù)據(jù)。

(4)

控制文件保存數(shù)據(jù)庫的物理結(jié)構(gòu)信息,包括數(shù)據(jù)庫名稱、數(shù)據(jù)文件的名稱與狀態(tài)、重做

日志文件的名稱與狀態(tài)等。在數(shù)據(jù)庫啟動時,數(shù)據(jù)庫實例依賴初始化參數(shù)定位控制文件,然

后根據(jù)控制文件的信息加載數(shù)據(jù)文件和重做日志文件,最后打開數(shù)據(jù)文件和重做日志文件。

(5)

重做日志文件是以重做記錄的形式記錄、保存用戶對數(shù)據(jù)庫所進(jìn)行的修改操作,包括用

戶執(zhí)行DDL、DML語句的操作。如果用戶只對數(shù)據(jù)庫進(jìn)行查詢操作,那么查詢信息是不會記

錄到重做日志文件中的。

(6)

歸檔是數(shù)據(jù)庫恢復(fù)及熱備份的基礎(chǔ)。只用當(dāng)數(shù)據(jù)庫歸檔模式時,才可以進(jìn)行熱備份和完

全恢復(fù)。進(jìn)行歸檔設(shè)置包括歸檔模式設(shè)置(ARCHIVELOG)、歸檔方式設(shè)置以及歸檔路徑的

設(shè)置等。

(7)

每個數(shù)據(jù)庫至少需要兩個重做日志文件,采用循環(huán)寫的方式進(jìn)行工作。當(dāng)一個重做日志

文件在進(jìn)行歸檔時,還有另一個重做日志文件可用。當(dāng)一個重做日志文件被寫滿后,后臺進(jìn)

程LGWR開始寫入下一個重做日志文件,即日志切換,同時產(chǎn)生一個“日志序列號”,并將這

個號碼分配給即將開始使用的重做日志文件。當(dāng)所有的日志文件都寫滿后,LGWR進(jìn)程再重

新寫入第一個日志文件。

(8)

數(shù)據(jù)庫的物理結(jié)構(gòu)盡量分散到不同磁盤空間,既有利于數(shù)據(jù)庫的安全性,也有利于提供

系統(tǒng)的性能,如并發(fā)行等。

(9)

采用多路復(fù)用控制文件可以避免由于一個控制文件的損壞而導(dǎo)致數(shù)據(jù)庫無法正常啟動。

在數(shù)據(jù)庫啟動時根據(jù)一個控制文件打開數(shù)據(jù)庫,在數(shù)據(jù)庫運(yùn)行時多路復(fù)用控制文件采用鏡像

的方式進(jìn)行寫操作,保持所有控制文件的同步。

(10)

可以通過V$DATAFILE、V$CONTROLFILE>V$LOGFILE、V$LOG等數(shù)據(jù)字典可以

查詢相應(yīng)的物理結(jié)構(gòu)信息。

2.實訓(xùn)題

(1)

ALTERTABLESPACEUSER

ADDDATAFILE'D:\ORACLE\ORADATA\ORCL\userdata03.dbf'SIZE50M';

(2)

ALTERTABLESPACEEXAMPLE

ADDDATAFILE'D:\ORACLE\ORADATA\ORCL\example02.dbf'SIZE20M';

(3)

ALTERDATABASEDATAFILE'D:\ORACLE\ORADATA\ORCL\userdata03.dbf'

AUTOEXTENDONNEXT5MMAXSIZE100M;

(4)

ALTERDATABASEDATAFILE'D:\ORACLE\ORADATA\ORCL\example02.dbf'

RESIZE40M;

(5)

SHUTDOWNIMMEDIATE;

在操作系統(tǒng)中重命名userdataO3.dbf>exampleO3.dbf分別為userdata04.db^example04.dbf

STARTUPMOUNT;

ALTERDATABASERENAMEFILE'D:\ORACLE\ORADATA\ORCL\userdata03.dbf',

'D:\ORACLE\ORADATA\ORCL\example03.dbf'TO

'D:\ORACLE\ORADATA\ORCL\userdata04.dbf',

'D:\ORACLE\ORADATA\ORCL\example04.dbf';

ALTERDATABASEOPEN;

(6)

ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\CONTROL.BKP';

(7)

ALTERDATABASEADDLOGFILEGROUP4

('D:\ORACLE\ORADATA\ORCL\redo04a.log','D:\ORACLE\ORADATA\ORCL\redo04b.l

og^SIZE5M;

(8)

ALTERDATABASEADDLOGFILEMEMBER

'D:\ORACLE\ORADATA\ORCL\redo04c.log'TOGROUP4;

(9)

SHUTDOWNIMMEDIATE

STARTUPMOUNT

ALTERDATABASEARCHIVELOG;

ALTERDATABASEOPEN;

ALTERSYSTEMARCHIVELOGSTART

(10)

ALTERSYSTEMSETLOG_ARCHIVE_DEST=,D:\ORACLE\BACKUP,

3.選擇題

(1)B、C

(2)A

(3)A

(4)B

(5)B

(6)C

(7)B

(8)B

(9)D

(10)A

第7章邏輯存儲結(jié)構(gòu)

1.簡答題

(1)說明數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)的組成和相互關(guān)系。

Oracle9i數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)分為數(shù)據(jù)塊、區(qū)、段和表空間四種。其中,數(shù)據(jù)塊是數(shù)

據(jù)庫中的最小I/O單元,由若干個連續(xù)的數(shù)據(jù)塊組成的區(qū)是數(shù)據(jù)庫中最小的存儲分配單元,

由若干個區(qū)形成的段是相同類型數(shù)據(jù)的存儲分配區(qū)域,由若干個段形成的表空間是最大的邏

輯存儲單元,所有的表空間構(gòu)成一個數(shù)據(jù)庫。

(2)說明數(shù)據(jù)庫表空間的種類,以及不同類型表空間的作用。

數(shù)據(jù)庫表空間分為系統(tǒng)表空間和非系統(tǒng)表空間兩類,其中非系統(tǒng)表空間包括撤銷表空

間、臨時表空間和用戶表空間等。

SYSTEM表空間主要用于存儲數(shù)據(jù)庫的數(shù)據(jù)字典、PL7SQL程序的源代碼和解釋代碼、

數(shù)據(jù)庫對象的定義。撤銷表空間專門進(jìn)行回退信息的自動管理。臨時表空間是專門進(jìn)行臨時

段管理的表空間。用戶表空間用于分離不同應(yīng)用的數(shù)據(jù),而且能夠減少讀取數(shù)據(jù)文件時產(chǎn)生

的I/O沖突。

(3)說明數(shù)據(jù)庫、表空間、數(shù)據(jù)文件以及數(shù)據(jù)庫對象之間的關(guān)系。

一個數(shù)據(jù)庫由一個或多個表空間構(gòu)成,不同的表空間用于存放不同應(yīng)用的數(shù)據(jù),表空間

的大小決定了數(shù)據(jù)庫的大小。一個表空間對應(yīng)一個或多個數(shù)據(jù)文件,數(shù)據(jù)文件的大小決定了

表空間的大小。一個數(shù)據(jù)文件只能從屬于一個表空間。一個數(shù)據(jù)庫對象只能存儲在一個表空

間中,但可以存儲在該表空間所對應(yīng)的一個或多個數(shù)據(jù)文件中。

(4)數(shù)據(jù)庫表空間的管理方式有幾種,各有什么特點?

數(shù)據(jù)庫表空間的管理方式有兩種:字典管理方式和本地管理方式。在字典管理方式下,

表空間使用數(shù)據(jù)字典來管理存儲空間的分配,當(dāng)進(jìn)行區(qū)的分配與回收時,Oracle將對數(shù)據(jù)字

典中的相關(guān)基礎(chǔ)表進(jìn)行更新,同時會產(chǎn)生回退信息和重做信息。在本地管理方式中,區(qū)的分

配和管理信息都存儲在表空間的數(shù)據(jù)文件中,而與數(shù)據(jù)字典無關(guān)。

(5)表空間管理時應(yīng)考慮哪些問題?

表空間管理時,應(yīng)該遵循以下原則:

?將數(shù)據(jù)字典與用戶數(shù)據(jù)分離:

?將回退數(shù)據(jù)與用戶數(shù)據(jù)分離;

?將表空間的數(shù)據(jù)文件分散保存到不同的硬盤匕

?為不同的應(yīng)用創(chuàng)建獨立的表空間。

(6)利用手動管理方式,如何有效管理數(shù)據(jù)塊的使用?

DBA可以利用手動管理方式,通過為段設(shè)置PCTFREE和PCTUSED兩個參數(shù)來控制

數(shù)據(jù)塊中空閑空間的使用。

(7)數(shù)據(jù)庫中常用的段有哪兒種,分別起什么作用?

根據(jù)存儲對象類型不同,可以分為數(shù)據(jù)段、索引段、臨時段和回退段四類。數(shù)據(jù)段用來

存儲表或簇的數(shù)據(jù)。索引段用來存放索引信息,包括ROWID和索引鍵值。臨時段用來保存

SQL語句在解釋和執(zhí)行過程中所產(chǎn)生的臨時數(shù)據(jù)?;赝硕斡糜诒4鏀?shù)據(jù)修改之前的信息,

包括數(shù)據(jù)修改前的值及其位置,即記錄數(shù)據(jù)庫中所有事務(wù)修改之前信息的段。

(8)說明回退段的作用,以及回退段的管理方式。

利用回退段中保存的信息,可以實現(xiàn)事務(wù)回滾、數(shù)據(jù)庫恢復(fù)和數(shù)據(jù)的讀一致性?;赝硕?/p>

的管理有兩種方式,即自動撤銷管理和手動撤銷管理。

(9)說明數(shù)據(jù)庫存儲空間中碎片產(chǎn)生的原因以及如何回收碎片。

略。

(10)說明在創(chuàng)建數(shù)據(jù)庫時如何合理規(guī)劃數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和邏輯存儲結(jié)構(gòu)。

略。

2.實訓(xùn)題

(1)使用SQL命令創(chuàng)建一個本地管理方式下的自動分區(qū)管理的表空間USERTBS1,其對應(yīng)

的數(shù)據(jù)文件大小為20MBo

createtablespaceUSERTBS1

datafile'd:\oracle\oradata\orcl\usertbs1.dbfsize50M

extentmanagementlocalautoallocate;

(2)使用SQL命令創(chuàng)建一個本地管理方式下的表空間USERTBS2,要求每個分區(qū)大小為

512KBo

createtablespaceUSERTBS2

datafile,d:\oracle\oradata\orcl\usertbs2.dbfsize50M

extentmanagementlocaluniformsize512K;

(3)修改USERTBS1表空間的大小,將該表空間的數(shù)據(jù)文件修改為自動擴(kuò)展方式,最大值

為100MB。

alterdatabase

datafile'd:\oracle\oradata\orcl\usertbsl.dbf

autoextendonnext5Mmaxsize100M;

(4)為USERTBS2表空間添加一個數(shù)據(jù)文件,以改變該表空間的大小。

altertablespaceUSERTBS2

adddatafile'd:\oracle\oradata\orcl\usertbs2a.dbfsize50M;

(5)使用SQL命令創(chuàng)建一個本地管理方式下的臨時表空間TEMPTBS,并將該表空間作為

當(dāng)前數(shù)據(jù)庫實例的默認(rèn)臨時表空間。

createtemporarytablespaceTEMPTBS

tempfile'd:\oracle\oradata\orcl\temptbs.dbfsize20M

extentmanagementlocaluniformsize16K;

(6)使用SQL命令對USERTBS1表空間進(jìn)行聯(lián)機(jī)和脫機(jī)狀態(tài)轉(zhuǎn)換。

altertablespaceUSERTBS1offline;

altertablespaceUSERTBS1online;

(7)創(chuàng)建一個回退表空間UNDOTBS,并作為數(shù)據(jù)庫的撤銷表空間。

createundotablespaceUNDOTBS

datafile'd:\oracle\oradata\orcl\undotbs.dbfsize20M;

altersystemsetUNDO_MANAGEMENT=AUTO,UNDO_TABLESPACE=UNDOTBS

scope=both;

(8)刪除表空間USERTBS2,同時刪除該表空間的內(nèi)容以及對應(yīng)的操作系統(tǒng)文件。

droptablespaceUSERTBS2includingcontentsanddatafiles;

(9)為USERTBS1表空間創(chuàng)建一個回退段,其中回退段的最優(yōu)大小設(shè)置為2MB。

createrollbacksegmentundoseg

tablespaceUSERTBS1

storage(initial100Knext100Koptimal2MB

minextents20maxextent100);

(10)查詢當(dāng)前數(shù)據(jù)庫中所有的表空間及其對應(yīng)的數(shù)據(jù)文件信息。

selecttablespace_name,file_namefromdba_data_files;

3.選擇題

(1)C

(2)C

(3)B

(4)A

(5)C

(6)A

(7)B

(8)A

(9)B

(10)D

(11)D

(12)A

第8章數(shù)據(jù)庫實例與操作模式

1.簡答題

(D

數(shù)據(jù)庫實例是數(shù)據(jù)庫系統(tǒng)的軟件結(jié)構(gòu),由內(nèi)存結(jié)構(gòu)與后臺進(jìn)程組成,處于用戶與物理數(shù)

據(jù)庫之間,實現(xiàn)對數(shù)據(jù)庫的操作。

(2)

SGA區(qū)由數(shù)據(jù)緩沖區(qū)、共享池、重做日志緩沖區(qū)、大型池、JAVA池構(gòu)成;PGA區(qū)由排

序區(qū)、私有SQL區(qū)以及堆棧構(gòu)成。SGA區(qū)是由Oracle分配的共享內(nèi)存結(jié)構(gòu),包含一個數(shù)據(jù)

庫實例共享的數(shù)據(jù)和控制信息。當(dāng)多個用戶同時連接同一個實例時,SGA區(qū)數(shù)據(jù)供多個用戶

共享,所以SGA區(qū)又稱為共享全局區(qū)。用戶對數(shù)據(jù)庫的各種操作主要在SGA區(qū)中進(jìn)行。該內(nèi)

存區(qū)隨數(shù)據(jù)庫實例的創(chuàng)建而分配,隨實例的終止而釋放。PGA區(qū)是在用戶進(jìn)程連接數(shù)據(jù)庫,

創(chuàng)建一個會話時,由Oracle為用戶分配的內(nèi)存區(qū)域,保存當(dāng)前用戶私有的數(shù)據(jù)和控制信息,

因此該區(qū)又稱為私有全局區(qū)。每個服務(wù)器進(jìn)程只能訪問自己的PGA區(qū),所有服務(wù)器進(jìn)程PGA

區(qū)總和即為實例的PGA區(qū)的大小。

(3)

數(shù)據(jù)高速緩沖區(qū)存儲的是最近從數(shù)據(jù)文件中檢索出來的數(shù)據(jù),供所有用戶共享。當(dāng)用戶

要操作數(shù)據(jù)庫中的數(shù)據(jù)時,先由服務(wù)器進(jìn)程將數(shù)據(jù)從磁盤的數(shù)據(jù)文件讀到數(shù)據(jù)高速緩沖區(qū)

中,然后在緩沖區(qū)中進(jìn)行處理。重做日志緩沖區(qū)用于緩存用戶對數(shù)據(jù)庫進(jìn)行修改操作時生成

的重做記錄。共享池用于緩存最近執(zhí)行過的SQL語句、PL/SQL程序和數(shù)據(jù)字典信息,是對

SQL語句、PL/SQL程序進(jìn)行語法分析、編譯、執(zhí)行的區(qū)域。

(4)

Oracle數(shù)據(jù)庫進(jìn)程包括用戶進(jìn)程、服務(wù)器進(jìn)程和后臺進(jìn)程三類。其中,用戶進(jìn)程用戶建

立用戶數(shù)據(jù)庫服務(wù)器的連接;服務(wù)器進(jìn)程接受用戶連接請求;后臺進(jìn)程實現(xiàn)數(shù)據(jù)庫的后臺操

作。

(5)

Oracle實例的主要后臺進(jìn)程包括數(shù)據(jù)庫寫進(jìn)程(DBWR)、日志寫進(jìn)程(LGWR)、檢查點

進(jìn)程(CKPT)、系統(tǒng)監(jiān)控進(jìn)程(SMON)、進(jìn)程監(jiān)控進(jìn)程(PMON)、歸檔進(jìn)程(ARCH)、恢復(fù)進(jìn)程

(RECO)、鎖進(jìn)程(LCKn)、調(diào)度進(jìn)程(Dnnn)等。

DBWR進(jìn)程負(fù)責(zé)把數(shù)據(jù)高速緩沖區(qū)中已經(jīng)被修改過的數(shù)據(jù)(“臟”緩存塊)成批寫入數(shù)據(jù)

文件中永久保存,同時使數(shù)據(jù)高速緩沖區(qū)有更多的空閑緩存塊,保證服務(wù)器進(jìn)程將所需要的

數(shù)據(jù)從數(shù)據(jù)文件讀取到數(shù)據(jù)高速緩沖區(qū)中,提高緩存命中率。

LGWR日志寫入進(jìn)程負(fù)責(zé)把重做日志緩沖區(qū)的重做記錄寫入重做日志文件中永久保存。

CKPT進(jìn)程的作用就是執(zhí)行檢查點,更新控制文件與數(shù)據(jù)文件的頭部,使其同步;,觸發(fā)

DBWR進(jìn)程,將臟緩存塊寫入數(shù)據(jù)文件。

SMON進(jìn)程的主要功能包括:在實例啟動時負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行恢復(fù);回收不再使用的臨

時空間:將各個表空間的空閑碎片合并。

PMON進(jìn)程的主要功能包括:負(fù)責(zé)恢復(fù)失敗的用戶進(jìn)程或服務(wù)器進(jìn)程,并且釋放進(jìn)程所

占用的資源;清除非正常中斷的用戶進(jìn)程留下的孤兒會話,回退未提交的事務(wù),釋放會話所

占用的鎖、SGA、PGA等資源;監(jiān)控調(diào)度進(jìn)程和服務(wù)器進(jìn)程的狀態(tài),如果它們失敗,則嘗試

重新啟動它們,并釋放它們所占用的各種資源。

ARCH進(jìn)程用戶歸檔重做日志文件。

RECO進(jìn)程用戶數(shù)據(jù)庫恢復(fù)。

(6)

數(shù)據(jù)庫寫入進(jìn)程負(fù)責(zé)把數(shù)據(jù)高速緩沖區(qū)中已經(jīng)被修改過的數(shù)據(jù)(“臟”緩存塊)成批寫

入數(shù)據(jù)文件中永久保存,同時使數(shù)據(jù)高速緩沖區(qū)有更多的空閑緩存塊,保證服務(wù)器進(jìn)程將所

需要的數(shù)據(jù)從數(shù)據(jù)文件讀取到數(shù)據(jù)高速緩沖區(qū)中,提高緩存命中率。

當(dāng)下列某個條件滿足時,DB1VR進(jìn)程將啟動,將數(shù)據(jù)高速緩沖區(qū)中的臟數(shù)據(jù)寫入數(shù)據(jù)文

件。

?服務(wù)器進(jìn)程在數(shù)據(jù)高速緩存區(qū)中搜索一定數(shù)量的緩存塊后,仍然沒有找不到可用的

空閑緩存塊,此時DBWR進(jìn)程將被啟動。

?檢查點發(fā)生時,將啟動DBWR進(jìn)程。

?當(dāng)數(shù)據(jù)高速緩沖區(qū)中LRU列表長度達(dá)到初始化參數(shù)DBBLOCKWRITE_BATCH指定值

的一半時,DBWR進(jìn)程將被啟動。

?DBWR進(jìn)程發(fā)生超時(大約3秒,DBWR進(jìn)程將被啟動。

(7)

日志寫入進(jìn)程負(fù)責(zé)把重做日志緩沖區(qū)的重做記錄寫入重做日志文件中永久保存。

DBWR進(jìn)程在工作之前,需要了解LGWR進(jìn)程是否已經(jīng)把相關(guān)的日志緩沖區(qū)中的重做記錄

寫入重做日志文件中。如果還沒有寫入重做日志文件,DBWR進(jìn)程將通知LGWR進(jìn)程完成相應(yīng)

的工作,然后DBWR進(jìn)程才開始寫入。這樣可以保證先將與臟緩存塊相關(guān)的重做記錄信息寫

入重做日志文件,然后將臟緩存塊寫入數(shù)據(jù)文件,即先寫重做日志文件,后寫數(shù)據(jù)文件。

當(dāng)下列事件發(fā)生時,LGWR進(jìn)程將重做日志緩沖區(qū)中的重做記錄寫入重做日志文件。

?用戶通過COMMIT語句提交當(dāng)前事務(wù)。

?重做日志緩沖區(qū)被寫滿三分之一。

?DBWR進(jìn)程開始將臟緩存塊寫入數(shù)據(jù)文件。

LGWR進(jìn)程超時(大約3秒,LGWR進(jìn)程將啟動。

(8)

SMON進(jìn)程的主要功能包括:在實例啟動時負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行恢復(fù);回收不再使用的臨

時空間;將各個表空間的空閑碎片合并。

PMON進(jìn)程的主要功能包括:負(fù)責(zé)恢復(fù)失敗的用戶進(jìn)程或服務(wù)器進(jìn)程,并且釋放進(jìn)程所

占用的資源;清除非正常中斷的用戶進(jìn)程留下的孤兒會話,回退未提交的事務(wù),釋放會

話所占用的鎖、SGA、PGA等資源;監(jiān)控調(diào)度進(jìn)程和服務(wù)器進(jìn)程的狀態(tài),如果它們失敗,

則嘗試重新啟動它們,并釋放它們所占用的各種資源。

(9)

在Oracle數(shù)據(jù)庫中,數(shù)據(jù)庫的操作模式分為專用服務(wù)器(DELICATEDSERVER)模式和

多線程服務(wù)器(MULTITHREADEDSERVER)模式兩種。其中,在專用服務(wù)器模式中為每個用戶進(jìn)

程創(chuàng)建一個服務(wù)器進(jìn)程,用戶進(jìn)程與服務(wù)器進(jìn)程之間是1:1的關(guān)系;在共享服務(wù)器模式中,

一個服務(wù)器進(jìn)程可以為多個用戶進(jìn)程服務(wù)器。

(10)

專用服務(wù)器模式工作過程

?用戶進(jìn)程向一個數(shù)據(jù)庫實例發(fā)出連接請求。

?位于數(shù)據(jù)庫服務(wù)器中的Oracle監(jiān)聽程序探測到用戶進(jìn)程請求后,首先驗證用戶進(jìn)程

提供的用戶名和口令,驗證通過后建議一個專用的服務(wù)器進(jìn)程為該用戶進(jìn)程提供服

務(wù)。

?用戶提交一條SQL語句。

?專用服務(wù)器進(jìn)程首先判斷在共享SQL工作區(qū)中是否存在類似的SQL語句。如果不存

在,將為這條SQL語句分配新的共享SQL工作區(qū),然后解析該語句。在解析過程中,

服務(wù)器進(jìn)程將檢查該語句的語法正確性。同時,該語句的私有數(shù)據(jù)和信息保存到服

務(wù)器進(jìn)程的PGA中。

?解析完成后,服務(wù)器進(jìn)程開始在數(shù)據(jù)高速緩沖區(qū)中尋找SQL語句所要求的數(shù)據(jù)。如

果數(shù)據(jù)不在數(shù)據(jù)高速緩沖區(qū)中,還需要從數(shù)據(jù)文件中將所需要的數(shù)據(jù)讀取到數(shù)據(jù)高

速緩沖區(qū)中。

?服務(wù)器進(jìn)程執(zhí)行SQL語句。如果SQL語句要對數(shù)據(jù)進(jìn)行更改,僅在數(shù)據(jù)高速緩沖區(qū)

中對緩存塊進(jìn)行更改,并將更改所生成的重做記錄保存在重做日志緩存中。將來,

由LGWR進(jìn)程將重做記錄寫入重做日志文件,由DBWR進(jìn)程將臟緩存塊寫入數(shù)據(jù)文件。

?執(zhí)行完畢后,服務(wù)器進(jìn)程將結(jié)果返回給用戶進(jìn)程。

(11)

多線程服務(wù)器模式工作過程

?在客戶端創(chuàng)建一個用戶進(jìn)程,連接數(shù)據(jù)庫。

?位于服務(wù)器中的Oracle監(jiān)聽程序探測到用戶進(jìn)程請求后,首先驗證用戶進(jìn)程提供的

用戶名和口令,驗證通過后將該用戶進(jìn)程分配給一個調(diào)度進(jìn)程。用戶進(jìn)程直接與調(diào)

度進(jìn)程進(jìn)行交互。

?用戶提交一條SQL語句,調(diào)度進(jìn)程對SQL語句進(jìn)行處理,然后將處理結(jié)果放入位于

SGA區(qū)中的一個“請求隊列”中,同時將調(diào)度程序ID也存入請求隊列。

?當(dāng)某個共享服務(wù)器進(jìn)程空閑時,從''請求隊列”中取出一條處理后的SQL語句,并

對該語句進(jìn)行解析和執(zhí)行,得到它所請求的數(shù)據(jù)。

?共享服務(wù)器進(jìn)程將處理結(jié)果放入SGA區(qū)中的一個“響應(yīng)隊列”中?

?調(diào)度程序定期檢查“響應(yīng)隊列”,如果發(fā)現(xiàn)有自己送出請求的處理結(jié)果,則將結(jié)果取

出。調(diào)度程序根據(jù)處理結(jié)果中保存的調(diào)度程序ID來標(biāo)識該結(jié)果是否是自己的。

?調(diào)度程序?qū)⑻幚斫Y(jié)果返回給用戶進(jìn)程。

2.選擇題

(1)D

(2)D

(3)B

(4)B

(5)D

(6)A

(7)D

(8)B

(9)B

(10)A

第9章數(shù)據(jù)庫的啟動與關(guān)閉

1.簡答題

(1)

常用的數(shù)據(jù)庫啟動與關(guān)閉工具包括:SQL*PLUS.OEM、RMAN等。

(2)

數(shù)據(jù)庫啟動時首先根據(jù)初始化參數(shù)文件創(chuàng)建并啟動實例,然后根據(jù)控制文件加載數(shù)據(jù)文

件和充作日志文件,最后打開數(shù)據(jù)文件和重做日志文件。

(3)

數(shù)據(jù)庫關(guān)閉時首先關(guān)閉數(shù)據(jù)文件和重做日志文件,然后卸載數(shù)據(jù)文件和重做日志文件,

關(guān)閉控制文件,最后釋放內(nèi)存結(jié)構(gòu)和后臺進(jìn)程,即關(guān)閉實例。

(4)

利用初始化參數(shù)文件中參數(shù)設(shè)置創(chuàng)建并啟動實例;

利用控制文件中的信息定位并加載數(shù)據(jù)文件和重做日志文件。

重做日志文件用戶在數(shù)據(jù)庫運(yùn)行過程中記錄用戶對數(shù)據(jù)庫的修改操作。

(5)

數(shù)據(jù)庫啟動模式包括:

>STARTUPNOMOUNT

用于創(chuàng)建一個新的數(shù)據(jù)庫或重建數(shù)據(jù)庫的控制文件。

>STARTUPMOUNT

用于重命名數(shù)據(jù)文件、添加、刪除或重命名重做日志文件、改變數(shù)據(jù)庫的歸檔模式、

執(zhí)行數(shù)據(jù)庫完全恢復(fù)操作等。

>STARTUPNORMAL

正常啟動數(shù)據(jù)庫

>STARTUPFORCE

在下列情況下,需要使用STARTUPFORCE命令啟動數(shù)據(jù)庫:無法使用SHUTDOWN

NORMAL,SHUTDOWNIMMEDIATE或SHUTDOWNTRANSACTION語句關(guān)閉數(shù)據(jù)庫實

例;在啟動實例時出現(xiàn)無法恢復(fù)的錯誤。

>STARTUPRESTRICT

當(dāng)執(zhí)行下列操作時,需要使用STARTUPRESTRICT命令啟動數(shù)據(jù)庫:執(zhí)行數(shù)據(jù)庫數(shù)據(jù)

的導(dǎo)出或?qū)氩僮?;?zhí)行數(shù)據(jù)裝教操作;暫時阻止普通用戶連接數(shù)據(jù)庫:進(jìn)行數(shù)據(jù)庫移植或

升級操作等。

(6)

關(guān)閉數(shù)據(jù)庫的方法包括:

>SHUTDOWN[NORMAL]

如果對數(shù)據(jù)庫的關(guān)閉沒有時間限制,則可以采用該命令正常關(guān)閉數(shù)據(jù)庫。

當(dāng)采用SHUTDOWNNORAML方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行下列操作:

?阻止任何用戶建立新的連接;

?等待當(dāng)前所有正在連接的用戶主動斷開連接;

?一旦所有用戶斷開連接,則關(guān)閉數(shù)據(jù)庫;

?數(shù)據(jù)庫下次啟動時不需要任何實例的恢復(fù)過程。

>SHUTDOWNIMMEDIATE

如果要求在盡可能短時間內(nèi)關(guān)閉數(shù)據(jù)庫,如即將啟動數(shù)據(jù)庫備份操作、即將發(fā)生電力供

應(yīng)中斷、數(shù)據(jù)庫本身或某個數(shù)據(jù)庫應(yīng)用程序發(fā)生異常需要關(guān)閉數(shù)據(jù)庫等,都可以采用

SHUTDOWNIMMEDIATE命令來立即關(guān)閉數(shù)據(jù)庫。

當(dāng)采用SHUTDOWNIMMEDIATE方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行下列操作:

?阻止任何用戶建立新的連接,也不允許當(dāng)前連接用戶啟動任何新的事務(wù);

?回滾所有當(dāng)前未提交的事務(wù);

?終止所有用戶的連接,直接關(guān)閉數(shù)據(jù)庫;

?數(shù)據(jù)庫下一次啟動時不需要任何實例的恢復(fù)過程。

>SHUTDOWNTRANSACTION

如果要求在盡量短的時間內(nèi)關(guān)閉數(shù)據(jù)庫,同時還要保證所有當(dāng)前活動事務(wù)可以提交,則

可以采用SHUTDOWNTRANSACTION命令關(guān)閉數(shù)據(jù)。

當(dāng)采用SHUTDOWNTRANSACTION方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行下列操作:

?阻止所有用戶建立新的連接,也不允許當(dāng)前連接用戶啟動任何新的事務(wù);

?等待用戶回滾或提交任何當(dāng)前未提交的事務(wù),然后立即斷開用戶連接;

?關(guān)閉數(shù)據(jù)庫;

?數(shù)據(jù)庫下一次啟動時不需要任何實例的恢復(fù)過程。

>SHUTDOWNABORT

如果前三種方法都無法成功關(guān)閉數(shù)據(jù)庫,說明數(shù)據(jù)庫產(chǎn)生了嚴(yán)重錯誤,只能采用終止方

式,即SHUTDOWNABORT命令來關(guān)閉數(shù)據(jù)庫,此忖會丟失一部分?jǐn)?shù)據(jù)信息,對數(shù)據(jù)庫完

整性造成損害。

當(dāng)采用SHUTDOWNABORT方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行下列操作:

?阻止任何用戶建立新的連接,同時阻止當(dāng)前連接用戶開始任何新的事務(wù)。

?立即結(jié)束當(dāng)前正在執(zhí)行的SQL語句。

?任何未提交的事務(wù)不被回滾。

?中斷所有的用戶連接,立即關(guān)閉數(shù)據(jù)庫。

?數(shù)據(jù)庫實例重啟后需要恢復(fù)。

(7)

STARTUPNOMOUNT可用完成的管理操作包括:

用于創(chuàng)建一個新的數(shù)據(jù)庫、重建數(shù)據(jù)庫的控制文件等。

STARTUPMOUNT可以完成的管理操作包括:

用于重命名數(shù)據(jù)文件、添加、刪除或重命名重做日志文件、改變數(shù)據(jù)庫的歸檔模式、

執(zhí)行數(shù)據(jù)庫完全恢復(fù)操作等。

(8)

如果需要數(shù)據(jù)庫處丁OPNE模式下執(zhí)行維護(hù)任務(wù),而同時要保證其他用戶不能在數(shù)據(jù)

庫中建立連接和執(zhí)行操作,此時應(yīng)該使用STARTUPRESTRICT命令啟動數(shù)據(jù)庫。

當(dāng)執(zhí)行下列操作時,需要使用STARTUPRESTRICT命令啟動數(shù)據(jù)庫。

?執(zhí)行數(shù)據(jù)庫數(shù)據(jù)的導(dǎo)出或?qū)氩僮?/p>

?執(zhí)行數(shù)據(jù)裝載操作

?暫時阻止普通用戶連接數(shù)據(jù)庫

?進(jìn)行數(shù)據(jù)庫移植或升級操作

(9)

所謂的靜默狀態(tài)是指只允許DBA用戶在數(shù)據(jù)庫中進(jìn)行操作,而其他所有用戶都不能進(jìn)

行數(shù)據(jù)庫的訪問。DBA在進(jìn)行數(shù)據(jù)庫的管理與維護(hù),執(zhí)行某些特殊操作時,需要排除其他

用戶對數(shù)據(jù)庫的操作。例如,DBA在執(zhí)行某些操作的程中,如果有其他用戶訪問操作的對

象,將導(dǎo)致管理操作失敗;DBA的某些操作在執(zhí)行過程中所產(chǎn)生的中間結(jié)果不應(yīng)當(dāng)被其他

用戶看到。

當(dāng)數(shù)據(jù)庫處于掛起狀態(tài)時,數(shù)據(jù)庫所有的物理文件的I/O操作都被暫停。但是與靜默狀

態(tài)不同,掛起狀態(tài)不禁止非DBA用戶進(jìn)行數(shù)據(jù)庫操作,只是暫時停止所有用戶的I/O操作

(10)

數(shù)據(jù)庫啟動時首先從默認(rèn)位置讀取服務(wù)器端初始化參數(shù)文件,如果沒有,則讀取默認(rèn)位

置的文本初始化參數(shù)文件;如果還沒有則可以通過PFILE參數(shù)指定文本初始化參數(shù)文件文

件。

2.實訓(xùn)題

(1)

STARTUPMOUNT

(2)

STARTUPRETRICT

ALTERSYSTEMDISABLERESTRICTEDSESSION

(3)

ALTERSYSTEMSUSPEND;

ALTERSYSTEMRESUME;

(4)

SHUTDOWNIMMEDIATE;

STARTUPMOUNT;

ALTERDATABASEOPENREADONLY;

SHUTDOWNIMMEDIATE;

STARTUPMOUNT;

ALTERDATABASEOPENREADWRITE;

(5)

SHUTDOWN;

SHUTDOWNIMMEDIATE;

SHUTDOWNTRANACTION;

SHUTDOWNABORT:

(6)

STARTUPFORCE

3.選擇題

(i)c

(2)B

(3)C

(4)B

(5)B

(6)B

(7)A

(8)B

(9)B

(10)C

第10章復(fù)習(xí)題

1.簡答題

(1)

數(shù)據(jù)庫模式與用戶之間的區(qū)別在于:用戶是數(shù)據(jù)庫的使用者和管理者,用戶具有帳戶狀

態(tài)、訪問權(quán)限和操作權(quán)限等屬性。模式是一系列邏輯數(shù)據(jù)結(jié)構(gòu)或?qū)ο蟮募?,是?shù)據(jù)庫中對

象的組織和管理單位。

(2)

在Oracle數(shù)據(jù)庫中,根據(jù)表生存周期不同,可以分為永久性表和臨時表;根據(jù)表中數(shù)

據(jù)組織方式不同,可以分為標(biāo)準(zhǔn)表、索引化表和分區(qū)表。索引化表是一種特殊的表,它按B

樹的結(jié)構(gòu)來組織和存儲數(shù)據(jù),將表的數(shù)據(jù)和索引的數(shù)據(jù)存儲在一起。分區(qū)表是將一個表分成

若干個獨立的組成部分進(jìn)行存儲和管理。

(3)

表的約束包括:

>主鍵約束:定義了主鍵約束的列取值不能為空,也不能重復(fù)。

>唯一值約束:定義了唯一值約束的列取值不能重復(fù)。

>檢查約束:定義了檢查約束的列取值要滿足檢查條件。

>外鍵約束:定義了外鍵約束的列取值要么是主表參照列的值,要么是空值。

>空/非空約束:定義了非空約束的列取值不能為空。

(4)

索引用于提高數(shù)據(jù)的查詢效率。根據(jù)索引值是否唯一,可以分為唯一性索引和非唯一性

索引;根據(jù)索引的組織結(jié)構(gòu)不同,可以分為平衡樹索引和位圖索引;根據(jù)索引基于的列數(shù)不

同可以分為單列索引和復(fù)合索引。

(5)

索引化表將按索引的結(jié)構(gòu)組織表中的數(shù)據(jù),整條記錄都被保存在索引條目中。要啟用溢

出存儲功能,必須在創(chuàng)建索引化表時使用OVERFLOW子句指定溢出部分的存儲空間,同

時使用PCTTHRESHOLD子句或INCLUDING子句來設(shè)置溢出方式。

(6)

所謂分區(qū)是指將一個巨型表或巨型索引分成若干個獨立的組成部分進(jìn)行存儲和管理,每

一個小的、可以獨立管理的部分,稱為原來表或索引的分區(qū)。對巨型表進(jìn)行分區(qū)后,即可以

對整個表進(jìn)行操作,也可以針對特定的分區(qū)進(jìn)行操作,從而簡化了對表的管理和維護(hù)。

(7)

對表進(jìn)行分區(qū)的方法包括:

>范圍分區(qū)按照分區(qū)值的范圍對表進(jìn)行分區(qū)。

>列表分區(qū)按照分區(qū)值對表進(jìn)行分區(qū)。

散列分區(qū)采用HASH算法在指定數(shù)量的分區(qū)中均等地分配數(shù)據(jù).

復(fù)合分區(qū)先對表進(jìn)行范圍分區(qū),然后對福個分區(qū)進(jìn)行散列分區(qū)。

(8)

>簇是一種存儲表數(shù)據(jù)的方法,一個簇由共享相同數(shù)據(jù)塊的一組表組成。在一個簇中,

Oracle將多個表中具有相同相關(guān)列的記錄聚簇在相同的數(shù)據(jù)塊中。對于經(jīng)常訪問這

些列的應(yīng)用來說,能夠減少磁盤I/O時間,改善連接查詢的效率。

>視圖是從一個或多個表或視圖中提取出來的數(shù)據(jù)的一種表現(xiàn)形式。在數(shù)據(jù)庫中只有

視圖的定義,而沒有實際對應(yīng)“表”的存在。通過視圖的使用可以提高數(shù)據(jù)的安全

性,隱臧數(shù)據(jù)的復(fù)雜性,簡化查詢語句,分離應(yīng)用程序與基礎(chǔ)表,保存復(fù)雜查詢等。

>序列是用于產(chǎn)生唯一序列號的數(shù)據(jù)庫對象,可以為多個數(shù)據(jù)庫用戶依次生成不重復(fù)

的連續(xù)整數(shù),通常使用序列自動生成表中的主鍵值。

>同義詞是數(shù)據(jù)庫中表、索引、視圖或其他模式對象的一個別名。利用同義詞,一方

面可以為數(shù)據(jù)庫對象提供一定的安全性保障:另一方面可以簡化對象訪問。此外,

當(dāng)數(shù)據(jù)庫對象改變時,只需要修改同義詞而不需要修改應(yīng)用程序。

>數(shù)據(jù)庫鏈接是在分布式數(shù)據(jù)庫應(yīng)用環(huán)境中的一個數(shù)據(jù)庫與另一個數(shù)據(jù)庫之間的通

信途徑,將遠(yuǎn)程數(shù)據(jù)庫映射到本地。所有能夠訪問本地數(shù)據(jù)庫鏈接的應(yīng)用程序均可

訪問遠(yuǎn)程數(shù)據(jù)庫中的模式對象。

(9)

在數(shù)據(jù)庫中使用索引可以提高對表中數(shù)據(jù)的查詢速度,但是,向表中插入數(shù)據(jù)需要更新

索引,會影響更新速度。如果表建了索引,在有條件查詢時,系統(tǒng)先對索引表進(jìn)行查詢,利

用索引表可以找到相應(yīng)記錄的ROWID,索引建好后,由系統(tǒng)負(fù)責(zé)更新。

(10)

數(shù)據(jù)庫中臨時表分為事務(wù)級別的臨時表和會話級別的臨時表。創(chuàng)建表有三種方法:

定義表名、列名、類型與約束等直接創(chuàng)建表;利用子查詢間接創(chuàng)建表。

2.實訓(xùn)題

(1)

Createtableclass(

CNOnumber(2)primarykey,

CNAMEvarchar2(20),

NUMnumber(3)

)

Createtablestudent(

SNOnumber(4)primarykey,

SNAMEvarchar2(10)unique,

SAGEnumber,

SEXchar(2),

CNOnumber(2)

)

(2)

Altertablestudentaddconstraintfk_cnoforeignkey(eno)referencesclass(cno)deferrable;

(3)

Altertablestudentaddconstraintck_sagecheck(sage>0andsage<=100);

(.4)

altertablestudentaddconstraintck_stucheck(sex="M'orsex=,F')modifysexdefault'M*

(5)

溫馨提示

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

評論

0/150

提交評論