




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)應(yīng)用河南理工大學(xué)計(jì)算機(jī)學(xué)院?jiǎn)虘?yīng)旭qiaoyingxu@網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)應(yīng)用第一章緒論1.1數(shù)據(jù)庫(kù)基本概念數(shù)據(jù)庫(kù)(Database)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)數(shù)據(jù)數(shù)據(jù)(Data)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象數(shù)據(jù)的定義描述事物的符號(hào)記錄數(shù)據(jù)的種類文本、圖形、圖像、音頻、視頻、學(xué)生的檔案記錄、貨物的運(yùn)輸情況等數(shù)據(jù)的特點(diǎn)數(shù)據(jù)與其語(yǔ)義是不可分的數(shù)據(jù)舉例數(shù)據(jù)的含義稱為數(shù)據(jù)的語(yǔ)義,數(shù)據(jù)與其語(yǔ)義是不可分的。例如93是一個(gè)數(shù)據(jù)語(yǔ)義1:學(xué)生某門課的成績(jī)語(yǔ)義2:某人的體重語(yǔ)義3:計(jì)算機(jī)系2003級(jí)學(xué)生人數(shù)語(yǔ)義4:請(qǐng)同學(xué)給出。。。數(shù)據(jù)舉例學(xué)生檔案中的學(xué)生記錄(李明,男,197205,江蘇南京市,計(jì)算機(jī)系,1990)語(yǔ)義:學(xué)生姓名、性別、出生年月、籍貫、所在院系、入學(xué)時(shí)間解釋:李明是個(gè)大學(xué)生,1972年5月出生,江蘇南京市人,1990年考入計(jì)算機(jī)系數(shù)據(jù)庫(kù)(續(xù))數(shù)據(jù)庫(kù)的定義數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合數(shù)據(jù)庫(kù)(續(xù))數(shù)據(jù)庫(kù)的特征最小冗余數(shù)據(jù)獨(dú)立性較高安全性完整性數(shù)據(jù)共享數(shù)據(jù)庫(kù)管理系統(tǒng)什么是DBMS數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。DBMS的用途科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)DBMS的主要功能數(shù)據(jù)定義數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)操縱功能數(shù)據(jù)庫(kù)的事務(wù)管理和運(yùn)行管理數(shù)據(jù)庫(kù)的建立和維護(hù)功能
1.2數(shù)據(jù)模型數(shù)據(jù)模型在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬數(shù)據(jù)模型應(yīng)滿足三方面要求能比較真實(shí)地模擬現(xiàn)實(shí)世界容易為人所理解便于在計(jì)算機(jī)上實(shí)現(xiàn)兩大類數(shù)據(jù)模型數(shù)據(jù)模型分為兩類(分屬兩個(gè)不同的層次)(1)概念模型也稱信息模型,它是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,用于數(shù)據(jù)庫(kù)設(shè)計(jì)。(2)邏輯模型和物理模型邏輯模型主要包括網(wǎng)狀模型、層次模型、關(guān)系模型、面向?qū)ο竽P偷?,按?jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于DBMS實(shí)現(xiàn)。物理模型是對(duì)數(shù)據(jù)最底層的抽象,描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,在磁盤或磁帶上的存儲(chǔ)方式和存取方法。1.2.1概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次是數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言對(duì)概念模型的基本要求較強(qiáng)的語(yǔ)義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語(yǔ)義知識(shí)簡(jiǎn)單、清晰、易于用戶理解。概念模型的一種表示方法實(shí)體-聯(lián)系方法(E-R方法)用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型E-R方法也稱為E-R模型E-R圖實(shí)體型用矩形表示,矩形框內(nèi)寫明實(shí)體名。學(xué)生教師E-R圖(續(xù))屬性用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)學(xué)生學(xué)號(hào)年齡性別姓名E-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系屬性的表示方法課程選修學(xué)生mn成績(jī)聯(lián)系的屬性:聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無(wú)向邊與該聯(lián)系連接起來(lái)陳品山1968年,陳品山于國(guó)立臺(tái)灣大學(xué)畢業(yè),之后赴美國(guó)深造。1970年獲哈佛大學(xué)計(jì)算機(jī)科學(xué)和應(yīng)用數(shù)學(xué)碩士學(xué)位,1973年獲哈佛大學(xué)計(jì)算機(jī)科學(xué)和應(yīng)用數(shù)學(xué)博士學(xué)位。之后,他曾先后在麻省理工學(xué)院(1974-1978,1986-1987),加州大學(xué)洛杉磯分校(1978-1984),哈佛大學(xué)(1990-1991)等學(xué)府從事教學(xué)和研究,從1983年至今任路易斯安納州立大學(xué)計(jì)算機(jī)科學(xué)系MurphyJ.Foster杰出講座教授
陳品山博士于1976年3月ACMTransactionsonDatabaseSystems上發(fā)表了《TheEntity-RelationshipModel--TowardaUnifiedViewofData》一文。由于大眾廣泛使用實(shí)體聯(lián)系模型,而這篇文章已成為計(jì)算機(jī)科學(xué)38篇被廣泛引用的論文中之一。且被譽(yù)為全世界最具計(jì)算機(jī)軟件開發(fā)技術(shù)的16位科學(xué)家之一。最常用的數(shù)據(jù)模型非關(guān)系模型層次模型(HierarchicalModel)網(wǎng)狀模型(NetworkModel)關(guān)系模型(RelationalModel)層次模型層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型
層次模型用樹形結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系層次數(shù)據(jù)庫(kù)系統(tǒng)的典型代表是IBM公司的IMS(InformationManagementSystem)數(shù)據(jù)庫(kù)管理系統(tǒng)IMS數(shù)據(jù)庫(kù)IMS數(shù)據(jù)庫(kù)是目前世界上廣泛使用的層次型數(shù)據(jù)庫(kù),是由IBM公司于1966~1968年為NASA(美國(guó)國(guó)家航空航天局)的阿波羅登月計(jì)劃專門開發(fā)的。在阿波羅登月計(jì)劃之后,IMS數(shù)據(jù)庫(kù)又被廣泛應(yīng)用在金融、保險(xiǎn)、制造等多個(gè)行業(yè),至今已近40年。層次型數(shù)據(jù)庫(kù)是一種以樹型邏輯拓?fù)浣Y(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)和查找的數(shù)據(jù)庫(kù)體系,特別適合于存儲(chǔ)銀行,保險(xiǎn)等總賬戶、子賬戶和明細(xì)記錄的多層次邏輯結(jié)構(gòu),也非常適合支持高可用性、高性能、高容量、高完整性和低成本的關(guān)鍵性聯(lián)機(jī)操作應(yīng)用程序和數(shù)據(jù),被國(guó)外的大型銀行、保險(xiǎn)等金融企業(yè)廣泛使用。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為層次模型。1.有且只有一個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)2.根以外的其它結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)層次模型中的幾個(gè)術(shù)語(yǔ)根結(jié)點(diǎn),雙親結(jié)點(diǎn),兄弟結(jié)點(diǎn),葉結(jié)點(diǎn)層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))
R1
根結(jié)點(diǎn)
R2
兄弟結(jié)點(diǎn)
R3
葉結(jié)點(diǎn)
R4
兄弟結(jié)點(diǎn)
R5
葉結(jié)點(diǎn)
葉結(jié)點(diǎn)層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))層次模型的特點(diǎn):結(jié)點(diǎn)的雙親是唯一的只能直接處理一對(duì)多的實(shí)體聯(lián)系每個(gè)記錄類型可以定義一個(gè)排序字段,也稱為碼字段任何記錄值只有按其路徑查看時(shí),才能顯出它的全部意義沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))
根結(jié)點(diǎn)葉結(jié)點(diǎn)記錄型系的子女結(jié)點(diǎn)記錄型教員的雙親結(jié)點(diǎn)字段葉結(jié)點(diǎn)層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))層次模型的數(shù)據(jù)操縱與完整性約束無(wú)相應(yīng)的雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性層次模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)層次數(shù)據(jù)模型簡(jiǎn)單,對(duì)具有一對(duì)多的層次關(guān)系的部門描述自然、直觀,容易理解性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型層次數(shù)據(jù)模型提供了良好的完整性支持缺點(diǎn)多對(duì)多聯(lián)系表示不自然對(duì)插入和刪除操作的限制多查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)層次命令趨于程序化網(wǎng)狀模型網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)采用網(wǎng)狀模型作為數(shù)據(jù)的組織方式實(shí)際系統(tǒng)CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE網(wǎng)狀數(shù)據(jù)庫(kù)網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)采用網(wǎng)狀模型作為數(shù)據(jù)的組織方式網(wǎng)狀模型滿足下面兩個(gè)條件的基本層次聯(lián)系的集合:1.允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親;2.一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)表示方法(與層次數(shù)據(jù)模型相同)實(shí)體型:用記錄類型描述每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型(實(shí)體)屬性:用字段描述每個(gè)記錄類型可包含若干個(gè)字段聯(lián)系:用結(jié)點(diǎn)之間的連線表示記錄類型(實(shí)體)之間的一對(duì)多的父子聯(lián)系網(wǎng)狀模型與層次模型的區(qū)別網(wǎng)狀模型允許多個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn)網(wǎng)狀模型允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn)網(wǎng)狀模型允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系(復(fù)合聯(lián)系)網(wǎng)狀模型可以更直接地去描述現(xiàn)實(shí)世界層次模型實(shí)際上是網(wǎng)狀模型的一個(gè)特例網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀模型中子女結(jié)點(diǎn)與雙親結(jié)點(diǎn)的聯(lián)系可以不唯一要為每個(gè)聯(lián)系命名,并指出與該聯(lián)系有關(guān)的雙親記錄和子女記錄R1與R3之間的聯(lián)系L1R2與R3之間的聯(lián)系L2
網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)能夠更為直接地描述現(xiàn)實(shí)世界,如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親具有良好的性能,存取效率較高缺點(diǎn)結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫(kù)的結(jié)構(gòu)就變得越來(lái)越復(fù)雜,不利于最終用戶掌握DDL、DML語(yǔ)言復(fù)雜,用戶不容易使用關(guān)系模型關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)的組織方式
1970年美國(guó)IBM公司SanJose研究室的研究員E.F.Codd首次提出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都支持關(guān)系模型
埃德加·考特1981年的圖靈獎(jiǎng)關(guān)系數(shù)據(jù)庫(kù)之父參加了IBM第一臺(tái)科學(xué)計(jì)算機(jī)701以及第一臺(tái)大型晶體管計(jì)算機(jī)STRETCH的邏輯設(shè)計(jì),主持了第一個(gè)有多道程序設(shè)計(jì)能力的操作系統(tǒng)的開發(fā)考特原是英國(guó)人,1923年8月19日生于英格蘭中部的港口城市波特蘭。第二次世界大戰(zhàn)爆發(fā)以后,年輕的考特應(yīng)征入伍在皇家空軍服役,1942至1945年期間任機(jī)長(zhǎng),參與了許多重大空戰(zhàn),為反法西斯戰(zhàn)爭(zhēng)立下了汗馬功勞。二戰(zhàn)結(jié)束以后,考特上牛津大學(xué)學(xué)習(xí)數(shù)學(xué),于1948年取得學(xué)士學(xué)位以后到美國(guó)謀求發(fā)展。他先后在美國(guó)和加拿大工作,參加了IBM第一臺(tái)科學(xué)計(jì)算機(jī)701以及第一臺(tái)大型晶體管計(jì)算機(jī)STRETCH的邏輯設(shè)計(jì),主持了第一個(gè)有多道程序設(shè)計(jì)能力的操作系統(tǒng)的開發(fā)。他自覺硬件知識(shí)缺乏,于是在60年代初,到密歇根大學(xué)進(jìn)修計(jì)算機(jī)與通信專業(yè)(當(dāng)時(shí)他已年近40),并于1963年獲得碩士學(xué)位,1965年取得博士學(xué)位。這使他的理論基礎(chǔ)更加扎實(shí),專業(yè)知識(shí)更加豐富。加上他在此之前十幾年實(shí)踐經(jīng)驗(yàn)的積累,終于在1970年迸發(fā)出智慧的閃光,為數(shù)據(jù)庫(kù)技術(shù)開辟了一個(gè)新時(shí)代。關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。學(xué)號(hào)姓名年齡性別系名年級(jí)2005004王小明19女社會(huì)學(xué)20052005006黃大鵬20男商品學(xué)20052005008張文斌18女法律2005………………學(xué)生登記表屬性元組關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))例1學(xué)生、系、系與學(xué)生之間的一對(duì)多聯(lián)系:學(xué)生(學(xué)號(hào),姓名,年齡,性別,系號(hào),年級(jí))系(系號(hào),系名,辦公地點(diǎn))例2系、系主任、系與系主任間的一對(duì)一聯(lián)系關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))例3學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系:
學(xué)生(學(xué)號(hào),姓名,年齡,性別,系號(hào),年級(jí))課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件最基本的規(guī)范條件:關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng),不允許表中還有表圖中工資和扣除是可分的數(shù)據(jù)項(xiàng),不符合關(guān)系模型要求
職工號(hào)姓名職稱工資扣除實(shí)
發(fā)基本津貼職務(wù)房租水電86051陳平講師13051200501601122283一個(gè)工資表(表中有表)實(shí)例關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上概念單一實(shí)體和各類聯(lián)系都用關(guān)系來(lái)表示對(duì)數(shù)據(jù)的檢索結(jié)果也是關(guān)系關(guān)系模型的存取路徑對(duì)用戶透明具有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開發(fā)建立的工作關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)(續(xù))缺點(diǎn)存取路徑對(duì)用戶透明導(dǎo)致查詢效率往往不如非關(guān)系數(shù)據(jù)模型為提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化增加了開發(fā)DBMS的難度1.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵階段,其主要任務(wù)是通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。概念設(shè)計(jì)的基本方法(1)自底向上的設(shè)計(jì)方法自底向上的設(shè)計(jì)方法有時(shí)也稱為屬性綜合法。這種方法的基本點(diǎn)是將前面需求分析中收集到的數(shù)據(jù)元素作為基本輸入,通過(guò)對(duì)這些元素的分析,把它們綜合成相應(yīng)的實(shí)體或聯(lián)系。自底向上的設(shè)計(jì)方法適合于較為簡(jiǎn)單的設(shè)計(jì)對(duì)象,而對(duì)于中等規(guī)模以上的單位,數(shù)據(jù)元素常常多到幾百甚至幾千。要對(duì)這么多的數(shù)據(jù)元素進(jìn)行分析,再綜合成相應(yīng)的實(shí)體或聯(lián)系,是一件非常困難的事情。(2)自頂向下的設(shè)計(jì)方法自頂向下的設(shè)計(jì)方法從分析組織的事務(wù)活動(dòng)開始。首先識(shí)別用戶所關(guān)心的實(shí)體及實(shí)體間的聯(lián)系,建立一個(gè)初步的數(shù)據(jù)模式框架,然后再以逐步求精的方式加上必需的描述屬性,形成一個(gè)完整的局部數(shù)據(jù)模式(又稱局部視圖),最后再將這些局部視圖集成為一個(gè)統(tǒng)一的全局?jǐn)?shù)據(jù)模式(又稱全局視圖)。局部視圖的設(shè)計(jì)數(shù)據(jù)庫(kù)概念設(shè)計(jì)的過(guò)程都是由以下兩個(gè)階段組成:第一階段,劃分用戶組,建立面向特定用戶(組)的局部數(shù)據(jù)模式,即局部視圖。第二階段,將所有局部視圖集成為一個(gè)全局的數(shù)據(jù)模式,即全局視圖。局部視圖的設(shè)計(jì)步驟如下:(1)確定局部視圖的設(shè)計(jì)范圍;(2)確定實(shí)體及實(shí)體的主鍵;(3)定義實(shí)體間的聯(lián)系;(4)給實(shí)體及聯(lián)系加上描述屬性。確定局部視圖的設(shè)計(jì)范圍首先根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,然后以這一層次的數(shù)據(jù)流圖為出發(fā)點(diǎn),設(shè)計(jì)局部視圖。通常以中層數(shù)據(jù)流圖作為設(shè)計(jì)局部視圖的依據(jù)。因?yàn)轫攲訑?shù)據(jù)流圖只能反映系統(tǒng)的概貌,低層數(shù)據(jù)流圖過(guò)細(xì),而中層數(shù)據(jù)流圖則能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成。在確定局部視圖的設(shè)計(jì)范圍時(shí),有兩條原則可供參考:(1)把那些關(guān)系最密切的若干功能域所涉及到的數(shù)據(jù)盡可能地可包含在一個(gè)局部視圖內(nèi)。(2)一個(gè)局部視圖中所包含的實(shí)體數(shù)不能太多,以免過(guò)于復(fù)雜,不便理解和管理。確定實(shí)體及實(shí)體的主鍵(1)確定實(shí)體教務(wù)信息管理系統(tǒng)的學(xué)生選課子系統(tǒng)局部應(yīng)用中,學(xué)生是個(gè)實(shí)體,學(xué)生張平、李玲是學(xué)生實(shí)體中的兩個(gè)實(shí)例。課程是一個(gè)實(shí)體,操作系統(tǒng)、數(shù)據(jù)庫(kù)設(shè)計(jì)是課程實(shí)體中的兩個(gè)實(shí)例。學(xué)籍管理子系統(tǒng)的局部應(yīng)用中,學(xué)生是個(gè)實(shí)體。學(xué)生的學(xué)籍變動(dòng)情況也是一個(gè)實(shí)體,一個(gè)學(xué)生的每一次學(xué)籍變動(dòng)信息都是學(xué)籍變動(dòng)實(shí)體中的一個(gè)實(shí)例。(2)確定實(shí)體的主鍵每個(gè)實(shí)體都有一個(gè)或一組用來(lái)標(biāo)識(shí)實(shí)體中每個(gè)實(shí)例的屬性,這個(gè)或這組屬性稱之為實(shí)體的主鍵。學(xué)生實(shí)體的主鍵是學(xué)生的學(xué)號(hào);課程實(shí)體的主鍵是課程號(hào);學(xué)籍變動(dòng)實(shí)體的主鍵是學(xué)號(hào)+變動(dòng)日期;教師實(shí)體的主鍵是教師號(hào);成績(jī)實(shí)體的主鍵是學(xué)號(hào)+課程號(hào);區(qū)分實(shí)體與屬性的一般原則:(1)實(shí)體一般需要描述信息,而屬性不需要;(2)多值的屬性可考慮作為實(shí)體;定義實(shí)體聯(lián)系時(shí)應(yīng)該注意的若干點(diǎn):1)消除冗余聯(lián)系假定:每一個(gè)技術(shù)員必須參加一個(gè)工程;每一個(gè)工程有多個(gè)技術(shù)員參加;每一個(gè)工程必須使用一種技術(shù);由于聯(lián)系具有傳遞性,因此,隱含了每一個(gè)技術(shù)員必須掌握一種技術(shù)。由于聯(lián)系具有傳遞性,因此,技術(shù)員實(shí)體和技術(shù)實(shí)體間的聯(lián)系是冗余的,應(yīng)將它去掉。2)正確鑒別二元及多元聯(lián)系問(wèn)題說(shuō)明1:任何一個(gè)供應(yīng)商可向任何一個(gè)顧客供應(yīng)任何一種零件。問(wèn)題說(shuō)明2:任何一個(gè)供應(yīng)商可向任何一個(gè)顧客供應(yīng)零件,但每一個(gè)顧客訂購(gòu)的零件是一定的。問(wèn)題說(shuō)明3:任何一個(gè)供應(yīng)商可向任何一個(gè)顧客提供零件,但某個(gè)供應(yīng)商對(duì)某個(gè)顧客供應(yīng)的零件是確定的。3)防止連接陷阱所謂連接陷阱是指聯(lián)系結(jié)構(gòu)存在語(yǔ)義上的缺陷。主要原因是定義聯(lián)系時(shí)沒(méi)有仔細(xì)弄清問(wèn)題的語(yǔ)義,定義的結(jié)構(gòu)無(wú)法提供所需要的信息。連接陷阱有幾種類型:扇形陷阱、斷層陷阱以及深層陷阱。a)扇形陷阱扇形陷阱存在于從同一個(gè)實(shí)體扇出的兩個(gè)或多個(gè)一對(duì)多聯(lián)系中。教職工通過(guò)學(xué)院與系發(fā)生聯(lián)系。如果給定一個(gè)職工號(hào),要查詢?cè)撀毠な菍儆谀囊粋€(gè)系的?根據(jù)圖中提供的結(jié)構(gòu),可以確定該職工是哪一個(gè)學(xué)院的,但不能確定是該學(xué)院中的哪一個(gè)系。不能確定的主要原因是學(xué)院實(shí)體扇出的兩個(gè)一對(duì)多聯(lián)系,即雙扇結(jié)構(gòu),無(wú)法確定需要查詢的信息,于是出現(xiàn)了連接陷阱。解決上述問(wèn)題的方法是對(duì)E-R圖作適當(dāng)變換。系與教職工之間直接發(fā)生聯(lián)系,而且是一對(duì)多聯(lián)系。給定一個(gè)職工號(hào),可以確定該職工是屬于哪一個(gè)系的。但是,如果某些教職工不屬于任何系而是直屬于學(xué)院的,該結(jié)構(gòu)不能提供這方面的信息。b)斷層陷阱斷層陷阱是指因E-R圖所含的傳遞聯(lián)系而掩蓋了某些特定值的直接聯(lián)系的現(xiàn)象。c)深層陷阱深層陷阱是指兩個(gè)實(shí)體之間存在聯(lián)系,但不存在路徑。假定:每個(gè)學(xué)生可在多名教師指導(dǎo)下參加多項(xiàng)工程。每位教師可指導(dǎo)多名學(xué)生,但只允許一位教師指導(dǎo)一個(gè)學(xué)生參加一項(xiàng)工程,而不允許多位教師指導(dǎo)一名學(xué)生參加某項(xiàng)工程。存在扇形陷阱:從這個(gè)聯(lián)系結(jié)構(gòu)無(wú)法得到關(guān)于哪位教師指導(dǎo)那個(gè)學(xué)生參加哪項(xiàng)工程的信息。改進(jìn)的一種辦法是再增加一個(gè)教師對(duì)工程的聯(lián)系。在教師和工程之間添加“服務(wù)”聯(lián)系解決這個(gè)例子的最有效的辦法是將教師、學(xué)生以及工程三個(gè)實(shí)體間的聯(lián)系定義成一個(gè)三元聯(lián)系。給實(shí)體及聯(lián)系加上描述屬性當(dāng)我們已經(jīng)在一個(gè)局部應(yīng)用視圖中識(shí)別了實(shí)體、實(shí)體的主鍵以及實(shí)體間的聯(lián)系時(shí),便形成了一個(gè)局部視圖的E-R圖。然后,我們?cè)贋榫植恳晥D中的每個(gè)實(shí)體和聯(lián)系加上所有必須的其他描述屬性。聯(lián)系本身也可以有描述屬性如遇到一個(gè)屬性的分配在幾個(gè)實(shí)體或聯(lián)系中存在選擇的話,應(yīng)盡可能地避免使屬性出現(xiàn)空值的分配方案。比如教師和課程實(shí)體之間的E-R圖
如果屬性分配時(shí),找不到可以依附的實(shí)體或聯(lián)系,則可以在原模式中增加一個(gè)新的實(shí)體或聯(lián)系來(lái)解決問(wèn)題。視圖集成集成階段的主要任務(wù):歸并和重構(gòu)視圖,最后得到一個(gè)統(tǒng)一的全局實(shí)體。視圖集成集成策略一般可分為兩類:二元集成和n元集成。二元集成又可分為平衡式集成和階梯式集成;
n元集成又可分為一次多元集成和多次n元集成。(1)二元集成二元集成是一種兩兩集成方式,即每次集成的視圖數(shù)為2。二元集成方式的優(yōu)點(diǎn)是每個(gè)集成步驟上分析比較過(guò)程簡(jiǎn)單化、一致化,且有最少的分析比較次數(shù),因而成為廣泛使用的一種策略。缺點(diǎn)是集成操作的總的次數(shù)較多,并且在最后須分析檢查總體性能是否都滿足,必要時(shí)作調(diào)整。二元集成方式(2)多元集成多元集成是一種集成視圖數(shù)大于2的集成方式。一次n元集成是指一次集成n個(gè)視圖。
n元集成方式視圖集成的步驟(1)確定總的集成策略集成策略包括:在總的設(shè)計(jì)目標(biāo)范圍內(nèi)視圖集成的優(yōu)先次序、一次集成的視圖數(shù)以及初始集成序列等;(2)對(duì)視圖進(jìn)行分析比較、識(shí)別數(shù)據(jù)對(duì)象間的語(yǔ)義,揭示和解決沖突,為下一階段視圖的集成奠定基礎(chǔ)。對(duì)所有局部視圖集成后便形成了一個(gè)整體的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),對(duì)整體概念結(jié)構(gòu)進(jìn)一步驗(yàn)證,確保滿足下列條件:(1)整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,不存在各種沖突。(2)整體概念結(jié)構(gòu)能準(zhǔn)確地反映原各局部視圖結(jié)構(gòu),包括屬性、實(shí)體及實(shí)體間的聯(lián)系。(3)整體概念結(jié)構(gòu)能滿足需要分析階段所確定的所有需求。練習(xí)假設(shè)一個(gè)公司中,每個(gè)部門都有一輛小汽車,但只供具有一定資格的人使用,其ER圖模型如下:(1)如果知道了職員號(hào),那么能否知道被使用的汽車信息?(2)如果知道了汽車牌照號(hào),可否確定那個(gè)職員在使用汽車?小汽車部門職員屬于聘用(1:1)(1:1)(1:M)(1:1)(3)要確定有資格使用汽車的職員還應(yīng)增加什么信息?(4)這個(gè)ER圖還存在什么類型的鏈接陷阱?怎么消除?1.3數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)主要任務(wù):在概念設(shè)計(jì)的基礎(chǔ)上,首先利用一些映射關(guān)系得到一組關(guān)系模式集,然后用關(guān)系規(guī)范化理論對(duì)關(guān)系模式進(jìn)行優(yōu)化,以獲得質(zhì)量良好的數(shù)據(jù)庫(kù)設(shè)計(jì)。主要內(nèi)容:
E-R圖到關(guān)系模式的映射、關(guān)系模式的優(yōu)化、關(guān)系模式的調(diào)整。E-R圖到關(guān)系模式的映射E-R圖到關(guān)系模式的映射中可能會(huì)出現(xiàn)以下問(wèn)題:命名問(wèn)題所用DBMS數(shù)據(jù)類型的局限性E-R圖中數(shù)據(jù)項(xiàng)的非原子性實(shí)體到關(guān)系的映射E-R圖中的每一個(gè)實(shí)體映射為一個(gè)關(guān)系,如圖所示。屬性k是實(shí)體E的主鍵,a是普通原子屬性,r是個(gè)集合屬性,r={r1,r2,…,rn},g是聚合屬性,由原子屬性g1,g2聚合而成。因此,獨(dú)立實(shí)體E可映射為E和E’兩個(gè)關(guān)系:E(k,a,g1,g2),E’(k,ri),i=1,2,…,n式中k表示k是關(guān)系的主鍵。訂單編號(hào):
客戶名稱:
日期:
地址:
省
市商品名稱單位單價(jià)數(shù)量……商品訂單商品訂單文件1(訂單編號(hào),日期,客戶名稱,省,市)商品訂單文件2(訂單編號(hào),商品名稱,單位,單價(jià),數(shù)量)基本E-R圖映射為關(guān)系的方法(1)一對(duì)一聯(lián)系(1:1)的映射
假設(shè)有兩個(gè)實(shí)體E1和E2,它們之間具有1:1聯(lián)系
映射規(guī)則為:每一個(gè)實(shí)體都映射為一個(gè)關(guān)系;聯(lián)系可單獨(dú)映射為一個(gè)關(guān)系,也可與任何一方關(guān)系進(jìn)行合并,若聯(lián)系本身有屬性,也一并進(jìn)入關(guān)系。
映射為關(guān)系的情況有三種:方案一:每一個(gè)實(shí)體都映射為一個(gè)關(guān)系,聯(lián)系也單獨(dú)映射為一個(gè)關(guān)系。即:E1(k,a),k是主鍵;E2(h,b),h是主鍵;r(k,h,s)可選任何一方實(shí)體的主鍵作為聯(lián)系的主鍵,這里選k做主鍵,則h就是候補(bǔ)鍵。方案二:E1映射為一個(gè)關(guān)系,聯(lián)系及其屬性合并到另一個(gè)關(guān)系E2’中。即:E1(k,a)E2’(h,b,k,s),(k是候補(bǔ)鍵)。方案三:E2映射為一個(gè)關(guān)系,聯(lián)系及其屬性合并到另一個(gè)關(guān)系E1’中。即:E2(h,b)E1’(k,a,h,s),(h是候補(bǔ)鍵)。(2)一對(duì)多聯(lián)系(1:N)的映射假設(shè)有兩個(gè)實(shí)體E1和E2,它們之間具有1:N聯(lián)系映射規(guī)則為:每一個(gè)實(shí)體都映射為一個(gè)關(guān)系;聯(lián)系可單獨(dú)映射為一個(gè)關(guān)系,也可與多方(“N”的一方)關(guān)系進(jìn)行合并。若聯(lián)系本身有屬性,也一并進(jìn)入多方(“N”的一方)關(guān)系。上圖的轉(zhuǎn)換方案為:方案一:每一個(gè)實(shí)體都映射為一個(gè)關(guān)系,聯(lián)系也單獨(dú)映射為一個(gè)關(guān)系。即:
E1(k,a),k是主鍵;
E2(h,b),h是主鍵;
r(h,k,s),h做主鍵(只能選多方實(shí)體的主鍵作為聯(lián)系的主鍵),k是候補(bǔ)鍵。方案二:E1映射為一個(gè)關(guān)系,聯(lián)系及其屬性合并到多方關(guān)系E2中,得到E2’。即:
E1(k,a)
E2’(h,b,k,s),(k是候補(bǔ)鍵)。(3)多對(duì)多聯(lián)系(M:N)的映射假設(shè)有兩個(gè)實(shí)體E1和E2,它們之間具有M:N聯(lián)系,如圖所示。映射規(guī)則為:每一個(gè)實(shí)體都映射為一個(gè)關(guān)系;聯(lián)系本身也必須單獨(dú)轉(zhuǎn)換為一個(gè)關(guān)系,這個(gè)關(guān)系的屬性必須包含被它聯(lián)系的雙方實(shí)體的關(guān)鍵字,作為該關(guān)系的組合關(guān)鍵字。如果聯(lián)系本身有屬性,也應(yīng)納入關(guān)系中。上圖的轉(zhuǎn)換結(jié)果:E1(k,a)E2(h,b)r3(h,k,s),(h,k
為組合主鍵)(4)多元聯(lián)系的映射
假設(shè)有三個(gè)實(shí)體E1、E2和E3,它們之間具有M:N聯(lián)系。映射為關(guān)系的情況也只有一種:E1(k,a)E2(h,b)E3(j,c)r(k
,h
,j,s),(k
,h
,j
組成組合鍵)(5)單元聯(lián)系(自聯(lián)系)的映射假設(shè)有一個(gè)實(shí)體E1,其內(nèi)部不同實(shí)例之間存在一對(duì)多聯(lián)系。如圖所示。映射規(guī)則為:同一個(gè)實(shí)體內(nèi)部的一對(duì)多聯(lián)系,可映射為一個(gè)關(guān)系,關(guān)系中包含被它聯(lián)系的雙方個(gè)體(屬于同一實(shí)體型),如聯(lián)系本身有屬性也一并納入關(guān)系中。因此,圖6.3.35映射為關(guān)系的情況如下:E’(
k,a,k’,s)k’表示起r2作用的實(shí)體的主鍵.。關(guān)系模式的優(yōu)化優(yōu)化關(guān)系模式的方法:(1)確定函數(shù)依賴(2)對(duì)于各個(gè)關(guān)系模式之間的函數(shù)依賴進(jìn)行最小化處理,消除冗余的聯(lián)系。(3)根據(jù)規(guī)范化理論對(duì)關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。(4)根據(jù)需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析所在的應(yīng)用環(huán)境中這些關(guān)系模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。(5)對(duì)關(guān)系模式進(jìn)行必要的分解,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率。必須注意:并不是規(guī)范化程度越高的關(guān)系就越好。當(dāng)一個(gè)應(yīng)用的查詢中經(jīng)常涉及到兩個(gè)或多個(gè)關(guān)系模式的屬性時(shí),系統(tǒng)必須經(jīng)常地進(jìn)行連接運(yùn)算,而連接運(yùn)算的代價(jià)是相當(dāng)高的,可以說(shuō)關(guān)系模式操作低效的主要原因就是做連接運(yùn)算引起的。在這種情況下,第二范式甚至第一范式也許是最好的。如果一個(gè)關(guān)系模式在實(shí)際應(yīng)用中只是提供查詢,并不提供更新操作,或者很少提供更新操作,此時(shí)不會(huì)存在更新異常問(wèn)題或更新異常不是主要問(wèn)題,可以不對(duì)關(guān)系模式進(jìn)行分解。常用的分解方法有兩種:水平分解垂直分解例1:假設(shè)有一個(gè)產(chǎn)品關(guān)系模式,其中包含有出口產(chǎn)品和內(nèi)銷產(chǎn)品兩類數(shù)據(jù)。由于不同的應(yīng)用關(guān)心不同的產(chǎn)品,如一個(gè)應(yīng)用只關(guān)心進(jìn)口產(chǎn)品,而另一個(gè)應(yīng)用只關(guān)心內(nèi)銷產(chǎn)品。則可將產(chǎn)品關(guān)系模式進(jìn)行水平分解,分解為兩個(gè)關(guān)系模式,一個(gè)存放出口產(chǎn)品數(shù)據(jù),另一個(gè)存放內(nèi)銷產(chǎn)品數(shù)據(jù),如圖所示。這樣可以減少應(yīng)用存取的元組數(shù)。
水平分解舉例
例2:假設(shè)有一個(gè)職工關(guān)系模式,其中含有職工號(hào)、職工名、性別、職務(wù)、職稱、年齡、地址、郵編、電話、所在部門等描述屬性。如果應(yīng)用中經(jīng)常存取的是職工號(hào)、職工名、性別、職務(wù)、職稱數(shù)據(jù),而其他數(shù)據(jù)很少使用,則可以對(duì)職工關(guān)系模式進(jìn)行垂直分解,分解為兩個(gè)關(guān)系模式,一個(gè)存放經(jīng)常用的數(shù)據(jù),另一個(gè)存放不常用的數(shù)據(jù),如圖所示。這樣也可以減少應(yīng)用存取的數(shù)據(jù)量。垂直分解舉例例3
假定有一個(gè)選課關(guān)系表:SelectCourse(學(xué)號(hào),姓名,年齡,課程名稱,成績(jī),學(xué)分)。請(qǐng)分析關(guān)系屬于第幾范式?如果應(yīng)用中需要常常對(duì)SelectCourse關(guān)系進(jìn)行增、刪、改操作,該關(guān)系存在什么問(wèn)題?并對(duì)其設(shè)計(jì)進(jìn)行優(yōu)化。由于每個(gè)學(xué)生可以選修多門課程,而每門課程對(duì)應(yīng)一個(gè)成績(jī),因此該關(guān)系的候選關(guān)鍵字為(學(xué)號(hào),
課程名稱)。根據(jù)數(shù)據(jù)的語(yǔ)義,該關(guān)系上存在的函數(shù)依賴集為:(學(xué)號(hào),
課程名稱)
→
(姓名,
年齡,
成績(jī),
學(xué)分)
(課程名稱)
→
(學(xué)分)
(學(xué)號(hào))
→
(姓名,
年齡)
由于(學(xué)號(hào),
課程名稱)
→
(姓名,
年齡),而(學(xué)號(hào),
課程名稱)的子集“學(xué)號(hào)”也能函數(shù)決定一個(gè)學(xué)生的姓名和年齡,即(學(xué)號(hào))
→
(姓名,
年齡)。該關(guān)系存在非主屬性對(duì)候選鍵的部分函數(shù)依賴,因此該關(guān)系屬于第一范式,且存在以下問(wèn)題:
(1)
數(shù)據(jù)冗余:
同一門課程由n個(gè)學(xué)生選修,“學(xué)分”就重復(fù)n-1次;同一個(gè)學(xué)生選修了m門課程,姓名和年齡就重復(fù)了m-1次。
(2)
更新異常:
若調(diào)整了某門課程的學(xué)分,數(shù)據(jù)表中所有行的“學(xué)分”值都要更新,否則會(huì)出現(xiàn)同一門課程學(xué)分不同的情況。(3)
插入異常:
假設(shè)要開設(shè)一門新的課程,暫時(shí)還沒(méi)有人選修。這樣,由于還沒(méi)有“學(xué)號(hào)”關(guān)鍵字,課程名稱和學(xué)分也無(wú)法記錄入數(shù)據(jù)庫(kù)。
(4)
刪除異常:
假設(shè)一批學(xué)生已經(jīng)完成課程的選修,這些選修記錄就應(yīng)該從數(shù)據(jù)庫(kù)表中刪除。但是,與此同時(shí),課程名稱和學(xué)分信息也被刪除了。很顯然,這也會(huì)導(dǎo)致插入異常。
由于選課關(guān)系中的數(shù)據(jù)需要經(jīng)常更新,所以必須解決上述可能出現(xiàn)的操作異常。通過(guò)對(duì)關(guān)系進(jìn)行分解,可以將選課關(guān)系表SelectCourse改為如下三個(gè)表:
學(xué)生:Student(學(xué)號(hào),
姓名,
年齡);
課程:Course(課程名稱,
學(xué)分);選課關(guān)系:SC(學(xué)號(hào),
課程名稱,
成績(jī))。
其中Student關(guān)系上的候選鍵為“學(xué)號(hào)”,函數(shù)依賴集為{學(xué)號(hào)
→
姓名,
學(xué)號(hào)
→年齡},由于不存在非主屬性對(duì)候選鍵的部分函數(shù)依賴和傳遞函數(shù)依賴因此,Student關(guān)系是符合第三范式的。
Course關(guān)系上的候選鍵為“課程名稱,函數(shù)依賴為課程名稱
→
學(xué)分),由于不存在非主屬性對(duì)候選鍵的部分函數(shù)依賴和傳遞函數(shù)依賴,因此,Course關(guān)系是符合第三范式的。SC關(guān)系上的候選鍵為“學(xué)號(hào),課程名稱,函數(shù)依賴為(學(xué)號(hào),
課程名稱)
→
成績(jī),由于不存在非主屬性對(duì)候選鍵的部分函數(shù)依賴和傳遞函數(shù)依賴,因此,SC關(guān)系是符合第三范式的。如果需要增加、刪除以及修改學(xué)生的信息,則只需對(duì)Student關(guān)系進(jìn)行操作。如果需要增加、刪除以及修改課程的信息,則只需對(duì)Course關(guān)系進(jìn)行操作。如果需要增加、刪除以及修改選課的信息,則只需對(duì)SC關(guān)系進(jìn)行操作。通過(guò)對(duì)關(guān)系SelectCourse的分解,各關(guān)系上的函數(shù)依賴集以及不同關(guān)系模式之間的函數(shù)依賴已是最小函數(shù)依賴集,并且消除了數(shù)據(jù)冗余和操作異常。因此關(guān)系得到了優(yōu)化。習(xí)題:將下圖中的E-R圖轉(zhuǎn)換為一組關(guān)系模式集解:根據(jù)E-R圖到關(guān)系模型的映射規(guī)則,可得到以下一組關(guān)系模式:職工(職工號(hào),部門名,姓名,地址)部門(部門名,經(jīng)理)產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名)制造商(制造商名稱,地址)銷售(部門名,產(chǎn)品號(hào),數(shù)量)生產(chǎn)(制造商名稱,產(chǎn)品號(hào),型號(hào),價(jià)格)其中,帶下劃線“_____”的屬性為關(guān)系的主鍵。習(xí)題2:將所給附圖轉(zhuǎn)換為關(guān)系模式。圖中所有屬性都函數(shù)依賴于其主鍵,只有ranksalary例外。對(duì)某些數(shù)據(jù)可以重新命名,但需做說(shuō)明。解:根據(jù)實(shí)體和聯(lián)系的映射規(guī)則,可得以下一組關(guān)系模式:(1)Department(D#,name,head),F(xiàn)D={D#name,D#head}(2)Employee(E#,D#,rank,salary,sex,name,birthday,skill)FD={ranksalary}因?yàn)镋#rank(主鍵決定任何非主屬性),且已知ranksalary,所以E#salary。由于關(guān)系模式Employee存在傳遞函數(shù)依賴,將Employee分解為Employee’,Employee’’兩個(gè)關(guān)系:
Employee’(E#,D#,rank,sex,name,birthday,skill)
Employee’’(rank,salary)(3)Dependent(name,E#,sex,age)(4)work(E#,p#)(5)project(p#,E#,start-date)(6)P--P(p#,part#,quantity)(7)Part(part#,weight,quantityinhand)(8)Supplier(s#,
……)(9)S-P-P(p#,part#,s#)其中,帶下劃線“_____”的屬性為關(guān)系的主鍵。習(xí)題3.某公司有多名銷售人員負(fù)責(zé)公司的商品銷售業(yè)務(wù),每名客戶可以一次性訂購(gòu)多種商品,每件商品都由唯一的商品號(hào)標(biāo)識(shí),則下面就是銷售商品的詳細(xì)訂單。(1)試為該公司的商品銷售業(yè)務(wù)數(shù)據(jù)庫(kù)設(shè)計(jì)一個(gè)優(yōu)化的E-R圖。(2)將E-R圖轉(zhuǎn)換為關(guān)系模式集,并寫出每個(gè)關(guān)系模式的主鍵和外鍵。(如果有)解:從訂單可知,每份訂單可以訂購(gòu)多個(gè)商品;每份訂單由一個(gè)銷售員簽訂;每個(gè)商品都有明細(xì);不同客戶可以一次性訂購(gòu)多種商品。(1)該公司的商品銷售業(yè)務(wù)E-R圖如下圖所示(省略屬性)。
(2)轉(zhuǎn)換后的關(guān)系模式集為:客戶(客戶號(hào),客戶名,聯(lián)系電話,地址,郵政編碼)銷售人員(職工號(hào),職工名,電話號(hào)碼)商品(商品號(hào),商品名,規(guī)格,單價(jià))訂單(訂單號(hào),日期,客戶號(hào),銷售人員號(hào),付款方式,總金額)明細(xì)(訂單號(hào),商品號(hào))其中:帶下劃線“
”的為主鍵,帶下劃線“
”為外鍵。習(xí)題4.分解下圖所示關(guān)系,使其滿足2NF.每個(gè)分公司臨時(shí)工每周工作分配表
解:tempStaffAllocation表的主鍵是{staffNo,branchNo},所以,關(guān)系模式上存在函數(shù)依賴:{staffNo,branchNo}branchAddress而branchNobranchAddressstaffNo{name,position}也成立。因此,tempStaffAllocation表存在部分函數(shù)依賴,它不是2NF。現(xiàn)在對(duì)關(guān)系進(jìn)行分解,以消除部分函數(shù)依賴,所得結(jié)果如下圖所示:分解后的Branch表的主鍵為branchNo,函數(shù)依賴:branchNobranchAddress,不存在部分函數(shù)依賴,Branch表是2NF的;TempStaff表的主鍵為staffNo,函數(shù)依賴:staffNo{name,position};不存在部分函數(shù)依賴,TempStaff表是2NF的;TempStaffAllocation表的主鍵為{staffNo,branchNo},函數(shù)依賴:{staffNo,branchNo}
hoursPerWeek,不存在部分函數(shù)依賴,TempStaffAllocation也是2NF的。
1.4數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)主要涉及到數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)不同的數(shù)據(jù)庫(kù)產(chǎn)品所提供的物理環(huán)境、存取方法和存儲(chǔ)結(jié)構(gòu)有很大差別,能提供給設(shè)計(jì)人員使用的設(shè)計(jì)變量、參數(shù)范圍也很不相同,因此,沒(méi)有通用的物理設(shè)計(jì)方法可遵循,只能給出一般的設(shè)計(jì)內(nèi)容和原則。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)任務(wù):利用DBMS所提供的手段,為設(shè)計(jì)好的邏輯數(shù)據(jù)模型選擇一個(gè)符合應(yīng)用要求的物理結(jié)構(gòu)。目標(biāo):?提高數(shù)據(jù)庫(kù)的性能
?節(jié)省存儲(chǔ)量數(shù)據(jù)庫(kù)的物理設(shè)計(jì)邏輯設(shè)計(jì)階段:關(guān)系和記錄僅僅是邏輯形式,而不是其存儲(chǔ)形式。物理設(shè)計(jì)階段:如何表示邏輯記錄的內(nèi)容,即記錄的存儲(chǔ)形式,同時(shí)考慮一些其他問(wèn)題:數(shù)據(jù)項(xiàng)編碼是否要壓縮不定長(zhǎng)數(shù)據(jù)項(xiàng)如何表示記錄間互相連接的指針如何設(shè)置等等。
1.4.1記錄的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)另外,傳統(tǒng)數(shù)據(jù)模型通常是以記錄為基礎(chǔ),因此,了解記錄的一些存儲(chǔ)技術(shù)和數(shù)據(jù)壓縮方法對(duì)物理設(shè)計(jì)是很有利的。數(shù)據(jù)的存儲(chǔ)技術(shù)記錄在物理塊上的分配物理塊在磁盤上的分配數(shù)據(jù)壓縮方法數(shù)據(jù)庫(kù)的物理設(shè)計(jì)在存儲(chǔ)記錄中,數(shù)據(jù)項(xiàng)的表示方法一般有四種:
(1)定位法
(2)相對(duì)法
(3)索引法
(4)標(biāo)號(hào)法。一.數(shù)據(jù)項(xiàng)的存儲(chǔ)技術(shù)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(1)定位法定位法是一種只能表示定長(zhǎng)記錄的方法。使用定位法存儲(chǔ)記錄時(shí),系統(tǒng)為每個(gè)數(shù)據(jù)項(xiàng)按其最大可能長(zhǎng)度分配定長(zhǎng)的字段。數(shù)據(jù)項(xiàng)從左向右填入,空白部分填以空白字符。WANGbbbLINGbbbMALEbb1982定位存儲(chǔ)法定位法的優(yōu)點(diǎn):簡(jiǎn)單,使用最廣;定位法的缺點(diǎn):存儲(chǔ)空間的利用率不高,尤其是當(dāng)數(shù)據(jù)項(xiàng)長(zhǎng)度參差不齊時(shí),空間浪費(fèi)更加突出。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(2)相對(duì)法相對(duì)法是一種可表示可變長(zhǎng)記錄的存儲(chǔ)方法。使用相對(duì)法存儲(chǔ)記錄時(shí),每個(gè)數(shù)據(jù)項(xiàng)不是定長(zhǎng),而是由實(shí)際情況確定。不同數(shù)據(jù)項(xiàng)之間用特殊的字符隔開.
相對(duì)存儲(chǔ)法記錄中不同數(shù)據(jù)項(xiàng)之間用分隔符“?!备糸_。相對(duì)法與定位法相比,其優(yōu)點(diǎn)是存儲(chǔ)空間的利用率高。WANG#LING#MALE#1982數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(3)索引法索引法也是一種可表示可變長(zhǎng)記錄的存儲(chǔ)方法。使用索引法表示存儲(chǔ)記錄時(shí),每個(gè)數(shù)據(jù)項(xiàng)用一個(gè)指針指向其首地址。索引存儲(chǔ)法
索引法的優(yōu)點(diǎn)也是空間利用率高。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(4)標(biāo)號(hào)法標(biāo)號(hào)法也是一種可表示可變長(zhǎng)記錄的存儲(chǔ)方法。使用標(biāo)號(hào)法表示存儲(chǔ)記錄時(shí),每個(gè)數(shù)據(jù)項(xiàng)用一標(biāo)號(hào)開頭.標(biāo)號(hào)存儲(chǔ)法圖中:SN=surnameFN=firstnameSX=sexYR=yearofbirth數(shù)據(jù)庫(kù)的物理設(shè)計(jì)標(biāo)號(hào)存儲(chǔ)法的優(yōu)點(diǎn):空間利用率高;標(biāo)號(hào)存儲(chǔ)法的缺點(diǎn):當(dāng)記錄的數(shù)據(jù)項(xiàng)個(gè)數(shù)較多時(shí),標(biāo)號(hào)本身也將占用較多的空間。一般,所有DBMS都支持定長(zhǎng)記錄,但只有部分DBMS支持可變長(zhǎng)記錄。應(yīng)用中可根據(jù)實(shí)際情況選擇定長(zhǎng)存儲(chǔ)法或某種可變長(zhǎng)存儲(chǔ)法。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)二.記錄在物理塊上的分配磁盤與內(nèi)存交換數(shù)據(jù)是以物理塊為單位,即每次訪盤,至少存取一個(gè)物理塊。當(dāng)記錄比物理塊小時(shí),一個(gè)物理塊可容納多個(gè)記錄,記錄不跨塊,這種結(jié)構(gòu)稱不跨塊組織;
當(dāng)記錄很大,一個(gè)物理塊容納不下時(shí),記錄必須跨塊存放,這種結(jié)構(gòu)稱為跨塊組織。變長(zhǎng)記錄的大小不定,很難確定每塊應(yīng)含有多少個(gè)記錄,一般也采用跨塊組織。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)定長(zhǎng)記錄的不跨塊組織定長(zhǎng)記錄的跨塊組織數(shù)據(jù)庫(kù)的物理設(shè)計(jì)變長(zhǎng)記錄的跨塊組織數(shù)據(jù)庫(kù)的物理設(shè)計(jì)三.物理塊在磁盤上的分配
早期的DBMS中,通常是由操作系統(tǒng)分配數(shù)據(jù)庫(kù)所需要的物理塊,邏輯上相鄰的數(shù)據(jù)往往被分配到磁盤的不同區(qū)域。在連續(xù)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),系統(tǒng)性能會(huì)嚴(yán)重下降。而在現(xiàn)代的DBMS中,改由系統(tǒng)初始化時(shí)向操作系統(tǒng)一次性地申請(qǐng)所需要的磁盤空間。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)物理塊在磁盤上的分配方法一般有四種:(1)連續(xù)分配法
這種方法的特點(diǎn)是將一個(gè)文件的塊分配在磁盤的連續(xù)空間上,塊的次序也就是它們存儲(chǔ)的次序。優(yōu)點(diǎn):對(duì)順序存取多個(gè)塊或全部文件很有效。缺點(diǎn):不利于文件的擴(kuò)充和修改。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(2)連接分配法這種方法的特點(diǎn)是物理塊不一定分配在磁盤上的連續(xù)區(qū)域,各物理塊在磁盤上用指針鏈接。
優(yōu)點(diǎn):有利于文件的擴(kuò)充和修改。
缺點(diǎn):存取效率低。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(3)簇集分配法
這種方法是上面兩種方法的結(jié)合,特點(diǎn)是把文件分為若干簇集。即文件中相關(guān)記錄存放在相鄰的幾個(gè)物理塊,各簇集以指針鏈接。優(yōu)點(diǎn):有利于檢索速度的提高。缺點(diǎn):重新簇集時(shí)會(huì)引起大量數(shù)據(jù)的搬移。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(4)索引分配法
這種方法的特點(diǎn)是每個(gè)文件有一個(gè)邏輯塊號(hào)與其物理塊地址對(duì)照的索引。通過(guò)索引,可查詢到文件中任一塊的地址。優(yōu)點(diǎn):分配方法靈活,擴(kuò)充、修改較方便。缺點(diǎn):訪問(wèn)時(shí)增加了邏輯塊號(hào)到物理塊地址映射的開銷;由于物理上不一定相鄰,故連續(xù)訪問(wèn)時(shí)性能不高。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)四、數(shù)據(jù)壓縮方法為了節(jié)省存儲(chǔ)空間,有些DBMS允許對(duì)數(shù)據(jù)進(jìn)行壓縮后存儲(chǔ)。但訪問(wèn)這些數(shù)據(jù)時(shí)須進(jìn)行轉(zhuǎn)換或復(fù)原,因此,對(duì)系統(tǒng)的性能有影響。通常,數(shù)據(jù)庫(kù)中數(shù)據(jù)壓縮技術(shù)應(yīng)用得并不普遍,而且即使應(yīng)用,也只采用一些簡(jiǎn)單的數(shù)據(jù)壓縮方法。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)幾種可能的方法:(1)消零或空白符法如果數(shù)據(jù)項(xiàng)中常常出現(xiàn)一連串的零或空白符,我們可以用一種特殊符號(hào)及表示零或空白符個(gè)數(shù)的數(shù)字表示。例如,空白符“bbbbb”可用“#5”表示,一連串零“000000”可用“@6”表示。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(2)模式代替法如果數(shù)據(jù)項(xiàng)中常常出現(xiàn)一些重復(fù)的字符串,此時(shí)可以用一省略符代替。
原始數(shù)據(jù)
壓縮數(shù)據(jù)模式表方正天瀑T200-3268@#3268方正天瀑T200-8265@#8265方正天瀑T200-8268@#8268方正天瀑T200-8288@#8288
方正天瀑@T200-#數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(3)索引法索引法是模式代替法的變種。對(duì)于那些經(jīng)常出現(xiàn)的模式,為了避免重復(fù)存儲(chǔ),可以將不同數(shù)據(jù)單獨(dú)存儲(chǔ),其他表中如果需要這些數(shù)據(jù),只要利用指針引用即可。branchcity0001nanjing0002shanghai0003shanghai0004nanjing0005shanghai……branchcity00010002000300040005……beijingshanghaiGuangzhouwuhannanjing…原始數(shù)據(jù)壓縮數(shù)據(jù)模式表數(shù)據(jù)庫(kù)的物理設(shè)計(jì)1.4.2確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)在DBMS中,要求能對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行即席訪問(wèn)、動(dòng)態(tài)修改,故文件結(jié)構(gòu)應(yīng)能適應(yīng)數(shù)據(jù)的動(dòng)態(tài)變化,提供快速訪問(wèn)路徑。確定數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)的內(nèi)容包括:確定數(shù)據(jù)的存放位置、選擇文件的組織方式、確定系統(tǒng)配置等。25數(shù)據(jù)庫(kù)的物理設(shè)計(jì)一般原則:1.根據(jù)實(shí)際應(yīng)用情況,可將經(jīng)常變動(dòng)的數(shù)據(jù)和不經(jīng)常變動(dòng)的數(shù)據(jù)分開存放;例如,在企業(yè)銷售管理系統(tǒng)中,產(chǎn)品數(shù)據(jù)不經(jīng)常變動(dòng),而產(chǎn)品的訂單數(shù)據(jù)經(jīng)常變動(dòng),所以訂單數(shù)據(jù)和產(chǎn)品數(shù)據(jù)應(yīng)分開存放。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)2.將訪問(wèn)頻率高的數(shù)據(jù)與訪問(wèn)頻率不高的數(shù)據(jù)分開存放;例如,數(shù)據(jù)庫(kù)數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶或大容量磁盤上;如果計(jì)算機(jī)提供多個(gè)磁盤,可以考慮將關(guān)系表和索引分別存放在不同的磁盤上,查詢時(shí),由于兩個(gè)磁盤驅(qū)動(dòng)器分別工作,因而可以保證較快的物理讀寫速度;數(shù)據(jù)庫(kù)的物理設(shè)計(jì)另外,可將較大的關(guān)系表分別存放在兩個(gè)磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效;也可將日志文件與數(shù)據(jù)庫(kù)對(duì)象(關(guān)系表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能。30數(shù)據(jù)庫(kù)的物理設(shè)計(jì)常見的文件組織方式有堆文件、有序文件、Hash文件、索引順序存取方式以及B+樹等。1)堆堆是一種無(wú)序的文件,有時(shí)稱為堆文件,是最簡(jiǎn)單的一種文件組織方式。特點(diǎn):記錄按照它們插入的順序放置在文件中。一條新記錄插入到文件的最后一塊,如果最后一塊沒(méi)有多余的空間,就在文件中添加一個(gè)新塊。由于堆文件中沒(méi)有根據(jù)某一字段的值排出特定順序,因此存取一條記錄必須要使用線性查找。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)刪除一條記錄,首先需要檢索出所需要的物理塊,然后在這條記錄上標(biāo)記上已刪除標(biāo)記,并把塊寫回到磁盤。被刪除的記錄的空間是不可再用的。隨著刪除動(dòng)作的發(fā)生,系統(tǒng)的性能也會(huì)不斷下降。需要DBA定期對(duì)文件重組,收回那些被刪除記錄的未使用空間。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)缺點(diǎn):從包含許多塊的堆文件中進(jìn)行檢索的速度相對(duì)較慢。除非檢索中包含了文件中大部分記錄。適用場(chǎng)合:向表中插入大量數(shù)據(jù)的操作,堆文件是最好的文件組織方式。如果僅訪問(wèn)表中的選定記錄時(shí),堆文件是不合適的。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)2)有序文件有序文件中的記錄可以根據(jù)一個(gè)或多個(gè)字段的值來(lái)排序,組成一個(gè)按鍵值排序的數(shù)據(jù)集,被用來(lái)對(duì)文件進(jìn)行排序的字段稱為排序字段。如果排序字段正好是文件的主鍵,那么也就保證了在每條記錄中都有惟一的值。35數(shù)據(jù)庫(kù)的物理設(shè)計(jì)優(yōu)點(diǎn):在有序文件上使用二分查找比線性查找更有效率。但是,二分法多用于主存中數(shù)據(jù)的檢索,而對(duì)輔存中數(shù)據(jù)使用的比較少,除非加主索引。缺點(diǎn):因?yàn)橐3钟涗浻行?,所以有序文件的插入、刪除很麻煩。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)1.4.3索引的選擇索引是一種數(shù)據(jù)結(jié)構(gòu),可使DBMS快速地在文件中查找記錄,并能快速地響應(yīng)用戶的查詢。給文件選擇索引結(jié)構(gòu)是物理設(shè)計(jì)的一個(gè)基本任務(wù)。
數(shù)據(jù)庫(kù)的物理設(shè)計(jì)在數(shù)據(jù)庫(kù)物理設(shè)計(jì)中,需要考慮以下內(nèi)容:在哪些屬性上建立索引在哪些屬性上建立組合索引哪些索引要設(shè)計(jì)為惟一索引哪些屬性上不建索引數(shù)據(jù)庫(kù)的物理設(shè)計(jì)索引選擇的一般規(guī)則:考慮建索引的情況:(1)是主鍵的屬性一般都要建立索引,因?yàn)橐环矫娉3P枰ㄟ^(guò)主鍵來(lái)查詢;另一方面在插入、修改時(shí)要進(jìn)行主鍵惟一性檢查。有了主鍵索引就可以提高這些操作的性能。(2)如果一個(gè)(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(gè)(或這一組)屬性上建立索引(或組合索引);數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(3)如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(gè)屬性上建立索引;(4)如果一個(gè)(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引;數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(5)屬性值很少的屬性上不用在其上建立索引;(6)應(yīng)用中很少用到的屬性不用在其上建立索引;(7)查詢頻率很低的屬性不用在其上建立索引;(8)文件中的記錄數(shù)很少不用建立索引;(9)小表不需建索引(6個(gè)物理塊以下)。考慮不建索引的情況:數(shù)據(jù)庫(kù)的物理設(shè)計(jì)加索引的好處:可使DBMS快速地在文件中查找記錄,并能快速地響應(yīng)用戶的查詢。加索引的不足之處:索引數(shù)過(guò)多會(huì)給系統(tǒng)帶來(lái)較多的額外開銷,如維護(hù)索引的開銷、查找索引的開銷等,所以要視具體應(yīng)用而定。把下圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模式。假設(shè)數(shù)據(jù)量大,有如下一些常用的數(shù)據(jù)庫(kù)操作:(1)查詢某顧客于某日所訂貨物清單。(2)某顧客送來(lái)一新訂單。(3)某顧客的訂單已執(zhí)行或終止。(4)查詢某顧客的某訂單的某項(xiàng)訂貨由哪個(gè)廠家供貨。(5)查詢產(chǎn)品的庫(kù)存量及單價(jià)。試根據(jù)一般物理設(shè)計(jì)原則提出初步的物理設(shè)計(jì)方案。讀者可根據(jù)需要做一些合理的假定。解答根據(jù)附圖轉(zhuǎn)換得到的一組關(guān)系模式如下:顧客(顧客號(hào),姓名,地址)訂單(訂單號(hào),顧客號(hào),訂貨日期,交貨日期,總金額)訂貨項(xiàng)目(訂單號(hào),產(chǎn)品號(hào),數(shù)量,估價(jià))產(chǎn)品(產(chǎn)品號(hào),類別,單價(jià),庫(kù)存量)生產(chǎn)廠(廠號(hào),廠名,地址)貨源(廠號(hào),產(chǎn)品號(hào),出廠價(jià),交貨時(shí)期)其中,帶下劃線“
”的屬性為關(guān)系的主鍵。為了滿足上述處理要求,根據(jù)一般物理設(shè)計(jì)原則,在每個(gè)關(guān)系的主鍵上建立索引。另外,由操作(1)可知,應(yīng)對(duì)“訂單”文件按顧客號(hào)+訂貨日期建立索引。由操作(2)可知,送來(lái)的新訂單數(shù)據(jù),可直接輸入訂單與訂貨項(xiàng)目文件中。由操作(3)可知,訂單已執(zhí)行或終止,可在“訂單”與“訂貨項(xiàng)目”文件中刪去該份訂單。如要查詢訂單執(zhí)行情況,可在訂單文件中增加“執(zhí)行情況”屬性,其值有:執(zhí)行/未執(zhí)行/中止。由操作(4)可知,要實(shí)現(xiàn)這個(gè)處理,需將“訂單”、“訂貨項(xiàng)目”文件按訂單號(hào)連接,然后再與“貨源”文件中產(chǎn)品號(hào)進(jìn)行連接。最后與“生產(chǎn)廠”文件連接得到具體廠名等信息。由操作(5)可知,只要查“產(chǎn)品”文件即可。至此,以上處理需求均可滿足。由于大部分查詢是按顧客號(hào)進(jìn)行的,所以這些顧客號(hào)相同的訂單可考慮在物理上應(yīng)盡量簇集在一起,以加快查詢速度。1.5
MySQL概述
MySQL是最流行的開放源碼SQL數(shù)據(jù)庫(kù)管理系統(tǒng),它是由MySQLAB公司開發(fā)、發(fā)布并支持的。MySQL的正式發(fā)音是“MyEss
QueEll”,而不是“MySequel”。LAMP架構(gòu)特點(diǎn)作為應(yīng)用廣泛的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),MySQL有著其獨(dú)有的特點(diǎn):1.是一種開放源碼軟件。2.具有快速、可靠和易于使用的特點(diǎn)。MySQL服務(wù)器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,是十分適合于在Internet上使用的數(shù)據(jù)庫(kù)。
3.使用核心線程的完全多線程,能很容易地利用多CPU協(xié)同工作。4.有多種編程接口(API),包括:C、C++、Java、Perl、PHP、Python等。5.支持不同的平臺(tái),MySQL幾乎提供了現(xiàn)存的所有的操作系統(tǒng)的對(duì)應(yīng)版本1.5.1MySQL的安裝和配置MySQL的獲得:http://MySQL的命名機(jī)制是使用由3個(gè)數(shù)字和一個(gè)后綴組成的版本號(hào)。例如,mysql-5.0.51-beta的版本號(hào)解釋如下:1)第1個(gè)數(shù)字“5”是主版本號(hào),描述了文件格式。所有版本5的發(fā)行都有相同的文件格式。2)第2個(gè)數(shù)字“0”是發(fā)行級(jí)別。主版本號(hào)和發(fā)行級(jí)別組合到一起便構(gòu)成了發(fā)行序列號(hào)。3)第3個(gè)數(shù)字“51”是此發(fā)行系列的版本號(hào),隨每個(gè)新分發(fā)版遞增。4)每次更新后,版本字符串的最后一個(gè)數(shù)字遞增。如果相對(duì)于前一個(gè)版本增加了新功能或有微小的不兼容性,字符串的第二個(gè)數(shù)字遞增。如果文件格式改變,第一個(gè)數(shù)字遞增。4)后綴顯示發(fā)行的穩(wěn)定性級(jí)別,通過(guò)一系列后綴顯示如何改進(jìn)穩(wěn)定性??赡艿暮缶Y有:Alpha:發(fā)行包含大量未被徹底測(cè)試的新代碼Beta:該版本功能是完整的,并且所有的新代碼被測(cè)試了,沒(méi)有增加重要的新特征,應(yīng)該沒(méi)有已知的缺陷。當(dāng)alpha版本至少一個(gè)月沒(méi)有出現(xiàn)報(bào)導(dǎo)的致命漏洞,并且沒(méi)有計(jì)劃增加導(dǎo)致已經(jīng)實(shí)施的功能不穩(wěn)定的新功能時(shí),版本則從alpha版變?yōu)閎eta版。rc是發(fā)布代表,是一個(gè)發(fā)行了一段時(shí)間的beta版本,看起來(lái)應(yīng)該運(yùn)行正常。只增加了很小的修復(fù)。(發(fā)布代表即以前所稱的gamma版)如果沒(méi)有后綴,這意味著該版本已經(jīng)在很多地方運(yùn)行一段時(shí)間了,而且沒(méi)有非平臺(tái)特定的缺陷報(bào)告。只增加了關(guān)鍵漏洞修復(fù)修復(fù)。這就稱為一個(gè)產(chǎn)品(穩(wěn)定)或“通用”版本。MySQL的安裝(1)下載Windows版的MySQL5.1.28,解壓后雙擊進(jìn)入安裝向?qū)АS?種安裝方式可供選擇:Typical(典型安裝)、Complete(完全安裝)和Custom(定制安裝),對(duì)于大多數(shù)用戶,選擇Typical就可以了。單擊“next”按鈕進(jìn)入下一步。(2)在MySQL5.1中,數(shù)據(jù)庫(kù)主目錄和文件目錄是分開的。其中,“DestinationFolder”為MySQL所在的目錄,默認(rèn)目錄為C:\ProgramFiles\MySQL\MySQLServer5.1?!癉ataFolder”為MySQL數(shù)據(jù)庫(kù)文件和表文件所在的目錄,默認(rèn)目錄為C:\DocumentsandSettings\AllUsers\ApplicationData\MySQL\MySQLServer5.1\data,其中ApplicationData是隱藏文件夾。確認(rèn)后單擊“Install”按鈕開始安裝。圖1MySQL安裝界面(1)安裝完畢后選擇“ConfiguretheMySQLservernow”復(fù)選框進(jìn)入配置向?qū)?。第一步選擇配置類型,有兩種:DetailedConfiguration(詳細(xì)配置)和StandardConfiguration(標(biāo)準(zhǔn)配置)。標(biāo)準(zhǔn)配置選項(xiàng)適合想要快速啟動(dòng)MySQL而不必考慮服務(wù)器配置的新用戶。詳細(xì)配置選項(xiàng)適合想要更加細(xì)粒度控制服務(wù)器配置的高級(jí)用戶。這里選擇DetailedConfiguration。(2)單擊“next”按鈕進(jìn)行服務(wù)器類型選擇,分為3種:DeveloperMachine(開發(fā)機(jī)器)、ServerMachine(服務(wù)器)和DedicatedMySQLServerMachine(專用MySQL服務(wù)器)。鑒于只是初學(xué)MySQL,所以這里選擇DeveloperMachine。MySQL服務(wù)器的配置(3)單擊“next”按鈕進(jìn)入數(shù)據(jù)庫(kù)使用情況對(duì)話框,有3個(gè)選項(xiàng):MultifunctionalDatabase(多功能數(shù)據(jù)庫(kù))、TransactionalDatabaseOnly(只是事務(wù)處理數(shù)據(jù)庫(kù))和Non-TransactionalDatabaseOnly(只是非事務(wù)處理數(shù)據(jù)庫(kù))。其中多功能數(shù)據(jù)庫(kù)對(duì)InnoDB和MyISAM表都適用,所以這里選擇“MultifunctionalDatabase”。(4)下一步進(jìn)入InnoDB表空間對(duì)話框,這里可以修改InnoDB表空間文件的位置,如圖2所示。默認(rèn)位置是MySQL服務(wù)器數(shù)據(jù)目錄,這里不做修改,直接下一步。(5)接下來(lái)進(jìn)入并發(fā)連接選擇對(duì)話框,DecisionSupp
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具行業(yè)設(shè)計(jì)中的市場(chǎng)機(jī)遇與挑戰(zhàn)應(yīng)對(duì)策略分析試題及答案
- 小學(xué)教育教學(xué)反思與課堂管理的有效策略試題及答案
- 醫(yī)學(xué)教育與臨床研究的融合路徑
- 化學(xué)計(jì)算的常見題型及答案
- 關(guān)注土木工程施工安全的考題及答案
- 安全技術(shù)措施實(shí)施要點(diǎn)試題及答案
- 歷年小考試題及答案
- 幼兒園基礎(chǔ)數(shù)字與顏色搭配的趣味題試題及答案
- 2025年物理考試形式的趨勢(shì)分析試題及答案
- 家具設(shè)計(jì)中的用戶參與與品牌建設(shè)的相互促進(jìn)研究試題及答案
- 北師大版高中英語(yǔ)選擇性必修四全冊(cè)課文及翻譯(中英文Word)
- 《2023中國(guó)會(huì)議統(tǒng)計(jì)分析報(bào)告》
- The three wishes課外閱讀故事(說(shuō)課稿)-2022-2023學(xué)年英語(yǔ)五年級(jí)上冊(cè)
- SHL7.0-1.09570-AⅡ熱水鍋爐設(shè)計(jì)-畢業(yè)論文
- DB65T 2283-2005新疆平原楊樹人工林二元立木材積表
- 生產(chǎn)過(guò)程時(shí)間組織教材
- 三晶8000B系列變頻器說(shuō)明書
- 2022屆黑龍江省龍東地區(qū)中考二?;瘜W(xué)試題
- GB/T 33083-2016大型碳素結(jié)構(gòu)鋼鍛件技術(shù)條件
- Unit 8 Green Living Lesson 1 Roots and Shoots 教學(xué)設(shè)計(jì)-高中英語(yǔ)北師大版(2019)必修第三冊(cè)
- 胃外科手術(shù)記錄
評(píng)論
0/150
提交評(píng)論