《Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗》實驗指導(dǎo)書_第1頁
《Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗》實驗指導(dǎo)書_第2頁
《Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗》實驗指導(dǎo)書_第3頁
《Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗》實驗指導(dǎo)書_第4頁
《Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗》實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《數(shù)據(jù)庫原理及應(yīng)用》Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計實驗指導(dǎo)書陸鑫電子科技大學(xué)信息與軟件工程學(xué)院2016年5月

目錄第一部分:預(yù)備知識 4第一章數(shù)據(jù)庫系統(tǒng)分析與設(shè)計建模 41.1概念數(shù)據(jù)模型概述 41.2實體、屬性及標識符的定義 41.3實體、屬性及標識符的表達 51.4概念數(shù)據(jù)模型創(chuàng)建 51.5定義屬性的標準檢查約束 91.6如何定義實體的主、次標識符 111.8聯(lián)系的定義及使用 131.7定義數(shù)據(jù)項 19第二章Oracle數(shù)據(jù)庫介紹 212.1OracleDatabase12c數(shù)據(jù)庫簡介 222.2OracleDatabase12c數(shù)據(jù)庫基本體系結(jié)構(gòu) 252.3SQLPlus、SQLDeveloper與Web版企業(yè)管理器簡介 30第二部分:上機實驗 34實驗一在線圖書銷售系統(tǒng)CDM/LDM數(shù)據(jù)模型設(shè)計 341.實驗?zāi)康?342.實驗內(nèi)容與要求 343.實驗開設(shè)方式 344.實驗環(huán)境 355.實驗步驟 356.實驗過程數(shù)據(jù)及結(jié)果分析 357.實驗報告要求 41實驗二在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型設(shè)計及數(shù)據(jù)庫實現(xiàn) 421.實驗?zāi)康?422.實驗內(nèi)容與要求 423.實驗開設(shè)方式 424.實驗環(huán)境 425.實驗步驟 436.實驗過程數(shù)據(jù)及結(jié)果分析 437.實驗報告要求 47實驗三在線圖書銷售系統(tǒng)數(shù)據(jù)庫操作 481.實驗?zāi)康?482.實驗內(nèi)容與要求 483.實驗開設(shè)方式 484.實驗環(huán)境 485.實驗步驟 496.實驗過程數(shù)據(jù)及結(jié)果分析 497.實驗報告要求 53實驗四在線圖書銷售系統(tǒng)數(shù)據(jù)庫管理 551.實驗?zāi)康?552.實驗內(nèi)容與要求 553.實驗開設(shè)方式 554.實驗環(huán)境 555.實驗步驟 566.實驗過程數(shù)據(jù)及結(jié)果分析 567.實驗報告要求 71實驗五在線圖書銷售系統(tǒng)數(shù)據(jù)庫WEB應(yīng)用訪問 721.實驗?zāi)康?722.實驗內(nèi)容與要求 723.實驗開設(shè)方式 724.實驗環(huán)境 725.實驗步驟 736.實驗過程數(shù)據(jù)及結(jié)果分析 737.實驗報告要求 83

前言隨著計算機技術(shù)與軟件工程技術(shù)的發(fā)展,Oracle數(shù)據(jù)庫技術(shù)已成為信息社會中對大量數(shù)據(jù)進行組織與管理的重要技術(shù)手段。數(shù)據(jù)庫技術(shù)是信息系統(tǒng)及軟件處理數(shù)據(jù)的基礎(chǔ)。它不僅有完整的理論基礎(chǔ),而且隨著計算機軟硬件技術(shù)的飛快發(fā)展,它的應(yīng)用也越來越廣泛。本實驗指導(dǎo)書通過一個綜合性的數(shù)據(jù)庫應(yīng)用開發(fā)實例,循序漸進地引導(dǎo)學(xué)生掌握OracleDatabase12c數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫創(chuàng)建、數(shù)據(jù)庫管理、數(shù)據(jù)庫訪問、以及數(shù)據(jù)庫應(yīng)用編程的開發(fā)技能,并通過上機實踐完成一個典型在線圖書銷售系統(tǒng)的數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)。根據(jù)實驗教學(xué)大綱,我們編排了五個實驗,每個實驗又分了七個部分內(nèi)容:實驗?zāi)康?、實驗?nèi)容與要求、實驗開設(shè)方式、實驗環(huán)境、實驗步驟、實驗報告要求、注意事項。在實驗操作之前,由教師對實驗相關(guān)技術(shù)作一定的指導(dǎo)講解,讓學(xué)生掌握實驗工作需要的技術(shù)方法,明確實驗?zāi)康暮鸵?。在實驗中,學(xué)生根據(jù)實驗要求內(nèi)容進行設(shè)計與操作實踐,完成實驗任務(wù)。在實驗結(jié)束后,學(xué)生按要求完成實驗報告。整個Oracle數(shù)據(jù)庫系統(tǒng)綜合設(shè)計上機實驗中,我們推薦采用OracleDatabase12c作為實驗工具環(huán)境,強調(diào)學(xué)生通過主流數(shù)據(jù)庫工具產(chǎn)品培養(yǎng)動手實踐能力,掌握數(shù)據(jù)庫設(shè)計、管理、維護和編程訪問方法。

