數(shù)據(jù)庫(kù)設(shè)計(jì)PPT優(yōu)秀課件_第1頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)PPT優(yōu)秀課件_第2頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)PPT優(yōu)秀課件_第3頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)PPT優(yōu)秀課件_第4頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)PPT優(yōu)秀課件_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1本章要點(diǎn)本章要點(diǎn) 數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)簡(jiǎn)介概念模型概念模型數(shù)據(jù)模型數(shù)據(jù)模型數(shù)據(jù)庫(kù)規(guī)范化數(shù)據(jù)庫(kù)規(guī)范化9.1 數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)簡(jiǎn)介n 數(shù)據(jù)庫(kù)是信息系統(tǒng)設(shè)計(jì)的基礎(chǔ)和核心,數(shù)據(jù)庫(kù)設(shè)計(jì)直接關(guān)系到信息系統(tǒng)開發(fā)的成敗和優(yōu)劣。在信息系統(tǒng)中,數(shù)據(jù)庫(kù)設(shè)計(jì)是指根據(jù)業(yè)務(wù)需求、信息需求和處理需求,確定信息系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)一致性約束的過程。數(shù)據(jù)庫(kù)設(shè)計(jì)分為概念設(shè)計(jì)(概念結(jié)構(gòu)設(shè)計(jì))和模型設(shè)計(jì)(邏輯結(jié)構(gòu)設(shè)計(jì)),他們之間的關(guān)系如圖9.1所示。信息世界 概念模型 計(jì)算機(jī)世界 DBMS支持的某種數(shù)據(jù)模型轉(zhuǎn)換 現(xiàn)實(shí)世界認(rèn)識(shí)抽象圖9.1 概念設(shè)計(jì)和模型設(shè)計(jì)的關(guān)系9.1.1 數(shù)據(jù)庫(kù)的基本概念數(shù)據(jù)庫(kù)的基本概念n n 1、數(shù)據(jù)庫(kù)

2、與數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)管理系統(tǒng) 數(shù)據(jù)庫(kù)(DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)僅僅是一個(gè)概念,是對(duì)這種數(shù)據(jù)集合的統(tǒng)稱。數(shù)據(jù)庫(kù)由數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)統(tǒng)一管理,以保證數(shù)據(jù)的安全性、可靠性和提供多用戶共享。因此,數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)這一類軟件的統(tǒng)稱,如Access、SQL Server是微軟公司開發(fā)的一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),類似的Foxpro、Mysql、Oracle等都分別是一種數(shù)據(jù)庫(kù)管理系統(tǒng)。9.1.1 數(shù)據(jù)庫(kù)的基本概念數(shù)據(jù)庫(kù)的基本概念n n 2、數(shù)據(jù)模型、數(shù)據(jù)模型 從數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)管理的模式分類,數(shù)據(jù)庫(kù)有層次型、網(wǎng)狀型和關(guān)系型。較常見的是關(guān)系模型。n 3、數(shù)據(jù)處

3、理與數(shù)據(jù)管理、數(shù)據(jù)處理與數(shù)據(jù)管理 數(shù)據(jù)處理是指對(duì)各種數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工和傳播的一系列活動(dòng)的總稱。數(shù)據(jù)管理指的是對(duì)數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù)等,它是數(shù)據(jù)處理的中心問題。9.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)的主要任務(wù)數(shù)據(jù)庫(kù)設(shè)計(jì)的主要任務(wù)n n 管理信息系統(tǒng)中對(duì)于大量數(shù)據(jù)的存儲(chǔ)與共享,一般都會(huì)用到數(shù)據(jù)庫(kù)的支持,即錄入的大量數(shù)據(jù)或信息需要以某種方式存儲(chǔ)到數(shù)據(jù)庫(kù)中,并在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,對(duì)數(shù)據(jù)進(jìn)行各種加工處理,以實(shí)現(xiàn)查詢、統(tǒng)計(jì)等功能。因此,管理信息系統(tǒng)開發(fā)過程中,對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì)是一種重要的任務(wù)。n 如何將實(shí)體、信息轉(zhuǎn)化為相應(yīng)的數(shù)據(jù),并以與數(shù)據(jù)庫(kù)相適合的模式存到數(shù)據(jù)庫(kù)中,以實(shí)現(xiàn)數(shù)據(jù)共享,這

