三、概念数据模型CDM(Conceptual Database Model )
?
最后整理一下正確的是:
腳本1:
.set_value(_First, true, new)?
.foreach_part(%Name%, "'#'")?
.if (%_First%)?
.delete(%CurrentPart%)?
.enddelete
.set_value(_First, false, update)?
.else?
%CurrentPart%?
.endif?
.next
這個例子是把Name內容的#號后邊的內容當作Code.
?
腳本2:
.set_value(_First, true, new)?
.foreach_part(%Name%, "'#'")?
.if (%_First%)?
%CurrentPart%?
.set_value(_First, false, update)?
.endif?
.next
?這個例子是把Name內容的#號前邊的內容當作Code.
?
?另外在使用這個功能時候最好把name/code自動復制功能打開。Tool——Genneral——Options Dialog——Name to Code mirroring.默認就是打開的。
?
?
?
一、概念數據模型簡介
Conceptual Data Model:概念數據模型,它以實體-聯系(Entity-RelationShip, E-R)理論為基礎,并對這一理論進行了擴充。它從用戶的觀點出發對信息進行建模,主要用于數據庫的概念級設計。
?
通常人們先將現實世界抽象為概念世界,然后再將概念世界轉為機器世界。換句話說,就是先將現實世界中的客觀對象抽象為實體(Entity)和聯系 (Relationship),它并不依賴于具體的計算機系統或某個DBMS系統,這種模型就是我們所說的CDM;然后再將CDM轉換為計算機上某個 DBMS所支持的數據模型,這樣的模型就是物理數據模型,即PDM。
CDM是一組嚴格定義的模型元素的集合,這些模型元素精確地描述了系統的靜態特性、動態特性以及完整性約束條件等,其中包括了數據結構、數據操作和完整性約束三部分。
1)數據結構表達為實體和屬性;
2)數據操作表達為實體中的記錄的插入、刪除、修改、查詢等操作;
3)完整性約束表達為數據的自身完整性約束(如數據類型、檢查、規則等)和數據間的參照完整性約束(如聯系、繼承聯系等)
?
?
二、示例
4.1選擇File-->New,彈出如圖所示對話框,選擇CDM模型(即概念數據模型)建立模型。
?
4.2 完成概念數據模型的創建。以下圖示,對當前的工作空間進行簡單介紹。
?
4.3 選擇新增的CDM模型,右擊,在彈出的菜單中選擇“Properties”屬性項,彈出如圖所示對話框。在“General”標簽里可以輸入所建模型的名稱、代碼、描述、創建者、版本以及默認的圖表等等信息。在“Notes”標簽里可以輸入相關描述及說明信息。當然再有更多的標簽,可以點擊 "More>>"按鈕,這里就不再進行詳細解釋。
五、定義實體
5.1、創建實體
1)在CDM的圖形窗口中,單擊工具選項版上的Entity工具,再單擊圖形窗口的空白處,在單擊的位置就出現一個實體符號。點擊Pointer工具或右擊鼠標,釋放Entitiy工具。如圖所示
??
2)雙擊剛創建的實體符號,打開下列圖標窗口,在此窗口“General”標簽中可以輸入實體的名稱、代碼、描述等信息。
Name:是用來在模型中標識一個實體,一般用于模型在界面中的顯示(這個可以通過更改選項設置進行改變)。在一個模型當中,實體的名字不能重復。
Code:在模型轉化時一般作為對象的物理名稱,比如把實體屬性的Code轉化為數據庫中的列名。
Generate:默認是選擇狀態,如果取消,則在轉化為其他模型時,會忽略這個實體。
?
5.2、添加實體屬性
1)在上述窗口的“Attribute”選項標簽上可以添加屬性,如下圖所示。
注意:
數據項中的“添加屬性”和“重用已有數據項”這兩項功能與模型中Data Item的Unique code 和Allow reuse選項有關。
P 列表示該屬性是否為主標識符;
D列表示該屬性是否在圖形窗口中顯示;
M列表示該屬性是否為強制的,即該列是否為空值。
?
如果一個實體屬性為強制的,那么,這個屬性在每條記錄中都必須被賦值,不能為空。
按“Crtl+U”呼出“定制列過濾器”的窗口,可以根據自己的喜好和實際需要選擇那些列出現在窗口中,那些隱藏。使用快捷鍵“Crtl+E”可以允許或者禁止當前過濾器。
?
2)在上圖所示窗口中,點擊插入屬性按鈕,彈出屬性對話框,如下圖所示。
?
5.3、定義屬性的檢查約束
1)定義屬性的標準檢查
標準檢查約束是一組確保屬性有效的表達式。在實體屬性的特性窗口,打開如圖所示的檢查選項卡。
在這個選項卡可以定義屬性的標準檢查約束,窗口中每項的參數的含義,如下
| 參數 | 說明 |
| Minimum | 屬性可接受的最小數 |
| Maximum? | 屬性可接受的最大數 |
| Default | 屬性不賦值時,系統提供的默認值 |
| Unit | 單位,如公里、噸、元 |
| Format | 屬性的數據顯示格式 |
| Lowercase | 屬性的賦值全部變為小寫字母 |
| Uppercase | 屬性的賦值全部變為大寫字母 |
| Cannot modify | 該屬性一旦賦值不能再修改 |
| List Of Values | 屬性賦值列表,除列表中的值,不能有其他的值 |
| Label | 屬性列表值的標簽 |
?
2)定義屬性的附加檢查
當Standard checks 或Rules 不能滿足檢查的要求時,可以在Additional Checks選項卡的Server子頁上,通過SQL語句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER% 幾個變量來定義Standard和Rule,如圖所示
%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%:
在Standard Check中定義的Minimum 和Maximum、List values 、uppervalues、lowervalues
%RULES%:
在Rules特性窗口Expression選項卡中定義的有效性規則表達式
?
六、標識符
標識符是實體中一個或多個屬性的集合,可用來唯一標識實體中的一個實例。要強調的是,CDM中的標識符等價于PDM中的主鍵或候選鍵。每個實體都必須至少有一個標識符。如果實體只有一個標識符,則它為實體的主標識符。如果實體有多個標識符,則其中一個被指定為主標識符,其余的標識符就是次標識符了。
?
6.1、定義主、次標識符
1)選擇某個實體雙擊彈出實體的屬性對話框。在Identifiers選項卡上可以進行實體標識符的定義。如下圖所示
2)選擇第一行“主標識符”,點擊屬性按鈕或雙擊第一行“主標識符”,彈出屬性對話框,如圖所示
?
3)選擇"Attributes"選項卡,再點擊“Add Attributes”工具,彈出如圖所示窗口,選擇某個屬性作為標識符就行了。
?
七、數據項
數據項(Data Item)是信息存儲的最小單位,它可以附加在實體上作為實體的屬性。
注意:模型中允許存在沒有附加至任何實體上的數據項。
?
7.1 新建數據項
1)使用“Model”---> Data Items 菜單,在打開的窗口中顯示已有的數據項的列表,點擊 “Add a Row”按鈕,創建一個新數據項,如圖所示
?
2)當然您可以繼續設置具體數據項的Code、DataType、Length等等信息。這里就不再詳細說明了。
?
7.2 數據項的唯一性代碼選項和重用選項
使用Tools--->ModelOptions->Model Settings。在Data Item組框中定義數據項的唯一性代碼選項(Unique Code)與重用選項(Allow Reuse)。
?
注意:
如果選擇Unique Code復選框 ,每個數據項在同一個命名空間有唯一的代碼,而選擇Allow reuse ,一個數據項可以充當多個實體的屬性。
?
7.3 在實體中添加數據項
1)雙擊一個實體符號,打開該實體的屬性窗口。
2)單擊Attributes選項卡,打開如下圖所示窗口
注意:Add aDataItem 與 Reuse aDataItem的區別在于
Add a DataItem 情況下,選擇一個已經存在的數據項,系統會自動復制所選擇的數據項。如果您設置了UniqueCode選項,那系統在復制過程中,新數據項的Code會自動生成一個唯一的號碼,否則與所選擇的數據項完全一致。
? Reuse a DataItem情況下,只引用不新增,就是引用那些已經存在的數據項,作為新實體的數據項。
?
八、 聯系
聯系(Relationship)是指實體集這間或實體集內部實例之間的連接。
? 實體之間可以通過聯系來相互關聯。與實體和實體集對應,聯系也可以分為聯系和聯系集,聯系集是實體集之間的聯系,聯系是實體之間的聯系,聯系是具有方向性的。聯系和聯系集在含義明確的情況之下均可稱為聯系。
?
按照實體類型中實例之間的數量對應關系,通常可將聯系分為4類:
一對一(ONE?TO ONE)聯系、
一對多(ONE TO MANY)聯系、
多對一(MANY TO ONE)聯系
多對多聯系(MANY TO MANY)。
?
8.1、建立聯系
在CDM工具選項板中除了公共的工具外,還包括如下圖所示的其它對象產生工具。
?
在圖形窗口中創建兩個實體后,單擊“實體間建立聯系”工具,單擊一個實體,在按下鼠標左鍵的同時把光標拖至別一個實體上并釋放鼠標左鍵,這樣就在兩個實體間創建了聯系,右鍵單擊圖形窗口,釋放Relationship工具。如下圖所示
在兩個實體間建立了聯系后,雙擊聯系線,打開聯系特性窗口,如圖所示。
?
8.2、?四種基本的聯系
即一對一(ONE?TOONE)聯系、一對多(ONE TO MANY)聯系、多對一(MANYTO ONE)聯系和多對多聯系(MANY TO MANY)。如圖所示
8.3、?其他幾類特殊聯系
?
除了4種基本的聯系之外,實體集與實體集之間還存在標定聯系(Identify Relationship)、非標定聯系(Non-Identify RelationShip)和遞歸聯系(Recursive Relationship)。
8.3.1 標定聯系和非標定聯系:
每個實體類型都有自己的標識符,如果兩個實體集之間發生聯系,其中一個實體類型的標識符進入另一個實體類型并與該實體類型中的標識符共同組成其標識符時,這種聯系則稱為標定聯系,也叫依賴聯系。反之稱為非標定聯系,也叫非依賴聯系。
?
?注意:
在非標定聯系中,一個實體集中的部分實例依賴于另一個實例集中的實例,在這種依賴聯系中,每個實體必須至少有一個標識符。而在標定聯系中,一個實體集中的全部實例完全依賴于另個實體集中的實例,在這種依賴聯系中一個實體必須至少有一個標識符,而另一個實體卻可以沒有自己的標識符。沒有標識符的實體用它所依賴的實體的標識符作為自己的標識符。
換句話來理解,在標定聯系中,一個實體(選課)依賴一個實體(學生),那么(學生)實體必須至少有一個標識符,而(選課)實體可以沒有自己的標識符,沒有標標識符的實體可以用實體(學生)的標識符作為自己的標識符。
?
8.3.2 遞歸聯系:
遞歸聯系是實體集內部實例之間的一種聯系,通常形象地稱為自反聯系。同一實體類型中不同實體集之間的聯系也稱為遞歸聯系。
?
例如:在“職工”實體集中存在很多的職工,這些職工之間必須存在一種領導與被領導的關系。又如“學生”實體信中的實體包含“班長”子實體集與“普通學生”子實體集,這兩個子實體集之間的聯系就是一種遞歸聯系。創建遞歸聯系時,只需要單擊“實體間建立聯系”工具從實體的一部分拖至該實體的別一個部分即可。如圖
聯系符號說明:
在Power Designer中,關系符號靠近實體端的一個“橫線”代表強制性約束,“空心圓圈”代表無強制約束,即這一方可以無對象關聯;“非分岔”線代表為“1” 的關系,“分岔”線代表“多”的關系。以上四個符號共可以組合出16種關系(包含反向)。其中“多對多”的關系一般通過給出一個中間實體來進行分解,所以在許多概念圖中,是看不到實際的“多對多”的關系存在的。
?
轉載于:https://www.cnblogs.com/aaa6818162/archive/2012/08/06/2625724.html
總結
以上是生活随笔為你收集整理的三、概念数据模型CDM(Conceptual Database Model )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Global.asax详解
- 下一篇: 做核磁共振多少钱啊?