1. 程式人生 > >PowerDesigner之概念資料模型

PowerDesigner之概念資料模型

1.概念資料模型:它是將現實世界抽象為資訊世界,把現實中客觀存在的物件抽象為實體與練習,然後用圖形化的方式直觀的描述出來,CDM以資料庫概念E-R理論為基礎,它獨立於DBMS,CDM它由一組嚴格定義的模型元素組成,它包括:試題,屬性聯絡,資料項,域等

特點:對於聯絡的特點,要先定義兩個屬性之間的總聯絡關係,再定義A to B 和 B to A的關係,有一個規律總的關係假如是1-n,那麼A to B 和 B to A的關係一定是x-1和
y-n,也就是這兩個關係的後面倆個,是總關係。

2.實體和屬性

3.聯絡:1:1,1:n,n:m

4.標定與非標定聯絡:①.標定聯絡就是指:就相當於弱實體集一樣,如果一個實體的識別符號(主鍵)需要另一個實體的識別符號共同組成其識別符號的時候,那麼這種聯絡就稱為標定聯絡。
②.非標定聯絡:一個實體的識別符號進入另一個實體中只能當非識別符號時,那麼這種聯絡就稱為非識別符號聯絡

5.遞迴聯絡:一個屬性自己和自己存在聯絡,比如職工表,裡面由所有員工,員工中有領導,那麼自己與自己的領導這個聯絡就是遞迴聯絡

6.多元聯絡:一個聯絡連線多個實體(大於2個),這種聯絡就是多元聯絡

7.繼承聯絡:一個實體有多個聯絡,這些聯絡中的屬性是由那個父實體提供,而子實體中也包含自己特有的一些屬性,那麼那個實體就稱為父實體集,那些個聯絡就稱為子實體集,比如一個人員實體,職工實體,客戶實體,這裡面,人員實體就是父實體,因為人員實體中有姓名,性別,年齡,電話, 而職工和客戶實體都必須有這些屬性,所以,這兩個實體就繼承了人員實體的所有屬性。也就是說父實體裡面的屬性是公共屬性,而子實體含有自己特有的屬性

8.資料項:資訊儲存的最小單位,他可以附加在實體上作為實體的屬性,其實就是個自定義屬性,你可以定義很多屬性,都放在資料項中,然後開啟實體,點選屬性,然後新增,就會出現資料項,點選資料項,就可以從資料項中新增屬性了

9.域:一組具有相同資料型別的組合

10.建立CDM

11.當你看到繼承聯絡是灰色的時候說明是禁用的,我們要tools→model option→model setting→notation將它的值修改為“E/R+Merise”

12.建立實體,在右邊的工具欄中選擇實體,然後,在工作區合適地方建立,建立完畢後,雙擊修改屬性,,attributes(屬性)裡面的M:表示非空,P:表示主鍵,D:表示是否在實體圖形符號中顯示該屬性

13.對於0:1聯絡假如是:職工→倉庫,就表示職工可以管理一個倉庫,也可以管理倉庫裡面的商品而非管理整個倉庫。

14.在tools→display preference中可以設定個性化顯示設定,這裡面有各個模型的各個物件的顯示設定

15.對於聯絡之間關係的定義,首先要選擇兩個實體之間的是一對一?一對多?多對一?多對多?的關係,然後,在選擇,一個實體到另一個實體的關係,也就是細分這個大關係,分為兩個小關係,實體之間的互相關係。

16.關係relationship,關聯association(帶有屬性的聯絡)

18.對於model check的檢查專案與notation的設定有關,如果設定notation=E/R+merise則,實體識別符號檢查4項,若設定notation=Barker,則實體識別符號檢查5項

19.check model包括:警告和錯誤,警告有事可以忽略,而錯誤則一定需要改正,改正錯誤的方法有兩種,一種是自動方式,一種是手動方式,有些可以自動修改,有些可以手動修改,這都是要看情況的