第一部分:預(yù)備知識第一章數(shù)據(jù)庫系統(tǒng)分析與設(shè)計建模1.1概念數(shù)據(jù)模型概述針對數(shù)據(jù)庫系統(tǒng)開發(fā),一個很重要的工作就是建立該系統(tǒng)的數(shù)據(jù)模型。所謂數(shù)據(jù)模型是指現(xiàn)實世界中數(shù)據(jù)對象特征、數(shù)據(jù)對象關(guān)系及其約束的描述形式。數(shù)據(jù)模型一般由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束三部分組成。數(shù)據(jù)庫應(yīng)用開發(fā)需要建模的數(shù)據(jù)模型有三個層次:1)概念數(shù)據(jù)模型——面向用戶的業(yè)務(wù)數(shù)據(jù)對象及其聯(lián)系2)邏輯數(shù)據(jù)模型——面向設(shè)計者的系統(tǒng)數(shù)據(jù)對象邏輯表示及其聯(lián)系3)物理數(shù)據(jù)模型——面向開發(fā)者的系統(tǒng)數(shù)據(jù)對象存儲結(jié)構(gòu)形式概念數(shù)據(jù)模型(CDM,ConceptDataModel)也稱信息模型。該模型主要以實體-聯(lián)系(Entity-RelationShip,簡稱E-R)理論為基礎(chǔ),采用E-R模型圖來描述應(yīng)用系統(tǒng)的數(shù)據(jù)對象和數(shù)據(jù)關(guān)系,主要用于數(shù)據(jù)庫系統(tǒng)分析建模。CDM有一組嚴格定義的模型元素集合,這些模型元素精確地描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性以及完整性約束條件等,其中包括了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分。1)數(shù)據(jù)結(jié)構(gòu)表達為實體和屬性;2)數(shù)據(jù)操作表達為實體中的記錄的插入、刪除、修改、查詢等操作;3)完整性約束表達為數(shù)據(jù)的自身完整性約束(如數(shù)據(jù)類型、檢查、規(guī)則等)和數(shù)據(jù)間的參照完整性約束(如聯(lián)系、繼承聯(lián)系等)。1.2實體、屬性及標識符的定義實體(Entity),也稱為實例,對應(yīng)現(xiàn)實世界中可區(qū)別于其他對象的“事件”或“事物”。例如,學(xué)校中的每個學(xué)生,醫(yī)院中的每個手術(shù)。每個實體都有用來描述實體特征的一組性質(zhì),稱之為屬性,一個實體由若干個屬性來描述。如學(xué)生實體可由學(xué)號、姓名、性別、出生年月、所在系別、入學(xué)年份等屬性組成。實體集(EntitySet)是具體相同類型及相同性質(zhì)實體的集合。例如學(xué)校所有學(xué)生的集合可定義為“學(xué)生”實體集,“學(xué)生”實體集中的每個實體均具有學(xué)號、姓名、性別、出生年月、所在系別、入學(xué)年份等性質(zhì)。實體類型(EntityType)是實體集中每個實體所具有的共同性質(zhì)的集合,例如“患者”實體類型為:患者{門診號,姓名,性別,年齡,身份證號}。實體是實體類型的一個實例,在含義明確的情況下,實體、實體類型通?;Q使用。實體類型中的每個實體包含唯一標識它的一個或一組屬性,這些屬性稱為實體類型的標識符(Identifier),如“學(xué)號”是學(xué)生實體類型的標識符,“姓名”、“出生日期”、“信址”共同組成“公民”實體類型的標識符。有些實體類型可以有幾組屬性充當(dāng)標識符,選定其中一組屬性作為實體類型的主標識符,其他的作為次標識符。1.3實體、屬性及標識符的表達實體、屬性及標識符表示如圖1-1所示。圖1-1實體表示1.4概念數(shù)據(jù)模型創(chuàng)建1、新建概念數(shù)據(jù)模型1)選擇File-->New,彈出如圖所示對話框,選擇CDM模型(即概念數(shù)據(jù)模型)建立模型。如圖1-2所示。圖1-2新建概念數(shù)據(jù)模型2)完成概念數(shù)據(jù)模型的創(chuàng)建。對當(dāng)前的工作空間進行簡單介紹,見圖1-3所示。圖1-3模型工作空間3)選擇新增的CDM模型,右擊,在彈出的菜單中選擇“Properties”屬性項,彈出圖1-4所示對話框。在“General”標簽里可以輸入所建模型的名稱、代碼、描述、創(chuàng)建者、版本以及默認的圖表等等信息。在“Notes”標簽里可以輸入相關(guān)描述及說明信息。當(dāng)然再有更多的標簽,可以點擊"More>>"按鈕,這里就不再進行詳細解釋。圖1-4模型命名2、創(chuàng)建新實體1)在CDM的圖形窗口中,單擊工具選項版上的Entity工具,再單擊圖形窗口的空白處,在單擊的位置就出現(xiàn)一個實體符號。點擊Pointer工具或右擊鼠標,釋放Entitiy工具。如圖1-5所示。圖1-5實體圖標2)雙擊剛創(chuàng)建的實體符號,打開下列圖標窗口,在此窗口“General”標簽中可以輸入實體的名稱、代碼、描述等信息。圖1-6實體屬性框3、添加實體屬性1)在上述窗口的“Attribute”選項標簽上可以添加屬性,如圖1-7所示。圖1-7實體屬性設(shè)置窗口注意:數(shù)據(jù)項中的“添加屬性”和“重用已有數(shù)據(jù)項”這兩項功能與模型中DataItem的Uniquecode和Allowreuse選項有關(guān)。P列表示該屬性是否為主標識符;D列表示該屬性是否在圖形窗口中顯示;M列表示該屬性是否為強制的,即該列是否為空值。如果一個實體屬性為強制的,那么,這個屬性在每條記錄中都必須被賦值,不能為空。2)在上圖所示窗口中,點擊插入屬性按鈕,彈出屬性對話框,如圖1-8所示。圖1-8屬性定義1.5定義屬性的標準檢查約束標準檢查約束是一組確保屬性有效的表達式。在實體屬性的特性窗口,打開如圖1-9所示的檢查選項卡。圖1-9標準檢查約束定義在這個選項卡可以定義屬性的標準檢查約束,窗口中每項的參數(shù)的含義,如表1-1所示。表1-1約束參數(shù)參數(shù)說明Minimum屬性可接受的最小數(shù)Maximum屬性可接受的最大數(shù)Default屬性不賦值時,系統(tǒng)提供的默認值Unit單位,如公里、噸、元Format屬性的數(shù)據(jù)顯示格式Lowercase屬性的賦值全部變?yōu)樾懽帜窾ppercase屬性的賦值全部變?yōu)榇髮懽帜窩annotmodify該屬性一旦賦值不能再修改ListOfValues屬性賦值列表,除列表中的值,不能有其他的值Label屬性列表值的標簽定義屬性的附加檢查:當(dāng)Standardchecks或Rules不能滿足檢查的要求時,可以在AdditionalChecks選項卡的Server子頁上,通過SQL語句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER%幾個變量來定義Standard和Rule,如圖1-10所示圖1-10定義屬性的附加檢查%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%在StandardCheck中定義的Minimum和Maximum、Listvalues、uppervalues、lowervalues%RULES%在Rules特性窗口Expression選項卡中定義的有效性規(guī)則表達式1.6如何定義實體的主、次標識符1、標識符標識符是實體中一個或多個屬性的集合,可用來唯一標識實體中的一個實例。要強調(diào)的是,CDM中的標識符等價于PDM中的主鍵或候選鍵。每個實體都必須至少有一個標識符。如果實體只有一個標識符,則它為實體的主標識符。如果實體有多個標識符,則其中一個被指定為主標識符,其余的標識符就是次標識符了。2、定義主、次標識符1)選擇某個實體雙擊彈出實體的屬性對話框。在Identifiers選項卡上可以進行實體標識符的定義。如圖1-11所示。圖1-11標識符定義框2)選擇第一行“主標識符”,點擊屬性按鈕或雙擊第一行“主標識符”,彈出屬性對話框,如圖1-12所示。圖1-12標識符名稱定義3)選擇"Attributes"選項卡,再點擊“AddAttributes”工具,彈出如圖1-13所示窗口,選擇某個屬性作為標識符就行了。圖1-13選擇標識符1.8聯(lián)系的定義及使用1、聯(lián)系聯(lián)系(Relationship)是指實體集這間或?qū)嶓w集內(nèi)部實例之間的連接。實體之間可以通過聯(lián)系來相互關(guān)聯(lián)。與實體和實體集對應(yīng),聯(lián)系也可以分為聯(lián)系和聯(lián)系集,聯(lián)系集是實體集之間的聯(lián)系,聯(lián)系是實體之間的聯(lián)系,聯(lián)系是具有方向性的。聯(lián)系和聯(lián)系集在含義明確的情況之下均可稱為聯(lián)系。按照實體類型中實例之間的數(shù)量對應(yīng)關(guān)系,通常可將聯(lián)系分為4類,即一對一(ONETOONE)聯(lián)系、一對多(ONETOMANY)聯(lián)系、多對一(MANYTOONE)聯(lián)系和多對多聯(lián)系(MANYTOMANY)。2、建立聯(lián)系在CDM工具選項板中除了公共的工具外,還包括如圖1-18所示的其它對象產(chǎn)生工具。圖1-18關(guān)聯(lián)定義圖標在圖形窗口中創(chuàng)建兩個實體后,單擊“實體間建立聯(lián)系”工具,單擊一個實體,在按下鼠標左鍵的同時把光標拖至別一個實體上并釋放鼠標左鍵,這樣就在兩個實體間創(chuàng)建了聯(lián)系,右鍵單擊圖形窗口,釋放Relationship工具。如圖1-19所示。圖1-19實體關(guān)聯(lián)3、四種基本的聯(lián)系即一對一(ONETOONE)聯(lián)系、一對多(ONETOMANY)聯(lián)系、多對一(MANYTOONE)聯(lián)系和多對多聯(lián)系(MANYTOMANY)。如圖1-20所示。圖1-21基本關(guān)聯(lián)4、其他幾類特殊聯(lián)系除了4種基本的聯(lián)系之外,實體集與實體集之間還存在標定聯(lián)系(IdentifyRelationship)、非標定聯(lián)系(Non-IdentifyRelationShip)和遞歸聯(lián)系(RecursiveRelationship)。1)標定聯(lián)系每個實體類型都有自己的標識符,如果兩個實體集之間發(fā)生聯(lián)系,其中一個實體類型的標識符進入另一個實體類型并與該實體類型中的標識符共同組成其標識符時,這種聯(lián)系則稱為標定聯(lián)系,也叫依賴聯(lián)系。反之稱為非標定聯(lián)系,也叫非依賴聯(lián)系。注意:在非標定聯(lián)系中,一個實體集中的部分實例依賴于另一個實例集中的實例,在這種依賴聯(lián)系中,每個實體必須至少有一個標識符。而在標定聯(lián)系中,一個實體集中的全部實例完全依賴于另個實體集中的實例,在這種依賴聯(lián)系中一個實體必須至少有一個標識符,而另一個實體卻可以沒有自己的標識符。沒有標識符的實體用它所依賴的實體的標識符作為自己的標識符。換句話來理解,在標定聯(lián)系中,一個實體(選課)依賴一個實體(學(xué)生),那么(學(xué)生)實體必須至少有一個標識符,而(選課)實體可以沒有自己的標識符,沒有標標識符的實體可以用實體(學(xué)生)的標識符作為自己的標識符。圖1-22標定關(guān)聯(lián)與非標定關(guān)聯(lián)2)遞歸聯(lián)系遞歸聯(lián)系是實體集內(nèi)部實例之間的一種聯(lián)系,通常形象地稱為自反聯(lián)系。同一實體類型中不同實體集之間的聯(lián)系也稱為遞歸聯(lián)系。例如:在“職工”實體集中存在很多的職工,這些職工之間必須存在一種領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的關(guān)系。又如“學(xué)生”實體信中的實體包含“班長”子實體集與“普通學(xué)生”子實體集,這兩個子實體集之間的聯(lián)系就是一種遞歸聯(lián)系。創(chuàng)建遞歸聯(lián)系時,只需要單擊“實體間建立聯(lián)系”工具從實體的一部分拖至該實體的別一個部分即可。如圖1-23所示。圖1-23遞歸關(guān)聯(lián)5、定義聯(lián)系的特性在兩個實體間建立了聯(lián)系后,雙擊聯(lián)系線,打開聯(lián)系特性窗口,如圖1-24所示。圖1-24關(guān)聯(lián)特性6、定義聯(lián)系的角色名在聯(lián)系的兩個方向上各自包含有一個分組框,其中的參數(shù)只對這個方向起作用,RoleName為角色名,描述該方向聯(lián)系的作用,一般用一個動詞或動賓組表。如:“學(xué)生to課目”組框中應(yīng)該填寫“擁有”,而在“課目To學(xué)生”組框中填寫“屬于”。(在此只是舉例說明,可能有些用詞不太合理)。7、定義聯(lián)系的強制性Mandatory表示這個方向聯(lián)系的強制關(guān)系。選中這個復(fù)選框,則在聯(lián)系線上產(chǎn)生一個聯(lián)系線垂直的豎線。不選擇這個復(fù)選框則表示聯(lián)系這個方向上是可選的,在聯(lián)系線上產(chǎn)生一個小圓圈。8、有關(guān)聯(lián)系的基數(shù)聯(lián)系具有方向性,每個方向上都有一個基數(shù)。舉例,“系”與“學(xué)生”兩個實體之間的聯(lián)系是一對多聯(lián)系,換句話說“學(xué)生”和“系”之間的聯(lián)系是多對一聯(lián)系。而且一個學(xué)生必須屬于一個系,并且只能屬于一個系,不能屬于零個系,所以從“學(xué)生”實體至“系”實體的基數(shù)為“1,1”,從聯(lián)系的另一方向考慮,一個系可以擁有多個學(xué)生,也可以沒有任何學(xué)生,即零個學(xué)生,所以該方向聯(lián)系的基數(shù)就為“0,n”,如圖1-25所示。圖1-25多對多聯(lián)系