4、是數(shù)據(jù)庫(kù)設(shè)計(jì)的中心任務(wù)。因此,數(shù)據(jù)庫(kù)設(shè)計(jì)的主要任務(wù)包括實(shí)體的代碼設(shè)計(jì)、實(shí)體概念模型到數(shù)據(jù)模型的轉(zhuǎn)換以及對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的規(guī)范化處理。9.2 概念模型概念模型n 即數(shù)據(jù)庫(kù)概念設(shè)計(jì),它是針對(duì)現(xiàn)實(shí)世界,通過對(duì)其中信息實(shí)體的收集、分類、聚集和概括,建立數(shù)據(jù)庫(kù)概念結(jié)構(gòu)的過程。概念結(jié)構(gòu)也叫概念數(shù)據(jù)模型,它應(yīng)該反映現(xiàn)實(shí)世界中的組織的業(yè)務(wù)模式、信息結(jié)構(gòu)和信息間的相互制約關(guān)系,以及對(duì)信息的加工、存儲(chǔ)和查詢要求等。概念數(shù)據(jù)模型是對(duì)數(shù)據(jù)的抽象描述,它應(yīng)該獨(dú)立于具體的數(shù)據(jù)處理細(xì)節(jié)和數(shù)據(jù)庫(kù)管理系統(tǒng)。9.2.1 實(shí)體、信息和數(shù)據(jù)n 實(shí)體、信息和數(shù)據(jù)分別描述了人們?cè)谡J(rèn)識(shí)客觀事物、記錄客觀事物的過程中三個(gè)不同范疇的概念。現(xiàn)實(shí)世

5、界中形形色色的事物都以其固有的特征和行為客觀地存在和運(yùn)動(dòng)著,這些內(nèi)容反映到人的頭腦中就形成了信息,要把這些信息記錄下來,以便被加工和利用,就必須利用數(shù)據(jù)這一載體形式。在管理信息系統(tǒng)的開發(fā)過程中,被管理的對(duì)象就是客觀事物,對(duì)客觀事物的認(rèn)識(shí)和記錄就分別表現(xiàn)為信息和數(shù)據(jù)的形式。分清這三個(gè)相互映射的范疇的對(duì)應(yīng)概念非常重要。9.2.1 實(shí)體、信息和數(shù)據(jù)n 表9-1以表格的形式分別對(duì)照地說明了這三個(gè)范疇的相關(guān)概念,圖9.2以圖示的方式形象地表示了這三個(gè)范疇中相關(guān)概念的映射與演變過程。表9-1 現(xiàn)實(shí)世界、信息范疇和數(shù)據(jù)范疇概念的關(guān)系9.2.1 實(shí)體、信息和數(shù)據(jù)圖9.2 實(shí)體、概念模型、數(shù)據(jù)模型的關(guān)系在系統(tǒng)開

6、發(fā)過程中,首先要選擇確定信息系統(tǒng)被管理的對(duì)象,如物資、產(chǎn)品、原材料、定額、工序等,這些是客觀事物。對(duì)客觀事物進(jìn)行分析,抽取能夠表述其特征與行為的屬性,需要用到信息范疇的相關(guān)概念,我們常用實(shí)體關(guān)系模型來表示對(duì)這些客觀事物的認(rèn)識(shí)和描述。最后,要把這些信息存儲(chǔ)在計(jì)算機(jī)管理信息系統(tǒng)中,則必須將其轉(zhuǎn)變?yōu)閿?shù)據(jù)庫(kù)中的相關(guān)概念,如關(guān)系、記錄、字段等概念。9.2.2 實(shí)體-關(guān)系模型n 概念模型,即“實(shí)體-關(guān)系”模型。它具有三種基本成分:實(shí)體、關(guān)系和屬性。在系統(tǒng)分析與設(shè)計(jì)過程中,常用“E-R圖”來表示,如圖9.3所示。圖9.3 表示實(shí)體-關(guān)系模型的“E-R圖”9.2.2 實(shí)體-關(guān)系模型n n (1)客觀存在并可相

