數(shù)據(jù)庫技術(shù)復(fù)習(xí)._第1頁
數(shù)據(jù)庫技術(shù)復(fù)習(xí)._第2頁
數(shù)據(jù)庫技術(shù)復(fù)習(xí)._第3頁
數(shù)據(jù)庫技術(shù)復(fù)習(xí)._第4頁
數(shù)據(jù)庫技術(shù)復(fù)習(xí)._第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫技術(shù)復(fù)習(xí)1.關(guān)系的基本名詞關(guān)系的基本名詞v關(guān)系:一張滿足某些約束條件的二維表,如表2-1 Students關(guān)系。 v元組:關(guān)系中的一行稱為一個元組。對應(yīng)表中的一行,存放的是客觀世界的一個實體,如表Students關(guān)系中的一行,存放的是一個學(xué)生的數(shù)據(jù) 。v屬性:關(guān)系中的一列,稱為一個屬性。對應(yīng)表中的一列。一個屬性表示實體的一個特征,如表 Students關(guān)系中的Sno屬性表示學(xué)生實體的學(xué)號特征值。 v域:關(guān)系中一個屬性的取值范圍。例如,Ssex的取值范圍是M, F,代表性別為男性和女性。 v關(guān)系示例關(guān)系示例:2.關(guān)系的性質(zhì)關(guān)系的性質(zhì)v關(guān)系中每一屬性都是最小的關(guān)系中每一屬性都是最小的。對表而

2、言,每一個行與列的交叉點上只能存放一個單值 。v關(guān)系中同一屬性的所有屬性值具有相同的數(shù)據(jù)類型。關(guān)系中同一屬性的所有屬性值具有相同的數(shù)據(jù)類型。對表而言,表中同一列中的所有列值都必須屬于同一數(shù)據(jù)類型。例如表2-1中Students表的Sname列的所有值都是字符串類型。 v關(guān)系中的屬性名不能重復(fù)。關(guān)系中的屬性名不能重復(fù)。對表而言,表中每一列都有惟一的列名,不允許有兩個列有相同的列名。例如表2-1 Students表不允許有兩個列,列名都叫Sname。 3. 關(guān)系的候選鍵與主鍵關(guān)系的候選鍵與主鍵v表中某一列(或若干列的最小組合)的值能惟一標(biāo)識一個行,稱該列或列組為候選鍵。如Students表的Sno

3、列,就是一個候選鍵。因為,給定一個Sno的值,如20030101,就能確定表中惟一的一行,第4行。v對于一個表,可能有多個候選鍵 。v候選鍵取決于應(yīng)用范圍,如給定學(xué)院,沒有重復(fù)的學(xué)生姓名,則Sname是Students表的一個候選鍵。v如果一個表有多個候選鍵,數(shù)據(jù)庫設(shè)計者通常選擇其中一個候選鍵作為區(qū)分行的惟一性標(biāo)識符,稱為主鍵(primary key,PK)。如果一個表只有一個候選鍵,那么這個候選鍵就作為主鍵。例如,在Students表,把Sno作為該表的主鍵。v因為主鍵是候選鍵之一,而根據(jù)候選鍵的定義,候選鍵列上的各個值都惟一,因此主鍵列上的各個值也都惟一。候選鍵:候選碼、超級碼主鍵:主碼外

