MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用課件第1章 數(shù)據(jù)庫(kù)概論_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用課件第1章 數(shù)據(jù)庫(kù)概論_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用課件第1章 數(shù)據(jù)庫(kù)概論_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用課件第1章 數(shù)據(jù)庫(kù)概論_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用課件第1章 數(shù)據(jù)庫(kù)概論_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第1章數(shù)據(jù)庫(kù)概論1.1數(shù)據(jù)庫(kù)基本概念1.2數(shù)據(jù)模型1.3關(guān)系數(shù)據(jù)庫(kù)1.4數(shù)據(jù)庫(kù)設(shè)計(jì)1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用21.1數(shù)據(jù)庫(kù)基本概念1.1.1數(shù)據(jù)庫(kù)1.數(shù)據(jù)數(shù)據(jù)(Data)是事物的符號(hào)表示,數(shù)據(jù)的種類(lèi)有數(shù)字、文字、圖像、聲音等,可以用數(shù)字化后的二進(jìn)制形式存入計(jì)算機(jī)來(lái)進(jìn)行處理。2.數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(Database,DB)是長(zhǎng)期存放在計(jì)算機(jī)內(nèi)的有組織的可共享的數(shù)據(jù)集合,數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有盡可能小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)張性。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用31.1數(shù)據(jù)庫(kù)基本概念1.1.2數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分,它是在操作系統(tǒng)支持下的系統(tǒng)軟件,是對(duì)數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟件,用戶(hù)在數(shù)據(jù)庫(kù)系統(tǒng)中的一些操作都是由數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)實(shí)現(xiàn)的?!駭?shù)據(jù)定義功能:提供數(shù)據(jù)定義語(yǔ)言定義數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象?!駭?shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語(yǔ)言對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行查詢(xún)、插入、修改、刪除等操作?!駭?shù)據(jù)控制功能:提供數(shù)據(jù)控制語(yǔ)言進(jìn)行數(shù)據(jù)控制,即提供數(shù)據(jù)的安全性、完整性、并發(fā)控制等項(xiàng)功能●數(shù)據(jù)庫(kù)建立維護(hù)功能:包括數(shù)據(jù)庫(kù)初始數(shù)據(jù)的裝入、轉(zhuǎn)儲(chǔ)、恢復(fù)和系統(tǒng)性能監(jiān)視、分析等項(xiàng)功能。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用41.1數(shù)據(jù)庫(kù)基本概念1.1.3數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem,DBS)是在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,數(shù)據(jù)庫(kù)系統(tǒng)由數(shù)據(jù)庫(kù)、操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、應(yīng)用程序、用戶(hù)、數(shù)據(jù)庫(kù)管理員(DataBaseAdministrator,DBA)組成,如圖1.1所示,數(shù)據(jù)庫(kù)系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位如圖1.2所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.1數(shù)據(jù)庫(kù)系統(tǒng)圖1.2數(shù)據(jù)庫(kù)在計(jì)算機(jī)系統(tǒng)中的地位51.1數(shù)據(jù)庫(kù)基本概念數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)分為客戶(hù)/服務(wù)器架構(gòu)和瀏覽器/服務(wù)器架構(gòu)。1.客戶(hù)/服務(wù)器(C/S)架構(gòu)的應(yīng)用系統(tǒng)當(dāng)應(yīng)用程序需要處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),首先向數(shù)據(jù)庫(kù)管理系統(tǒng)發(fā)送一個(gè)數(shù)據(jù)請(qǐng)求,數(shù)據(jù)庫(kù)管理系統(tǒng)接收到這一請(qǐng)求后,對(duì)其進(jìn)行分析,然后執(zhí)行數(shù)據(jù)庫(kù)操作,并把處理結(jié)果返回給應(yīng)用程序。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.3客戶(hù)/服務(wù)器(C/S)架構(gòu)61.1數(shù)據(jù)庫(kù)基本概念2.瀏覽器/服務(wù)器(B/S)架構(gòu)的應(yīng)用系統(tǒng)瀏覽器/服務(wù)器(Browser/Server,B/S)架構(gòu)是一種基于Web應(yīng)用的客戶(hù)/服務(wù)器架構(gòu),又稱(chēng)為三層客戶(hù)-服務(wù)器架構(gòu)(瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器),如圖1.4所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.4瀏覽器/服務(wù)器(B/S)架構(gòu)71.1數(shù)據(jù)庫(kù)基本概念1.1.4數(shù)據(jù)管理技術(shù)的發(fā)展1.人工管理階段20世紀(jì)50年代中期以前,人工管理階段的數(shù)據(jù)是面向應(yīng)用程序的,一個(gè)數(shù)據(jù)集只能對(duì)應(yīng)一個(gè)程序,應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖1.5所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.5人工管理階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系81.1數(shù)據(jù)庫(kù)基本概念2.文件系統(tǒng)階段20世紀(jì)50年代后期到60年代中期,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,也開(kāi)始用于數(shù)據(jù)管理。數(shù)據(jù)處理的方式不僅有批處理,還有聯(lián)機(jī)實(shí)時(shí)處理。應(yīng)用程序和數(shù)據(jù)之間的關(guān)系如圖1.6所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.6文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系91.1數(shù)據(jù)庫(kù)基本概念3.數(shù)據(jù)庫(kù)系統(tǒng)階段20世紀(jì)60年代后期開(kāi)始,數(shù)據(jù)管理對(duì)象的規(guī)模越來(lái)越大,應(yīng)用越來(lái)越廣泛,數(shù)據(jù)量快速增加。為了實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理,解決多用戶(hù)、多應(yīng)用共享數(shù)據(jù)的需求,數(shù)據(jù)庫(kù)技術(shù)應(yīng)運(yùn)而生,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專(zhuān)門(mén)軟件----數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)階段應(yīng)用程序和數(shù)據(jù)之間的關(guān)系如圖1.7所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.7數(shù)據(jù)庫(kù)系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系101.2數(shù)據(jù)模型1.2.1兩類(lèi)數(shù)據(jù)模型在開(kāi)發(fā)設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí)需要使用不同的數(shù)據(jù)模型,它們是概念模型、邏輯模型、物理模型,根據(jù)模型應(yīng)用的不同目的,按不同的層次可將它們分為兩類(lèi),第一類(lèi)是概念模型,第二類(lèi)是邏輯模型、物理模型。第一類(lèi)中的概念模型,按用戶(hù)的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模,是對(duì)現(xiàn)實(shí)世界的第一層抽象,又稱(chēng)信息模型,它通過(guò)各種概念來(lái)描述現(xiàn)實(shí)世界的事物以及事物之間的聯(lián)系,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)。第二類(lèi)中的邏輯模型,按計(jì)算機(jī)的觀點(diǎn)對(duì)數(shù)據(jù)建模,是概念模型的數(shù)據(jù)化,是事物以及事物之間聯(lián)系的數(shù)據(jù)描述,提供了表示和組織數(shù)據(jù)的方法,主要的邏輯模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο髷?shù)據(jù)模型、對(duì)象關(guān)系數(shù)據(jù)模型和半結(jié)構(gòu)化數(shù)據(jù)模型等。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用111.2數(shù)據(jù)模型為了把現(xiàn)實(shí)世界的具體的事物抽象、組織為某一數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)模型,需要經(jīng)歷了一個(gè)逐級(jí)抽象的過(guò)程,將現(xiàn)實(shí)世界抽象為信息世界,然后將信息世界轉(zhuǎn)換為機(jī)器世界,即首先將現(xiàn)實(shí)世界的客觀對(duì)象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)不依賴(lài)于具體計(jì)算機(jī)系統(tǒng),不是某一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)模型,而是概念級(jí)的模型,然后,將概念模型轉(zhuǎn)換為計(jì)算機(jī)上某一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)模型,如圖1.8所示。

MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用圖1.8現(xiàn)實(shí)世界客觀事物的抽象過(guò)程第二類(lèi)中的物理模型,是對(duì)數(shù)據(jù)最底層的抽象,它描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,如數(shù)據(jù)在磁盤(pán)上的存儲(chǔ)方式和存取方法,是面向計(jì)算機(jī)系統(tǒng)的,由數(shù)據(jù)庫(kù)管理系統(tǒng)具體實(shí)現(xiàn)。MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用121.2數(shù)據(jù)模型從概念模型到邏輯模型的轉(zhuǎn)換由數(shù)據(jù)庫(kù)設(shè)計(jì)人員完成,從邏輯模型到物理模型的轉(zhuǎn)換主要由數(shù)據(jù)庫(kù)管理系統(tǒng)完成。1.2.2數(shù)據(jù)模型組成要素1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性,是所研究的對(duì)象類(lèi)型的集合,數(shù)據(jù)模型按其數(shù)據(jù)結(jié)構(gòu)分為層次模型、網(wǎng)狀模型和關(guān)系模型等。數(shù)據(jù)結(jié)構(gòu)所研究的對(duì)象是數(shù)據(jù)庫(kù)的組成部分,包括兩類(lèi):一類(lèi)是與數(shù)據(jù)類(lèi)型、內(nèi)容、性質(zhì)有關(guān)的對(duì)象,例如關(guān)系模型中的域、屬性等,另一類(lèi)是與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象,例如關(guān)系模型中反映聯(lián)系的關(guān)系等。MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用132.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動(dòng)態(tài)特性,是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象及對(duì)象的實(shí)例允許執(zhí)行的操作的集合,包括對(duì)象的創(chuàng)建、修改和刪除,對(duì)對(duì)象實(shí)例的檢索、插入、刪除、修改及其它有關(guān)操作等。3.數(shù)據(jù)完整性約束數(shù)據(jù)完整性約束是一組完整性約束規(guī)則的集合,完整性約束規(guī)則是給定數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存的規(guī)則。1.2數(shù)據(jù)模型MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用141.2.3層次模型、網(wǎng)狀模型和關(guān)系模型1.層次模型用樹(shù)狀層次結(jié)構(gòu)組織數(shù)據(jù),樹(shù)狀結(jié)構(gòu)每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類(lèi)型,記錄類(lèi)型之間的聯(lián)系是一對(duì)多的聯(lián)系。層次模型有且僅有一個(gè)根結(jié)點(diǎn),位于樹(shù)狀結(jié)構(gòu)頂部,其它結(jié)點(diǎn)有且僅有一個(gè)父結(jié)點(diǎn)。某大學(xué)按層次模型組織數(shù)據(jù)的示例如圖1.9所示。圖1.9層次模型示例層次模型簡(jiǎn)單易用,但現(xiàn)實(shí)世界很多聯(lián)系是非層次性的,如多對(duì)多聯(lián)系等,表達(dá)起來(lái)比較笨拙且不直觀。1.2數(shù)據(jù)模型MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用152.網(wǎng)狀模型采用網(wǎng)狀結(jié)構(gòu)組織數(shù)據(jù),網(wǎng)狀結(jié)構(gòu)每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類(lèi)型,記錄類(lèi)型之間可以有多種聯(lián)系,按網(wǎng)狀模型組織數(shù)據(jù)的示例如圖1.10所示。圖1.10網(wǎng)狀模型示例網(wǎng)狀模型可以更直接地描述現(xiàn)實(shí)世界,層次模型是網(wǎng)狀模型特例,但網(wǎng)狀模型結(jié)構(gòu)復(fù)雜,用戶(hù)不易掌握。圖1.10網(wǎng)狀模型示例1.2數(shù)據(jù)模型MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用163.關(guān)系模型采用關(guān)系的形式組織數(shù)據(jù),一個(gè)關(guān)系就是一張二維表,二維表由行和列組成,按關(guān)系模型組織數(shù)據(jù)的示例如圖1.11所示學(xué)生關(guān)系框架學(xué)號(hào)姓名性別出生日期專(zhuān)業(yè)總學(xué)分成績(jī)關(guān)系框架學(xué)號(hào)課程號(hào)成績(jī)學(xué)生關(guān)系學(xué)號(hào)姓名性別出生日期專(zhuān)業(yè)總學(xué)分191001劉清泉男1998-06-21計(jì)算機(jī)52191002張慧玲女1999-11-07計(jì)算機(jī)50成績(jī)關(guān)系學(xué)號(hào)課程號(hào)成績(jī)191001100495191002100487191001120192圖1.11關(guān)系模型示例關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單清晰,用戶(hù)易懂易用,關(guān)系數(shù)據(jù)庫(kù)是目前應(yīng)用最為廣泛、最為重要的一種數(shù)學(xué)模型。1.2數(shù)據(jù)模型MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用171.3關(guān)系數(shù)據(jù)庫(kù)1.3.1關(guān)系數(shù)據(jù)庫(kù)基本概念●關(guān)系:關(guān)系就是表(Table),在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)關(guān)系存儲(chǔ)為一個(gè)數(shù)據(jù)表?!裨M:表中一行(Row)為一個(gè)元組(Tuple),一個(gè)元組對(duì)應(yīng)數(shù)據(jù)表中的一條記錄(Record),元組的各個(gè)分量對(duì)應(yīng)于關(guān)系的各個(gè)屬性.●屬性:表中的列(Column)稱(chēng)為屬性(Property),對(duì)應(yīng)數(shù)據(jù)表中的字段(Field)?!裼颍簩傩缘娜≈捣秶??!耜P(guān)系模式:對(duì)關(guān)系的描述稱(chēng)為關(guān)系模式,格式如下:關(guān)系名(屬性名1,屬性名2,…屬性名n)●候選碼:屬性或?qū)傩越M,其值可唯一標(biāo)識(shí)其對(duì)應(yīng)元組?!裰麝P(guān)鍵字(主鍵):在候選碼中選擇一個(gè)作為主鍵(PrimaryKey)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用18●外關(guān)鍵字(外鍵):在一個(gè)關(guān)系中的屬性或?qū)傩越M不是該關(guān)系的主鍵,但它是另一個(gè)關(guān)系的主鍵,稱(chēng)為外鍵(ForeignKey)。在圖1.3中,學(xué)生的關(guān)系模式為

學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專(zhuān)業(yè),總學(xué)分)

主鍵為學(xué)號(hào)。成績(jī)的關(guān)系模式為

成績(jī)(學(xué)號(hào),課程號(hào),成績(jī))1.3關(guān)系數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用191.3.2關(guān)系運(yùn)算關(guān)系數(shù)據(jù)操作稱(chēng)為關(guān)系運(yùn)算,投影、選擇、連接是最重要的關(guān)系運(yùn)算,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)支持關(guān)系數(shù)據(jù)庫(kù)和投影、選擇、連接運(yùn)算。(1)選擇選擇(Selection)指選出滿(mǎn)足給定條件的記錄,它是從行的角度進(jìn)行的單目運(yùn)算,運(yùn)算對(duì)象是一個(gè)表,運(yùn)算結(jié)果形成一個(gè)新表。