7、互區(qū)分的事物叫實(shí)體。如圖9.3中的“學(xué)生”、“課程”,在管理信息系統(tǒng)中,這些實(shí)體對(duì)應(yīng)的事物就是被管理的對(duì)象。實(shí)體不僅是客觀世界中存在的有形的物本,也可以是我們思維過程中的一個(gè)概念,如“定額”、“職稱級(jí)別”、“工資等級(jí)”、“學(xué)生類別”、“學(xué)科性質(zhì)”等。n (2)屬性是實(shí)體所具有的一些特性,一般使用一組屬性來描述一個(gè)實(shí)體的特征,即一個(gè)實(shí)體可以由若干個(gè)屬性來刻畫。如圖9.3所示,學(xué)生可由學(xué)號(hào)、姓名、系別等組成。課程可以用課程編號(hào)、課程名、主講老師等屬性來描述。n (3)域是屬性的取值范圍。例如,性別的域?yàn)椤澳小?、“女”,月份的域?yàn)?12的整數(shù)。9.2.2 實(shí)體-關(guān)系模型n n (4)關(guān)系是實(shí)體之間的

8、相互關(guān)聯(lián)。如學(xué)生與老師間的授課關(guān)系、學(xué)生與學(xué)生間的班長(zhǎng)關(guān)系。關(guān)系有一對(duì)一、一對(duì)多、多對(duì)多三種不同類型。關(guān)系也可以有屬性,如學(xué)生與課程之間有選課聯(lián)系,每個(gè)選課聯(lián)系都有一個(gè)成績(jī)作為其屬性。n (5)關(guān)系的元或度,參與關(guān)聯(lián)的實(shí)體集的個(gè)數(shù)稱為關(guān)系的元。圖9.3中,學(xué)生選修課程是二元聯(lián)系。n (6)能唯一標(biāo)識(shí)實(shí)體的屬性稱為主碼。一個(gè)實(shí)體集中任意兩個(gè)實(shí)體在主碼上的取值不能相同。如學(xué)號(hào)是學(xué)生的實(shí)體主碼。注意:主碼對(duì)應(yīng)數(shù)據(jù)庫(kù)中的關(guān)鍵字域,但在實(shí)體-關(guān)系圖中稱碼為“主碼”,而不是叫關(guān)鍵字,關(guān)鍵字是數(shù)據(jù)庫(kù)中的概念。9.2.2 實(shí)體-關(guān)系模型n n 1、聯(lián)系、聯(lián)系n (1)一對(duì)一聯(lián)系(1:1)。如果對(duì)于實(shí)體集A中每

9、一個(gè)實(shí)體,實(shí)體集B中至多只有一個(gè)實(shí)體與之聯(lián)系;反之對(duì)于實(shí)體集B中每一個(gè)實(shí)體,實(shí)體集A中也至多只有一個(gè)實(shí)體與之聯(lián)系。我們稱實(shí)體集A與實(shí)體集B之間具有一對(duì)一聯(lián)系。記為1:1,如下圖所示。班級(jí)正班長(zhǎng)任職119.2.2 實(shí)體-關(guān)系模型n (2)一對(duì)多聯(lián)系(1:n)。如果對(duì)于實(shí)體集A中每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n=0)與之聯(lián)系;反之對(duì)于實(shí)體集B中每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系。我們稱實(shí)體集A與實(shí)體集B之間具有一對(duì)多聯(lián)系。記為1:n,如下圖所示。一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例。學(xué)校教師任職1n9.2.2 實(shí)體-關(guān)系模型n n (3)多對(duì)多聯(lián)系(m:n)。如果對(duì)于實(shí)體集A中每一個(gè)實(shí)體,

10、實(shí)體集B中有n個(gè)實(shí)體(n=0)與之聯(lián)系;反之對(duì)于實(shí)體集B中每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m=0)與之聯(lián)系。我們稱實(shí)體集A與實(shí)體集B之間具有多對(duì)多聯(lián)系。記為m:n,如下圖所示。一對(duì)多聯(lián)系是多對(duì)多聯(lián)系的特例。教師課程講授mn9.2.2 實(shí)體-關(guān)系模型n 2.E-R圖的畫法圖的畫法n 我們?cè)诳疾炝丝陀^事物及其聯(lián)系之后,即著手建立E-R模型。在模型設(shè)計(jì)中,首先根據(jù)分析階段收集到的資料,利用分類、聚集、概括等方法抽象出實(shí)體,并一一命名,再根據(jù)實(shí)體的屬性描述其間的各種關(guān)系。E-R模型中,用矩形表示實(shí)體,實(shí)體間的關(guān)系用菱形表示,用無向邊把實(shí)體和關(guān)聯(lián)連接起來,在邊上標(biāo)明聯(lián)系的類型。實(shí)體的屬性可以用橢圓表

