版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1本章要點(diǎn)本章要點(diǎn) 數(shù)據(jù)庫簡介數(shù)據(jù)庫簡介概念模型概念模型數(shù)據(jù)模型數(shù)據(jù)模型數(shù)據(jù)庫規(guī)范化數(shù)據(jù)庫規(guī)范化9.1 數(shù)據(jù)庫簡介數(shù)據(jù)庫簡介n 數(shù)據(jù)庫是信息系統(tǒng)設(shè)計的基礎(chǔ)和核心,數(shù)據(jù)庫設(shè)計直接關(guān)系到信息系統(tǒng)開發(fā)的成敗和優(yōu)劣。在信息系統(tǒng)中,數(shù)據(jù)庫設(shè)計是指根據(jù)業(yè)務(wù)需求、信息需求和處理需求,確定信息系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)一致性約束的過程。數(shù)據(jù)庫設(shè)計分為概念設(shè)計(概念結(jié)構(gòu)設(shè)計)和模型設(shè)計(邏輯結(jié)構(gòu)設(shè)計),他們之間的關(guān)系如圖9.1所示。信息世界 概念模型 計算機(jī)世界 DBMS支持的某種數(shù)據(jù)模型轉(zhuǎn)換 現(xiàn)實世界認(rèn)識抽象圖9.1 概念設(shè)計和模型設(shè)計的關(guān)系9.1.1 數(shù)據(jù)庫的基本概念數(shù)據(jù)庫的基本概念n n 1、數(shù)據(jù)庫
2、與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫(DB)是長期儲存在計算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫僅僅是一個概念,是對這種數(shù)據(jù)集合的統(tǒng)稱。數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)(DBMS)統(tǒng)一管理,以保證數(shù)據(jù)的安全性、可靠性和提供多用戶共享。因此,數(shù)據(jù)庫管理系統(tǒng)是對這一類軟件的統(tǒng)稱,如Access、SQL Server是微軟公司開發(fā)的一個數(shù)據(jù)庫管理系統(tǒng),類似的Foxpro、Mysql、Oracle等都分別是一種數(shù)據(jù)庫管理系統(tǒng)。9.1.1 數(shù)據(jù)庫的基本概念數(shù)據(jù)庫的基本概念n n 2、數(shù)據(jù)模型、數(shù)據(jù)模型 從數(shù)據(jù)庫對數(shù)據(jù)管理的模式分類,數(shù)據(jù)庫有層次型、網(wǎng)狀型和關(guān)系型。較常見的是關(guān)系模型。n 3、數(shù)據(jù)處
3、理與數(shù)據(jù)管理、數(shù)據(jù)處理與數(shù)據(jù)管理 數(shù)據(jù)處理是指對各種數(shù)據(jù)進(jìn)行收集、存儲、加工和傳播的一系列活動的總稱。數(shù)據(jù)管理指的是對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲、檢索和維護(hù)等,它是數(shù)據(jù)處理的中心問題。9.1.2 數(shù)據(jù)庫設(shè)計的主要任務(wù)數(shù)據(jù)庫設(shè)計的主要任務(wù)n n 管理信息系統(tǒng)中對于大量數(shù)據(jù)的存儲與共享,一般都會用到數(shù)據(jù)庫的支持,即錄入的大量數(shù)據(jù)或信息需要以某種方式存儲到數(shù)據(jù)庫中,并在數(shù)據(jù)庫管理系統(tǒng)的支持下,對數(shù)據(jù)進(jìn)行各種加工處理,以實現(xiàn)查詢、統(tǒng)計等功能。因此,管理信息系統(tǒng)開發(fā)過程中,對于數(shù)據(jù)庫的設(shè)計是一種重要的任務(wù)。n 如何將實體、信息轉(zhuǎn)化為相應(yīng)的數(shù)據(jù),并以與數(shù)據(jù)庫相適合的模式存到數(shù)據(jù)庫中,以實現(xiàn)數(shù)據(jù)共享,這
4、是數(shù)據(jù)庫設(shè)計的中心任務(wù)。因此,數(shù)據(jù)庫設(shè)計的主要任務(wù)包括實體的代碼設(shè)計、實體概念模型到數(shù)據(jù)模型的轉(zhuǎn)換以及對數(shù)據(jù)存儲結(jié)構(gòu)的規(guī)范化處理。9.2 概念模型概念模型n 即數(shù)據(jù)庫概念設(shè)計,它是針對現(xiàn)實世界,通過對其中信息實體的收集、分類、聚集和概括,建立數(shù)據(jù)庫概念結(jié)構(gòu)的過程。概念結(jié)構(gòu)也叫概念數(shù)據(jù)模型,它應(yīng)該反映現(xiàn)實世界中的組織的業(yè)務(wù)模式、信息結(jié)構(gòu)和信息間的相互制約關(guān)系,以及對信息的加工、存儲和查詢要求等。概念數(shù)據(jù)模型是對數(shù)據(jù)的抽象描述,它應(yīng)該獨(dú)立于具體的數(shù)據(jù)處理細(xì)節(jié)和數(shù)據(jù)庫管理系統(tǒng)。9.2.1 實體、信息和數(shù)據(jù)n 實體、信息和數(shù)據(jù)分別描述了人們在認(rèn)識客觀事物、記錄客觀事物的過程中三個不同范疇的概念?,F(xiàn)實世
5、界中形形色色的事物都以其固有的特征和行為客觀地存在和運(yùn)動著,這些內(nèi)容反映到人的頭腦中就形成了信息,要把這些信息記錄下來,以便被加工和利用,就必須利用數(shù)據(jù)這一載體形式。在管理信息系統(tǒng)的開發(fā)過程中,被管理的對象就是客觀事物,對客觀事物的認(rèn)識和記錄就分別表現(xiàn)為信息和數(shù)據(jù)的形式。分清這三個相互映射的范疇的對應(yīng)概念非常重要。9.2.1 實體、信息和數(shù)據(jù)n 表9-1以表格的形式分別對照地說明了這三個范疇的相關(guān)概念,圖9.2以圖示的方式形象地表示了這三個范疇中相關(guān)概念的映射與演變過程。表9-1 現(xiàn)實世界、信息范疇和數(shù)據(jù)范疇概念的關(guān)系9.2.1 實體、信息和數(shù)據(jù)圖9.2 實體、概念模型、數(shù)據(jù)模型的關(guān)系在系統(tǒng)開
6、發(fā)過程中,首先要選擇確定信息系統(tǒng)被管理的對象,如物資、產(chǎn)品、原材料、定額、工序等,這些是客觀事物。對客觀事物進(jìn)行分析,抽取能夠表述其特征與行為的屬性,需要用到信息范疇的相關(guān)概念,我們常用實體關(guān)系模型來表示對這些客觀事物的認(rèn)識和描述。最后,要把這些信息存儲在計算機(jī)管理信息系統(tǒng)中,則必須將其轉(zhuǎn)變?yōu)閿?shù)據(jù)庫中的相關(guān)概念,如關(guān)系、記錄、字段等概念。9.2.2 實體-關(guān)系模型n 概念模型,即“實體-關(guān)系”模型。它具有三種基本成分:實體、關(guān)系和屬性。在系統(tǒng)分析與設(shè)計過程中,常用“E-R圖”來表示,如圖9.3所示。圖9.3 表示實體-關(guān)系模型的“E-R圖”9.2.2 實體-關(guān)系模型n n (1)客觀存在并可相
7、互區(qū)分的事物叫實體。如圖9.3中的“學(xué)生”、“課程”,在管理信息系統(tǒng)中,這些實體對應(yīng)的事物就是被管理的對象。實體不僅是客觀世界中存在的有形的物本,也可以是我們思維過程中的一個概念,如“定額”、“職稱級別”、“工資等級”、“學(xué)生類別”、“學(xué)科性質(zhì)”等。n (2)屬性是實體所具有的一些特性,一般使用一組屬性來描述一個實體的特征,即一個實體可以由若干個屬性來刻畫。如圖9.3所示,學(xué)生可由學(xué)號、姓名、系別等組成。課程可以用課程編號、課程名、主講老師等屬性來描述。n (3)域是屬性的取值范圍。例如,性別的域為“男”、“女”,月份的域為112的整數(shù)。9.2.2 實體-關(guān)系模型n n (4)關(guān)系是實體之間的
8、相互關(guān)聯(lián)。如學(xué)生與老師間的授課關(guān)系、學(xué)生與學(xué)生間的班長關(guān)系。關(guān)系有一對一、一對多、多對多三種不同類型。關(guān)系也可以有屬性,如學(xué)生與課程之間有選課聯(lián)系,每個選課聯(lián)系都有一個成績作為其屬性。n (5)關(guān)系的元或度,參與關(guān)聯(lián)的實體集的個數(shù)稱為關(guān)系的元。圖9.3中,學(xué)生選修課程是二元聯(lián)系。n (6)能唯一標(biāo)識實體的屬性稱為主碼。一個實體集中任意兩個實體在主碼上的取值不能相同。如學(xué)號是學(xué)生的實體主碼。注意:主碼對應(yīng)數(shù)據(jù)庫中的關(guān)鍵字域,但在實體-關(guān)系圖中稱碼為“主碼”,而不是叫關(guān)鍵字,關(guān)鍵字是數(shù)據(jù)庫中的概念。9.2.2 實體-關(guān)系模型n n 1、聯(lián)系、聯(lián)系n (1)一對一聯(lián)系(1:1)。如果對于實體集A中每
9、一個實體,實體集B中至多只有一個實體與之聯(lián)系;反之對于實體集B中每一個實體,實體集A中也至多只有一個實體與之聯(lián)系。我們稱實體集A與實體集B之間具有一對一聯(lián)系。記為1:1,如下圖所示。班級正班長任職119.2.2 實體-關(guān)系模型n (2)一對多聯(lián)系(1:n)。如果對于實體集A中每一個實體,實體集B中有n個實體(n=0)與之聯(lián)系;反之對于實體集B中每一個實體,實體集A中至多只有一個實體與之聯(lián)系。我們稱實體集A與實體集B之間具有一對多聯(lián)系。記為1:n,如下圖所示。一對一聯(lián)系是一對多聯(lián)系的特例。學(xué)校教師任職1n9.2.2 實體-關(guān)系模型n n (3)多對多聯(lián)系(m:n)。如果對于實體集A中每一個實體,
10、實體集B中有n個實體(n=0)與之聯(lián)系;反之對于實體集B中每一個實體,實體集A中也有m個實體(m=0)與之聯(lián)系。我們稱實體集A與實體集B之間具有多對多聯(lián)系。記為m:n,如下圖所示。一對多聯(lián)系是多對多聯(lián)系的特例。教師課程講授mn9.2.2 實體-關(guān)系模型n 2.E-R圖的畫法圖的畫法n 我們在考察了客觀事物及其聯(lián)系之后,即著手建立E-R模型。在模型設(shè)計中,首先根據(jù)分析階段收集到的資料,利用分類、聚集、概括等方法抽象出實體,并一一命名,再根據(jù)實體的屬性描述其間的各種關(guān)系。E-R模型中,用矩形表示實體,實體間的關(guān)系用菱形表示,用無向邊把實體和關(guān)聯(lián)連接起來,在邊上標(biāo)明聯(lián)系的類型。實體的屬性可以用橢圓表
11、示,并用無向邊把實體和屬性聯(lián)系起來。9.2.2 實體-關(guān)系模型n 用E-R圖來表示某個學(xué)校日常教學(xué)管理的概念模型。對日常教學(xué)管理進(jìn)行認(rèn)識分析,日常教學(xué)管理涉及的實體有: n 學(xué)生: 屬性有學(xué)號、姓名、性別和出生日期 n 教師: 屬性有教師編號、姓名、學(xué)歷和專長 n 課程: 屬性有課程號、課程名稱、學(xué)分n 院系: 屬性有院系編號、院系名稱、聯(lián)系電話9.2.2 實體-關(guān)系模型n 這些實體之間的聯(lián)系如下: n (1)一個院系可以容納若干個教師和學(xué)生,而一個教師或?qū)W生只能隸屬于一個院系,因此院系和教師之間以及院系與學(xué)生之間是一對多的聯(lián)系。 n (2)一個院系可以開設(shè)多門課程,而一門課程只能由一個院系提
12、供,因此院系和課程之間的聯(lián)系是一對多的。 n (3)一個教師可以教授多門課程,而一門課程可以由多位教師主講。由此可以看出,教師和課程之間是多對多的聯(lián)系。 n (4)學(xué)生可以選修多門課程,一門課程可以被若干個學(xué)生選修。學(xué)生與課程之間的聯(lián)系是多對多的。 9.2.2 實體-關(guān)系模型9.2.2 實體-關(guān)系模型n 3.設(shè)計設(shè)計E-R圖應(yīng)遵循的原則圖應(yīng)遵循的原則n E-R圖是對現(xiàn)實世界的一種抽象,它抽取了客觀事務(wù)中人們所關(guān)心的信息,忽略了非本質(zhì)的細(xì)節(jié),對這些信息進(jìn)行了精確地描述。設(shè)計E-R圖應(yīng)以下原則遵循的原則:n (1)首先針對特定用戶的應(yīng)用,確定實體、屬性和實體間的聯(lián)系,作出反映該用戶視圖的局部E-R
13、圖。 n (2)綜合各個用戶的局部E-R圖,產(chǎn)生反映數(shù)據(jù)庫整體概念的總體E-R圖。在綜合時,刪掉局部E-R圖中的同名實體,以便消除冗余,保持?jǐn)?shù)據(jù)的一致性。 n (3)在綜合局部E-R圖時,還要注意消除那些冗余的聯(lián)系,冗余信息會影響數(shù)據(jù)的完整性,使維護(hù)工作復(fù)雜化,但有時也要折中考慮,有時必要的冗余會提高數(shù)據(jù)處理效率。 n (4)綜合時也可以在總體E-R圖中增加新的聯(lián)系。 9.3 數(shù)據(jù)模型數(shù)據(jù)模型n 數(shù)據(jù)模型是相對概念模型而言的,是對客觀事物及其聯(lián)系的數(shù)據(jù)化描述。在數(shù)據(jù)庫系統(tǒng)中,對現(xiàn)實世界中數(shù)據(jù)的抽象、描述以及處理等都是通過數(shù)據(jù)模型來實現(xiàn)的,關(guān)于概念模型和數(shù)據(jù)模型的關(guān)系,可以說數(shù)據(jù)模型在數(shù)據(jù)庫系統(tǒng)
14、設(shè)計中是用來提供信息表示和操作手段的形式架構(gòu),是數(shù)據(jù)庫系統(tǒng)實現(xiàn)的基礎(chǔ)。9.3.1 基本概念基本概念n 目前,主要的數(shù)據(jù)模型是關(guān)系模型。n 用關(guān)系(二維表格數(shù)據(jù))表示實體和實體之間聯(lián)系的模型稱為關(guān)系數(shù)據(jù)模型。從用戶觀點(diǎn)看,關(guān)系模型由一組關(guān)系組成。每個關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一張規(guī)范化的二維表?,F(xiàn)在以學(xué)生登記表為例,介紹關(guān)系模型中的一些術(shù)語。n (1)關(guān)系(Relation):一個關(guān)系對應(yīng)通常說的一張表。如學(xué)生登記表;n (2)元組(Tuple):表中的一行即為一個元組;n (3)屬性(Attribute):表中一列即為一個屬性,給每個屬性起一個名稱即屬性名。如這張表中對應(yīng)6列,對應(yīng)6個屬性(學(xué)號、姓名、
15、年齡、性別、系名和年級);9.3.1 基本概念基本概念n (4)碼(Key):也稱為碼鍵。表中的某個屬性組,它可以唯一確定一個元組,如學(xué)生登記表中學(xué)號可以唯一確定一個學(xué)生,也就成為本關(guān)系的碼; n (5)域(Domain):屬性的取值范圍,如人的年齡一般在1-100歲之間,性別的域是(男,女),系別的域是一個學(xué)校所有系別的集合;n (6)分量:元組中的一個屬性值;9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n 在E-R模型中有實體和關(guān)系兩類元素,這些信息在數(shù)據(jù)庫設(shè)計中將轉(zhuǎn)變?yōu)閿?shù)據(jù)庫關(guān)系模型中的二維表來表示。關(guān)系又有多種類型,如“1對1”關(guān)系、“1對多”關(guān)系和“多對多”關(guān)系,如何將“實體”和不同的種
16、類的“關(guān)系”轉(zhuǎn)化為相應(yīng)的二維表形式,需要掌握一些具體的轉(zhuǎn)換策略。9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (1)用二維表表示一個實體的信息。如圖9.4所示,將實體的相關(guān)信息表示為二維表時,實體的具體某個屬性對應(yīng)二維表中的一個列,每一列關(guān)系型數(shù)據(jù)庫中對應(yīng)一個字段。在每個實體的信息二維表中對應(yīng)一行,第一行在關(guān)系型數(shù)據(jù)庫中對應(yīng)一條記錄。實體的主碼就是二維表的關(guān)鍵字。實體信息用概念模型表示就是圖9.4中的“E-R”圖,將其轉(zhuǎn)為關(guān)系模型中的表示方式,就是圖9.4中“學(xué)生(*學(xué)號,姓名,籍貫)”這種形式,就是關(guān)系模型,對應(yīng)一張二維表。在設(shè)計數(shù)據(jù)結(jié)構(gòu)時,常需要將這種關(guān)系模型表示方式表示為圖9.4右側(cè)的數(shù)據(jù)
17、結(jié)構(gòu)表示形式。9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略圖9.4 用二維表表示實體信息9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (2)用二維表表示一個m:n關(guān)系。如圖9.5所示,與關(guān)系“選修”相連的各實體的代碼,如“學(xué)號”、“課程號”以及關(guān)系本身的屬性“成績”均成為此表的列。此表的關(guān)鍵字為相連的各實體的關(guān)鍵字的組合,即“學(xué)號+課程號”。圖9.5 用二維表表示m:n的關(guān)系9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (3)用二維表表示一個1:n關(guān)系。如圖9.6所示,使用兩個二維表表示這種1:n的關(guān)系,將一端實體的關(guān)鍵字并入n端實體,即在n端實體的表中增加1端實體的代碼,如“班級號”。圖9.6 用二
18、維表表示1:n的關(guān)系班9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (4)用二維表表示一個“1:1關(guān)系”。如圖9.7所示,使用兩個二維表來表示這種關(guān)系,將任一端實體的標(biāo)識碼并入另一端實體,即在該端實體的表中增加另一端實體的代碼,如在“班主任”實體信息中,增加其所屬的“班級號”。圖9.7 用二維表表示1:1的關(guān)系9.3.2 概念模型到數(shù)據(jù)模型的轉(zhuǎn)換策略n (5)對三個以上實體間的多元關(guān)系的轉(zhuǎn)換及自關(guān)系。對三個以上實體間的多元關(guān)系根據(jù)相同的轉(zhuǎn)換規(guī)則,按關(guān)系的不同類型進(jìn)行相應(yīng)的轉(zhuǎn)換,如圖9.8所示。同一實體集的實體間的自關(guān)系的轉(zhuǎn)換策略,如圖9.9所示。圖9.8 用二維表表示三個以上實體的關(guān)聯(lián)信息圖9.
19、9 用二維表表示實體自關(guān)系號9.4 數(shù)據(jù)庫規(guī)范化數(shù)據(jù)庫規(guī)范化n n 在關(guān)系模式設(shè)計時,經(jīng)常存在的數(shù)據(jù)存儲異?,F(xiàn)象:數(shù)據(jù)冗余、修改異常、插入異常、刪除異常等。為了解決這些問題,需要對關(guān)系數(shù)據(jù)庫規(guī)范化。關(guān)系數(shù)據(jù)庫的規(guī)范化就是關(guān)系數(shù)據(jù)庫中的每一個關(guān)系(二維表)都必須滿足一定的條件。9.4.1 規(guī)范化的概念規(guī)范化的概念 規(guī)范化理論以關(guān)系模型為背景,以關(guān)系理論為基礎(chǔ)。一個規(guī)范化的數(shù)據(jù)結(jié)構(gòu)可以表示成二維表,符合關(guān)系型數(shù)據(jù)庫的存儲關(guān)系要求。換句話說,一個數(shù)據(jù)關(guān)系只要符合二維表的特點(diǎn),那么它就是規(guī)范化的。 表中任意一列上的數(shù)據(jù)項應(yīng)屬于同一屬性。 表中所有行都不是相同的,不允許有重復(fù)組項出現(xiàn)(一行是一個不同的學(xué)
20、生記錄)。 表中行的順序無關(guān)緊要(如每行都是一個學(xué)生記錄,先放哪個學(xué)生記錄都沒有關(guān)系)。 表中列的順序無關(guān)緊要,但不能重復(fù)(如學(xué)號與學(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ī)范化的。比較明顯的地方是,儲備定額域存在層次表頭,表格內(nèi)容中存在一行對多行的情形,這樣的數(shù)據(jù)關(guān)系不符合二維表的特點(diǎn),無法存入關(guān)系型數(shù)據(jù)庫。9.4.2 非規(guī)范化形式非規(guī)范化形式名稱規(guī)格儲 備 定 額庫存量供應(yīng)商地址儲備量儲備量儲備量礦燈冷光源3005
21、0150200西安西安南寧南寧北京北京滅火器干粉4007010080廣州廣州上海上海表9-2 物資庫存情況9.4.3 第一范式n 所謂第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個新的實體,新的實體由重復(fù)的屬性構(gòu)成,新實體與原實體之間為一對多關(guān)系。在第一范式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一范式就是無重復(fù)的列。說明:在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。 9.4.3
22、 第一范式n 如果將表9-2中的層次表頭的現(xiàn)象去掉,表中各行消去一行對多行的情形,該表就符合二維表的特點(diǎn)了,該數(shù)據(jù)結(jié)構(gòu)就轉(zhuǎn)變?yōu)橐?guī)范化形式了。任何滿足規(guī)范化要求的數(shù)據(jù)結(jié)構(gòu)都稱為第一規(guī)范形式,記為1NF。由此可見,將一個非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為規(guī)范化的結(jié)構(gòu)方法就是設(shè)法將其變?yōu)槎S表,本例中,將表9-2拆分成表6.3和表6.4之后,就由一個非規(guī)范化的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為了兩個1NF的數(shù)據(jù)結(jié)構(gòu)了。9.4.3 第一范式符合1NF的數(shù)據(jù)結(jié)構(gòu)仍然存在嚴(yán)重的存儲缺陷,如下所述。(1)刪除異常。當(dāng)目前供應(yīng)商不再供應(yīng)該物資,刪除廠家信息后,物資信息也會隨之被刪除,但本單位還需要使用該物資。(2)插入異常。數(shù)據(jù)庫需要添加
23、一種新的物資,但還沒有供應(yīng)廠家時,無法添加。(3)修改麻煩。當(dāng)某個供應(yīng)商廠地址變化以后,需要多處修改其在數(shù)據(jù)庫中的信息,且很難保證修改徹底。(4)存在嚴(yán)重的數(shù)據(jù)冗余。供應(yīng)商的信息隨每條物資記錄都要重復(fù)存儲多遍。9.4.4 第二范式n 第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標(biāo)識。 例如員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區(qū)分。這個惟一屬性
24、列被稱為主關(guān)鍵字或主鍵、主碼。 第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標(biāo)識。簡而言之,第二范式就是屬性完全依賴于主鍵。 9.4.4 第二范式n n 1NF的數(shù)據(jù)結(jié)構(gòu)存在缺陷的主要原因,是數(shù)據(jù)結(jié)構(gòu)中存在非關(guān)鍵字字段部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況)整個關(guān)鍵字的情形,如圖9.10所示。n 該結(jié)構(gòu)的關(guān)鍵字“物資名稱+供應(yīng)商”是一個復(fù)
25、合關(guān)鍵字,這樣就要求所有非關(guān)鍵字段都要同時依賴于這兩個字段才是“依賴于整個關(guān)鍵字”。但事實上,我們看到“型號規(guī)格”、“最高儲備量”、“最低儲備量”、“經(jīng)常儲備量”和“當(dāng)前庫存量”都只依賴于“物資名稱”,這就是所謂的“部分地依賴關(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)化為多個第二范式的結(jié)構(gòu)。換言之,如果所有非關(guān)鍵字?jǐn)?shù)據(jù)項完全函數(shù)地依賴于它的整個關(guān)鍵字,則稱該數(shù)據(jù)結(jié)構(gòu)是第二范式的,記為2NF。具體方法是通過分解結(jié)構(gòu),去掉部分依賴關(guān)系,確保所有
26、非關(guān)鍵字元素依賴于整個關(guān)鍵字??蓪D9.10中第一范式的結(jié)構(gòu)分解為三個符合第二范式要求的結(jié)構(gòu),如圖9.11所示,并分別指定關(guān)鍵字. * 供應(yīng)商供應(yīng)商供應(yīng)商地址供應(yīng)商地址* 物資名稱物資名稱* 供應(yīng)商供應(yīng)商訂貨量訂貨量訂貨價訂貨價訂貨金額訂貨金額* 物資名稱物資名稱型號規(guī)格型號規(guī)格最高儲備量最高儲備量最低儲備量最低儲備量經(jīng)常儲備量經(jīng)常儲備量當(dāng)前庫存量當(dāng)前庫存量圖9.11 符合第二范式的數(shù)據(jù)結(jié)構(gòu)449.4.5 第三范式 是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)健字所標(biāo)識,而且它們之間還必須相互獨(dú)立,不存在其它函數(shù)關(guān)系。 分析圖9.11中的數(shù)據(jù)結(jié)構(gòu),不難發(fā)現(xiàn)“訂貨金額”是一個冗余數(shù)據(jù)項,因為訂貨
27、金額可以從訂貨價和訂貨量計算得出,所以沒必要存入數(shù)據(jù)庫中。因此,符合第二范式的數(shù)據(jù)結(jié)構(gòu)仍然存在缺陷,那就是可能存在數(shù)據(jù)冗余。產(chǎn)生冗余的原因是這個數(shù)據(jù)結(jié)構(gòu)中存在著“傳遞依賴”(所謂傳遞函數(shù)依賴,指的是如果存在A B C的決定關(guān)系,則C傳遞函數(shù)依賴于A )情形,即“訂貨金額”通過“訂貨價”和“訂貨量”傳遞地依賴主關(guān)鍵字“物資名稱+供應(yīng)商”,“傳遞依賴”是第二范式產(chǎn)生缺陷的本質(zhì)。優(yōu)化的辦法是刪除冗余數(shù)據(jù)項,去掉“傳遞依賴”情形,得到如圖9.12所示的數(shù)據(jù)結(jié)構(gòu)。 * 物資名稱物資名稱 * 供應(yīng)商供應(yīng)商 訂貨量訂貨量 訂貨價訂貨價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 實例實例n 在物資供應(yīng)系統(tǒng)中,存在如圖9.14所示的一個“材料供應(yīng)商庫存”關(guān)系,在進(jìn)行數(shù)據(jù)庫設(shè)計的過程中,首先要對該數(shù)據(jù)結(jié)構(gòu)進(jìn)行規(guī)范化。n 從圖9.14可以看出,該結(jié)構(gòu)符合二維表的特點(diǎn),因此,它自然是第一范式的結(jié)構(gòu)。對第一范式的數(shù)據(jù)結(jié)構(gòu),第一步是要指定關(guān)鍵字域,經(jīng)過分析,關(guān)鍵字域包括兩個屬性,即“材料編號+供應(yīng)商名稱”。但不難看出,該數(shù)據(jù)結(jié)構(gòu)中存在著“部分依賴”關(guān)系,如非關(guān)鍵字屬性“規(guī)格”、“材料名稱”只依賴于“材料編號”,而非關(guān)鍵字屬性“供應(yīng)商地址”只依賴于“供應(yīng)商名稱”,因此,該結(jié)構(gòu)不是一個第二范式的數(shù)據(jù)結(jié)構(gòu)。9.4.6 實例實例圖9-149.4.6 實例實例n 針對關(guān)鍵字域分解結(jié)構(gòu),去掉部分依賴關(guān)系的情形,將原結(jié)構(gòu)分解成圖9.15所示的三個數(shù)據(jù)結(jié)構(gòu)。這三個結(jié)構(gòu)中都不存在部分依賴關(guān)系了,因而它們都是2NF的結(jié)構(gòu)。圖9.15 符合第二范式的數(shù)據(jù)結(jié)構(gòu)9.4.6 實例實例從圖9.15可以看出,“材料庫存”這個結(jié)構(gòu)中存在傳遞依賴關(guān)系,即“庫存占用金額”通過“價格”和“庫存量”傳遞地依賴于整個關(guān)鍵字“材料編號+供應(yīng)商名稱”,因此它不是第三范式的結(jié)構(gòu)。不難看出“庫存占用金額”明顯屬于冗余數(shù)據(jù)項。因此,去掉多余的“庫存占用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銷售業(yè)績獎金獎品采購合同
- 2025年度小型船舶買賣及船舶交易評估合同3篇
- 2024年項目負(fù)責(zé)人授權(quán)書3篇
- 2024年獨(dú)家品牌代理銷售合同
- 2025年度綠色住宅水暖系統(tǒng)安裝及維護(hù)服務(wù)合同模板3篇
- 2024校醫(yī)校園公共衛(wèi)生事件應(yīng)急預(yù)案合同3篇
- 二零二五年度KTV食品安全責(zé)任轉(zhuǎn)讓合同3篇
- 2024期貨市場委托交易服務(wù)合同范本3篇
- 2025版私募股權(quán)基金投資退出與股權(quán)回購協(xié)議3篇
- 2025年度太陽能光伏發(fā)電站機(jī)電系統(tǒng)優(yōu)化升級合同3篇
- 工行個人小額貸款合同樣本
- 江西省萍鄉(xiāng)市2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- Unit 5 Here and now Section B project 說課稿 2024-2025學(xué)年人教版(2024)七年級英語下冊標(biāo)簽標(biāo)題
- 2024-2025學(xué)年上學(xué)期深圳初中地理七年級期末模擬卷1
- 2025屆西藏自治區(qū)拉薩市北京實驗中學(xué)高考數(shù)學(xué)五模試卷含解析
- 2025年中國科學(xué)技術(shù)大學(xué)自主招生個人陳述自薦信范文
- 學(xué)校2025元旦假期安全教育宣傳課件
- 2024年地理知識競賽試題200題及答案
- 肝衰竭診治指南(2024年版)解讀
- 化學(xué)反應(yīng)工程智慧樹知到期末考試答案章節(jié)答案2024年浙江工業(yè)大學(xué)
- 人生悟理-透過物理看人生智慧樹知到期末考試答案2024年
評論
0/150
提交評論