實體關係圖也是設計數據庫的關鍵問題,同時開發工程師也需要理解系統設計人員發佈的ER圖。是開發不可避免並經常用到的問題。所以加以論述。而本章使用的Microsoft SQL Server2000。由於其簡單易用,是學習的好工具,所以採用。採用ERwin也是由於許多的開發商使用和簡單易用的特性的原因,另外用得好的是PowerDesigner由於稍顯複雜,故未採用。
實體關係圖(ER圖)
在下面的具體實例中,使用的是PetShop數據庫(網絡上傳播的爲微軟的.net的測試數據庫,下載地址http://www.qddown.com/down.asp?id=2475&no=1.本文使用的是Petshop(1.5.2).msi版本).ER建模工具爲Erwin4.1.4.圖1是其表結構在ERwin下的ER圖.
圖1
3.1 1對1關係
圖2:Account中的userid和Signon中的username和Profile中的userid具有1對1的關係. 表中存在約束關係.並且Account中的userid必須同時在Signon和Profile中出現纔可以插入.而Signon和Profile則沒有限制.
圖2
3.2 1對多關係
如圖3:Profile表中的favcategory與BannerData的主鍵favcategory具有外鍵約束,並且favcategory在Profile中可以重複出現. 並只能是在BannerData中出現的纔可以插入。
圖3
下圖也是一對多的關係爲什麼出現的一個是菱形的圖標?因爲可以在Profile中在favcategory項上可以爲空.而不必一定要出現在BannerData中.如果沒有菱形圖標就不允許爲空。如下圖4:
圖4
3.3 多對多關係
一門課程同時有若干學生選修,而一個學生有同時可以選多門課程,則學生與課程之間具有多對多關係。如圖5:
圖5
3.4 無任何約束的表
沒有限制的表,如圖6:
圖6