最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

數(shù)據(jù)庫原理與應(yīng)用(2)數(shù)據(jù)模型、關(guān)系模式、實體間聯(lián)系、E-R圖、主鍵、外鍵、約束

2022-04-27 15:12 作者:洛溪い  | 我要投稿

【概念】

實體:實體是客觀存在且具有公共性質(zhì)的可相互區(qū)別的現(xiàn)實世界對象的集合,像是學(xué)生、商品、學(xué)位、職稱、選課等。


實例:實體中每個具體的記錄都叫做示例,像是一頭牛、一匹馬等。

屬性:實體具有的某一特征或性質(zhì),像是性別、年齡等。屬性是區(qū)分不同實體的依據(jù)。


:對實體中數(shù)據(jù)結(jié)構(gòu)和屬性的說明,比如說學(xué)生實體具有由學(xué)號、姓名、性別、出生日期等屬性構(gòu)成的記錄型。


:具體的一條示例所有屬性集合(1534677781343,李明,男,2001.1.3)就是學(xué)生李明數(shù)據(jù)記錄的值。

不同的值(記錄)

:唯一標(biāo)識實體的屬性集,也叫做關(guān)鍵字。例如,學(xué)號是學(xué)生實體的鍵,對于實例:1534677781343,李明,男,2001.1.3,通過學(xué)號1534677781343唯一指定李明。


候選碼:關(guān)系中的一個屬性可以唯一標(biāo)識一個數(shù)據(jù)記錄,像是我們可以通過學(xué)號1534677781343唯一指定李明,那么學(xué)號就可以作為候選碼;而我們不可以通過性別男來唯一指定李明,因為男生不止他一個,所以性別就不可以作為候選碼。一個關(guān)系中候選碼可以有多個,候選碼不可以為空,也沒有多余屬性。

一個關(guān)系模式中可以有多個候選碼。


主鍵:分為單字段主鍵組合主鍵。其中組合主鍵可由表中多個字段(屬性)組合而成。在這里僅介紹單字段主鍵,也叫做主碼主關(guān)鍵字。它是某個能夠唯一標(biāo)識一條記錄的屬性,是從候選碼中人為挑選的一個。

一個關(guān)系模式中只有一個主鍵。主鍵不能為空值。

主鍵的功能主要體現(xiàn)在唯一(UNIQUE)和非空(NOT NULL)功能上,定義為主鍵即默認(rèn)唯一且非空。

主鍵的刪除只是刪除了指定的主鍵約束,并不能夠刪除字段。

關(guān)系表中不允許存在無主碼、主碼值相同的記錄。


外鍵:子數(shù)據(jù)表中出現(xiàn)的父數(shù)據(jù)表的主鍵,稱為子數(shù)據(jù)表的外鍵。外鍵要么與父表主碼的值相同,要么取空值。

子數(shù)據(jù)表中出現(xiàn)的父數(shù)據(jù)表的主鍵與父數(shù)據(jù)表原有主鍵的字段名可以不同,只要定義在相同的域即可。

創(chuàng)建外鍵時,設(shè)置的字段和關(guān)聯(lián)的字段必須具有相同的數(shù)據(jù)類型。

外鍵約束中,主表和從表(也可以叫父表和子表)可以是1張表,也可以是2張表。


在這里舉一個例子。

【例1】borrow表(子表)的讀者編號(rID)需要出現(xiàn)reader表(父表)的reader_ID主鍵作為它的外鍵,從而為borrow表添加參照完整性約束。

1.建表代碼:

2. 在borrow表中添加外鍵。

borrow表外鍵

外鍵名:可以不填, 系統(tǒng)自動生成,也可以自己寫一個上去。

字段:子表中設(shè)置為外鍵的字段,也就是要在子表中出現(xiàn)的父表的主鍵。

被引用的模式:兩張表所在的數(shù)據(jù)庫名。

被引用的表(父):父表名。

被引用的字段:父表中要出現(xiàn)在子表中的主鍵名。

刪除時/更新時:設(shè)置為CASCADE,也就是關(guān)聯(lián)的表更新后,此表同步更新。

*提示:如果rID不允許為空則當(dāng),選擇刪除時SET NULL就會出現(xiàn)Cannot add foreign key constraint的提示,這是因為刪除置空有條件,必須滿足字段允許為空。

3.兩張表外觀。


borrow表
reader表

4. 外鍵約束

district:嚴(yán)格模式(默認(rèn)),父表不能刪除或更新一個已經(jīng)被子表數(shù)據(jù)引用的記錄;

cascade:級聯(lián)模式,父表的操作,對應(yīng)子表關(guān)聯(lián)的數(shù)據(jù)也跟著被刪除;

set null:置空模式,父表的操作之后,子表對應(yīng)的數(shù)據(jù)(外鍵字段)被置空。

:屬性的取值范圍。例如性別的域為(男,女),手機號域為11位整數(shù)。


實體型:用實體名和屬性名集合來抽象和刻畫同類實體,例如學(xué)生(學(xué)號、姓名、性別、出生日期)就是一個實體型。


