国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PowerDesigner設(shè)計數(shù)據(jù)庫 - 我的小船停在代碼的海洋中... - BlogJa...

PowerDesigner 設(shè)計數(shù)據(jù)庫

   

 

       本文檔不講述如何使用 PowerDesigner ,而是講述如何將 PowerDesigner 的特點結(jié)合數(shù)據(jù)庫設(shè)計的方法更好的設(shè)計一個數(shù)據(jù)庫系統(tǒng)。

采用 PowerDesigner 設(shè)計數(shù)據(jù)庫

PowerDesigner 作為數(shù)據(jù)庫建模和設(shè)計的 CASE 工具之一,在數(shù)據(jù)庫系統(tǒng)開發(fā)中發(fā)揮著重要作用。

運用 PowerDesigner 進行數(shù)據(jù)庫設(shè)計,不但給人直觀地理解模型,而且充分運用數(shù)據(jù)庫的技術(shù),優(yōu)化數(shù)據(jù)庫的設(shè)計。 PowerDesigner 支持 Sybase Oracle 、 Informix 、 SQL Server 等多種數(shù)據(jù)庫系統(tǒng),在應用系統(tǒng)做數(shù)據(jù)庫遷移時不必維護多個數(shù)據(jù)庫腳本。

對于采用結(jié)構(gòu)化分析( SA ), E - R 圖、數(shù)據(jù)流圖直至最后的數(shù)據(jù)庫物理圖都是系統(tǒng)設(shè)計時不可缺少的一個部分,當數(shù)據(jù)庫物理圖完成后,應該產(chǎn)生系統(tǒng)的數(shù)據(jù)字典。運用 PowerDesigner 完全能夠完成這一設(shè)計流程。

對于采用面向?qū)ο蟮姆治觯?/span> OOA ),由于數(shù)據(jù)庫采用的是 RDBMS ,因此存在對象和關(guān)系數(shù)據(jù)庫之間的映射,也需要進行數(shù)據(jù)庫設(shè)計。

兩種數(shù)據(jù)庫模型

PowerDesigner 可以設(shè)計兩種數(shù)據(jù)庫模型圖:數(shù)據(jù)庫邏輯圖(即 E - R 圖或概念模型)和數(shù)據(jù)庫物理圖(物理模型),并且這兩種數(shù)據(jù)庫圖是互逆的。

數(shù)據(jù)庫邏輯圖是對現(xiàn)實世界的一種抽象,體現(xiàn)實體之間的關(guān)系,可以有 1 1 、 1 對多、多對多等關(guān)系。特別說一點,在擴充 E - R 圖中有概括這種關(guān)系,體現(xiàn)類型之間的一種子集聯(lián)系,它定義了超類和子類。在 PowerDesigner 設(shè)計的 E - R 圖中,不具備這種關(guān)系,但在 E - RWin 設(shè)計的模型中支持這種關(guān)系,因此在用 E - RWin 圖設(shè)計的模型轉(zhuǎn)化為 PowerDesigner 的模型時注意這種關(guān)系 。

數(shù)據(jù)庫物理圖中是邏輯模型的物理實現(xiàn),體現(xiàn)了表間的參照關(guān)系。在物理模型中不可能存在多對多的關(guān)系。在邏輯圖向物理圖轉(zhuǎn)換時,多對多的關(guān)系變成兩個 1 對多的關(guān)系。

       邏輯模型和物理模型有著緊密的聯(lián)系,也有本質(zhì)的區(qū)別。邏輯模型的設(shè)計遵循數(shù)據(jù)庫設(shè)計理論的第三范式(在一般的數(shù)據(jù)庫應用達到第三范式即可),邏輯模型要求具有應用系統(tǒng)所表達的所有信息并消除數(shù)據(jù)冗余。物理模型是在邏輯模型的基礎(chǔ)上,為了優(yōu)化應用系統(tǒng)的性能而采用增加冗余,創(chuàng)建索引等數(shù)據(jù)庫技術(shù),它主要用非規(guī)范化的一些理論。

       在考慮設(shè)計的任何非規(guī)范化之前,數(shù)據(jù)庫應先完全規(guī)范化,在沒有完全理解數(shù)據(jù)和用戶需求之前,不能進行非規(guī)范化。否則導致數(shù)據(jù)的組織越來越混亂,應用程序越來越復雜。

       因此邏輯模型和物理模型是相互矛盾又緊密聯(lián)系的,這點需要設(shè)計人員好好把握。

PowerDesigner 設(shè)計數(shù)據(jù)庫物理圖

