數(shù)據(jù)庫系統(tǒng)教程:DB2概述_第1頁
數(shù)據(jù)庫系統(tǒng)教程:DB2概述_第2頁
數(shù)據(jù)庫系統(tǒng)教程:DB2概述_第3頁
數(shù)據(jù)庫系統(tǒng)教程:DB2概述_第4頁
數(shù)據(jù)庫系統(tǒng)教程:DB2概述_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

DB2概述

學(xué)習(xí)目標(biāo):了解DB2產(chǎn)品的基本知識熟練掌握Windows系統(tǒng)下DB2的安裝過程理解和掌握DB2實例的相關(guān)知識了解DB2工具的基本作用理解和掌握DB2系統(tǒng)的層次結(jié)構(gòu)創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫對象理解DB2對數(shù)據(jù)庫的保護機制一、DB2簡介

DB2是IBM公司研制的一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。

80年代初DB2的發(fā)展重點放在大型的主機平臺上,從80年代中期到90年代初DB2已經(jīng)發(fā)展到中型機、小型機以及微型機等多種平臺上,它具有極強的伸縮性和擴充能力,數(shù)據(jù)庫的使用和管理也非常方便。

DB2家族產(chǎn)品是全功能的、具有工業(yè)強度的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它們適用于多種硬件平臺。

DB2的版本主要包括:DB2Express、工作組版的DB2WorkgroupServerEdition(WSE)、企業(yè)版的DB2EnterpriseServerEdition(ESE)、免費版的DB2Express–C、微型版的Everyplace和個人版的PersonalEdition等。這些產(chǎn)品基本的數(shù)據(jù)管理功能是一樣的,區(qū)別在于支持遠程客戶能力和分布式處理能力。二、DB2的安裝

本安裝過程是從IBM官網(wǎng)/db2/express/download.html下載DB2Express-C軟件,本例子中下載的是最新的版db2exc_972_WIN_x86.exe。啟動安裝過程后,進入安裝產(chǎn)品界面。單擊界面左邊的【安裝產(chǎn)品】選項后,再單擊界面右邊的【安裝新產(chǎn)品】按鈕,啟動安裝向?qū)Ы缑妗?/p>

進入DB2安裝向?qū)Ы缑?,單擊【下一步】按鈕就可以使用向?qū)戆惭bDB2。

單擊【我接受許可證協(xié)議中的全部條款】選項后,單擊【下一步】按鈕。

選擇安裝類型,然后單擊【下一步】按鈕。

選擇安裝和/或響應(yīng)文件創(chuàng)建,然后單擊【下一步】按鈕。

選擇安裝文件夾,然后單擊【下一步】按鈕。

為DB2管理服務(wù)器設(shè)置用戶信息,然后單擊【下一步】按鈕。

配置DB2實例,然后單擊【下一步】按鈕。

DB2實例配置界面。

開始復(fù)制文件并創(chuàng)建響應(yīng)文件。最后單擊【完成】按鈕。

完成DB2安裝,單擊【完成】按鈕將退出DB2安裝向?qū)А?/p>

三、DB2實例

DB2實例是一種邏輯上下文,是邏輯的數(shù)據(jù)庫服務(wù)器環(huán)境,允許應(yīng)用程序創(chuàng)建、更新、控制和管理數(shù)據(jù)庫,DB2命令及函數(shù)在其中執(zhí)行。

在Windows中實例相當(dāng)于一個服務(wù),默認名稱是db2c_DB2。一個DB2實例可以看成是數(shù)據(jù)庫的容器。實例必須先于數(shù)據(jù)庫存在,數(shù)據(jù)庫是在實例中創(chuàng)建的。與實例相關(guān)的一些操作命令

db2icrtInstance-name

創(chuàng)建新實例setDB2INSTANCE=用戶創(chuàng)建的實例名把用戶創(chuàng)建的實例設(shè)置為當(dāng)前實例db2start

啟動實例db2stop

停止實例db2ilist

列出所有實例

四、常用的DB2工具

DB2中為用戶提供多種便捷的工具,包括監(jiān)視工具、命令行工具、設(shè)置工具、信息和一般管理工具。第一步

“第一步”為用戶介紹了可以使用DB2數(shù)據(jù)庫系統(tǒng)來執(zhí)行的一些主要數(shù)據(jù)庫功能。依次點擊:開始

所有程序

IBMDB2

DB2COPY1—>設(shè)置工具

第一步,啟動“第一步”。命令編輯器

