實用教程章數(shù)據(jù)庫創(chuàng)建_第1頁
實用教程章數(shù)據(jù)庫創(chuàng)建_第2頁
實用教程章數(shù)據(jù)庫創(chuàng)建_第3頁
實用教程章數(shù)據(jù)庫創(chuàng)建_第4頁
實用教程章數(shù)據(jù)庫創(chuàng)建_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章

數(shù)據(jù)庫創(chuàng)建2.1Oracle數(shù)據(jù)庫基本概念2.2界面方式創(chuàng)建數(shù)據(jù)庫2.3命令方式創(chuàng)建數(shù)據(jù)庫2.1Oracle數(shù)據(jù)庫基本概念2.1.1內(nèi)部結(jié)構(gòu)1.表空間(TABLESPACE)(1)EXAMPLE表空間。EXAMPLE表空間是示例表空間,用于存放示例數(shù)據(jù)庫的方案對象信息及其培訓(xùn)資料。(2)SYSTEM表空間。SYSTEM表空間是系統(tǒng)表空間,用于存放Oracle系統(tǒng)內(nèi)部表和數(shù)據(jù)字典的數(shù)據(jù),如表名、列名和用戶名等。一般不贊成將用戶創(chuàng)建的表、索引等存放在SYSTEM表空間中。(3)SYSAUX表空間。SYSAUX表空間是輔助系統(tǒng)表空間,主要存放Oracle系統(tǒng)內(nèi)部的常用樣例用戶的對象,如存放CMR用戶的表和索引等,從而減少系統(tǒng)表空間的負荷。SYSAUX表空間一般不存儲用戶的數(shù)據(jù),由Oracle系統(tǒng)內(nèi)部自動維護。(4)TEMP表空間。TEMP表空間是臨時表空間,存放臨時表和臨時數(shù)據(jù),用于排序和匯總等。2.1.1內(nèi)部結(jié)構(gòu)(5)UNDOTBS1表空間。UNDOTBSI表空間是重做表空間,存放數(shù)據(jù)庫中有關(guān)重做的相關(guān)信息和數(shù)據(jù)。當用戶對數(shù)據(jù)庫表進行修改(包括INSERT、UPDATE和DELETE操作)時,Oracle系統(tǒng)自動使用重做表空間來臨時存放修改前的數(shù)據(jù)。當所作的修改完成并提交后,系統(tǒng)根據(jù)需要保留修改前數(shù)據(jù)的時間長短來釋放重做表空間的部分空間。(6)USERS表空間。USERS表空間是用戶表空間,存放永久性用戶對象的數(shù)據(jù)和私有信息,因此也被稱為數(shù)據(jù)表空間。每個數(shù)據(jù)庫都應(yīng)該有一個用戶表空間,以便在創(chuàng)建用戶時將其分配給用戶。2.1.1內(nèi)部結(jié)構(gòu)2.表(TABLE)表是數(shù)據(jù)庫中存放用戶數(shù)據(jù)的對象。它包含一組固定的列。表中的列描述該表所跟蹤的實體的屬性,每個列都有一個名字和若干個屬性。表結(jié)構(gòu)的一個樣例如圖2.1所示。2.1.1內(nèi)部結(jié)構(gòu)3.約束條件(CONSTRAINT)(1)主鍵(PRIMARYKEY)。主鍵是表中的一列或多個列。為表定義主鍵有如下幾個作用:主鍵包含的列不能輸入重復(fù)的值,以此來保證一個表的所有行的唯一性;主鍵也不允許定義此約束的列為NULL值;主鍵在定義此約束的列中創(chuàng)建了唯一性的索引,利用這個索引可更快地檢索表中的行。(2)默認(DEFAULT)約束條件。在表中插入一行數(shù)據(jù)但沒有為列指定值時生成一個在定義表時預(yù)先指定的值。(3)檢查(CHECK)約束條件。檢查約束條件確保指定列中的值符合一定的條件。CHECK列約束條件不能引用一個獨立表。非空值約束條件被數(shù)據(jù)庫看做一個CHECK約束條件。(4)唯一性(UNIQUE)約束條件。唯一性約束條件用于保證應(yīng)具有唯一性而又不是主鍵的一部分的那些列的唯一性。(5)外鍵(FOREIGNKEY)約束條件。外鍵約束條件規(guī)定表間的關(guān)系性質(zhì)。一個外鍵使一個表的一列或多列與已定義為主鍵的表中的一批相同的列相關(guān)聯(lián)。當在已定義主鍵約束的表中更新列值時,其他表中定義有外鍵約束的列會被自動更新。2.1.1內(nèi)部結(jié)構(gòu)4.分區(qū)(PARTITION)在非常大的數(shù)據(jù)庫中,可以通過把一個大表的數(shù)據(jù)分成多個小表來簡化數(shù)據(jù)庫的管理,這些小表稱做分區(qū)。除了對表分區(qū)外,還可以對索引進行分區(qū)。分區(qū)不僅簡化了數(shù)據(jù)庫的管理還改善了其應(yīng)用性能。在Oracle中,能夠細分分區(qū),創(chuàng)建子分區(qū)。例如,可以根據(jù)一組值分割一個表,然后再根據(jù)另一種分割方法分割分區(qū)。5.索引(INDEX)在關(guān)系數(shù)據(jù)庫表中,一個行數(shù)據(jù)的物理位置無關(guān)緊要。為了能夠找到數(shù)據(jù),表中的每一行都用一個RowID來標識。RowID告訴數(shù)據(jù)庫這一行的準確位置,包括所在的文件、該文件中的塊和該塊中行地址。索引是幫助用戶在表中快速地找到記錄的數(shù)據(jù)庫結(jié)構(gòu)。它既可以提高數(shù)據(jù)庫性能,又能夠保證列值的唯一性。當CREATETABLE命令中規(guī)定有UNIQUE或PRIMARYKEY約束條件子句時,Oracle就會自動創(chuàng)建一個索引。也可以通過CREATEINDEX命令來手工創(chuàng)建自己的索引。2.1.1內(nèi)部結(jié)構(gòu)6.用戶(USER)用戶賬號雖然不是數(shù)據(jù)庫中的一個物理結(jié)構(gòu),但它與數(shù)據(jù)庫中的對象有著重要的關(guān)系,這是因為用戶擁有數(shù)據(jù)庫的對象。例如,用戶SYS擁有數(shù)據(jù)字典表,這些表中存儲了數(shù)據(jù)庫中其他對象的所有信息;用戶SYSTEM擁有訪問數(shù)據(jù)字典表的視圖,這些視圖供數(shù)據(jù)庫其他用戶使用。為數(shù)據(jù)庫創(chuàng)建對象(例如表)必須在用戶賬號下進行??梢詫γ恳粋€用戶賬號進行自定義,以便將一個特定的表空間作為它的默認表空間。7.方案(SCHEMA)用戶賬號擁有的對象集稱為用戶的方案(SCHEMA),可以創(chuàng)建不能注冊到數(shù)據(jù)庫的用戶賬號。這樣的用戶賬號提供一種方案,這種方案可以用來保存一組其他用戶方案分開的數(shù)據(jù)庫對象。8.同義詞為了給不同的用戶使用數(shù)據(jù)庫對象時提供一個簡單的、唯一標識數(shù)據(jù)庫對象的名稱,可以為數(shù)據(jù)庫對象創(chuàng)建同義詞。同義詞有公用同義詞和私有同義詞兩種。2.1.1內(nèi)部結(jié)構(gòu)9.權(quán)限及角色(ROLE)為了訪問其他賬號所有的對象,必須首先被授予訪問這個對象的權(quán)限。權(quán)限可以授予某個用戶或PUBLIC,PUBLIC把權(quán)限授予數(shù)據(jù)庫中的全體用戶??梢詣?chuàng)建角色即權(quán)限組來簡化權(quán)限的管理??梢园岩恍?quán)限授予一個角色,而這個角色又可以被授予多個用戶。在應(yīng)用程序中角色可以被動態(tài)地啟用或禁用。10.段(SEGMENT)、盤區(qū)(EXTENT)和數(shù)據(jù)塊(DATABLOCK)依照不同的數(shù)據(jù)處理性質(zhì),可能需要在數(shù)據(jù)表空間內(nèi)劃分出不同區(qū)域,以存放不同數(shù)據(jù),將這些區(qū)域稱之為“段”(SEGMENT)。例如,存放數(shù)據(jù)的區(qū)域稱為“數(shù)據(jù)區(qū)段”、存放索引的區(qū)域稱為“索引區(qū)段”。2.1.1內(nèi)部結(jié)構(gòu)數(shù)據(jù)塊是最小的儲存單元,Oracle數(shù)據(jù)庫是操作系統(tǒng)塊的倍數(shù)。圖2.2說明了段、盤區(qū)和數(shù)據(jù)塊之間的關(guān)系。2.1.2外部結(jié)構(gòu)1.數(shù)據(jù)文件(DATAFILE)每一個Oracle數(shù)據(jù)庫都有一個或多個數(shù)據(jù)文件,而一個數(shù)據(jù)文件只能屬于一個表空間。數(shù)據(jù)文件創(chuàng)建后可改變大小,創(chuàng)建新的表空間需要創(chuàng)建新的數(shù)據(jù)文件。數(shù)據(jù)文件一旦加入到表空間,就不能從這個表空間中移走,也不能和其他表空間發(fā)生聯(lián)系。如果數(shù)據(jù)庫對象存儲在多個表空間中,可以通過把它們各自的數(shù)據(jù)文件存放在不同的磁盤上來對其進行物理分割。數(shù)據(jù)庫、表空間和數(shù)據(jù)文件之間的關(guān)系如圖2.3所示。2.1.2外部結(jié)構(gòu)2.重做日志文件(REDOLOGFILES)除了數(shù)據(jù)文件外,最重要的Oracle數(shù)據(jù)庫實體檔案就是重做日志文件(RedoLogFiles)。Oracle保存所有數(shù)據(jù)庫事務(wù)的日志。這些事務(wù)被記錄在聯(lián)機重做日志文件(OnlineRedoLogFile)中。當數(shù)據(jù)庫中的數(shù)據(jù)遭到破壞時,可以用這些日志來恢復(fù)數(shù)據(jù)庫。一個數(shù)據(jù)庫至少需要兩個重做日志文件。Oracle以循環(huán)方式向重做日志文件寫入。第一個日志被填滿后,就向第二個日志文件寫入,然后依次類推。當所有日志文件都被寫滿時,就又回到第一個日志文件,用新事務(wù)的數(shù)據(jù)對其進行重寫。3.控制文件(CONTROLFILES)每個Oracle數(shù)據(jù)庫都有一個控制文件,用以記錄與描述數(shù)據(jù)庫的外部結(jié)構(gòu)。它們包括:(1)Oracle數(shù)據(jù)庫名稱與建立時間;(2)數(shù)據(jù)文件與重置日志文件名稱及其所在位置;(3)日志記錄序列碼(logsequencenumber)。2.1.3實例數(shù)據(jù)庫實例(instance)也稱作服務(wù)器(server),是指用來訪問數(shù)據(jù)庫文件集的存儲結(jié)構(gòu)(系統(tǒng)全局區(qū),SystemGlobalArea,簡稱SGA)及后臺進程的集合。一個數(shù)據(jù)庫可以被多個實例訪問,這是Oracle的并行服務(wù)器選項。實例與數(shù)據(jù)庫之間的關(guān)系如圖2.4所示。2.1.3實例1.系統(tǒng)全局區(qū)當激活Oracle數(shù)據(jù)庫時,系統(tǒng)會先在內(nèi)存內(nèi)規(guī)劃一個固定區(qū)域,用來存儲每位使用者所需存取的數(shù)據(jù)以及Oracle運作時必備的系統(tǒng)信息。這個區(qū)域就稱為系統(tǒng)全局區(qū)(SGA)。SGA又包含數(shù)個重要區(qū)域,分別是數(shù)據(jù)塊緩存區(qū)(DataBlockBufferCache)、字典緩存區(qū)(DictionaryCache)、重做日志緩沖區(qū)(RedoLogBuffer)和共享池(SharedSQLPool)。圖2.5給出了SGA各重要區(qū)域之間的關(guān)系。(1)數(shù)據(jù)塊緩存區(qū)。(2)字典緩存區(qū)。(3)重做日志緩沖區(qū)。(4)SQL共享池。2.1.3實例2.后臺進程數(shù)據(jù)庫的物理結(jié)構(gòu)和存儲結(jié)構(gòu)之間的關(guān)系是由后臺進程來維持的。數(shù)據(jù)庫擁有多個后臺進程,其數(shù)量取決于數(shù)據(jù)庫的配置。這些進程由數(shù)據(jù)庫管理,它們只需要進行很少的管理。每個進程在數(shù)據(jù)庫中執(zhí)行不同的任務(wù)。圖2.6顯示了后臺進程在數(shù)據(jù)庫外部結(jié)構(gòu)、SGA中作用和地位。下面介紹幾個常用的后臺進程。(1)DBWR(數(shù)據(jù)庫寫入進程)。(2)LGWR(日志寫入進程)。(3)SMON(系統(tǒng)監(jiān)控進程)。(4)PMON(進程監(jiān)控進程)。(5)CKPT(檢查點進程)。(6)RECO(恢復(fù)進程)。(7)ARCH(歸檔進程)。(8)LCKn(鎖進程)。(9)Dnnn(調(diào)度進程)。2.2界面方式創(chuàng)建數(shù)據(jù)庫2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除【例2.1】使用DBCA創(chuàng)建學(xué)生成績管理數(shù)據(jù)庫XSCJ。由于本書在安裝Oracle服務(wù)器時已經(jīng)創(chuàng)建了一個數(shù)據(jù)庫XSCJ,所以為了演示如何創(chuàng)建數(shù)據(jù)庫XSCJ,這里要先將原來的XSCJ數(shù)據(jù)庫刪除,刪除數(shù)據(jù)庫也使用DBCA,步驟如下。(1)單擊“開始”→“所有程序”→“Oracle-OraDB11g_home1”→“配置和移植工具”→“DatabaseConfigurationAssistant”,啟動DBCA,將DBCA激活并初始化,如圖2.7所示。初始化完成后自動進入“歡迎”窗口,如圖2.8所示。