1.7定義數(shù)據(jù)項1、數(shù)據(jù)項數(shù)據(jù)項(DataItem)是信息存儲的最小單位,它可以附加在實體上作為實體的屬性。注意:模型中允許存在沒有附加至任何實體上的數(shù)據(jù)項。2、新建數(shù)據(jù)項1)使用“Model”>DataItems菜單,在打開的窗口中顯示已有的數(shù)據(jù)項的列表,點擊“AddaRow”按鈕,創(chuàng)建一個新數(shù)據(jù)項,如圖1-14所示。圖1-14新建屬性數(shù)據(jù)項2)當(dāng)然您可以繼續(xù)設(shè)置具體數(shù)據(jù)項的Code、DataType、Length等等信息。這里就不再詳細說明了。3、數(shù)據(jù)項的唯一性代碼選項和重用選項使用Tools>ModelOptions->ModelSettings。在DataItem組框中定義數(shù)據(jù)項的唯一性代碼選項(UniqueCode)與重用選項(AllowReuse)。如圖1-15所示。注意:如果選擇UniqueCode復(fù)選框,每個數(shù)據(jù)項在同一個命名空間有唯一的代碼,而選擇Allowreuse,一個數(shù)據(jù)項可以充當(dāng)多個實體的屬性。圖1-15屬性取值唯一約束4、在實體中添加數(shù)據(jù)項1)雙擊一個實體符號,打開該實體的屬性窗口。2)單擊Attributes選項卡,打開如圖1-16所示。圖1-17添加數(shù)據(jù)項注意:AddaDataItem與ReuseaDataItem的區(qū)別在于AddaDataItem情況下,選擇一個已經(jīng)存在的數(shù)據(jù)項,系統(tǒng)會自動復(fù)制所選擇的數(shù)據(jù)項。如果您設(shè)置了UniqueCode選項,那系統(tǒng)在復(fù)制過程中,新數(shù)據(jù)項的Code會自動生成一個唯一的號碼,否則與所選擇的數(shù)據(jù)項完全一致。ReuseaDataItem情況下,只引用新增,就是引用那些已經(jīng)存在的數(shù)據(jù)項,作為新實體的數(shù)據(jù)項。第二章Oracle數(shù)據(jù)庫介紹Oracle數(shù)據(jù)庫有4個不同的版本,它們分別是個人版、企業(yè)版、標準版和開發(fā)版。本文就Oracle數(shù)據(jù)庫的使用特點進行介紹。2.1OracleDatabase12c數(shù)據(jù)庫簡介一、OracleDatabase12c的簡介Oracle數(shù)據(jù)庫DBMS產(chǎn)品是美國甲骨文公司提供的大型企業(yè)級數(shù)據(jù)庫軟件產(chǎn)品,它是目前全球市場中使用最為廣泛的大型數(shù)據(jù)庫管理系統(tǒng)。Oracle數(shù)據(jù)庫產(chǎn)品在數(shù)據(jù)庫領(lǐng)域的集群技術(shù)、高可用性、商業(yè)智能、安全性、系統(tǒng)管理等方面都處于技術(shù)領(lǐng)先水平。甲骨文公司自1977年推出Oracle數(shù)據(jù)庫產(chǎn)品以來,先后推出多個數(shù)據(jù)庫DBMS軟件版本。目前,最新版本為OracleDatabase12c。該版本引入一種新的多租戶架構(gòu),可輕松地快速整合多個數(shù)據(jù)庫并將它們作為一個云服務(wù)加以管理。OracleDatabase12c還包括內(nèi)存中數(shù)據(jù)處理功能,可提供突破性的分析性能,其技術(shù)創(chuàng)新將數(shù)據(jù)庫處理的效率、性能、安全性和可用性提升至新的水平。二、OracleDatabase12c的特點1.自助式管理與自動化功能OracleDatabase12c具有先進的自助式管理和自動化功能,可幫助企業(yè)滿足服務(wù)等級協(xié)議的要求。例如,對于需要定期升級數(shù)據(jù)庫和操作系統(tǒng)并改變硬件和系統(tǒng)的企業(yè)來說,OracleDatabase12c的實時應(yīng)用測試組件非常適用。這一功能使Oracle數(shù)據(jù)庫Database12c成為有史以來第一個能夠幫助企業(yè)以可控和經(jīng)濟的方法迅速測試并管理IT環(huán)境變化的數(shù)據(jù)庫。此外,Database12c還將幫助客戶降低系統(tǒng)管理成本,同時提高客戶數(shù)據(jù)庫應(yīng)用的性能、可擴展性、可用性和安全性。OracleDatabase12c新的管理功能包括:自動SQL和存儲器微調(diào);新的劃分向?qū)ЫM件自動向管理員建議,如何對表和索引分區(qū)以提高性能;增強的數(shù)據(jù)庫集群性能診斷功能。另外,OracleDatabase12c還具有新的支持工作臺組件,界面向管理員呈現(xiàn)與數(shù)據(jù)庫健康有關(guān)的差錯以及如何迅速消除差錯的信息。2.更經(jīng)濟有效的管理能力OracleDatabase12c的數(shù)據(jù)防衛(wèi)組件可幫助客戶使用備用數(shù)據(jù)庫,以提高生產(chǎn)環(huán)境的性能,并保護生產(chǎn)環(huán)境免受系統(tǒng)故障和大面積災(zāi)難的影響。數(shù)據(jù)防衛(wèi)組件可以同時讀取和恢復(fù)單個備用數(shù)據(jù)庫,這種功能是業(yè)界獨一無二的。因此數(shù)據(jù)防衛(wèi)組件可用于對生產(chǎn)數(shù)據(jù)庫的報告、備份、測試和滾動升級。通過將工作量從生產(chǎn)系統(tǒng)卸載到備用系統(tǒng),數(shù)據(jù)防衛(wèi)組件還有助于提高性能。OracleDatabase12c還具有數(shù)據(jù)劃分和壓縮功能,可實現(xiàn)更經(jīng)濟的信息生命周期管理和存儲管理。Database12c以成熟的數(shù)據(jù)壓縮功能為基礎(chǔ),可在交易處理、數(shù)據(jù)倉庫和內(nèi)容管理環(huán)境中實現(xiàn)先進的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)壓縮。采用Database12c中先進的壓縮功能,所有數(shù)據(jù)都可以實現(xiàn)2至3倍甚至更高的壓縮比。3.大幅度提高信息可用性在保護數(shù)據(jù)庫應(yīng)用免受計劃停機和意外影響方面,甲骨文一直領(lǐng)先于業(yè)界。OracleDatabase12c進一步增強了這種領(lǐng)先地位,數(shù)據(jù)庫管理員現(xiàn)在可以更輕松地達到用戶的可用性預(yù)期。新的可用性功能包括:Oracle閃回事務(wù)處理,可以輕松撤銷錯誤的事務(wù)處理以及任何相關(guān)事務(wù)處理;并行備份和恢復(fù)功能,可改善非常大數(shù)據(jù)庫備份和存儲性能;熱修補功能,不必關(guān)閉數(shù)據(jù)庫就可以進行數(shù)據(jù)庫修補,提高了系統(tǒng)可用性。另外,OracleDatabase12c數(shù)據(jù)恢復(fù)顧問軟件可自動調(diào)查問題,智能地確定恢復(fù)計劃并處理多種故障情況,從而極大地縮短數(shù)據(jù)恢復(fù)所需的停機時間。4.更加快速的功能OracleDatabase12c具有在數(shù)據(jù)庫中存儲下一代大型對象的功能,這些對象包括圖像、大型文本對象及一些高級數(shù)據(jù)類型,如XML、醫(yī)療成像數(shù)據(jù)和三維對象。Oracle快速文件組件使數(shù)據(jù)庫應(yīng)用的性能完全比得上文件系統(tǒng)的性能。通過存儲更廣泛的企業(yè)信息并迅速輕松地檢索這些信息,企業(yè)可以對自己的業(yè)務(wù)了解得更深入,并更快地對業(yè)務(wù)做出調(diào)整以適應(yīng)市場變化。在OracleDatabase12c中,XMLDB的性能獲得了很大的提高。它增加了對二進制XML數(shù)據(jù)的支持,客戶可選擇適合自己特定應(yīng)用及性能需求的XML存儲選項。XMLDB還可以通過業(yè)界標準接口來操作XML數(shù)據(jù)。5.透明加密和嵌入OLAPOracle數(shù)據(jù)庫Database12c進一步增強了Oracle數(shù)據(jù)庫的安全性。它增強了透明數(shù)據(jù)加密功能,將這種功能擴展到了卷級加密之外。Oracle數(shù)據(jù)庫Database12c具有表空間加密功能,可用來加密整個表、索引和所存儲的其他數(shù)據(jù)。存儲在數(shù)據(jù)庫中的大型對象也可以加密。Oracle數(shù)據(jù)庫Database12c在數(shù)據(jù)倉庫方面也引入了創(chuàng)新。開發(fā)人員可以用業(yè)界標準SQL實現(xiàn)數(shù)據(jù)查詢,同時仍然受益于OLAP行列所具有的高性能。新的連續(xù)查詢通知組件在數(shù)據(jù)庫數(shù)據(jù)發(fā)生重要變化時,會立即通知相關(guān)的應(yīng)用軟件,不會出現(xiàn)由于不斷輪詢而加重數(shù)據(jù)庫負擔(dān)的情況。6.連接匯合和結(jié)果緩存Oracle數(shù)據(jù)庫Database12c中各項提高性能和可擴展性的功能可幫助企業(yè)維護一個高性能和高度可擴展的基礎(chǔ)設(shè)施,以向企業(yè)的用戶提供高質(zhì)量的服務(wù)。通過高速緩存和重用經(jīng)常調(diào)用的數(shù)據(jù)庫查詢的功能,Database12c的查詢結(jié)果高速緩存功能也改善了應(yīng)用的性能和可擴展性。數(shù)據(jù)庫駐留連接匯合功能通過為非多線程應(yīng)用提供連接匯合,提高了Web系統(tǒng)的可擴展性。此外,Oracle數(shù)據(jù)庫Database12c還提供多種開發(fā)工具供開發(fā)人員選擇,它提供的簡化應(yīng)用開發(fā)流程可以充分利用Oracle數(shù)據(jù)庫Database12c的關(guān)鍵功能。這些關(guān)鍵功能包括:客戶端高速緩存、提高應(yīng)用速度的二進制XML、XML處理以及文件存儲和檢索。另外,Oracle數(shù)據(jù)庫Database12c還具有新的Java實時編譯器,可以更快地執(zhí)行數(shù)據(jù)庫Java程序;為開發(fā)在Oracle平臺上運行的.NET應(yīng)用,實現(xiàn)了與VisualStudio2005的集成;與Oracle快捷應(yīng)用配合使用的Access遷移工具;SQLDeveloper可以輕松建立查詢,以快速編制SQL和PL/SQL例程代碼。三、OracleDatabase12c數(shù)據(jù)庫產(chǎn)品版本1.企業(yè)版企業(yè)版提供了有效的、可靠的、安全的數(shù)據(jù)管理功能以應(yīng)對關(guān)鍵的企業(yè)業(yè)務(wù)和在線事務(wù)處理應(yīng)用,復(fù)雜查詢的數(shù)據(jù)倉庫或者WEB2.0應(yīng)用。企業(yè)版就沒有SOCKET限制,單機或者集群都可以使用。2.標準版標準版是個空前強大,易用、性價比非常好的工作組級軟件。可以支持單機或者集群服務(wù)器,在最高容量4個處理器的單機或者總計4處理器的集群上使用。購買了標準版,就已經(jīng)內(nèi)含了Oracle的RAC而無需額外付費。3.個人版?zhèn)€人版是為個人開發(fā)部署使用,它和Oracle標準版,企業(yè)版功能上是全面兼容的。2.2OracleDatabase12c數(shù)據(jù)庫基本體系結(jié)構(gòu)Oracle數(shù)據(jù)庫包含物理結(jié)構(gòu)與邏輯存儲結(jié)構(gòu)。一、Oracle數(shù)據(jù)庫物理結(jié)構(gòu)每一個Oracle數(shù)據(jù)庫都有一個或多個物理的數(shù)據(jù)文件,數(shù)據(jù)庫信息(結(jié)構(gòu),數(shù)據(jù))都保管在這些數(shù)據(jù)文件中,并且這些文件也只Oracle才能夠解釋與維護這些存儲。Oracle數(shù)據(jù)文件具有以下一些特征:1)一個數(shù)據(jù)文件僅僅關(guān)聯(lián)一個數(shù)據(jù)庫,數(shù)據(jù)文件與數(shù)據(jù)庫之間對應(yīng)聯(lián)絡(luò)是一對一聯(lián)絡(luò),當(dāng)然反過數(shù)據(jù)庫與數(shù)據(jù)文件是一對多聯(lián)絡(luò)。2)數(shù)據(jù)文件能夠自動擴展,當(dāng)數(shù)據(jù)存儲須要更多存儲空間時,數(shù)據(jù)文件能夠自動增長,以滿足數(shù)據(jù)存儲須要。3)一個或多個數(shù)據(jù)文件組成一個邏輯單元,稱之為表空間.數(shù)據(jù)文件與表空間之間對應(yīng)聯(lián)絡(luò)也是一對一聯(lián)絡(luò),當(dāng)然反過表空間與數(shù)據(jù)文件對應(yīng)聯(lián)絡(luò)是一對多的聯(lián)絡(luò)。1.控制文件每一個Oracle數(shù)據(jù)庫都有一個控制文件。這個控制文件是Oracle能夠正常工作的前提。控制文件有三個作用:1)記載著物理硬盤上信息。2)記載Oracle數(shù)據(jù)庫自身邏輯結(jié)構(gòu)。3)起到一個全局監(jiān)管作用。當(dāng)數(shù)據(jù)庫啟動時,控制文件中記載數(shù)據(jù)文件與日志文件必需要被Oracle進程所讀取。數(shù)據(jù)庫結(jié)構(gòu)改變也隨時記載在控制文件中??刂莆募racle恢復(fù)也起著十分大作用。2.重做日志文件每個Oracle數(shù)據(jù)庫都包括至少兩組到多組重做日志文件,重做日志文件記載數(shù)據(jù)庫改變流程。這些信息主要用于數(shù)據(jù)庫恢復(fù)操作。3.歸檔日志文件由于Oracle數(shù)據(jù)庫對故障進行恢復(fù),應(yīng)根據(jù)重做日志文件進行處理,因此,需要記載這些信息,并把這些信息持久保管下來,那么保管下來的”日志”就稱之會歸檔日志。4.告警日志記載數(shù)據(jù)庫訪問過程中的告警信息,以便用戶通過告警日志,可了解數(shù)據(jù)庫操作中遇到的問題。5.備份文件數(shù)據(jù)庫僅僅有歸檔日志文件是不夠安全,有時還必須進行數(shù)據(jù)備份。備份文件是由Oracle備份工具生成,既可冷備,也可熱備份。二、邏輯存儲結(jié)構(gòu)數(shù)據(jù)庫的邏輯結(jié)構(gòu)是面向用戶的,它描述了數(shù)據(jù)庫在邏輯上是如何組織和存儲數(shù)據(jù)的。數(shù)據(jù)庫的邏輯結(jié)構(gòu)支配一個數(shù)據(jù)庫如何使用系統(tǒng)的物理空間。數(shù)據(jù)庫中的數(shù)據(jù)物理上存儲在數(shù)據(jù)文件中,而邏輯上則存放在表空間中。Oracle數(shù)據(jù)庫中使用表空間、段、區(qū)間、數(shù)據(jù)塊等邏輯結(jié)構(gòu)來管理空間對象。1.

