美章網(wǎng) 資料文庫 數(shù)據(jù)庫設(shè)計中ER模型設(shè)計問題范文

數(shù)據(jù)庫設(shè)計中ER模型設(shè)計問題范文

本站小編為你精心準備了數(shù)據(jù)庫設(shè)計中ER模型設(shè)計問題參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

數(shù)據(jù)庫設(shè)計中ER模型設(shè)計問題

摘要:數(shù)據(jù)庫設(shè)計中的概念結(jié)構(gòu)設(shè)計階段是一個復(fù)雜過程,學(xué)生在設(shè)計時往往不能很快的上手,或者設(shè)計出來的er圖不合理或錯誤。本文針對學(xué)生在設(shè)計時易出現(xiàn)的問題和難點進行分析,通過一個設(shè)計好的ER圖剖析其中存在的問題和錯誤。進而進一步論述了屬性和實體的判斷方法,屬性間聯(lián)系的判斷和元數(shù)的確定方法,以及聚集的使用。通過論述為學(xué)生在數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計時提供可操作性強的方法和指導(dǎo)。

關(guān)鍵詞:概念結(jié)構(gòu)設(shè)計;ER模型;聚集

引言

在數(shù)據(jù)庫原理課程教學(xué)中,長期以來存在一個難點,即數(shù)據(jù)庫設(shè)計。數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造設(shè)計優(yōu)化的數(shù)據(jù)庫邏輯模型和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)及其應(yīng)用系統(tǒng),使之能夠有效的存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)操作要求。在學(xué)完數(shù)據(jù)庫設(shè)計理論和數(shù)據(jù)操作后,學(xué)生對怎樣根據(jù)一個具體的應(yīng)用需求去設(shè)計一個優(yōu)化的數(shù)據(jù)庫仍然比較模糊。糾其原因主要有兩個方面:一、在數(shù)據(jù)庫的概念設(shè)計過程中,將需求轉(zhuǎn)化為數(shù)據(jù)庫的概念模式是一個復(fù)雜困難的過程。概念模式提供了一個應(yīng)用環(huán)境中數(shù)據(jù)庫用戶的數(shù)據(jù)需求,設(shè)計者需反復(fù)檢查以確保所有數(shù)據(jù)需求在此模式中都被滿足,并且不相互沖突、沒有冗余。這個過程是比較困難,它需要通過對需求進行綜合、歸納和抽象。學(xué)生的這種綜合、歸納和抽象能力較弱,不能很好的完成。二、概念模式定義了數(shù)據(jù)庫中的實體、實體的屬性、實體之間的聯(lián)系以及實體上的限制。通常通過實體—聯(lián)系圖(ER圖)來描述概念模式。現(xiàn)有很多相關(guān)教材說法不一、編寫內(nèi)容過于簡陋,甚至錯誤,沒有實操性,給學(xué)生在學(xué)習(xí)和思考上帶來一定的誤導(dǎo)。本文就概念模式設(shè)計時遇到的一些基本問題和解決方法進行探討。

1從一個錯誤的ER圖說起

ER圖是描述概念模式的有力工具,它采用三個基本概念:實體集、聯(lián)系集和屬性。這里給出某一本科學(xué)生針對某企業(yè)考勤管理設(shè)計的ER圖,如圖1。該ER圖中存在的問題在很多同學(xué)的設(shè)計中都存在。

1.1數(shù)據(jù)需求和行為需求分不清

數(shù)據(jù)庫設(shè)計分為數(shù)據(jù)設(shè)計和行為設(shè)計兩個部分,在圖1中,設(shè)計者沒有分清楚數(shù)據(jù)設(shè)計和行為設(shè)計中各自的活動內(nèi)容。ER圖表達的是應(yīng)用環(huán)境中的數(shù)據(jù)需求,而不用于行為需求的表達。數(shù)據(jù)庫概念模式的設(shè)計主要關(guān)注的是如何描述數(shù)據(jù)及其相互關(guān)系。在圖1中“更新”,“查詢”這些動詞表達的是數(shù)據(jù)庫用戶的行為,而非實體集之間的相互關(guān)系,用戶行為是在編寫應(yīng)用程序時考慮的內(nèi)容。員工和考勤這兩個實體集之間的關(guān)系應(yīng)該是員工擁有考勤記錄,“擁有”是員工實體集和考勤實體集之間的關(guān)系。

1.2實體確定有誤