【例1.1】從學(xué)生表中選擇專(zhuān)業(yè)為計(jì)算機(jī)且總學(xué)分為52分的行進(jìn)行選擇運(yùn)算,選擇所得的新表如表1.1所示。學(xué)號(hào)姓名性別出生日期專(zhuān)業(yè)總學(xué)分191001劉清泉男1998-06-21計(jì)算機(jī)52表1.1選擇后的新表1.3關(guān)系數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用20(2)投影投影(Projection)是選擇表中滿(mǎn)足條件的列,它是從列的角度進(jìn)行的單目運(yùn)算?!纠?.2】從學(xué)生表中選取姓名、專(zhuān)業(yè)、班號(hào)進(jìn)行投影運(yùn)算,投影所得的新表如表1.2所示。姓名專(zhuān)業(yè)總學(xué)分劉清泉計(jì)算機(jī)52張慧玲計(jì)算機(jī)50表1.2投影后的新表1.3關(guān)系數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用21(3)連接連接(Join)是將兩個(gè)表中的行按照一定的條件橫向結(jié)合生成的新表。選擇和投影都是單目運(yùn)算,其操作對(duì)象只是一個(gè)表,而連接是雙目運(yùn)算,其操作對(duì)象是兩個(gè)表。

【例1.3】學(xué)生表與成績(jī)表通過(guò)學(xué)號(hào)相等的連接條件進(jìn)行連接運(yùn)算,連接所得的新表如表1.3所示。學(xué)號(hào)姓名性別出生日期專(zhuān)業(yè)總學(xué)分學(xué)號(hào)課程號(hào)成績(jī)191001劉清泉男1998-06-21計(jì)算機(jī)52191001100495191001劉清泉男1998-06-21計(jì)算機(jī)52191001120192191002張慧玲女1999-11-07計(jì)算機(jī)50191002100487表1.3連接后的新表1.3關(guān)系數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用221.4數(shù)據(jù)庫(kù)設(shè)計(jì)1.4.1數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)開(kāi)發(fā)全過(guò)程,將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)階段:需求分析階段,概念結(jié)構(gòu)設(shè)計(jì)階段,邏輯結(jié)構(gòu)設(shè)計(jì)階段,物理結(jié)構(gòu)設(shè)計(jì)階段,數(shù)據(jù)庫(kù)實(shí)施階段,數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段,如圖1.12所示。圖1.12數(shù)據(jù)庫(kù)設(shè)計(jì)步驟(1)需求分析階段需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ),在數(shù)據(jù)庫(kù)設(shè)計(jì)中,首先需要準(zhǔn)確了解與分析用戶(hù)的需求,明確系統(tǒng)的目標(biāo)和實(shí)現(xiàn)的功能。MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用23(2)概念結(jié)構(gòu)設(shè)計(jì)階段概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,其任務(wù)是根據(jù)需求分析,形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫(kù)管理系統(tǒng)的概念模型,即設(shè)計(jì)E-R模型。(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)具體的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的數(shù)據(jù)模型。(4)物理結(jié)構(gòu)設(shè)計(jì)階段物理結(jié)構(gòu)設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等。(5)數(shù)據(jù)庫(kù)施現(xiàn)階段設(shè)計(jì)人員運(yùn)用數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的數(shù)據(jù)庫(kù)語(yǔ)言和宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù),編寫(xiě)和調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù)和試運(yùn)行。(6)數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段通過(guò)試運(yùn)行后即可投入正式運(yùn)行,在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,不斷地對(duì)其進(jìn)行評(píng)估、調(diào)整和修改。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用24數(shù)據(jù)庫(kù)設(shè)計(jì)的不同階段形成的數(shù)據(jù)庫(kù)各級(jí)模式,如圖1.13所示。圖1.13數(shù)據(jù)庫(kù)各級(jí)模式1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用25在需求分析階段,設(shè)計(jì)的中心工作是綜合各個(gè)用戶(hù)的需求。在概念結(jié)構(gòu)設(shè)計(jì)階段,形成與計(jì)算機(jī)硬件無(wú)關(guān)的、獨(dú)立于各個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品的概念模式,即E-R圖。在邏輯結(jié)構(gòu)設(shè)計(jì)階段,將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫(kù)邏輯模式,然后,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計(jì)階段,根據(jù)數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫(kù)物理模式。1.4.2需求分析需求分析階段是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)中最重要的一個(gè)步驟,它需要從各個(gè)方面對(duì)業(yè)務(wù)對(duì)象進(jìn)行調(diào)查、收集、分析,以準(zhǔn)確了解用戶(hù)對(duì)數(shù)據(jù)和處理的需求。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用26需求分析是數(shù)據(jù)庫(kù)設(shè)計(jì)的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確反映用戶(hù)要求將直接影響到后面各階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。1.需求分析的任務(wù)需求分析階段的主要任務(wù)是對(duì)現(xiàn)實(shí)世界要處理的對(duì)象(公司,部門(mén),企業(yè))進(jìn)行詳細(xì)調(diào)查,在了解現(xiàn)行系統(tǒng)的概況、確定新系統(tǒng)功能的過(guò)程中,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理方法。需求分析是在用戶(hù)調(diào)查的基礎(chǔ)上,通過(guò)分析,逐步明確用戶(hù)對(duì)系統(tǒng)的需求,包括數(shù)據(jù)需求和圍繞這些數(shù)據(jù)的業(yè)務(wù)處理需求。用戶(hù)調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”。(1)信息需求定義未來(lái)數(shù)據(jù)庫(kù)系統(tǒng)用到的所有信息,明確用戶(hù)將向數(shù)據(jù)庫(kù)中輸入什么樣的數(shù)據(jù),從數(shù)據(jù)庫(kù)中要求獲得哪些內(nèi)容,將要輸出哪些信息,以及描述數(shù)據(jù)間的聯(lián)系等。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用27(2)處理需求定義了系統(tǒng)數(shù)據(jù)處理的操作功能,描述操作的優(yōu)先次序,包括操作的執(zhí)行頻率和場(chǎng)合,操作與數(shù)據(jù)間的聯(lián)系。處理需求還要明確用戶(hù)要完成哪些處理功能,每種處理的執(zhí)行頻度,用戶(hù)需求的響應(yīng)時(shí)間以及處理的方式,比如是聯(lián)機(jī)處理還是批處理等。(3)安全性與完整性要求描述了系統(tǒng)中不同用戶(hù)對(duì)數(shù)據(jù)庫(kù)的使用和操作情況,完整性要求描述了數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系以及數(shù)據(jù)的取值范圍要求。2.需求分析的方法1)數(shù)據(jù)流圖數(shù)據(jù)流圖用來(lái)描述系統(tǒng)的功能,表達(dá)了數(shù)據(jù)和處理的關(guān)系。數(shù)據(jù)流圖采用4個(gè)基本符號(hào):外部實(shí)體、數(shù)據(jù)流、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用28(1)外部實(shí)體數(shù)據(jù)來(lái)源和數(shù)據(jù)輸出又稱(chēng)為外部實(shí)體,表示系統(tǒng)數(shù)據(jù)的外部來(lái)源和去處,也可是另外一個(gè)系統(tǒng)。(2)數(shù)據(jù)流由數(shù)據(jù)組成,表示數(shù)據(jù)的流向,數(shù)據(jù)流都需要命名,數(shù)據(jù)流的名稱(chēng)反映了數(shù)據(jù)流的含義。圖1.14數(shù)據(jù)流圖(3)數(shù)據(jù)處理指對(duì)數(shù)據(jù)的邏輯處理,也就是數(shù)據(jù)的變換。(4)數(shù)據(jù)存儲(chǔ)表示數(shù)據(jù)保存的地方,即數(shù)據(jù)存儲(chǔ)的邏輯描述。數(shù)據(jù)流圖如圖1.14所示。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用292)數(shù)據(jù)字典數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,對(duì)數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)等進(jìn)行詳細(xì)的描述,它包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、存儲(chǔ)、處理過(guò)程等。(1)數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是數(shù)據(jù)最小的組成單位,即不可再分的基本數(shù)據(jù)單位,記錄了數(shù)據(jù)對(duì)象的基本信息,描述了數(shù)據(jù)的靜態(tài)特性.數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說(shuō)明,別名,數(shù)據(jù)類(lèi)型,長(zhǎng)度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是若干數(shù)據(jù)項(xiàng)有意義的集合,由若干數(shù)據(jù)項(xiàng)組成,或由若干數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)組成。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用30(3)數(shù)據(jù)流數(shù)據(jù)流表示某一處理過(guò)程的輸入和輸出,表示了數(shù)據(jù)處理過(guò)程中的傳輸流向,是對(duì)數(shù)據(jù)動(dòng)態(tài)特性的描述,。數(shù)據(jù)流描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}(4)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是處理過(guò)程中存儲(chǔ)的數(shù)據(jù),它是在事務(wù)和處理過(guò)程中數(shù)據(jù)所停留和保存過(guò)的地方.數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào),流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度,存取方式}(5)處理過(guò)程在數(shù)據(jù)字典中,只需描述簡(jiǎn)要描述處理過(guò)程的信息。處理過(guò)程描述={處理過(guò)程名,說(shuō)明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡(jiǎn)要說(shuō)明}}1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用311.4.3概念結(jié)構(gòu)設(shè)計(jì)將需求分析得到的用戶(hù)需求抽象為信息結(jié)構(gòu)(概念模型)的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì)。需求分析得到的數(shù)據(jù)描述是無(wú)結(jié)構(gòu)的,概念設(shè)計(jì)是在需求分析的基礎(chǔ)上轉(zhuǎn)換為有結(jié)構(gòu)的、易于理解的精確表達(dá),概念設(shè)計(jì)階段的目標(biāo)是形成整體數(shù)據(jù)庫(kù)的概念結(jié)構(gòu),它獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和具體的數(shù)據(jù)庫(kù)管理系統(tǒng),概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。1.概念結(jié)構(gòu)的特點(diǎn)和設(shè)計(jì)步驟1)概念結(jié)構(gòu)的特點(diǎn)概念模型具有以下特點(diǎn):(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界概念模型是現(xiàn)實(shí)世界的一個(gè)真實(shí)模型,能滿(mǎn)足用戶(hù)對(duì)數(shù)據(jù)的處理要求。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用32(2)易于理解便于數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶(hù)交流,用戶(hù)的積極參與是數(shù)據(jù)庫(kù)設(shè)計(jì)成功的關(guān)鍵。(3)易于更改當(dāng)應(yīng)用環(huán)境和應(yīng)用要求發(fā)生改變時(shí),易于修改和擴(kuò)充概念模型(4)易于轉(zhuǎn)換為關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型。2)概念結(jié)構(gòu)設(shè)計(jì)的方法概念結(jié)構(gòu)設(shè)計(jì)的方法有4種。(1)自底向上首先定義局部應(yīng)用的概念結(jié)構(gòu),然后按一定的規(guī)則把它們集成起來(lái),得到全局概念模型。(2)自頂向下首先定義全局概念模型,然后再逐步細(xì)化。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用33(3)由里向外首先定義最重要的核心概念結(jié)構(gòu),然后再逐步向外擴(kuò)展。(4)混合策略將自頂向下和自底向上結(jié)合起來(lái)使用。3)概念結(jié)構(gòu)設(shè)計(jì)的步驟概念結(jié)構(gòu)設(shè)計(jì)的一般步驟如下:(1)根據(jù)需求分析劃分的局部應(yīng)用,設(shè)計(jì)局部E-R圖。(2)將局部E-R圖合并,消除冗余和可能的矛盾,得到系統(tǒng)的全局E-R圖,審核和驗(yàn)證全局E-R圖,完成概念模型的設(shè)計(jì)。概念結(jié)構(gòu)設(shè)計(jì)步驟如圖1.15所示。圖1.15概念結(jié)構(gòu)設(shè)計(jì)步驟1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用342.E-R模型描述概念模型的有力工具是E-R模型,E-R模型即實(shí)體-聯(lián)系模型,在E-R模型中:●實(shí)體:客觀存在并可相互區(qū)別的事物稱(chēng)為實(shí)體,實(shí)體用矩形框表示,框內(nèi)為實(shí)體名。實(shí)體可以是具體的人、事、物或抽象的概念,例如,在學(xué)生成績(jī)管理系統(tǒng)中,“學(xué)生”就是一個(gè)實(shí)體?!駥傩裕簩?shí)體所具有的某一特性稱(chēng)為屬性,屬性采用橢圓框表示,框內(nèi)為屬性名,并用無(wú)向邊與其相應(yīng)實(shí)體連接。例如,在學(xué)生成績(jī)管理系統(tǒng)中,學(xué)生的特性有學(xué)號(hào)、姓名、性別、出生日期、專(zhuān)業(yè)、班號(hào)、總學(xué)分,它們就是學(xué)生實(shí)體的7個(gè)屬性?!駥?shí)體型:用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體,稱(chēng)為實(shí)體型。例如,學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專(zhuān)業(yè),班號(hào),總學(xué)分)就是一個(gè)實(shí)體型。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用35●實(shí)體集:同型實(shí)體的集合稱(chēng)為實(shí)體集,例如全體學(xué)生記錄就是一個(gè)實(shí)體集?!衤?lián)系:實(shí)體之間的聯(lián)系,可分為一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系、多對(duì)多的聯(lián)系。實(shí)體間的聯(lián)系采用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫(xiě)在菱形框中,用無(wú)向邊將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類(lèi)型。如果聯(lián)系也具有屬性,則將屬性與菱形也用無(wú)向邊連上。(1)一對(duì)一的聯(lián)系(1:1)例如,一個(gè)班只有一個(gè)正班長(zhǎng),而一個(gè)正班長(zhǎng)只屬于一個(gè)班,班級(jí)與正班長(zhǎng)兩個(gè)實(shí)體間具有一對(duì)一的聯(lián)系。(2)一對(duì)多的聯(lián)系(1:n)例如,一個(gè)班可有若干學(xué)生,一個(gè)學(xué)生只能屬于一個(gè)班,班級(jí)與學(xué)生兩個(gè)實(shí)體間具有一對(duì)多的聯(lián)系。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用36(3)多對(duì)多的聯(lián)系(m:n)例如,一個(gè)學(xué)生可選多門(mén)課程,一門(mén)課程可被多個(gè)學(xué)生選修,學(xué)生與課程兩個(gè)實(shí)體間具有多對(duì)多的聯(lián)系。實(shí)體之間的三種聯(lián)系如圖1.16所示。圖1.16實(shí)體之間的聯(lián)系1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用373.局部E-R模型設(shè)計(jì)使用系統(tǒng)需求分析階段得到的數(shù)據(jù)流程圖、數(shù)據(jù)字典和需求規(guī)格說(shuō)明,建立對(duì)應(yīng)于每一部門(mén)或應(yīng)用的局部E-R模型,關(guān)鍵問(wèn)題是如何確定實(shí)體(集)和實(shí)體屬性,即首先要確定系統(tǒng)中的每一個(gè)子系統(tǒng)包含哪些實(shí)體和屬性。設(shè)計(jì)局部E-R模型時(shí),最大的困難在于實(shí)體和屬性的正確劃分,其基本劃分原則如下:(1)屬性應(yīng)是系統(tǒng)中最小的信息單位。(2)若屬性具有多個(gè)值時(shí),應(yīng)該升級(jí)為實(shí)體。