表空間(TableSpace)是數(shù)據(jù)庫的邏輯組成部分,將相關(guān)的邏輯結(jié)構(gòu)進行分組。一個Oracle10g數(shù)據(jù)庫中至少包含一個SYSTEM表空間和一個SYSAUX表空間,還應(yīng)該包含數(shù)據(jù)表空間、索引表空間、臨時表空間和UNDO表空間等。一個表空間只能屬于一個數(shù)據(jù)庫實例。Oracle數(shù)據(jù)庫中的表空間大部分都是永久表空間,也允許創(chuàng)建臨時表空間。表空間的控件信息可以直接保存在數(shù)據(jù)文件中,也可以保存在數(shù)據(jù)字典中。(1)

SYSTEM表空間:每一個數(shù)據(jù)庫實例至少要包含SYSTEM表空間,該表空間為系統(tǒng)表空間,存儲數(shù)據(jù)庫的數(shù)據(jù)字典,以及數(shù)據(jù)表意外的其他對象(如:視圖、序列等)的定義。由于SYSTEM表空間被保留用于存放系統(tǒng)信息,因此用戶數(shù)據(jù)對象不應(yīng)保存在這個表空間中,否則對系統(tǒng)的運行性能和安全造成危害。(2)

SYSAUX表空間:Oracle輔助系統(tǒng)表空間用于減少系統(tǒng)表空間的負荷,提高系統(tǒng)的作業(yè)效率。該表空間由系統(tǒng)創(chuàng)建,作為存儲數(shù)據(jù)的默認位置。(3)

非系統(tǒng)表空間:Oracle數(shù)據(jù)庫通常還有幾個表空間,用于數(shù)據(jù)的邏輯和物理存儲,下列表空間是大多數(shù)數(shù)據(jù)庫必備或者常見的。撤銷表空間

UNDOTBS1,用于保存事務(wù)回退信息(rollback)用戶表空間

USERS,存放用戶的私有信息臨時表空間

TEMP,用于存放臨時表和臨時數(shù)據(jù)樣例表空間

EXAMPLE,包含一些如人力資源、訂單輸入等的實例方案在oracle系統(tǒng)中,只要有SYSTEM,SYSAUX和TEMP表空間就可以正常工作了,查詢數(shù)據(jù)字典DBA_TABLESPACES可以看到系統(tǒng)中表空間的狀態(tài)。(4)

表空間在實際工程中的應(yīng)用:對于一個Oracle數(shù)據(jù)庫應(yīng)用方案來說,方案用戶應(yīng)當(dāng)建立自己專用的存放用戶數(shù)據(jù)的數(shù)據(jù)表空間和索引表空間,同時還應(yīng)當(dāng)創(chuàng)建專用的臨時表空間。目的是提高數(shù)據(jù)訪問性能,另一方面也便于數(shù)據(jù)管理、備份、恢復(fù)等工作。(5)