4、鍵:外碼附注:附注:4. 關(guān)系模式關(guān)系模式v關(guān)系模式是關(guān)系的形式化描述。v最簡單的表示為:關(guān)系名(屬性名關(guān)系名(屬性名1,屬性名屬性名2,屬性名屬性名n) 注意:注意:主鍵要用下劃線表明。但有時,關(guān)系模式中并沒有表明主鍵。例如:例如:Students關(guān)系的關(guān)系模式為:關(guān)系的關(guān)系模式為:Students(Sno,Sname,Ssex,Sbirthdate,Sdept)v關(guān)系模式即是一個表的表頭描述。v表頭也稱為關(guān)系的結(jié)構(gòu)、關(guān)系的型等。v除表頭一行以外的所有行的集合(即表內(nèi)容), 稱為關(guān)系的值。v一個關(guān)系(表),由表頭和表內(nèi)容兩部分組成,表頭是相對不變的,而表內(nèi)容是經(jīng)常改變的。如Students表

5、中,當(dāng)有新學(xué)生入學(xué)時,就增加若干行,當(dāng)學(xué)生畢業(yè)時,就要刪除若干行,所以表是動態(tài)的。 5. 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫v關(guān)系數(shù)據(jù)庫是相互關(guān)聯(lián)的表或者說關(guān)系的集合v一個關(guān)系用一個關(guān)系模式表示,所有關(guān)系模式集合構(gòu)成數(shù)據(jù)庫的模式,它是數(shù)據(jù)庫整體邏輯結(jié)構(gòu)的描述。v關(guān)系模型的數(shù)據(jù)完整性指的是完整性規(guī)則。v完整性規(guī)則包括實體完整性規(guī)則、參照完整性規(guī)則和用戶自定義完整性規(guī)則三大類。v實體完整性和參照完整性是關(guān)系模型必須滿足的兩個完整性規(guī)則。 1. 實體完整性規(guī)則實體完整性規(guī)則v實體完整性規(guī)則是表中任意一行的主鍵值不能為空值。v空值,用“null”表示,大小寫一樣??罩凳巧形创_定的值或不確定的值。v空值和數(shù)值型列的0

6、值以及字符型列的空字符串的不同,數(shù)值型列的0值與字符型列的空字符串都是確定的值。v根據(jù)主鍵的定義,主鍵值必須惟一。因此,實體完整性也可定義為:主鍵值惟一且不能為空值。表中任意一行的主鍵值不能為空值。v完整性的意義:一個表對應(yīng)存放一個實體,表中的每一行代表實體中的一個實例。如學(xué)生表用來存放學(xué)生實體,該表中的一行代表一個學(xué)生,一個學(xué)生有惟一的一個學(xué)號。如果主鍵值SnoSno為空值,表明該學(xué)生的學(xué)號不能確定,也就是說沒有惟一確定的學(xué)號,這只能說明他/ /她不是學(xué)生,因此就不應(yīng)該存放在學(xué)生表中。v實體完整性的作用:一旦定義表的主鍵,RDBMS將自動地對該表中的每一行的主鍵值進(jìn)行檢查,若發(fā)現(xiàn)主鍵值為空或

7、不惟一,RDBMS會給出錯誤信息,這樣就能確保表中的每一行是惟一的,可以區(qū)分的。2. 參照完整性規(guī)則參照完整性規(guī)則v參照完整性規(guī)則是一個表的外鍵值可以為空值。若不為空值,則必須等于另一個表中主鍵的某個值。 v外鍵(Foreign Key,F(xiàn)K):若一個表R1中的一個列或列組對應(yīng)另一個表R2的主鍵,那么該列或列組稱為表R1的外鍵。v外鍵可以由一個或多個列組成,可以有重復(fù)值。v 外鍵的取值的兩種情況分析:外鍵的取值的兩種情況分析:圖2-2系表、課程表主鍵、外鍵參照關(guān)系圖 v參照完整性的作用:在關(guān)系數(shù)據(jù)庫系統(tǒng)中,一旦定義了表的外鍵,也即定義了外鍵與另一個表的主鍵的參照與被參照聯(lián)系,RDBMS將根據(jù)外

8、鍵的定義,自動檢查表中的每一行,若發(fā)現(xiàn)外鍵值違反外鍵的規(guī)則,RDBMS會給出錯誤信息,要求用戶糾正,這樣能確保表之間的參照與被參照聯(lián)系的正確性。本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo)v數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計:包括邏輯設(shè)計和物理設(shè)計 。v邏輯設(shè)計邏輯設(shè)計:概念結(jié)構(gòu)設(shè)計與邏輯結(jié)構(gòu)設(shè)計。v概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計:實體-聯(lián)系模型(E-R圖)。v邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計:關(guān)系數(shù)據(jù)庫的模式設(shè)計。v實體- -聯(lián)系模型( (E-R圖) )反映的是用戶需求的一個概念模型,與具體的數(shù)據(jù)庫實現(xiàn)無關(guān)。v數(shù)據(jù)庫設(shè)計首先要分析用戶需求,并用實體- -聯(lián)系模型表示。v實體- -聯(lián)系模型的關(guān)鍵元素:實體、屬性、標(biāo)識符和聯(lián)系。 1、實體、實