11、示,并用無向邊把實(shí)體和屬性聯(lián)系起來。9.2.2 實(shí)體-關(guān)系模型n 用E-R圖來表示某個(gè)學(xué)校日常教學(xué)管理的概念模型。對(duì)日常教學(xué)管理進(jìn)行認(rèn)識(shí)分析,日常教學(xué)管理涉及的實(shí)體有: n 學(xué)生: 屬性有學(xué)號(hào)、姓名、性別和出生日期 n 教師: 屬性有教師編號(hào)、姓名、學(xué)歷和專長(zhǎng) n 課程: 屬性有課程號(hào)、課程名稱、學(xué)分n 院系: 屬性有院系編號(hào)、院系名稱、聯(lián)系電話9.2.2 實(shí)體-關(guān)系模型n 這些實(shí)體之間的聯(lián)系如下: n (1)一個(gè)院系可以容納若干個(gè)教師和學(xué)生,而一個(gè)教師或?qū)W生只能隸屬于一個(gè)院系,因此院系和教師之間以及院系與學(xué)生之間是一對(duì)多的聯(lián)系。 n (2)一個(gè)院系可以開設(shè)多門課程,而一門課程只能由一個(gè)院系提

12、供,因此院系和課程之間的聯(lián)系是一對(duì)多的。 n (3)一個(gè)教師可以教授多門課程,而一門課程可以由多位教師主講。由此可以看出,教師和課程之間是多對(duì)多的聯(lián)系。 n (4)學(xué)生可以選修多門課程,一門課程可以被若干個(gè)學(xué)生選修。學(xué)生與課程之間的聯(lián)系是多對(duì)多的。 9.2.2 實(shí)體-關(guān)系模型9.2.2 實(shí)體-關(guān)系模型n 3.設(shè)計(jì)設(shè)計(jì)E-R圖應(yīng)遵循的原則圖應(yīng)遵循的原則n E-R圖是對(duì)現(xiàn)實(shí)世界的一種抽象,它抽取了客觀事務(wù)中人們所關(guān)心的信息,忽略了非本質(zhì)的細(xì)節(jié),對(duì)這些信息進(jìn)行了精確地描述。設(shè)計(jì)E-R圖應(yīng)以下原則遵循的原則:n (1)首先針對(duì)特定用戶的應(yīng)用,確定實(shí)體、屬性和實(shí)體間的聯(lián)系,作出反映該用戶視圖的局部E-R

13、圖。 n (2)綜合各個(gè)用戶的局部E-R圖,產(chǎn)生反映數(shù)據(jù)庫(kù)整體概念的總體E-R圖。在綜合時(shí),刪掉局部E-R圖中的同名實(shí)體,以便消除冗余,保持?jǐn)?shù)據(jù)的一致性。 n (3)在綜合局部E-R圖時(shí),還要注意消除那些冗余的聯(lián)系,冗余信息會(huì)影響數(shù)據(jù)的完整性,使維護(hù)工作復(fù)雜化,但有時(shí)也要折中考慮,有時(shí)必要的冗余會(huì)提高數(shù)據(jù)處理效率。 n (4)綜合時(shí)也可以在總體E-R圖中增加新的聯(lián)系。 9.3 數(shù)據(jù)模型數(shù)據(jù)模型n 數(shù)據(jù)模型是相對(duì)概念模型而言的,是對(duì)客觀事物及其聯(lián)系的數(shù)據(jù)化描述。在數(shù)據(jù)庫(kù)系統(tǒng)中,對(duì)現(xiàn)實(shí)世界中數(shù)據(jù)的抽象、描述以及處理等都是通過數(shù)據(jù)模型來實(shí)現(xiàn)的,關(guān)于概念模型和數(shù)據(jù)模型的關(guān)系,可以說數(shù)據(jù)模型在數(shù)據(jù)庫(kù)系統(tǒng)

