• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    E—R圖的精細設計

    2015-12-29 00:00:00邵超萬春紅
    計算機教育 2015年8期

    摘要:E-R圖設計是數(shù)據(jù)庫設計的關鍵,目前諸多流行的數(shù)據(jù)庫原理教材,對E-R圖設計部分的討論均顯得不夠精細。針對這一現(xiàn)狀,文章通過分析不同應用環(huán)境下實體之間的聯(lián)系,提出E-R圖的精細設計方案,說明E-R圖的正確設計方法。

    關鍵詞:數(shù)據(jù)庫設計;E-R圖;實體;聯(lián)系

    0.引言

    數(shù)據(jù)庫原理是計算機相關專業(yè)的一門專業(yè)主干課,目的是使學生掌握數(shù)據(jù)庫的基本概念、基本理論和基本操作方法,理解數(shù)據(jù)庫作為目前最有效的數(shù)據(jù)管理手段,在信息系統(tǒng)中的基礎地位和重要作用,學會用數(shù)據(jù)庫對大量數(shù)據(jù)進行有效的組織、存儲和管理。因此,針對一個具體的應用環(huán)境,設計一個結構良好的數(shù)據(jù)庫就成為該門課程的教學重點之一。

    數(shù)據(jù)庫設計人員設計的數(shù)據(jù)庫結構能否真正符合應用環(huán)境和普通用戶的要求,需要由普通用戶來進行評判,這就要求在設計數(shù)據(jù)庫的邏輯結構和物理結構之前,先設計一個普通用戶也能夠理解的、更加抽象的概念結構,通過概念結構使普通用戶能夠積極地參與到數(shù)據(jù)庫設計中來,以保證整個數(shù)據(jù)庫系統(tǒng)的最終成功運行。因此,概念結構設計是數(shù)據(jù)庫設計的關鍵,最常用來描述概念結構的工具就是E-R圖。

    然而,目前諸多流行的數(shù)據(jù)庫原理教材對E-R圖設計部分的討論均不夠精細,實際教學也大都跟隨教材浮于表面,從而使學生難以設計正確反映應用環(huán)境實際語義的E-R圖,造成隨后轉(zhuǎn)換得到的關系模式碼不正確、數(shù)據(jù)冗余度大、規(guī)范化程度低等問題。

    1.E-R圖的設計

    E-R圖設計的正確與否取決于數(shù)據(jù)庫設計人員能否真正把握應用環(huán)境的業(yè)務流程以及在該業(yè)務流程中所涉及的各個客觀對象和他們之間發(fā)生的活動,這需要作準確深入的用戶需求分析。這些客觀對象如果需要記錄的話,就抽象為E-R圖中的實體(描述實體的眾多相關數(shù)據(jù)就抽象為實體的屬性,將具有相同屬性的眾多實體抽象為實體型)o它們之間發(fā)生的活動如果也需要記錄的話,就抽象為E-R圖中的聯(lián)系,這是E-R圖設計的重點。

    以高校學生選課系統(tǒng)為例,假設學校只有一種類型的學生,每名學生有唯一的一個學號,還有姓名、性別、年齡和班級信息;學校開設了多門課程,每門課程有唯一的一個課程號,還有課程名、學分、先行課和課程簡介信息。由于一門課程同時可以由多個教師講授,因此,在上一學期末進行選課的時候,每名學生可以根據(jù)主講教師(有唯一的教師編號)的姓名、性別、年齡和職稱信息,有選擇地選修由某些教師講授的某些課程。每個教師同時可以講授多門課程,每門課程可以供多名學生選修,如果由某個教師講授的某門課程沒有學生選修,則取消由這個教師講授的這門課程。主講教師會在學期末將自己所教學生的所有課程成績輸入到數(shù)據(jù)庫中,以供學生在網(wǎng)上進行查詢。

    首先,我們根據(jù)用戶需求,分析潛在的實體。實體通常是需求文檔中的中心名詞,主要活動都是圍繞它們開展的。顯然,該系統(tǒng)存在學生、課程和教師這3類客觀對象,每一類客觀對象都有很多數(shù)據(jù)需要記錄,這就構成了該系統(tǒng)需要記錄的第一部分主要數(shù)據(jù);此外,該系統(tǒng)中的主要活動——課程的選修與講授以及成績的輸入與查詢,都是圍繞這3類客觀對象開展的。因此,這3類客觀對象就抽象為E-R圖中的3個實體型,描述這3個實體型的E-R圖如圖1所示(帶有下劃線的屬性為碼)。

    其次,根據(jù)用戶需求,確定實體之間的聯(lián)系。實體之間的聯(lián)系通常是需求文檔中的中心動詞,表示實體之間發(fā)生的活動或隸屬關系。在該系統(tǒng)中,這3個實體型之間發(fā)生的主要活動包括學生選修教師的課程(或教師給學生講授課程)、教師輸入成績和學生查詢成績。由于一名學生可以有選擇地選修由不同教師講授的不同課程,一個教師可以給不同學生講授不同課程,一門課程可以由不同教師給不同學生講授。因此,選修(或講授)活動涉及這3個實體型,是這3個實體型之間的一個多對多聯(lián)系(在這種情況下,選修和講授是同一個聯(lián)系)。將該活動抽象為E-R圖中的一個聯(lián)系,是因為系統(tǒng)需要記錄這樣的活動,即哪名學生選修了哪個教師講授的哪門課程,以及由此活動產(chǎn)生的數(shù)據(jù)——成績(抽象為該聯(lián)系的一個屬性),這就構成了該系統(tǒng)需要記錄的另外一部分主要數(shù)據(jù)。該系統(tǒng)還有兩個活動:教師輸入成績和學生查詢成績,由于它們都只是對成績屬性的數(shù)據(jù)操作,系統(tǒng)并不需要對這樣的數(shù)據(jù)操作也進行記錄,因此,它們并不抽象為E-R圖中的聯(lián)系。該E-R圖如圖2所示。

    很多教材都將圖2中的選修聯(lián)系看成是學生和課程這2個實體型之間的一個多對多聯(lián)系(如圖3所示),但這只有在學生只管選課而無需考慮主講教師的情況下是正確的。在這種情況下,為了確定成績最終由哪個主講教師向數(shù)據(jù)庫中輸入(在圖2所示的情況下,這是很直接的),一個教師只能被指定為某一個或幾個班級講授課程,如圖4所示,這樣才可以根據(jù)學生所在的班級及其選修的課程來綜合確定哪個教師是其主講教師,負責為其輸人成績。因此,E-R圖的設計應該具體情況具體分析,要根據(jù)應用環(huán)境的業(yè)務流程有針對性地進行設計。

    2.E-R圖的精細設計

    圖2和圖4還存在一定的問題。雖然學生(在圖4中為班級)、課程和教師之間是多對多聯(lián)系,但一名學生(在圖4中為班級)選修了一門課程,只會有一個主講教師,這在圖2和圖4中是反映不出來的。

    此外,根據(jù)E-R圖向關系模型的轉(zhuǎn)換原則——“3個或3個以上實體間的一個多元聯(lián)系可以轉(zhuǎn)換成一個關系模式,各實體的碼組成關系的碼或關系碼的一部分”,圖2中的選修聯(lián)系和圖4中的講授聯(lián)系分別轉(zhuǎn)換為:

    選修(學號,課程號,教師編號,成績)

    講授(班號,課程號,教師編號)(班號為班級實體的碼)。

    然而,根據(jù)上述語義,存在函數(shù)依賴“(學號,課程號)-教師編號”和“(班號,課程號)-教師編號”,因此,這2個關系模式的碼并不正確,應改為:

    選修(學號,課程號,教師編號,成績)

    講授(班號,課程號,教師編號)。

    然而,這與轉(zhuǎn)換原則相悖。

    為解決這個問題,我們對以上E-R圖進行更加精細的設計,引入教學班實體型,選修同一個教師、同一門課程的所有學生組成一個教學班(這也是很多高校的實際做法)。一名學生參加了一個教學班,就意味著選修了某個教師講授的某門課程,因此,教師、課程和學生之間是通過教學班聯(lián)系起來的(如圖5所示)。

    再舉一個例子。一般的銷售系統(tǒng)都存在顧客瀏覽和訂購商品這樣的主要活動,其中,顧客瀏覽商品只能算是一個數(shù)據(jù)操作,顧客訂購商品需要系統(tǒng)記錄相應的數(shù)據(jù),包括哪個顧客訂購了哪些商品及其訂購數(shù)量、訂購時間、收貨地址等,因此需要抽象為E-R圖中的一個聯(lián)系,如圖6所示。

    然而,圖6還存在一定的問題,一個顧客一次訂購了多種商品,它們的訂購時間和收貨地址是完全相同的,其后果就是由圖6轉(zhuǎn)換得到的關系模式“訂購(顧客編號、商品編號、訂購數(shù)量、訂購時間、收貨地址)”(顧客編號和商品編號分別為顧客和商品這2個實體型的碼)存在大量的數(shù)據(jù)冗余。事實上,顧客訂購商品是通過訂單體現(xiàn)的,訂購時間和收貨地址只是訂單實體型的2個屬性,因此,圖6應修正為圖7。

    現(xiàn)在很多銷售系統(tǒng)都會進行打折,以實現(xiàn)提高顧客忠誠度和促銷商品的雙重目的,為此,E-R圖中需要增加一個折扣規(guī)則實體型,以存放這些打折信息,但不同系統(tǒng)進行打折的方法是不同的,相應的E-R圖自然也要有所區(qū)別。

    有的系統(tǒng)會根據(jù)顧客的等級進行打折,而不考慮該顧客購買的是哪些商品,這樣的系統(tǒng)主要為提高顧客忠誠度,這種情況下的E-R圖就應該如圖8所示。

    有的系統(tǒng)只是對商品進行打折,而不考慮是哪些顧客購買了該商品,這樣的系統(tǒng)主要為促銷商品,這種情況下的E-R圖就應該如圖9所示。

    然而,在實際應用中,如果系統(tǒng)足夠復雜,為了簡化E-R圖,上述的參照聯(lián)系也可以不用畫出來。

    3.結語

    針對目前流行的數(shù)據(jù)庫原理教材對E-R圖設計部分討論不夠精細,從而使學生難以準確掌握E.R圖設計的問題,我們給出了一些E-R圖精細設計的案例,從中可以理解E-R圖設計的根本在于正確分析具體應用環(huán)境中的業(yè)務流程及其語義,尤其是實體之間存在的各種聯(lián)系,以克服E-R圖描述不清、隨后轉(zhuǎn)換得到的關系模式碼不正確、數(shù)據(jù)冗余度大、規(guī)范化程度低等問題。通過兩年的教學實踐,這些教學案例的應用效果良好。為了應付各行各業(yè)信息系統(tǒng)的需要,今后還需要進一步豐富各行各業(yè)的教學案例,使學生能更好地掌握E-R圖的分析與設計方法。

    松阳县| 准格尔旗| 张家川| 仙游县| 资源县| 百色市| 平定县| 崇信县| 阿尔山市| 洞头县| 安陆市| 安塞县| 桑日县| 夏邑县| 诸城市| 云林县| 东山县| 五指山市| 三穗县| 宁南县| 鹤壁市| 翼城县| 朝阳县| 济南市| 张家港市| 虹口区| 河东区| 湟中县| 明溪县| 阿坝县| 饶河县| 德阳市| 南京市| 壤塘县| 长泰县| 仁布县| 阿拉善盟| 凭祥市| 谷城县| 吉安市| 金华市|