2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(2)單擊“下一步”按鈕進入“操作”窗口,用戶可以選擇要進行的操作,這里選擇“刪除數(shù)據(jù)庫”選項,如圖2.9所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(3)單擊“下一步”按鈕進入“數(shù)據(jù)庫”窗口,“數(shù)據(jù)庫”欄將顯示Oracle服務(wù)器中的所有數(shù)據(jù)庫,選擇“XSCJ”數(shù)據(jù)庫,如圖2.10所示,單擊“完成”按鈕,彈出確認對話框,單擊“是”按鈕。之后會顯示正在刪除數(shù)據(jù)庫的過程,如圖2.11所示,刪除完成后在彈出的提示框中單擊“是”按鈕完成刪除工作。圖2.10“數(shù)據(jù)庫”窗口

圖2.11刪除數(shù)據(jù)庫2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除接下來,使用DBCA創(chuàng)建XSCJ數(shù)據(jù)庫的主要步驟如下。(1)啟動DBCA,進入“操作”窗口,選擇“創(chuàng)建數(shù)據(jù)庫”選項,如圖2.12所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(2)單擊“下一步”按鈕進入“數(shù)據(jù)庫模板”窗口,選擇相應(yīng)選項后單擊“顯示詳細資料”按鈕可以查看該數(shù)據(jù)庫模板的各種信息。這里選擇“一般用途或事務(wù)處理”選項,如圖2.13所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(3)單擊“下一步”按鈕進入“數(shù)據(jù)庫標識”窗口,輸入“全局數(shù)據(jù)庫名”和“SID”,如圖2.14所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(4)單擊“下一步”按鈕進入“管理選項”窗口,可以選擇配置EnterpriseManager企業(yè)管理器或者配置DatabaseControl管理數(shù)據(jù)庫,這里保持默認設(shè)置,如圖2.15所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(5)單擊“下一步”按鈕進入“數(shù)據(jù)庫身份證明”窗口,這里將所有賬戶設(shè)置為同一管理口令,如圖2.16所示。單擊“下一步”按鈕進入“存儲選項”窗口,使用“文件系統(tǒng)”進行數(shù)據(jù)庫的存儲,如圖2.17所示。圖2.16“數(shù)據(jù)庫身份證明”窗口圖2.17“存儲選項”窗口2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(6)單擊“下一步”按鈕進入“數(shù)據(jù)庫文件所在位置”窗口,如圖2.18所示。為了提高系統(tǒng)的性能,建議將數(shù)據(jù)文件、控制文件和日志文件存放在不同的路徑。這里選擇“使用模板中的數(shù)據(jù)庫文件位置”選項。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(7)單擊“下一步”按鈕進入“恢復(fù)配置”窗口,如圖2.19所示。“指定快速懨復(fù)區(qū)”可以用于恢復(fù)數(shù)據(jù)庫數(shù)據(jù),以免系統(tǒng)發(fā)生故障時丟失數(shù)據(jù);選中“啟用歸檔”后數(shù)據(jù)庫將歸檔其重做日志。這里不選擇歸檔,按照默認設(shè)置單擊“下一步”按鈕。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(8)在“數(shù)據(jù)庫內(nèi)容”窗口中選擇“沒有要運行的腳本”選項,如圖2.20所示。單擊“下一步”按鈕進入“初始化參數(shù)”窗口,在該窗口中可以設(shè)置數(shù)據(jù)庫的各項信息。這里保持默認設(shè)置,如圖2.21所示。圖2.20“數(shù)據(jù)庫內(nèi)容”窗口圖2.21“初始化參數(shù)”窗口2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(9)單擊“下一步”按鈕進入“安全設(shè)置”窗口,這里選擇“保留增強的11g默認安全設(shè)置(建議)”選項。單擊“下一步”按鈕進入“自動維護任務(wù)”窗口,選擇“啟用自動維護任務(wù)”選項后,設(shè)置自動管理維護任務(wù),如圖2.22所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(10)單擊“下一步”按鈕進入“數(shù)據(jù)庫存儲”窗口,在該窗口中可以指定數(shù)據(jù)庫的存儲參數(shù),數(shù)據(jù)庫文件以樹列表和概要視圖的形式顯示,并允許更改這些對象。這里保持默認設(shè)置,如圖2.23所示。2.2.1數(shù)據(jù)庫的創(chuàng)建與刪除(11)單擊“下一步”按鈕,進入“創(chuàng)建選項”窗口,選擇“創(chuàng)建數(shù)據(jù)庫”選項,如圖2.24所示,單擊“完成”按鈕,之后會彈出確認創(chuàng)建的對話框,單擊“確定”按鈕開始創(chuàng)建數(shù)據(jù)庫。2.2.2數(shù)據(jù)庫的修改在數(shù)據(jù)庫創(chuàng)建后,數(shù)據(jù)文件和日志文件名一般就不再改變了。對已存在的數(shù)據(jù)庫可以進行的修改主要有以下幾個方面。