實體集:同類實體的集合。例如全體學(xué)生就是學(xué)生實體的一個實體集。

實體間的聯(lián)系:

一對一聯(lián)系(1:1):例如班級和班長之間就是一對一聯(lián)系,一個班級只有一個班長。


一對多聯(lián)系(1:n):例如一個班級有一個輔導(dǎo)員,但擔(dān)任輔導(dǎo)員的老師可以同時擔(dān)任其他班級的輔導(dǎo)員,所以輔導(dǎo)員和班級之間就是一對多聯(lián)系。


多對多聯(lián)系(m:n):例如一個學(xué)生可以學(xué)習(xí)多門課程,每門課程也可以有多個學(xué)生,那么學(xué)生和課程之間的關(guān)系就是多對多聯(lián)系。


【例2】某校學(xué)生、教師和課程實體對應(yīng)的關(guān)系模式如下:學(xué)生(學(xué)號,姓名,性別,年齡,家庭住址,電話)課程(課程號,課程名)教師(職工號,姓名,年齡,家庭住址,電話)如果一個學(xué)生可以選修多門課程,一個課程可以多個學(xué)生選修;一個教師只能講授一門課程,但是一門課程可以由多個教師講授。則學(xué)生和課程之間是一個的關(guān)系模式。

A.?不需要增加一個新的關(guān)系模式,不需做其他改變

B.?不需要增加一個新的關(guān)系模式,只需要將1端的碼插入到多端

C.?需要增加一個新的選課關(guān)系模式,該模式的主鍵為課程號

D.?需要增加一個新的選課關(guān)系模式,該模式的主鍵為課程號和學(xué)號


在這里,每個學(xué)生和課程是一對多關(guān)系,課程和教師是多對多關(guān)系。那么問題中學(xué)生和課程的表述就應(yīng)該理解為一個學(xué)生選擇課程,那學(xué)生就是1端,課程就是多端,如果把1端的碼插入到多端的話,插過去的碼(學(xué)號、姓名、性別)沒有對應(yīng)的值,這時候就需要增加一個新的選課關(guān)系模式,用兩個主鍵對兩端中包含的元組進(jìn)行標(biāo)識,主鍵需要可以做到唯一標(biāo)識一條數(shù)據(jù)記錄,那就選擇課程號和學(xué)號作為主鍵。

【例3】某醫(yī)院數(shù)據(jù)庫的部分關(guān)系模式為:科室(科室號,科室名,負(fù)責(zé)人,電話)、病患(病歷號、姓名、住址、聯(lián)系電話)和醫(yī)生(職工號、醫(yī)生姓名、科室號、住址,聯(lián)系電話)。假設(shè)每個科室有一名負(fù)責(zé)人和一部電話,每個科室有若干醫(yī)生,一名醫(yī)生只能屬于一個科室;一個醫(yī)生可以為多個病患看病;一個病患可以由多個醫(yī)生診治。則就診關(guān)系的主鍵是_________。

?這里如果想實現(xiàn)唯一標(biāo)識一條數(shù)據(jù)記錄的話就需要選擇病歷號、職工號、就診時間作為主鍵。因為一個病患可以在不同時間來多次就診,可能是不同的醫(yī)生為他進(jìn)行診治,一個醫(yī)生一天也可以為很多病患進(jìn)行診治,為了排除這些不確定性,我們就需要三個屬性作為主鍵。

【E-R圖】

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

過程:確定實體集、確定聯(lián)系和聯(lián)系類型、設(shè)計局部及整體的E-R圖、確定屬性、優(yōu)化E-R圖。

E-R圖示例

E-R圖可將現(xiàn)實世界的信息抽象地表示為實體及實體間的聯(lián)系。

E-R用于描述數(shù)據(jù)庫的概念模型

【關(guān)系的完整性】

實體完整性:關(guān)系的主碼不能重復(fù)也不能取空值。實體完整性通過主鍵實現(xiàn)。


參照完整性:參照完整性是定義主碼和外碼間的引用規(guī)則。

外碼要么與父表主碼的值相同,要么取空值。參照完整性通過外鍵實現(xiàn)。


用戶定義完整性:用戶自定義的約束條件。

非空約束、唯一約束、默認(rèn)約束、自增約束、檢查約束均屬于用戶自定義完整性約束。


關(guān)系的完整性約束僅包括實體完整性、參照完整性、用戶定義完整性。

默認(rèn)約束:DEFAULT約束。每個字段只能定義一個默認(rèn)約束,不能在設(shè)置為自動編號的屬性的字段上創(chuàng)建默認(rèn)約束,默認(rèn)約束可以為空值。

默認(rèn)值約束字段,其默認(rèn)值可以由用戶自定義。


唯一約束:UNIQUE約束是列約束或表約束,它定義了將列或列組中的值約束為唯一的規(guī)則。定義了該約束的字段,所有記錄都不能是重復(fù)的。


非空約束:指字段的值不能為空。 對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫系統(tǒng)就會報錯。

非空約束限制是指該字段中的內(nèi)容不能為空,但可以是空白字符串(NULL)或0。