命令編輯器為用戶提供了一個交互式的圖形化界面,允許用戶輸入和執(zhí)行SQL命令和DB2命令,并且察看執(zhí)行結(jié)果和語句解釋信息。依次點擊:開始

所有程序

IBMDB2

COPY1—>命令行工具

命令編輯器,啟動“命令編輯器。

如果在命令編輯器中添加上需要訪問的數(shù)據(jù)庫以后,在界面中將出現(xiàn)一個圖標(biāo),該圖標(biāo)是DB2V9中SQL助手的啟動圖標(biāo)。

SQL助手幫助用戶建立所需要的SQL語句。

命令窗口

命令窗口允許用戶輸入和執(zhí)行SQL命令、XQuery命令、DB2命令和操作系統(tǒng)命令。依次點擊:開始

所有程序

IBMDB2

DB2COPY1—>命令行工具

命令窗口,啟動”命令窗口”注意:命令窗口輸入模式為非交互模式,也就是說輸入的命令前要加上“DB2”命令行處理器(CommandLineProcessor,CLP)

允許用戶輸入和執(zhí)行SQL命令、XQuery命令、DB2命令和操作系統(tǒng)命令。依次點擊:開始

所有程序

IBMDB2

DB2COPY1—>命令行工具

命令行處理器,將進入DB2CLP運行環(huán)境,

命令行處理器中輸入模式為交互模式,也就是說在輸入的命令前無需加上“db2”。命令行處理器在執(zhí)行操作系統(tǒng)命令的時候,需要在所執(zhí)行的操作系統(tǒng)命令前加上“!”符號。如:DB2=>!DIRC:\若在CLP中命令過長,可用"\"作為續(xù)行符號獲得DB2命令的語法信息,用DB2?顯示所有DB2命令;

DB2?COMMAND顯示命令信息;

DB2?SQLnnnn

顯示這個SQLCODE的解釋信息;

DB2?DB2nnnn顯示這個DB2錯誤的解釋信息查看當(dāng)前CLP的設(shè)置,可以用命令LISTCOMANDOPTIONS停止實例,使用命令DB2STOP退出命令行處理器,使用命令quit。幾點說明:

控制中心

控制中心是DB2管理工具的核心,它向用戶提供了完成幾乎所有典型的數(shù)據(jù)庫管理任務(wù)所需的工具。

任務(wù)中心

任務(wù)中心被用于創(chuàng)建、調(diào)度和管理包含了SQL語句、DB2命令和操作系統(tǒng)命令的命令腳本。

日志

當(dāng)系統(tǒng)發(fā)生某些故障時,DB2將數(shù)據(jù)庫信息記錄到日志文件中。

配置助手

配置助手用于連接遠程DB2服務(wù)器。

運行狀況中心

運行狀況中心是一個服務(wù)器端的工具,它可以在沒有用戶干預(yù)的情況下對DB2實例的健康狀況進行監(jiān)視。

五、DB2系統(tǒng)的層次結(jié)構(gòu)一個節(jié)點可以有多個實例。一個實例可以管理多個數(shù)據(jù)庫,但是一個數(shù)據(jù)庫只能屬于一個實例。一個數(shù)據(jù)庫包含多種數(shù)據(jù)庫對象,表是其中之一。表被邏輯組織在表空間中。幾個概念:

表空間(TABLESPACE)是數(shù)據(jù)庫與存儲在該數(shù)據(jù)庫中的表之間的邏輯層。表空間在數(shù)據(jù)庫中創(chuàng)建,表在表空間中創(chuàng)建。使用表空間的一個明顯好處就是能夠把數(shù)據(jù)合理的分布存儲在不同的磁盤上或者存儲在磁盤的不同位置上,有助于提高數(shù)據(jù)存取的效率。

容器(CONTAINER)是表空間的組成單位。它包括三種類型:文件,目錄和分區(qū)。一個表空間有一個或多個容器,但一個容器只能屬于一個表空間。

