天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

數(shù)據(jù)庫設(shè)計 Step by Step (3)

  引言:數(shù)據(jù)庫設(shè)計 Step by Step (2)在園子里發(fā)表之后,收到了一些郵件,還有朋友直接電話我詢問為什么不包含數(shù)據(jù)庫物理設(shè)計方面的內(nèi)容。我在這里解釋一下,數(shù)據(jù)庫物理設(shè)計與數(shù)據(jù)庫產(chǎn)品是密切相關(guān)的,本系列的專注點是較為通用的數(shù)據(jù)庫設(shè)計理念與方法,這也是國內(nèi)軟件項目中容易被忽視的一塊。今天我們將學(xué)習(xí)實體關(guān)系(ER)模型構(gòu)件及其語義,這是數(shù)據(jù)庫邏輯設(shè)計的基礎(chǔ)。內(nèi)容可能有些枯燥,但卻非常重要和有用。

  由于內(nèi)容比較多,我們將分兩講來學(xué)習(xí)實體關(guān)系模型構(gòu)件。

  今天我們先來學(xué)習(xí)基本實體關(guān)系模型。

image  實體關(guān)系(ER)模型的目標(biāo)是捕獲現(xiàn)實世界的數(shù)據(jù)需求,并以簡單、易理解的方式表現(xiàn)出來。ER模型可用于項目組內(nèi)部交流或用于與用戶討論系統(tǒng)數(shù)據(jù)需求。

  ER模型中的基本元素

  基本的ER模型包含三類元素:實體、關(guān)系、屬性

image圖1 實體、關(guān)系、屬性的ER構(gòu)圖

  實體(Entities):實體是首要的數(shù)據(jù)對象,常用于表示一個人、地方、某樣事物或某個事件。一個特定的實體被稱為實體實例(entity instance或entity occurrence)。實體用長方形框表示,實體的名稱標(biāo)識在框內(nèi)。一般名稱單詞的首字母大寫。

  關(guān)系(Relationships):關(guān)系表示一個或多個實體之間的聯(lián)系。關(guān)系依賴于實體,一般沒有物理概念上的存在。關(guān)系最常用來表示實體之間,一對一,一對多,多對多的對應(yīng)。關(guān)系的構(gòu)圖是一個菱形,關(guān)系的名稱一般為動詞。關(guān)系的端點聯(lián)系著角色(role)。一般情況下角色名可以省略,因為實體名和關(guān)系名已經(jīng)能清楚的反應(yīng)角色的概念,但有些情況下我們需標(biāo)出角色名來避免歧義。

  屬性(Attributes):屬性為實體提供詳細(xì)的描述信息。一個特定實體的某個屬性被稱為屬性值。Employee實體的屬性可能有:emp-id, emp-name, emp-address, phone-no……。屬性一般以橢圓形表示,并與描述的實體連接。屬性可被分為兩類:標(biāo)識符(identifiers),描述符(descriptors)。Identifiers可以唯一標(biāo)識實體的一個實例(key),可以由多個屬性組成。ER圖中通過在屬性名下加上下劃線來標(biāo)識。多值屬性(multivalued attributes)用兩條線與實體連接,eg:hobbies屬性(一個人可能有多個hobby,如reading,movies…)。復(fù)合屬性(Complex attributes)本身還有其它屬性。

  辨別強實體與弱實體:強實體內(nèi)部有唯一的標(biāo)識符。弱實體(weak entities)的標(biāo)識符來自于一個或多個其它強實體。弱實體用雙線長方形框表示,依賴于強實體而存在。

  深入理解關(guān)系

  關(guān)系在ER模型中扮演了非常重要的角色。通過ER圖可以描述實體間關(guān)系的度、連通數(shù)、存在性信息。

  我們一一來解釋這些概念。首先我們來看一下關(guān)系在ER圖中的各種語義。

image圖2 關(guān)系的度、連通數(shù)、存在性

  關(guān)系的度(Degree of a Relationship)

表示關(guān)系所關(guān)聯(lián)的實體數(shù)量。二元關(guān)系與三元關(guān)系的度分別為2和3,以此可以類推至n元。二元關(guān)系是最常見的關(guān)系。

一個Employee與另一個Employee之間的領(lǐng)導(dǎo)關(guān)系稱為二元回歸關(guān)系。如圖2中所示,Employee實體通過關(guān)系manages與自身連接。由于Employee在這一關(guān)系中扮演兩個角色,故標(biāo)出了角色名(manager和subordinate)。

三元關(guān)系聯(lián)系三個實體。當(dāng)二元關(guān)系無法準(zhǔn)確描述關(guān)聯(lián)的語義時,就需要使用三元關(guān)系。我們來看下面這個例子,下圖(1)能反映出一個Employee在某個Project中使用了什么Skill。下圖(2)只能看出Employee有什么Skill,參與了哪些Project,但無法知道在某個Project中使用的特定Skill。

image圖3 三元關(guān)系蘊含的語義

需要注意的是有些情況下會錯誤的定義三元關(guān)系。這些三元關(guān)系可分解為2個或3個二元關(guān)系,來達(dá)到化簡與語義的純凈。以后的博文中會進(jìn)一步詳細(xì)討論三元關(guān)系。

一個實體可以參與到任意多個關(guān)系中。每個關(guān)系可以聯(lián)系任意多個元(實體),而且兩個實體之間也能有任意多個二元關(guān)系。

  關(guān)系的連通數(shù)(Connectivity of a Relationship)

