




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)系(guānxì)模型與關(guān)系(guānxì)代數(shù)第一頁(yè),共47頁(yè)。目錄關(guān)系(guānxì)模型2.1關(guān)系(guānxì)代數(shù)2.2第二頁(yè),共47頁(yè)。關(guān)系(guānxì)模型系統(tǒng)而嚴(yán)格地提出關(guān)系模型的是IBM公司的1970年提出關(guān)系數(shù)據(jù)模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫(kù)系統(tǒng)。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是當(dāng)今的主流數(shù)據(jù)庫(kù)管理系統(tǒng)。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)(shùjùjiéɡòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。第三頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系(guānxì)關(guān)系(guānxì)模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,它就是二維表,亦稱為關(guān)系(guānxì)。關(guān)系(guānxì)數(shù)據(jù)庫(kù)是表的集合,即關(guān)系(guānxì)的集合。表是一個(gè)實(shí)體集,一行就是一個(gè)實(shí)體,它由共同表示一個(gè)實(shí)體的有關(guān)聯(lián)的若干屬性的值所構(gòu)成。由于一個(gè)表是這種有關(guān)聯(lián)的值的集合(即行的集合),而表這個(gè)概念和數(shù)學(xué)上的關(guān)系(guānxì)概念密切相關(guān),因此稱為關(guān)系(guānxì)模型。關(guān)系(guānxì)模型中,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系都是用關(guān)系(guānxì)來(lái)表示。第四頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義(dìngyì)域——是一組具有相同數(shù)據(jù)類型的值的集合。笛卡爾積給定一組域D1,D2,…,Dn,它們之中可以有相同的域。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}其中,集合中的每一個(gè)元素(d1,d2,…,dn)稱為一個(gè)n元組,簡(jiǎn)稱為元組;元素中的每一個(gè)值di稱為一個(gè)分量。若Di(i=1,2,…,n)為有限集,假設(shè)其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:
舉例:給定兩個(gè)域:學(xué)生的姓名(xìngmíng)集合:D1={‘李小勇’,‘劉方晨’,‘王紅敏’}課程的名稱集合:D2={‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論’,‘操作系統(tǒng)’}則D1,D2的笛卡爾積為:D1×D2={(‘李小勇’,‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論’),(‘李小勇’,‘操作系統(tǒng)’),(‘劉方晨’,‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論’),(‘劉方晨’,‘操作系統(tǒng)’),(‘王紅敏’,‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論’),(‘王紅敏’,‘操作系統(tǒng)’)}第五頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系D1×D2×…×Dn的子集稱為在域D1,D2,…,Dn上的關(guān)系,表示為:r(D1,D2,…,Dn)其中,r表示關(guān)系的名字,n是關(guān)系的目或度(degree)。當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系;當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系。關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)于關(guān)系的一個(gè)元組,表的每列對(duì)應(yīng)于關(guān)系的一個(gè)域。由于域可以相同,為了(wèile)區(qū)別就必須給每列起一個(gè)名字,稱為屬性(attribute)。n目關(guān)系共有n個(gè)屬性。第六頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義超碼:對(duì)于關(guān)系r的一個(gè)或多個(gè)屬性的集合A,如果屬性集A可以(kěyǐ)唯一地標(biāo)識(shí)關(guān)系r中的一個(gè)元組,則稱屬性集A為關(guān)系r的一個(gè)超碼(superkey)。候選碼:對(duì)于關(guān)系r的一個(gè)或多個(gè)屬性的集合A,如果屬性集A的任意真子集都不能成為關(guān)系r的超碼,則稱屬性集A為候選碼(candidatekey)。主碼:若一個(gè)關(guān)系有多個(gè)候選碼,則可以(kěyǐ)選定其中的一個(gè)候選碼作為該關(guān)系的主碼??罩担核锌赡艿挠虻囊粋€(gè)取值,表明值未知或不存在。如果某學(xué)生的speciality屬性值為null,則表示該學(xué)生還沒(méi)有明確所學(xué)專業(yè),或不知道他的所學(xué)專業(yè)。舉例:Student關(guān)系(guānxì)studentNostudentNamesexbirthday speciality 0701001 李小勇 男1990-12-21 計(jì)算機(jī) 0701008 王紅 男1992-04-26 計(jì)算機(jī) 0802002 劉方晨 女1990-11-11 信息系統(tǒng) 0802005 王紅敏 女1990-10-01 信息系統(tǒng) 0703045 王紅 男1992-04-26 會(huì)計(jì)學(xué) 0703010 李宏冰 女1992-03-09 會(huì)計(jì)學(xué) 超碼:studentNo,{studentNo,studentName}、{studentNo,sex}、{studentNo,studentName,speciality}、…候選碼:studentNo和{studentName,speciality}——與語(yǔ)義有關(guān)主碼:studentNo第七頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系模式對(duì)于一個(gè)二維表,有表頭部分和表體部分,表頭部分定義了該表的結(jié)構(gòu),即定義了該表由哪些列構(gòu)成(假設(shè)由n列構(gòu)成),每個(gè)列的名字(míngzi)和取值范圍等;表體就是所有數(shù)據(jù)行的集合,每一個(gè)數(shù)據(jù)行都是由表頭部分規(guī)定的n列有關(guān)聯(lián)的取值的集合構(gòu)成。對(duì)應(yīng)于關(guān)系數(shù)據(jù)庫(kù),表的每一個(gè)數(shù)據(jù)行對(duì)應(yīng)于關(guān)系的一個(gè)元組,表體對(duì)應(yīng)于關(guān)系,關(guān)系是元組的集合,關(guān)系是值的概念;表頭部分對(duì)應(yīng)于關(guān)系模式,關(guān)系模式是型的概念,它定義了元組集合的結(jié)構(gòu),即定義了一個(gè)元組由哪些屬性構(gòu)成(假設(shè)由n個(gè)屬性構(gòu)成),每個(gè)屬性的名字(míngzi)和來(lái)自的域等.第八頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系(guānxì)模式關(guān)系(guānxì)的描述稱為關(guān)系(guānxì)模式(relationschema)。形式化地表示為:r(U,D,DOM,F)r為關(guān)系(guānxì)名,U為組成該關(guān)系(guānxì)的屬性名的集合,D為屬性集U中所有屬性所來(lái)自的域的集合,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系(guānxì)集合(即體現(xiàn)一個(gè)元組的各屬性取值之間的“關(guān)聯(lián)”性)。關(guān)系(guānxì)模式通常被簡(jiǎn)記為:r(U)或r(A1,A2,…,An)r為關(guān)系(guānxì)名,U為屬性名的集合{A1,A2,…,An}第九頁(yè),共47頁(yè)。關(guān)系(guānxì)數(shù)據(jù)結(jié)構(gòu)關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)也有型和值之分,型就是關(guān)系數(shù)據(jù)庫(kù)模式,即它所包含的所有關(guān)系模式的集合(jíhé);值就是這些關(guān)系模式在某一時(shí)刻所對(duì)應(yīng)的關(guān)系的集合(jíhé),通常就稱為關(guān)系數(shù)據(jù)庫(kù)實(shí)例。在實(shí)際應(yīng)用中,人們經(jīng)常把關(guān)系數(shù)據(jù)庫(kù)模式和關(guān)系數(shù)據(jù)庫(kù)實(shí)例都籠統(tǒng)地稱為關(guān)系數(shù)據(jù)庫(kù)。舉例(jǔlì):學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)ScoreDB的模式Class(classNo:char(6),className:varchar(30),institute:varchar(30),grade:smallint,classNum:tinyint)Student(studentNo:char(7),studentName:varchar(20),sex:char(2),birthday:datetime,native:varchar(20),nation:varchar(30),classNo:char(6))Course(courseNo:char(5),courseName:varchar(30),creditHour:numeric,courseHour:int,priorCourse:char(5))Score(studentNo:char(7),courseNo:char(5),term:char(5),score:numeric)
說(shuō)明:基本數(shù)據(jù)類型請(qǐng)參見(jiàn)P112~113第十頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件實(shí)體完整性若屬性集A是關(guān)系r的主碼,則A不能取空值null。例如,關(guān)系Student,由于studentNo是關(guān)系Student的主碼,因此它在任何時(shí)候的取值都不能為空值null,但其他屬性如sex、birthday、speciality等都可以取空值,表示(biǎoshì)當(dāng)時(shí)該屬性的值未知或不存在。如果主碼是由若干個(gè)屬性的集合構(gòu)成,則要求構(gòu)成主碼的每一個(gè)屬性的值都不能取空值。例如,學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)ScoreDB中的關(guān)系Score,它的主碼是{studentNo,courseNo,term},因此這3個(gè)屬性都不能取空值。第十一頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件參照完整性設(shè)F是關(guān)系r的一個(gè)屬性(或?qū)傩约?,Ks是關(guān)系s的主碼。如果F與Ks相對(duì)應(yīng),則稱F是關(guān)系r參照關(guān)系s的外碼(foreignkey),簡(jiǎn)稱F是關(guān)系r的外碼。并稱關(guān)系r為參照關(guān)系,關(guān)系s為被參照關(guān)系或目標(biāo)關(guān)系。若屬性(或?qū)傩约?F是關(guān)系r的外碼,它與關(guān)系s的主碼Ks相對(duì)應(yīng),則對(duì)于關(guān)系r中的每一個(gè)元組在屬性F上的取值要么為空值null,要么等于(děngyú)關(guān)系s中某個(gè)元組的主碼值。第十二頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件舉例:多對(duì)一聯(lián)系(liánxì)的屬性引用學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)ScoreDB中,學(xué)生關(guān)系Student與班級(jí)關(guān)系Class之間存在多對(duì)一的“歸屬”聯(lián)系(liánxì)。多對(duì)多聯(lián)系(liánxì)的聯(lián)系(liánxì)關(guān)系及屬性引用學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)ScoreDB中,假設(shè)每一個(gè)學(xué)生一個(gè)學(xué)期可以選修若干門課程,每一門課程同時(shí)有若干個(gè)學(xué)生選修,那么學(xué)生關(guān)系Student與課程關(guān)系Course之間存在多對(duì)多的“選修”聯(lián)系(liánxì),且課程的開(kāi)課學(xué)期term和修讀成績(jī)score為聯(lián)系(liánxì)屬性。關(guān)系內(nèi)部屬性間的引用聯(lián)系(liánxì)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)ScoreDB中,假設(shè)一門課程可能存在先修課程,且關(guān)系Course中的priorCourse屬性用來(lái)存放先修課程的課程編號(hào)。課程關(guān)系Course中的priorCourse屬性需要引用課程關(guān)系Course的主碼“課程編號(hào)”courseNo。Class(classNo,className,institute,grade,classNum
) Student(studentNo,studentName,sex,birthday,native,nation,classNo)圖2-4實(shí)現(xiàn)“多對(duì)一”聯(lián)系的屬性引用1nStudent(studentNo,studentName,sex,birthday,native,nation,classNo)
Score(studentNo,courseNo,term,score) Course(courseNo,courseName,creditHour,courseHour,priorCourse
)圖2-5實(shí)現(xiàn)“多對(duì)多”聯(lián)系的聯(lián)系關(guān)系及屬性引用mnCourse(courseNo,courseName,creditHour,courseHour,priorCourse)圖2-6實(shí)現(xiàn)關(guān)系內(nèi)部屬性間的引用聯(lián)系第十三頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件數(shù)據(jù)庫(kù)模式導(dǎo)航(dǎoháng)圖一個(gè)含有主碼和外碼依賴的數(shù)據(jù)庫(kù)模式可以通過(guò)模式導(dǎo)航(dǎoháng)圖來(lái)表示。
第十四頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件數(shù)據(jù)庫(kù)模式導(dǎo)航圖一個(gè)含有主碼和外碼依賴的數(shù)據(jù)庫(kù)模式可以通過(guò)模式導(dǎo)航圖來(lái)表示。關(guān)系Student與關(guān)系Class之間存在多對(duì)一的“歸屬”聯(lián)系(一個(gè)班由多個(gè)學(xué)生組成,一個(gè)學(xué)生只能歸屬于某個(gè)班),通過(guò)外碼classNo實(shí)現(xiàn)該聯(lián)系。關(guān)系Course與關(guān)系Student之間存在多對(duì)多的“選修”聯(lián)系。關(guān)系Score的主碼是{studentNo,courseNo,term},顯然同一個(gè)學(xué)生在同一個(gè)學(xué)期(xuéqī)不允許修讀同一門課程多次。關(guān)系Course的priorCourse屬性參照本關(guān)系的主碼courseNo屬性第十五頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件數(shù)據(jù)庫(kù)模式(móshì)導(dǎo)航圖
第十六頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件數(shù)據(jù)庫(kù)模式導(dǎo)航圖一個(gè)(yīɡè)含有主碼和外碼依賴的數(shù)據(jù)庫(kù)模式可以通過(guò)模式導(dǎo)航圖來(lái)表示關(guān)系Student與關(guān)系Class之間、關(guān)系Class與關(guān)系Institute之間、關(guān)系Teacher與關(guān)系Institute之間都存在多對(duì)一的“歸屬”聯(lián)系。關(guān)系Course的priorCourse屬性參照本關(guān)系的主碼courseNo屬性關(guān)系CourseClass與關(guān)系Course之間存在多對(duì)一的“開(kāi)課”聯(lián)系(每個(gè)學(xué)期一門課程可能開(kāi)設(shè)多個(gè)教學(xué)班,一個(gè)(yīɡè)教學(xué)班只講授一門課程)。關(guān)系CourseClass與關(guān)系Classroom之間存在多對(duì)一的“上課”聯(lián)系關(guān)系CourseClass與關(guān)系Teacher之間存在多對(duì)一的“授課”聯(lián)系關(guān)系CourseClass與關(guān)系Student之間存在多對(duì)多的“選課”聯(lián)系。關(guān)系SC的主碼是{cClassNo,studentNo},顯然同一個(gè)(yīɡè)學(xué)生不允許選修同一個(gè)(yīɡè)教學(xué)班的課程多次。第十七頁(yè),共47頁(yè)。關(guān)系(guānxì)完整性約束條件用戶自定義完整性任何關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都應(yīng)該支持實(shí)體完整性和參照完整性。用戶定義的完整性就是針對(duì)某一具體應(yīng)用要求來(lái)定義的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。例如,限制關(guān)系中某些屬性(shǔxìng)的取值要符合業(yè)務(wù)語(yǔ)義要求。限制關(guān)系中某些屬性(shǔxìng)的取值之間需要滿足一定的邏輯關(guān)系。限制關(guān)系中某屬性(shǔxìng)集上的取值必須唯一。第十八頁(yè),共47頁(yè)。關(guān)系(guānxì)操作關(guān)系操作關(guān)系操作的特點(diǎn)是集合操作方式,即操作的對(duì)象和結(jié)果都是集合。這種操作方式也稱為一次一個(gè)集合的方式。相應(yīng)地,非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一個(gè)記錄的方式。關(guān)系模型中的關(guān)系操作有查詢操作和更新操作(包括(bāokuò)插入刪除和修改)兩大類。查詢操作是關(guān)系操作中最主要的部分.查詢操作又可以分為選擇(select)、投影(project)、連接(join)、除(divide)、并(union)、交(intersection)、差(except)、笛卡爾積等。第十九頁(yè),共47頁(yè)。關(guān)系(guānxì)操作關(guān)系操作能力可用兩種方式來(lái)表示:代數(shù)方式和邏輯方式。關(guān)系代數(shù)是用代數(shù)方式表達(dá)的關(guān)系查詢語(yǔ)言。關(guān)系演算是用邏輯方式表達(dá)的關(guān)系查詢語(yǔ)言。關(guān)系演算又可按謂詞變?cè)幕緦?duì)象(duìxiàng)是元組變量還是域變量分為元組關(guān)系演算和域關(guān)系演算。對(duì)于關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算均是抽象的查詢語(yǔ)言,在表達(dá)能力上是完全等價(jià)的。第二十頁(yè),共47頁(yè)。目錄關(guān)系(guānxì)模型2.1關(guān)系(guānxì)代數(shù)2.2第二十一頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)關(guān)系代數(shù)關(guān)系代數(shù)是通過(guò)關(guān)系代數(shù)運(yùn)算構(gòu)成的表達(dá)式來(lái)表達(dá)查詢?;镜年P(guān)系代數(shù)運(yùn)算有選擇、投影、集合并、集合差、笛卡爾積和更名等。關(guān)系代數(shù)運(yùn)算是以一個(gè)或兩個(gè)關(guān)系作為輸入(shūrù)(即運(yùn)算對(duì)象)產(chǎn)生一個(gè)新的關(guān)系作為結(jié)果。第二十二頁(yè),共47頁(yè)。關(guān)系(guānxì)模式0701008 CN028 07081 860802005 CS012 08092 900703045 AC001 0708152關(guān)系(guānxì)代數(shù)第三十六頁(yè),共47頁(yè)?!莝tudentName,nation(Student)對(duì)于一個(gè)二維表,有表頭部分和表體部分,表頭部分定義了該表的結(jié)構(gòu),即定義了該表由哪些列構(gòu)成(假設(shè)由n列構(gòu)成),每個(gè)列的名字(míngzi)和取值范圍等;0703010 AC001 07081 92關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義(c)關(guān)系r3限制關(guān)系中某些屬性(shǔxìng)的取值要符合業(yè)務(wù)語(yǔ)義要求。連接運(yùn)算中有兩種最常用、最重要的連接,一種是等值連接(equijoin),另一種是自然連接(naturaljoin)。score<r(r1×r2)關(guān)系(guānxì)代數(shù)查詢綜合舉例關(guān)系(guānxì)操作同時(shí),還要求將連接結(jié)果中的重復(fù)屬性列去除掉(chúdiào),即在公共屬性集中的列只保留一次。關(guān)系(guānxì)代數(shù)傳統(tǒng)的集合(jíhé)運(yùn)算前提假設(shè):關(guān)系r和關(guān)系s具有相同的n個(gè)屬性,且相應(yīng)的屬性取自同一個(gè)域。t是元組變量,t∈r表示t是r的一個(gè)元組。并運(yùn)算關(guān)系r與關(guān)系s的并記作:r∪s={t∣tr∨ts}其結(jié)果關(guān)系仍為n目關(guān)系,由屬于r或?qū)儆趕的所有元組組成。第二十三頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)傳統(tǒng)的集合運(yùn)算差關(guān)系r與關(guān)系s的差記作:r-s={t∣tr∧ts}其結(jié)果關(guān)系仍為n目關(guān)系,由屬于(shǔyú)r而不屬于(shǔyú)s的所有元組組成。交關(guān)系r與關(guān)系s的交記作:r∩s={t∣tr∧ts}其結(jié)果關(guān)系仍為n目關(guān)系,由既屬于(shǔyú)r又屬于(shǔyú)s的所有元組組成。關(guān)系的交可以通過(guò)差來(lái)表達(dá),即r∩s=r-(r-s)。第二十四頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)傳統(tǒng)的集合運(yùn)算笛卡爾積兩個(gè)分別(fēnbié)為n目和m目的關(guān)系r和s的笛卡爾積是一個(gè)n+m目元組的集合。元組的前n列是關(guān)系r的一個(gè)元組,后m列是關(guān)系s的一個(gè)元組若關(guān)系r有kr個(gè)元組,關(guān)系s有ks個(gè)元組,則關(guān)系r和s的笛卡爾積有kr×ks個(gè)元組。記作:r×s={tr·ts∣trr∧tss}第二十五頁(yè),共47頁(yè)。成績(jī)(chéngjì)管理數(shù)據(jù)庫(kù)ScoreDB的實(shí)例數(shù)據(jù)(P56)關(guān)系Student、Course和Score可分別描述為:Student(學(xué)號(hào),姓名,性別,出生日期,所學(xué)專業(yè)(zhuānyè))Course(課程號(hào),課程名稱,學(xué)時(shí),學(xué)分)Score(學(xué)號(hào),課程號(hào),學(xué)期,成績(jī))關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系必須滿足一定的規(guī)范條件。最基本的規(guī)范條件是:關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng),即不允許表中有表
Student關(guān)系(guānxì)StudentNoStudentNamesexbirthdaynativenationclassNo0701001 李小勇 男1990-12-21南昌漢族CS07010701008 王紅 男1992-04-26上海漢族CS07010703010 李宏冰 女1992-03-09太原蒙古族AC07030703045 王紅 男1992-04-26北京漢族AC07030802002 劉方晨 女1990-11-11南昌傣族ISO8020802005 王紅敏 女1990-10-01上海蒙古族ISO802Course關(guān)系CourseNo CourseNamecreditHourcourseHourpriorCourseAC001基礎(chǔ)會(huì)計(jì)483nullCN028 大學(xué)語(yǔ)文483nulCS012 操作系統(tǒng)805nullCS015數(shù)據(jù)庫(kù)系統(tǒng)644CS012Score關(guān)系StudentNo courseNo termscore0701001 CN028 07081 850701001 CS012 07082 880701001 CS015 08091 920701008 AC001 07081 760701008 CN028 07081 860701008 CS012 07082 930701008 CS015 08091 960703010 AC001 07081 920703010 CN028 07081 830703010 CS012 07082 730703045 AC001 07081 520703045 AC001 08091 940703045CN02807081800703045CS01508091820802002 AC001 08091 980802002 CN028 08091 720802002 CS015 09101 850802005 AC001 09101 880802005 CS012 08092 900802005 CS015 09101 87Class關(guān)系ClassNo ClassNameinstiutegradeClassNumAC0703 會(huì)計(jì)學(xué)08(3)班會(huì)計(jì)學(xué)院46CS0701 計(jì)算機(jī)07(1)班信息學(xué)院200748 ISO802 信息系統(tǒng)08(2)班信息學(xué)院43第二十六頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)傳統(tǒng)的集合運(yùn)算對(duì)于數(shù)據(jù)庫(kù)ScoreDB,笛卡爾積Class×Course的結(jié)果(jiēguǒ)關(guān)系為:
第二十七頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算選擇選擇操作是在關(guān)系r中查找(cházhǎo)滿足給定謂詞(即選擇條件)的所有元組,記作:σP(r)={t∣tr∧P(t)}P表示謂詞(即選擇條件),它是一個(gè)邏輯表達(dá)式,取值為“真”或“假”。第二十八頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算選擇(xuǎnzé)例如,在數(shù)據(jù)庫(kù)ScoreDB中,查找2007級(jí)的所有班級(jí)情況σgrade=2007(Class)
ClassNo ClassNameinstiutegradeClassNumAC0703 會(huì)計(jì)學(xué)08(3)班會(huì)計(jì)學(xué)院200746CS0701 計(jì)算機(jī)07(1)班信息(xìnxī)學(xué)院200748
例如,在數(shù)據(jù)庫(kù)ScoreDB中,查找所有1992年及以后出生的女學(xué)生情況,σyear(birthday)>=1992∧sex='女'(Student)StudentNo StudentName
sexbirthdaynativenationclassNo0703010 李宏冰女1992-03-09太原蒙古族AC0703第二十九頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算投影關(guān)系是一個(gè)二維表,對(duì)它的操作可以從水平(行)的角度進(jìn)行,即選擇操作;也可以從縱向(列)的角度進(jìn)行,即投影操作。關(guān)系r上的投影是從r中選擇出若干屬性(shǔxìng)列組成新的關(guān)系。記作:∏A(r)={t[A]∣tr}A為關(guān)系r的屬性(shǔxìng)集合。第三十頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系(guānxì)運(yùn)算投影例如,在數(shù)據(jù)庫(kù)ScoreDB中,查找所有學(xué)生的姓名和民族∏studentName,nation(Student)
例如(lìrú),在數(shù)據(jù)庫(kù)ScoreDB中,查找所有“蒙古族”學(xué)生的姓名和籍貫StudentName
nation
李小勇漢族王紅漢族王宏冰蒙古族劉方晨傣族王紅敏蒙古族StudentName
native
王宏冰太原王紅敏上?!莝tudentName,native(σnation=‘蒙古族’(Student))第三十一頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算連接連接也稱為θ連接。記為AopB,其中A、B分別(fēnbié)為關(guān)系r和s中的度數(shù)相等且可比的連接屬性集,op為比較運(yùn)算符。θ連接是從兩個(gè)關(guān)系的笛卡爾積中選取連接屬性間滿足謂詞θ的所有元組。記作:r?θs={tr·ts∣trr∧tss∧(r.Aops.B)}θ連接運(yùn)算就是從關(guān)系r和s的笛卡爾積r×s中,選取r關(guān)系在A屬性集上的值與s關(guān)系在B屬性集上的值滿足連接謂詞θ的所有元組,即r?θs=第三十二頁(yè),共47頁(yè)。③最后的查詢可表達(dá)為:0701008 王紅 男1992-04-26 計(jì)算機(jī)CS012 操作系統(tǒng)805null0802005 CS012 08092 90CS0701 計(jì)算機(jī)07(1)班信息(xìnxī)學(xué)院200748分析:①查找出修讀過(guò)信息學(xué)院(xuéyuàn)課程的所有學(xué)生0701008 CN028 07081 86表體就是所有數(shù)據(jù)行的集合,每一個(gè)數(shù)據(jù)行都是由表頭部分規(guī)定的n列有關(guān)聯(lián)的取值的集合構(gòu)成。分析:①找出學(xué)號(hào)為“0703045”的學(xué)生在課程號(hào)為“AC001”的課程中的成績(jī)?cè)M其結(jié)果關(guān)系仍為n目關(guān)系,由既屬于(shǔyú)r又屬于(shǔyú)s的所有元組組成。成績(jī)關(guān)系Score分別通過(guò)外碼studentNo和courseNo與學(xué)生關(guān)系Student和課程關(guān)系Course建立多對(duì)一的聯(lián)系。StudentNamenation關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義(dìngyì)王紅敏 880802002 AC001 08091 98關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算連接連接運(yùn)算中有兩種最常用、最重要的連接,一種是等值連接(equijoin),另一種是自然連接(naturaljoin)。θ為等值比較謂詞的連接運(yùn)算稱為等值連接。自然連接是一種特殊的等值連接,它要求兩個(gè)參與連接的關(guān)系具有公共的屬性集,并在這個(gè)公共屬性集上進(jìn)行等值連接;同時(shí),還要求將連接結(jié)果中的重復(fù)屬性列去除掉(chúdiào),即在公共屬性集中的列只保留一次。第三十三頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算例如(lìrú),在數(shù)據(jù)庫(kù)ScoreDB中,查找所有級(jí)的“蒙古族”學(xué)生的姓名
StudentName
王紅敏分析:①σnation=‘蒙古族’(Student)可以找到所有蒙古族學(xué)生的情況,但關(guān)系(guānxì)Student中沒(méi)有年級(jí)的信息,因此必須將關(guān)系(guānxì)Student與關(guān)系(guānxì)Class關(guān)聯(lián)起來(lái)。②根據(jù)模式導(dǎo)航圖可知,關(guān)系Student與關(guān)系Class可通過(guò)外碼classNo關(guān)聯(lián)起來(lái),這種外碼引用關(guān)系可通過(guò)自然連接表示
Student?Class=σ(Student×Class)
③最后的查詢可表達(dá)為:∏studentName(σnation='蒙古族'(Student)?σgrade=(Class))第三十四頁(yè),共47頁(yè)?!莝tudentName(σnation=‘蒙古族’(Student)?σgrade=(Class))=∏studentName(σ(σnation='蒙古族'(Student)×σgrade=(Class)))=∏studentName(σ(σnation='蒙古族'∧grade=(Student×Class)))=∏studentName(σnation='蒙古族(Student×Class))=∏studentName(σnation='蒙古族'∧grade=(σ(Student×Class)))=∏studentName(σnation='蒙古族'∧grade=(Student?Class))關(guān)系(guānxì)代數(shù)第三十五頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)例如,在數(shù)據(jù)庫(kù)ScoreDB中,查找課程號(hào)為“AC001”課程的考試中比學(xué)號(hào)為“0703045”的學(xué)生考得更好的所有學(xué)生的姓名(xìngmíng)和成績(jī)。分析:①找出學(xué)號(hào)為“0703045”的學(xué)生在課程號(hào)為“AC001”的課程中的成績(jī)?cè)M(結(jié)果關(guān)系(guānxì)記為r1),可表達(dá)為:σstudentNo='0703045'∧courseNo='AC001'(Score)②找出選修了課程號(hào)為“AC001”課程的所有學(xué)生的成績(jī)?cè)M(結(jié)果關(guān)系記為r2)
,其查詢可表達(dá)為:
σcourseNo='AC001'(Score)
③將關(guān)系r1與關(guān)系r2進(jìn)行θ連接(結(jié)果關(guān)系記為r3),其查詢可表達(dá)為:
r1?r1.score<r
r2=σr1.score<r(r1×r2)
④將關(guān)系r3與學(xué)生關(guān)系Student按外碼studentNo進(jìn)行自然連接,并對(duì)連接結(jié)果在屬性studentName和r上進(jìn)行投影,其查詢可表達(dá)為:
∏studentName,r(r3?Student)
=∏studentName,r(σr(r3×Student))
=∏studentName,r(σr((σr1.score<r(r1×r2))
×Student))第三十六頁(yè),共47頁(yè)。studentNocourseNotermscore0701008 AC00107081760703010 AC001 07081920703045
AC001 07081520703045
AC001 08091940802002 AC001 08091980802005 AC001 0910188(b)關(guān)系r2studentNo courseNo termscore0703045 AC001 07081520703045 AC001 0809194(a)關(guān)系r1r1.studentNor1.courseNor1.termr1.scorer2.studentNor2.courseNor2.termr2.score
0703045 AC0010708152 0701008AC00107081 76 0703045 AC0010708152 0703010AC00107081 92 0703045 AC0010708152 0703045AC00108091 94 0703045 AC0010708152
0802002AC00108091 98 0703045 AC0010708152 0802005AC00109101 88 0703045 AC0010809194 0802002AC00108091 98 (c)關(guān)系r3studentNamescore王紅
76 李宏冰
92 王紅
94 劉方晨
98 王紅敏
88 (d)最后結(jié)果圖2-19例2.16的θ連接的計(jì)算過(guò)程Score關(guān)系(guānxì)StudentNo courseNo termscore0701001 CN028 07081 850701001 CS012 07082 880701001 CS015 08091 920701008 AC001 07081 760701008 CN028 07081 860701008 CS012 07082 930701008 CS015 08091 960703010 AC001 07081 920703010 CN028 07081 830703010 CS012 07082 730703045 AC001 07081 520703045 AC001 08091 940703045CN02807081800703045CS01508091820802002 AC001 08091 980802002 CN028 08091 720802002 CS015 09101 850802005 AC001 09101 880802005 CS012 08092 900802005 CS015 09101 87關(guān)系(guānxì)代數(shù)第三十七頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系(guānxì)運(yùn)算除運(yùn)算例如,需要查找修讀過(guò)信息學(xué)院開(kāi)設(shè)的所有課程的學(xué)生學(xué)號(hào),如何表達(dá)查詢?分析:①查找出修讀過(guò)信息學(xué)院(xuéyuàn)課程的所有學(xué)生r1=∏studentNo,courseNo(σcourseNoLIKE'CS%'(Score))
②找出信息學(xué)院開(kāi)設(shè)的所有課程
r2=∏courseNo(σcourseNoLIKE'CS%'(Course))
StudentNocourseNo0701001 CS012 0701001 CS015 0701008 CS012 0701008 CS015 0703010 CS012 0703045CS015
0802002 CS015 0802005 CS012 0802005 CS015CourseNo
CS012CS015第三十八頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門(zhuānmén)的關(guān)系運(yùn)算(象集的概念見(jiàn)P58)③比較圖2-20(a)和(b),修讀過(guò)信息學(xué)院開(kāi)設(shè)的所有課程的學(xué)生就是關(guān)系r1中滿足“courseNo列包含(bāohán)關(guān)系r2的所有行”的那些學(xué)生。第三十九頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算設(shè)關(guān)系r(R)和s(S),屬性集S是R的子集(zǐjí),即SR,則關(guān)系r÷s是關(guān)系r中滿足下列條件的元組在屬性集R-S上的投影:trr,記x=tr[R-S],則關(guān)系r中屬性集R-S的取值x的象集Sx包含關(guān)系s。記作r÷s={tr[R-S]∣trr∧sSx}
第四十頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)專門的關(guān)系運(yùn)算(yùnsuàn)例如,關(guān)系數(shù)據(jù)庫(kù)ScoreDB中,求以下結(jié)果①Score÷(∏courseNo(σcourseNo=‘AC001’(Course)))的結(jié)果為:②Score÷(∏courseNo(σcourseNo=‘CN028’(Course)))的結(jié)果(jiēguǒ)為:StudentNo termscore0701008 07081 760703010 07081 920703045 07081 520703045 08091 940802002 08091 980802005 09101 88StudentNo termscore0701001 07081 850701008 07081 860703010 07081 830703045 07081 80080200208091 72Score關(guān)系StudentNo courseNo termscore0701001 CN028 07081 850701001 CS012 07082 880701001 CS015 08091 920701008 AC001 07081 760701008 CN028 07081 860701008 CS012 07082 930701008 CS015 08091 960703010 AC001 07081 920703010 CN028 07081 830703010 CS012 07082 730703045 AC001 07081 520703045 AC001 08091 940703045CN02807081800703045CS01508091820802002 AC001 08091 980802002 CN028 08091 720802002 CS015 09101 850802005 AC001 09101 880802005 CS012 08092 900802005 CS015 09101 87Score關(guān)系StudentNo courseNo termscore0701001 CN028 07081 850701001 CS012 07082 880701001 CS015 08091 920701008 AC001 07081 760701008 CN028 07081 860701008 CS012 07082 930701008 CS015 08091 960703010 AC001 07081 920703010 CN028 07081 830703010 CS012 07082 730703045 AC001 07081 520703045 AC001 08091 940703045CN02807081800703045CS01508091820802002 AC001 08091 980802002 CN028 08091 720802002 CS015 09101 850802005 AC001 09101 880802005 CS012 08092 900802005 CS015 09101 87第四十一頁(yè),共47頁(yè)。關(guān)系(guānxì)代數(shù)查詢綜合舉例給定一個(gè)查
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度白酒品牌專賣店設(shè)立與運(yùn)營(yíng)代理合同
- 2025年度私人房屋全款交易買賣合同(限共有產(chǎn)權(quán)轉(zhuǎn)讓)
- 二零二五年度家庭存款安全監(jiān)護(hù)與子女成長(zhǎng)責(zé)任協(xié)議
- 二零二五年度海南省農(nóng)業(yè)學(xué)校農(nóng)業(yè)科技項(xiàng)目申報(bào)與實(shí)施合同
- 二零二五年度生物醫(yī)藥股權(quán)協(xié)議及合伙人臨床研究合作協(xié)議
- 知識(shí)產(chǎn)權(quán)法在電子商務(wù)中的應(yīng)用與挑戰(zhàn)
- 《第3單元 信息共享與病毒防治 13 信息共享》教學(xué)設(shè)計(jì)-2023-2024學(xué)年人教版信息技術(shù)(三起)五年級(jí)上冊(cè)
- 收徒弟合同范本
- 知識(shí)產(chǎn)權(quán)培訓(xùn)推動(dòng)企業(yè)持續(xù)創(chuàng)新的引擎
- 科技助力城市環(huán)境治理與生態(tài)保護(hù)
- 2025屆江蘇省十三大市高三沖刺模擬歷史試卷含解析
- 小學(xué)數(shù)學(xué)二年級(jí)《數(shù)圖形》練習(xí)題
- 初中語(yǔ)文八年級(jí)下冊(cè) 4《燈籠》公開(kāi)課一等獎(jiǎng)創(chuàng)新教案
- RBA商業(yè)道德程序文件(系列)
- 某山體滑坡綜合治理工程監(jiān)理規(guī)劃
- 遼寧省大連市2023-2024學(xué)年八年級(jí)下學(xué)期第一次月考語(yǔ)文試題(含答案解析)
- DataOps 實(shí)踐指南 2.0白皮書
- 供電所班組建設(shè)方案
- 委托處置不良資產(chǎn)協(xié)議(三篇)
- 胎膜早破的診斷與處理指南
- 新時(shí)代勞動(dòng)教育教程(中職版勞動(dòng)教育)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論