區(qū)段(EXTENT),又被稱為數(shù)據(jù)塊,是表空間的容器中的一個空間單元,是DB2進行I/O操作的單位。一個表空間中所有容器的區(qū)段大小都相同。數(shù)據(jù)庫對象(除了大對象和longvarchar之外)都存儲在DB2的頁面中。這些頁面組合成區(qū)段。區(qū)段大小是在表空間級定義的。一旦為表空間指定了區(qū)段大小,就不能改變了。數(shù)據(jù)庫配置參數(shù)DFT_EXTENT_SZ指定數(shù)據(jù)庫中所有表空間的默認區(qū)段大小。這個值的范圍是2~256個頁面。一個區(qū)段只能分配給一個數(shù)據(jù)庫對象。區(qū)段大小可以在創(chuàng)建DMS表空間時用EXTENTSIZE參數(shù)定制,確定后不能修改。使用區(qū)段的一個優(yōu)點在于可以使多個容器負載平衡。表空間、容器和區(qū)段之間的關(guān)系

六、創(chuàng)建數(shù)據(jù)庫

DB2為用戶提供了多種創(chuàng)建數(shù)據(jù)庫的途徑。A.命令方式創(chuàng)建數(shù)據(jù)庫

CREATEDATABASE用于創(chuàng)建數(shù)據(jù)庫。基本語法是:

CREATEDATABASEdatabase_name;B.通過數(shù)據(jù)庫向?qū)韯?chuàng)建數(shù)據(jù)庫B.通過數(shù)據(jù)庫向?qū)韯?chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫向?qū)Э梢詭椭脩魟?chuàng)建和調(diào)整新的數(shù)據(jù)庫。操作步驟如下。第一步:

第二步:第三步:第四步:第五步:第六步:七、創(chuàng)建數(shù)據(jù)庫對象

在DB2數(shù)據(jù)庫中,模式、表空間、表、索引、視圖等具體存儲數(shù)據(jù)或?qū)?shù)據(jù)進行操作的實體都稱為數(shù)據(jù)庫對象。用戶可以通過使用數(shù)據(jù)定義語言來管理數(shù)據(jù)庫對象,也可以使用數(shù)據(jù)操縱語言來訪問數(shù)據(jù)庫對象中的數(shù)據(jù)。創(chuàng)建的方法,可以通過命令方式,也可以通過控制中心的圖形用戶界面方式。說明:

模式(SCHEMA)是數(shù)據(jù)庫對象之一,可以將其他數(shù)據(jù)庫對象進行邏輯分組。簡單地說就是一個用戶名對應(yīng)一個模式,用戶可以創(chuàng)建屬于自己的對象。模式格式為:模式名.數(shù)據(jù)庫對象名。例如:用戶A的表table1表示為A.table1,A就是模式;同理,用戶B也可以有一個表table1,但是表示為B.table1。雖然這兩個表名一樣,但由于模式不一樣,DB2認為是兩個對象。但是,如果在引用數(shù)據(jù)庫對象時沒有使用模式名,則將用戶登錄操作系統(tǒng)的ID作為隱含模式名。

1.通過命令方式創(chuàng)建表

CONNECTTO數(shù)據(jù)庫名;CREATETABLE表名

(………)

與第三章所學(xué)命令相同

創(chuàng)建數(shù)據(jù)對象的方法,可以通過命令方式,也可以通過控制中心的圖形用戶界面方式。以創(chuàng)建表舉例說明,其余數(shù)據(jù)對象的創(chuàng)建鼓勵自行嘗試操作。2.通過圖形用戶界面方式創(chuàng)建表第一步:第二步:第三步:第四步:第五步:第六步:第七步:八、DB2數(shù)據(jù)庫恢復(fù)機制類型有三種:崩潰恢復(fù)(CrashRecovery)

可以保護數(shù)據(jù)庫不至于因為電源故障、應(yīng)用異常結(jié)束等陷入不一致狀態(tài)。數(shù)據(jù)庫能夠通過撤銷未被授權(quán)提交的事務(wù)處理,從而回到一致的狀態(tài)。命令restartdatabase可以實現(xiàn)這個功能。版本恢復(fù)(VersionorRestoreRecovery)

允許數(shù)據(jù)庫恢復(fù)到使用備份命令建立的數(shù)據(jù)庫的映像或以前版本,但是不能恢復(fù)備份之后變化的數(shù)據(jù)。這種機制是通過使用一個以前建立的數(shù)據(jù)庫備份恢復(fù)出一個完整的數(shù)據(jù)庫。前滾恢復(fù)(RollForwardRecovery)是版本恢復(fù)的一個延伸,它利用完整的數(shù)據(jù)庫備份和日志相結(jié)合,使數(shù)據(jù)庫恢復(fù)到一個特定的時間點。

舉例說明在控制中心進行DB2數(shù)據(jù)庫的備份和恢復(fù)的操作步驟:備份第一步:第二步:第三步:第四步:第五步:第六步:第七步:

單擊【顯示命令】按紐可查看將要運行的命令。備份完成后,會在用戶指定的路徑中生成一個數(shù)據(jù)庫備份文件。DB2數(shù)據(jù)庫的恢復(fù)第一步:第二步:第三步:第四步:第五步:第六步:第七步:第八步:九、數(shù)據(jù)并發(fā)性

DB2對表空間、表、行和索引加鎖來保證數(shù)據(jù)庫的并發(fā)一致性。通常鎖的重點放在表鎖和行鎖上。其中,表級別的鎖有意向鎖,共享鎖、更新鎖、排他鎖等;行級別的鎖有共享鎖、更新鎖、排他鎖等DB2的隔離級別

并發(fā)操作破壞了事務(wù)的隔離性。因此,DB2采用了隔離級別,它決定了如何在事務(wù)中對訪問的數(shù)據(jù)加鎖或者使某事務(wù)與其他事務(wù)相隔離。

隔離級別的種類1.未提交讀未提交讀是DB2支持的最低的隔離級別。它可以用來讀取其他應(yīng)用程序的未提交的數(shù)據(jù)更新。使用該隔離級別,并發(fā)操作造成的四種異常都會產(chǎn)生。2.游標(biāo)穩(wěn)定性該隔離級別是DB2默認的隔離級別。使用該級別后,在一個事務(wù)中,結(jié)果集中只有正在被讀取的那一行,即游標(biāo)指向的行,將被加上鎖,對該行的鎖定將保持到取出下一行記錄為止,其他未被處理的行上不被加鎖。使用游標(biāo)穩(wěn)定性的應(yīng)用程序不能讀取未提交的數(shù)據(jù)。應(yīng)用程序鎖定當(dāng)前被取出的行時,其他的應(yīng)用程序都不能修改當(dāng)前行的內(nèi)容。使用該隔離級別,有可能出現(xiàn)不可重復(fù)讀和幻像讀(其它事務(wù)增加的新行)3.讀穩(wěn)定性使用讀穩(wěn)定性的應(yīng)用程序?qū)㈡i定作為結(jié)果表中的那一部分的行。其他的任何應(yīng)用程序都不能修改這些行。用戶如果采用這一隔離級別,在同一執(zhí)行單元中多次執(zhí)行同一查詢時,用戶的應(yīng)用程序會得到相同的結(jié)果。這樣就可以保證在一個事務(wù)中,即使多次讀取同一行,得到的值都不會改變。該隔離級別不能避免幻像讀。4.可重復(fù)讀可重復(fù)讀是DB2中最高的隔離級別。使用這種隔離級別,不僅滿足條件的行被鎖定,應(yīng)用程序在工作單元內(nèi)所引用的所有行也將被鎖定,即構(gòu)造結(jié)果集的過程中所處理的所有行都將持有該鎖。使用該隔離級別的用戶的應(yīng)用程序中所有的并發(fā)異常情況都可以避免。隔離級別的選擇如果正在只讀的表、視圖或數(shù)據(jù)庫上執(zhí)行查詢,或者并不介意查詢是否返回未提交的數(shù)據(jù),則使用未提交讀隔離級別。如果希望獲得最大的并發(fā)性,同時不希望查詢看到未提交的數(shù)據(jù),則使用游標(biāo)穩(wěn)定性隔離級別。如果希望在應(yīng)用程序之間獲得一定的并發(fā)性,還希望限定的行在事務(wù)執(zhí)行期間保持穩(wěn)定,則使用讀穩(wěn)定性隔離級別。如果正在執(zhí)行大型查詢,而且不希望并發(fā)事務(wù)所做的修改導(dǎo)致查詢的多次運行返回不同的結(jié)果,則使用可重復(fù)讀隔離級別。十、DB2的安全機制:身份驗證(Authentication)授權(quán)(Authorization)特權(quán)(Privilege)身份驗證

身份驗證是用戶在嘗試訪問DB2時遇到的第一種安全特性。下面是兩種常見的環(huán)境及其驗證類型:客戶機直接連接到DB2UDB服務(wù)器,即客戶機-服務(wù)器環(huán)境:包含服務(wù)器端驗證和客戶端驗證。客戶機通過DB2CONNECT連接到主機服務(wù)器,即客戶機-網(wǎng)關(guān)-主機環(huán)境:包含主機服務(wù)器端驗證和客戶端驗證。

