《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 實體間引用關系的描述方法與維護策略分析

實體間引用關系的描述方法與維護策略分析

2009-08-20
作者:王杰文 張大方

??? 摘? 要: 分析了IDEF1X的實體引用關系描述方法和引用關系類型,剖析了實體間的依賴性對引用關系的影響,討論了引用關系的維護策略及在ERwin中的實現方法。

  關鍵詞: IDEF1X方法? 實體關系? 實體依賴

?

  IDEF(Integrated Computer-Aided Manufacturing DEFinition)方法是美國空軍ICAM項目建立的。最初開發了功能建模(IDEF0)、信息建模(IDEF1)、動態建模(IDEF2)三種方法。隨著信息系統的相繼開發,又開發出了一系列IDEF族方法。其中用于數據建模的方法IDEF1X(IDEF1 extended)是IDEF1的擴展版本,它是IDEF1方法和LDDT(邏輯數據庫設計技術)相結合的產物。數據建模的關鍵是對數據之間關系的表達。IDEF1X方法為數據間關系的描述提供了較豐富的表達能力。

1?引用關系的描述方法

  E-R模型中的實體可以分為獨立實體和依賴實體二類。獨立實體(Independent Entity)是指不需要模型中任何其他實體標識的實體,其鍵屬性完全由自身給定。依賴實體(Dependent Entity)是指依賴于模型中其他實體的實體,其屬性中包括了其他實體的主鍵屬性(外部鍵)。在依賴實體(子實體)和被依賴實體(父實體,可能是獨立實體,也可能是依賴實體)之間將存在引用關系(也稱引用完整性)。引用關系直接表達的是父實體與子實體之間的一對多關系,即子實體的某(些)屬性取值來源于其父實體的鍵值。

  通常,二個實體的引用關系可表示為:

  

  其中:s是描述被依賴實體的關系(父關系),r是描述依賴實體的關系(子關系),X是r的屬性子集,K是s的主鍵屬性集,且X和K滿足并相容規則(在ERwin所構造的模型中X是K的遷移)。

  根據父實體中的鍵(K)向子實體遷移的位置不同,可以對一對多關系進一步分類。

  (1)標識關系(Identifying Relationship)。父實體的鍵遷移到子實體的鍵區,成為子實體標識的一部分,即子實體的標識依賴于父實體。標識關系運用其業務規則,通過父實體的標識符來標識子實體。引入參與度的概念,父實體的參與度為(0,1),子實體的參與度為(1,n)。即在標識關系中,存在著父實體部分參與、子實體完全參與的一對多聯系(zero-or-one-to-one-or-more)。

  (2)非標識關系(Non-Identifying Relationship)。父實體的鍵遷移到子實體的非鍵區(數據區),即子實體的標識不依賴于父實體。對于非標識關系還應該區分二種情況:①非標識強制關系(Non-Identifying Mandatory Relationship)。即從子實體看,非標識關系是強制(mandatory)的,盡管子實體不由父實體所標識,但子實體的存在仍然依賴于父實體。引入參與度的概念,父實體的參與度為(0,1),子實體的參與度為(1,n)。即在非標識強制關系中,也存在父實體部分參與、子實體完全參與的一對多聯系;②非標識非強制關系(Non-Identifying Non-Mandatory Relationship)。即非標識關系是可選的,子實體既不由父實體標識,也不依賴于父實體而存在。引入參與度的概念,父實體的參與度為(0,1),子實體的參與度為(0,n),即在非標識非強制關系中,存在著父實體部分參與、子實體也部分參與的一對多聯系。

  通常,一對多關系引起父子實體間的依賴。不論父實體的鍵遷移到子實體的鍵區還是數據區,若子實體的存在依賴于父實體的存在,則稱這種父子關系存在依賴(Existence-dependency)。所以標識關系和非標識強制關系總是導致存在依賴。存在依賴表達了二種關系,即伴隨關系和限制關系。在伴隨關系中,子實體將伴隨著父實體的刪除而被自動刪除,例如:學生被開除,其選課記錄也應該一同刪除。在限制關系中,子實體的存在將限制父實體的刪除,例如:有學生選修的課程不得刪除。若父實體的鍵遷移到子實體的鍵區,則子實體由父實體所標識,這種父子關系稱標識依賴(Identification-Dependency)。所以標識關系總是導致標識依賴。值得注意的是,非標識關系從不引起標識依賴(因為遷移鍵只到數據區)。

  一對多關系是關系數據模型可以直接表達的關系,其他的關系在轉化為數據模型時可以用一對多關系來表示。例如:子類(Subtype)和超類(Supertype)的關系實際上就是一個父子關系(一對多),只是為了進一步描述一個實體集中某些實體的不同性質,從該實體集中取出一部分實體構成一個(或多個)新的實體集,即原來實體集的子類,而原實體集是新實體集的超類。顯而易見,子類和超類之間體現的是標識關系(子類由超類標識)。一個實體可以是某一實體的子類,同時,也可以是另一實體的超類。

  從實用上講多對多關系(也為不確定關系)沒有意義。如圖1所示,在學生選課系統中,實體STUDENT(學生)和COURSE(課程)之間是多對多關系。但是,在引入一個關聯實體STUDENT_COURSE(學生選課)以后,就可以將這個多對多關系轉化為二個一對多關系,即STUDENT與STUDENT_COURSE、COURSE與STUDENT_COURSE二個一對多關系,并且這種關系是標識關系。因為STUDENT和COURSE的鍵均遷移到關聯實體STUDENT_COURSE的鍵區,共同構成了關聯實體STUDENT_COURSE的鍵。此時的關系就具有明確意義了。