14、設(shè)計(jì)中是用來提供信息表示和操作手段的形式架構(gòu),是數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)。9.3.1 基本概念基本概念n 目前,主要的數(shù)據(jù)模型是關(guān)系模型。n 用關(guān)系(二維表格數(shù)據(jù))表示實(shí)體和實(shí)體之間聯(lián)系的模型稱為關(guān)系數(shù)據(jù)模型。從用戶觀點(diǎn)看,關(guān)系模型由一組關(guān)系組成。每個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一張規(guī)范化的二維表?,F(xiàn)在以學(xué)生登記表為例,介紹關(guān)系模型中的一些術(shù)語。n (1)關(guān)系(Relation):一個(gè)關(guān)系對(duì)應(yīng)通常說的一張表。如學(xué)生登記表;n (2)元組(Tuple):表中的一行即為一個(gè)元組;n (3)屬性(Attribute):表中一列即為一個(gè)屬性,給每個(gè)屬性起一個(gè)名稱即屬性名。如這張表中對(duì)應(yīng)6列,對(duì)應(yīng)6個(gè)屬性(學(xué)號(hào)、姓名、

15、年齡、性別、系名和年級(jí));9.3.1 基本概念基本概念n (4)碼(Key):也稱為碼鍵。表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組,如學(xué)生登記表中學(xué)號(hào)可以唯一確定一個(gè)學(xué)生,也就成為本關(guān)系的碼; n (5)域(Domain):屬性的取值范圍,如人的年齡一般在1-100歲之間,性別的域是(男,女),系別的域是一個(gè)學(xué)校所有系別的集合;n (6)分量:元組中的一個(gè)屬性值;9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n 在E-R模型中有實(shí)體和關(guān)系兩類元素,這些信息在數(shù)據(jù)庫(kù)設(shè)計(jì)中將轉(zhuǎn)變?yōu)閿?shù)據(jù)庫(kù)關(guān)系模型中的二維表來表示。關(guān)系又有多種類型,如“1對(duì)1”關(guān)系、“1對(duì)多”關(guān)系和“多對(duì)多”關(guān)系,如何將“實(shí)體”和不同的種

16、類的“關(guān)系”轉(zhuǎn)化為相應(yīng)的二維表形式,需要掌握一些具體的轉(zhuǎn)換策略。9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (1)用二維表表示一個(gè)實(shí)體的信息。如圖9.4所示,將實(shí)體的相關(guān)信息表示為二維表時(shí),實(shí)體的具體某個(gè)屬性對(duì)應(yīng)二維表中的一個(gè)列,每一列關(guān)系型數(shù)據(jù)庫(kù)中對(duì)應(yīng)一個(gè)字段。在每個(gè)實(shí)體的信息二維表中對(duì)應(yīng)一行,第一行在關(guān)系型數(shù)據(jù)庫(kù)中對(duì)應(yīng)一條記錄。實(shí)體的主碼就是二維表的關(guān)鍵字。實(shí)體信息用概念模型表示就是圖9.4中的“E-R”圖,將其轉(zhuǎn)為關(guān)系模型中的表示方式,就是圖9.4中“學(xué)生(*學(xué)號(hào),姓名,籍貫)”這種形式,就是關(guān)系模型,對(duì)應(yīng)一張二維表。在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí),常需要將這種關(guān)系模型表示方式表示為圖9.4右側(cè)的數(shù)據(jù)

17、結(jié)構(gòu)表示形式。9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略圖9.4 用二維表表示實(shí)體信息9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (2)用二維表表示一個(gè)m:n關(guān)系。如圖9.5所示,與關(guān)系“選修”相連的各實(shí)體的代碼,如“學(xué)號(hào)”、“課程號(hào)”以及關(guān)系本身的屬性“成績(jī)”均成為此表的列。此表的關(guān)鍵字為相連的各實(shí)體的關(guān)鍵字的組合,即“學(xué)號(hào)+課程號(hào)”。圖9.5 用二維表表示m:n的關(guān)系9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (3)用二維表表示一個(gè)1:n關(guān)系。如圖9.6所示,使用兩個(gè)二維表表示這種1:n的關(guān)系,將一端實(shí)體的關(guān)鍵字并入n端實(shí)體,即在n端實(shí)體的表中增加1端實(shí)體的代碼,如“班級(jí)號(hào)”。圖9.6 用二

18、維表表示1:n的關(guān)系班9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (4)用二維表表示一個(gè)“1:1關(guān)系”。如圖9.7所示,使用兩個(gè)二維表來表示這種關(guān)系,將任一端實(shí)體的標(biāo)識(shí)碼并入另一端實(shí)體,即在該端實(shí)體的表中增加另一端實(shí)體的代碼,如在“班主任”實(shí)體信息中,增加其所屬的“班級(jí)號(hào)”。圖9.7 用二維表表示1:1的關(guān)系9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (5)對(duì)三個(gè)以上實(shí)體間的多元關(guān)系的轉(zhuǎn)換及自關(guān)系。對(duì)三個(gè)以上實(shí)體間的多元關(guān)系根據(jù)相同的轉(zhuǎn)換規(guī)則,按關(guān)系的不同類型進(jìn)行相應(yīng)的轉(zhuǎn)換,如圖9.8所示。同一實(shí)體集的實(shí)體間的自關(guān)系的轉(zhuǎn)換策略,如圖9.9所示。圖9.8 用二維表表示三個(gè)以上實(shí)體的關(guān)聯(lián)信息圖9.