表空間的狀態(tài)和工作模式聯(lián)機表空間與脫機表空間:聯(lián)機表空間中的數(shù)據(jù)對于數(shù)據(jù)庫而言是可以訪問的,脫機表空間的數(shù)據(jù)是不可訪問的,必要時數(shù)據(jù)庫管理員可以將某個表空間(臨時)脫機以阻止用戶對應(yīng)用數(shù)據(jù)的訪問。注意:SYSTEM必須始終保持聯(lián)機,因為數(shù)據(jù)字典要時刻處于可被訪問的狀態(tài)。2.段(Segment)是一個對象的物理表示,由一個或多個區(qū)間組成,用于存儲特定對象的所有數(shù)據(jù),包含表空間中一種指定類型的邏輯存儲結(jié)構(gòu),段不能夠跨表空間,一個段只能屬于一個表空間。段的類型:表、表分區(qū)、簇、索引、按索引組織的表、索引分區(qū)、回退段、臨時段、LOB段、嵌套表等??煞譃閿?shù)據(jù)段、索引段、臨時段和回退段。簇:將多個表的數(shù)據(jù)按照關(guān)鍵字存儲在一起,一個簇表可以包括多個表的數(shù)據(jù)。索引:存儲表關(guān)鍵字及對應(yīng)記錄的rowid,索引本質(zhì)上也是一張表。Lob段:針對大數(shù)據(jù)3.區(qū)間(Extent)是Oracle進行空間分配的邏輯單元,是Oracle數(shù)據(jù)庫中最小的存儲分配單元。4.?dāng)?shù)據(jù)塊,也稱為Oracle塊,是Oracle管理數(shù)據(jù)文件中存儲空間的單位。它是Oracle在數(shù)據(jù)文件上執(zhí)行I/O操作的最小單位??梢酝ㄟ^修改初始化參數(shù)DB_BLOCK_SIZE用于定義標準塊尺寸。一個數(shù)據(jù)塊分為了三個區(qū)域(Header:保存數(shù)據(jù)塊的地址/表目錄/行目錄/和為事務(wù)保留的空間,F(xiàn)reeSpace:保留用于以后數(shù)據(jù)更新,Data:),這中設(shè)計雖然浪費了一部分空間,但是卻換來了更新系統(tǒng)開銷的顯著減少,從而極大的改善了系統(tǒng)性能。綜上所述,Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)圖如下所示:圖2-1OracleDatabase12c體系結(jié)構(gòu)圖2.3SQLPlus、SQLDeveloper與Web版企業(yè)管理器簡介1.SQLPlus工具介紹Oracle的sql*plus是與oracle進行交互的客戶端工具。在sql*plus中,可以運行sql*plus命令與sql*plus語句。我們通常所說的DML、DDL、DCL語句都是sql*plus語句,它們執(zhí)行完后,都可以保存在一個被稱為sqlbuffer的內(nèi)存區(qū)域中,并且只能保存一條最近執(zhí)行的sql語句,我們可以對保存在sqlbuffer中的sql語句進行修改,然后再次執(zhí)行,sql*plus一般都與數(shù)據(jù)庫打交道。除了sql*plus語句,在sql*plus中執(zhí)行的其它語句我們稱之為sql*plus命令。它們執(zhí)行完后,不保存在sqlbuffer的內(nèi)存區(qū)域中,它們一般用來對輸出的結(jié)果進行格式化顯示,以便于制作報表。2.SQLPlus工具的主要功能Sql*plus是一個最常用的工具,具有很強的功能,主要有:1)數(shù)據(jù)庫的維護,如啟動,關(guān)閉等,這一般在服務(wù)器上操作。2)執(zhí)行sql語句執(zhí)行pl/sql。3)執(zhí)行sql腳本。4)數(shù)據(jù)的導(dǎo)出,報表。5)應(yīng)用程序開發(fā)、測試sql/plsql。6)生成新的sql腳本。7)供應(yīng)用程序調(diào)用,如安裝程序中進行腳本的安裝。8)用戶管理及權(quán)限維護等。3.相關(guān)常用命令下面就介紹一下部分常用的sql*plus命令:1)執(zhí)行一個SQL腳本文件SQL>startfile_nameSQL>@file_name我們可以將多條sql語句保存在一個文本文件中,這樣當(dāng)要執(zhí)行這個文件中的所有的sql語句時,用上面的任一命令即可,這類似于dos中的批處理。@與@@的區(qū)別是什么?@等于start命令,用來運行一個sql腳本文件。@命令調(diào)用當(dāng)前目錄下的,或指定全路徑,或可以通過SQLPATH環(huán)境變量搜尋到的腳本文件。該命令使用是一般要指定要執(zhí)行的文件的全路徑,否則從缺省路徑(可用SQLPATH變量指定)下讀取指定的文件。@@用在sql腳本文件中,用來說明用@@執(zhí)行的sql腳本文件與@@所在的文件在同一目錄下,而不用指定要執(zhí)行sql腳本文件的全路徑,也不是從SQLPATH環(huán)境變量指定的路徑中尋找sql腳本文件,該命令一般用在腳本文件中。如:在c:\temp目錄下有文件start.sql和nest_start.sql,start.sql腳本文件的內(nèi)容為:@@nest_start.sql--相當(dāng)于@c:\temp\nest_start.sql則我們在sql*plus中,這樣執(zhí)行:SQL>@c:\temp\start.sql2)對當(dāng)前的輸入進行編輯SQL>edit3)重新運行上一次運行的sql語句SQL>/4)將顯示的內(nèi)容輸出到指定文件SQL>SPOOLfile_name在屏幕上的所有內(nèi)容都包含在該文件中,包括你輸入的sql語句。5)關(guān)閉spool輸出SQL>SPOOLOFF只有關(guān)閉spool輸出,才會在輸出文件中看到輸出的內(nèi)容。6)顯示一個表的結(jié)構(gòu)SQL>desctable_name7)顯示時,用text值代替NULL值SQL>SETNULLtext8)設(shè)置一頁有多少行數(shù)SQL>SETPAGES[IZE]{24|n}如果設(shè)為0,則所有的輸出內(nèi)容為一頁并且不顯示列標題9)是否顯示用DBMS_OUTPUT.PUT_LINE包進行輸出的信息。SQL>SETSERVEROUT[PUT]{ON|OFF}在編寫存儲過程時,我們有時會用dbms_output.put_line將必要的信息輸出,以便對存儲過程進行調(diào)試,只有將serveroutput變量設(shè)為on后,信息才能顯示在屏幕上。10)當(dāng)SQL語句的長度大于LINESIZE時,是否在顯示時截取SQL語句。SQL>SETWRA[P]{ON|OFF}當(dāng)輸出的行的長度大于設(shè)置的行的長度時(用setlinesizen命令設(shè)置),當(dāng)setwrapon時,輸出行的多于的字符會另起一行顯示,否則,會將輸出行的多于字符切除,不予顯示。11)是否在屏幕上顯示輸出的內(nèi)容,主要用與SPOOL結(jié)合使用。SQL>SETTERM[OUT]{ON|OFF}在用spool命令將一個大表中的內(nèi)容輸出到一個文件中時,將內(nèi)容輸出在屏幕上會耗費大量的時間,設(shè)置settermspooloff后,則輸出的內(nèi)容只會保存在輸出文件中,不會顯示在屏幕上,極大的提高了spool的速度。12)將SPOOL輸出中每行后面多余的空格去掉SQL>SETTRIMS[OUT]{ON|OFF}13)顯示每個sql語句花費的執(zhí)行時間setTIMING{ON|OFF}14)遇到空行時不認為語句已經(jīng)結(jié)束,從后續(xù)行接著讀入。SETSQLBLANKLINESONSql*plus中,不允許sql語句中間有空行,這在從其它地方拷貝腳本到sql*plus中執(zhí)行時很麻煩.比如下面的腳本:selectdeptno,empno,enamefromempwhereempno='7788';如果拷貝到sql*plus中執(zhí)行,就會出現(xiàn)錯誤。這個命令可以解決該問題4.SQLDeveloper工具簡介SQLDeveloper是一個集成開發(fā)環(huán)境,專門面向Oracle數(shù)據(jù)庫存儲程序單元的開發(fā)。如今,有越來越多的商業(yè)邏輯和應(yīng)用邏輯轉(zhuǎn)向了OracleServer,因此,PL/SQL編程也成了整個開發(fā)過程的一個重要組成部分。PL/SQLDeveloper側(cè)重于易用性、代碼品質(zhì)和生產(chǎn)力,充分發(fā)揮Oracle應(yīng)用程序開發(fā)過程中的主要優(yōu)勢。SqlDeveloper工具的使用與SqlPlus使用有所不同,SqlDeveloper是Oracle自帶的可視化的開發(fā)工具,也可以實現(xiàn)數(shù)據(jù)庫的創(chuàng)建、管理等相關(guān)操作。在此不再做詳細的介紹,請查閱相關(guān)書籍。5.Web版企業(yè)管理器簡介OracleDatabase12c企業(yè)管理器簡稱OEM,是一個基于java框架開發(fā)的集成化管理工具,采用Web應(yīng)用方式實現(xiàn)對Oracle運行環(huán)境的完全管理,包括對數(shù)據(jù)庫、監(jiān)聽器、主機、應(yīng)用服務(wù)器、HTTP服務(wù)器、Web應(yīng)用等的管理。啟動相關(guān)服務(wù):Oracle<ORACLE_HOME_NAME>TNSListenerOracleService<SID>OracleDBConsole<SID>通過Web方式啟動OEM的步驟:在IE中輸入OEM控制臺的URL,格式為http://hostname:portnumber/em其中hostname為主機名或主機IP地址,portnumber為端口號,Oracle默認為1521。輸入用戶名與密碼,即可進入OracleDatabase12c的企業(yè)管理器進行系統(tǒng)監(jiān)控、性能診斷與優(yōu)化、系統(tǒng)維護、對象管理、存儲管理、安全管理、作業(yè)管理、數(shù)據(jù)備份與恢復(fù)、數(shù)據(jù)移植等;實現(xiàn)對多個Oracle數(shù)據(jù)庫的集中管理;實現(xiàn)對Oracle應(yīng)用服務(wù)器的管理;檢查與管理目標計算機系統(tǒng)軟硬件配置。

