日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

关系型数据库设计之E-R模型详解

發(fā)布時間:2023/12/19 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 关系型数据库设计之E-R模型详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

屬性處理

實體集處理

聯(lián)系集處理

將基本 E-R圖轉(zhuǎn)換成關(guān)系模式


E-R模型和關(guān)系模型都是現(xiàn)實世界抽象的邏輯表示

E-R模型并不被 DBMS直接支持,更適合對現(xiàn)實世界建模
關(guān)系模型是 DBMS直接支持的數(shù)據(jù)模型

基本 E-R圖中的元素包括實體集、聯(lián)系集、屬性

橢圓框表示屬性,矩形框表示實體集,菱形框表示聯(lián)系

屬性處理

關(guān)系模型要求關(guān)系的所有屬性都是原子的。然而 E-R模型中的復合屬性和多值屬性不是原子的,E-R模型還允許出現(xiàn)派生屬性,這三種屬性需要特殊處理

(1)派生屬性

派生屬性的值可以通過計算得到,它的值不在數(shù)據(jù)庫中存儲,轉(zhuǎn)換時直接忽略

(2)復合屬性

采用"展平"技術(shù):忽略復合屬性本身,直接考慮它的成分屬性。如果某個成分屬性仍然是復合的,用相同方法處理

例如,考慮實體集職工復合屬性"家庭住址",它包含成分屬性省、城市、街道、郵政編碼。在將該實體集轉(zhuǎn)換成關(guān)系模式時,忽略復合屬性"家庭住址",而直接使用成分屬性省、城市、街道、郵政編碼作為關(guān)系模式的屬性

(3)多值屬性

需要為每個多值屬性 M創(chuàng)建一個關(guān)系

如果多值屬性 M是實體集 E的屬性,K是 E的主碼,則關(guān)系 的屬性由 M和 K組成
如果多值屬性 M是聯(lián)系集 R的屬性,并且 R涉及實體集 E1,…,En,它們的主碼分別是 K1,…,Kn,則關(guān)系 的屬性由 M和 K1,…,Kn組成

注意:如果 M還是復合屬性,則需要按復合屬性的處理方法對 M做"展平"處理。關(guān)系 的碼需要根據(jù)實際問題的語義確定。此外一旦為多值屬性創(chuàng)建了關(guān)系,后續(xù)處理就不再考慮多值屬性


例1、多值屬性轉(zhuǎn)換

如總圖,Phones 是實體集 Departments 的多值屬性,為其創(chuàng)建一個關(guān)系。由于 Phones還是復合屬性,需要對它做"展平"處理:直接使用其成分屬性 Office 和 Phone#。實體集 Departments 的碼是 Dno。由此得到多值屬性 Phones 的關(guān)系模式為:Phones(Phone#, Dno, Office)

假定每部電話都在一個院系的辦公室,因此 Phone# 可以作為 Phones 的碼

注意,這里把為多值屬性 Phones 創(chuàng)建的關(guān)系用 Phones 命名。原則上如何命名沒有規(guī)定,但是采用容易記憶的名字有助于理解,并且當多值屬性是復合屬性時,直接使用多值屬性名作為關(guān)系名是方便的

實體集處理

強 / 弱實體集

一般地,如果一個實體集的任何屬性集都不足以形成該實體集的碼,則稱該實體集為弱實體集。與此相對,存在碼的實體集稱為強實體集

弱實體集中的任何實體(簡稱弱實體)都不能獨立地存在于系統(tǒng)中,即每個弱實體必須依賴于一個強實體。例如每個家屬必須存在依賴于一個特定的職工(只有這樣他才被公司視為家屬),當一位職工離開公司,他的配偶和子女都不再被公司視為家屬

弱實體集必須與另一個稱為標識實體集或?qū)僦鲗嶓w集的強實體集相關(guān)聯(lián)才有意義
稱標識實體集擁有它所標識的弱實體集,將弱實體集與其標識實體集相關(guān)聯(lián)的的聯(lián)系稱為標識性聯(lián)系
標識性聯(lián)系是從弱實體集到標識實體集的多對一聯(lián)系,并且弱實體集對該聯(lián)系的參與是全部參與

在弱實體集中,如果它的一個屬性集可以唯一確定 存在依賴于同一個強實體的弱實體,則稱該屬性集為弱實體集的分辨符。弱實體集的標識實體集的碼和該弱實體集的分辨符共同形成弱實體集的碼,弱實體集的分辨符又稱弱實體集的部分碼

每個強實體集用一個關(guān)系表示。實體集名可以作為關(guān)系名,實體集的全部屬性構(gòu)成關(guān)系的屬性(復合屬性按照前面的方法"展平"),實體集的碼作為關(guān)系的碼