19、9 用二維表表示實(shí)體自關(guān)系號(hào)9.4 數(shù)據(jù)庫(kù)規(guī)范化數(shù)據(jù)庫(kù)規(guī)范化n n 在關(guān)系模式設(shè)計(jì)時(shí),經(jīng)常存在的數(shù)據(jù)存儲(chǔ)異常現(xiàn)象:數(shù)據(jù)冗余、修改異常、插入異常、刪除異常等。為了解決這些問題,需要對(duì)關(guān)系數(shù)據(jù)庫(kù)規(guī)范化。關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化就是關(guān)系數(shù)據(jù)庫(kù)中的每一個(gè)關(guān)系(二維表)都必須滿足一定的條件。9.4.1 規(guī)范化的概念規(guī)范化的概念 規(guī)范化理論以關(guān)系模型為背景,以關(guān)系理論為基礎(chǔ)。一個(gè)規(guī)范化的數(shù)據(jù)結(jié)構(gòu)可以表示成二維表,符合關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)關(guān)系要求。換句話說,一個(gè)數(shù)據(jù)關(guān)系只要符合二維表的特點(diǎn),那么它就是規(guī)范化的。 表中任意一列上的數(shù)據(jù)項(xiàng)應(yīng)屬于同一屬性。 表中所有行都不是相同的,不允許有重復(fù)組項(xiàng)出現(xiàn)(一行是一個(gè)不同的學(xué)

20、生記錄)。 表中行的順序無關(guān)緊要(如每行都是一個(gè)學(xué)生記錄,先放哪個(gè)學(xué)生記錄都沒有關(guān)系)。 表中列的順序無關(guān)緊要,但不能重復(fù)(如學(xué)號(hào)與學(xué)生姓名的先后順序沒有關(guān)系,但二者不能重名)。 9.4.2 非規(guī)范化形式非規(guī)范化形式 所謂非規(guī)范化形式,就是不能滿足二維表特點(diǎn)的數(shù)據(jù)關(guān)系形式,如表9-2所示。表9-2所列的數(shù)據(jù)關(guān)系不符合二維表的特點(diǎn),所以該數(shù)據(jù)關(guān)系為非規(guī)范化的。比較明顯的地方是,儲(chǔ)備定額域存在層次表頭,表格內(nèi)容中存在一行對(duì)多行的情形,這樣的數(shù)據(jù)關(guān)系不符合二維表的特點(diǎn),無法存入關(guān)系型數(shù)據(jù)庫(kù)。9.4.2 非規(guī)范化形式非規(guī)范化形式名稱規(guī)格儲(chǔ) 備 定 額庫(kù)存量供應(yīng)商地址儲(chǔ)備量?jī)?chǔ)備量?jī)?chǔ)備量礦燈冷光源3005

21、0150200西安西安南寧南寧北京北京滅火器干粉4007010080廣州廣州上海上海表9-2 物資庫(kù)存情況9.4.3 第一范式n 所謂第一范式(1NF)是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個(gè)新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對(duì)多關(guān)系。在第一范式(1NF)中表的每一行只包含一個(gè)實(shí)例的信息。簡(jiǎn)而言之,第一范式就是無重復(fù)的列。說明:在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式(1NF)是對(duì)關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫(kù)就不是關(guān)系數(shù)據(jù)庫(kù)。 9.4.3