增加或刪除數(shù)據(jù)文件。

改變數(shù)據(jù)文件的大小和增長方式。

改變?nèi)罩疚募拇笮『驮鲩L方式。2.2.2數(shù)據(jù)庫的修改在“開始”菜單中啟動XSCJ數(shù)據(jù)庫的OEM,使用system用戶登錄,顯示如圖2.25所示的主目錄。Oracle企業(yè)管理的“主目錄”界面顯示預(yù)警以及信息的幾個類別。每隔60秒實時收集一次數(shù)據(jù)?!爸髂夸洝苯缑骘@示信息類別包括一般信息、主機CPU、活動會話數(shù)、SQL響應(yīng)時間、診斷概要、空間概要、高可用性和作業(yè)活動。2.2.2數(shù)據(jù)庫的修改(1)改變數(shù)據(jù)文件的大小和增長方式。在圖2.25所示的界面中,單擊“服務(wù)器”選項頁面,出現(xiàn)如圖2.26所示的管理頁面,在“存儲”類別中選擇“數(shù)據(jù)文件”,進入如圖2.27所示的“數(shù)據(jù)文件”頁面,直接選擇或通過搜索功能查找要修改的數(shù)據(jù)文件,例如,數(shù)據(jù)庫中的用戶對象(表、視圖、過程等)都存放在USERS表空間中。2.2.2數(shù)據(jù)庫的修改【例2.2】將XSCJ數(shù)據(jù)庫的users01.dbf的最大文件大小改為無限制。每個表空間由一個或多個文件組成,這些文件叫數(shù)據(jù)文件(datafile)。創(chuàng)建新的表空間需要創(chuàng)建新的數(shù)據(jù)文件。修改users01數(shù)據(jù)文件的步驟如下。在圖2.27所示的頁面中,選中“USERS01.DBF”文件的單選按鈕,單擊“編輯”按鈕,進入數(shù)據(jù)文件USERS01.DBF的編輯界面。2.2.2數(shù)據(jù)庫的修改在“存儲”類別中“最大文件大小”選項選擇“無限制”單選按鈕,如圖2.28所示,然后單擊“應(yīng)用”按鈕,保存設(shè)置。2.2.2數(shù)據(jù)庫的修改(2)增加數(shù)據(jù)文件。當原有數(shù)據(jù)庫的存儲空間不夠時,除了可以采用擴大原有數(shù)據(jù)文件的存儲量的方法之外,還可以增加新的數(shù)據(jù)文件?;蛘邚南到y(tǒng)管理的需求出發(fā),采用多個數(shù)據(jù)文件來存儲數(shù)據(jù),以避免數(shù)據(jù)文件過大?!纠?.3】在XSCJ數(shù)據(jù)庫增加數(shù)據(jù)文件users02,其屬性均取系統(tǒng)默認值。①在“數(shù)據(jù)庫文件”項中增加數(shù)據(jù)文件。在圖2.27所示的界面中單擊“創(chuàng)建”按鈕,進入“創(chuàng)建數(shù)據(jù)文件”界面。首先在“文件名”文本框輸入數(shù)據(jù)文件名稱users02.dbf,然后為表新增的數(shù)據(jù)文件選擇表空間。單擊“手電筒”形狀的圖標,出現(xiàn)表空間選擇界面,選擇“USERS”單選按鈕,如圖2.29所示,單擊“選擇”按鈕,返回到“創(chuàng)建數(shù)據(jù)文件”頁面,為新增數(shù)據(jù)文件選擇了USERS表空間。2.2.2數(shù)據(jù)庫的修改勾選數(shù)據(jù)文件的自動擴展屬性并設(shè)置增量大小為1MB,設(shè)置最大文件大小為“無限制”,如圖2.30所示,單擊“確定”按鈕,系統(tǒng)執(zhí)行創(chuàng)建工作。創(chuàng)建完成后,系統(tǒng)返回到如圖2.27所示界面,在界面上方出現(xiàn)“確認:已成功創(chuàng)建對象”的提示信息并在“結(jié)果”欄最后會出現(xiàn)新增的數(shù)據(jù)文件。2.2.2數(shù)據(jù)庫的修改②在相應(yīng)的表空間中增加數(shù)據(jù)文件。在如圖2.26所示的“服務(wù)器”選項頁面中,單擊“表空間”,進入“表空間”頁面,如圖2.31所示。2.3命令方式創(chuàng)建數(shù)據(jù)庫2.3.1創(chuàng)建數(shù)據(jù)庫(1)評估數(shù)據(jù)表與索引的存放位置,盡量預(yù)估其所需空間。(2)規(guī)劃操作系統(tǒng)下數(shù)據(jù)庫實體文件的存放方式,因為良好的文件配置將大幅改善數(shù)據(jù)存取效率。(3)確定全局數(shù)據(jù)庫名稱。(4)選定適當?shù)臄?shù)據(jù)庫字符集。(5)選定數(shù)據(jù)塊大小。設(shè)定DB_BLOCK_SIZE參數(shù),除了SYSTEM表空間,其他數(shù)據(jù)表空間也可以遵循標準數(shù)據(jù)塊的設(shè)定。(6)熟悉Oracle數(shù)據(jù)庫的激活/關(guān)閉方式和與其搭配的各種選項。(7)確認物理內(nèi)存是否足以激活Oracle11g。(8)確認Oracle服務(wù)器的磁盤空間是否足以創(chuàng)建新數(shù)據(jù)庫。2.3.1創(chuàng)建數(shù)據(jù)庫1.設(shè)定實例標識符一般情況下,每個Oracle數(shù)據(jù)庫都必須對應(yīng)一個數(shù)據(jù)庫實例。所以在建立數(shù)據(jù)庫之前,必須先指定數(shù)據(jù)庫實例的系統(tǒng)標識符,此系統(tǒng)標識符就是俗稱的SID。SID可用以識別不同的Oracle數(shù)據(jù)庫,因此SID名稱必須是唯一的,可經(jīng)由操作系統(tǒng)的環(huán)境變量ORACLE_SID設(shè)定。在如圖2.32所示的“命令提示符”界面中,使用如下命令設(shè)定SID:SETORACLE_SID=mydb2.3.1創(chuàng)建數(shù)據(jù)庫2.設(shè)定數(shù)據(jù)庫管理員的驗證方法為了創(chuàng)建數(shù)據(jù)庫,必須經(jīng)過數(shù)據(jù)庫的驗證手續(xù),且被賦予適當系統(tǒng)權(quán)限后才可以建立Oracle數(shù)據(jù)庫。可以使用密碼文件或操作系統(tǒng)的驗證方法。下面給出的是密碼文件驗證方法。orapwdfile=D:\oracle\oradata\DATABASE\PWDmydb.oraPassword=123456entries=52.3.1創(chuàng)建數(shù)據(jù)庫3.創(chuàng)建初始化參數(shù)以下是創(chuàng)建新數(shù)據(jù)庫之前必須新增或編輯的初始化參數(shù)。