第二部分:上機實驗實驗一在線圖書銷售系統(tǒng)CDM/LDM數(shù)據(jù)模型設(shè)計1.實驗?zāi)康耐ㄟ^對在線圖書銷售系統(tǒng)的業(yè)務(wù)處理分析,了解系統(tǒng)數(shù)據(jù)處理及其數(shù)據(jù)庫開發(fā)的數(shù)據(jù)需求。理解系統(tǒng)概念數(shù)據(jù)模型(CDM)和邏輯數(shù)據(jù)模型(LDM)的功能及作用,特別是E-R圖表示方法。掌握CDM/LDM數(shù)據(jù)模型設(shè)計方法及其轉(zhuǎn)換關(guān)系,培養(yǎng)系統(tǒng)數(shù)據(jù)架構(gòu)建模的分析與設(shè)計能力。2.實驗內(nèi)容與要求基于對在線圖書銷售系統(tǒng)業(yè)務(wù)的基本數(shù)據(jù)需求分析,使用PowerDesigner設(shè)計工具創(chuàng)建在線圖書銷售系統(tǒng)概念數(shù)據(jù)模型和邏輯數(shù)據(jù)模型,為設(shè)計數(shù)據(jù)庫提供依據(jù)。具體實驗內(nèi)容如下:利用PowerDesigner工具創(chuàng)建數(shù)據(jù)模型文件在線圖書銷售系統(tǒng)數(shù)據(jù)實體抽取在線圖書銷售系統(tǒng)數(shù)據(jù)實體與聯(lián)系定義在線圖書銷售系統(tǒng)CDM數(shù)據(jù)模型創(chuàng)建在線圖書銷售系統(tǒng)CDM數(shù)據(jù)模型到LDM數(shù)據(jù)模型轉(zhuǎn)換設(shè)計在線圖書銷售系統(tǒng)CDM/LDM數(shù)據(jù)模型設(shè)計完善在線圖書銷售系統(tǒng)LDM數(shù)據(jù)模型設(shè)計驗證在實驗計算機上,利用專業(yè)數(shù)據(jù)庫建模工具PowerDesigner,完成在線圖書銷售系統(tǒng)的概念數(shù)據(jù)模型和邏輯數(shù)據(jù)模型設(shè)計。同時記錄實驗過程的設(shè)計思路、操作方法、運行結(jié)果界面等數(shù)據(jù),為撰寫實驗報告提供素材。3.實驗開設(shè)方式本實驗開設(shè)方式為個人實驗,實驗授課時間1學(xué)時,上機3學(xué)時。4.實驗環(huán)境操作系統(tǒng):Windows7/Windows8設(shè)計工具:PowerDesigner16.55.實驗步驟對于在線圖書銷售系統(tǒng)數(shù)據(jù)模型設(shè)計,可通過使用Sybase公司的PowerDesigner數(shù)據(jù)庫設(shè)計工具,其基本實驗步驟如下:啟動PowerDesigner軟件運行,進入工具環(huán)境。在文件(File)中的“新建模型(NewModel)”菜單項中,選取概念數(shù)據(jù)模型進行創(chuàng)建,并定義模型名稱。在概念數(shù)據(jù)模型工作區(qū)中,通過點擊E-R模型元素圖標,建立相應(yīng)的實體對象,如作者、出版社、圖書等。針對模型中每個實體定義屬性,輸入相應(yīng)數(shù)據(jù)信息。定義實體之間的關(guān)系,可雙擊關(guān)聯(lián)線,彈出關(guān)聯(lián)對話框,輸入相應(yīng)關(guān)聯(lián)信息。完善在線圖書銷售系統(tǒng)概念數(shù)據(jù)模型設(shè)計。將在線圖書銷售系統(tǒng)CDM轉(zhuǎn)換為LDM數(shù)據(jù)模型。檢查在線圖書銷售系統(tǒng)LDM數(shù)據(jù)模型的正確性。完善在線圖書銷售系統(tǒng)LDM數(shù)據(jù)模型設(shè)計。6.實驗過程數(shù)據(jù)及結(jié)果分析下面以在線圖書銷售系統(tǒng)的概念數(shù)據(jù)模型為例,給出實驗過程如下:(1)在操作系統(tǒng)中啟動“Sybase->PowerDesigner”程序,進入PowerDesigner初始界面,如圖2-1所示: 圖1-1初始界面 (2)在文件(File)菜單中,點取“新建模型(NewModel)”菜單項,彈出如下對話框。在界面中選取概念數(shù)據(jù)模型進行創(chuàng)建,并定義模型名稱,如圖1-2所示:圖1-2概念數(shù)據(jù)模型文件創(chuàng)建(3)進入模型工作區(qū)后,根據(jù)需求分析在數(shù)據(jù)模型中,分別定義“圖書信息”、“圖書訂單”、“圖書銷售”子模型。首先在“圖書信息”子模型中開始創(chuàng)建系統(tǒng)的實體元素及其關(guān)聯(lián),見圖1-3所示:圖1-3模型圖對象添加上圖共建立了2個實體:圖書、出版社,同時也標記了它們之間的關(guān)聯(lián)。(4)針對模型中每個實體定義屬性,可雙擊實體圖標,彈出屬性對話框,輸入相應(yīng)實體屬性信息。如圖1-4所示:圖1-4圖書實體屬性定義(5)同樣可定義實體之間的關(guān)系,可雙擊關(guān)聯(lián)線,彈出關(guān)聯(lián)對話框,輸入相應(yīng)數(shù)據(jù)信息。如圖1-5所示:圖1-5實體關(guān)聯(lián)屬性設(shè)置(6)基于“在線圖書銷售系統(tǒng)”數(shù)據(jù)需求分析,繼續(xù)完善該系統(tǒng)概念數(shù)據(jù)模型設(shè)計,設(shè)計的“圖書信息”概念數(shù)據(jù)模型如圖1-6所示:圖1-6“圖書信息”子模型(7)進一步完善在線圖書銷售系統(tǒng)概念數(shù)據(jù)模型設(shè)計。其中“圖書訂單”、“圖書銷售”子模型分別如圖1-7和圖1-8所示:圖1-7“圖書訂單”子模型圖1-8“圖書銷售”子模型(8)檢查在線圖書銷售系統(tǒng)概念數(shù)據(jù)模型正確性。在功能菜單中,點取工具(tools)欄內(nèi)的檢查模型(checkmodel)命令項。對所設(shè)計概念數(shù)據(jù)模型的正確性進行檢查。如圖1-9所示:圖1-9檢查概念數(shù)據(jù)模型 如若檢查模型有錯誤輸出信息,則需要進行模型完善。(9)將在線圖書銷售系統(tǒng)概念數(shù)據(jù)模型轉(zhuǎn)換到邏輯數(shù)據(jù)模型。在功能菜單中,點取工具(tools)欄內(nèi)的GenerateLogicalDataModel菜單命令。系統(tǒng)彈出轉(zhuǎn)換設(shè)置對話框,如圖1-10所示:圖1-10系統(tǒng)轉(zhuǎn)換設(shè)置在該對話框中,定義邏輯數(shù)據(jù)模型名稱及編碼,則需要更多設(shè)置,則選取其它標簽頁。點取“確定”按鈕后,得到轉(zhuǎn)換結(jié)果,如圖1-11所示。圖1-11系統(tǒng)邏輯數(shù)據(jù)模型(11)針對自動轉(zhuǎn)換得到的邏輯數(shù)據(jù)模型進行完善。例如,在“圖書信息”子模型中,可考慮對“作者-圖書”關(guān)聯(lián)實體屬性進行完善,增加“排名”信息。其處理后的系統(tǒng)邏輯數(shù)據(jù)模型,如圖1-12所示:圖1-12完善后的系統(tǒng)邏輯數(shù)據(jù)模型此外,在系統(tǒng)邏輯數(shù)據(jù)模型設(shè)計中,還應(yīng)考慮在關(guān)系數(shù)據(jù)庫中,這些實體關(guān)系合理性。若存在不合理地方,需要進行設(shè)計完善。7.實驗報告要求在實驗報告中,除包含上述設(shè)計內(nèi)容外,還應(yīng)符合標準報告規(guī)范:1)在所有設(shè)計模型圖前后,都應(yīng)有設(shè)計思想和設(shè)計說明。2)對實驗內(nèi)容還應(yīng)有必要的分析總結(jié)。3)標題、段落、圖表等符合標準報告格式規(guī)范。

實驗二在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型設(shè)計及數(shù)據(jù)庫實現(xiàn)1.實驗?zāi)康尼槍RACLE數(shù)據(jù)庫平臺,了解與掌握系統(tǒng)物理數(shù)據(jù)模型設(shè)計及其數(shù)據(jù)庫實現(xiàn)方法,同時理解系統(tǒng)物理數(shù)據(jù)模型(PDM)的功能與作用,特別是數(shù)據(jù)物理模型實現(xiàn)數(shù)據(jù)庫方法。培養(yǎng)數(shù)據(jù)庫物理數(shù)據(jù)模型設(shè)計及其數(shù)據(jù)庫實現(xiàn)能力。2.實驗內(nèi)容與要求在所設(shè)計的系統(tǒng)CDM/LDM數(shù)據(jù)模型基礎(chǔ)上,針對OracleDatabase數(shù)據(jù)庫管理系統(tǒng)平臺進行物理數(shù)據(jù)模型設(shè)計,并完成在線圖書銷售系統(tǒng)數(shù)據(jù)庫表創(chuàng)建生成。具體實驗內(nèi)容如下:在線圖書銷售系統(tǒng)CDM/LDM到物理數(shù)據(jù)模型PDM轉(zhuǎn)換設(shè)計在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型PDM設(shè)計完善在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型PDM到ORACLE數(shù)據(jù)庫對象實現(xiàn)在線圖書銷售系統(tǒng)ORACLE數(shù)據(jù)庫實現(xiàn)驗證在線圖書銷售系統(tǒng)PDM數(shù)據(jù)模型設(shè)計報告創(chuàng)建在實驗計算機上,利用專業(yè)數(shù)據(jù)庫建模工具PowerDesigner,完成在線圖書銷售系統(tǒng)的物理數(shù)據(jù)模型設(shè)計及實現(xiàn)。同時記錄實驗過程的設(shè)計思路、操作方法、運行結(jié)果界面等數(shù)據(jù),為撰寫實驗報告提供素材。3.實驗開設(shè)方式本實驗開設(shè)方式為個人實驗,實驗授課時間1學(xué)時,上機3學(xué)時。4.實驗環(huán)境操作系統(tǒng):Windows7/Windows8設(shè)計工具:PowerDesigner16.5DBMS系統(tǒng):OracleDatabase11g/12c5.實驗步驟在所設(shè)計的CDM/LDM數(shù)據(jù)模型基礎(chǔ)上,使用PowerDesigner數(shù)據(jù)庫設(shè)計工具繼續(xù)完成物理數(shù)據(jù)模型設(shè)計和數(shù)據(jù)庫表創(chuàng)建,其步驟如下:1)打開在線圖書銷售系統(tǒng)邏輯數(shù)據(jù)模型。2)使用PowerDesigner,選取OracleDatabase12c為實現(xiàn)目標數(shù)據(jù)庫DBMS。3)將在線圖書銷售系統(tǒng)邏輯數(shù)據(jù)模型轉(zhuǎn)換物理數(shù)據(jù)模型。4)檢查所設(shè)計的物理數(shù)據(jù)模型是否存在錯誤。5)完善系統(tǒng)物理數(shù)據(jù)模型設(shè)計6)使用ODBC數(shù)據(jù)源,建立PowerDesigner工具與用戶數(shù)據(jù)庫連接。7)將在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型在OracleDatabase11g/12c數(shù)據(jù)庫中進行對象創(chuàng)建。8)對實現(xiàn)的在線圖書銷售系統(tǒng)數(shù)據(jù)庫表進行測試驗證。9)生成在線圖書銷售系統(tǒng)數(shù)據(jù)庫物理數(shù)據(jù)模型設(shè)計報告6.實驗過程數(shù)據(jù)及結(jié)果分析在線圖書銷售系統(tǒng)物理數(shù)據(jù)模型設(shè)計實驗過程如下:打開在線圖書銷售系統(tǒng)邏輯數(shù)據(jù)模型,如圖2-1所示:圖2-1邏輯數(shù)據(jù)模型(2)在工具(tools)中點取“創(chuàng)建物理模型(GeneratePhysicalDataModel)”菜單項,彈出轉(zhuǎn)換設(shè)置對話框,如圖2-2所示:圖2-2轉(zhuǎn)換設(shè)計對話框在對話框中,定義物理數(shù)據(jù)模型名稱、編碼,以及DBMS平臺。若需更多設(shè)置,則選取其它標簽頁。(3)點擊確定,將自動轉(zhuǎn)換為物理數(shù)據(jù)模型,如圖2-3所示:圖2-3物理數(shù)據(jù)模型檢查與分析所創(chuàng)建的物理數(shù)據(jù)模型是否符合關(guān)系數(shù)據(jù)庫表設(shè)計需求。若不滿足設(shè)計需求,則需要在概念數(shù)據(jù)模型與物理數(shù)據(jù)模型之間多次迭代,對數(shù)據(jù)庫設(shè)計進行優(yōu)化。(4)使用工具檢查所設(shè)計針對物理數(shù)據(jù)模型是否存在錯誤。在工具(tools)中點取“檢查模型(CheckModel)”菜單項,彈出如下對話框。如圖2-4所示:圖2-4物理數(shù)據(jù)模型檢查當(dāng)點取確定,工具將對物理數(shù)據(jù)模型進行檢查。若有錯誤或警示存在,將輸出問題信息。(5)將系統(tǒng)物理數(shù)據(jù)模型轉(zhuǎn)換為數(shù)據(jù)庫實現(xiàn)。選取菜單欄“Database”的“GenerateDatabase”菜單項,啟動數(shù)據(jù)庫創(chuàng)建。系統(tǒng)彈出設(shè)置對話框,如圖2-5所示:圖2-5數(shù)據(jù)庫創(chuàng)建設(shè)置在默認狀態(tài),物理數(shù)據(jù)模型將被轉(zhuǎn)換為創(chuàng)建數(shù)據(jù)庫對象的SQL腳本程序。在該對話框中,設(shè)置SQL腳本程序的名稱,以及放置文件目錄。若需設(shè)置其它選項,則直接相應(yīng)標簽頁。點取“確定”按鈕后,系統(tǒng)物理數(shù)據(jù)模型被轉(zhuǎn)換為SQL程序,如圖2-6所示:圖2-6模型轉(zhuǎn)換后的SQL程序 (6)在ORACEL系統(tǒng)數(shù)據(jù)庫中,執(zhí)行上述SQL程序。該工具將在數(shù)據(jù)庫中實現(xiàn)設(shè)計模型中所定義的各個數(shù)據(jù)庫對象,其結(jié)果如圖2-7所示:圖2-7ORACLE數(shù)據(jù)庫對象實現(xiàn)(7)在ORACEL系統(tǒng)數(shù)據(jù)庫中,對創(chuàng)建實現(xiàn)的數(shù)據(jù)庫表進行數(shù)據(jù)操作訪問。例如,首先對數(shù)據(jù)表AUTHOR插入樣本數(shù)據(jù),然后執(zhí)行Select數(shù)據(jù)查詢操作。其結(jié)果如圖2-8所示:圖2-8ORACLE數(shù)據(jù)庫表實現(xiàn)驗證7.實驗報告要求在實驗報告中,除包含上述設(shè)計內(nèi)容外,還應(yīng)符合標準報告規(guī)范:1)在所有設(shè)計模型圖前后,都應(yīng)有設(shè)計思想和設(shè)計說明。2)對實驗內(nèi)容還應(yīng)有必要的分析總結(jié)。3)標題、段落、圖表等符合標準報告格式規(guī)范。