22、 第一范式n 如果將表9-2中的層次表頭的現(xiàn)象去掉,表中各行消去一行對(duì)多行的情形,該表就符合二維表的特點(diǎn)了,該數(shù)據(jù)結(jié)構(gòu)就轉(zhuǎn)變?yōu)橐?guī)范化形式了。任何滿足規(guī)范化要求的數(shù)據(jù)結(jié)構(gòu)都稱為第一規(guī)范形式,記為1NF。由此可見,將一個(gè)非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為規(guī)范化的結(jié)構(gòu)方法就是設(shè)法將其變?yōu)槎S表,本例中,將表9-2拆分成表6.3和表6.4之后,就由一個(gè)非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為了兩個(gè)1NF的數(shù)據(jù)結(jié)構(gòu)了。9.4.3 第一范式符合1NF的數(shù)據(jù)結(jié)構(gòu)仍然存在嚴(yán)重的存儲(chǔ)缺陷,如下所述。(1)刪除異常。當(dāng)目前供應(yīng)商不再供應(yīng)該物資,刪除廠家信息后,物資信息也會(huì)隨之被刪除,但本單位還需要使用該物資。(2)插入異常。數(shù)據(jù)庫(kù)需要添加

23、一種新的物資,但還沒有供應(yīng)廠家時(shí),無法添加。(3)修改麻煩。當(dāng)某個(gè)供應(yīng)商廠地址變化以后,需要多處修改其在數(shù)據(jù)庫(kù)中的信息,且很難保證修改徹底。(4)存在嚴(yán)重的數(shù)據(jù)冗余。供應(yīng)商的信息隨每條物資記錄都要重復(fù)存儲(chǔ)多遍。9.4.4 第二范式n 第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被惟一地區(qū)分。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的惟一標(biāo)識(shí)。 例如員工信息表中加上了員工編號(hào)(emp_id)列,因?yàn)槊總€(gè)員工的員工編號(hào)是惟一的,因此每個(gè)員工可以被惟一區(qū)分。這個(gè)惟一屬性

24、列被稱為主關(guān)鍵字或主鍵、主碼。 第二范式(2NF)要求實(shí)體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個(gè)屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個(gè)新的實(shí)體,新實(shí)體與原實(shí)體之間是一對(duì)多的關(guān)系。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的惟一標(biāo)識(shí)。簡(jiǎn)而言之,第二范式就是屬性完全依賴于主鍵。 9.4.4 第二范式n n 1NF的數(shù)據(jù)結(jié)構(gòu)存在缺陷的主要原因,是數(shù)據(jù)結(jié)構(gòu)中存在非關(guān)鍵字字段部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況)整個(gè)關(guān)鍵字的情形,如圖9.10所示。n 該結(jié)構(gòu)的關(guān)鍵字“物資名稱+供應(yīng)商”是一個(gè)復(fù)

25、合關(guān)鍵字,這樣就要求所有非關(guān)鍵字段都要同時(shí)依賴于這兩個(gè)字段才是“依賴于整個(gè)關(guān)鍵字”。但事實(shí)上,我們看到“型號(hào)規(guī)格”、“最高儲(chǔ)備量”、“最低儲(chǔ)備量”、“經(jīng)常儲(chǔ)備量”和“當(dāng)前庫(kù)存量”都只依賴于“物資名稱”,這就是所謂的“部分地依賴關(guān)鍵字”的情形。同樣的,“供應(yīng)商地址”也只依賴于“供應(yīng)商”。9.4.4 第二范式圖9.10 第一范式的數(shù)據(jù)結(jié)構(gòu)的缺陷9.4.4 第二范式n 改進(jìn)的辦法就是,通過分解結(jié)構(gòu),取消“部分依賴”關(guān)系,將其轉(zhuǎn)化為多個(gè)第二范式的結(jié)構(gòu)。換言之,如果所有非關(guān)鍵字?jǐn)?shù)據(jù)項(xiàng)完全函數(shù)地依賴于它的整個(gè)關(guān)鍵字,則稱該數(shù)據(jù)結(jié)構(gòu)是第二范式的,記為2NF。具體方法是通過分解結(jié)構(gòu),去掉部分依賴關(guān)系,確保所有

26、非關(guān)鍵字元素依賴于整個(gè)關(guān)鍵字。可將圖9.10中第一范式的結(jié)構(gòu)分解為三個(gè)符合第二范式要求的結(jié)構(gòu),如圖9.11所示,并分別指定關(guān)鍵字. * 供應(yīng)商供應(yīng)商供應(yīng)商地址供應(yīng)商地址* 物資名稱物資名稱* 供應(yīng)商供應(yīng)商訂貨量訂貨量訂貨價(jià)訂貨價(jià)訂貨金額訂貨金額* 物資名稱物資名稱型號(hào)規(guī)格型號(hào)規(guī)格最高儲(chǔ)備量最高儲(chǔ)備量最低儲(chǔ)備量最低儲(chǔ)備量經(jīng)常儲(chǔ)備量經(jīng)常儲(chǔ)備量當(dāng)前庫(kù)存量當(dāng)前庫(kù)存量圖9.11 符合第二范式的數(shù)據(jù)結(jié)構(gòu)449.4.5 第三范式 是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)健字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它函數(shù)關(guān)系。 分析圖9.11中的數(shù)據(jù)結(jié)構(gòu),不難發(fā)現(xiàn)“訂貨金額”是一個(gè)冗余數(shù)據(jù)項(xiàng),因?yàn)橛嗀?/p>