表示關(guān)系所關(guān)聯(lián)的實例數(shù)量的約束。

連通數(shù)的值可以是“一”或“多”。“一”這一端,在ER圖中通過在實體與關(guān)系間標(biāo)記“1”表示。“多”一端標(biāo)記“N”表示。如圖2中關(guān)系連通數(shù)部分,“一”對“一”:Department is managed by Employee;“一”對“多”:Department has Employees;“多”對“多”:Employee may work on many Projects and each Project may have many Employees。

有些情況下最大連通數(shù)是確定的,可以用數(shù)值代替N。如:田徑隊隊員有12人。

  關(guān)系的屬性

關(guān)系也能有屬性。如下圖4所示,某員工參與某項目的起始日期,某員工在某項目中被分配的任務(wù)只有放在關(guān)系works-on上才有意義。

image圖4 關(guān)系的屬性

需要注意的是關(guān)系的屬性一般出現(xiàn)在“多”對“多”的二元關(guān)系或三元關(guān)系上。一般“一”對“一”或“一”對“多”關(guān)系上不會放屬性(會引起歧義)。而且這些屬性可以移至一端的實體中。如下圖5所示,如果部門與員工(經(jīng)理)之間是“一”對“一”關(guān)系,在建模中可能把start-date作為關(guān)系is managed by的屬性(表示被接管的時間),這個屬性可以移至Department或Employee實體中。

image圖5 部門與經(jīng)理之間的一對一管理關(guān)系

大家可以思考一下如果部門和經(jīng)理之間是“多”對“多”關(guān)系,即交叉管理,那又會怎樣?

  關(guān)系中實體的存在性(Existence of an Entity in a Relationship)

關(guān)系中實體的存在性可以是強制的或可選的。當(dāng)關(guān)系中的某一邊實體(無論是“一”或“多”端)必須總是存在,則該實體為強制的。反之,該實體為可選的。

在實體與關(guān)系之間的連接線上標(biāo)識“0”來表示可選存在性。含義是最小連通數(shù)為0。

強制存在性表示最小連通數(shù)為1。在存在性不確定或不可知的情況下,默認(rèn)最小連通數(shù)為1。

在ER圖中最大連通數(shù)顯式地標(biāo)識在實體旁邊。如圖6所示,其蘊含的語義為一個Department有且只有一個Employee來當(dāng)經(jīng)理,一個Employee可能是一個Department的經(jīng)理,也可能不是。

image圖6 關(guān)系中實體的存在性

  其他概念數(shù)據(jù)模型標(biāo)記法

  前文中使用的ER構(gòu)圖方法是Peter Chen 1976年提出的。在現(xiàn)代數(shù)據(jù)庫設(shè)計領(lǐng)域,還有其他多種ER模型標(biāo)記法。

  我們來看一下另一種使用較多的標(biāo)記法,“crow’s-foot”(魚尾紋)標(biāo)記法,并與前面介紹的標(biāo)記法進(jìn)行一個簡單對比。

  學(xué)習(xí)每一種標(biāo)記法沒有意義。在你的組織中推廣應(yīng)用一種標(biāo)記法,使其成為大家共通的“語言”。

image圖7 Chen式標(biāo)記法與crow’s-foot標(biāo)記法對照

image  主要內(nèi)容回顧

  1. 組成ER模型的基本元素包括:實體、關(guān)系、屬性

  2. 深入理解關(guān)系中包含的語義:關(guān)系的度、關(guān)系的連通數(shù)、關(guān)系的存在性

  3. 了解ER模型的不同標(biāo)記法,掌握其中一種標(biāo)記法,并在你的項目中推廣使用

  實體關(guān)系模型參考

  1. Entity-relationship model(http://en.wikipedia.org/wiki/Entity-relationship_model

  2.  Entity-relationship modelling(http://www.inf.unibz.it/~franconi/teaching/2000/ct481/er-modelling/

it知識庫數(shù)據(jù)庫設(shè)計 Step by Step (3),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 翁公咬着小娇乳H边走边欢A | 超嫩校花被灌醉在线观看 | 久久99热这里只有精品66 | 色哟哟tv | 成人精品综合免费视频 | 日本国产成人精品无码区在线网站 | 亚洲中文字幕无码爆乳APP | 麻豆产精品一二三产区区 | 中文字幕va一区二区三区 | 天天射天天爱天天干 | 美女PK精子小游戏 | 午夜成a人片在线观看 | 日韩精品无码久久一区二区三 | 夜夜躁日日躁狠狠 | 欧美国产影院 | 九色PORNY真实丨国产大胸 | 亚洲无人区码二码三码区别图 | 黄色网址在线免费观看 | 帝王受PLAY龙椅高肉NP | 97人妻中文字幕免费视频 | 鸭子玩富婆流白浆视频 | 综合色就爱涩涩涩综合婷婷 | 处88XXX| 啦啦啦影院视频在线看高清... | 披黑人猛躁10次高潮 | cntv官网| 久久精品一区二区三区资源网 | 久久亚洲A片COM人成A | 免费国产成人手机在线观看 | 国内精品不卡一区二区三区 | 7m凹凸国产刺激在线视频 | 强奷乱码欧妇女中文字幕熟女 | 精品国产自在现线拍国语 | 91桃色污无限免费看 | 高清bblxx手机在线观看 | 日韩欧美视频一区 | 欧美白妞大战非洲大炮 | 国产成人在线播放视频 | 国产午夜不卡在线观看视频666 | 动漫美女禁区图 | MM131亚洲精品久久安然 |