PowerDesigner 設(shè)計數(shù)據(jù)庫物理圖,包括多個對象,如表( Table )、字段( Column )、域( Domain )等。設(shè)計時主要在 PowerDesigner Dictionary Database 兩個菜單中。

表( Table

       表是數(shù)據(jù)存儲的一個邏輯對象,包括其它對象如字段( Column )、索引( Index )、觸發(fā)器( Trigger )、存儲過程( Procedure )等,表的優(yōu)化設(shè)計有分割等技術(shù),對于表的存儲,如果訪問數(shù)據(jù)量大,訪問頻率高則可考慮將表放在不同的存儲( Storage )上。

       在設(shè)計表時,應該估算表的大小和增長量,便于創(chuàng)建數(shù)據(jù)庫時分配數(shù)據(jù)庫空鍵,這樣減少了磁盤碎片的產(chǎn)生。

       在關(guān)系數(shù)據(jù)庫中設(shè)計主鍵時,采用有意義的主鍵是致命的錯誤。如果用戶決定改變字段的商業(yè)含義,則需要在所有使用到該信息的地方進行修改。主鍵的作用應是保持唯一性和作為外鍵使用。任何對主鍵的修改會導致巨大的數(shù)據(jù)庫維護工作量,顯然這是不合適宜的設(shè)計。就關(guān)系數(shù)據(jù)庫而言,設(shè)計主鍵策略采用的是代理主鍵的方法。

       設(shè)計主鍵時應該避免“熱點”現(xiàn)象,但也需要分析具體的應用系統(tǒng)的并發(fā)用戶而定。

字段( Column

       定義一個字段主要有字段名、字段類型及長度、是否主外鍵、是否空、約束、默認值、域等。

       變長和定長的數(shù)據(jù)類型在數(shù)據(jù)庫設(shè)計中討論比較多,作為一般原則,如果預期某列中的數(shù)據(jù)范圍變化很大,但變化并不頻繁,那末對這樣的列使用變長數(shù)據(jù)類型最為適宜。

       決定行長時,既不能太浪費,又不能太吝惜??紤]到將來的需要,并且意識到,如果增加行長而沒有改變一頁中容納的行數(shù),那末增加的空間就等于免費使用。

       設(shè)計時,字段盡量使用域,方便維護字段的類型。每個字段最好將默認值加上,因為在數(shù)據(jù)庫查詢中,有 NULL 值會影響查詢的性能。

       通過 CHECK 約束可限制字段的取值。

域( Domain

簡單地說,是用戶自定義類型,但域還可以定義它的取值范圍或默認值,采用域減少了維護字段類型的工作量,也減少數(shù)據(jù)的不一致性。

參照( Reference

參照在數(shù)據(jù)庫設(shè)計中是一個比較復雜的問題, 它是實現(xiàn) 數(shù)據(jù)的完整性主 要要素之一,詳細論述參考后面數(shù)據(jù)的約束。

PowerDesigner中,可對參照完整性進行各項設(shè)置,參照的基數(shù)從0到n,對修改和刪除約束可分別設(shè)置為None、Restrict、Cascade、Set Null、Set Default。由于INSERT包含在UPDATE操作中,因此沒有單獨的INSERT約束。

約束的不同設(shè)置產(chǎn)生不同的效果,以修改為例(刪除相同):

None:父表修改,子表不影響。

Restrict:父表修改,如果子表存在,則出錯。

Cascade:父表修改,如果子表存在,則相應的修改。

Set Null:父表修改,如果子表存在,則相應置空。

Set Default:父表修改,如果子表存在,則相應置默認值。

索引( Index

       索引是優(yōu)化查詢時采用一種數(shù)據(jù)庫技術(shù),索引有簇索引、非簇索引、唯一索引等。

       設(shè)計索引時,要注意索引寬度,盡量減少索引的寬度。索引的寬度不是由字段的多少決定的,而是由字段的長度來決定。對于窄索引關(guān)鍵字,在每一索引頁上放置更多的關(guān)鍵字和指針,這樣就能花銷更少的 I/O 找到數(shù)據(jù)。

       對于復合索引,選擇首列相當重要,否則可能不能利用該索引,當利用復合索引查詢時。必須確保查詢從首列開始。

       索引還有一個填充因子( FillFactor ),填充因子的大小視表的數(shù)據(jù)增長量和主鍵定義的情況而定。

觸發(fā)器和存儲過程( Trigger&&Procedure

       觸發(fā)器在維護數(shù)據(jù)完整性起著重要作用,它比參照更具靈活性,

也能實現(xiàn)三層結(jié)構(gòu)中數(shù)據(jù)層的業(yè)務規(guī)則。

       存儲過程是采用 SQL 及流程控制語句編寫的完成某種業(yè)務的腳本。存儲過程在數(shù)據(jù)處理上具有處理速度快、處理靈活等優(yōu)點。

但是,存儲過程極大地增加了與數(shù)據(jù)庫之間的耦合,在數(shù)據(jù)庫遷移時,需要重寫存儲過程,從而增加了版本維護的工作量。如果數(shù)據(jù)庫要求從遷移性考慮,應盡量避免使用存儲過程或者觸發(fā)器。

       如果不人為修改 PowerDesigner 的觸發(fā)器,其遷移性 PowerDesigner 自動解決。

存儲( Storage

不同的數(shù)據(jù)庫中有不同的概念, Sybase 稱為設(shè)備( Device ), SQL Server 稱為文件或文件組( File 、 FileGroup , Oracle 稱為表空間( TableSpace )。

根據(jù)系統(tǒng)創(chuàng)建一個或多個存儲,按一定的優(yōu)化規(guī)則存放。

數(shù)據(jù)庫的劃分

       數(shù)據(jù)庫的劃分以它的物理分布為原則,而不應數(shù)據(jù)量、表類型等原則來劃分,數(shù)據(jù)庫的多少對數(shù)據(jù)庫的性能影響不大。對于訪問數(shù)據(jù)量大、訪問頻繁的表來說, I/O 操作很容易形成嚴重的瓶頸,因此減少 I/O 操作和 I/O 操作阻塞是數(shù)據(jù)庫設(shè)計考慮的主要問題,解決方法將將表放在多個設(shè)備上,設(shè)備需創(chuàng)建在不同的物理驅(qū)動器上,最好能用智能型或陣列。

       日志和數(shù)據(jù)分開存儲在不同設(shè)備上,如果索引多且占用空間大,也可以采用如此方式。

       數(shù)據(jù)庫數(shù)量少的維護成本比數(shù)量大少。

       因此數(shù)據(jù)庫劃分以物理分布為原則。

       PowerDesigner 提供計算數(shù)據(jù)庫或表的方法( Compute Database Size ),可幫助設(shè)計者完成數(shù)據(jù)庫的劃分。

數(shù)據(jù)庫的完整性

       數(shù)據(jù)庫完整性可通過存儲過程、聲明性參照完整性( DRI )、

數(shù)據(jù)類型、約束、規(guī)則、默認值,以及觸發(fā)器來實現(xiàn)。在數(shù)據(jù)庫內(nèi),這些功能各以特有的方式發(fā)揮作用。綜合利用這些完整性功能,可以使數(shù)據(jù)庫靈活,易于管理,而且很安全。

數(shù)據(jù)完整性概念分為幾個方面。

  表域完整性

通過主鍵來強制表的域完整性。

  引用完整性

利用參照來加強表之間的邏輯關(guān)系。

  數(shù)值域完整性

任何輸入的數(shù)據(jù)在類型和范圍上必須與指定的數(shù)據(jù)類型相匹配,只有當某列被說明允許 NULL 值,才允許向該列輸入 NULL

數(shù)據(jù)庫的性能測試

       生成數(shù)據(jù)庫之后,應進行數(shù)據(jù)庫性能測試,以便優(yōu)化數(shù)據(jù)庫的設(shè)計,因此需要生成測試數(shù)據(jù),由于是性能測試,數(shù)據(jù)的規(guī)范性要求不高。通過 PowerDesigner 可方便地生成測試數(shù)據(jù)( Generate Test Data ),完成性能測試。

數(shù)據(jù)的約束

O-O 約束

對父表的 INSERT 、 UPDATE 、 DELETE 操作沒有限制。

M-O 約束

對父表操作的約束:

父表的INSERT操作,對M-O約束,父表中間的記錄可以沒有任何約束地添加到表中,因為這種約束中不一定必須有子女。

    父表的鍵值修改操作,只有在子表中其所有的子女對應均做修改后,才能修改,即一般采用級聯(lián)更新的方法。

    父表的刪除,父親只有在其所有子女均被刪除或重新分配之后該父親才能被刪除。

強制對可選(M-O)約束

O-M 約束

    父表操作的約束:

父表的INSERT操作,對O-M約束,一個父親只有當至少當它的一個、子女同時被加入或至少存在一個合法的子女時,才能被加入。

父表的鍵值修改操作,只有當一個子女被創(chuàng)建或已經(jīng)有一名子女存在才行。

父表的刪除,理論上刪除父親是沒有限制的,實際上,刪除主表記錄時,不采用級聯(lián)刪除子表的方案,而采用將子表的外鍵置空。


           可選對強制(O-M)約束

 


M-M 約束

父表操作的約束:

父表的INSERT操作,可能隨后需要生成子女,即在子表中創(chuàng)建新的行。也可能通過對子表的重新分配來實施完整行限制。

父表的鍵值修改操作,只有在子表對應的外鍵的值修改成新值時才能進行。實際可能是先創(chuàng)建新的父表紀錄,接著修改子表所有對應的紀錄,使其與父表的新紀錄關(guān)聯(lián),最后刪除原父表紀錄。

父表的刪除,只有在子表中所有相關(guān)的行全部刪除或重新分配之后,才能刪除父表中的紀錄,一般對子表也進行刪除操作。


           強制對強制(M-M)約束

 


在四類約束: M - M M-O 、 O-M O-O 。鍵值的修改可能會改變表之間的關(guān)系,而且可能違反一些約束。違反約束的操作是不允許的。具體的應用必須根據(jù)實際的要求和商業(yè)規(guī)則進行適當?shù)倪x擇。但在設(shè)計和開發(fā)時,必須考慮所分析的約束。

物理圖的組織

數(shù)據(jù)庫物理的組織以功能來組織為好,讓人很容易就明白該功能需要操作哪些表,數(shù)據(jù)是如何流向的,但是按此組織,可能有些參照建立比較亂,其實有些參照可以不必建立,如在寫入一個表時,其數(shù)據(jù)的來源就是從另一個查詢得到的,可以保證數(shù)據(jù)的正確性,從功能劃分來組織物理圖,就可以不建立這個參照。

數(shù)據(jù)庫的生成

有了數(shù)據(jù)庫物理圖,在生成數(shù)據(jù)庫或數(shù)據(jù)庫腳本時,應注意如下的問題:

參照完整性的實現(xiàn),可以采用聲明性參照實現(xiàn)或觸發(fā)器實現(xiàn),至于兩種實現(xiàn)的優(yōu)缺點,前面已經(jīng)論述過,這里僅說一點,如果采用觸發(fā)器實現(xiàn)需要在生成數(shù)據(jù)庫后再生成觸發(fā)器。

當參照含有級聯(lián)(Cascade)刪除或修改時,其實現(xiàn)要分情況處理:

Sybase 、 SQL Server 不支持聲明性 級聯(lián)(Cascade)刪除或修改,只能通過觸發(fā)器(Trigger)來實現(xiàn)。

Oracle、Informix支持 聲明性 級聯(lián)(Cascade)刪除,但不支持

級聯(lián)(Cascade)修改,也只能通過觸發(fā)器(Trigger)來實現(xiàn)。

    當定義了用戶自定義類型時,在生成數(shù)據(jù)庫時,最好轉(zhuǎn)換成數(shù)據(jù)庫基本類型,對數(shù)據(jù)庫性能和遷移都有利。

數(shù)據(jù)字典

       數(shù)據(jù)字典作為產(chǎn)品的一個歸檔文檔,它定義應用系統(tǒng)數(shù)據(jù)庫的各個方面。數(shù)據(jù)庫物理模型建好后,就可以生成數(shù)據(jù)字典,數(shù)據(jù)字典的內(nèi)容和形式可以在 PowerDesigner 定義模板,依據(jù)模板生成數(shù)據(jù)字典,再處理一下文檔格式。

       PowerDesigner Create Report 生成數(shù)據(jù)字典。

目前系統(tǒng)需要處理和優(yōu)化的地方

主鍵的定義:

由于對業(yè)務了解的深度不夠,某些表的主鍵建立存在一些問題,隨著業(yè)務的深入逐步完善。

       參照的建立:

主鍵的定義不完善導致了參照建立的不完善,這也只能以后組不完善。

       數(shù)據(jù)庫的劃分:

       數(shù)據(jù)庫的劃分前面已經(jīng)談過,由于這個劃分影響著服務器和客戶端的程序,也只能以后的新版中解決。

       表結(jié)構(gòu)的調(diào)整:

       對于有些表,如系統(tǒng)設(shè)置表,可以將它的橫向結(jié)構(gòu)改為縱向結(jié)構(gòu),這樣增加了系統(tǒng)的靈活性

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PowerDesigner 導入SQL
PowerDesigner 物理數(shù)據(jù)模型(PDM) 說明
PowerDesigner9.5——物理數(shù)據(jù)模型(PDM) 一
PowerDesigner15創(chuàng)建數(shù)據(jù)庫及模型及oracle和表分區(qū)
powerDesigner使用(一)
《SQL Server 2005基礎(chǔ)教程及上機指導》第7章 觸發(fā)器
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服