?

  綜上所述,實體之間的關系可以歸納為標識關系和非標識關系二類。標識關系和非標關系均導致父子實體之間的引用關系。標識關系與非標識強制關系遵循的引用規則為“zero-or-one-to-one-or-more”(0或1對1或多);非標識非強制關系遵循的引用規則為“zero-or-one-to-zero-or-one-or-more”(0或1對0或1或多)。

2? 引用關系的維護策略

  對數據庫進行更新可能破壞實體之間的引用關系(引用完整性)。因此,在對具有引用關系的實體關系,例如r(子關系)和s(父關系)進行更新時,應該設法維護引用完整性。下面是一般規則。

  (1)如果在r中插入一個實例t,則系統必須保證在s中有一個實例u使u[K]=t[X]。也就是說必須保證t[X]∈ΠK(s)。(2)如果從s中刪除一個實例u,則在r中的相應實例集合σX=u[K](r),如果不是空集,則系統或者拒絕執行該命令,或者自動刪除r中的相應實例(即實施級聯刪除)。(3)對更新操作應該考慮二種情況:對子關系r的更新和對父關系s的更新。

  如果更新r中的實例t,并且更新涉及到X的值,則應該做類似于在r中插入實例的處理。設t′表示實例t的新值,則系統應該保證t′[X]∈ΠK(s)。

  如果更新s中的實例u,并且更新涉及到K的值,則應該做類似于在s中刪除實例的處理。對于子實體關系r中相應實例集合σX=u[K](r),如果不是空集,則系統或者拒絕執行該更新操作,或者進行按上述級聯刪除方式作級聯更新,以確保r中的實例引用s中K的新值。

  具體地說,對標識關系和非標識關系應分別采取不同的處理策略。

  當刪除實體中的實例時,應遵循如下刪除規則:若父子實體之間存在依賴(即標識關系和非標識強制關系),當父子實體之間為伴隨關系時,刪除父實體的實例,子實體的相應實例則實施級聯(cascade)刪除(父去子消);當父子實體之間為限制關系時,子實體的實例將限制(restrict)對父實體相應實例的刪除(子在父存)。標識依賴旨在表達父實體對子實體的鑒別關系,不關心子實體的存亡,所以在數據更新時可以不考慮。為維護既無存在依賴又無標識依賴的非標識非強制關系中的引用關系,在刪除父實體實例時,可以將子實體中的相應遷移鍵設置為空值(NULL)。

  例如:圖1中STUDENT與STUDENT_COURSE是標識關系,STUDENT的鍵(S_NO)是STUDENT_COURSE主鍵的一部分。根據基數規則,STUDENT_COURSE的每一個實例都有一個STUDENT實例與之對應,標識關系明確地記載了STUDENT_COURSE存在依賴于STUDENT,且這種存在依賴為伴隨關系。所以,若刪除STUDENT的實例,則應刪除STUDENT_COURSE中與STUDENT已刪除實例對應的全部實例。而COURSE與STUDENT_COURSE也是標識關系,二者之間為存在依賴,但這種存在依賴為限制關系。所以,若要刪除COURSE的實例,只要STUDENT_COURSE中存在著對應于COURSE的實例,就禁止刪除COURSE。

  如上所述,刪除規則決定了實體中的一個實例(即表中的一行數據)被刪除時數據庫的反映;插入和替換規則決定了當數據行被插入或改變時數據庫的反映。

  當在實體中插入與替換實例時,應遵循如下規則:

  對于插入,若父子實體之間有存在依賴,則只有在子實體引用的外鍵與父實體中已存在的鍵值匹配時,子實體實例才能被插入;若父子實體之間為非標識非強制關系,則可以先令外鍵為空值將子實體的實例插入。在效果上,替換與插入應使用同樣的規則。

  例如,在學生選課系統中,STUDENT_COURSE與STUDENT、COURSE之間都是標識關系,構成了存在依賴。因此,不能在STUDENT_COURSE中插入STUDENT中沒有的學生和COURSE中不存在的課程。而在圖2所示的機票預訂系統中,PASSENGER和SEAT-RESERVATION之間是非標識非強制關系,所以,沒有被旅客預訂的機票也可以插入SEAT-RESERVATION中。此時,外鍵屬性passenger-name取空值,這是符合現實的。

