資源描述:
《關(guān)系數(shù)據(jù)模型(基本概念和ER轉(zhuǎn)換)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、2關(guān)系模型1三種主要的數(shù)據(jù)模型:層次模型網(wǎng)狀模型關(guān)系模型其中關(guān)系模型簡(jiǎn)單靈活,并有著堅(jiān)實(shí)的理論基礎(chǔ),已成為當(dāng)前最流行的數(shù)據(jù)模型。本章主要講述:關(guān)系數(shù)據(jù)庫(kù)的基本概念關(guān)系的定義和性質(zhì)E/R到關(guān)系的轉(zhuǎn)換2.1引子2層次模型用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型(hierarchicalmodel)。層次模型的特點(diǎn)是:記錄之間的聯(lián)系通過指針來實(shí)現(xiàn),查詢效率較高。與文件系統(tǒng)的數(shù)據(jù)管理方式相比,層次模型是一個(gè)飛躍,用戶和設(shè)計(jì)者面對(duì)的是邏輯數(shù)據(jù)而不是物理數(shù)據(jù),用戶不必花費(fèi)大量的精力考慮數(shù)據(jù)的物理細(xì)節(jié)。邏輯數(shù)據(jù)與物理數(shù)據(jù)之間的
2、轉(zhuǎn)換由DBMS完成。層次模型有兩個(gè)缺點(diǎn):一是只能表示1:N聯(lián)系,雖然系統(tǒng)有多種輔助手段實(shí)現(xiàn)M:N聯(lián)系但較復(fù)雜,用戶不易掌握;二是由于層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)的查詢和更新操作很復(fù)雜,因此應(yīng)用程序的編寫也比較復(fù)雜。3網(wǎng)狀模型用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型(networkmodel)。網(wǎng)狀模型的特點(diǎn)是:記錄之間聯(lián)系通過指針實(shí)現(xiàn),M:N聯(lián)系也容易實(shí)現(xiàn)(一個(gè)M:N聯(lián)系可拆成兩個(gè)1:N聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點(diǎn)是:數(shù)據(jù)結(jié)構(gòu)復(fù)雜和編程復(fù)雜。42.2關(guān)系模型由來關(guān)系模型是發(fā)展較晚的一種模型,1970年美國(guó)IB
3、M公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型。他發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解釋了關(guān)系模型,定義了某些關(guān)系代數(shù)運(yùn)算,研究了數(shù)據(jù)的函數(shù)相關(guān)性,定義了關(guān)系的第三范式,從而開創(chuàng)了數(shù)據(jù)庫(kù)的關(guān)系方法和數(shù)據(jù)規(guī)范化理論的研究,他為此獲得了1981年的圖靈獎(jiǎng)。此后許多人把研究方向轉(zhuǎn)到關(guān)系方法上,陸續(xù)出現(xiàn)了關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。1977年IBM公司研制的關(guān)系數(shù)據(jù)庫(kù)的代表SystemR開始運(yùn)行,其后又進(jìn)行了不斷的改進(jìn)和擴(kuò)充,出現(xiàn)了基于
4、SystemR的數(shù)據(jù)庫(kù)系統(tǒng)SQL/DB。520世紀(jì)80年代以來,計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ)。關(guān)系數(shù)據(jù)庫(kù)已成為目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫(kù)系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫(kù)系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。61.關(guān)系模型的基本概念關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一個(gè)“二維表框架”組成的集合,每個(gè)二維表又可稱為關(guān)系,所以關(guān)系模型是“關(guān)系框架”的集合。關(guān)系模型與
5、層次模型、網(wǎng)狀模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念之上的。表?熟悉,是不是很簡(jiǎn)單啊???7提問【要求】:構(gòu)建一用來描述在校學(xué)生的數(shù)據(jù)庫(kù),要求記錄的學(xué)生如下屬性:學(xué)號(hào)、姓名、年齡、系別。此設(shè)計(jì)很好的將學(xué)號(hào)、姓名、年齡、系別屬性記錄了下來,并且支持檢索、插入、刪除、更新操作。然而這是不是一個(gè)完美的設(shè)計(jì)呢?8再提問問題1:學(xué)校有幾個(gè)系?(答:3個(gè))問題2:經(jīng)管系有幾個(gè)學(xué)生?(答:2個(gè))問題你是怎么知道的?---數(shù)出來的?!問題1的答案是通過去掉系別列中的重復(fù)行后,數(shù)一數(shù)剩余的行數(shù)得到的。問題2的答案是通過數(shù)一數(shù)系別為經(jīng)管系的行數(shù)得到的。9新要求
6、如下幾個(gè)要求:1、學(xué)校開設(shè)一個(gè)新的系"藝術(shù)系",然而藝術(shù)系的學(xué)生要等到兩個(gè)月后才能招進(jìn)來。2、李四畢業(yè)了,不再是"在校學(xué)生"了,將其刪除。3、經(jīng)管系現(xiàn)要更名成"經(jīng)濟(jì)管理學(xué)院"。如何插入一個(gè)沒有學(xué)生的系呢?這是一個(gè)兩難的問題。由于學(xué)校有藝術(shù)系,為了能夠在檢索"學(xué)校有幾個(gè)系"時(shí)檢索到4,我們不得不插入一行,該行的系別字段記錄上"藝術(shù)系",而藝術(shù)系沒有學(xué)生,所以我們還得讓學(xué)號(hào)、姓名、年齡字段空著10插入藝術(shù)系問“藝術(shù)系有幾個(gè)學(xué)生”?--數(shù)?不行。解題邏輯發(fā)生變化:如果人數(shù)為1,判斷學(xué)號(hào)、姓名、年齡是否為空,如果為空則為0人,否則為1人。刪除操
7、作:如果把李四一行刪除?機(jī)械系沒有了!所以也不得不修改刪除邏輯,如果某系只剩下最后一條記錄,就不能刪除了,而起清空學(xué)號(hào)、姓名、年齡字段的內(nèi)容,這么做好嗎?更新操作:經(jīng)管系更名需要修改兩行數(shù)據(jù),假設(shè)剛剛修改完第一行,正要修改下一行,停電死機(jī)~,當(dāng)你下次開機(jī)后:經(jīng)管系、經(jīng)濟(jì)管理學(xué)院各一個(gè)11解決問題拆分成兩個(gè)實(shí)體:學(xué)生、院系規(guī)范化:將大表分解為小表的過程,目的是消除冗余和重復(fù)數(shù)據(jù),并避免插入、修改和刪除時(shí)出現(xiàn)問題用范式進(jìn)行規(guī)范化,范式有第一范式、第二范式、第三范式、第四范式、第五范式等12關(guān)系數(shù)據(jù)庫(kù)基本概念-實(shí)例教學(xué)數(shù)據(jù)庫(kù)的關(guān)系模型及其實(shí)例
8、,包含五個(gè)關(guān)系:教師關(guān)系T、學(xué)生關(guān)系S、課程關(guān)系C、選課關(guān)系SC和授課關(guān)系TC,分別對(duì)應(yīng)五張表。下面以其為例,介紹關(guān)系模型中所涉及的一些基本概念。13T(教師表)TNO教師號(hào)TN姓名SEX性別AGE年齡PR