Feng.Li's Java See

          抓緊時間,大步向前。
          隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
          數據加載中……

          數據庫設計

                   對于現在主要的系統來說,一般而言都是管理數據型系統,因此一個系統數據庫設計的好壞直接關系到了系統,因此特在此對數據庫的設計做一個簡單的回顧,希望各位新手,老手們多多指教。好了,廢話就不多說了,直接切入主題吧:)

                  我們知道,數據庫的數據模式包含2種模式
          1:概念模式(ER圖表示)
          2:邏輯模式(關系表)
          因此,在做好了系統的需求以后,就應該開始著手數據庫的設計了。

          首先,根據根據需求文檔尋找名詞,評定系統中的邏輯實體,提取出數據庫設計中的實體。     
          其次,根據所提取的邏輯實體畫出數據庫設計中的ER圖。
          再次,把ER圖轉換成你的DataBaseS????.

          第一點我就不說了,偶目前的水平還未達到收集需求的層次。:)

             概念模型(領域建模)E-R圖

          1:實體:實體是現實世界中可區別于其他對象的“事件”或者“物體”。例如:企業中的每個人都是一個實體。每個實體還具有一組性質,其中一部分的性質可以唯一標識實體。
                     實體可是實實在在存在的,或者是抽象的概念。
          2,屬性:實體的性質。其中特殊的屬性有:復合屬性和多值屬性。
                   復合屬性:可劃分的屬性。比如:人的地址這一屬性,還可劃分成街道,門牌號等屬性。
                   多值屬性:多個值的屬性。比如: 人的親戚,可以有好幾個。
                   派生屬性:通過別的屬性推倒出來的。比如:根據當前的日期和人的出生日期,可以推算他的年齡
          3:聯系:指的是多個實體之間的相互關聯。其中,聯系也可以具有屬性。


           

          實體Or屬性的選擇:
          1: 屬性不能再具有需要描述的性質。
          1: 屬性不能具有與其他實體的聯系。 
          比如:在部門表中,人是作為屬性還是字段。如果將人作為屬性字段,則如果還需要人的地址和電話屬性的話,將其作為屬性就是不好的,應該另作為一個實體來存儲。

          實體Or聯系的選擇:
          1:是否反映了真實的業務邏輯。
          2:是否會增加系統的空間開銷()
          3:是否容易會導致系統數據的不一致性。
          比如,顧客----(貸款)----銀行  如果此時一個顧客貸多筆款,多個顧客貸一筆款,則作為聯系的貸款會出現重復或者容易導致數據的不一致性。
                      顧客----(借)---貸款---(屬于)銀行 其中,()里面的表示聯系。



          將ER圖轉換成表:

          1:用表表示強實體集,每個屬性分別作為一個字段。
          2:用表表示弱實體集,注意,弱實體集的屬性還要多一個字段:與它關聯的那個強實體集的主碼。
          3:用表表示聯系集,把參與聯系的每個實體集的主碼作為聯系集表的主碼。注意實體之間如果是多對1的關系的話,且A,B2個實體之間存在依賴,A依賴于B ,則可將A與AB之間的聯系集合成一張表。
             因為這樣不會導致空值出現的狀況。
          4:復合屬性,有幾個屬性,表追加幾列。
          5:多值屬性:創建新表,并把多值屬性的那個實體的主碼表作為此新表的追加列。
          6:一般化:  為高層實體創建表,并為每個低層實體創建一個表?;蛘咧苯用馊ジ邔訉嶓w表。但是,如果一個實體不屬于低層的任何一個,則第二種表示無法表達。

                 
                 

          posted on 2007-08-24 19:18 小鋒 閱讀(679) 評論(0)  編輯  收藏 所屬分類: Oracle


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 老河口市| 昌都县| 桂东县| 五莲县| 金溪县| 前郭尔| 修水县| 望奎县| 当阳市| 通江县| 乐昌市| 浦江县| 克什克腾旗| 米林县| 岳阳县| 江城| 黄梅县| 霍林郭勒市| 五家渠市| 平塘县| 侯马市| 县级市| 福贡县| 吉水县| 琼结县| 孝义市| 荔波县| 河北省| 贵州省| 和政县| 辽中县| 桦甸市| 梁山县| 宾阳县| 渝北区| 南平市| 凌源市| 班戈县| 吉首市| 茶陵县| 大洼县|