9、體(Entity)實體實例實體實例(entity instance)是現(xiàn)實世界中客觀存在的并可相互區(qū)別的事物,實體實例可以是具體的人、事、物。例如,一個叫“張三”的學(xué)生,一門叫“”數(shù)據(jù)庫基礎(chǔ)的課程,都是一些實體實例。實體實例實體實例簡稱實例實例。實體實體:具有相同特征的可區(qū)分的實例的集合,如學(xué)生/ /職工。 實體-聯(lián)系模型中,實體用矩形表示,矩形框內(nèi)寫明實體名。 2、屬性、屬性(Attribute)屬性用來描述實體的特征。實體通常具有若干個特征,一個特征稱為實體的一個屬性 ,例如:學(xué)生實體具有學(xué)號、姓名、性別、年齡、系別等屬性。屬性有名和值,例如屬性學(xué)號,可有100、200等值,一個屬性名可對

10、應(yīng)多個值。E-R圖中屬性用橢圓表示,橢圓內(nèi)寫上屬性的名稱,并用無向邊將其與相應(yīng)的實體連接起來,如圖5-1所示。說明:說明:如果E-R圖中實體的屬性很多,為了節(jié)省篇幅,可以只在ER圖附近說明,而不直接畫在圖上。有的時候,為了專注于分析實體與聯(lián)系,可暫時不畫實體的屬性。 實體的屬性可以分為簡單屬性和組合屬性。實體的屬性可以分為簡單屬性和組合屬性。 簡單屬性就是不可再分的屬性。如學(xué)號、年齡等。 組合屬性就是有多個簡單屬性組成的屬性,或者說是可以進(jìn)一步劃分的屬性。如電話號碼,由區(qū)號、本地號碼組成,因此電話號碼時一個組合屬性。 說明說明: 一個組合屬性有時也可以看作為一個簡單屬性,取決于實際應(yīng)用的需求,

11、由數(shù)據(jù)庫設(shè)計者根據(jù)實際應(yīng)用需求決定。例如,電話號碼,如果對該屬性包含的簡單屬性要進(jìn)行各種處理,那么通常把電話號碼屬性應(yīng)該看作組合屬性,應(yīng)該繼續(xù)細(xì)分成簡單屬性,即區(qū)號、本地號碼兩屬性。否則,可以考慮該屬性為簡單屬性。 3、聯(lián)系、聯(lián)系(Relationship)聯(lián)系是指實體之間的相互關(guān)聯(lián)。通常表示一個活動。比如:訂購、選課等。一旦聯(lián)系發(fā)生,可能產(chǎn)生一些聯(lián)系屬性,例如,一旦訂購活動發(fā)生,就有訂購數(shù)量、日期等屬性,一旦進(jìn)行選課,就有選修時間、選修成績等屬性。 聯(lián)系用菱形表示,菱形內(nèi)寫明聯(lián)系的名稱,通常用一個動詞命名,并用無向邊分別與關(guān)聯(lián)實體連接起來 。菱形的一側(cè)用1 1、m m、n n等符號表明聯(lián)系的

12、該側(cè)實體最大可以產(chǎn)生的實例數(shù),稱為最大基數(shù)。一對一聯(lián)系一對一聯(lián)系(1:1) 若對于實體A中的每一個實例,實體B中至多有一個實例與之聯(lián)系,反之,對于對于實體B中的每一個實例,實體A中也至多有1個實例與之聯(lián)系,則稱實體A與實體B具有一對一聯(lián)系,記為1:1(讀作“1對1”)。在1:1聯(lián)系中,一種類型實體的一個實例至多與另一種類型實體的一個實例關(guān)聯(lián)。一對多聯(lián)系(一對多聯(lián)系(1:n)若對于實體A中的每一個實例,實體B中有n個實例(n0)與之聯(lián)系,反之,對于對于實體B中的每一個實例,實體A中至多只有一個實例與之聯(lián)系,則稱實體A與實體B具有一對多聯(lián)系,記為1:n(讀作“1對n”或“1對多”)。如下圖所示,把

13、這個聯(lián)系稱為“分配”。表示一幢宿舍(實例)分配給0到多個學(xué)生(實例)居住,但一個學(xué)生最多被分配住在一幢宿舍,也必分配在某一幢宿舍居住。多對多聯(lián)系(多對多聯(lián)系(m:n)若對于實體A中的每一個實例,實體B中有n個實例(n0)與之聯(lián)系,反之,對于對于實體B中的每一個實例,實體A中也有m個實例(m0)與之聯(lián)系,則稱實體A與實體B具有多對多聯(lián)系,記為m:n(讀作“m對n”或“多對多”)。下圖顯示了一個m:n聯(lián)系“選修”。選修聯(lián)系表明一個學(xué)生最多可以選修n門課程,每門課程最多有m個學(xué)生選修,而最少的情況是:一個學(xué)生最少可以選修0門課程,每門課程最少可以被0個學(xué)生選修。 v關(guān)系數(shù)據(jù)庫設(shè)計需要設(shè)計出數(shù)據(jù)庫賴以

14、實現(xiàn)的實現(xiàn)模型,現(xiàn)在用的實現(xiàn)模型都是關(guān)系模型。因此需要設(shè)計一個關(guān)系模型。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是關(guān)系,一個關(guān)系用一個關(guān)系模式表示。所有的關(guān)系模式組成數(shù)據(jù)庫的模式。所以關(guān)系數(shù)據(jù)庫設(shè)計就是要設(shè)計出數(shù)據(jù)庫的模式,也稱邏輯結(jié)構(gòu)或邏輯模型。1、實體的轉(zhuǎn)換、實體的轉(zhuǎn)換)ER圖中的每個實體,轉(zhuǎn)換為關(guān)系模型的一個關(guān)系,關(guān)系的屬性就是實體的屬性,關(guān)系的主鍵就是實體的標(biāo)識符。)一個關(guān)系用一個關(guān)系模式表示,在關(guān)系模式中,用下劃線來表示主鍵。)關(guān)系名及其屬性名可以用對應(yīng)實體的實體名和屬性名。)但在實際應(yīng)用中,為了便于用戶理解和交流,通常在E-R圖中,實體和屬性都使用漢字命名方式。但在轉(zhuǎn)換得到的關(guān)系模式中,關(guān)系名和屬性名一