數(shù)據(jù)庫概念模式設(shè)計的目標是產(chǎn)生反映應(yīng)用環(huán)境信息需求的ER圖,在圖1中出現(xiàn)了“管理員”實體集,如果設(shè)計者是從系統(tǒng)安全的角度考慮的話,管理員屬于數(shù)據(jù)庫的用戶,不是應(yīng)用環(huán)境的信息,不應(yīng)該出現(xiàn)在ER圖中;如果設(shè)計者是為了實現(xiàn)管理者實體集和考勤實體集之間的關(guān)系,因為管理者實體集是員工實體集中的部分實體,那么這時可以將管理者實體集和員工實體集合并,而不用單獨的把管理員實體集單獨的拿出來,這樣可以避免數(shù)據(jù)冗余。

1.3映射基數(shù)沒有標注

映射基數(shù)是指明一個實體通過一個聯(lián)系集能同時與多少個實體相關(guān)聯(lián)。它依賴于該聯(lián)系集所建模的對象在現(xiàn)實世界中的實際情況。如果聯(lián)系集上的映射基數(shù)沒有標注,那么概念模式在語義表達上信息不完整,對后續(xù)邏輯模型的設(shè)計將產(chǎn)生致命的影響。

1.4屬性歸屬的判斷

屬性是實體集中每個成員所擁有的描述性性質(zhì)。聯(lián)系也可以有描述性屬性。當一個屬性是由參與的實體集聯(lián)合確定而不是由單獨的某個實體集確定時,該屬性就必須放到聯(lián)系集中。日期屬性是用于記錄考勤中某一類型發(fā)生時的時間,它是管理聯(lián)系的描述性屬性,表示管理者管理考勤信息的日期,由管理者和考勤同時決定。

1.5實體屬性設(shè)計不合理

按照數(shù)據(jù)庫設(shè)計理論中的“一事一地”的原則,ER模型中,實體不應(yīng)該包含其它實體的屬性,實體之間的關(guān)系通過“聯(lián)系”來表達。考勤實體中包含了員工實體的主碼屬性,這是一個常見的錯誤,因為員工實體和考勤實體之間可以通過“擁有”聯(lián)系表示兩者之間的關(guān)系,而不是將這種關(guān)系隱含在屬性中。與此相關(guān)的另一個常見的錯誤是將相關(guān)實體集的主碼屬性作為聯(lián)系集的屬性,因為在聯(lián)系集的表示中已經(jīng)隱含了這些主碼屬性。雖然在后續(xù)創(chuàng)建關(guān)系模式時這些屬性會出現(xiàn)在聯(lián)系集創(chuàng)建出的表中,但是,它們不應(yīng)該出現(xiàn)在概念模式的聯(lián)系集中。加班、出差、請假、遲到、曠到是考勤記錄的幾種類型,其中每種類型可以有多值,并且多種類型不可能同時存在,這樣就會使數(shù)據(jù)庫產(chǎn)生大量的空值,所以將其作為考勤的屬性是不合理的。需要將其進行抽象,找出其共有的特征,因為加班、出差、請假、遲到、曠到這些屬于考勤的類型,所以將加班、出差、請假、遲到、曠到這些抽象為考勤的“類型”屬性,而加班、出差、請假、遲到、曠到這些作為“類型”屬性的屬性值。又因為加班、出差、請假、遲到、曠到等都涉及到時間段和具體的原因,所以在考勤實體上增加一個“內(nèi)容”屬性。

1.6一個可能的正確ER圖

在概念模型設(shè)計時遵從“一事一地”的原則,即概念單一化。在ER圖中創(chuàng)建的實體應(yīng)該清晰、純粹,盡可能與其他實體在意義上實現(xiàn)分離。完善的概念模式受到系統(tǒng)功能需求的影響,設(shè)計最終的概念模式應(yīng)能滿足系統(tǒng)的功能需求。經(jīng)綜合、歸納、抽象,按一定的功能需求將圖1的ER圖改為圖2的ER圖,這樣就清晰的表達了現(xiàn)實中員工實體集、考勤實體集和員工考勤的聯(lián)系集。

2ER圖設(shè)計需要考慮的幾個問題

ER圖是一種語義模型,力圖表達數(shù)據(jù)的意義。在設(shè)計時除了注意上述的知識點外,還需要注意以下幾個方面的內(nèi)容。

2.1用實體集還是屬性