1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用38【例1.4】設(shè)有學(xué)生、課程、教師、學(xué)院實(shí)體如下:學(xué)生:學(xué)號(hào)、姓名、性別、出生日期、專(zhuān)業(yè)、總學(xué)分、選修課程號(hào)課程:課程號(hào)、課程名、學(xué)分、開(kāi)課學(xué)院、任課教師號(hào)教師:教師號(hào)、姓名、性別、出生日期、職稱(chēng)、學(xué)院名、講授課程號(hào)學(xué)院:學(xué)院號(hào)、學(xué)院名、電話、教師號(hào)、教師名上述實(shí)體中存在如下聯(lián)系:(1)一個(gè)學(xué)生可選修多門(mén)課程,一門(mén)課程可為多個(gè)學(xué)生選修。(2)一個(gè)教師可講授多門(mén)課程,一門(mén)課程可為多個(gè)教師講授。(3)一個(gè)學(xué)院可有多個(gè)教師,一個(gè)教師只能屬于一個(gè)學(xué)院。(4)一個(gè)學(xué)院可擁有多個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)學(xué)院。(5)假設(shè)學(xué)生只能選修本學(xué)院的課程,教師只能為本學(xué)院的學(xué)生講課。要求分別設(shè)計(jì)學(xué)生選課和教師任課兩個(gè)局部信息的結(jié)構(gòu)E-R圖。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用39解:從各實(shí)體屬性看到,學(xué)生實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與教師實(shí)體關(guān)聯(lián),一個(gè)學(xué)院可以開(kāi)設(shè)多門(mén)課程,學(xué)院實(shí)體與課程實(shí)體之間是1:m關(guān)系,學(xué)生選課局部E-R圖如圖1.17所示。圖1.17學(xué)生選課局部E-R圖1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用40教師實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與學(xué)生實(shí)體關(guān)聯(lián),教師任課局部E-R圖如圖1.18所示圖1.18教師講課局部E-R圖1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用414.全局E-R模型設(shè)計(jì)綜合各部門(mén)或應(yīng)用的局部E-R模型,就可以得到系統(tǒng)的全局E-R模型。綜合局部E-R模型的方法有兩種:(1)多個(gè)局部E-R圖逐步綜合,一次綜合兩個(gè)E-R圖。(2)多個(gè)局部E-R圖一次綜合。第一種方法,由于一次只綜合兩個(gè)E-R圖,難度降低,較易使用。在上述兩種方法中,每次綜合可分為以下兩個(gè)步驟:(1)進(jìn)行合并,解決各局部E-R圖之間的沖突問(wèn)題,生成初步E-R圖。(2)修改和重組,消除冗余,生成基本E-R圖。1)合并局部E-R圖,消除沖突由于各個(gè)局部應(yīng)用不同,通常由不同的設(shè)計(jì)人員去設(shè)計(jì)局部E-R圖,因此,各局部E-R圖之間往往會(huì)有很多不一致,被稱(chēng)為沖突,沖突的類(lèi)型有:1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用42(1)屬性沖突屬性域沖突:屬性取值的類(lèi)型、取值范圍或取值集合不同。例如年齡可用出生年月和整數(shù)表示?!駥傩匀≈祮挝粵_突:例如重量,可用公斤、克、斤為單位。(2)結(jié)構(gòu)沖突●同一事物,不同的抽象:例如職工,在一個(gè)應(yīng)用中為實(shí)體,而在另一個(gè)應(yīng)用中為屬性?!裢粚?shí)體在不同應(yīng)用中的屬性組成不同?!裢宦?lián)系在不同應(yīng)用中類(lèi)型不同。(3)命名沖突命名沖突包括實(shí)體名、屬性名、聯(lián)系名之間的沖突●同名異議:不同意義的事物具有相同的名稱(chēng)?!癞惷x:不同意義的事物具有相同的名稱(chēng)。屬性沖突和命名沖突可通過(guò)協(xié)商來(lái)解決,結(jié)構(gòu)沖突在認(rèn)真分析后通過(guò)技術(shù)手段解決。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用43【例1.5】將例1.4設(shè)計(jì)完成的兩個(gè)局部E-R圖合并成一個(gè)初步的全局E-R圖。解:將圖1.18中的’’教師號(hào)’’屬性轉(zhuǎn)換為’’教師”實(shí)體,將兩個(gè)局部E-R圖中的”選修課程號(hào)”和”講授課程號(hào)”統(tǒng)一為”課程號(hào)”,并將”課程”實(shí)體的屬性統(tǒng)一為”課程號(hào)”和”課程名”,初步的全局E-R圖如圖1.19所示。圖1.19初步的全局E-R圖1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用442)消除冗余在初步的E-R圖中,可能存在冗余的數(shù)據(jù)或冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系也可由由其他的聯(lián)系導(dǎo)出。冗余的存在容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)的維護(hù)增加困難,應(yīng)該消除?!纠?.6】消除冗余,對(duì)例1.5的初步的全局E-R圖進(jìn)行改進(jìn)。解:在圖1.18中,”屬于”和”開(kāi)課”是冗余聯(lián)系,它們可以通過(guò)其他聯(lián)系導(dǎo)出,消除冗余聯(lián)系后得到改進(jìn)的全局E-R圖,如圖1.20所示。圖1.20改進(jìn)的全局E-R圖1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用451.4.4邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),即由概念結(jié)構(gòu)導(dǎo)出特定的數(shù)據(jù)庫(kù)管理系統(tǒng)可以處理的邏輯結(jié)構(gòu)。由于當(dāng)前主流的數(shù)據(jù)庫(kù)管理系統(tǒng)是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),所以邏輯結(jié)構(gòu)設(shè)計(jì)是將E-R圖轉(zhuǎn)換為關(guān)系模型,即將E-R圖轉(zhuǎn)換為一組關(guān)系模式。1.邏輯結(jié)構(gòu)設(shè)計(jì)的步驟以關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)為例,邏輯結(jié)構(gòu)設(shè)計(jì)步驟如圖1.21所示。圖1.21邏輯結(jié)構(gòu)設(shè)計(jì)步驟1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用46(1)將用E-R圖表示的概念結(jié)構(gòu)轉(zhuǎn)換為關(guān)系模型。(2)優(yōu)化模型。(3)設(shè)計(jì)適合DBMS的關(guān)系模式。2.E-R模型向關(guān)系模型的轉(zhuǎn)換由E-R圖向關(guān)系模型轉(zhuǎn)換有以下兩個(gè)規(guī)則:1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2)實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式有以下不同的情況(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端所對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼都是該關(guān)系的候選碼。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用47如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端所對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為n端實(shí)體的碼。如果與n端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入1端實(shí)體的碼和聯(lián)系本身的屬性。(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用48與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(5)具有相同碼的關(guān)系模式可以合并。

【例1.7】1:1聯(lián)系的E-R圖如圖1.22所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.221:1聯(lián)系的E-R圖示例1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用49方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱(chēng),地址)校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱(chēng))任職(學(xué)校編號(hào),校長(zhǎng)編號(hào))方案2:聯(lián)系合并到”學(xué)?!标P(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱(chēng),地址,校長(zhǎng)編號(hào))校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱(chēng))方案3:聯(lián)系合并到”校長(zhǎng)”關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱(chēng),地址)校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱(chēng),學(xué)校編號(hào))在1:1聯(lián)系中,一般不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,這是由于關(guān)系模式個(gè)數(shù)多,相應(yīng)的表也越多,查詢(xún)時(shí)會(huì)降低查詢(xún)效率。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用50【例1.8】1:n聯(lián)系的E-R圖如圖1.23所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.231:n聯(lián)系的E-R圖示例方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:班級(jí)(班級(jí)編號(hào),教室號(hào),人數(shù))學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專(zhuān)業(yè),總學(xué)分)屬于(學(xué)號(hào),班級(jí)編號(hào))方案2:聯(lián)系合并到n端實(shí)體對(duì)應(yīng)的關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:班級(jí)(班級(jí)編號(hào),教室號(hào),人數(shù))學(xué)生(學(xué)號(hào),姓名,性別,出生日期,班級(jí)編號(hào))同樣原因,在1:n聯(lián)系中,一般也不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用51【例1.9】m:n聯(lián)系的E-R圖如圖1.24所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.24m:n聯(lián)系的E-R圖示例對(duì)于m:n聯(lián)系,必須轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專(zhuān)業(yè),總學(xué)分)課程(課程號(hào),課程名,學(xué)分,教師號(hào))選課(學(xué)號(hào),課程號(hào),成績(jī))1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用52【例1.10】三個(gè)實(shí)體聯(lián)系的E-R圖如圖1.25所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.25三個(gè)實(shí)體聯(lián)系的E-R圖示例三個(gè)實(shí)體聯(lián)系聯(lián)系,一般也轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:供應(yīng)商(供應(yīng)商號(hào),供應(yīng)商名,地址)項(xiàng)目(零件號(hào),零件名,重量)零件(項(xiàng)目編號(hào),項(xiàng)目名稱(chēng),開(kāi)工日期)供應(yīng)(供應(yīng)商號(hào),零件號(hào),項(xiàng)目編號(hào),零件數(shù))1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用53【例1.11】將圖1.20所示的改進(jìn)的全局E-R圖轉(zhuǎn)換為關(guān)系模式。將”學(xué)生”實(shí)體、”課程”實(shí)體、”教師”實(shí)體、”學(xué)院”實(shí)體分別設(shè)計(jì)成一個(gè)關(guān)系模式,將”擁有”聯(lián)系(1:n聯(lián)系)合并到”學(xué)生”實(shí)體(n端實(shí)體)對(duì)應(yīng)的關(guān)系模式中,將”選課”聯(lián)系和”講課”(m:n聯(lián)系)轉(zhuǎn)換為獨(dú)立的關(guān)系模式。學(xué)生(學(xué)號(hào),姓名,性別,年齡,專(zhuān)業(yè),總學(xué)分,學(xué)院號(hào))課程(課程號(hào),課程名,學(xué)分)教師(教師號(hào),姓名,性別,出生日期、職稱(chēng)、學(xué)院名)學(xué)院(學(xué)院號(hào),學(xué)院名,電話)選課(學(xué)號(hào),課程號(hào),成績(jī))講課(教師號(hào),課程號(hào),上課地點(diǎn))1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用543.數(shù)據(jù)模型的優(yōu)化和設(shè)計(jì)外模式1)關(guān)系模型的優(yōu)化數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的,為了進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,有必要根據(jù)應(yīng)用需求適當(dāng)修改、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化,規(guī)范化理論是關(guān)系數(shù)據(jù)模型的優(yōu)化的指南和工具,具體方法如下:(1)確定數(shù)據(jù)依賴(lài),考查各關(guān)系模式的函數(shù)依賴(lài)關(guān)系,以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴(lài)。(2)對(duì)各關(guān)系模式之間的數(shù)據(jù)依賴(lài)進(jìn)行最小化處理,消除冗余的聯(lián)系。(3)確定各關(guān)系模式屬于第幾范式,并根據(jù)需求分析階段的處理要求,確定是否要對(duì)這些關(guān)系模式進(jìn)行合并或分解。(4)對(duì)關(guān)系模式進(jìn)行必要的分解,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率,常用的分解方法有垂直分解和水平分解。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用55●

