軟件數(shù)據(jù)庫的面向?qū)ο笠暯莀第1頁
軟件數(shù)據(jù)庫的面向?qū)ο笠暯莀第2頁
軟件數(shù)據(jù)庫的面向?qū)ο笠暯莀第3頁
軟件數(shù)據(jù)庫的面向?qū)ο笠暯莀第4頁
軟件數(shù)據(jù)庫的面向?qū)ο笠暯莀第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件數(shù)據(jù)庫的面向?qū)ο笠暯钦S著越來越多在線數(shù)據(jù)的產(chǎn)生,并且通過計算機網(wǎng)絡(luò)越來越容易獲得,數(shù)據(jù)庫也變得更加重要了。今天,眾多領(lǐng)域的發(fā)展需求,例如,多媒體數(shù)據(jù)庫,互動視頻,流數(shù)據(jù),數(shù)字圖書館等精彩視頻節(jié)目,人類基因圖和NASA的地球觀測系統(tǒng)等科學(xué)項目,以及公司對鞏固它們的決策支持處理和有用信息挖掘的渴望,正推動著數(shù)據(jù)庫領(lǐng)域的發(fā)展。在商業(yè)上,數(shù)據(jù)庫管理系統(tǒng)代表著最大和最具活力的市場之一。所以,有關(guān)數(shù)據(jù)庫系統(tǒng)的研究回報豐厚!關(guān)鍵字:關(guān)系數(shù)據(jù)庫系統(tǒng),面向?qū)ο?,概念模式,視圖一從歷史的角度回顧從數(shù)據(jù)庫的早期開始,存儲和操縱數(shù)據(jù)就一直是主要的應(yīng)用焦點。第一個通用的DBMS是由Charles Bechman

2、于20世紀60年代早期在通用電器公司設(shè)計的,稱為集成數(shù)據(jù)存儲(Integrated Data Store).它奠定了網(wǎng)狀數(shù)據(jù)模型的基礎(chǔ)。網(wǎng)狀數(shù)據(jù)模型由數(shù)據(jù)系統(tǒng)語言協(xié)會(CODASYL)標準化,并在整個20世紀60年代對數(shù)據(jù)庫系統(tǒng)產(chǎn)生了巨大的影響。由于Bachman在數(shù)據(jù)庫領(lǐng)域的貢獻,他成為第一個ACM圖靈獎(相當于計算機科學(xué)界的諾貝爾獎)的獲得者,并于1973年接受了這一獎勵。20世紀60年代末期,IBM成功開發(fā)了信息管理系統(tǒng)(IMS)DBMS。直至今天,它還在許多系統(tǒng)中使用。IMS奠定了另一個數(shù)據(jù)表達框架層次數(shù)據(jù)模型的基礎(chǔ)。同時,美國航空公司和IBM聯(lián)合開發(fā)出用于飛機訂票的SABRE系統(tǒng),它

3、允許多個用戶通過計算機網(wǎng)絡(luò)存取相同數(shù)據(jù)。有趣的是,今天SABRE系統(tǒng)被用于支持廣為流行的基于Web的旅游服務(wù),如Travelocity。1970年,Edgar Codd在IBM的San Jose研究實驗室推出了一種新的,稱為關(guān)系數(shù)據(jù)模型的數(shù)據(jù)表達框架。這后來被證明是數(shù)據(jù)庫系統(tǒng)開發(fā)中的分水嶺:它推進了幾個基于關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng)的快速開發(fā),并取得大量的理論成果,從而為數(shù)據(jù)庫領(lǐng)域奠定了堅實的基礎(chǔ)。Coff因為其杰出的工作而獲得了1981年圖靈獎。數(shù)據(jù)庫系統(tǒng)作為學(xué)術(shù)學(xué)科已經(jīng)成熟了,而且關(guān)系型DBMS的普及改變了商業(yè)應(yīng)用前景。其益處被廣泛認同,使用DBMS來管理公司數(shù)據(jù)變得很普遍。在20世紀80年

