版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫技術(shù)應(yīng)用復(fù)習(xí)回顧:一、數(shù)據(jù)處理的三個階段二、數(shù)據(jù)庫系統(tǒng)的組成三、數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)(數(shù)據(jù)獨立性)1、三級模式2、二級映射四、數(shù)據(jù)模型四、數(shù)據(jù)模型 數(shù)據(jù)模型是數(shù)據(jù)的組織形式,并且可以用一種數(shù)據(jù)結(jié)構(gòu)來描述。 主要的數(shù)據(jù)模型有:層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型 關(guān)系數(shù)據(jù)模型是在1970年由E.F.Codd提出。 關(guān)系數(shù)據(jù)模型的理論基礎(chǔ)是集合論和數(shù)理邏輯。 關(guān)系模型的特點:(1)數(shù)據(jù)以表的形式組織(2)表中存放實體本身的屬性和表間的關(guān)系(3)有嚴格的數(shù)學(xué)基礎(chǔ),便于用數(shù)學(xué)理論進行討論研究(4)以表的形式組織數(shù)據(jù),通俗直觀易懂。2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)1.關(guān)系的基本名詞關(guān)系的
2、基本名詞v關(guān)系:一張滿足某些約束條件的二維表,如表一張滿足某些約束條件的二維表,如表2-1 Students關(guān)系。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。關(guān)系。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。 v元組:關(guān)系中的一行稱為一個元組。對應(yīng)表中的一關(guān)系中的一行稱為一個元組。對應(yīng)表中的一行,存放的是客觀世界的一個實例,如表行,存放的是客觀世界的一個實例,如表Students關(guān)關(guān)系中的一行,存放的是一個學(xué)生的數(shù)據(jù)系中的一行,存放的是一個學(xué)生的數(shù)據(jù) 。v屬性:關(guān)系中的一列,稱為一個屬性。對應(yīng)表中的關(guān)系中的一列,稱為一個屬性。對應(yīng)表中的一列。一個屬性表示實體的一個特征,如表一列。一個屬性表示實體的一個特征,如表 Students
3、關(guān)系中的關(guān)系中的Sno屬性表示學(xué)生實體的學(xué)號特征屬性表示學(xué)生實體的學(xué)號特征值。值。 v域:關(guān)系中一個屬性的取值范圍。例如,關(guān)系中一個屬性的取值范圍。例如,Ssex的取值的取值范圍是范圍是M, F,代表性別為男性和女性。,代表性別為男性和女性。 v關(guān)系示例關(guān)系示例:v關(guān)系的等價術(shù)語之間的對應(yīng)關(guān)系關(guān)系的等價術(shù)語之間的對應(yīng)關(guān)系一般用戶 關(guān)系模型 程序員 表(Table) 關(guān)系(Relation) 文件(File) 行(Row) 實體(Entity) 記錄(Record) 列(Column) 屬性(Attribute) 字段(Field) v關(guān)系中每一屬性都是最小的關(guān)系中每一屬性都是最小的。對表而言,
4、每。對表而言,每一個行與列的交叉點上只能存放一個單值一個行與列的交叉點上只能存放一個單值 。v關(guān)系中同一屬性的所有屬性值具有相同的數(shù)關(guān)系中同一屬性的所有屬性值具有相同的數(shù)據(jù)類型。據(jù)類型。對表而言,表中同一列中的所有列對表而言,表中同一列中的所有列值都必須屬于同一數(shù)據(jù)類型。例如表值都必須屬于同一數(shù)據(jù)類型。例如表2-1中中Students表的表的Sname列的所有值都是字符串類列的所有值都是字符串類型。型。 v關(guān)系中的屬性名不能重復(fù)。關(guān)系中的屬性名不能重復(fù)。對表而言,表中對表而言,表中每一列都有惟一的列名,不允許有兩個列有每一列都有惟一的列名,不允許有兩個列有相同的列名。例如表相同的列名。例如表2
5、-1 Students表不允許有表不允許有兩個列,列名都叫兩個列,列名都叫Sname。 v關(guān)系的屬性位置從左到右出現(xiàn)的順序無關(guān)緊要關(guān)系的屬性位置從左到右出現(xiàn)的順序無關(guān)緊要。對表而言,表中的列從左到右出現(xiàn)的順序無關(guān)緊對表而言,表中的列從左到右出現(xiàn)的順序無關(guān)緊要。即列的次序可以任意交換。例如表要。即列的次序可以任意交換。例如表2-1 Students表中,可以把表中,可以把Sname列放在第一列,也列放在第一列,也可以是第二列等等。可以是第二列等等。v關(guān)系中任意兩個元組不能完全相同關(guān)系中任意兩個元組不能完全相同。對表而言,對表而言,表中任意兩個行不能完全相同,即每一行都是惟表中任意兩個行不能完全相
6、同,即每一行都是惟一的,沒有重復(fù)的行。一的,沒有重復(fù)的行。v關(guān)系中的元組從上到下出現(xiàn)的順序無關(guān)緊要關(guān)系中的元組從上到下出現(xiàn)的順序無關(guān)緊要。對對表而言,表中的行從上到下出現(xiàn)的順序也無關(guān)緊表而言,表中的行從上到下出現(xiàn)的順序也無關(guān)緊要,即行的次序可以任意交換。要,即行的次序可以任意交換。v滿足上述條件的表才能稱作關(guān)系。滿足上述條件的表才能稱作關(guān)系。v當我們把關(guān)系和表看作是等價的時候,即默認當我們把關(guān)系和表看作是等價的時候,即默認此表是滿足上述關(guān)系的性質(zhì)的。此表是滿足上述關(guān)系的性質(zhì)的。v理解關(guān)系的性質(zhì):橫向上看,一個關(guān)系可以看理解關(guān)系的性質(zhì):橫向上看,一個關(guān)系可以看作是若干個元組的集合;縱向上看,一個
7、關(guān)系作是若干個元組的集合;縱向上看,一個關(guān)系可以看作是若干個屬性的集合。集合的理論表可以看作是若干個屬性的集合。集合的理論表明,集合中不允許包含重復(fù)元素的,因而可以明,集合中不允許包含重復(fù)元素的,因而可以解釋關(guān)系的解釋關(guān)系的6條性質(zhì)。條性質(zhì)。3. 關(guān)系的候選鍵與主鍵關(guān)系的候選鍵與主鍵v表中某一列(或若干列的最小組合)的值能惟表中某一列(或若干列的最小組合)的值能惟一標識一個行,稱該列或列組為候選鍵。如一標識一個行,稱該列或列組為候選鍵。如Students表的表的Sno列,就是一個候選鍵。因為,列,就是一個候選鍵。因為,給定一個給定一個Sno的值,如的值,如20030101,就能確定表中,就能確
8、定表中惟一的一行,第惟一的一行,第4行。行。v對于一個表,可能有多個候選鍵對于一個表,可能有多個候選鍵 。v候選鍵取決于應(yīng)用范圍候選鍵取決于應(yīng)用范圍,如給定學(xué)院哪,沒有重如給定學(xué)院哪,沒有重復(fù)的學(xué)生姓名,則復(fù)的學(xué)生姓名,則Sname是是Students表的一個候表的一個候選鍵。選鍵。v如果一個表有多個候選鍵,數(shù)據(jù)庫設(shè)計者通如果一個表有多個候選鍵,數(shù)據(jù)庫設(shè)計者通常選擇其中一個候選鍵作為區(qū)分行的惟一性常選擇其中一個候選鍵作為區(qū)分行的惟一性標識符,稱為主鍵標識符,稱為主鍵(primary key,PK)。如果。如果一個表只有一個候選鍵,那么這個候選鍵就一個表只有一個候選鍵,那么這個候選鍵就作為主鍵。
9、例如,在作為主鍵。例如,在Students表,把表,把Sno作為作為該表的主鍵。該表的主鍵。v因為主鍵是候選鍵之一,而根據(jù)候選鍵的定因為主鍵是候選鍵之一,而根據(jù)候選鍵的定義,候選鍵列上的各個值都惟一,因此主鍵義,候選鍵列上的各個值都惟一,因此主鍵列上的各個值也都惟一。列上的各個值也都惟一。4. 關(guān)系模式關(guān)系模式v關(guān)系模式是關(guān)系的形式化描述。關(guān)系模式是關(guān)系的形式化描述。v最簡單的表示為:最簡單的表示為:關(guān)系名(屬性名關(guān)系名(屬性名1,屬性名屬性名2,屬性名屬性名n) 注意:注意:主鍵要用下劃線表明。但有時,關(guān)系模式主鍵要用下劃線表明。但有時,關(guān)系模式中并沒有表明主鍵。中并沒有表明主鍵。例如:例如
10、:Students關(guān)系的關(guān)系模式為:關(guān)系的關(guān)系模式為:Students(Sno,Sname,Ssex,Sbirthdate,Sdept)v關(guān)系模式即是一個表的表頭描述。關(guān)系模式即是一個表的表頭描述。v表頭也稱為關(guān)系的結(jié)構(gòu)、關(guān)系的型等。表頭也稱為關(guān)系的結(jié)構(gòu)、關(guān)系的型等。v除表頭一行以外的所有行的集合除表頭一行以外的所有行的集合(即表內(nèi)即表內(nèi)容容), 稱為關(guān)系的值。稱為關(guān)系的值。v一個關(guān)系一個關(guān)系(表表),由表頭和表內(nèi)容兩部分組,由表頭和表內(nèi)容兩部分組成,表頭是相對不變的,而表內(nèi)容是經(jīng)常成,表頭是相對不變的,而表內(nèi)容是經(jīng)常改變的。如改變的。如Students表中,當有新學(xué)生入表中,當有新學(xué)生入學(xué)時
11、,就增加若干行,當學(xué)生畢業(yè)時,就學(xué)時,就增加若干行,當學(xué)生畢業(yè)時,就要刪除若干行,所以表是動態(tài)的。要刪除若干行,所以表是動態(tài)的。 5. 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫v關(guān)系數(shù)據(jù)庫是相互關(guān)聯(lián)的表或者說關(guān)系的集合關(guān)系數(shù)據(jù)庫是相互關(guān)聯(lián)的表或者說關(guān)系的集合v因為一個表存放的是某一應(yīng)用領(lǐng)域的一個實體或?qū)嵰驗橐粋€表存放的是某一應(yīng)用領(lǐng)域的一個實體或?qū)嶓w間的聯(lián)系,如體間的聯(lián)系,如Students表存放的是學(xué)生這個實體表存放的是學(xué)生這個實體(集),(集),Courses表存放的是課程這個實體(集),表存放的是課程這個實體(集),Enrollment表存放的學(xué)生實體與課程實體之間的聯(lián)表存放的學(xué)生實體與課程實體之間的聯(lián)系,這
12、里為選課聯(lián)系。因此關(guān)系數(shù)據(jù)庫中存放的是系,這里為選課聯(lián)系。因此關(guān)系數(shù)據(jù)庫中存放的是某一應(yīng)用領(lǐng)域中的所有實體和實體之間的聯(lián)系。某一應(yīng)用領(lǐng)域中的所有實體和實體之間的聯(lián)系。 v一個關(guān)系用一個關(guān)系模式表示,所有關(guān)系模式集合一個關(guān)系用一個關(guān)系模式表示,所有關(guān)系模式集合構(gòu)成數(shù)據(jù)庫的模式,它是數(shù)據(jù)庫整體邏輯結(jié)構(gòu)的描構(gòu)成數(shù)據(jù)庫的模式,它是數(shù)據(jù)庫整體邏輯結(jié)構(gòu)的描述。述。2.2 關(guān)系模型的數(shù)據(jù)完整性關(guān)系模型的數(shù)據(jù)完整性v關(guān)系模型的數(shù)據(jù)完整性指的是完整性關(guān)系模型的數(shù)據(jù)完整性指的是完整性規(guī)則。規(guī)則。v完整性規(guī)則包括實體完整性規(guī)則、參完整性規(guī)則包括實體完整性規(guī)則、參照完整性規(guī)則和用戶自定義完整性規(guī)照完整性規(guī)則和用戶自定
13、義完整性規(guī)則三大類。則三大類。v實體完整性和參照完整性是關(guān)系模型實體完整性和參照完整性是關(guān)系模型必須滿足的兩個完整性規(guī)則。必須滿足的兩個完整性規(guī)則。 1. 實體完整性規(guī)則實體完整性規(guī)則v實體完整性規(guī)則實體完整性規(guī)則是表中任意一行的主鍵值不能是表中任意一行的主鍵值不能為空值。為空值。v空值,用空值,用“null”表示,大小寫一樣??罩凳巧斜硎荆笮懸粯?。空值是尚未確定的值或不確定的值。如未確定的值或不確定的值。如Enrollment表中表中的的Grade值。值。v空值和數(shù)值型列的空值和數(shù)值型列的0值以及字符型列的空字符串值以及字符型列的空字符串的不同,數(shù)值型列的的不同,數(shù)值型列的0值與字符型列
14、的空字符串值與字符型列的空字符串都是確定的值。都是確定的值。v根據(jù)主鍵的定義,主鍵值必須惟一。因此,實根據(jù)主鍵的定義,主鍵值必須惟一。因此,實體完整性也可定義為:主鍵值惟一且不能為空體完整性也可定義為:主鍵值惟一且不能為空值。表中任意一行的主鍵值不能為空值。值。表中任意一行的主鍵值不能為空值。v完整性的意義:一個表對應(yīng)存放一個實體,表完整性的意義:一個表對應(yīng)存放一個實體,表中的每一行代表實體中的一個實例。如學(xué)生表中的每一行代表實體中的一個實例。如學(xué)生表用來存放學(xué)生實體,該表中的一行代表一個學(xué)用來存放學(xué)生實體,該表中的一行代表一個學(xué)生,一個學(xué)生有惟一的一個學(xué)號。如果主鍵值生,一個學(xué)生有惟一的一個
15、學(xué)號。如果主鍵值SnoSno為空值,表明該學(xué)生的學(xué)號不能確定,也就為空值,表明該學(xué)生的學(xué)號不能確定,也就是說沒有惟一確定的學(xué)號,這只能說明他是說沒有惟一確定的學(xué)號,這只能說明他/ /她不她不是學(xué)生,因此就不應(yīng)該存放在學(xué)生表中。是學(xué)生,因此就不應(yīng)該存放在學(xué)生表中。v實體完整性的作用:一旦定義表的主鍵,實體完整性的作用:一旦定義表的主鍵,RDBMS將自動地對該表中的每一行的主鍵值將自動地對該表中的每一行的主鍵值進行檢查,若發(fā)現(xiàn)主鍵值為空或不惟一,進行檢查,若發(fā)現(xiàn)主鍵值為空或不惟一,RDBMS會給出錯誤信息,這樣就能確保表中會給出錯誤信息,這樣就能確保表中的每一行是惟一的,可以區(qū)分的。的每一行是惟一
16、的,可以區(qū)分的。2. 參照完整性規(guī)則參照完整性規(guī)則v參照完整性規(guī)則參照完整性規(guī)則是一個表的外鍵值可以為空值。是一個表的外鍵值可以為空值。若不為空值,則必須等于另一個表中主鍵的某若不為空值,則必須等于另一個表中主鍵的某個值。個值。 v外鍵(外鍵(Foreign Key,F(xiàn)K):若一個表):若一個表R1中的中的一個列或列組對應(yīng)另一個表一個列或列組對應(yīng)另一個表R2的主鍵,那么該的主鍵,那么該列或列組稱為表列或列組稱為表R1的外鍵。的外鍵。v外鍵可以由一個或多個列組成,可以有重復(fù)值。外鍵可以由一個或多個列組成,可以有重復(fù)值。v外鍵與主鍵的關(guān)系示例外鍵與主鍵的關(guān)系示例:圖2-1 學(xué)生、課程、選課表主鍵、
17、外鍵參照關(guān)系圖v外鍵的取值的兩種情況分析:外鍵的取值的兩種情況分析:圖2-2系表、課程表主鍵、外鍵參照關(guān)系圖 v參照完整性的作用:在關(guān)系數(shù)據(jù)庫系統(tǒng)中,參照完整性的作用:在關(guān)系數(shù)據(jù)庫系統(tǒng)中,一旦定義了表的外鍵,也即定義了外鍵與另一旦定義了表的外鍵,也即定義了外鍵與另一個表的主鍵的參照與被參照聯(lián)系,一個表的主鍵的參照與被參照聯(lián)系,RDBMS將根據(jù)外鍵的定義,自動檢查表中將根據(jù)外鍵的定義,自動檢查表中的每一行,若發(fā)現(xiàn)外鍵值違反外鍵的規(guī)則,的每一行,若發(fā)現(xiàn)外鍵值違反外鍵的規(guī)則,RDBMS會給出錯誤信息,要求用戶糾正,會給出錯誤信息,要求用戶糾正,這樣能確保表之間的參照與被參照聯(lián)系的正這樣能確保表之間的
18、參照與被參照聯(lián)系的正確性。確性。v說明:說明:實體完整性和參照完整性在關(guān)系實體完整性和參照完整性在關(guān)系模型中是必須實現(xiàn)的。遺憾的是模型中是必須實現(xiàn)的。遺憾的是SQL Server 2000中可以定義沒有主鍵的表,中可以定義沒有主鍵的表,即沒有實現(xiàn)實體完整性。另外,即使表即沒有實現(xiàn)實體完整性。另外,即使表有外鍵,也可以不定義為外鍵,沒有實有外鍵,也可以不定義為外鍵,沒有實現(xiàn)參照完整性?,F(xiàn)參照完整性。 3. 用戶自定義完整性規(guī)則用戶自定義完整性規(guī)則v用戶自定義完整性規(guī)則用戶自定義完整性規(guī)則是表格設(shè)計者為了保證是表格設(shè)計者為了保證表中某些行、列的數(shù)據(jù)滿足具體應(yīng)用要求而自表中某些行、列的數(shù)據(jù)滿足具體應(yīng)
19、用要求而自定義的一些規(guī)則。定義的一些規(guī)則。v自定義規(guī)則往往根據(jù)實際的應(yīng)用背景提出來。自定義規(guī)則往往根據(jù)實際的應(yīng)用背景提出來。 例如:在例如:在Students表中,表中,Ssex列的取值范圍只列的取值范圍只能是能是F/ M, 因為實際情況是性別只能為男因為實際情況是性別只能為男或女?;蚺關(guān)系代數(shù)關(guān)系代數(shù)是對關(guān)系型數(shù)據(jù)庫操作的抽象語言,也稱是對關(guān)系型數(shù)據(jù)庫操作的抽象語言,也稱查詢語言。這里的查詢,包括數(shù)據(jù)的插入、刪除、查詢語言。這里的查詢,包括數(shù)據(jù)的插入、刪除、修改、查找等,即數(shù)據(jù)的操縱。修改、查找等,即數(shù)據(jù)的操縱。v關(guān)系代數(shù)只對數(shù)據(jù)操縱進行抽象表示,基于關(guān)系代關(guān)系代數(shù)只對數(shù)據(jù)操縱進行抽象表
20、示,基于關(guān)系代數(shù)實現(xiàn)的關(guān)系型數(shù)據(jù)庫操縱語言,如數(shù)實現(xiàn)的關(guān)系型數(shù)據(jù)庫操縱語言,如SQL,才能對,才能對數(shù)據(jù)庫中的數(shù)據(jù)進行實際操作。數(shù)據(jù)庫中的數(shù)據(jù)進行實際操作。v關(guān)系代數(shù)的作用只是用來衡量其它實現(xiàn)了的查詢語關(guān)系代數(shù)的作用只是用來衡量其它實現(xiàn)了的查詢語言如言如SQL等的查詢能力。等的查詢能力。2.3 關(guān)系模型的數(shù)據(jù)操作關(guān)系模型的數(shù)據(jù)操作關(guān)系代數(shù)關(guān)系代數(shù)v關(guān)系代數(shù)中,關(guān)系代數(shù)中,運算運算的對象是關(guān)系(表),運算的對象是關(guān)系(表),運算的結(jié)果是一個新關(guān)系(表)。的結(jié)果是一個新關(guān)系(表)。v關(guān)系的運算分為兩大類,即傳統(tǒng)的集合運算和關(guān)系的運算分為兩大類,即傳統(tǒng)的集合運算和專門的關(guān)系運算。專門的關(guān)系運算。v傳
21、統(tǒng)的集合運算:傳統(tǒng)的集合運算:(并運算),(差運(并運算),(差運算),算),(交運算),(交運算),(笛卡兒積運算)。(笛卡兒積運算)。v專門的關(guān)系運算:專門的關(guān)系運算:(選擇),(選擇),(投影),(投影),(連接),(連接),(除)。(除)。1. 傳統(tǒng)的關(guān)系運算傳統(tǒng)的關(guān)系運算v兩個表的兼容性。所謂兼容,即兩個表的表頭兩個表的兼容性。所謂兼容,即兩個表的表頭結(jié)構(gòu)相同,且對應(yīng)列的數(shù)據(jù)類型相同。結(jié)構(gòu)相同,且對應(yīng)列的數(shù)據(jù)類型相同。v二元運算:要求有兩個表參加運算,并且兩個二元運算:要求有兩個表參加運算,并且兩個表是兼容的。表是兼容的。 v并運算(并運算( RS ):給定兩個兼容的表:給定兩個兼容
22、的表R和和S,R和和S并運算的結(jié)果是一個與并運算的結(jié)果是一個與R和和S兼容的新表。兼容的新表。該表由屬于該表由屬于R的所有行加上屬于的所有行加上屬于S的所有行組成,的所有行組成,但必須刪去重復(fù)的行,記作但必須刪去重復(fù)的行,記作RS。v并運算舉例并運算舉例運算含義:包含一年級學(xué)生或獲獎學(xué)生的信息運算含義:包含一年級學(xué)生或獲獎學(xué)生的信息 v差運算(差運算( R-S ):給定兩個兼容的表:給定兩個兼容的表R和和S,R和和S差運算的結(jié)果是一個與差運算的結(jié)果是一個與R和和S兼兼容的新表。該表由屬于容的新表。該表由屬于R而不屬于而不屬于S的所的所有行組成,記作有行組成,記作R-S。舉例(見下頁)。舉例(見
23、下頁)v交運算(交運算( RS ):給定兩個兼容的表:給定兩個兼容的表R和和S,R和和S交運算的結(jié)果是一個與交運算的結(jié)果是一個與R和和S兼容的新表,該表由既屬于兼容的新表,該表由既屬于R又屬于又屬于S的的行組成,記作行組成,記作RS。舉例(見下頁)。舉例(見下頁)v差運算舉例差運算舉例v交運算舉例交運算舉例v笛卡兒積運算笛卡兒積運算(RS):簡稱積運算,也要求有兩個:簡稱積運算,也要求有兩個表參加運算,但這兩個表可以不兼容。表參加運算,但這兩個表可以不兼容。v笛卡兒積運算定義:給定兩個表笛卡兒積運算定義:給定兩個表R和和S,R和和S的積的積運算的結(jié)果是一個新表,新表中的行由運算的結(jié)果是一個新表
24、,新表中的行由R中的每一中的每一行和行和S中的每一行組合而成。記作中的每一行組合而成。記作RS。v笛卡兒積運算的過程:首先取笛卡兒積運算的過程:首先取R的第一行與的第一行與S的每的每一行組合,然后取一行組合,然后取R的第二行與的第二行與S的每一行組合,的每一行組合,依次類推,直到依次類推,直到R中的所有行處理完畢。中的所有行處理完畢。笛卡兒積運算笛卡兒積運算(RS)v若若R表有表有m個列,個列,S表有表有n個列,則個列,則RS是是一個具有(一個具有(m + n)個列的表,且)個列的表,且RS表表中的任一行的前中的任一行的前m列是列是R表的一個行,后表的一個行,后n列是列是S表的一個行。如果表的
25、一個行。如果R有有i行,行,S有有j行,行,則則RS有(有(ij)行??梢妰蓚€表的笛卡)行??梢妰蓚€表的笛卡兒積運算結(jié)果會很大。兒積運算結(jié)果會很大。v新表可能包含重復(fù)的列,因此不一定是一新表可能包含重復(fù)的列,因此不一定是一個關(guān)系個關(guān)系 。v笛卡兒積運算舉例笛卡兒積運算舉例2. 專門的關(guān)系運算專門的關(guān)系運算 選擇運算選擇運算:從指定的:從指定的R表中選擇某些滿足條表中選擇某些滿足條件的行構(gòu)成一個新表。記作件的行構(gòu)成一個新表。記作 F(R) 其中,其中, 是選擇運算的符號;是選擇運算的符號; F 是選擇條件,寫成是選擇條件,寫成的下標;的下標; R 寫在括號中,是被選擇的表名。寫在括號中,是被選擇
26、的表名。 舉例:舉例:從從Students表找出所有女同學(xué)的情況表找出所有女同學(xué)的情況 Ssex=F(Students) 結(jié)果:結(jié)果:v在選擇運算中在選擇運算中關(guān)鍵是寫出查詢條件關(guān)鍵是寫出查詢條件v單個查詢條件的形式單個查詢條件的形式:AiAj 其中,其中,Ai是表是表R中的列名;中的列名;Aj是常量值;是常量值; 是比較運算符,可以是:是比較運算符,可以是:=、!= 、和和之一。之一。例如:學(xué)號為例如:學(xué)號為20010102的條件為:的條件為: Sno 20010102v又 如 : 所 在 系 為 計 算 機 系 的 條 件 為又 如 : 所 在 系 為 計 算 機 系 的 條 件 為 :S
27、dept=Computer v多個查詢條件多個查詢條件 用用(邏輯與(邏輯與,也可用也可用and)、)、(邏輯或(邏輯或, or)、)、(邏輯非(邏輯非, not)將幾個單個)將幾個單個查詢條件組合起來構(gòu)成查詢條件組合起來構(gòu)成 例如:從例如:從Students表查找藝術(shù)系女同學(xué)的信息表查找藝術(shù)系女同學(xué)的信息 Sdept=Art SsexF 等價于:等價于:Sdept=Art and SsexF 表示為:表示為: Sdept=Art and Ssex=F(Students) 結(jié)果:結(jié)果:v投影運算投影運算:從指定的表:從指定的表R中選擇某些列構(gòu)成一個中選擇某些列構(gòu)成一個新表,記作新表,記作A(R
28、)。)。v其中,其中,A是一個列名或多個列名,多個列名之間是一個列名或多個列名,多個列名之間用逗號分隔,用逗號分隔,A寫作寫作的下標;的下標;R被投影的表名。被投影的表名。v投影結(jié)果表中的重復(fù)行要消除。投影結(jié)果表中的重復(fù)行要消除。 例如:從例如:從Students表中選擇表中選擇Sno、Sname和和Sdept三個列組成新表的投影運算可寫成:三個列組成新表的投影運算可寫成: vSno,Sname,Sdept(Students)vSno,Sname,SdeptSno,Sname,Sdept(StudentsStudents)結(jié)果:)結(jié)果:v連接運算連接運算:從:從R與與S的笛卡兒積的笛卡兒積RS
29、中選擇滿中選擇滿足連接條件的行。足連接條件的行。 記作記作 : = = ABAB(R RS S) 兩種特殊的連接:等值連接和自然連接兩種特殊的連接:等值連接和自然連接v等值連接:等值連接:連接條件用連接條件用= =,即,即ABAB A=B A=B 例例 StudentsStudents和和EnrollmentEnrollment的等值連接:的等值連接:v StudentsStudents和和EnrollmentEnrollment的等值連接的結(jié)果的等值連接的結(jié)果自然連接自然連接:若等值連接的連接條件中列名相:若等值連接的連接條件中列名相同,且結(jié)果表中消除了重復(fù)列,則把此種等同,且結(jié)果表中消除了
30、重復(fù)列,則把此種等值連接稱為自然連接,記作值連接稱為自然連接,記作RSRS。自然連接中不必標注連接條件自然連接中不必標注連接條件。例如:例如:StudentsStudents表和表和EnrollmentEnrollment表的自然連表的自然連 接表示為:接表示為:StudentsEnrollmentStudentsEnrollmentStudents表和表和Enrollment表自然連接的結(jié)果表自然連接的結(jié)果v自然連接是最常見的連接運算。除非有特別的自然連接是最常見的連接運算。除非有特別的聲明,連接一般指的是自然連接。聲明,連接一般指的是自然連接。v自然連接的執(zhí)行:先計算笛卡兒積、再進行選自然
31、連接的執(zhí)行:先計算笛卡兒積、再進行選擇運算、最后進行投影運算,消除重復(fù)的列得擇運算、最后進行投影運算,消除重復(fù)的列得到結(jié)果。到結(jié)果。v自然運算與等值連接的區(qū)別:自然運算與等值連接的區(qū)別:自然連接要求連接的兩個表有相同的列(公共自然連接要求連接的兩個表有相同的列(公共列),等值連接則不要求。列),等值連接則不要求。自然連接結(jié)果表中去掉了重復(fù)的列,等值連接自然連接結(jié)果表中去掉了重復(fù)的列,等值連接卻可能包含重復(fù)的列卻可能包含重復(fù)的列。v除法運算(除法運算(R RS S)設(shè)關(guān)系設(shè)關(guān)系R R定義在屬性集定義在屬性集A A上,關(guān)系上,關(guān)系S S定義在屬性定義在屬性集集B B上,且上,且B B是是A A的子
32、集,的子集,C=A-BC=A-B。則,。則,R RS S運算運算得到了一個在屬性集得到了一個在屬性集C C上的關(guān)系,這個關(guān)系的上的關(guān)系,這個關(guān)系的行與行與S S中每一行的組合(笛卡兒積)能在中每一行的組合(笛卡兒積)能在R R中找中找到。到。除法運算操作步驟:除法運算操作步驟:(1)T1c(R)(2)T2c(( T1 S )-R)(3)T(T1-T2)例 R S RSABa1a2b1b2c1B12Aab2.4 關(guān)系代數(shù)綜合實例關(guān)系代數(shù)綜合實例v本節(jié)用到學(xué)生選課數(shù)據(jù)庫,包括學(xué)生本節(jié)用到學(xué)生選課數(shù)據(jù)庫,包括學(xué)生Students、課程課程Courses、選課(、選課(Enrollment)三個表。)
33、三個表。v每個表的的關(guān)系模式如下,數(shù)據(jù)樣本見圖每個表的的關(guān)系模式如下,數(shù)據(jù)樣本見圖2-1 Students(Sno, Sname, Ssex, Sage,Sdept) Courses(Cno, Cname, PreCno, Credits) Enrollment(Sno, Cno, Grade) v用關(guān)系代數(shù)表示查詢。解題步驟:用關(guān)系代數(shù)表示查詢。解題步驟:1.根據(jù)題意確定要輸出的列以及這些列所在的表,根據(jù)題意確定要輸出的列以及這些列所在的表,由此確定被操作的表名稱,可能有多個。由此確定被操作的表名稱,可能有多個。2.根據(jù)題意,確定選擇條件以及選擇條件中用到根據(jù)題意,確定選擇條件以及選擇條件中
34、用到的列在哪個表中,這里又確定一些被操作的表的列在哪個表中,這里又確定一些被操作的表名稱。名稱。 3.根據(jù)根據(jù)1、2兩步確定的表名稱形成所有要操作的兩步確定的表名稱形成所有要操作的表名集。表名集。 4.若表名集中只有一個表,則如果要輸出的列是這若表名集中只有一個表,則如果要輸出的列是這個表的全部列,就只用選擇運算;否則先用選擇,個表的全部列,就只用選擇運算;否則先用選擇,后用投影選取要輸出的(屬性)列。后用投影選取要輸出的(屬性)列。5.如表名集中有兩個或多個表,則一般用自然連接如表名集中有兩個或多個表,則一般用自然連接將它們連接起來,如果發(fā)現(xiàn)不存在公共列,即幾將它們連接起來,如果發(fā)現(xiàn)不存在公
35、共列,即幾個表不能進行自然連接,則要在表名集中加入一個表不能進行自然連接,則要在表名集中加入一個或多個中間表,中間表中含有能進行自然連接個或多個中間表,中間表中含有能進行自然連接的公共列,從而使得表名集中全部表可以進行自的公共列,從而使得表名集中全部表可以進行自然連接;將選擇條件作用于自然連接后產(chǎn)生的新然連接;將選擇條件作用于自然連接后產(chǎn)生的新表上,之后一般用投影操作選取要輸出的列。表上,之后一般用投影操作選取要輸出的列。 實例實例【例【例2.1】查詢計算機系學(xué)生的學(xué)號和姓名?!坎樵冇嬎銠C系學(xué)生的學(xué)號和姓名。 1.根據(jù)題目確定要輸出的列為:Sno,Sname,都在Students表中;2.根據(jù)
36、題意,要選擇的是計算機系的學(xué)生,確定選擇條件是:Sdept=Computer, 選擇條件中用到的列Sdept也在Students表中;3.根據(jù)1,2兩步確定的所有的表名,形成表名集為 Students;4.因為表名集中只有一個Students表,并且因為要輸出的列不是Students表的全部列,則先用選擇,后用投影選取要輸出的列Sno,Sname。綜上,該查詢的關(guān)系代數(shù)表達式為:綜上,該查詢的關(guān)系代數(shù)表達式為:Sno,Sname( Sdept=Computer(Students) )結(jié)果:結(jié)果: 【例【例2.2】查詢選修了課程號為】查詢選修了課程號為C2的學(xué)生學(xué)號、姓名、的學(xué)生學(xué)號、姓名、所在
37、系。所在系。 1.根據(jù)題目確定要輸出的列為:Sno,Sname,Sdept,都在Students表中;2.根據(jù)題意,課程號為C2,則選擇條件是Cno=C2, 因為Cno列在Enrollment表中,所以也用到Enrollment表;3.根據(jù)1,2兩步確定用到的表名集為Students, Enrollment; 4.因為表名集中有兩個表,則用自然連接將它們連接起來,這兩個表存在共同的列為Sno,可以進行自然連接。將選擇條件Cno=C2作用于自然連接后產(chǎn)生的新表上,并用投影操作選取要輸出的列Sno,Sname,Sdept。綜上,該查詢的關(guān)系代數(shù)表達式為:綜上,該查詢的關(guān)系代數(shù)表達式為:Sno,Sn
38、ame,Sdept(Cno=C2(StudentsEnrollment)結(jié)果:結(jié)果:【例【例2.3】查詢選修了課程名為】查詢選修了課程名為Database的學(xué)生學(xué)號和的學(xué)生學(xué)號和姓名。姓名。 1.根據(jù)題目確定要輸出的列為:Sno,Sname,都在Students表中;2.根據(jù)題意,課程名為Database,則選擇的條件為Cname= Database,因為Cname列在Courses表中,所以也用到Courses表;3.根據(jù)1,2兩步確定用到的表名集為Students、Courses; 4.因為表名集中有兩個表,則要用自然連接將它們連接起來,但因為這兩表不存在共同的列,不能進行自然連接。因此要
39、加入中間表,中間表中應(yīng)含有能與其它兩個表進行自然連接的公共列,這個 表 就 是 E n r o l l m e n t 。 將 選 擇 條 件Cname=Database作用于自然連接后產(chǎn)生的新表上,并用投影操作選取要輸出的列Sno,Sname。綜上,該查詢的關(guān)系代數(shù)表達式為,結(jié)果:綜上,該查詢的關(guān)系代數(shù)表達式為,結(jié)果:Students.Sno,Sname,(Cname=Database( StudentsEnrollmentCourses)【例【例2.4】查詢選修了課程名為】查詢選修了課程名為Database的學(xué)生學(xué)號、的學(xué)生學(xué)號、姓名、成績。姓名、成績。 1.根據(jù)題目確定要輸出的列為:Sn
40、o,Sname,Grade,其中Sno,Sname在Students表中,Grade列在Enrollment表中,所以用到Students表和Enrollment表; 2.根據(jù)題意,課程名為Database,則選擇的條件為Cname=Database,因為Cname列在Courses表中,所以也用到Courses表;3.根據(jù)1,2兩步確定所用到的表名集為Students, Enrollment, Courses;4.因為表名集中有三個表,則要用自然連接將它們連接起來, Enrollment表中含有與Students表公共的列Sno,含有與Courses表公共的列Cno,從而這三 個 表 可 以
41、 實 現(xiàn) 自 然 連 接 。 將 選 擇 條 件Cname=Database作用于自然連接后產(chǎn)生的新表上,并用投影操作選取要輸出的列Sno,Sname,Grade。 綜上,該查詢的關(guān)系代數(shù)表達式為:綜上,該查詢的關(guān)系代數(shù)表達式為:Students.Sno,Sname,Grade(Cname= Database(StudentsEnrollmentCourses)結(jié)果:結(jié)果: 【例【例2.5】將新入學(xué)的學(xué)生信息(】將新入學(xué)的學(xué)生信息( S99205, Sala, F,20, Art)插入)插入Students表中。表中。分析:可以將這一行數(shù)據(jù)看成由一個元組構(gòu)成的表,將該表與Students表進行并運算。因此,該插入操作可表示為: Students S99205, S
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版監(jiān)控設(shè)備銷售與維護保養(yǎng)合同3篇
- 二零二五年度果樹種植與農(nóng)業(yè)科研合作承包合同2篇
- 二零二五版建筑工地場地勘查與風(fēng)險評估委托合同3篇
- 二零二五版國際機場ATM設(shè)備場地租賃與廣告合作合同3篇
- 二零二五版礦業(yè)勘探承包作業(yè)合同樣本2篇
- 二零二五版智能停車場設(shè)計與施工合同3篇
- 二零二五版板房租賃合同附帶設(shè)施設(shè)備維修協(xié)議3篇
- 二零二五版抵押房屋買賣合同與房屋保險服務(wù)合同3篇
- 二零二五版辦公場地租賃與人力資源服務(wù)合同范本3篇
- 二零二五版雞蛋養(yǎng)殖基地技術(shù)改造合同3篇
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測 (一)化學(xué)試題(含答案)
- 《國有控股上市公司高管薪酬的管控研究》
- 餐飲業(yè)環(huán)境保護管理方案
- 人教版【初中數(shù)學(xué)】知識點總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 食品安全分享
- 礦山機械設(shè)備安全管理制度
- 計算機等級考試二級WPS Office高級應(yīng)用與設(shè)計試題及答案指導(dǎo)(2025年)
- 造價框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個案護理
- 醫(yī)護人員禮儀培訓(xùn)
評論
0/150
提交評論