垂直分解:把關(guān)系模式R的屬性分解成若干屬性子集合,定義每個(gè)屬性子集合為一個(gè)子關(guān)系?!袼椒纸猓喊鸦娟P(guān)系的元組分為若干元組子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。2)設(shè)計(jì)外模式將概念模型轉(zhuǎn)換為全局邏輯模型后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn),設(shè)計(jì)用戶(hù)外模式。外模式設(shè)計(jì)的目標(biāo)是抽取或?qū)С瞿J降淖蛹?,以?gòu)造各不同用戶(hù)使用的局部數(shù)據(jù)邏輯結(jié)構(gòu)。外模式概念對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)的視圖概念,設(shè)計(jì)外模式是為了更好地滿(mǎn)足局部用戶(hù)的需求。定義數(shù)據(jù)庫(kù)的模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā),而用戶(hù)外模式和模式是相對(duì)獨(dú)立的,所以在設(shè)計(jì)外模式時(shí),可以更多地考慮用戶(hù)的習(xí)慣和方便。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用56(1)使用更符合用戶(hù)習(xí)慣的別名。(2)對(duì)不同級(jí)別的用戶(hù)定義不同的視圖,以保證系統(tǒng)的安全性。(3)簡(jiǎn)化用戶(hù)對(duì)系統(tǒng)的使用,如將復(fù)雜的查詢(xún)定義為視圖等。1.4.5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法稱(chēng)為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。為已確定的邏輯數(shù)據(jù)結(jié)構(gòu),選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),稱(chēng)為物理結(jié)構(gòu)設(shè)計(jì)。1.物理結(jié)構(gòu)設(shè)計(jì)的內(nèi)容和方法數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì)主要包括的內(nèi)容為:確定數(shù)據(jù)的存取方法和確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。(1)確定數(shù)據(jù)的存取方法存取方法是快速存取數(shù)據(jù)庫(kù)中數(shù)據(jù)的技術(shù),具體采用的方法由數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)數(shù)據(jù)的存儲(chǔ)方式?jīng)Q定,一般用戶(hù)不能干預(yù)。一般用戶(hù)可以通過(guò)建立索引的方法來(lái)加快數(shù)據(jù)的查詢(xún)效率。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用57(2)確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一般的存儲(chǔ)方式有順序存儲(chǔ)、散列存儲(chǔ)和聚簇存儲(chǔ)。一般情況下系統(tǒng)都會(huì)為數(shù)據(jù)選擇一種最合適的存儲(chǔ)方式。2.物理結(jié)構(gòu)設(shè)計(jì)的評(píng)價(jià)在物理設(shè)計(jì)過(guò)程中,需要對(duì)時(shí)間效率、空間效率、維護(hù)代價(jià)和各種用戶(hù)要求進(jìn)行權(quán)衡,從而產(chǎn)生多種設(shè)計(jì)方案,數(shù)據(jù)庫(kù)設(shè)計(jì)人員應(yīng)對(duì)這些方案進(jìn)行詳細(xì)地評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。評(píng)價(jià)物理結(jié)構(gòu)設(shè)計(jì)的方法完全依賴(lài)于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),主要考慮的是操作開(kāi)銷(xiāo),即為使用戶(hù)獲得及時(shí)、準(zhǔn)確的數(shù)據(jù)所需的開(kāi)銷(xiāo)和計(jì)算機(jī)的資源的開(kāi)銷(xiāo)。具體可分為如下幾類(lèi):