授權(quán)用戶在通過身份驗證后,就會進入DB2安全性的第二階段,即授權(quán)。授權(quán)決定用戶或用戶組可以執(zhí)行的操作以及他們可以訪問的數(shù)據(jù)對象。授權(quán)可以被分為兩個不同類別:權(quán)限和特權(quán)。用戶可以通過發(fā)出以下命令來判斷自己擁有哪些權(quán)限和數(shù)據(jù)庫級特權(quán):

db2getauthorizations

權(quán)限在DB2中有5種權(quán)限,詳細描述如下:SYSADMSYSADM是最高級別的管理權(quán)限。擁有SYSADM權(quán)限的用戶能夠?qū)@個實例、這個實例中的任何數(shù)據(jù)庫以及這些數(shù)據(jù)庫中的任何對象發(fā)出任何DB2命令。這些用戶還能夠訪問數(shù)據(jù)庫中的數(shù)據(jù)以及授予或撤消其他用戶的權(quán)限或特權(quán)。只允許擁有SYSADM權(quán)限的用戶更新數(shù)據(jù)庫管理器配置文件。SYSCTRLSYSCTRL是最高級別的控制權(quán)限。擁有SYSCTRL權(quán)限的用戶可以在實例中執(zhí)行所有管理和維護命令。但是與擁有SYSADM權(quán)限用戶不同的是,他們不能訪問數(shù)據(jù)庫中的任何數(shù)據(jù),除非他們被授予了訪問數(shù)據(jù)所需的特權(quán)。SYSMAINTSYSMAINT是次高級別的控制權(quán)限。擁有SYSMAINT權(quán)限的用戶可以發(fā)出的命令是擁有SYSCTRL權(quán)限的用戶可以發(fā)出的命令的子集。擁有SYSMAINT權(quán)限的用戶不能創(chuàng)建或刪除數(shù)據(jù)庫或表空間,而且也不能訪問數(shù)據(jù)庫中的任何數(shù)據(jù),除非他們被顯式地授予訪問數(shù)據(jù)所需的特權(quán)。DBADMDBADM是次高級別的管理權(quán)限,它是一個數(shù)據(jù)庫級權(quán)限,而不是實例級權(quán)限,所以DBADM權(quán)限可以被分配給用戶和用戶組。擁有DBADM權(quán)限的用戶對于一個數(shù)據(jù)庫有幾乎完全的控制能力,但是這種用戶不能執(zhí)行某些維護或管理任務(wù),比如刪除數(shù)據(jù)庫等。LOADLOAD權(quán)限是一個數(shù)據(jù)庫級權(quán)限,它可以被分配給用戶和用戶組。LOAD權(quán)限允許用戶對表發(fā)出LOAD命令。LOAD權(quán)限是由SYSADM或DBADM賦權(quán)的,即只有擁有SYSADM或DBADM權(quán)限的用戶能夠?qū)τ脩艋蛴脩艚M授予或撤消LOAD權(quán)限。

數(shù)據(jù)庫管理員或特定用戶可以通過數(shù)據(jù)庫管理器配置界面設(shè)置這些權(quán)限。

特權(quán)

特權(quán)是針對某個特定的數(shù)據(jù)庫對象而設(shè)置的用戶權(quán)力,通常賦予只需要對數(shù)據(jù)庫對象進行存取的用戶。特權(quán)大體上分成兩類:第一類是數(shù)據(jù)庫級特權(quán)第二類是對象級特權(quán)1.?dāng)?shù)據(jù)庫級特權(quán)

數(shù)據(jù)庫級特權(quán)是針對數(shù)據(jù)庫中的所有對象而言的。如CREATETAB:選擇的用戶或用戶組是否可以在該數(shù)據(jù)庫中創(chuàng)建表。CONNECT:選擇的用戶或用戶組是否可以連接該數(shù)據(jù)庫。數(shù)據(jù)庫管理員或特定用戶可以通過以下操作步驟獲取對某數(shù)據(jù)庫的權(quán)限。

第一步:第二步:2.對象級特權(quán)

對象級特權(quán)是與數(shù)據(jù)庫中的特定對象相關(guān)聯(lián)的。這些數(shù)據(jù)庫對象包括:表空間、模式、表、視圖、索引、程序包和函數(shù)。如對表可選擇的表特權(quán)有SELECT、INSERT、UPDATE、DELETE等。數(shù)據(jù)庫管理員或特定用戶可以通過以下操作步驟獲取對某數(shù)據(jù)表的權(quán)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論