實體是現(xiàn)實世界中可以區(qū)別于其他對象的事物,實體通過一組屬性來表示,屬性是實體集中每個成員所擁有的描述性性質(zhì)。實體和屬性都通過名詞來描述。什么作為屬性,什么作為實體集,對這兩個問題并不能簡單的回答。名詞到底是實體還是屬性可以通過名詞之間的限定來判斷。如“職工”和“族別”都是名詞,如果說成“職工的族別”在需求描述中是成立的,并且這時不存在有任何的名詞被“族別”限定,那么就把“職工”作為實體,把“族別”作為“職工”的屬性。又如“職工”和“考勤”都是名詞,說成員工的考勤在需求描述中是成立的,但考勤中的請假,出差等值還有對應(yīng)的具體內(nèi)容,如請假的具體時間段、請假的原因等。這時考勤屬性值不具有原子性,所以把考勤提升為實體對待。其中的請假、出差、加班等作為考勤的種類屬性值,具體的時間段、原因等作為考勤的內(nèi)容屬性值。對上述員工考勤ER圖中,如果將考勤處理成員工實體的屬性,暗示對每個員工正好有一個考勤信息與之相關(guān)聯(lián)。而將考勤作為一個實體,就允許每個員工可以有幾個考勤信息與之相關(guān)聯(lián)。這兩者的主要差別是,將考勤作為一個實體來建模可以保存關(guān)于考勤的額外信息,如考勤的類型(請假、出差、加班等),考勤的具體內(nèi)容,因此把考勤視為一個實體比把它視為一個屬性的方式更具通用性;而且當這種通用性很重要的時候,這種定義方式就更為合適了。

2.2二元聯(lián)系集與N元聯(lián)系集

聯(lián)系是指多個實體間的相互關(guān)聯(lián),一般通過動詞來描述。哪些實體之間有聯(lián)系,看作為實體的名詞之間是否有動詞存在,并且這個動詞要體現(xiàn)在數(shù)據(jù)需求中。數(shù)據(jù)庫中的聯(lián)系通常都是二元的。如“職工”實體和“考勤”實體之間能說成“職工擁有考勤記錄”在數(shù)據(jù)需求描述中是存在的,并且是為管理員工考勤信息功能提供數(shù)據(jù)支持的。那么認為“職工”和“考勤”之間的聯(lián)系是存在的。又如“管理員”實體和“職工”實體,可以說成“管理員管理職工”,如果在數(shù)據(jù)需求描述中不存在這樣的描述,那么“管理”這個動詞就不作為聯(lián)系,即不考慮管理員和職工之間管理的聯(lián)系。對于非二元的聯(lián)系可以用多個二元聯(lián)系來表示,但如果這樣做會額外的增加設(shè)計的復(fù)雜程度,以及對總得存儲空間的需求。其實n元聯(lián)系集可以更清晰地表達n個實體集之間的聯(lián)系。如三元聯(lián)系:“供應(yīng)商給超市供應(yīng)商品”,這個“供應(yīng)”是三個實體集之間的聯(lián)系,如果將其設(shè)計為供應(yīng)商和超市之間的聯(lián)系、超市和商品之間的聯(lián)系、供應(yīng)商和商品之間的聯(lián)系這三個二元聯(lián)系。假設(shè)供應(yīng)商S1、S2給超市C1、C2供應(yīng)商品P1、P2,從三個二元聯(lián)中可以記錄S1給超市C1、C2供貨,S1供應(yīng)P1、P2商品,但是無法記錄S1給C1超市只供應(yīng)商品P1不供應(yīng)商品P2,S1給C2超市只供應(yīng)商品P2不供應(yīng)商品P1。而三元聯(lián)系就表達的非常清晰。

2.3聚集