全局數(shù)據(jù)庫名稱。

控制文件名稱與路徑。

數(shù)據(jù)塊大小。

影響SGA容量的初始化參數(shù)。

設(shè)定處理程序最大數(shù)目。

設(shè)定空間撤銷(Undo)管理方法。(1)設(shè)定全局數(shù)據(jù)庫名稱。(2)設(shè)置控制文件。(3)設(shè)定數(shù)據(jù)塊大小。(4)配置影響SAG容量的初始化參數(shù)。(5)設(shè)定處理進程最大數(shù)量。(6)設(shè)定空間撤銷管理方法?!纠?.4】創(chuàng)建數(shù)據(jù)庫mydb的初始化參數(shù)文件initmydb.ora。初始化參數(shù)文件內(nèi)容如下所示。2.3.1創(chuàng)建數(shù)據(jù)庫4.啟動SQL*Plus并以SYSDBA連接到Oracle實例sqlplus/nologconnectsystem/123456assysdba5.啟動實例在沒有裝載數(shù)據(jù)庫情況下啟動實例,通常只有在數(shù)據(jù)庫創(chuàng)建期間或在數(shù)據(jù)庫上實施維護操作時才會這么做。使用帶有NOMOUNT選項的STARTUP命令即可實現(xiàn)。STARTUPNOMOUNTpfile="D:\app\tao\mydb\pfile\initmydb.ora"此時,還沒有數(shù)據(jù)庫。在準備創(chuàng)建新數(shù)據(jù)庫的過程中,僅僅創(chuàng)建了系統(tǒng)全局區(qū)(SGA),并且后臺進程才剛開始。6.創(chuàng)建初始化參數(shù)在Oracle中創(chuàng)建數(shù)據(jù)庫時,需使用CREATEDATABASE語句,創(chuàng)建前要確保用戶具有創(chuàng)建數(shù)據(jù)庫的權(quán)限。語法格式如下。2.3.1創(chuàng)建數(shù)據(jù)庫說明:在對語法格式進行解釋之前,先介紹本書的PL/SQL語法格式中使用的約定。表2.1列出了這些約定,并進行了說明。這些約定在本書中介紹PL/SQL語法格式時都適用。約