4、代,關(guān)系模型鞏固了它作為主導(dǎo)DBMS模式的地位,而數(shù)據(jù)庫系統(tǒng)繼續(xù)被廣泛使用。作為IBM的 System R項目的一部分而開發(fā)的關(guān)系數(shù)據(jù)庫SQL查詢語言,現(xiàn)在成為了標準查詢語言。SQL于20世紀80年代末期得到標準化,目前的標準SQL:1999被美國國家標準協(xié)會(ANSI)和國際標準組織(ISO)接受。并發(fā)編程使用最廣的形式就是數(shù)據(jù)庫程序(稱為事務(wù))的并發(fā)執(zhí)行。用戶編寫程序時不用考慮其他程序的運行,并發(fā)執(zhí)行操作由DBMS管理。James Gray因他對DBMS事務(wù)處理領(lǐng)域的貢獻而獲得了1999圖靈獎。也許,在DBMS的發(fā)展中,最重要的事是DBMS已經(jīng)進入了因特網(wǎng)時代。第一代Web站點是把數(shù)據(jù)存儲

5、在操作系統(tǒng)的文件中,而現(xiàn)在,使用DBMS存儲數(shù)據(jù)并通過Web瀏覽器瀏覽數(shù)據(jù)已變得越來越普遍。通過Web可存取的表單界面來產(chǎn)生查詢請求,并使用諸如HTML的標記語言將查詢結(jié)果格式化,從而便于在瀏覽器中顯示。所有數(shù)據(jù)庫提供商都在增加它們的DBMS功能,使之更適于在因特網(wǎng)上部署。二物理數(shù)據(jù)庫設(shè)計簡介與數(shù)據(jù)庫設(shè)計的其他方面一樣,我們要根據(jù)數(shù)據(jù)的性質(zhì)和用途來進行物理數(shù)據(jù)庫設(shè)計。特別是,我們必須了解數(shù)據(jù)庫所必須支持的典型的工作負載,工作負載是查詢和更新的混合體。用戶有一些特定的要求,如,某些查詢或更新的執(zhí)行速度應(yīng)該有多快,或者每秒鐘必須處理多少個事務(wù)等。在物理數(shù)據(jù)庫設(shè)計過程中,工作負載的描述和用戶的需求是

6、作出許多決策的基礎(chǔ)。 為了獲得一個好的物理數(shù)據(jù)庫設(shè)計,我們還要調(diào)整系統(tǒng)的性能以滿足用戶的需求。設(shè)計者需要明白DBMS工作的細節(jié),特別是DBMS所支持的索引和查詢處理技術(shù)。如果數(shù)據(jù)庫允許多個用戶并發(fā)訪問,或者是分布式數(shù)據(jù)庫,那么這是設(shè)計任務(wù)就變得更復(fù)雜了,還需要考慮DBMS的其他特點。三數(shù)據(jù)庫負載一個好的數(shù)據(jù)庫設(shè)計的關(guān)鍵是對所希望的負載有準確的描述。一個工作負載的描述包括以下幾個部分:1.一個查詢及其出現(xiàn)的頻率的列表,一個查詢的頻率指該查詢在所有的查詢和更新中所占的比例。2.更新及其出現(xiàn)的頻率列表。3.每一種查詢和更新類型所對應(yīng)的性能目標。對于在工作負載中的每個查詢,我們必須確定:需要訪問哪些關(guān)

7、系。需要保留那些屬性(在SELECT子句中)。在那些屬性上有選擇或連接條件(在WHERE子句中),以及這些條件具有多大的選擇性。類似地,對工作負載中每個更新,我們必須確定:在哪些屬性上有選擇或連接條件(在WHERE語句中),以及有多大的選擇性。更新的類型(INSERT,DELETE,UPDATE)以及所要更新的關(guān)系。對于UPDATE命令,要更新哪些字段。典型的查詢和更新都帶有參數(shù),例如,借款或存款操作都涉及某個特定的帳號。這些參數(shù)的值決定了選擇和連接條件的選擇性。更新中包括一個查詢部分,用來找到目標元組。這個部分可以得益于一個好的物理設(shè)計和索引。另一方面,更新操作一般還要做一些額外的工作,以維