實驗三在線圖書銷售系統(tǒng)數(shù)據(jù)庫操作1.實驗?zāi)康尼槍υ诰€圖書銷售數(shù)據(jù)庫開發(fā),了解ORACLE對SQL語言的支持,掌握DDL、DML、DQL、DCL類型語句在數(shù)據(jù)庫操作訪問中的應(yīng)用方法,培養(yǎng)數(shù)據(jù)庫SQL編程能力。同時也掌握基本的數(shù)據(jù)庫觸發(fā)器、存儲過程編程方法,培養(yǎng)數(shù)據(jù)庫后端編程能力。本實驗完成在線圖書銷售系統(tǒng)數(shù)據(jù)庫的SQL數(shù)據(jù)操作訪問和后端數(shù)據(jù)處理功能。2.實驗內(nèi)容與要求使用SQLDeveloper數(shù)據(jù)庫開發(fā)工具對在線圖書銷售系統(tǒng)數(shù)據(jù)庫進行數(shù)據(jù)操作訪問,并完成觸發(fā)器、存儲過程后端編程,具體實驗內(nèi)容如下:在線圖書銷售系統(tǒng)數(shù)據(jù)庫方案創(chuàng)建及配置。在線圖書銷售系統(tǒng)數(shù)據(jù)庫方案中創(chuàng)建數(shù)據(jù)庫對象(表、視圖、索引、序列等)的SQL操作。在線圖書銷售系統(tǒng)數(shù)據(jù)庫表的數(shù)據(jù)增、刪、查、改SQL操作。在線圖書銷售系統(tǒng)數(shù)據(jù)庫的觸發(fā)器編程,以實現(xiàn)業(yè)務(wù)規(guī)則數(shù)據(jù)處理。在線圖書銷售系統(tǒng)數(shù)據(jù)庫的存儲過程編程,以實現(xiàn)數(shù)據(jù)庫后端數(shù)據(jù)處理。在實驗計算機上,利用SQLDeveloper數(shù)據(jù)庫系統(tǒng)工具,完成在線圖書銷售系統(tǒng)數(shù)據(jù)庫操作訪問,同時記錄實驗過程的規(guī)劃、操作、運行結(jié)果界面等數(shù)據(jù),為撰寫實驗報告提供素材。3.實驗開設(shè)方式本實驗開設(shè)方式為個人實驗,實驗授課時間1學(xué)時,上機4學(xué)時。4.實驗環(huán)境操作系統(tǒng):Windows7/Windows8DBMS系統(tǒng):OracleDatabase11g/12c管理工具:OracleSQLDeveloper5.實驗步驟使用OracleSQLDeveloper數(shù)據(jù)庫系統(tǒng)工具開展在線圖書銷售系統(tǒng)數(shù)據(jù)庫操作訪問,其步驟如下:1)在現(xiàn)有ORACLE數(shù)據(jù)庫中,創(chuàng)建一個方案對象BOOKSALE,并進行必要配置。2)在BOOKSALE方案中,通過執(zhí)行SQL語句創(chuàng)建在線圖書銷售系統(tǒng)數(shù)據(jù)庫的表、視圖、索引、序列等對象。3)在線圖書銷售系統(tǒng)數(shù)據(jù)庫表中,通過執(zhí)行SQL語句實現(xiàn)數(shù)據(jù)增、刪、查、改SQL操作。4)在BOOKSALE方案中,通過執(zhí)行SQL語句實現(xiàn)在線圖書銷售系統(tǒng)數(shù)據(jù)庫的觸發(fā)器,以實現(xiàn)業(yè)務(wù)規(guī)則(如依據(jù)圖書銷售數(shù)據(jù)對圖書庫存數(shù)據(jù)進行同步修改)數(shù)據(jù)處理。5)在BOOKSALE方案中,通過執(zhí)行SQL語句實現(xiàn)在線圖書銷售系統(tǒng)數(shù)據(jù)庫的存儲過程,以實現(xiàn)數(shù)據(jù)庫后端數(shù)據(jù)(如圖書銷售統(tǒng)計)處理。6.實驗過程數(shù)據(jù)及結(jié)果分析在進行圖書銷售數(shù)據(jù)庫開發(fā)時,首先需要創(chuàng)建數(shù)據(jù)庫的BOOKSALE用戶方案,在該方案中分別執(zhí)行SQL語句創(chuàng)建表、視圖、觸發(fā)器和存儲過程等對象。隨后進行數(shù)據(jù)庫對象的數(shù)據(jù)操作訪問。(1)用戶方案創(chuàng)建在Oracle數(shù)據(jù)庫中,通常是由系統(tǒng)DBA用戶負責(zé)創(chuàng)建用戶方案,并給該用戶賦予必要的角色和系統(tǒng)權(quán)限。此后,就可以由該用戶在方案中創(chuàng)建各個數(shù)據(jù)庫對象。使用SQLDeveloper開發(fā)工具實現(xiàn)數(shù)據(jù)庫的BOOKSALE用戶方案創(chuàng)建,其操作步驟如下:1)在Windows操作系統(tǒng)中,啟動SQLDeveloper工具運行。以SYS或SYSTEM系統(tǒng)管理員用戶登錄連接數(shù)據(jù)庫,并進入到該數(shù)據(jù)庫中的“其他用戶”目錄列表,其界面如圖3-1所示。圖3-1其他用戶目錄列表界面2)選取“其他用戶”目錄,并點取右鍵菜單“創(chuàng)建用戶”,進入用戶創(chuàng)建對話框初始界面,如圖3-2所示。圖3-2數(shù)據(jù)庫用戶創(chuàng)建初始界面3)在數(shù)據(jù)庫用戶創(chuàng)建界面中,輸入用戶名稱、口令,選取默認表空間、臨時表空間,并在角色頁和系統(tǒng)權(quán)限頁中設(shè)置該用戶的必要角色和權(quán)限,如圖3-3所示。圖3-3數(shù)據(jù)庫用戶定義界面4)在數(shù)據(jù)庫用戶定義界面中,當(dāng)完成必要設(shè)置后,點取“應(yīng)用”按鈕后,系統(tǒng)彈出創(chuàng)建成功消息,在數(shù)據(jù)庫用戶列表界面中出現(xiàn)新用戶BOOKSALE,如圖3-4所示。圖3-4數(shù)據(jù)庫用戶列表界面5)在SQLDeveloper界面中,建立一個以BOOKSALE用戶登錄數(shù)據(jù)庫的同名連接,如圖3-5所示。圖3-5BOOKSALE數(shù)據(jù)庫用戶連接6)當(dāng)以BOOKSALE用戶登錄數(shù)據(jù)庫后,可進入BOOKSALE方案目錄,如圖3-6所示。圖3-6BOOKSALE數(shù)據(jù)庫用戶方案目錄從新建的數(shù)據(jù)庫用戶方案目錄可看到,該用戶的表、視圖、索引等目錄初始均為空,即還沒有相應(yīng)的數(shù)據(jù)庫對象。隨后,用戶可以在方案中創(chuàng)建自己的各種數(shù)據(jù)庫對象。(2)數(shù)據(jù)庫對象創(chuàng)建為了在BOOKSALE用戶方案中創(chuàng)建圖書銷售數(shù)據(jù)庫對象,首先需要有創(chuàng)建該數(shù)據(jù)庫對象的SQL程序,然后將SQL程序在BOOKSALE用戶方案中執(zhí)行。具體在SQLDeveloper工具執(zhí)行,創(chuàng)建各個表對象,其執(zhí)行結(jié)果見圖3-8所示。圖3-8BOOKSALE用戶方案中創(chuàng)建表對象至此,在BOOKSALE用戶方案中,完成圖書銷售數(shù)據(jù)庫各個對象的創(chuàng)建。(3)數(shù)據(jù)庫對象訪問操作在Oracle數(shù)據(jù)庫中,當(dāng)創(chuàng)建好圖書銷售數(shù)據(jù)庫各個對象后,就可以對它們進行操作訪問。1)數(shù)據(jù)插入操作這里以出版社表、作者表、圖書表、圖書-作者關(guān)聯(lián)表為例,插入基本數(shù)據(jù)。出版社表PUBLISHER插入數(shù)據(jù)的SQL語句程序如下:InsertintoPUBLISHERvalues('P00001','高等教育出版社','北京','BJ');InsertintoPUBLISHERvalues('P00002','電子工業(yè)出版社','北京','BJ');InsertintoPUBLISHERvalues('P00003','人民郵電出版社','北京','BJ');InsertintoPUBLISHERvalues('P00004','機械工業(yè)出版社','北京','BJ');InsertintoPUBLISHERvalues('P00005','清華大學(xué)出版社','北京','BJ');將語句放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-9所示。圖3-9PUBLISHER表數(shù)據(jù)插入同樣,編寫作者表AUTHOR數(shù)據(jù)插入SQL語句程序如下:InsertintoAUTHORvalues('A00001','黨建','','','','','139******21');InsertintoAUTHORvalues('A00002','李芝興','','','','','136******86');InsertintoAUTHORvalues('A00003','楊海霞','','','','','135******21');將語句放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-10所示。圖3-10AUTHOR表數(shù)據(jù)插入同樣,編寫圖書表TITLE數(shù)據(jù)插入SQL語句程序如下:InsertintoTITLEvalues('ISBN843-9','P00004','Web前端開發(fā)最佳實踐','IT技術(shù)','59','','2016-1-1');InsertintoTITLEvalues('ISBN609-3','P00004','JavaEEWeb編程','IT技術(shù)','52','','2008-1-1');InsertintoTITLEvalues('ISBN119-0','P00003','數(shù)據(jù)庫實驗指導(dǎo)','IT技術(shù)','29','','2013-8-1');將語句放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-11所示。圖3-11TITLE表數(shù)據(jù)插入同樣,編寫圖書-作者關(guān)聯(lián)表TITLEAUTHOR數(shù)據(jù)插入SQL語句程序如下:InsertintoTITLEAUTHORvalues('ISBN843-9','A00001');InsertintoTITLEAUTHORvalues('ISBN609-3','A00002');InsertintoTITLEAUTHORvalues('ISBN119-0','A00003');將語句放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-12所示。圖3-12TITLEAUTHOR表數(shù)據(jù)插入2)數(shù)據(jù)修改操作假定需要修改圖書“數(shù)據(jù)庫實驗指導(dǎo)”的定價,可執(zhí)行如下SQL語句:UPDATETITLESETTITLE_PRICE=29.5WHERETITLE_ISBN='ISBN119-0';該SQL語句在SQLDeveloper中執(zhí)行結(jié)果,見圖3-13所示。圖3-13TITLE表數(shù)據(jù)修改3)數(shù)據(jù)查詢操作假定需要查找數(shù)據(jù)庫實驗圖書,可編寫如下查詢SQL語句:SELECT*FROMTITLEWHERETITLE_TEXTLIKE‘?dāng)?shù)據(jù)庫實驗%’;將該語句放入SQLDeveloper中執(zhí)行,其結(jié)果見圖3-14所示。圖3-14TITLE表數(shù)據(jù)查詢(4)觸發(fā)器創(chuàng)建在BOOKSALE方案中,通過創(chuàng)建數(shù)據(jù)庫觸發(fā)器實現(xiàn)特定業(yè)務(wù)規(guī)則,如依據(jù)銷售圖書數(shù)量自動對該圖書的庫存數(shù)量進行處理。為此,需要在圖書銷售表SALE上創(chuàng)建一個Insert觸發(fā)器,在該觸發(fā)器程序中完成對庫存表STOCK中數(shù)據(jù)修改處理。實現(xiàn)該功能的觸發(fā)器定義SQL程序如下:CreatetriggerInsertSaleAfterinsertOnSALEforeachrowBeginif(INSERTING)thenupdateSTOCKsetstockNumber=stockNumber-:new.SALE_QTYwhereSTO_STOR_ID=:new.STO_STOR_IDANDTIT_TITLE_ISBN=:new.TIT_TITLE_ISBN;endif;END;將上述SQL程序放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-15所示。圖3-15觸發(fā)器創(chuàng)建定義為了驗證該觸發(fā)器是否能正確工作,可進行如下測試:1)查詢圖書(編號為“ISBN843-9”)的當(dāng)前庫存,其SQL語句執(zhí)行結(jié)果如圖3-16所示。圖3-16圖書(ISBN843-9)當(dāng)前庫存2)假定現(xiàn)在銷售5本編號為“ISBN843-9”圖書,其SQL語句執(zhí)行結(jié)果如圖3-17所示。圖3-17銷售圖書(ISBN843-9)3)重新查詢圖書(編號為“ISBN843-9”)的當(dāng)前庫存,其SQL語句執(zhí)行結(jié)果如圖3-18所示。圖3-18圖書(ISBN843-9)當(dāng)前庫存重新查詢圖書(編號為“ISBN843-9”)的當(dāng)前庫存為93,比銷售前少了5本,即表明觸發(fā)器程序已經(jīng)正確執(zhí)行。(5)存儲過程創(chuàng)建在BOOKSALE方案中,通過執(zhí)行SQL語句實現(xiàn)在線圖書銷售系統(tǒng)數(shù)據(jù)庫的存儲過程,以實現(xiàn)數(shù)據(jù)庫后端數(shù)據(jù)(如圖書銷售統(tǒng)計)處理。例如,實現(xiàn)一個過程程序統(tǒng)計圖書銷售數(shù)量統(tǒng)計,該過程程序有一個輸入?yún)?shù):日期,輸出結(jié)果為該日期銷售圖書的總銷售量。其存儲過程SQL程序定義如下:createorreplaceprocedureProSaleNum(saleDateindate,SALESUMoutint)ASbeginSelectsum(SALE_QTY)intoSALESUMfromSALEwhereSALE_DATE=saleDate;end;將上述SQL程序放入SQLDeveloper執(zhí)行,其結(jié)果見圖3-19所示。圖3-19存儲過程創(chuàng)建定義為了驗證該存儲過程是否能正確工作,可進行如下驗證:1)查詢?nèi)掌跒?2016-05-13'的圖書銷售情況,其SQL語句執(zhí)行結(jié)果如圖3-20所示。圖3-202016-05-13圖書銷售情況2)假定當(dāng)前需要統(tǒng)計2016-05-13圖書銷售數(shù)量,可調(diào)用存儲過程ProSaleNum(saleDateindate,SALESUMoutint)實現(xiàn)處理,其SQL程序如下:declareSALESUMint;--申明變量SALESUMbeginBOOKSALENUM('2016-05-13',SALESUM);--調(diào)用存儲過程dbms_output.put_line(SALESUM);--輸出變量值end;該SQL語句在SQLDeveloper中執(zhí)行結(jié)果如圖3-21所示。圖3-212016-05-13圖書銷售統(tǒng)計結(jié)果7.實驗報告要求在實驗報告中,除包含上述數(shù)據(jù)庫訪問操作內(nèi)容外,還應(yīng)符合標準報告規(guī)范:1)在對數(shù)據(jù)庫對象進行操作訪問,都應(yīng)有過程及方法說明。2)對實驗內(nèi)容還應(yīng)有必要的分析總結(jié)。3)標題、段落、圖表等符合標準報告格式規(guī)范。