每個弱實體集用一個關(guān)系表示。弱實體集名可以作為關(guān)系名,弱實體集存在依賴的標識實體集的主碼和弱實體集的全部屬性構(gòu)成關(guān)系的屬性(復合屬性按照前面的方法"展平"),標識實體集的碼和弱實體集的分辨符組合成關(guān)系的碼。下圖給出了強實體集職工和弱實體集家屬轉(zhuǎn)換后的關(guān)系模式

聯(lián)系集處理

每個聯(lián)系集用一個關(guān)系表示,但弱實體集與其標識實體集之間的存在依賴關(guān)系忽略

聯(lián)系集名可以作為關(guān)系名,參與聯(lián)系的諸實體集的主碼和聯(lián)系集的屬性(復合屬性按照前面的方法"展平")形成關(guān)系的屬性

關(guān)系的碼根據(jù)聯(lián)系的類型按如下方法確定

聯(lián)系集轉(zhuǎn)關(guān)系時,先找到一個聯(lián)系集,然后順著連線找到關(guān)聯(lián)的多個實體集。觀察實體集間的連線:

連線的兩端都有箭頭,說明是一對一的聯(lián)系新的主碼是兩關(guān)系的候選碼中的一個(兩個候選碼都畫有下劃線,但下劃線不相連,具體哪個是主碼,自定)
連線的一端有箭頭,說明是一對多的聯(lián)系,箭頭一端是"單端",新的主碼由"多端"實體集的碼組成
連線兩端都沒箭頭,說明是多對多的聯(lián)系新的主碼由所有實體集的碼組成

將基本 E-R圖轉(zhuǎn)換成關(guān)系模式

為了將聯(lián)系轉(zhuǎn)換成關(guān)系模式,要求參與同一聯(lián)系的任何兩個不同的實體集的主碼都不包含相同的屬性(這一點容易做到,屬性是局部于實體集的,必要時可以對某些屬性重命名)

假定復合屬性已經(jīng)"展平",多值屬性創(chuàng)建了對應的關(guān)系。將 E-R模型轉(zhuǎn)換成關(guān)系模式的方法如下

每個強實體集用一個關(guān)系表示
每個弱實體集用一個關(guān)系表示
將聯(lián)系集用相應的方法轉(zhuǎn)換成關(guān)系表示
如果兩個關(guān)系具有相同的碼,可以合并它們(這一步并非必須,但可以減少碼重復存放空間開銷,使查詢可以更有效的求值)


例2、將總圖轉(zhuǎn)換成關(guān)系模式

總圖的多值復合屬性 Phones 得到關(guān)系模式:Phones(Phone#, Dno, Office)

總圖沒有弱實體集,由強實體集得到如下關(guān)系模式:

Departments(Dno, Dname)

Teachers(Tno, Tname, Sex, Birthday, Title)

Students(Sno, Sname, Sex, Birthday, Enrollyear, Speciality)

Courses(Cno, Cname, Perid, Credit)

其中每個關(guān)系模式都源于同名實體集,碼用下劃線標記。多值屬性 Phones 不包含在關(guān)系模式 Departments 中,已經(jīng)將它轉(zhuǎn)換成關(guān)系模式

由聯(lián)系集得到如下關(guān)系模式:

Manades(Dno, Tno)

Works_in(Tno, Dno)

Studies_in(Sno, Dno)

Teaches(Tno, Cno)

SC(Sno, Cno, Grade)

Evalues(Sno, Tno, Cno, Escore)

其中每個關(guān)系模式都源于同名聯(lián)系集,碼用下劃線標記。Manages 和 Works_in 包含相同的屬性,但它們含義不同,前者 Tno 表示作為系主任的教師對特定的"系"(用 Tno 表示)的管理,后者表示每位教師在一個特定的系工作

最后一步,合并具有相同碼的關(guān)系模式(合并時可根據(jù)實際情況,也可根據(jù)題設(shè)要求)

Manages 可以和 Departments 合并,也可以與 Teachers 合并,前者有利于回答 "某系的主任是誰" 之類的問題,后者有利于回答 "某教師的系主任是誰" 之類的問題。前一類問題更常出現(xiàn),采用前一種方法,得到關(guān)系模式 Departments(Dno, Dname, Dheadno)(把表示系主任的職工號的屬性名 Tno 改為 Dheadno,使得屬性的語義更清楚)

還有兩對關(guān)系具有相同的碼,Teachers Works_in,Students Studies_in,都可以直接合并。最終得到關(guān)系模式:

總結(jié)

以上是生活随笔為你收集整理的关系型数据库设计之E-R模型详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。