3?ERwin對引用關系的實現

  ERwin的正向工程可以自動為每個父實體建立刪除和更改2個觸發器,為每個子實體建立插入和更改2個觸發器。若一個實體既是父實體又是子實體,則建立插入、刪除和更改3個觸發器。各類觸發器的功能因引用關系類型不同而有所差異。

  圖2所示為一個航班座位預訂系統的ERwin邏輯視圖。在該系統中,PASSENGER和SEAT-RESERVATION之間是非標識非強制關系,FLIGHT和SEAT-RESERVATION之間是標識關系。它們之間的引用關系上面已經作了分析。當ERwin進行正向工程時,這些引用關系將由一系列的觸發器來實現和維護。例如,為了維護PASSENGERT和SEAT-RESERVATION之間的非標識非強制關系,在PASSENGER上建立了刪除觸發器tD_PASSENGER(涉及屬性passenger-name的)和更改觸發器tU_PASSENGER。當在PASSENGER中進行刪除和更改時,它們都將SEAT-RESERVATION中相應實例的屬性passenger-name置空值。

4? 結束語

  數據建模是數據庫設計的關鍵,IDEF1X數據建模奠定了數據庫設計的基礎。目前,IDEF1X方法在國內外已廣泛應用于政府、工業和商業領域中,支持廣泛的企業應用。在建立企業信息管理系統之前,采用IDEF1X方法為信息系統建立合適的信息模型,對實體間的引用關系做出充分、準確、清晰的描述是十分必要的,這也是企業信息管理系統開發成敗的關鍵。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 午夜性福利视频 | 欧美五月 | 男女男精品视频网站在线观看 | 成人综合在线视频免费观看 | 日韩一区在线播放 | 97青青草原国产免费观看 | jk制服啪啪网站 | 免费观看黄色的网站 | 精品欧美一区二区三区在线观看 | 日本视频www色变态 日本爽p大片免费观看 | 国产免费不卡 | 99精品久久久久久久免费看蜜月 | 欧美日韩视频在线播放 | 亚洲美女又黄又爽在线观看 | 国产精品v欧美精品v日韩精品 | 韩国成人理伦片免费播放 | 成人小视频网 | 日韩中文在线视频 | 一级片视频在线观看 | 嫩草影院永久在线一二三四 | 美女一级ba大片免色无遮住 | 一本大道香蕉久97在线视频 | 福利体验区120秒免费观看 | 中文字幕日本一区波多野不卡 | 国产精品久久久 | 午夜在线观看免费视频 | 欧美成人全部费免网站 | 成人福利免费视频 | 欧美另类性视频在线看 | 久久中文字幕制服丝袜美腿 | 影音先锋2021色资源网站 | 国产一区二卡三区四区 | 91成人免费观看网站 | 久热这里只有精品视频6 | 在线毛片免费观看 | 波多野结衣与老人公gvg在线 | 玖玖玖精品视频免费播放 | 国产成人在线看 | 成人午夜视频网站 | 波多野结衣一二区 | 天天草天天草 |