實驗四在線圖書銷售系統(tǒng)數(shù)據(jù)庫管理1.實驗?zāi)康耐ㄟ^本上機實驗,熟悉典型數(shù)據(jù)庫管理工具使用,掌握應(yīng)用系統(tǒng)的數(shù)據(jù)庫管理技術(shù)與方法,如數(shù)據(jù)庫角色管理、用戶管理、權(quán)限管理、數(shù)據(jù)庫備份與恢復(fù)等系統(tǒng)管理操作,以及完成數(shù)據(jù)庫對象操作訪問。2.實驗內(nèi)容與要求使用OracleSQLDeveloper數(shù)據(jù)庫開發(fā)工具對在線圖書銷售系統(tǒng)數(shù)據(jù)庫進行數(shù)據(jù)庫管理,并完成數(shù)據(jù)庫備份/恢復(fù)處理,具體實驗內(nèi)容如下:在線圖書銷售系統(tǒng)數(shù)據(jù)庫擁有者用戶(BOOKSALE)創(chuàng)建在線圖書銷售系統(tǒng)數(shù)據(jù)庫角色創(chuàng)建在線圖書銷售系統(tǒng)數(shù)據(jù)庫角色權(quán)限設(shè)置在線圖書銷售系統(tǒng)數(shù)據(jù)庫其他用戶創(chuàng)建與角色分派在線圖書銷售系統(tǒng)用戶的數(shù)據(jù)庫對象訪問在線圖書銷售系統(tǒng)數(shù)據(jù)庫備份管理在線圖書銷售系統(tǒng)數(shù)據(jù)庫恢復(fù)管理在實驗計

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論