8、護所修改的屬性上的索引。這樣,盡管查詢總可以從索引受益,但是索引也可能使一個給定的更新加快或變慢。在生成索引時,設(shè)計者應(yīng)該在頭腦中進行一下權(quán)衡。四數(shù)據(jù)庫調(diào)整的必要性準確地講,在系統(tǒng)設(shè)計的初始階段,我們很難得到工作負載的詳細信息。所以在系統(tǒng)設(shè)計完以后,對數(shù)據(jù)庫的調(diào)整就變得很重要,我們必須按照實際的使用模式來對初始的設(shè)計進行求精,以便獲得好的性能。對于如何區(qū)別數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫調(diào)整,人們有不同的看法。一種看法認為,一旦初始模式、索引和聚簇決策已經(jīng)確定,那么設(shè)計過程也就結(jié)束了。接下去對概念模式或索引的任何改變,都被認為是對數(shù)據(jù)庫進行調(diào)整的活動。另一種看法是,對于概念模式的進一步求精(和受這些改進影響

9、的物理設(shè)計決策)也應(yīng)該是物理設(shè)計過程的一部分。如何區(qū)分設(shè)計和調(diào)整并不是很重要的(五)數(shù)據(jù)庫調(diào)整簡介當數(shù)據(jù)庫初始設(shè)計完成后,數(shù)據(jù)庫的實際使用提供了一些有用的詳細信息,它們可以用來對初始設(shè)計進行進一步求精。先前對工作負載的很多假設(shè)都可以用觀察到的模式來代替;一般來講,一些初始的關(guān)于工作負載的說明將得到驗證,其中有一些可能是錯誤的。關(guān)于數(shù)據(jù)大小的初始猜測可以用實際的數(shù)據(jù)庫的統(tǒng)計數(shù)字來代替(盡管這個信息會隨著系統(tǒng)的不斷進化而變化)。對于查詢的仔細監(jiān)測可龕發(fā)現(xiàn)一些預(yù)測不到的問題,例如,優(yōu)化器可能不使用某些索引,盡管這些索引可以產(chǎn)生好的計劃。 為了獲得可能的最好的性能,對數(shù)據(jù)庫進行連續(xù)的調(diào)整是很重要的。(

10、六)調(diào)整概念模式在數(shù)據(jù)庫設(shè)計期間,我們也許會意識到,在給定工作負載和任何一組可行的物理設(shè)計選擇的情況下,當前選擇的關(guān)系模式并不能滿足性能目標。如果是這樣,我們也許必須重新設(shè)計概念模式(而且還要重新檢查那些受到影響的物理設(shè)計決策)。在系統(tǒng)已經(jīng)運行了一段時間后,我們也許會認識到在初始設(shè)計期間或之后重新設(shè)計的必要性。一旦數(shù)據(jù)庫設(shè)計完成并且已經(jīng)被裝載數(shù)據(jù)了,如果要改變概念模式,就需要做出很大的努力去映射受到影響的關(guān)系的內(nèi)容。然而,有時需要根據(jù)使用系統(tǒng)的經(jīng)驗來對概念模式進行修正?,F(xiàn)在,我們從性能的角度來考慮概念模式(重新)設(shè)計中的一些問題。在對概念模式進行調(diào)整時我們必須考慮以下幾點:我們也許應(yīng)當采用3N

11、F設(shè)計來代替BCNF設(shè)計。如果將一個關(guān)系分解為3NF或BCNF有兩種方式,那么應(yīng)該根據(jù)工作負載來進行選擇。有時我們需要對一個應(yīng)景是BCNF的關(guān)系進一步分解。在某些情況下可能進行反規(guī)范化。也就是,可能將一組由一個大關(guān)系分解而得到的關(guān)系用它們的原大關(guān)系代替,盡管這樣會引起一些冗余的問題。而且,我們可能在特定的關(guān)系上加上一些字段來加速一些重要的查詢,即使這樣會導(dǎo)致對一些信息的冗余存儲(從而使得模式既不是3NF也不是BCNF)。關(guān)于規(guī)范化的討論集中在分解技術(shù)上,實際上就是對關(guān)系的垂直劃分。另一個技術(shù)是對關(guān)系進行水平劃分,這將導(dǎo)致兩個具有相同模式的關(guān)系。這里需要注意的是,這里討論的不是一個關(guān)系元組的物理

