《ORACLE數(shù)據(jù)庫系統(tǒng)原理》.ppt
ORACLE數(shù)據(jù)庫系統(tǒng)原理,任課教師:王寧 辦公地址:計算機(jī)學(xué)院計算機(jī)科學(xué)系九教北512 電話:51682453 email:,第一講 Oracle概述,1.1 數(shù)據(jù)庫知識回顧 1.2 關(guān)系數(shù)據(jù)庫系統(tǒng) 1.3 Oracle公司及其產(chǎn)品 1.4 Oracle數(shù)據(jù)庫的最新特點 1.5 與其他數(shù)據(jù)庫系統(tǒng)的比較,1.1 數(shù)據(jù)庫知識回顧,1.1.1 數(shù)據(jù)庫的特點 1.1.2 數(shù)據(jù)庫用戶 1.1.3 數(shù)據(jù)庫種類,數(shù)據(jù)庫是按照一定數(shù)據(jù)模型組織存儲在一起的,能為多個應(yīng)用程序共享的、與應(yīng)用程序相對獨立的相互關(guān)聯(lián)的數(shù)據(jù)集合。 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指幫助用戶使用和管理數(shù)據(jù)庫的軟件系統(tǒng)。,1.1.1 數(shù)據(jù)庫的特點,數(shù)據(jù)庫具有以下特點: 1數(shù)據(jù)的結(jié)構(gòu)化 2數(shù)據(jù)共享 3數(shù)據(jù)冗余較少 4優(yōu)良的存儲功能,1應(yīng)用程序開發(fā)員 應(yīng)用程序開發(fā)員主要在開發(fā)周期內(nèi)完成數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,應(yīng)用程序開發(fā)等任務(wù)。 2. 應(yīng)用程序管理員 數(shù)據(jù)庫系統(tǒng)一般需要一個以上應(yīng)用程序管理員來管理應(yīng)用程序。保證使用周期中對應(yīng)用程序在功能及性能方面的維護(hù),修改工作。 3.數(shù)據(jù)庫管理員 數(shù)據(jù)庫管理員(DBA),其職能是對數(shù)據(jù)庫進(jìn)行日常的管理。 4.數(shù)據(jù)庫用戶 數(shù)據(jù)庫用戶是應(yīng)用程序的使用者,通過應(yīng)用程序與數(shù)據(jù)庫進(jìn)行交互。,1.1.2 數(shù)據(jù)庫用戶,1.1.3 數(shù)據(jù)庫種類,層次型數(shù)據(jù)庫 網(wǎng)絡(luò)型數(shù)據(jù)庫 關(guān)系型數(shù)據(jù)庫 面向?qū)ο髷?shù)據(jù)庫 對象關(guān)系型數(shù)據(jù)庫 XML數(shù)據(jù)庫,1.2.1 關(guān)系數(shù)據(jù)庫簡介 1.2.2 關(guān)系數(shù)據(jù)庫的邏輯結(jié)構(gòu) 1.2.3 后關(guān)系型數(shù)據(jù)庫系統(tǒng),1.2 關(guān)系數(shù)據(jù)庫系統(tǒng),Dr. E. F. Codd 在1970年提出了關(guān)系模型的概念. 關(guān)系模型包含以下內(nèi)容: 關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系操作 完整性約束,1.2.1 關(guān)系數(shù)據(jù)庫簡介,1.2.2 關(guān)系數(shù)據(jù)庫的邏輯結(jié)構(gòu),Oracle Server,IDLAST_NAMEFIRST_NAME 10HavelMarta 11MageeColin 12GiljumHenry 14NguyenMai,SALES_ IDNAMEPHONEREP_ID 201Unisports55-206610112 202Simms Atheletics81-2010114 203Delhi Sports91-1035114 204Womansport1-206-104-010311,Table Name: CUSTOMER,Table Name: EMP,描述 數(shù)據(jù)庫的基本存儲單位(由行和列組成). 一個或多個表中數(shù)據(jù)的邏輯映像. 產(chǎn)生主鍵的值. 提高查詢的性能. 改變對象的名稱 過程、函數(shù)和包(由SQL、PL/SQL語句組成).,數(shù)據(jù)庫對象,對象 基表 視圖 序列號 索引 同義詞 程序單元,使用SQL同RDBMS通信,Oracle server,發(fā)送語句到Oracle 服務(wù)器,返回結(jié)果到客戶端,關(guān)系數(shù)據(jù)模型和層次、網(wǎng)狀數(shù)據(jù)模型的最大差別是?,用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),1.2.3 后關(guān)系型數(shù)據(jù)庫系統(tǒng),傳統(tǒng)數(shù)據(jù)庫技術(shù)的缺陷,(1)數(shù)據(jù)對象簡單:只能檢索一組數(shù)值,屬性組成的記錄和由同質(zhì)記錄組成的集合,無復(fù)雜的嵌套數(shù)據(jù)和復(fù)雜數(shù)據(jù)。(2)對象之間的關(guān)系簡單,不能實現(xiàn)顯示實體間繼承等復(fù)雜聯(lián)系。,后關(guān)系型數(shù)據(jù)庫系統(tǒng)(post-relationaldatabase),九十年代中后期,世界著名的產(chǎn)業(yè)戰(zhàn)略調(diào)查咨詢公司GartenerGroup發(fā)表了一系列關(guān)于數(shù)據(jù)庫系統(tǒng)發(fā)展的調(diào)研報告,其重點歸納起來大概有以下幾點: 1. 關(guān)系型數(shù)據(jù)庫系統(tǒng)技術(shù)已相當(dāng)成熟,其發(fā)展已趨頂峰; 2. 盡管有了很大發(fā)展,關(guān)系型數(shù)據(jù)庫系統(tǒng)能處理的數(shù)據(jù)類型仍相當(dāng)有限; 3. 隨著信息技術(shù)的發(fā)展,市場越來越需要能處理復(fù)雜數(shù)據(jù)類型的數(shù)據(jù)庫; 4.由于大型數(shù)據(jù)庫管理系統(tǒng)的技術(shù)復(fù)雜性以及開發(fā)的高昂費用,今后新型數(shù)據(jù)庫系統(tǒng)很可能只在現(xiàn)有的數(shù)據(jù)庫系統(tǒng)產(chǎn)品廠家內(nèi)產(chǎn)生。,面向?qū)ο髷?shù)據(jù)庫,對象的狀態(tài): 是該對象屬性(Attribute)值的集合。 對象的行為: 是在對象狀態(tài)上操作的方法(Method)集。,對象:是現(xiàn)實世界中的實體模型化,與記錄的概念相仿。對象把狀態(tài)和行為封裝在一起。,教師,學(xué)生,人,一個簡單的類層次示意,繼承的優(yōu)點:是建模的有利工具;提供了信息重用機(jī)制,對象嵌套:一個對象的屬性也可以是一個對象,面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)不普及的原因?,1.面向?qū)ο髷?shù)據(jù)庫產(chǎn)品的主要設(shè)計思想是企圖用新型數(shù)據(jù)庫系統(tǒng)來取代現(xiàn)有的數(shù)據(jù)庫系統(tǒng)。這對許多已經(jīng)運用數(shù)據(jù)庫系統(tǒng)多年并積累了大量工作數(shù)據(jù)的客戶,尤其是大客戶來說,是無法承受新舊數(shù)據(jù)間的轉(zhuǎn)換而帶來的巨大工作量及巨額開支的。 2.關(guān)系數(shù)據(jù)庫的基礎(chǔ)是關(guān)系理論,而關(guān)系理論發(fā)展到今天已相當(dāng)完備。而所謂的對象數(shù)據(jù)庫,并沒有嚴(yán)格的理論支持,在語言的完備性和查詢優(yōu)化方面都遇到了很大的障礙。,Michael Stonebraker和對象-關(guān)系型數(shù)據(jù)庫,Michael Stonebraker是Ingres的創(chuàng)始人。他是加州大學(xué)伯克利分校的教授,著名的數(shù)據(jù)庫學(xué)者,他在1992 年提出對象關(guān)系數(shù)據(jù)庫模型。 S t o n e b r a k e r 教授領(lǐng)導(dǎo)了稱為Postgres 的后Ingres 項目。這個項目的成果是非常巨大的,在現(xiàn)代數(shù)據(jù)庫的許多方面都做出的大量的貢獻(xiàn)。比如,面向?qū)ο蟮臄?shù)據(jù)庫,部分索引技術(shù),規(guī)則,過程和數(shù)據(jù)庫擴(kuò)展等方面都走在了數(shù)據(jù)庫管理系統(tǒng)的前列。,對象-關(guān)系數(shù)據(jù)庫:下一個浪潮,1.純關(guān)系型數(shù)據(jù)庫系統(tǒng)市場已逐漸飽和; 2.純面向?qū)ο笮蛿?shù)據(jù)庫系統(tǒng)除一些特殊用途外,市場極其狹??; 3.面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫才是新型數(shù)據(jù)庫系統(tǒng)的發(fā)展方向。,Stonebraker不僅對現(xiàn)有的數(shù)據(jù)庫類型及市場進(jìn)行了詳盡的分析,提出了“面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫”的基本思想,更難能可貴的是還提出了一系列具體技術(shù)實施的方法。比如,他提出的不放棄已經(jīng)非常成功的查詢語言SQL,而直接在SQL語言上進(jìn)行功能擴(kuò)展。Stonebraker的著作一面世立即受到了研究界和工業(yè)界高度重視,新版本的SQL3標(biāo)準(zhǔn)(99年發(fā)表)正是引進(jìn)面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫的許多內(nèi)容。而Stonebraker本人也在當(dāng)時被Informix花大價錢聘作技術(shù)總負(fù)責(zé)人。,對象-關(guān)系數(shù)據(jù)模型,允許用戶在關(guān)系數(shù)據(jù)庫中擴(kuò)充數(shù)據(jù)類型;,能夠在SQL中支持復(fù)雜對象;,支持繼承概念;,實現(xiàn)對象-關(guān)系數(shù)據(jù)庫系統(tǒng)最主要的方法是對關(guān)系型DBMS核心進(jìn)行擴(kuò)充。,SQL3是1999年發(fā)布的SQL標(biāo)準(zhǔn),其顯著特點之一是提供了面向?qū)ο蟮臄U(kuò)展,增加了SQL/Object Language Binding,使我們可以同時處理關(guān)系模型中的表和面向?qū)ο竽P椭械念惻c對象。,XML:Internet技術(shù)上的一次新革命,XML的全稱是“可擴(kuò)展的標(biāo)識語言(extensiblemarkuplanguage)”。1998年2月W3C組織公布了XML第一版本的標(biāo)準(zhǔn),從此Internet技術(shù)進(jìn)入了一個新的革命。如果說以http傳輸協(xié)議和超文本標(biāo)識語言HTML為標(biāo)志是第一代Internet技術(shù)的話,那么,圍繞著XML所形成的一系列標(biāo)準(zhǔn)和技術(shù)將構(gòu)成新一代的Internet技術(shù)。世界上幾乎所有的大型IT公司都在跟蹤和研究開發(fā)XML產(chǎn)品,XML文檔實例, Beijing Library Database System Concepts 26.50 Kaily Jone Silen Smith A Query Language for XML Kaily Jone ,XML數(shù)據(jù)模型,pub,library,book,article,Beijing University,(year=“2000”),title,price,author,author,title,author,(editorID=“105”),Database System Concepts,26.5,(id=“101”),(id=“102”),(id=“104”),name,name,name,A Query Language for XML,Kaily Jone,Silen Smith,Kaily Jone,Native XML 數(shù)據(jù)庫 vs. XML-Enabled 數(shù)據(jù)庫,在發(fā)展XML數(shù)據(jù)庫上,存在著兩種完全不同的方法。 第一種方法 XML-Enabled 是在不變動關(guān)系型數(shù)據(jù)庫內(nèi)核層的基礎(chǔ)上,將XML的樹型結(jié)構(gòu)數(shù)據(jù)拆散、重組轉(zhuǎn)換成關(guān)系型表格數(shù)據(jù)存入數(shù)據(jù)庫。在提取XML數(shù)據(jù)時,利用SQL語言的優(yōu)化將庫內(nèi)的表格型數(shù)據(jù)取出并還原成XML結(jié)構(gòu)型數(shù)據(jù)。 第二種方法 Native XML,也是被業(yè)界普遍認(rèn)為是代表發(fā)展方向的方法,就是發(fā)展“原生XML數(shù)據(jù)庫系統(tǒng)(Native XML Database)”。,雙向轉(zhuǎn)化,性能損耗,完整保留原有的結(jié)構(gòu)和數(shù)據(jù),破壞了原有的結(jié)構(gòu)且容易丟失數(shù)據(jù),例如節(jié)點順序,注釋等,Oracle公司是全球最大的信息管理軟件及服務(wù)供應(yīng)商,成立于1977年,總部位于美國加州Redwoodshore,Oracle是世界上第一個商品化的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),也是第一個在其全線產(chǎn)品中開發(fā)并部署100%基于互聯(lián)網(wǎng)企業(yè)軟件的公司,為世界上150個以上的國家提供數(shù)據(jù)庫、服務(wù)器、開發(fā)工具和企業(yè)應(yīng)用產(chǎn)品,還有相關(guān)的咨詢、教育和支持服務(wù)。 根據(jù)META集團(tuán)最新公布的市場研究報告,在高達(dá)130億美元的全球關(guān)系型數(shù)據(jù)庫軟件市場上,Oracle數(shù)據(jù)庫名列第一。,1.3 Oracle公司及其產(chǎn)品,Oracle數(shù)據(jù)庫,核心是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS). 數(shù)據(jù)存儲 快速恢復(fù) 數(shù)據(jù)庫安全 網(wǎng)絡(luò)結(jié)構(gòu) 客戶端/服務(wù)器,Server,Oracle網(wǎng)絡(luò)圖,基表,數(shù)據(jù)字典,ORACLE的發(fā)展,ORACLE7 (1992年) 完備的關(guān)系型數(shù)據(jù)庫管理系統(tǒng) ORACLE8(1997年6月) 主要增加了對對象模型的支持 ORACLE8I(1998年初) 有限地提供了對internet應(yīng)用的支持 ORACLE9I(2000年12月) 增加了更多的對internet應(yīng)用及電子商務(wù)的支持 ORACLE10g(2004年) 結(jié)合了最新的網(wǎng)格計算的功能 ORACLE11g (2007年7月) 引入了更多的自助式管理和自動化功能。,1.4 Oracle數(shù)據(jù)庫的最新特點,1自助式管理和自動化功能 幫助客戶降低系統(tǒng)管理成本,同時提高客戶數(shù)據(jù)庫應(yīng)用的性能、可擴(kuò)展性、可用性和安全性 Oracle數(shù)據(jù)庫11g新的管理功能包括: (1)自動SQL和存儲器微調(diào); (2)新的劃分顧問組件 自動向管理員建議,如何對表和索引分區(qū)以提高性能 (3)增強(qiáng)的數(shù)據(jù)庫集群性能診斷功能; (4)新的支持工作臺組件 其易于使用的界面向管理員呈現(xiàn)與數(shù)據(jù)庫健康有關(guān)的差錯以及如何迅速消除差錯的信息。,2Oracle Data Guard Oracle Data Guard組件可幫助客戶利用備用數(shù)據(jù)庫,以提高生產(chǎn)環(huán)境的性能,并保護(hù)生產(chǎn)環(huán)境免受系統(tǒng)故障和大面積災(zāi)難的影響。 Oracle Data Guard組件可以同時讀取和恢復(fù)單個備用數(shù)據(jù)庫,這種功能是業(yè)界獨一無二的,因此Oracle Data Guard組件可用于對生產(chǎn)數(shù)據(jù)庫的報告、備份、測試和“滾動”升級。 通過將工作量從生產(chǎn)系統(tǒng)卸載到備用系統(tǒng),Oracle Data Guard組件還有助于提高生產(chǎn)系統(tǒng)的性能,并組成一個更經(jīng)濟(jì)的災(zāi)難恢復(fù)解決方案。,3數(shù)據(jù)劃分和壓縮功能 具有極新的數(shù)據(jù)劃分和壓縮功能,可實現(xiàn)更經(jīng)濟(jì)的信息生命周期管理和存儲管理。 (1)擴(kuò)展了已有的范圍、散列和列表劃分功能,增加了間隔、索引和虛擬卷劃分功能。 (2)具有一套完整的復(fù)合劃分選項,可以實現(xiàn)以業(yè)務(wù)規(guī)則為導(dǎo)向的存儲管理。 (3)可在交易處理、數(shù)據(jù)倉庫和內(nèi)容管理環(huán)境中實現(xiàn)先進(jìn)的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)壓縮。所有數(shù)據(jù)都可以實現(xiàn)2x至3x或更高的壓縮比。,4全面回憶數(shù)據(jù)變化 Oracle數(shù)據(jù)庫11g具有Oracle全面回憶(Oracle Total Recall)組件,可幫助管理員查詢在過去某些時刻指定表格中的數(shù)據(jù)。管理員可以用這種簡單實用的方法給數(shù)據(jù)增加時間維度,以跟蹤數(shù)據(jù)變化、實施審計并滿足法規(guī)要求。,5閃回交易和“熱修補(bǔ)” (1)Oracle閃回交易 可以輕松撤銷錯誤交易以及任何相關(guān)交易 (2)并行備份和恢復(fù)功能 可改善非常大數(shù)據(jù)庫的備份和存儲性能 (3)“熱修補(bǔ)”功能 不必關(guān)閉數(shù)據(jù)庫就可以進(jìn)行數(shù)據(jù)庫修補(bǔ),提高了系統(tǒng)可用性 (4)數(shù)據(jù)恢復(fù)顧問 可自動調(diào)查問題、充分智能地確定恢復(fù)計劃并處理多種故障情況,從而可以極大地縮短數(shù)據(jù)恢復(fù)所需的停機(jī)時間。,6. Oracle快速文件 Oracle數(shù)據(jù)庫11g具有在數(shù)據(jù)庫中存儲大型對象的下一代功能,這些對象包括圖像、大型文本對象或一些先進(jìn)的數(shù)據(jù)類型,如XML、醫(yī)療成像數(shù)據(jù)和三維對象。 Oracle快速文件(Oracle Fast Files)組件使得數(shù)據(jù)庫應(yīng)用的性能完全比得上文件系統(tǒng)的性能。通過存儲更廣泛的企業(yè)信息并迅速輕松地檢索這些信息,企業(yè)可以對自己的業(yè)務(wù)了解得更深入,并更快地對業(yè)務(wù)做出調(diào)整以適應(yīng)市場變化。,7.更快的XML XML DB是Oracle數(shù)據(jù)庫的一個組件,可幫助客戶以本機(jī)方式存儲和操作XML數(shù)據(jù)。在Oracle數(shù)據(jù)庫11g中, XML DB的性能獲得了極大的提高。,8. Continuous Query Notification 新的連續(xù)查詢通知(Continuous Query Notification)組件在數(shù)據(jù)庫數(shù)據(jù)發(fā)生重要變化時,會立即通知應(yīng)用軟件,不會出現(xiàn)由于不斷輪詢而加重數(shù)據(jù)庫負(fù)擔(dān)的情況。,9.連接匯合和查詢結(jié)果高速緩存 (1)查詢結(jié)果高速緩存 通過高速緩存和重用經(jīng)常調(diào)用的數(shù)據(jù)庫查詢以及數(shù)據(jù)庫和應(yīng)用層的功能,改善了應(yīng)用的性能和可擴(kuò)展性。 (2)數(shù)據(jù)庫駐留連接匯合(Database Resident Connection Pooling) 通過為非多線程應(yīng)用提供連接匯合,提高了Web系統(tǒng)的可擴(kuò)展性。,10.增強(qiáng)應(yīng)用開發(fā) (1)新的Java實時編譯器,無需第三方編譯器就可以更快地執(zhí)行數(shù)據(jù)庫Java程序 (2)為開發(fā)在Oracle平臺上運行的.NET應(yīng)用,實現(xiàn)了與Visual Studio 2005的本機(jī)集成 (3)與Oracle快捷應(yīng)用配合使用的Access遷移工具; (4)SQL Developer可以輕松建立查詢,以快速編制SQL和PL/SQL例程代碼。,1.5 與其他數(shù)據(jù)庫系統(tǒng)比較,課程安排,SQL基礎(chǔ) PL/SQL基礎(chǔ)及應(yīng)用 Oracle體系結(jié)構(gòu) Oracle數(shù)據(jù)庫服務(wù)器例程 Oracle實例管理 Oracle物理結(jié)構(gòu),Oracle邏輯結(jié)構(gòu) 用戶和權(quán)限管理 備份與恢復(fù) 網(wǎng)絡(luò)管理 性能調(diào)優(yōu),參考資料,Oracle 9i Database Concepts Oracle 9i Database Administators Guide Oracle 9i Net Services Administrators Guide Oracle 9i Backup and Recovery Concepts PL/SQL Users Guide and Reference,