●查詢(xún)和響應(yīng)時(shí)間

●更新事務(wù)的開(kāi)銷(xiāo)

●生成報(bào)告的開(kāi)銷(xiāo)

●主存儲(chǔ)空間的開(kāi)銷(xiāo)

●輔助存儲(chǔ)空間的開(kāi)銷(xiāo)1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用581.4.6數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)實(shí)施階段主要任務(wù)是根據(jù)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果,在實(shí)際的計(jì)算機(jī)系統(tǒng)中建立數(shù)據(jù)庫(kù)的結(jié)構(gòu)、加載數(shù)據(jù),調(diào)試和運(yùn)行應(yīng)用程序、數(shù)據(jù)庫(kù)的試運(yùn)行等。1.建立數(shù)據(jù)庫(kù)的結(jié)構(gòu)使用給定的數(shù)據(jù)庫(kù)管理系統(tǒng)提供的命令,建立數(shù)據(jù)庫(kù)的模式、子模式和內(nèi)模式,對(duì)于關(guān)系數(shù)據(jù)庫(kù),即是創(chuàng)建數(shù)據(jù)庫(kù)和建立數(shù)據(jù)庫(kù)中的表、視圖、索引。2.加載數(shù)據(jù)和應(yīng)用程序的調(diào)試數(shù)據(jù)庫(kù)實(shí)施階段有兩項(xiàng)重要工作:一是加載數(shù)據(jù),一是應(yīng)用程序的編碼和調(diào)試。數(shù)據(jù)庫(kù)系統(tǒng)中,一般數(shù)據(jù)量都很大,各應(yīng)用環(huán)境差異也很大。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用59為了保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)正確、無(wú)誤,必須十分重視數(shù)據(jù)的校驗(yàn)工作。在將數(shù)據(jù)輸入系統(tǒng)進(jìn)行數(shù)據(jù)轉(zhuǎn)換過(guò)程中,應(yīng)該進(jìn)行多次的校驗(yàn)。對(duì)于重要的數(shù)據(jù)的校驗(yàn)更應(yīng)該反復(fù)多次,確認(rèn)無(wú)誤后再進(jìn)入到數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)應(yīng)與數(shù)據(jù)庫(kù)設(shè)計(jì)同時(shí)進(jìn)行,在加載數(shù)據(jù)到數(shù)據(jù)庫(kù)的同時(shí),還要調(diào)試應(yīng)用程序。3.數(shù)據(jù)庫(kù)的試運(yùn)行在有一部分?jǐn)?shù)據(jù)加載到數(shù)據(jù)庫(kù)之后,就可以開(kāi)始對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行聯(lián)合調(diào)試了,這個(gè)過(guò)程又稱(chēng)為數(shù)據(jù)庫(kù)試運(yùn)行。這一階段要實(shí)際運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作,測(cè)試應(yīng)用程序的功能是否滿(mǎn)足設(shè)計(jì)要求。如果不滿(mǎn)足,則要對(duì)應(yīng)用程序進(jìn)行修改、調(diào)整,直到達(dá)到設(shè)計(jì)要求為止。在數(shù)據(jù)庫(kù)試運(yùn)行階段,還要對(duì)系統(tǒng)的性能指標(biāo)進(jìn)行測(cè)試,分析其是否達(dá)到設(shè)計(jì)目標(biāo)。