12、劃分;而是想創(chuàng)建兩個不同的關(guān)系(可能具有不同的約束和索引)。另外,在重新設(shè)計概念模式時,特別是如果調(diào)整一個現(xiàn)存數(shù)據(jù)庫的模式時,我們需要考慮是否定義視圖來向用戶隱藏這些改變,因為對于用戶來說原始的模式可能更自然一些。(七)調(diào)整查詢和視圖如果一個查詢比預(yù)計的要慢得多,那么我們就必須仔細檢查并找出問題。通過對查詢進行重寫,并且進行一些索引的調(diào)整,常常能夠解決問題。如果在視圖上的一些查詢運行得很慢,也可以進行類似的調(diào)整。當調(diào)整一個查詢時,第一件事就是確定系統(tǒng)是否使用了你所希望的執(zhí)行計劃。由于一些原因,有時系統(tǒng)可能沒有找到最好的執(zhí)行計劃。下面是很多優(yōu)化器都不能有效處理的一些情況:含有空值的選擇條件;選擇

13、條件含有算數(shù)或字符串表達式,或者使用OR進行條件連接。例如,如果在WHERE語句中有一個條件E.age=2*D.age,那么優(yōu)化器可能會正確利用現(xiàn)有的在E.age上的索引,但是不能正確利用在D.age上的索引。當將條件變?yōu)镋.age/2=D.age時,將會出現(xiàn)相反的情況。不能識別出一個復(fù)雜的執(zhí)行計劃,例如不能發(fā)現(xiàn)在GROUP BY語句中含有的聚集操作的查詢中的只讀索引掃描計劃。如果優(yōu)化器不太聰明,不能發(fā)現(xiàn)最好的執(zhí)行計劃(使用DBMS支持的一些訪問方法和執(zhí)行策略),一些系統(tǒng)允許用戶通過提供給優(yōu)化器一些提示來指導(dǎo)計劃的選擇。例如,用戶可能強迫系統(tǒng)使用特定的索引或連接的方法和順序。如果一個用戶希望以

14、這種方式來指導(dǎo)優(yōu)化,那么他應(yīng)該對優(yōu)化和給定的DBMS的能力有一個全面的理解。(八)其他專題移動數(shù)據(jù)庫便攜計算機和無線通信的應(yīng)用創(chuàng)建了一批移動數(shù)據(jù)庫用戶。一方面,這些用戶只是簡單地通過網(wǎng)絡(luò)來訪問數(shù)據(jù)庫,類似于分布式DBMS。另一方面,不論是網(wǎng)絡(luò),還是數(shù)據(jù)和用戶,都有一些新的特性,這就影響了DBMS中的許多構(gòu)件,包括查詢引擎,事務(wù)管理程序和虎伏管理程序。通過無線連接的用戶帶寬是以太網(wǎng)的1/10左右,是ATM網(wǎng)的1/100左右。因此通信開銷比I/O和CPU開銷更高。用戶的位置通常是變動的,而且移動計算機的電池壽命是有限的。因此,除內(nèi)容傳輸開銷以及因位置的頻繁變動而產(chǎn)生的開銷外,真正的通信開銷體現(xiàn)在連

15、接時間和電池的使用上。通常將數(shù)據(jù)生成多個副本,以使從不同位置的訪問開銷最小化。當一個用戶移動的時候,一個事務(wù)可能需要從多個數(shù)據(jù)庫服務(wù)器中訪問數(shù)據(jù),此時丟失連接的可能性比傳統(tǒng)的網(wǎng)絡(luò)要大。因此,集中式的事務(wù)管理也是不實際的,尤其是有些數(shù)據(jù)存儲在移動計算機上更是這樣。事實上,我們可能不得不放棄具有ACID特性的事務(wù),而是為用戶程序開發(fā)其他的一致性方法。主存數(shù)據(jù)庫由于主存的價格已經(jīng)很便宜了,許多應(yīng)有可以購買足夠的主存來保存整個數(shù)據(jù)庫。而且,現(xiàn)代的CPU使用64位的尋址,有了很大的尋址空間。一些商用的數(shù)據(jù)庫已有幾個GB的主存。這促使重新考慮一些基本的DBMS設(shè)計決策,因為對于駐留內(nèi)存的數(shù)據(jù)庫,磁盤訪問不再是主要的處理時間。主存也不能幸免于系統(tǒng)崩潰,所以仍然需要實現(xiàn)日志和恢復(fù)機制,以保證事務(wù)的原子性和持久性。在提交事務(wù)的時候,日志記錄必須寫到固定的存儲中。這個處理可能會變成一個瓶頸。為了使該問題最小化,不是每完成一個事務(wù)就進行提交,而是收集已完成的事務(wù),然后批

溫馨提示

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

評論

0/150

提交評論