20.CDM的物件檢查:
①.包檢查:(1)、迴圈依賴,也就是說實體之間不能迴圈依賴,比如,實體一依賴於實體二,實體二依賴於實體三實體三又依賴於實體一,這樣就構成了迴圈依賴, 如果出現這種情況,那麼就需要刪除一個依賴或聯絡,從而斷開迴圈
(2)、包中不應該出現強制迴圈
(3)、同一個包中不應該出現相同程式碼的快捷方式
②.業務規則檢查:(1)、業務規則的名稱和程式碼必須唯一
(2)、業務規則沒有被用到的應該刪除它
③.域檢查:(1)、域的名稱和程式碼必須唯一
(3)、引數設定不一致,如;預設值不在最大值和最小值之間
(4)、資料型別中的長度應該大於資料中小數點的長度
(5)、每個域都一定有自己的資料型別
(6)、無效的資料型別需要修改為有效的型別
④.資料項檢查:(1)、資料項名稱和程式碼必須唯一
(2)、資料項存在未使用的資料項,應該刪除這個資料項
(3)、多個實體使用同一個資料項
(4)、資料項與關聯的域不一致
(5)、資料項中的檢查引數不一致,如:不一致的資料型別,資料大小不在最小值與最大值之間等
(6)、資料總長應該大於資料中小數點的長度
⑤.實體檢查:(1)、實體的名稱和程式碼必須唯一
(2)、實體名稱和程式碼有一定的長度限制
(3)、實體最少包含一個屬性,實體最多包含一個序列屬性
(4)、實體最少包含一個識別符號,實體必須要有一個聯絡或者關聯
(5)、子實體的識別符號必須與父實體的識別符號相同
⑥.實體屬性、識別符號的檢查:(1)、實體屬性的名稱和程式碼必須唯一,識別符號的名稱和程式碼必須唯一,識別符號至少包含一個屬性,一個識別符號不能標識另一個識別符號
⑦.聯絡檢查:(1)、聯絡的程式碼和名稱必須唯一
(2)、聯絡中不允許自反依賴,需要刪除或者修改,兩個實體之間不應該出現雙向聯絡
⑧.關聯檢查:(1)、association的名稱和程式碼必須唯一
(2)、包含依賴連線的關聯不能有任何屬性,需要將關聯屬性移動到依賴實體中
(3)、不允許在兩個實體之間存在雙向連線,這與兩個實體的合併是等價的,需合併實體
(4)、一個關聯與多個實體連線,那麼這個連線就應該大於1
(5)、多對多關聯和實體不能有相同的名稱和程式碼

21.CDM的模式、轉換:①.由已有的CDM生成新的CDM模型:說白了就是修改一下就成了新的CDM模型,可以將當前這個CDM模型進行修改然後生成新的CDM模型,還可以再選擇一個已經存在的CDM模型,把當前模型和已經存在的CDM模型進行比較後合併生成新的CDM模型

22.由CDM模型生成LDM模型:邏輯資料模型是概念模型的延伸,比概念模型更容易理解,同時又不依賴於具體的資料庫,其中details選項卡表示:convent name into codes意思是在LDM中生成的物件的名字全部轉換為程式碼;perserve n-n relationship表示如果LDM支援多對多聯絡那麼由CDM生成LDM時還保留n-n,如果LDM不支援,那麼就將N-N聯絡轉換為一個實體

23.CDM轉為LDM時實體,識別符號,屬性,聯絡分別轉換為LDM中的實體,識別符號,屬性,聯絡。

多元聯絡:也就是一個實體與多個實體進行相連

24.CDM轉換PDM時:實體→表,實體屬性→列,主識別符號→主鍵,次識別符號→候選鍵,聯絡(relationship)→參照/引用,關聯→表,關聯連線→參照/引用
①、1-1聯絡:當沒有設定dominant role(這個選項在CDM中,只針對1-1聯絡,確定那個實體是優勢實體)時,在cdm轉換成pdm時,
一一對應關係兩端的實體中的識別符號會進入對面實體中充當外來鍵(FK),如果設定了優勢實體,那麼在轉換的時候在PDM中,只產生一個FK,即優勢實體中的主鍵進去
劣勢實體中充當外來鍵
②、1-n聯絡:那麼就是1端實體中的主鍵到N端實體中充當外來鍵,如果有依賴關係的話那麼在n端既充當外來鍵也充當主鍵
③、n-m聯絡:那麼在PDM中這個聯絡會生出一張表,表裡麵包括兩端實體的主鍵,在這張表裡面兩端實體的主鍵即是這張表的主鍵也是外來鍵
④、繼承聯絡:父實體集的所有屬性進入子實體集中
⑤、關聯:在PDM中是一張表,如何轉換呢?,要看關聯連線兩端的基數是否相同,也就是是不是1-1?1-n?-n-n?如果兩端都是的話那麼就表示基數相同,就可以在PDM中單獨生成一張表,表裡面新增兩端實體的主屬性充當主鍵和外來鍵,如果兩端基數不相同,那麼就將關聯裡面的屬性合併到另一端實體生成表中同時另外一個實體的主屬性進入該端實體生成的表中充當外來鍵
25.資料型別的轉化:tools→resource→DBMS,然後雙擊選擇的資料庫,進入設定,選擇script節點,再選擇data type→physdata type,其中physical model列的是PDM中的資料型別,而intmal列中列的是CDM中的型別

26.由CDM生成OOM(面向物件模型):OOM採用UML描述系統功能,結構特性
轉換關係:Domain(域)→ Domain(域
Entity(實體)→class(類)
實體屬性→屬性
主識別符號→主識別符號
聯絡→關聯