1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用601.4.7數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)在數(shù)據(jù)庫(kù)運(yùn)行階段,對(duì)數(shù)據(jù)庫(kù)的經(jīng)常性的維護(hù)工作主要由數(shù)據(jù)庫(kù)系統(tǒng)管理員完成,其主要工作有:數(shù)據(jù)庫(kù)的備份和恢復(fù),數(shù)據(jù)庫(kù)的安全性和完整性控制,監(jiān)視、分析、調(diào)整數(shù)據(jù)庫(kù)性能,數(shù)據(jù)庫(kù)的重組和重構(gòu)。(1)數(shù)據(jù)庫(kù)的備份和恢復(fù)數(shù)據(jù)庫(kù)的備份和恢復(fù)是系統(tǒng)正式運(yùn)行后重要的維護(hù)工作,要對(duì)數(shù)據(jù)庫(kù)進(jìn)行定期的備份,一旦出現(xiàn)故障,要能及時(shí)地將數(shù)據(jù)庫(kù)恢復(fù)到盡可能的正確狀態(tài),以減少數(shù)據(jù)庫(kù)損失。(2)數(shù)據(jù)庫(kù)的安全性和完整性控制隨著數(shù)據(jù)庫(kù)應(yīng)用環(huán)境的變化,對(duì)數(shù)據(jù)庫(kù)的安全性和完整性要求也會(huì)發(fā)生變化。例如,增加、刪除用戶(hù),增加、修改某些用戶(hù)的權(quán)限,撤回某些用戶(hù)的權(quán)限,數(shù)據(jù)的取值范圍發(fā)生變化等。這都需要系統(tǒng)管理員對(duì)數(shù)據(jù)庫(kù)進(jìn)行適當(dāng)?shù)恼{(diào)整,以適應(yīng)這些新的變化。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用61(3)監(jiān)視、分析、調(diào)整數(shù)據(jù)庫(kù)性能監(jiān)視數(shù)據(jù)庫(kù)的運(yùn)行情況,并對(duì)檢測(cè)數(shù)據(jù)進(jìn)行分析,找出能夠提高性能的可行性,并適當(dāng)?shù)貙?duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)整。目前有些數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品提供了性能檢測(cè)工具,額數(shù)據(jù)庫(kù)系統(tǒng)管理員可以利用這些工具很方便地監(jiān)視數(shù)據(jù)庫(kù)。(4)數(shù)據(jù)庫(kù)的重組和重構(gòu)數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后,隨著數(shù)據(jù)的不斷添加、刪除和修改,會(huì)使數(shù)據(jù)庫(kù)的存取效率降低,數(shù)據(jù)庫(kù)管理員可以改變數(shù)據(jù)庫(kù)數(shù)據(jù)的組織方式,通過(guò)增加、刪除或調(diào)整部分索引等方法,改善系統(tǒng)的性能。數(shù)據(jù)庫(kù)的重組并不改變數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),而數(shù)據(jù)庫(kù)的重構(gòu)指部分修改數(shù)據(jù)庫(kù)的模式和內(nèi)模式。1.4數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用621.5大數(shù)據(jù)簡(jiǎn)介1.5.1大數(shù)據(jù)的基本概念由于人類(lèi)的日常生活已經(jīng)與數(shù)據(jù)密不可分,科學(xué)研究數(shù)據(jù)量急劇增加,各行各業(yè)也越來(lái)越依賴(lài)大數(shù)據(jù)手段來(lái)開(kāi)展工作,而數(shù)據(jù)產(chǎn)生越來(lái)越自動(dòng)化,人類(lèi)進(jìn)入”大數(shù)據(jù)”時(shí)代。2004年,全球數(shù)據(jù)總量是30EB(1EB=1024PB=260Byte),2005年達(dá)到了50EB,2006年達(dá)到了161EB,到2015年達(dá)到了驚人的7900EB,預(yù)計(jì)2020年將達(dá)到35000EB,如圖1.26所示。圖1.26全球數(shù)據(jù)總量MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用631.大數(shù)據(jù)的基本概念目前在學(xué)術(shù)界和工業(yè)界對(duì)于大數(shù)據(jù)的定義,尚未形成標(biāo)準(zhǔn)化的表述,比較流行的提法如下。維基百科(Wikipedia)定義大數(shù)據(jù)為”數(shù)據(jù)集規(guī)模超過(guò)了目前常用的工具在可接受的時(shí)間范圍內(nèi)進(jìn)行采集、管理及處理的水平“。美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST)定義大數(shù)據(jù)為”具有規(guī)模大(Volume)、多樣化(Variety)、時(shí)效性(Velocity)、和多變性(Variability)特性,需要具備可擴(kuò)展性的計(jì)算架構(gòu)來(lái)進(jìn)行有效存儲(chǔ)、處理和分析的大規(guī)模數(shù)據(jù)集”。概況上述情況和定義可以得出:大數(shù)據(jù)(BigData)指海量數(shù)據(jù)或巨量數(shù)據(jù),需要以新的計(jì)算模式為手段,獲取、存儲(chǔ)、管理、處理并提煉數(shù)據(jù)以幫助使用者決策。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用642.大數(shù)據(jù)的特點(diǎn)大數(shù)據(jù)具有4V+1C的特點(diǎn):(1)數(shù)據(jù)量大(Volume):存儲(chǔ)和處理的數(shù)據(jù)量巨大,超過(guò)了傳統(tǒng)的GB(1GB=1024MB)或TB(1TB=1024GB)規(guī)模,達(dá)到了PB(1PB=1024TB)甚至EB(1EB=1024PB)量級(jí),PB級(jí)別已是常態(tài)。(2)多樣(Variety):數(shù)據(jù)的來(lái)源及格式多樣,數(shù)據(jù)格式除了傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)外,還包括半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù),比如用戶(hù)上傳的音頻和視頻內(nèi)容。而隨著人類(lèi)活動(dòng)的進(jìn)一步拓寬,數(shù)據(jù)的來(lái)源更加多樣。(3)快速(Velocity):數(shù)據(jù)增長(zhǎng)速度快,而且越新的數(shù)據(jù)價(jià)值越大,這就要求對(duì)數(shù)據(jù)的處理速度也要快,以便能夠從數(shù)據(jù)中及時(shí)地提取知識(shí),發(fā)現(xiàn)價(jià)值。(4)價(jià)值密度低(Value):需要對(duì)大量數(shù)據(jù)進(jìn)行處理,挖掘其潛在的價(jià)值。(5)復(fù)雜度增加(Complexity):對(duì)數(shù)據(jù)的處理和分析的難度增大。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用651.5.2大數(shù)據(jù)的處理過(guò)程大數(shù)據(jù)的處理過(guò)程包括數(shù)據(jù)的采集和預(yù)處理,大數(shù)據(jù)分析,數(shù)據(jù)可視化。1)數(shù)據(jù)的采集和預(yù)處理大數(shù)據(jù)的采集一般采用多個(gè)數(shù)據(jù)庫(kù)來(lái)接收終端數(shù)據(jù),包括智能終端、移動(dòng)APP應(yīng)用端、網(wǎng)頁(yè)端、傳感器端等。數(shù)據(jù)預(yù)處理包括數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約等方法。(1)數(shù)據(jù)清理目標(biāo)是達(dá)到數(shù)據(jù)格式標(biāo)準(zhǔn)化,清除異常數(shù)據(jù)和重復(fù)數(shù)據(jù)、糾正數(shù)據(jù)錯(cuò)誤。(2)數(shù)據(jù)集成將多個(gè)數(shù)據(jù)源中的數(shù)據(jù)結(jié)合起來(lái)并統(tǒng)一存儲(chǔ),建立數(shù)據(jù)倉(cāng)庫(kù)。(3)數(shù)據(jù)變換通過(guò)平滑聚集、數(shù)據(jù)泛化、規(guī)范化等方式將數(shù)據(jù)轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用66(4)數(shù)據(jù)歸約尋找依賴(lài)于發(fā)現(xiàn)目標(biāo)的數(shù)據(jù)的有用特征,縮減數(shù)據(jù)規(guī)模,最大限度地精簡(jiǎn)數(shù)據(jù)量。2)大數(shù)據(jù)分析大數(shù)據(jù)分析包括統(tǒng)計(jì)分析、數(shù)據(jù)挖掘等方法。(1)統(tǒng)計(jì)分析統(tǒng)計(jì)與分析使用分布式數(shù)據(jù)庫(kù)或分布式計(jì)算集群,對(duì)存儲(chǔ)于其內(nèi)的海量數(shù)據(jù)進(jìn)行分析和分類(lèi)匯總。統(tǒng)計(jì)分析、繪圖的語(yǔ)言和操作環(huán)境通常采用R語(yǔ)言,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的、免費(fèi)和源代碼開(kāi)放的優(yōu)秀軟件,(2)數(shù)據(jù)挖掘數(shù)據(jù)挖掘與統(tǒng)計(jì)分析不同的是一般沒(méi)有預(yù)先設(shè)定主題。數(shù)據(jù)挖掘通過(guò)對(duì)提供的數(shù)據(jù)進(jìn)行分析,查找特定類(lèi)型的模式和趨勢(shì),最終形成模型。數(shù)據(jù)挖掘常用方法有分類(lèi)、聚類(lèi)、關(guān)聯(lián)分析、預(yù)測(cè)建模等。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用67●分類(lèi):根據(jù)重要數(shù)據(jù)類(lèi)的特征向量值及其他約束條件,構(gòu)造分類(lèi)函數(shù)或分類(lèi)模型,目的是根據(jù)數(shù)據(jù)集的特點(diǎn)把未知類(lèi)別的樣本映射到給定類(lèi)別中?!窬垲?lèi):目的在于將數(shù)據(jù)集內(nèi)具有相似特征屬性的數(shù)據(jù)聚集成一類(lèi),同一類(lèi)中的數(shù)據(jù)特征要盡可能相似,不同類(lèi)中的數(shù)據(jù)特征要有明顯的區(qū)別?!耜P(guān)聯(lián)分析:搜索系統(tǒng)中的所有數(shù)據(jù),找出所有能把一組事件或數(shù)據(jù)項(xiàng)與另一組事件或數(shù)據(jù)項(xiàng)聯(lián)系起來(lái)的規(guī)則,以獲得預(yù)先未知的和被隱藏的信息?!耦A(yù)測(cè)建模:一種統(tǒng)計(jì)或數(shù)據(jù)挖掘的方法,包括可以在結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)中使用以確定未來(lái)結(jié)果的算法和技術(shù),可為預(yù)測(cè)、優(yōu)化、預(yù)報(bào)和模擬等許多業(yè)務(wù)系統(tǒng)所使用。3)數(shù)據(jù)可視化通過(guò)圖形、圖像等技術(shù)直觀形象和清晰有效地表達(dá)數(shù)據(jù),從而為發(fā)現(xiàn)數(shù)據(jù)隱含的規(guī)律提供技術(shù)手段。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用681.5.3大數(shù)據(jù)的技術(shù)支撐大數(shù)據(jù)的技術(shù)支撐有:計(jì)算速度的提高、存儲(chǔ)成本的下降和對(duì)人工智能的需求,如圖1.27所示。圖1.27大數(shù)據(jù)技術(shù)支撐的三大因素1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用69(1)計(jì)算速度的提高在大數(shù)據(jù)的發(fā)展過(guò)程中,計(jì)算速度是關(guān)鍵的因素。分布式系統(tǒng)基礎(chǔ)架構(gòu)Hadoop的高效性,基于內(nèi)存的集群計(jì)算系統(tǒng)Spark的快速數(shù)據(jù)分析,HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce為海量的數(shù)據(jù)提供了并行計(jì)算,從而大幅度地提高了計(jì)算效率。大數(shù)據(jù)需要強(qiáng)大的計(jì)算能力支撐,中國(guó)國(guó)家工信部電子科技情報(bào)所所做的大數(shù)據(jù)需求調(diào)查表明:實(shí)時(shí)分析能力差、海量數(shù)據(jù)處理效率低等是目前中國(guó)企業(yè)數(shù)據(jù)分析處理面臨的主要難題。(2)存儲(chǔ)成本的下降新的云計(jì)算數(shù)據(jù)中心的出現(xiàn),降低了企業(yè)的計(jì)算和存儲(chǔ)成本,例如,建設(shè)企業(yè)網(wǎng)站,通過(guò)租用硬件設(shè)備的方式,不需要購(gòu)買(mǎi)服務(wù)器,也不需要雇用技術(shù)人員維護(hù)服務(wù)器,并可長(zhǎng)期保留歷史數(shù)據(jù),為大數(shù)據(jù)做好基礎(chǔ)工作。1.5大數(shù)據(jù)簡(jiǎn)介MySQL數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用70(3)對(duì)人工智能的需求大數(shù)據(jù)讓機(jī)器具有智能,例如,Google的AlphaoGo戰(zhàn)勝世界圍棋冠軍李世

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論