15、般采用英文或拼音字母方式命名,目的是方便在DBMS中實施和應(yīng)用程序的編寫。 5.2.2 聯(lián)系的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換*通常將1:n聯(lián)系與n端實體轉(zhuǎn)換得到的關(guān)系合并,在n端實體對應(yīng)的關(guān)系中增加聯(lián)系本身的屬性和一端實體對應(yīng)關(guān)系的主鍵,新增屬性后,n端實體對應(yīng)關(guān)系的主鍵保持不變。*在1:n的聯(lián)系中,可以用父親和子女這兩個詞語表示1對多的聯(lián)系,父親在“1”那一側(cè),子女在“多”的那一側(cè)。在圖5-4(b)中,宿舍是父親實體,學(xué)生是子女實體。因此,1:n聯(lián)系轉(zhuǎn)換規(guī)則可以簡單的定義為:將聯(lián)系本身的屬性和代表父實體關(guān)系的主鍵置于代表子實體的關(guān)系中。【例【例5.2.4】將圖】將圖5-4(b)中學(xué)生住宿的局部中學(xué)生住宿的局

16、部ER圖轉(zhuǎn)換為關(guān)系模圖轉(zhuǎn)換為關(guān)系模型。型。首先,將圖中的兩個實體轉(zhuǎn)換為兩個關(guān)系:學(xué)生和宿舍;然后,將聯(lián)系本身的屬性和代表父實體關(guān)系的主鍵置于代表子實體的關(guān)系中。本例中,聯(lián)系本身沒有屬性,代表父實體關(guān)系的主鍵是宿舍編號,將其置于代表子實體的關(guān)系即學(xué)生關(guān)系中,得到如下所示的關(guān)系模式。 一個一個m:nm:n聯(lián)系轉(zhuǎn)換為一個關(guān)系,與該聯(lián)系相連的聯(lián)系轉(zhuǎn)換為一個關(guān)系,與該聯(lián)系相連的各實體的主鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系各實體的主鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,新關(guān)系的主鍵由相連的各實體的主鍵組的屬性,新關(guān)系的主鍵由相連的各實體的主鍵組成成( (多屬性構(gòu)成的組合鍵多屬性構(gòu)成的組合鍵) )。練習(xí)1 P74 設(shè)有商店和顧客實體,“商店”有屬性商店編號、商店名、地址、電話。顧客實體有屬性顧客編號、姓名、地址、年齡、性別。假設(shè)一個商店有多個顧客購物,一個顧客可以到多個商店購物,顧客每次去商店購物有一個消費金額和日期,而且規(guī)定每個顧客在每個商店每天最多消費一次 (1)試畫出ER圖,并注明屬性和實體聯(lián)系類型。 (2)根據(jù)轉(zhuǎn)換規(guī)則,將ER圖轉(zhuǎn)換成關(guān)系模式,要求標(biāo)注每個關(guān)系模式的主鍵 關(guān)系模式如下: 商店(商店編號,商店名,地址,電話) 顧客(顧客編號,姓名,地址,年齡,性別)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論