數(shù)據(jù)庫第5章數(shù)據(jù)庫物理模型課件_第1頁
數(shù)據(jù)庫第5章數(shù)據(jù)庫物理模型課件_第2頁
數(shù)據(jù)庫第5章數(shù)據(jù)庫物理模型課件_第3頁
數(shù)據(jù)庫第5章數(shù)據(jù)庫物理模型課件_第4頁
數(shù)據(jù)庫第5章數(shù)據(jù)庫物理模型課件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章數(shù)據(jù)庫物理模型設(shè)計,1,PPT學習交流,學習概念數(shù)據(jù)模型或邏輯數(shù)據(jù)模型轉(zhuǎn)換為物理數(shù)據(jù)模型的方法。了解如何將實體的1:1、1:N和N:M關(guān)系表示為表關(guān)系了解數(shù)據(jù)庫設(shè)計范式和規(guī)范化通過實踐案例學習從概念數(shù)據(jù)模型轉(zhuǎn)換物理數(shù)據(jù)模型的一般步驟,【學習目標】,2,PPT學習交流,一、數(shù)據(jù)庫模型轉(zhuǎn)換,5.1數(shù)據(jù)庫設(shè)計模型轉(zhuǎn)換,數(shù)據(jù)庫設(shè)計分為概念數(shù)據(jù)模型設(shè)計、邏輯數(shù)據(jù)模型設(shè)計、物理數(shù)據(jù)模型設(shè)計三個層次。在常規(guī)的數(shù)據(jù)庫設(shè)計中,將依次對這三種模型進行轉(zhuǎn)換設(shè)計。各個模型之間的元素對應關(guān)系如下表,3,PPT學習交流,二、數(shù)據(jù)模型轉(zhuǎn)換方案,數(shù)據(jù)模型轉(zhuǎn)換設(shè)計有兩種方案一種是由概念數(shù)據(jù)模型生成對應的邏輯數(shù)據(jù)模型,再從邏輯數(shù)據(jù)模型轉(zhuǎn)換生成物理數(shù)據(jù)模型;另一種是從概念數(shù)據(jù)模型直接轉(zhuǎn)換為對應的物理數(shù)據(jù)模型,4,PPT學習交流,數(shù)據(jù)模型之間轉(zhuǎn)化,概念數(shù)據(jù)模型(CDM),物理數(shù)據(jù)模型(PDM),現(xiàn)實世界,轉(zhuǎn)化,邏輯數(shù)據(jù)模型(LDM),轉(zhuǎn)化,轉(zhuǎn)化,抽取,5,PPT學習交流,當使用關(guān)系數(shù)據(jù)庫時,物理數(shù)據(jù)模型即為關(guān)系模型,其基本轉(zhuǎn)換原理如下:1)將每一個實體轉(zhuǎn)換成一個表,實體的屬性轉(zhuǎn)換為表的列,實體的標識符轉(zhuǎn)換為表的主鍵2)將實體關(guān)系轉(zhuǎn)化為表間的參照完整性約束,即通過設(shè)置外鍵來參照主鍵。根據(jù)關(guān)系的不同類型,通過外鍵參照主鍵的方式有所不同,數(shù)據(jù)模型轉(zhuǎn)換,6,PPT學習交流,表,表是數(shù)據(jù)庫中用來保存信息的一種數(shù)據(jù)結(jié)構(gòu),由數(shù)據(jù)模型中的實體轉(zhuǎn)化而來。一個表中記錄著關(guān)于實體的信息,它是數(shù)據(jù)庫組織的基本對象。,2.列,列是組成表的基本單位,由數(shù)據(jù)模型中的屬性轉(zhuǎn)化而來。一個表由多個列組成,每個列都有一個數(shù)據(jù)類型。,三、將實體轉(zhuǎn)化為表,7,PPT學習交流,主鍵是用來唯一標識表中每個記錄的一個或多個列的集合,由數(shù)據(jù)模型中的主標識符轉(zhuǎn)化而來。在物理數(shù)據(jù)模型中,每張表必須有一個主鍵。主鍵通常用pk表示.候選鍵也是用來唯一標識表中記錄的一個或多個列的集合,通常由數(shù)據(jù)模型中的次標識符轉(zhuǎn)化而來。候選鍵通常用ak表示,3.主鍵與候選鍵,8,PPT學習交流,外鍵是與其它表連接的公共列,這個列通常是其它表的主鍵。外鍵一般是由數(shù)據(jù)模型中的實體關(guān)系產(chǎn)生。外鍵通常用fk表示在系統(tǒng)物理數(shù)據(jù)模型設(shè)計中,對上述基本數(shù)據(jù)庫對象進行設(shè)計外,還包括數(shù)據(jù)庫的存儲過程、觸發(fā)器、視圖、索引、約束規(guī)則等設(shè)計。,4.外鍵,9,PPT學習交流,將實體轉(zhuǎn)換為表,首先,為每個實體定義一個表,表名與實體名相同。將實體的標識符作為表的主鍵。然后,實體的屬性轉(zhuǎn)換為表中的列,實體的標識符轉(zhuǎn)換為表的主鍵,10,PPT學習交流,確定代理鍵,在關(guān)系數(shù)據(jù)庫設(shè)計中,當數(shù)據(jù)表中的候選鍵都不適合當主鍵時(例如,候選鍵的內(nèi)容太大或者復合候選鍵包含的屬性太多),就會定義代理鍵作為主鍵。代理鍵由DBMS自動生成數(shù)字鍵值,且永不改變。,11,PPT學習交流,定義列的特性,實體屬性轉(zhuǎn)換為表的列后,必須為每個列指定其特性,包括數(shù)據(jù)類型、空值狀態(tài)、默認值及數(shù)值的約束。數(shù)據(jù)類型:每個DBMS都有自己的數(shù)據(jù)類型定義,對于每一列,應指明在該列中存儲何種類型的數(shù)據(jù)??罩禒顟B(tài):在表中插入新行時,某些列必須有值,對于這樣的列,將其標注為NOTNULL;某些列允許不輸入值,將其標注為NULL。默認值:默認值是指當插入新行時,如果用戶沒有顯式輸入某個列的值,則由DBMS自動設(shè)置為預先設(shè)定的值。數(shù)值的約束:一些列中的數(shù)據(jù)值可能有限制,這些限制稱為數(shù)據(jù)約束。,12,PPT學習交流,數(shù)據(jù)模型轉(zhuǎn)換數(shù)據(jù)庫設(shè)計步驟,為每個實體創(chuàng)建一個表,規(guī)范化所有表,創(chuàng)建表之間的主外鍵約束,概念模型,關(guān)系模型(物理模型),第1步,第2步,第3步,13,PPT學習交流,四、弱實體的轉(zhuǎn)換表示,前面描述的實體轉(zhuǎn)換為表的過程適用于所有的實體類型,但弱實體有時候需要特別的處理。弱實體在邏輯上依賴于另一個實體。,非ID依賴弱實體,14,PPT學習交流,ID依賴弱實體的標識符應該含有它所依賴實體的標識符,因此需要將被依賴實體的標識符放入ID依賴弱實體轉(zhuǎn)換生成的表中,和ID依賴弱實體的標識符共同轉(zhuǎn)換成復合主鍵。,ID依賴弱實體,15,PPT學習交流,五、實體關(guān)系的轉(zhuǎn)換表示,1:1實體關(guān)系的轉(zhuǎn)換,我們可以有兩種轉(zhuǎn)換方案,一種是將學生表的主鍵“學號”放入助研金賬號表中做外鍵;另一種是將助研金賬號表的主鍵“賬號”放入學生表中做外鍵。這兩種方案均是可行的,由設(shè)計者根據(jù)應用情況自主做出選擇。,16,PPT學習交流,17,PPT學習交流,1:N實體關(guān)系的轉(zhuǎn)換,1:N實體關(guān)系的轉(zhuǎn)換方法很簡單,兩個實體分別轉(zhuǎn)換為表,然后將父實體表的主鍵放入子實體表中做外鍵。將圖5-9所示的實體關(guān)系轉(zhuǎn)換為表參照約束,18,PPT學習交流,19,PPT學習交流,M:N實體關(guān)系的轉(zhuǎn)換,N:M實體關(guān)系不能像1:1和1:N實體關(guān)系那樣直接轉(zhuǎn)換。將任一個實體表的主鍵放置到另一個實體表中做外鍵都是無法實現(xiàn)的。,20,PPT學習交流,必須要重新產(chǎn)生一張新表,用于表示兩個實體之間的關(guān)系。新表的名稱通常有兩種命名方法,一種是以N:M關(guān)系的名稱命名,一種是用下劃線連接N:M關(guān)系兩側(cè)的實體名稱作為新表的名稱。,21,PPT學習交流,實體繼承關(guān)系的轉(zhuǎn)換,當實體繼承關(guān)系轉(zhuǎn)換到物理數(shù)據(jù)模型時,首先父實體和子實體都各自轉(zhuǎn)換為表,其屬性均轉(zhuǎn)換為表的列。,在處理繼承關(guān)系轉(zhuǎn)換時,將父表中的主鍵放置到子表中,既做主鍵又做外鍵。,22,PPT學習交流,23,PPT學習交流,實體遞歸關(guān)系的轉(zhuǎn)換,對于1:N的實體遞歸關(guān)系轉(zhuǎn)換,首先將遞歸實體轉(zhuǎn)換為表,其屬性轉(zhuǎn)換為列,標識符轉(zhuǎn)換為主鍵,這些處理方式和前面描述的兩個實體間的轉(zhuǎn)換時一致的。實體遞歸關(guān)系處理的特殊性在于關(guān)系連接的是同一個實體,我們可以理解為要在同一個表對象間去實現(xiàn)這種關(guān)系。因此,在邏輯上將顧客表看做兩張表,按照前面闡述的1:N實體關(guān)系處理方法,將1側(cè)表的主鍵放入N側(cè)表中做外鍵。,24,PPT學習交流,25,PPT學習交流,對于M:N的實體遞歸關(guān)系,是指在同一個實體間所發(fā)生的多對多關(guān)系。例如,“醫(yī)生”實體間的M:N實體遞歸關(guān)系,26,PPT學習交流,每個醫(yī)生都可能會給其他醫(yī)生看病,自己也可能接受其他醫(yī)生的治療,這是一個多對多的實體遞歸關(guān)系。按照前面對N:M實體關(guān)系的轉(zhuǎn)換處理,將關(guān)系兩側(cè)的實體分別轉(zhuǎn)換為表,還要派生出一個新的關(guān)聯(lián)表,其表名是關(guān)系的名稱。,27,PPT學習交流,5.2數(shù)據(jù)庫表規(guī)范化設(shè)計,數(shù)據(jù)庫表規(guī)范化設(shè)計是指在數(shù)據(jù)庫中減少數(shù)據(jù)冗余和定義一個規(guī)范的表間結(jié)構(gòu),實現(xiàn)數(shù)據(jù)完整性與一致性。所謂數(shù)據(jù)冗余是指一組數(shù)據(jù)重復出現(xiàn)在數(shù)據(jù)庫的多個表中。在數(shù)據(jù)庫設(shè)計中,盡量避免表間的重復數(shù)據(jù)列。規(guī)范化數(shù)據(jù)庫設(shè)計為數(shù)據(jù)庫系統(tǒng)帶來如下益處:冗余數(shù)據(jù)被消除,同一數(shù)據(jù)在數(shù)據(jù)庫中僅保存一份,有效降低維護數(shù)據(jù)一致性的工作量。設(shè)計合理的表間依賴關(guān)系和約束關(guān)系,便于實現(xiàn)數(shù)據(jù)完整性和一致性。設(shè)計合理的數(shù)據(jù)庫結(jié)構(gòu),便于系統(tǒng)對數(shù)據(jù)高效訪問處理。,28,PPT學習交流,一、函數(shù)依賴理論,函數(shù)依賴(FunctionalDependency)是數(shù)據(jù)依賴的一種,它反映屬性或?qū)傩越M之間相互依存、互相制約的關(guān)系,即反映現(xiàn)實世界的數(shù)據(jù)約束關(guān)系,在函數(shù)依賴理論中,定義下列符號:R表示一個關(guān)系的模式,U=A1,A2,An是R的所有屬性的集合,F(xiàn)是R中函數(shù)依賴的集合,r是R所取的值,tX表示元組t在屬性X上的取值。,29,PPT學習交流,函數(shù)依賴的定義,定義:設(shè)有一關(guān)系模式R(U),X和Y為其屬性U的子集,即,。設(shè)t,s是關(guān)系R中的任意兩個元組,如果tX=sX,則tY=sY。那么稱Y函數(shù)依賴于X,或X函數(shù)決定Y。也可稱在關(guān)系模式R(U)上成立。,一個函數(shù)依賴要能成立,不但要求關(guān)系的當前值都能滿足函數(shù)依賴條件,而且還要求關(guān)系的任一可能值都能滿足函數(shù)依賴條件。對于當前關(guān)系r的任意兩個元組,如果X值相同,則要求Y值也相同。即有一個X值就有一個Y值與之對應?;蛘哒f,Y值由X值決定,因而這種依賴稱為函數(shù)依賴。,30,PPT學習交流,31,PPT學習交流,部分函數(shù)依賴,32,PPT學習交流,屬性傳遞依賴,33,PPT學習交流,多值依賴,34,PPT學習交流,二、規(guī)范化范式,范式(NormalForma,NF)是指關(guān)系表的規(guī)范程度狀態(tài)。范式的種類與數(shù)據(jù)依賴有著直接的聯(lián)系。在關(guān)系模式中存在函數(shù)依賴時就有可能存在數(shù)據(jù)冗余,引出數(shù)據(jù)操作異?,F(xiàn)象。數(shù)據(jù)冗余不僅浪費存儲空間,而且會使數(shù)據(jù)庫難以保持數(shù)據(jù)的一致性。范式可以用于確保數(shù)據(jù)庫模式中沒有各種類型的異常和不一致性。,35,PPT學習交流,規(guī)范化是把一組有異常的關(guān)系分解成更小的、結(jié)構(gòu)良好的關(guān)系的過程,使得這些關(guān)系有最小的冗余或沒有冗余。規(guī)范化是決定關(guān)系中屬性如何分組的一個形式化過程。,理論上講,關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進一步滿足更多要求的稱為第二范式(2NF),其余范式以次類推。高級范式總是包含了低級范式的全部要求。,36,PPT學習交流,第1規(guī)范式(1NF):如果關(guān)系中的屬性不可再細分,該關(guān)系滿足第1范式。,第2規(guī)范式(2NF):如果關(guān)系滿足第1范式,并消除了關(guān)系中的屬性部分依賴,該關(guān)系滿足第2范式。,例有一個關(guān)系(A,B,N,O,P),其復合主鍵為(A,B),那么N,O,P這三個非鍵屬性都不存在只依賴A或只依賴B情況,則該關(guān)系滿足第2范式,反之,不滿足第2范式。,37,PPT學習交流,第3規(guī)范式(3NF):如果關(guān)系滿足第2范式,并切斷了關(guān)系中的屬性傳遞依賴,該關(guān)系滿足第3范式。,例若有一個關(guān)系(A,N,O,P),主鍵為(A),那么非鍵屬性N,O或P都不能由單個的N,O或P或它們的組合所確定。該關(guān)系滿足第3范式。,BCNF范式:在關(guān)系中,所有函數(shù)依賴的決定因子都是候選鍵,該關(guān)系滿足BCNF范式。,例:關(guān)系STUDENT(StudentNum,Name,Email)中,決定因子StudentNum也是候選鍵,該關(guān)系滿足BCNF范式。,38,PPT學習交流,第4規(guī)范式(4NF):如果關(guān)系滿足BCNF范式,并消除了多值依賴,該關(guān)系滿足第4范式。,多值依賴:假設(shè)關(guān)系模式為R(A,B,C),其中A,B為主鍵屬性。如果在A取特定值,而在B上取值的集合與在C上取值的集合無關(guān),則稱多值依賴。,39,PPT學習交流,例:設(shè)學校中某一門課程由多個教師講授,他們使用相同的一套參考書。用關(guān)系模式Teaching(Course,Teacher,Book)來表示課程、教師和參考書之間的關(guān)系。,該關(guān)系Teaching(Course,Teacher,Book),屬于BCNF范式;但是它存在以下問題:,1.數(shù)據(jù)冗余度大,有多少名任課教師,課程名、參考書名就要存儲多少次;,2.增加操作復雜,當某一課程增加一名任課教師時,該課程有多少本參考書,就必須插入多少個元組;,3.修改操作復雜,某一門課程要修改一門參考書,該課程有多少名教師,就必須修改多少個元組。,40,PPT學習交流,產(chǎn)生這些問題的原因是參考書和教師的取值彼此獨立,它們都只取決于課程名,也就是存在多值依賴。,41,PPT學習交流,練習:學生關(guān)系規(guī)范化,問題:它滿足第1范式?,42,PPT學習交流,第1規(guī)范式:如果關(guān)系中的屬性不可再細分,該關(guān)系滿足第1范式。,學生關(guān)系現(xiàn)在滿足第1范式,本關(guān)系不滿足1范式,因為“聯(lián)系方式”屬性可以再細分“電話”、“電子郵件”等。,問題:它滿足第2范式嗎?,43,PPT學習交流,第2規(guī)范式:如果關(guān)系滿足第1范式,并消除了關(guān)系中的屬性部分依賴,該關(guān)系滿足第2范式。,分析:主鍵(學號,課程號)(學號)系名(學號)住址存在部分依賴,不滿足第2范式處理辦法:對學生關(guān)系進行分解,44,PPT學習交流,“學生”關(guān)系和“課程成績”關(guān)系均滿足第2范式,問題:它滿足第3范式嗎?,45,PPT學習交流,第3規(guī)范式:如果關(guān)系滿足第2范式,并切斷了關(guān)系中的屬性傳遞依賴,該關(guān)系滿足第3范式。,分析:(學號)系名,(系名)住址,故(學號)住址。存在傳遞依賴,不滿足第3范式.處理辦法:對學生關(guān)系再進行分解,46,PPT學習交流,“學生”、“系信息”、“課程成績”關(guān)系均滿足第3范式,問題:它滿足BCNF范式嗎?,47,PPT學習交流,“學生”、“系信息”、“課程成績”關(guān)系均滿足BCNF范式,問題:它滿足第4范式嗎?,BCNF范式:在關(guān)系中,所有函數(shù)依賴決定因子都是主鍵,該關(guān)系滿足BCNF范式。,48,PPT學習交流,分析:(系編號)辦公電話,(系編號)學生住址,而系辦公電話與學生住址不相關(guān)、學生住址可能有多處,故存在多值依賴,不滿足第4范式處理辦法:對“系信息”關(guān)系進行分解,第4規(guī)范式:如果關(guān)系滿足BCNF范式,并消除了多值依賴,該關(guān)系滿足第4范式。,49,PPT學習交流,各關(guān)系均滿足第4范式,50,PPT學習交流,三、反規(guī)范化處理,規(guī)范化減少了數(shù)據(jù)冗余,易于保證數(shù)據(jù)的完整性,但規(guī)范化也會導致數(shù)據(jù)庫性能降低,因此,在利用規(guī)范化設(shè)計數(shù)據(jù)庫時要平衡兩者的關(guān)系。,規(guī)范化帶來結(jié)構(gòu)的完整和精確性,但同時也可能帶來負面的效果。也正是基于此,人們提出了反規(guī)范化設(shè)計的基本思想。,51,PPT學習交流,所謂的反規(guī)范化,就是適當降低甚至拋棄范式約束,不再要求一個表只表述其表自身,而是適當冗余性添加帶有某種依賴關(guān)系的數(shù)據(jù)。,反規(guī)范化處理的主要手段有如下2種:(1)增加冗余列或派生列如果應用系統(tǒng)的常用操作需要關(guān)聯(lián)其他表中的數(shù)據(jù),則在進行表設(shè)計時,應直接將該列融入當前表中,使其冗余存在,稱為冗余列。(2)表的合并和分割,52,PPT學習交流,執(zhí)行反規(guī)范化設(shè)計,表的數(shù)量往往也就會減少,而這也就降低了表連接運算的壓力,可以有力提升性能。,但反規(guī)范化的使用也會帶來以下問題:(1)數(shù)據(jù)冗余的存在(2)降低了數(shù)據(jù)庫的完整性,反規(guī)范化是把雙刃劍,并不具有普遍意義,需要就事論事,用不好會傷及自身,53,PPT學習交流,5.3PowerDesigner項目實踐,在第四章中我們設(shè)計并完成了圖書館管理系統(tǒng)概念模型設(shè)計,最終得到如下的概念數(shù)據(jù)模型設(shè)計圖,54,PPT學習交流,一、CDM到LDM轉(zhuǎn)換設(shè)計,在PowerDesigner建模工具中,點取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論