定用

途UPPERCASE(大寫)PL/SQL關(guān)鍵字|分隔括號或大括號中的語法項。只能選擇其中一項[]可選語法項。不要輸入方括號{}必選語法項。不要輸入大括號[,...n]指示前面的項可以重復(fù)n次。每一項由逗號分隔[...n]指示前面的項可以重復(fù)n次。每一項由空格分隔[;]可選的Transact-SQL語句終止符。不要輸入方括號<label>::=語法塊的名稱。此約定用于對可在語句中的多個位置使用的過長語法段或語法單元進行分組和標記??墒褂玫恼Z法塊的每個位置由括在尖括號內(nèi)的標簽指示:<label>表2.1本書PL/SQL語法的約定和說明2.3.1創(chuàng)建數(shù)據(jù)庫【例2.5】

使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫mydb。CREATEDATABASEmydb MAXINSTANCES1 MAXDATAFILES100 DATAFILE'D:\app\tao\oradata\mydb\system01.dbf' SIZE500MAUTOEXTENDONNEXT100MMAXSIZEUNLIMITED UNDOTABLESPACEUNDOTBSDATAFILE 'D:\app\tao\oradata\mydb\undotbs01.dbf' SIZE150MREUSEAUTOEXTENDONNEXT50MMAXSIZEUNLIMITED CHARACTERSETZHS16GBK NATIONALCHARACTERSETAL16UTF16 LOGFILE'D:\app\tao\oradata\mydb\redo01.log'SIZE100M, 'D:\app\tao\oradata\mydb\redo02.log'SIZE100M, 'D:\app\tao\oradata\mydb\redo03.log'SIZE100M MAXLOGHISTORY1 MAXLOGFILES5 MAXLOGMEMBERS52.3.1創(chuàng)建數(shù)據(jù)庫上面創(chuàng)建的數(shù)據(jù)庫具有以下主要特點。①數(shù)據(jù)庫名稱為mydb,全局數(shù)據(jù)庫名稱也為mydb。②設(shè)置MAXINSTANCES參數(shù)只能有一個實例可以裝載和打開數(shù)據(jù)庫。③DATAFILE子句設(shè)定該數(shù)據(jù)庫SYSTEM表空間所對應(yīng)的操作系統(tǒng)文件為D:\oracle\oradata\mydb\system01.dbf。假如該文件已事先存在,將被覆蓋。④UNDO_TABLESPACE子句創(chuàng)建并命名撤銷表空間UNDOTBS,用于存儲撤銷記錄。⑤ZHS16GBK為數(shù)據(jù)庫存放數(shù)據(jù)的字符集,它支持中文。⑥新數(shù)據(jù)庫擁有三個重做日志文件,分別在LOGFILE子句中設(shè)定。MAXLOGHISTORY、MAXLOGFILES和MAXLOGMEMBERS選項為重做日志文件的相關(guān)設(shè)定。⑦新數(shù)據(jù)庫的時區(qū)與操作系統(tǒng)的時區(qū)相同。2.3.2修改數(shù)據(jù)庫數(shù)據(jù)庫創(chuàng)建之后,可以使用ALTERDATABASE語句來修改數(shù)據(jù)庫的某些設(shè)置。語法格式如下。ALTERDATABASEdatabase_name |[ARCHIVELOG|NOARCHIVELOG] |[NO]FORCELOGGING |RENAMEFILE'filename'[,…n]TO're_filename'[,…n] |CREATEDATAFILE'data_filename' [AS{'filename'[SIZEinteger[K∣M|G|T]][REUSE]][,…n]}|NEW] |DATAFILE'filename'{ONLINE∣OFFLINE[FORDROP]∣RESIZEinteger[K∣M|G|T] |ENDBACKUP∣AUTOEXTEND{OFF∣ON[NEXTinteger[K|M]] [MAXSIZEUMLIMITED∣integer[K∣M]]]}} |ADDLOGFILE'filename'[SIZEinteger[K∣M|G|T]][REUSE]][,…n] |DROPLOGFILE'filename' |…;2.3.2修改數(shù)據(jù)庫【例2.6】數(shù)據(jù)庫的歸檔模式和數(shù)據(jù)文件。使上面創(chuàng)建的數(shù)據(jù)庫mydb切換到歸檔模式。ALTERDATABASEmydb ARCHIVELOG;創(chuàng)建新的數(shù)據(jù)文件以代替原來的數(shù)據(jù)文件。ALTERDATABASEmydb CREATEDATAFILE'users'AS'D:\app\tao\oradata\mydb\users01.dbf' SIZE50MREUSEAUTOEXTENDONNEXT20MMAXSIZE500M;2.3.2修改數(shù)據(jù)庫【例2.7】使用ALTERDATABASE命令來手工擴展users01數(shù)據(jù)文件。ALTERDATABASEmydb DATAFILE'D:\app\tao\oradata\mydb\users01.dbf'RESIZE200M;在執(zhí)行了上例所示的ALTERDATABASE命令之后,指定的文件users01被重新設(shè)定為200MB?!纠?.8】使用ALTERDATABASE命令修改XSCJ的字符集。ALTERDATABASEXSCJ CHARACTERSETSIMPLIFIEDCHINESE_CHINA.ZHS16GBK;2.3.3刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫使用DROPDATABASE命令。語法格式:DROPDATABASEdatabase_name;其中database_name是要刪除的數(shù)據(jù)庫名?!纠?.9】刪除數(shù)據(jù)庫mydb。DROPDATABASEmydb;Inthisandthefollowingchapters,wewilllookathowtodesignadatabasethatcouldbeimplementedinarelationaldatabaseproduct(e.g.,MySQL,MicrosoftAccess,SQLServer,Oracle,etc.).RepresentingtheModelWehavegonetoagreatdealoftroubletocaptureasmuchdetailaspossibleinthedatamodel.Muchofthisdetailcanberepresentedandenforcedbystandardtechniquesbuiltintorelationaldatabasemanagementsoftware.Agoodmodel,implementedusingthestandardtechniques,allowsustocapturemanyoftheconstraintsimpliedbytherelationshipsbetweenclasseswithoutrecoursetoprogrammingorcomplexinterfacedesign.Inthischapter,Iwillshowyouhowmanyoftheaspectsofthedatamodelcanbecapturedbystandarddatabasefunctionality.Togiveyouanideaofwhatiscomingup,IhavesummarizedthetechniquesinTable7-1.Table7-1.TechniquestoRepresentAspectsoftheDataModelFeatureinModelTechniqueUsedinRelationalDatabaseClass Addatablewithaprimarykey.Attribute Addafieldwithanappropriatedatatypetothetable.Object Addarowofdatatothetable.1–Manyrelationship Useaforeignkey,i.e.,areferencetoa particularrow(orobject)inthetableatthe1 endoftherelationship.Many–Manyrelationship Addanewtablewithtwoforeignkeys.Optionalityof1atthe1endofarelationship Makethevalueofthe foreignkeyrequired.Parentandchildclasses(inheritance) Addatablefortheparentclass.Add tablesforeachchildclasswitha primarykeythatisalsoaforeignkey referencingtheparenttable(notan exactrepresentationbutOK).AllofthetechniquesdescribedinTable7-1canbecarriedoutinmostdatabasemanagementproductsaspartofthespecificationofthetables.Morecomplexconstraintsmayrequiresomeadditionalproceduresorcheckingatdatainputtime,butwithagoodmodelthiscanbeminimized.Byusingthebuilt–infacilitiesofthedatabaseproduct,thetimerequiredforimplementation,maintenance,andexpansionoftheapplicationisgreatlyreduced.SettingparametersinthepfileandspfileWhetheryouusePFILESorSPFILESdetermineshowyousetyourparameters.ThisnextsectionexplainsthecommonparametersinOracle11gandhowthey’reconfiguredinthefilesthemselves.Withanewdatabase,youalwaysstartwithaPFILE.IfyouendupwantingtouseanSPFILE,youcreateitfromthePFILE(shownattheendofthechapter).ThefirstthingyouneedtodoisfindyourPFILE.Forwhateverreason,despitealltheothersimilarities,Linux/UNIXandWindowsstoreitindifferentlocations.FindyourPFILEonWindows,whereORACLE_SIDisyourinstancename:ORACLE_HOME\database\initORACLE_SID.oraFindyourPFILEonLinux/UNIX,whereORACLE_SIDisyourinstancename:ORACLE_HOME/dbs/initORACLE_SID.oraStartingthedatabaseYoudon’tactuallystartadatabaseperse;youstarttheinstance.Adatabaseisdefinedastheactualdata,index,redo,temp,andcontrolfilesthatexistonthefilessystem.Theinstanceconsistsoftheprocesses(PMON,SMON,DBWR,LGWR,andothers)andtheSGA(memorypool)thataccess

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論