沒有設(shè)置非空的唯一性約束字段,可以有零個或者多個NULL數(shù)據(jù)。


自增約束:當(dāng)主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進(jìn)行增長。

默認(rèn)情況下,AUTO_INCREMENT 的初始值是 1,每新增一條記錄,字段值自動加 1。

一個表中只能有一個字段定義自增約束。

定義自增約束的字段的數(shù)據(jù)類型必須是整數(shù)類型,像TINYINT、SMALLINT、INT、BIGINT之類。

定義自增約束的字段必須具有NOT NULL屬性。

自增約束的最大值受數(shù)據(jù)類型限制,達(dá)到上限后自增約束失效。

有外鍵約束的字段不可添加自增約束。


檢查約束:檢查約束(CHECK)是用來檢查數(shù)據(jù)表中字段值有效性的一種手段,可以通過 CREATE TABLE 或 ALTER TABLE 語句實現(xiàn)。設(shè)置檢查約束時要根據(jù)實際情況進(jìn)行設(shè)置,這樣能夠減少無效數(shù)據(jù)的輸入。


完整性檢查和控制的防范對象是非法用戶、非法操作和符合語義的數(shù)據(jù)。

【關(guān)系模式、數(shù)據(jù)模型】

關(guān)系模式分為外模式(用戶數(shù)據(jù)庫)、模式(概念模式或邏輯模式,用于描述一個數(shù)據(jù)庫的整體邏輯結(jié)構(gòu)和特征)和內(nèi)模式(描述數(shù)據(jù)在存儲介質(zhì)上的存儲方式和物理結(jié)構(gòu))。

關(guān)系模式是對關(guān)系結(jié)構(gòu)的表示。模式的表示方式通常形式是:關(guān)系名(屬性1,屬性2,....,屬性n)。關(guān)系模式中,屬性的順序可以發(fā)生變化。

關(guān)系中元組的先后順序可以顛倒,但是不能出現(xiàn)重復(fù)元組。

關(guān)系模型中,一個碼由一個或多個屬性組成,其值能夠惟一標(biāo)識關(guān)系中一個元組。

關(guān)系模型是一種邏輯模型。

數(shù)據(jù)庫中的數(shù)據(jù)是不斷更新的,但關(guān)系模式不變。

數(shù)據(jù)模型要容易被用戶看懂,不必過于專業(yè)。

數(shù)據(jù)模型的特征主要有能比較真實地模擬現(xiàn)實世界、容易為人所理解、便于在計算機上實現(xiàn)。

數(shù)據(jù)模型的要素有數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)約束條件數(shù)據(jù)操作。

數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)類型、數(shù)據(jù)類型之間的聯(lián)系的描述。

概念模型是現(xiàn)實世界的第一層抽象,這一類模型中最著名的模型是實體-關(guān)系模型。

對于現(xiàn)實世界中事物的特征,在實體-聯(lián)系模型中屬性來描述。


1:1關(guān)系模式的轉(zhuǎn)換,直接將一個實體的主鍵插入到另一實體中作為外鍵產(chǎn)生聯(lián)系。

1:n這種關(guān)系模式轉(zhuǎn)換,一般是將1的主鍵插入到n的表中作為外鍵,以此產(chǎn)生聯(lián)系。

m:n關(guān)系模式轉(zhuǎn)換,一般會因為聯(lián)系產(chǎn)生新的屬性,聯(lián)系會轉(zhuǎn)化成關(guān)系模型,要將兩個實體的主鍵都插入到新的關(guān)系模式中。

【數(shù)據(jù)庫】

關(guān)系數(shù)據(jù)庫的基本特征是不同列應(yīng)有不同的列名、與行和列的次序無關(guān)。

表中的行稱為一個元組,也稱一個記錄;表的每一列叫做字段屬性;表的每一列的所有取值范圍稱為域。

關(guān)系數(shù)據(jù)庫采用關(guān)系模型對數(shù)據(jù)庫的概念模式進(jìn)行描述。

在一個關(guān)系中,記錄(元組)不可重復(fù),字段名(屬性名)不可重復(fù),屬性的順序可以任意調(diào)換,行的順序也可以任意調(diào)換。

使用二維表存儲數(shù)據(jù)的數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫。

數(shù)據(jù)庫原理與應(yīng)用(2)數(shù)據(jù)模型、關(guān)系模式、實體間聯(lián)系、E-R圖、主鍵、外鍵、約束的評論 (共 條)

分享到微博請遵守國家法律
聊城市| 九寨沟县| 洮南市| 武穴市| 潞西市| 晋州市| 高清| 乡宁县| 湖州市| 宜兰市| 泽库县| 南岸区| 会泽县| 镇康县| 攀枝花市| 潼关县| 鹤庆县| 梓潼县| 丰顺县| 乌兰察布市| 乐至县| 宜章县| 额尔古纳市| 泸定县| 望城县| 黔西| 福贡县| 兴安县| 巨鹿县| 德令哈市| 温宿县| 阳朔县| 邮箱| 长子县| 盐源县| 隆回县| 合作市| 蓬莱市| 崇仁县| 泽州县| 洪江市|