27、金額可以從訂貨價(jià)和訂貨量計(jì)算得出,所以沒必要存入數(shù)據(jù)庫(kù)中。因此,符合第二范式的數(shù)據(jù)結(jié)構(gòu)仍然存在缺陷,那就是可能存在數(shù)據(jù)冗余。產(chǎn)生冗余的原因是這個(gè)數(shù)據(jù)結(jié)構(gòu)中存在著“傳遞依賴”(所謂傳遞函數(shù)依賴,指的是如果存在A B C的決定關(guān)系,則C傳遞函數(shù)依賴于A )情形,即“訂貨金額”通過“訂貨價(jià)”和“訂貨量”傳遞地依賴主關(guān)鍵字“物資名稱+供應(yīng)商”,“傳遞依賴”是第二范式產(chǎn)生缺陷的本質(zhì)。優(yōu)化的辦法是刪除冗余數(shù)據(jù)項(xiàng),去掉“傳遞依賴”情形,得到如圖9.12所示的數(shù)據(jù)結(jié)構(gòu)。 * 物資名稱物資名稱 * 供應(yīng)商供應(yīng)商 訂貨量訂貨量 訂貨價(jià)訂貨價(jià)n 圖9.12 符合第三范式的數(shù)據(jù)結(jié)構(gòu)9.4.5 第三范式v 數(shù)據(jù)結(jié)構(gòu)規(guī)范

28、化的過程可以歸納為如圖9.13中所示的步驟。圖9-139.4.6 實(shí)例實(shí)例n 在物資供應(yīng)系統(tǒng)中,存在如圖9.14所示的一個(gè)“材料供應(yīng)商庫(kù)存”關(guān)系,在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的過程中,首先要對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行規(guī)范化。n 從圖9.14可以看出,該結(jié)構(gòu)符合二維表的特點(diǎn),因此,它自然是第一范式的結(jié)構(gòu)。對(duì)第一范式的數(shù)據(jù)結(jié)構(gòu),第一步是要指定關(guān)鍵字域,經(jīng)過分析,關(guān)鍵字域包括兩個(gè)屬性,即“材料編號(hào)+供應(yīng)商名稱”。但不難看出,該數(shù)據(jù)結(jié)構(gòu)中存在著“部分依賴”關(guān)系,如非關(guān)鍵字屬性“規(guī)格”、“材料名稱”只依賴于“材料編號(hào)”,而非關(guān)鍵字屬性“供應(yīng)商地址”只依賴于“供應(yīng)商名稱”,因此,該結(jié)構(gòu)不是一個(gè)第二范式的數(shù)據(jù)結(jié)構(gòu)。9.4.6 實(shí)例實(shí)例圖9-149.4.6 實(shí)例實(shí)例n 針對(duì)關(guān)鍵字域分解結(jié)構(gòu),去掉部分依賴關(guān)系的情形,將原結(jié)構(gòu)分解成圖9.15所示的三個(gè)數(shù)據(jù)結(jié)構(gòu)。這三個(gè)結(jié)構(gòu)中都不存在部分依賴關(guān)系了,因而它們都是2NF的結(jié)構(gòu)。圖9.15 符合第二范式的數(shù)據(jù)結(jié)構(gòu)9.4.6 實(shí)例實(shí)例從圖9.15可以看出,“材料庫(kù)存”這個(gè)結(jié)構(gòu)中存在傳遞依賴關(guān)系,即“庫(kù)存占用金額”通過“價(jià)格”和“庫(kù)存量”傳遞地依賴于整個(gè)關(guān)鍵字“材料編號(hào)+供應(yīng)商名稱”,因此它不是第三范式的結(jié)構(gòu)。不難看出“庫(kù)存占用金額”明顯屬于冗余數(shù)據(jù)項(xiàng)。因此,去掉多余的“庫(kù)存占用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論