軟件工程-數(shù)據(jù)庫-Powerdesigner數(shù)據(jù)庫設(shè)計 物理數(shù)據(jù)模型的概念和使用_第1頁
軟件工程-數(shù)據(jù)庫-Powerdesigner數(shù)據(jù)庫設(shè)計 物理數(shù)據(jù)模型的概念和使用_第2頁
軟件工程-數(shù)據(jù)庫-Powerdesigner數(shù)據(jù)庫設(shè)計 物理數(shù)據(jù)模型的概念和使用_第3頁
軟件工程-數(shù)據(jù)庫-Powerdesigner數(shù)據(jù)庫設(shè)計 物理數(shù)據(jù)模型的概念和使用_第4頁
軟件工程-數(shù)據(jù)庫-Powerdesigner數(shù)據(jù)庫設(shè)計 物理數(shù)據(jù)模型的概念和使用_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

物理數(shù)據(jù)模型的概念和使用定義物理數(shù)據(jù)模型〔PhysicalDataModel〕:簡寫為PDM,是用于定義詳細(xì)定義物理結(jié)構(gòu)和數(shù)據(jù)查詢的數(shù)據(jù)庫設(shè)計工具。你可以在PDM中使用不同類型的圖表,這取決于你所要設(shè)計的目標(biāo)數(shù)據(jù)庫的類型。當(dāng)今關(guān)于數(shù)據(jù)庫方面比擬熱門的話題莫過于數(shù)據(jù)倉庫,數(shù)據(jù)集市,OLAP,數(shù)據(jù)挖掘等內(nèi)容了。而PowerDesigner對這幾方面的設(shè)計都有很好的支持,分別支持了操作型數(shù)據(jù)庫,數(shù)據(jù)倉庫或數(shù)據(jù)集市,OLAP等類型數(shù)據(jù)庫系統(tǒng)。PDMDBMS:PowerDesigner能夠用于創(chuàng)立多種不同類型的DBMS,對于每種類型的DBMS,都包含一個標(biāo)準(zhǔn)定義文件用于在PowerDesigner和DBMS中確定關(guān)聯(lián)而提供一套接口。你可以修改裝載在PowerDesigner中DBMS,對于每個你將要修改的初始DBMS,你都可以創(chuàng)立一個相應(yīng)的新DBMS。新建PDM你可以通過三種方式新建PDM直接創(chuàng)立新PDM,這個操作過程和前面CDM的創(chuàng)立過程非常的類似。使用模板創(chuàng)立新PDM通過現(xiàn)有根底創(chuàng)立新PDM,現(xiàn)有元素包括:數(shù)據(jù)庫的反向工程,引入一Erwin模型,從現(xiàn)有CDM或OOM自動生成,從V6版本的數(shù)據(jù)倉庫分析模型遷移等。在本教程中,主要是通過前面創(chuàng)立好的CDM生成PDM。下面只簡要講解概述第一種PDM的創(chuàng)立過程:〔1〕選擇New,即翻開創(chuàng)立模型選項(xiàng)窗口,如下列圖:〔2〕選擇左邊模型列表中PhysicalDataModel,同時在DBMS下拉列表中選擇相應(yīng)類型DBMS〔當(dāng)然你也可以在后面的過程中更改DBMS類型〕,〔3〕在diagram中選擇PhysicalDiagram,其中列表中MultidimensionalDiagram選項(xiàng)用于創(chuàng)立多維〔Multidimensional〕數(shù)據(jù)模型?!?〕單擊〞確認(rèn)〞,即完成PDM創(chuàng)立過程?!?〕隨后的物理數(shù)據(jù)模型的編輯操作和前面CDM的操作很類似,只不過將對實(shí)體Entity的操作更改為了對表的操作,至于其中的一些細(xì)節(jié),將在后面的教程中陸續(xù)提到。從CDM生成PDM上面簡單介紹了物理數(shù)據(jù)模型的創(chuàng)立,當(dāng)然,你可以在此根底上完成數(shù)據(jù)庫設(shè)計。但是不要忘記了前面我們已經(jīng)做了很多事情,設(shè)計了一個完善的概念數(shù)據(jù)模型了,現(xiàn)在我們來看看如何將CDM轉(zhuǎn)換為PDM。在CDM的設(shè)計界面下,選擇“工具->GeneralPhysicalDataModel〞〔這里你會發(fā)現(xiàn)其實(shí)各個模型之間都是可以互相轉(zhuǎn)換的〕,或使用快捷鍵:Ctrl+Shift+P,就會出轉(zhuǎn)化為PDM的界面:這里上面GenerateNewPhysicalDataModel是用于生成一個新的物理數(shù)據(jù)模型,其中要選擇設(shè)置好DBMS,還有你的PDM的Name和Code,然后就可以生成了。如果你是準(zhǔn)備更新已經(jīng)錯在的PDM,那么你可以選擇下面UpdateexistingPhysicalDataModel來繼續(xù)操作,當(dāng)然需要選擇要更新的PDM和DBMS。ConfigureModelOptions中,可以對生成的參數(shù)進(jìn)行一些設(shè)置,這里暫時不介紹,一般你不需要更改什么就可以點(diǎn)擊“確定〞開始生成了。這里值得強(qiáng)調(diào)的是在powerdesigner15中,DBMS的選擇中,一般來說,你需要按照你實(shí)際使用的數(shù)據(jù)庫進(jìn)行選擇。但是,在操作中發(fā)現(xiàn)存在如下情況:如果選擇SQL2005或SQL2021,生成的PDM在最終生成數(shù)據(jù)庫的時候都無法生成主外鍵關(guān)系,取而代之的是生成了索引Index。要生成主外鍵關(guān)系,必須選擇SQL2000。這點(diǎn)讓我非常困惑,也一直沒有找到對應(yīng)的設(shè)置進(jìn)行解決,不知道是我的版本問題還是原先的模板就是這樣。難道是否powerdesigner15提倡不使用主外鍵關(guān)系,以防止操作錯誤??這個在一些微軟提供的實(shí)例的數(shù)據(jù)庫的設(shè)計中都可以看到這種設(shè)計。因此,如果你要最終在數(shù)據(jù)庫中生成主外鍵關(guān)系,那么即使你使用SQL2021,也建議你的DBMS使用SQL2000,因?yàn)楹笃谖覀儠蓴?shù)據(jù)庫腳本,這個腳本在SQL2021上是通用的,一樣可以生成你要的基于SQL2021的數(shù)據(jù)庫。當(dāng)然,如果你選擇直接更新現(xiàn)有數(shù)據(jù)庫那么可能會有一些問題的。還有一個過渡性的方法:DBMS先選擇SQL2000生成一個PDM,然后再由此PDM生成另外一個PDM,此時你可以選擇設(shè)置DBMS為SQL2021,此后生成的PDM就一切正常了。好,那我們就按上面的操作,創(chuàng)立好DBMS使用SQL2000的物理數(shù)據(jù)模型,如下列圖:很熟悉的界面吧,感覺和CDM非常的類似。注意將生成的這個PDM拖到前面你創(chuàng)立好的“物理數(shù)據(jù)模型〞文件夾下,如右圖。仔細(xì)觀察一下生成內(nèi)容,表取代了原先的Entity實(shí)體。再仔細(xì)看看原先實(shí)體的屬性和現(xiàn)在的表中的數(shù)據(jù)列,你會發(fā)現(xiàn)所有的屬性和數(shù)據(jù)列都是一一對應(yīng)的,包括它們的名稱、代碼、數(shù)據(jù)類型、約束等等。但是注意,這里提到的是“幾乎〞,因?yàn)樵谟薪⒙?lián)系的表中,一些表多了一個標(biāo)記為外鍵“FK〞的列。如產(chǎn)品表中的“分類編號〞。因此,在前期CDM設(shè)計中,你不需要考慮在實(shí)體中添加外鍵的索引,因?yàn)樵谏蒔DM的時候,這一切系統(tǒng)會幫你完成的。而你建立的有繼承關(guān)系的表,父表已經(jīng)不見〔還記得前面設(shè)置中提到這個表如何設(shè)置讓它不在PDM中出現(xiàn)嗎?〕,其屬性已經(jīng)成為字表中的對應(yīng)屬性。另外,表之間的聯(lián)系名稱也許讓你感到困惑,不過沒有關(guān)系,其名稱的設(shè)置還是在的,你雙擊這些聯(lián)系,就可以看到原先的中文名稱。如果要修改,當(dāng)然也可以在Integrity選項(xiàng)卡中,你可以修改其Constraintname為你想要的名稱。再強(qiáng)調(diào)一下,并不是一定要先設(shè)計CDM,然后才能生成PDM并進(jìn)行編輯的,只是這樣更加自然,符合軟件開發(fā)的流程。當(dāng)然,如果你對powerdesigner非常的屬性,或那么工程不大,你對其數(shù)據(jù)庫設(shè)計有充分的了解,那么也可以直接使用PDM進(jìn)行數(shù)據(jù)庫的設(shè)計,跳過前面CDM的過程。不要覺得前面學(xué)習(xí)的內(nèi)容那就沒有用了,其實(shí)CDM和PDM的操作根本是一樣的,可以參照。下面我們將通過對CDM和PDM的對應(yīng)關(guān)系的說明介紹PDM的使用。注意:因?yàn)槠洳僮骱虲DM類似,這里只是比擬快的將一些根本操作流程進(jìn)行說明,沒有再給出具體實(shí)例進(jìn)行圖示說明,有問題,可參見前面章節(jié)的設(shè)計。小技巧:添加表名前綴:很多情況下,在一個大的工程中,往往對最終的數(shù)據(jù)庫表名有嚴(yán)格的規(guī)定,最常見的就是增加一個代表工程含義的前綴。比方,想給EStore的每個表增加一個前綴PS_,如Category表的Code就應(yīng)該是PS_Code。當(dāng)然,如果你一開始就想好了表名前綴,且以后肯定不修改了,可以在每個表上加上特定的前綴,在設(shè)計的時候手工寫Code的時候就可以寫好它,但顯然這樣不夠靈活,萬一需要修改呢?最好的方式是:在CDM生成PDM時候添加指定表名前綴的選項(xiàng),即你在使用[Tool]–>[GeneratePhysicalDataModel]生成PDM時,在Detail選項(xiàng)卡中的[Table]–>[Tableprefix]中添加表名前綴,如圖:那么最后生成的PDM中,其Code就會如下列圖:域在PDM中一樣有域的概念,對于域的定義和使用在CDM的域的教程中已經(jīng)說明,這里和前面根本類似,就不重復(fù)。先看一下CDM和PDM中域的對應(yīng)關(guān)系。這里看到CDM和其生成的PDM中域是一一對應(yīng)的。操作上你可以通過在Domains上右鍵菜單來進(jìn)行添加,同樣也可以通過下面的操作來進(jìn)行:選擇Model->Domains以翻開域列表〔ListofDomains〕窗口。單擊工具欄中AddaRow工具,新建域。輸入相應(yīng)的Name和Code,這里我們輸入Identifier和ID。單擊Apply提交Domain的創(chuàng)立,單擊工具欄中Properties工具以翻開DomainProperties窗口,如下列圖:選擇數(shù)據(jù)類型〔Datatype〕,設(shè)置Length等屬性,同時可以選擇StandardChecks屬性頁以編輯詳細(xì)約束。單擊OK,確認(rèn)修改。這樣就已經(jīng)完成域Identifier的創(chuàng)立過程。再看一下修改Domain屬性:選擇Model->Domains以翻開域列表〔ListofDomains〕。單擊你想要修改的域?qū)ο?,如名稱,使目標(biāo)域?qū)ο筇幱谶x擇狀態(tài)。雙擊該域?qū)ο蠡騿螕艄ぞ邫谥蠵roperties工具以翻開域?qū)傩浴睤omainProperties〕窗口,現(xiàn)在可以對域?qū)傩赃M(jìn)行更改了,這里我們可以將其長度設(shè)置為90。確認(rèn)更改后,點(diǎn)擊〞應(yīng)用〞,此時系統(tǒng)會自動將相關(guān)應(yīng)用了該域的列進(jìn)行修改,注意左下方窗口的提示信息。這里注意一下,你如果修改的是Name或Code,可能會你的修改并沒有生效,因?yàn)槟J(rèn)情況下域的修改會自動引起改變的只是數(shù)據(jù)類型,當(dāng)然你可以修改這個配置,指定哪些信息時需要自動進(jìn)行修改的:步驟如下:選擇Tools->ModelOptions,翻開ModelOptions窗口,選擇左邊樹形子菜單中Column&Domain選項(xiàng),如下列圖:選擇Enforcenon-divergence,再選擇相應(yīng)模型元素即可,這樣每次Domain發(fā)生更改后,對應(yīng)使用了該Domain的模型元素就自動發(fā)生更改。業(yè)務(wù)規(guī)那么業(yè)務(wù)規(guī)那么的設(shè)置也域一樣,也和CDM類似,其定義就不說了。雙擊某個業(yè)務(wù)規(guī)那么,展開窗口,你會看到前面在CDM中設(shè)置好的信息,包括Expression也是完全一樣的。有時你會發(fā)現(xiàn)上面Rule_1和Rule_3這樣的規(guī)那么,好似你在CDM中并沒有配置過。雙擊翻開查看,確實(shí)是空白的,不存在Expression表達(dá)式。這是由于你某些誤操作導(dǎo)致的〔其實(shí)系統(tǒng)挺笨的〕,可以刪除掉他們,如果保存,有時最終會生成一些錯誤的代碼導(dǎo)致數(shù)據(jù)庫腳本錯誤。如果要在PDM中增加新的業(yè)務(wù)規(guī)那么,你可以按下面步驟操作:選擇Model->BusinessRules,翻開ListofBusinessRules窗口,列表顯示當(dāng)前模型中存在的業(yè)務(wù)規(guī)那么,如下列圖:單擊工具欄中AddaRow工具或單擊列表中一個空白行,即添加一個新業(yè)務(wù)規(guī)那么。輸入相應(yīng)的Name和Code,單擊Apply,提交業(yè)務(wù)規(guī)那么的新建。雙擊所選擇的業(yè)務(wù)規(guī)那么或單擊工具欄上Properties工具,翻開業(yè)務(wù)規(guī)那么屬性〔BusinessRuleProperties〕窗口進(jìn)行編輯。再次強(qiáng)調(diào):Type下拉列表中選擇相應(yīng)的業(yè)務(wù)規(guī)那么方式,待選類別有定義〔Definition〕,事實(shí)〔Fact〕,公式〔Formula〕,需求〔Requirement〕,驗(yàn)證〔Validation〕,約束〔Constraint〕。但只有驗(yàn)證〔Validation〕和約束〔Constraint〕類型的業(yè)務(wù)規(guī)那么才能生成到數(shù)據(jù)庫中。選擇Expression屬性窗口,有兩種類型的業(yè)務(wù)規(guī)那么表達(dá)式,分別為Client和Server。其中Server局部為可以生成到數(shù)據(jù)庫中,而Client局部那么僅用于模型文檔的生成。設(shè)置完畢,單擊〞確認(rèn)〞,完成業(yè)務(wù)規(guī)那么創(chuàng)立過程。要在PDM中應(yīng)用業(yè)務(wù)規(guī)那么,操作如下:在當(dāng)前模型圖表中雙擊將要應(yīng)用業(yè)務(wù)規(guī)那么的對象,以翻開該對象屬性窗口。選擇Rules屬性,列表中顯示應(yīng)用至該對象上的業(yè)務(wù)規(guī)那么列表。單擊工具欄中AddObjects工具以顯示業(yè)務(wù)規(guī)那么列表。如下列圖:選擇你想要添加的應(yīng)用于該對象的業(yè)務(wù)規(guī)那么,單擊OK。在對象屬性框中單擊OK,即完成業(yè)務(wù)規(guī)那么應(yīng)用,假設(shè)添加的是約束規(guī)那么或驗(yàn)證規(guī)那么,你可以通過Preview選項(xiàng)看到業(yè)務(wù)規(guī)那么生成的數(shù)據(jù)庫代碼。注意:對于一些業(yè)務(wù)邏輯可能出現(xiàn)在多個數(shù)據(jù)表中,建議封裝成BusinessRule,這樣便于業(yè)務(wù)邏輯的重新使用,也便于業(yè)務(wù)邏輯的維護(hù)。為了便于維護(hù)業(yè)務(wù)邏輯,可以考慮將BusinessRule和Domains結(jié)合起來使用。將業(yè)務(wù)BusinessRule應(yīng)用到Domains上,然后再把Domains應(yīng)用到數(shù)據(jù)表的字段上。表表的對應(yīng)關(guān)系很直觀了,沒有必要提供圖片了。唯一注意就是在CDM中的繼承關(guān)系在PDM中的表達(dá):父實(shí)體根本產(chǎn)品信息被具體化到產(chǎn)品和產(chǎn)品分類表中去了。如果你要在PDM中直接添加表,操作如下:左鍵單擊Palette面板中Table工具左鍵單擊模型圖表空白區(qū)域以在模型圖表中新建Table圖符。單擊鼠標(biāo)右鍵或單擊Palette面板中Pointer工具,使鼠標(biāo)處于選擇狀態(tài)。左鍵雙擊模型圖表中剛創(chuàng)立的Table圖符以翻開Table屬性窗口,如下列圖:輸入相應(yīng)表的名稱和代碼。其中Number選項(xiàng)為物理數(shù)據(jù)庫中表的記錄的大概估計,用于后述的估計數(shù)據(jù)庫的大小規(guī)模;Generate選項(xiàng)表示是否在物理數(shù)據(jù)庫中生成該表。最后勾選上Generate。單擊〞確定〞,即完成表的創(chuàng)立。創(chuàng)立完畢表后就要添加編輯列:翻開表的屬性窗口,選擇Columns屬性頁,如下所示:這里我們可能需要使用域設(shè)置名稱、圖片、狀態(tài)等信息,前面我們已經(jīng)完成了域的創(chuàng)立工作,這里可以直接應(yīng)用于列中。但是要注意,默認(rèn)情況下,PDM中并沒有和CDM中一樣有一個Domain的設(shè)置列的,那么在哪里操作域的配置呢?單擊工具欄上CustomizeColumnsandFilter工具,彈出CustomizeColumnsandFilter窗口,在列表中選擇Domain,如下列圖:單擊OK,那么這時Columns屬性頁中顯示Domain屬性。編輯列屬性,在Domain下拉列表中選擇設(shè)置好的域,如下列圖:單擊確認(rèn),即將域〔Domain〕應(yīng)用至該列。翻開Check,編輯約束,其操作參見CDM的設(shè)置。注意:在CDM中實(shí)體屬性的設(shè)置和PDM中一樣,其實(shí)列表中可以顯示的信息由很多的,你一樣可以通過CustomizeColumnsandFilter工具挑選你要顯示的信息,以方便操作。另外需要注意的是,在建立主鍵時,系統(tǒng)會在主鍵上建立索引,索引分為聚集索引和非聚集索引,在“鍵屬性〞窗口的General選項(xiàng)卡中可以設(shè)置該主鍵上建立的索引是聚集索引還是非聚集索引,如下圖:小技巧:供給商的主鍵SuppIdId是自增長列,在CDM的設(shè)置中我們僅僅完成了主標(biāo)示符的設(shè)置,對應(yīng)在生成的PDM中,該列也僅僅是一個主鍵,但并非自增長的,要設(shè)置為自增長,操作如下:點(diǎn)擊供給商表,編輯其屬性,選中Columns選項(xiàng)卡,編輯主鍵SuppId,在右下角處選中Identity即可將其設(shè)置為自增長列。隨后,點(diǎn)擊Microsoft,還可以編輯自增長列的起點(diǎn)和步長,如設(shè)置其從1開始自增,每次自增步長也為1,設(shè)置如下引用定義引用〔Reference〕在CDM中我們?yōu)楦鱾€實(shí)體設(shè)置了關(guān)系,在PDM中與之對應(yīng)的就是引用。引用〔Reference〕是一個父表〔parenttable〕和子表〔childtable〕之間的連接,它定義了在數(shù)據(jù)表各列用于主鍵,候選鍵,外鍵或用戶指定列之間的完整性約束。當(dāng)兩個表中的數(shù)據(jù)列通過了引用〔Reference〕連接時,子表中的該列的每個值都對應(yīng)了父表中對應(yīng)列的一個相同的值。在一對引用關(guān)系中,數(shù)據(jù)列之間通過連接〔Join〕連接,根據(jù)在主鍵/候選鍵中列的數(shù)目,指定列的數(shù)目,一個引用關(guān)系中可能包含一個或多個連接〔Join〕。建立引用〔Reference〕選擇Palette面板中Reference工具在模型圖表區(qū)域,左鍵單擊子表圖符并按住鼠標(biāo)不放,拖動鼠標(biāo)至父表圖符,松開鼠標(biāo),即在兩表之間建立了引用關(guān)系。單擊Palette面板中Pointer工具或單擊鼠標(biāo)右鍵使鼠標(biāo)處于選擇狀態(tài)。雙擊模型圖表中的引用〔Reference〕連接圖符以翻開引用屬性〔ReferenceProperties〕窗口,如下列圖:輸入相應(yīng)的引用〔Reference〕Name和Code?!玻丁扯x引用連接〔Join〕,選擇Joins屬性頁,如下列圖所示:〔7〕在Parentkey選項(xiàng)列表中選擇相應(yīng)的父表鍵,此時列表中顯示出當(dāng)前連接〔Join〕所連接的父表列和對應(yīng)的子表列?!玻浮超F(xiàn)在可以對對應(yīng)于每個父表列〔ParentTableColumn〕的子表列〔ChildTableColumn〕進(jìn)行選擇更改。注意:添加引用關(guān)系的時候,一般系統(tǒng)會自動將主表中的標(biāo)示列添加到字表中,不需要你手動添加。但如果子表中已經(jīng)有一個字段名稱、Code、數(shù)據(jù)類型都和主表的主鍵相匹配,系統(tǒng)會自動將引用關(guān)聯(lián)到這個列上。重建引用〔Rebuildingreferences〕:有時我們進(jìn)行反向工程〔下一章節(jié)會介紹〕時可能不會將所有的對象都添加進(jìn)去,這時可能會遇到引用沖突問題,即在已經(jīng)添加進(jìn)反向工程的工程中可能包含一些具有引用關(guān)系的表,而這些引用關(guān)系與沒有添加進(jìn)反向工程中。這時我們可以借助PowerDesigner提供的重建引用〔Rebuildingreferences〕功能,對引用進(jìn)行選擇重建。選擇Tools->RebuildObjects->RebuildReferences,彈出重建引用窗口。在General屬性頁中選擇重建引用方式〔其中Deleteandrebuild方式為刪除所有現(xiàn)有引用,再根據(jù)匹配鍵列創(chuàng)立新的引用;Perserve方式為保存所有現(xiàn)有引用,且根據(jù)匹配鍵列建立新的引用〕。選擇Selection屬性頁,根據(jù)需要選擇你要重建引用的表。確認(rèn)選擇后,單擊〞確認(rèn)〞按鈕,假設(shè)你選擇的重建方式為Deleteandrebuild,那么會彈出確認(rèn)對話框。確認(rèn)重建,單擊〞是(Y)〞即可完成重建引用。注意:powerdesigner雖然提供了這個重建引用的功能,但因?yàn)橄到y(tǒng)的智能不能滿足需要,因此往往你會發(fā)現(xiàn)重建的引用和你預(yù)期的不一樣,因此,一般還是建議重建引用后必須手動檢查修正。引用完整性〔ReferentialIntegrity〕:引用完整性是管理數(shù)據(jù)主鍵,候選鍵和外鍵之間數(shù)據(jù)一致性的一系列規(guī)那么,它定義了當(dāng)你更新或刪除父表中的一個被引用的列,或從父表中刪除一條包含被引用的列的數(shù)據(jù)記錄時要發(fā)生的動作。有以下兩種方式實(shí)現(xiàn)引用完整性:Declarative:引用完整性通過詳細(xì)引用來定義,當(dāng)引用生成目標(biāo)DBMS,它評估引用的正確性并生成相應(yīng)的錯誤消息。Usingtriggers:通過在引用屬性窗口中定義的基于完整性約束的觸發(fā)器〔Trigger〕來實(shí)現(xiàn)引用完整性約束。觸發(fā)器用于衡量引用的正確性并生成適當(dāng)?shù)挠脩糇远x錯誤信息。注:對于目標(biāo)數(shù)據(jù)庫你可以作為生成目標(biāo)數(shù)據(jù)庫的選項(xiàng)而定義引用完整性,但并不是所有的類型的DBMS都支持使用引用完整性作為生成數(shù)據(jù)庫的選項(xiàng),此時當(dāng)你生成這些類型DBMS的SQL腳本時,其中不會包含引用完整性的定義。定義引用完整性雙擊模型圖表中的引用圖符以翻開引用屬性窗口。選擇Integrity屬性頁,顯示出其中用于引用完整性約束的一系列可設(shè)置選項(xiàng),如下列圖:默認(rèn)情況下設(shè)置為Declarative,如果更新或刪除時違反引用規(guī)那么,如要刪除的某條產(chǎn)品信息中,該產(chǎn)品的產(chǎn)品分類確不存在,此時會報錯。如果你跟新為Usingtriggers,那么后面就會針對這個情況生成對應(yīng)的腳本,在刪除前對產(chǎn)品分類進(jìn)行檢查,看該分類是否存在,防止出錯。關(guān)于觸發(fā)器Triggers在下一章節(jié)中還會進(jìn)一步說明。小技巧:引用關(guān)系命名規(guī)那么的修改看一下生成的引用關(guān)系命名,可能你會覺得

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論