ER模型的一個局限性在于它不能表達聯(lián)系間的聯(lián)系。但有時這在應(yīng)用設(shè)計時是必要的。這里用圖書借閱這個實例來做以說明。圖書和讀者之間有借閱的聯(lián)系,現(xiàn)在考慮讀者借閱圖書被罰款的請況,當圖書歸還時有超期、損壞、丟失等事情發(fā)生時對讀者進行罰款。一種方法是將罰款作為借閱聯(lián)系的一個多值屬性,因為一些借閱是沒有罰款的,這樣會使得數(shù)據(jù)庫中罰款項存在大量的空值,從邏輯結(jié)構(gòu)和執(zhí)行開銷上都是不合理的。比如要查詢某一罰款項是哪個讀者借閱圖書的罰款就比較困難。另一種方法將罰款作為一個實體,為了表示罰款聯(lián)系,一種選擇是創(chuàng)建讀者、圖書、罰款之間的一個三元聯(lián)系,得到了圖3的ER圖(為了簡單省略了實體集的屬性)。但是,按照這種方法產(chǎn)生的ER圖存在冗余信息,因為在罰款聯(lián)系集中的每個讀者信息和圖書信息在借閱聯(lián)系中也有。對上述情況建模的最好辦法就是使用聚集。聚集是一種抽象,通過這種抽象,聯(lián)系被當作高層實體來看待。這樣,在這個例子中,將借閱聯(lián)系看成一個高層實體集,并且可以像對待任何別的實體集那樣對待這個高層實體集。這樣,就可以在罰款和借閱之間創(chuàng)建一個二元聯(lián)系來表示罰款是那一次借閱產(chǎn)生的。圖4所示為用聚集的概念表示上述情況的ER圖。

3總結(jié)

概念模式和具體應(yīng)用環(huán)境的需求分不開,相同的應(yīng)用環(huán)境下不同的需求可能對應(yīng)不同的概念模式,所以概念模式一定是依據(jù)需求得到的,不能脫離需求、更改需求。概念模式設(shè)計是數(shù)據(jù)庫設(shè)計過程中最易出錯的部分,它涉及到人腦的抽象思維過程,需要大量的理論知識和實踐經(jīng)驗。在設(shè)計時考慮的內(nèi)容繁多復(fù)雜。對于數(shù)據(jù)庫概念模型的設(shè)計,很多的教材和參考資料都有設(shè)計步驟,粗看之下簡約明了,但可操作性甚小。學(xué)生掌握了這些流程后仍不能正確快速的設(shè)計出概念模式。筆者結(jié)合多年的教學(xué)經(jīng)驗,在前人設(shè)計理論的基礎(chǔ)上進行了總結(jié)分析,通過一個典型的錯誤實例,分析了學(xué)生在設(shè)計概念模型時容易出現(xiàn)錯誤的地方,通過分析使學(xué)生清楚的理解數(shù)據(jù)庫概念模式設(shè)計時應(yīng)注意的知識點。為學(xué)生設(shè)計概念模式提供了有力的理論依據(jù)和設(shè)計方法。

參考文獻:

[2]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第5版)[M].北京:高等教育出版社,2014:15-16.

[3]趙良輝.數(shù)據(jù)庫課程中ER模型設(shè)計的反例教學(xué)[J].教育技術(shù),2012,8:8-10.

[4]徐廣定,潘錦平.實體聯(lián)系模型-用作數(shù)據(jù)的統(tǒng)一的觀點[J]計算機工程與應(yīng)用,1983,12:22-37.

作者:牛榮 陳紀龍 杜義君 單位:塔里木大學(xué)信息工程學(xué)院

主站蜘蛛池模板: 777爽死你无码免费看一二区| 综合色在线观看| 里番acg里番本子全彩| 积积对积积的桶120分钟| 精品人妻无码专区在中文字幕| 欧美色图综合网| 欧美在线高清视频| 曰批免费视频播放30分钟直播| 暴力调教一区二区三区| 无码人妻精品一二三区免费| 污污视频网站免费观看| 永世沉沦v文bysnow全文阅读| 91成年人免费视频| 中文乱码精品一区二区三区| 亚洲国产婷婷六月丁香| 旧里番洗濯屋1一2集无删减 | 人碰人碰人成人免费视频| 佐佐木明希哔哩哔哩| 亚洲欧美日韩中文字幕一区二区三区 | 欧美亚洲黄色片| 成年女人毛片免费视频| 日韩在线视频第一页| 女仆被扒内裤打屁股动态图| 在线观看中文字幕码| 国产精品永久免费视频| 国产真实乱在线更新| 免费真实播放国产乱子伦| 久久男人资源站| 三上悠亚亚洲一区高清| 国产性夜夜春夜夜爽三级| 美女扒开腿让男人桶免费看| 男人女人做30分爽爽视频| 日本毛茸茸的丰满熟妇| 国产精品福利网站| 免费黄色一级片| 国产精品任我爽爆在线播放| 天天色综合天天| 国产精品久久久久一区二区三区| 北岛玲日韩精品一区二区三区| 久久综合国产乱子伦精品免费 | 被滋润的艳妇疯狂呻吟白洁老七|