![項目2 設(shè)計數(shù)據(jù)庫_第1頁](http://file4.renrendoc.com/view11/M02/3F/17/wKhkGWerZqGAYT2dAADDz1LP1FI267.jpg)
![項目2 設(shè)計數(shù)據(jù)庫_第2頁](http://file4.renrendoc.com/view11/M02/3F/17/wKhkGWerZqGAYT2dAADDz1LP1FI2672.jpg)
![項目2 設(shè)計數(shù)據(jù)庫_第3頁](http://file4.renrendoc.com/view11/M02/3F/17/wKhkGWerZqGAYT2dAADDz1LP1FI2673.jpg)
![項目2 設(shè)計數(shù)據(jù)庫_第4頁](http://file4.renrendoc.com/view11/M02/3F/17/wKhkGWerZqGAYT2dAADDz1LP1FI2674.jpg)
![項目2 設(shè)計數(shù)據(jù)庫_第5頁](http://file4.renrendoc.com/view11/M02/3F/17/wKhkGWerZqGAYT2dAADDz1LP1FI2675.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目2設(shè)計數(shù)據(jù)庫《數(shù)據(jù)庫管理與開發(fā)項目教程(SQLServer2019)(微課版)(第3版)》22【能力目標】
學會將現(xiàn)實世界的事物和特性抽象為信息世界的實體與關(guān)系。學會使用實體-聯(lián)系(EntityRelationship,E-R)圖描述實體、屬性和實體間的關(guān)系。學會將E-R圖轉(zhuǎn)換為關(guān)系模型。能根據(jù)開發(fā)需求,將關(guān)系模型規(guī)范化到一定程度。對數(shù)據(jù)完整性有清晰的認識?!舅颊繕恕繄远ㄎ幕孕拧I羁陶J識國產(chǎn)數(shù)據(jù)庫跨越式發(fā)展的新機遇。軟件國產(chǎn)化成為保護國家信息安全的重要手段,而數(shù)據(jù)庫作為基礎(chǔ)軟件理應(yīng)首當其沖成為國產(chǎn)化推進的主要領(lǐng)域之一。項目2設(shè)計數(shù)據(jù)庫33【項目描述】設(shè)計學生信息管理系統(tǒng)的數(shù)據(jù)庫,繪制E-R圖,將E-R圖轉(zhuǎn)換成關(guān)系模型,指出各表的關(guān)鍵字。【項目分析】設(shè)計數(shù)據(jù)庫是一個把現(xiàn)實世界抽象化,把信息世界數(shù)據(jù)化的過程。本項目以學生信息管理系統(tǒng)的xs數(shù)據(jù)庫設(shè)計過程為例,介紹必要的數(shù)據(jù)庫基礎(chǔ)知識和數(shù)據(jù)庫應(yīng)用開發(fā)技術(shù),使讀者能夠設(shè)計開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)。xs數(shù)據(jù)庫貫穿全書,要求讀者熟悉數(shù)據(jù)庫中的3個表(XSDA、XSCJ、KCXX)以及它們之間的關(guān)系,初步了解數(shù)據(jù)庫。項目2設(shè)計數(shù)據(jù)庫【思政導入】欲善其事,先利其器
現(xiàn)實世界中存在的客觀事物數(shù)據(jù)化后才能在計算機中處理,不同狀態(tài)的數(shù)據(jù)發(fā)揮的作用不同。在職場中我們做好自己的角色很重要,將自己的工作做到極致,才能體現(xiàn)出自身的價值來。項目2設(shè)計數(shù)據(jù)庫55【任務(wù)設(shè)置】任務(wù)1附加與分離數(shù)據(jù)庫認知數(shù)據(jù)庫結(jié)構(gòu)任務(wù)2現(xiàn)實世界數(shù)據(jù)化任務(wù)3轉(zhuǎn)換成關(guān)系模型任務(wù)4認知關(guān)鍵字和數(shù)據(jù)完整性項目2設(shè)計數(shù)據(jù)庫66【任務(wù)目標】熟悉附加數(shù)據(jù)庫的方法。熟悉分離數(shù)據(jù)庫的方法。理解SQLServer2019的數(shù)據(jù)庫結(jié)構(gòu)。熟悉本書示例數(shù)據(jù)庫xs的數(shù)據(jù)。【任務(wù)分析】現(xiàn)有xs數(shù)據(jù)庫,如何將其加載到SQLServer2019中呢?只要附加數(shù)據(jù)庫就可以了。本任務(wù)就介紹如何附加已有的數(shù)據(jù)庫,并熟悉本書示例數(shù)據(jù)庫xs的數(shù)據(jù)。任務(wù)1附加與分離數(shù)據(jù)庫、認知數(shù)據(jù)庫結(jié)構(gòu)項目2設(shè)計數(shù)據(jù)庫77
在使用SQLServer2019的過程中,用戶可能會遇到兩個問題:一個是將數(shù)據(jù)庫從一個SQLServer服務(wù)器移到另一個SQLServer服務(wù)器上,另一個是數(shù)據(jù)庫文件所在的磁盤空間已用完。第一個問題一般的處理方法是創(chuàng)建一個新數(shù)據(jù)庫,然后通過備份和還原移動數(shù)據(jù)庫;第二個問題的解決辦法是在另一個磁盤上增加一個輔助數(shù)據(jù)文件。這兩種辦法都比較復雜,SQLServer2019則提供了一種非常簡單的辦法——分離和附加數(shù)據(jù)庫。SQLServer2019允許分離數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件,然后將其附加到另一臺服務(wù)器,甚至同一臺服務(wù)器上。任務(wù)1-1附加數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫881.使用SSMS附加數(shù)據(jù)庫【例2-1】使用SSMS將E:\SQL\databeifen文件夾中的數(shù)據(jù)庫附加到當前的SQLServer實例上。(1)啟動SSMS,在【對象資源管理器】窗口中用鼠標右鍵單擊【數(shù)據(jù)庫】選項,選擇【附加】命令,如圖2-1所示。(2)打開【附加數(shù)據(jù)庫】窗口,進行相關(guān)設(shè)置,如圖2-2所示。任務(wù)1-1附加數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫圖2-1選擇【附加】命令99(3)單擊【添加】按鈕,打開【定位數(shù)據(jù)庫文件】對話框,選擇要附加的主要數(shù)據(jù)文件。數(shù)據(jù)庫附加成功后,在【數(shù)據(jù)庫】選項中將會出現(xiàn)as數(shù)據(jù)庫子選項。任務(wù)1-1附加數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫圖2-2【附加數(shù)據(jù)庫】窗口10102.使用T-SQL語句附加數(shù)據(jù)庫在SQLServer2019中,使用存儲過程EXECsp_attach_db可以附加數(shù)據(jù)庫。語法格式:sp_attach_db數(shù)據(jù)庫名,@FILENAME=文件名[,…16]【例2-2】使用T-SQL語句將E:\SQL\databeifen文件夾中的數(shù)據(jù)庫附加到當前的SQLServer實例上:EXECsp_attach_dbxs,'E:\SQL\databeifen\as_data.mdf','E:\SQL\databeifen\as_log.ldf'任務(wù)1-1附加數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫1111xs數(shù)據(jù)庫由選課系統(tǒng)所需的數(shù)據(jù)庫信息組成,如圖2-3所示。任務(wù)1-2認知數(shù)據(jù)庫結(jié)構(gòu)項目2設(shè)計數(shù)據(jù)庫圖2-3xs數(shù)據(jù)庫結(jié)構(gòu)1212服務(wù)器上的數(shù)據(jù)庫結(jié)構(gòu)如圖2-4所示。任務(wù)1-2認知數(shù)據(jù)庫結(jié)構(gòu)項目2設(shè)計數(shù)據(jù)庫圖2-4服務(wù)器上的數(shù)據(jù)庫結(jié)構(gòu)1313SQLServer2019允許分離數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件,然后將其附加到另一臺服務(wù)器,甚至同一臺服務(wù)器上。下面介紹兩種分離數(shù)據(jù)庫的方法。1.使用SSMS分離數(shù)據(jù)庫【例2-3】使用SSMS分離xs數(shù)據(jù)庫,并將數(shù)據(jù)庫對應(yīng)的文件復制到E:\SQL\databeifen文件夾中。(1)啟動SSMS,在【對象資源管理器】窗口中展開【數(shù)據(jù)庫】選項。(2)用鼠標右鍵單擊【xs】選項,選擇【任務(wù)】→【分離】命令,如圖2-5所示。任務(wù)1-3分離數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫1414任務(wù)1-3分離數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫圖2-5選擇【分離】命令1515(3)打開【分離數(shù)據(jù)庫】對話框,選擇要分離的數(shù)據(jù)庫,并進行相關(guān)設(shè)置。(4)分離數(shù)據(jù)庫準備就緒后,單擊【確定】按鈕,完成數(shù)據(jù)庫的分離操作。數(shù)據(jù)庫分離成功后,【數(shù)據(jù)庫】下的【xs】選項將不復存在。(5)將E:\data文件夾中xs數(shù)據(jù)庫對應(yīng)的兩個文件復制到E:\SQL\databeifen文件夾中(如果該文件夾不存在,就先創(chuàng)建該文件夾)。2.使用T-SQL語句分離數(shù)據(jù)庫在SQLServer2019中,使用存儲過程EXECsp_detach_db可以實現(xiàn)數(shù)據(jù)庫的分離。任務(wù)1-3分離數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫1616語法格式:sp_detach_db數(shù)據(jù)庫名【例2-4】使用T-SQL語句實現(xiàn)xs數(shù)據(jù)庫的分離:EXECsp_detach_dbxs任務(wù)1-3分離數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫1717【任務(wù)目標】學會將現(xiàn)實世界的事物和特性抽象為信息世界的實體與關(guān)系。學會使用實體-聯(lián)系圖(E-R圖)描述實體、屬性和實體間的關(guān)系?!救蝿?wù)分析】本任務(wù)以學生選課為具體應(yīng)用,把學生選修課程抽象出來,繪制出E-R圖,將現(xiàn)實世界的客觀事物數(shù)據(jù)化。任務(wù)2現(xiàn)實世界數(shù)據(jù)化項目2設(shè)計數(shù)據(jù)庫1818要將現(xiàn)實世界的信息放入計算機中進行存儲和表示,首先需要對其進行數(shù)據(jù)化,然后根據(jù)現(xiàn)實需求進行存儲和修改。1.數(shù)據(jù)數(shù)據(jù)(Data)是描述事物的符號記錄,用類型和數(shù)值來表示。隨著計算機技術(shù)的發(fā)展,數(shù)據(jù)的含義更加廣泛了,不僅包括數(shù)字,還包含文字、圖像、聲音和視頻等。在數(shù)據(jù)庫技術(shù)中,數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。例如,學生的檔案管理記錄、貨物的運輸情況等都是數(shù)據(jù)。任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫19192.數(shù)據(jù)處理數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,是由人、計算機等組成的能進行信息的搜集、傳遞、存儲、加工、維護、分析、計劃、控制、決策和使用的系統(tǒng)。經(jīng)過處理,信息被加工成特定形式的數(shù)據(jù)。任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫圖2-6
從數(shù)據(jù)到信息的轉(zhuǎn)換過程20202.數(shù)據(jù)處理數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,是由人、計算機等組成的能進行信息的搜集、傳遞、存儲、加工、維護、分析、計劃、控制、決策和使用的系統(tǒng)。經(jīng)過處理,信息被加工成特定形式的數(shù)據(jù)。3.數(shù)據(jù)庫數(shù)據(jù)庫(Database,DB)是指長期存儲在計算機內(nèi)、按一定的數(shù)據(jù)模型組織和存儲、可共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨立性。任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫21214.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是一種數(shù)據(jù)管理軟件,它使用戶能夠方便地定義數(shù)據(jù)和處理數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性,以及多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的數(shù)據(jù)恢復。其功能如下。(1)數(shù)據(jù)定義功能(2)數(shù)據(jù)處理功能(3)數(shù)據(jù)庫運行管理功能(4)數(shù)據(jù)庫的維護功能任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫圖2-7數(shù)據(jù)庫管理系統(tǒng)在計算機層次結(jié)構(gòu)中的地位
22225.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及其開發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員、應(yīng)用程序員(ApplicationProgrammer,AP)和用戶構(gòu)成,如圖2-8所示。任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫
圖2-8數(shù)據(jù)庫系統(tǒng)23236.現(xiàn)實世界數(shù)據(jù)化過程將現(xiàn)實世界存在的客觀事物進行數(shù)據(jù)化,要經(jīng)歷從現(xiàn)實世界到信息世界,再從信息世界到數(shù)據(jù)世界的過程。現(xiàn)實世界、信息世界和數(shù)據(jù)世界三者之間的關(guān)系如下。任務(wù)2-1現(xiàn)實世界數(shù)據(jù)化的過程項目2設(shè)計數(shù)據(jù)庫2424數(shù)據(jù)庫管理系統(tǒng)是按照一定的數(shù)據(jù)模型組織數(shù)據(jù)的。所謂的數(shù)據(jù)模型,是指數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束3個方面。這3個方面稱為數(shù)據(jù)模型的三要素。1.數(shù)據(jù)結(jié)構(gòu)2.數(shù)據(jù)操作3.完整性約束任務(wù)2-2數(shù)據(jù)模型的概念項目2設(shè)計數(shù)據(jù)庫2525信息是對客觀事物及其相互關(guān)系的表征,同時數(shù)據(jù)是信息的具體化、形象化,是表示信息的物理符號。在管理信息系統(tǒng)中,要對大量的數(shù)據(jù)進行處理,首先要弄清楚現(xiàn)實世界中事物及事物間的聯(lián)系是怎樣的,然后逐步分析、變換,得到系統(tǒng)可以處理的形式。因此對客觀世界的認識、描述是一個逐步的過程,有層次之分,可將它們分成3個層次。1.現(xiàn)實世界2.信息世界3.數(shù)據(jù)世界任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫26263個層次間的關(guān)系如圖2-9所示。任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-9
3個層次間的關(guān)系2727描述概念模型最常用的方法是E-R方法。這種方法簡單、實用,它所使用的工具稱為E-R圖。E-R圖中包括實體、屬性和聯(lián)系3種圖素。實體用矩形框表示,屬性用橢圓形框表示,聯(lián)系用菱形框表示,框內(nèi)填入相應(yīng)的名稱,實體與屬性或者實體與聯(lián)系之間用無向直線連接。多值屬性用雙橢圓形框表示,派生屬性用橢圓形框表示。E-R圖中使用的基本符號如圖2-10所示。任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-10E-R圖中使用的基本符號28281.實體客觀存在并且可以相互區(qū)別的事物稱為實體。實體可以是具體的事物,也可以是抽象的事件。例如,學生、圖書等屬于實際具體事物,訂貨、借閱圖書等活動是抽象的事件。2.實體集同一類實體的集合稱為實體集。由于實體集中的實體較多,沒有必要一一指出每一個屬性,因此引入實體型。3.實體型任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫2929實體型是對同類實體的共有特征的抽象定義,用實體名及其屬性名稱集合來抽象和描述。例如,學生(學號,姓名,年齡,性別,成績)是一個實體型。4.屬性描述實體的特性稱為屬性。例如,學生實體用學號、姓名、性別、年齡等屬性來描述。不同的實體用不同的屬性區(qū)分。5.聯(lián)系(1)一對一聯(lián)系(1∶1)(2)一對多聯(lián)系(1∶n)。(3)多對多聯(lián)系(m∶n)任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫3030任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-11實體間的聯(lián)系圖2-12
實體聯(lián)系E-R圖3131繪制正確的E-R圖是確定關(guān)系的必要條件,首先進行需求分析,然后進行E-R圖設(shè)計。1.需求分析設(shè)計數(shù)據(jù)庫首先必須準確了解與分析用戶需求。需求分析是整個設(shè)計過程的基礎(chǔ),是最困難、最耗費時間的一步,需求分析的結(jié)果是否準確地反映了用戶的實際需求2.概念結(jié)構(gòu)設(shè)計形成E-R圖對于“學生信息管理系統(tǒng)”的需求,抽取出各實體及其所需屬性并形成局部E-R圖。學生實體E-R圖如圖2-13所示。課程實體E-R圖如圖2-14所示。任務(wù)2-4繪制學生選修E-R圖項目2設(shè)計數(shù)據(jù)庫3232任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-14課程實體E-R圖圖2-13學生實體E-R圖3333任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-16用戶實體E-R圖圖2-15成績E-R圖學生實體與課程實體之間的關(guān)系用成績E-R圖表示,如圖2-15所示。用戶實體E-R圖如圖2-16所示。對局部E-R圖綜合整理后,得到全局E-R圖,如圖2-17所示。3434任務(wù)2-3概念模型項目2設(shè)計數(shù)據(jù)庫圖2-17全局E-R圖3535【任務(wù)目標】學會將E-R圖轉(zhuǎn)換成關(guān)系模型。能根據(jù)開發(fā)需求,將關(guān)系模型規(guī)范化到一定程度?!救蝿?wù)分析】關(guān)系模型是目前數(shù)據(jù)庫系統(tǒng)普遍采用的數(shù)據(jù)模型,也是應(yīng)用最廣泛的數(shù)據(jù)類型。關(guān)系模型通過二維表來表示實體以及實體之間的聯(lián)系。本任務(wù)詳細介紹關(guān)系模型和二維表。任務(wù)3將E-R圖轉(zhuǎn)換成關(guān)系模型項目2設(shè)計數(shù)據(jù)庫3636
邏輯數(shù)據(jù)模型是指數(shù)據(jù)庫中數(shù)據(jù)的組織形式和聯(lián)系方式,簡稱數(shù)據(jù)模型。數(shù)據(jù)庫中的數(shù)據(jù)是按照一定的邏輯結(jié)構(gòu)存儲的,這種結(jié)構(gòu)用數(shù)據(jù)模型來表示?,F(xiàn)有的數(shù)據(jù)庫管理系統(tǒng)都基于某種數(shù)據(jù)模型。按照數(shù)據(jù)庫中數(shù)據(jù)采取的不同聯(lián)系方式,數(shù)據(jù)模型可分為3種:層次模型、網(wǎng)狀模型和關(guān)系模型。1.層次模型層次模型的優(yōu)點是結(jié)構(gòu)簡單、層次清晰、易于實現(xiàn),適合描述類似家族關(guān)系、行政編制及目錄結(jié)構(gòu)等信息載體的數(shù)據(jù)結(jié)構(gòu)。任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫3737其基本結(jié)構(gòu)有兩個限制。(1)此模型中有且僅有一個節(jié)點沒有雙親節(jié)點,該節(jié)點稱為根節(jié)點,其層次最高。(2)根節(jié)點以外的其他節(jié)點有且僅有一個雙親節(jié)點。所以,使用層次模型可以非常直接、方便地表示1∶1和1∶n聯(lián)系,但不能直接表示m∶n聯(lián)系,難以實現(xiàn)對復雜數(shù)據(jù)關(guān)系的描述。一個層次模型的簡單例子PS數(shù)據(jù)庫層次模型如圖2-18所示。任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫3838任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫圖2-18
PS數(shù)據(jù)庫層次模型39392.網(wǎng)狀模型網(wǎng)狀模型是一種比層次模型更具普遍性的結(jié)構(gòu),它去掉了層次模型的兩個限制,允許多個節(jié)點沒有雙親節(jié)點,允許節(jié)點有多個雙親節(jié)點,此外它還允許兩個節(jié)點之間有多種聯(lián)系。因此,網(wǎng)狀模型可以更直接地描述現(xiàn)實世界。層次模型實際上是網(wǎng)狀模型的一個特例。網(wǎng)狀模型的主要優(yōu)點是在表示數(shù)據(jù)之間的m∶n聯(lián)系時具有很大的靈活性,但是這種靈活性是以數(shù)據(jù)結(jié)構(gòu)的復雜化為代價的。任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫4040任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫圖2-19網(wǎng)狀模型41圖2-20關(guān)系模型示例3.關(guān)系模型關(guān)系模型與層次模型、網(wǎng)狀模型的理論和風格截然不同,如果說層次模型和網(wǎng)狀模型是用“圖”表示實體及其聯(lián)系,那么關(guān)系模型用“二維表”來表示。從現(xiàn)實世界中抽象出的實體及其聯(lián)系基本使用二維表表示。而關(guān)系模型就是用若干個二維表來表示實體及其聯(lián)系的,這是關(guān)系模型的本質(zhì)。關(guān)系模型示例如圖2-20所示。任務(wù)3-1邏輯數(shù)據(jù)模型項目2設(shè)計數(shù)據(jù)庫4242二維表并不一定是關(guān)系模型,只有具有下面特點的二維表才是關(guān)系模型。(1)表格中的每一列都是不可再分的數(shù)據(jù)單元。(2)每列的名稱不同,數(shù)據(jù)類型相同或者兼容。(3)行的順序無關(guān)緊要。(4)列的順序無關(guān)緊要。(5)不存在完全相同的兩行。通常將關(guān)系模型稱為關(guān)系或者表,將關(guān)系中的行稱為元組或記錄,將關(guān)系中的列稱為屬性或字段。任務(wù)3-2認知關(guān)系模型的基本概念項目2設(shè)計數(shù)據(jù)庫43431.關(guān)系術(shù)語關(guān)系數(shù)據(jù)庫有幾個常見的關(guān)系術(shù)語。(1)關(guān)系關(guān)系就是一個二維表格,每個關(guān)系都有一個關(guān)系名。在SQLServer2019中,一個關(guān)系稱為一個表(Table)。(2)記錄(元組)在一個具體的關(guān)系中,每一行稱為一個記錄,又稱元組。(3)字段(屬性)在一個具體的關(guān)系中,每一列稱為一個字段,又稱屬性。任務(wù)3-2認知關(guān)系模型的基本概念項目2設(shè)計數(shù)據(jù)庫4444(4)域域就是屬性的取值范圍,即不同記錄對同一個屬性的取值予以限定的范圍。例如,“成績”屬性的域是0~100,“性別”屬性的域為“男”“女”。(5)關(guān)鍵字在一個關(guān)系中有一個或幾個這樣的字段(屬性),其值可以唯一地標識一個記錄,該字段稱為關(guān)鍵字。例如,學生表中的“學號”字段就可以作為一個關(guān)鍵字,而“姓名”字段因其值不唯一而不能作為關(guān)鍵字。任務(wù)3-2認知關(guān)系模型的基本概念項目2設(shè)計數(shù)據(jù)庫4545(6)關(guān)系模式對關(guān)系的描述稱為關(guān)系模式。一個關(guān)系模式對應(yīng)一個關(guān)系,是命名的屬性集合。其格式為:關(guān)系名(屬性名1,屬性名2,…,屬性名n)例如:學生(學號,姓名,年齡,性別)課程(課程號,課程名,學分,學時)選修(學號,課程號,成績)一個具體的關(guān)系模型則是若干個相聯(lián)系的關(guān)系模式的集合。以上3個關(guān)系模式就可組成關(guān)系模型。任務(wù)3-2認知關(guān)系模型的基本概念項目2設(shè)計數(shù)據(jù)庫46462.關(guān)系的二維表的約束關(guān)系表現(xiàn)為二維表,但不是所有的二維表都是關(guān)系。成為關(guān)系的二維表有如下約束。(1)不允許“表中套表”,即表中每個屬性必須是不可分割的數(shù)據(jù)單元;或者說每個字段不能再分為若干個字段,即表中不能再包含表。(2)在同一個關(guān)系中不能出現(xiàn)相同的屬性名。(3)列的次序可以任意交換,不改變關(guān)系的實際意義。(4)表中的行又稱為元組,代表一個實體,因此表中不允許出現(xiàn)相同的兩行。(5)行的次序可以任意交換,不會改變關(guān)系的實際意義。任務(wù)3-2認知關(guān)系模型的基本概念項目2設(shè)計數(shù)據(jù)庫4747關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,而E-R圖則是由實體、實體的屬性和實體之間的聯(lián)系3個要素組成的,所以將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。這種轉(zhuǎn)換一般遵循如下原則。(1)一個實體轉(zhuǎn)換為一個關(guān)系模式,實體的屬性即關(guān)系的屬性,實體的關(guān)鍵字就是關(guān)系的關(guān)鍵字。(2)如果是一個1:1聯(lián)系,可在聯(lián)系兩端的實體關(guān)系中的任意一個關(guān)系的屬性中加入另一個關(guān)系的關(guān)鍵字。(3)如果是一個1:n聯(lián)系,可在n端實體轉(zhuǎn)換成的關(guān)系中加入一端實體關(guān)系中的關(guān)鍵字。任務(wù)3-3將學生選修E-R圖轉(zhuǎn)換為關(guān)系模型項目2設(shè)計數(shù)據(jù)庫4848(4)如果是一個n:m聯(lián)系,可轉(zhuǎn)換為一個關(guān)系。聯(lián)系兩端各實體關(guān)系的關(guān)鍵字組合構(gòu)成該關(guān)系的關(guān)鍵字,組成關(guān)系的屬性中除關(guān)鍵字外,還有聯(lián)系自有的屬性。(5)3個或3個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。(6)實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n、m:n這3種情況分別處理。(7)具有相同關(guān)鍵字的關(guān)系可以合并。任務(wù)3-3將學生選修E-R圖轉(zhuǎn)換為關(guān)系模型項目2設(shè)計數(shù)據(jù)庫4949按照上述轉(zhuǎn)換原則,將圖2-17所示的學生信息管理系統(tǒng)全局E-R圖轉(zhuǎn)換為如下關(guān)系模型。學生檔案(學號,姓名,性別,系名,出生日期,民族,總學分,備注)課程信息(課程編號,課程名稱,開課學期,學時,學分)學生成績(學號,課程編號,成績)用戶信息(用戶名,密碼)【例2-5】分析表2-1是否是關(guān)系模型。表2-1不是關(guān)系模型,因為授課情況還可以細分為開課學期、學時、學分3列。任務(wù)3-3將學生選修E-R圖轉(zhuǎn)換為關(guān)系模型項目2設(shè)計數(shù)據(jù)庫5050表2-1課程一覽表任務(wù)3-3將學生選修E-R圖轉(zhuǎn)換為關(guān)系模型項目2設(shè)計數(shù)據(jù)庫課程編號課程名稱授課情況開課學期學時學分104計算機文化基礎(chǔ)1603108C語言程序設(shè)計2965202數(shù)據(jù)結(jié)構(gòu)3724【例2-6】
將表2-1規(guī)范為關(guān)系模型。將表2-1的授課情況細分為開課學期、學時、學分3列,如表2-2所示,得到關(guān)系模型。課程編號課程名稱開課學期學時學分104計算機文化基礎(chǔ)1603108C語言程序設(shè)計2965202數(shù)據(jù)結(jié)構(gòu)37245151關(guān)系規(guī)范化的目的是消除存儲異常、減少數(shù)據(jù)冗余(重復),以保證數(shù)據(jù)完整性(即數(shù)據(jù)的正確性、一致性)和存儲效率,一般將關(guān)系規(guī)范到Ⅲ范式即可。表2-2~表2-4都滿足關(guān)系模型的5個特點,它們都是關(guān)系,但存在以下幾個問題。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫學號姓名性別系編號系名出生日期民族總學分備注201901王紅女01信息1996-02-14漢60NULL201902劉林男01信息1996-05-20漢54NULL201903曹紅雷男01信息1995-09-24漢50NULL學號姓名性別系編號系名出生日期民族總學分備注201901王紅女01信息1996-02-14漢60NULL201902劉林男01信息1996-05-20漢54NULL201903曹紅雷男01信息1995-09-24漢50NULL表2-3學生檔案表表2-4學生成績表(1)5252(1)數(shù)據(jù)冗余姓名在兩個表中重復出現(xiàn)。(2)數(shù)據(jù)可能不一致課程名稱、姓名重復出現(xiàn),容易出現(xiàn)數(shù)據(jù)不一致的情況,如輸入的課程名稱不規(guī)范,有時候輸入全稱,有時候輸入簡稱;另外,在修改數(shù)據(jù)時,可能會出現(xiàn)遺漏的情況,造成數(shù)據(jù)不一致。(3)數(shù)據(jù)維護困難任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫5353數(shù)據(jù)在多個表中重復出現(xiàn)使數(shù)據(jù)庫的維護變得困難。例如,某個學生更改姓名,則需要在學生檔案表和學生成績表這兩個表中更改,才能保證數(shù)據(jù)的一致性,數(shù)據(jù)量大時維護工作量會很大。關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足一定的規(guī)范化要求,對于不同的規(guī)范化程度,可以使用“范式”進行衡量,記作NF。滿足最低要求的為Ⅰ范式,簡稱1NF。在Ⅰ范式的基礎(chǔ)上,進一步滿足一些要求的為Ⅱ范式,簡稱2NF。同理,還可以進一步規(guī)范為Ⅲ范式。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫54541.Ⅰ范式如果一個關(guān)系的每個屬性都是不可再分的數(shù)據(jù)單元,則該關(guān)系是Ⅰ范式?!纠?-7】分析表2-2、表2-3是否是Ⅰ范式。因為表2-2、表2-3均滿足Ⅰ范式的條件,所以它們是Ⅰ范式。Ⅰ范式是關(guān)系必須達到的最低要求,不滿足該條件的關(guān)系稱為非規(guī)范化關(guān)系。因為Ⅰ范式存在數(shù)據(jù)冗余、數(shù)據(jù)不一致和維護困難等缺點,所以要對Ⅰ范式進一步規(guī)范。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫55552.Ⅱ范式如果一個關(guān)系是Ⅰ范式,并且關(guān)系中的每一個非主屬性完全函數(shù)都依賴于主關(guān)鍵字(PrimaryKey,或稱主鍵、主碼),則該關(guān)系是Ⅱ范式。單個屬性作為主鍵的情況比較簡單,因為主鍵的作用就是能唯一標識表中的每一行,關(guān)系中的非主屬性完全函數(shù)都能依賴于主鍵,所以這樣的關(guān)系是Ⅱ范式。對于組合屬性作為主鍵的那些關(guān)系,通常要判斷每一個非主屬性是完全函數(shù)依賴還是部分函數(shù)依賴于主鍵。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫5656【例2-8】分析表2-3、表2-4是否是Ⅱ范式。因為表2-3的主鍵是學號,該表的其他非主屬性都完全函數(shù)依賴于主鍵課程編號屬性,所以表2-3是Ⅱ范式。因為表2-4的主鍵為(學號,課程編號),在該表中成績屬性完全函數(shù)依賴于主鍵,姓名只依賴于主鍵中的學號屬性,它與主鍵中的課程編號屬性無關(guān),即姓名屬性部分函數(shù)依賴于主鍵,所以表2-4不是Ⅱ范式。將非Ⅱ范式規(guī)范為Ⅱ范式的方法是,將部分函數(shù)依賴關(guān)系中的主屬性(決定方)和非主屬性從關(guān)系中提取出來,單獨構(gòu)成一個關(guān)系;將關(guān)系中余下的其他屬性加上主鍵,構(gòu)成關(guān)系。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫5757【例2-9】將表2-4規(guī)范為Ⅱ范式。表2-4中的姓名屬性只與主鍵(學號,課程編號)中的學號有關(guān),規(guī)范時只需要將學號屬性、姓名屬性分離出來組成一個關(guān)系。由于分離出來的學號、姓名屬性在表2-3中已存在,因此可以由分離的屬性組成一個關(guān)系。剩余的其他屬性,即成績加上主鍵(學號,課程編號),構(gòu)成關(guān)系,如表2-5所示。它符合Ⅱ范式的條件,所以是Ⅱ范式。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫5858Ⅱ范式依然存在數(shù)據(jù)冗余、數(shù)據(jù)不一致的問題,可以進一步將其規(guī)范為Ⅲ范式。3.Ⅲ范式如果一個關(guān)系是Ⅱ范式,且關(guān)系中的每一個非主屬性都不完全函數(shù)傳遞依賴于主鍵,則此關(guān)系是Ⅲ范式。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫學號課程編號成績201901104812019021087720190320289表2-5學生成績表(2)5959【例2-10】分析表2-2、表2-3是否是Ⅲ范式。因為表2-2滿足Ⅱ范式,并且任何一個非主屬性都不完全函數(shù)傳遞依賴于主鍵,所以它是Ⅲ范式。表2-3是Ⅱ范式,但不是Ⅲ范式。它的主鍵為學號,系編號和系名之間存在通過系編號進行函數(shù)依賴傳遞的關(guān)系。要清除這種函數(shù)傳遞依賴關(guān)系,可將系編號屬性、系名屬性分離出來組成一個關(guān)系。刪除重復行后構(gòu)成表2-6所示的系部表,該表主鍵為系編號,它是Ⅲ范式。在表2-3中刪除系名屬性后,剩余屬性組成表2-7所示的學生表,它是Ⅲ范式。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫6060任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫學號課程編號成績201901104812019021087720190320289表2-8學生信息表系編號系名01信息02計算機03人文表2-6系部表學號姓名性別系編號出生日期民族總學分備注202101王紅女012003-02-14漢60NULL202102劉林男012003-05-20漢54NULL202103曹紅雷男012003-09-24漢50NULL表2-7學生表(1)6161對于某些比較簡單的數(shù)據(jù)庫,也可以刪除其系編號屬性,從而滿足Ⅲ范式的條件,如表2-8所示。Ⅲ范式的表數(shù)據(jù)基本獨立,表和表之間通過公共關(guān)鍵字(CommonKey)進行聯(lián)系(例如,表2-6和表2-7的公共關(guān)鍵字為系編號),它從根本上消除了數(shù)據(jù)冗余、數(shù)據(jù)不一致的問題。任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫6262數(shù)學中的算術(shù)運算是大家熟悉的,例如,2+3是一個算術(shù)運算,該運算的運算對象是數(shù)值2和3,運算法則是加法,運算結(jié)果是數(shù)值5。與此類似,關(guān)系運算的運算對象是關(guān)系(二維表),關(guān)系運算的法則包括選擇、投影、連接,關(guān)系運算結(jié)果也是關(guān)系(二維表)。下面分別介紹這3種關(guān)系運算法則。1.選擇選擇(Selection)是在一個關(guān)系中找出滿足給定條件的記錄。選擇是從行的角度對二維表的內(nèi)容進行篩選,形成新的關(guān)系。例如,學生表如表2-9所示。任務(wù)3-5關(guān)系運算項目2設(shè)計數(shù)據(jù)庫6363任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-7學生表(2)學號姓名性別系名出生日期民族總學分備注202101王紅女信息2003-02-14漢60無202102劉林男信息2003-05-20漢54無202103曹紅雷男信息2003-09-24漢50無202104方平女信息2003-08-11回52三好學生202105李偉強男信息2003-11-14漢60一門課不及格【例2-11】從表2-9中選擇男同學,選擇運算結(jié)果如表2-10所示,SQL語句如下:SELECT*FROM學生WHERE性別='男'6464任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-10選擇運算結(jié)果通俗地說,選擇運算是將滿足條件的元組提取出來,組成一個新的關(guān)系。2.投影投影(Projection)是從一個關(guān)系中找出符合條件的屬性列組成新的關(guān)系。投影是從列的角度對二維表的內(nèi)容進行篩選或重組,形成新的關(guān)系。學號姓名性別系名出生日期民族總學分備注202102劉林男信息2003-05-20漢54無202103曹紅雷男信息2003-09-24漢50無202105李偉強男信息2003-11-14漢60一門課不及格6565任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-11投影運算結(jié)果(1)【例2-12】從表2-9所示的學生表中篩選姓名和出生日期列,投影運算結(jié)果如表2-11所示,SQL語句如下:SELECT姓名,出生日期FROM學生從【例2-11】和【例2-12】中得知:選擇是從行的角度進行運算的,投影則是從列的角度進行運算的。姓名出生日期王紅2003-02-14劉林2003-05-20曹紅雷2003-09-24方平2003-08-11李偉強2003-11-146666任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-12投影運算結(jié)果(2)【例2-13】從表2-9中篩選性別列,投影運算結(jié)果如表2-12所示,SQL語句如下:SELECT性別FROM學生性別女男6767任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-13關(guān)系R3.連接連接(Join)是從兩個關(guān)系的笛卡兒積中選取屬性之間滿足一定條件的元組形成新的關(guān)系。在此不給出笛卡兒積的定義,僅通過一個例子讓讀者初步了解笛卡兒積。對于笛卡兒積的定義,請大家參考離散數(shù)學中的相關(guān)內(nèi)容。設(shè)關(guān)系R和關(guān)系S分別如表2-13和表2-14所示。ABCa1b1c1a2b2c2a3b3c36868任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-14關(guān)系S對關(guān)系R和關(guān)系S進行笛卡兒積運算的結(jié)果如表2-15所示。ADa1c4a3c5表2-15對關(guān)系R和關(guān)系S進行笛卡兒積運算的結(jié)果R.ABCS.ADa1b1c1a1c4a1b1c1a3c5a2b2c2a1c4a2b2c2a3c5a3b3c3a1c4a3b3c3a3c56969任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫連接運算中有兩種常用的連接:等值連接(Equijoin)和自然連接(NaturalJoin)。等值連接是選取R與S的笛卡兒積的屬性值相等的那些元組。自然連接要求兩個關(guān)系中進行比較的分量必須是相同屬性組,且要在結(jié)果中把重復的屬性去掉?!纠?-14】關(guān)系R與關(guān)系S按照屬性A的值進行等值連接的結(jié)果如表2-16所示。7070任務(wù)3-4關(guān)系規(guī)范化項目2設(shè)計數(shù)據(jù)庫表2-16關(guān)系R與關(guān)系S按照屬性A的值進行等值連接的結(jié)果自然連接R∞S的結(jié)果如表2-17所示。。表2-17自然連接R∞S的結(jié)果R.ABCS.ADa1b1c1a1c4a3b3c3a3c5R.ABCDa1b1c1c4a3b3c3c57171任務(wù)3-5關(guān)系數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫基于關(guān)系模型建立的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫,它具有通用的數(shù)據(jù)管理功能,數(shù)據(jù)表示能力較強,易于理解,使用方便。20世紀80年代以來,關(guān)系數(shù)據(jù)庫的理論日益完善,關(guān)系數(shù)據(jù)庫在數(shù)據(jù)庫系統(tǒng)中得到了廣泛的應(yīng)用,是各類數(shù)據(jù)庫中最為重要、使用最為廣泛、最為流行的數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫是一些相關(guān)的表和其他數(shù)據(jù)庫對象的集合。這里有3層含義。(1)在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)存儲在二維表結(jié)構(gòu)的數(shù)據(jù)表中,一個表是一個關(guān)系,又稱為實體集。①一個表包含若干行,每一行稱為一條記錄,表示一個實體。7272任務(wù)3-5關(guān)系數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫②每一行數(shù)據(jù)由多列組成,每一列稱為一個字段,反映了該實體某一方面的屬性。③在實體的屬性中,能唯一標識實體集中每個實體的某個或某幾個屬性稱為實體的關(guān)鍵字。在關(guān)系數(shù)據(jù)庫中,關(guān)鍵字被稱為主鍵。(2)數(shù)據(jù)庫包含的表之間是有聯(lián)系的,聯(lián)系由表的主鍵和外關(guān)鍵字(ForeignKey,或稱外鍵、外碼)所體現(xiàn)的參照關(guān)系實現(xiàn)。①關(guān)系表現(xiàn)為表。關(guān)系數(shù)據(jù)庫一般由多個關(guān)系(表)組成。②表之間由某些字段的相關(guān)性而產(chǎn)生聯(lián)系。在關(guān)系數(shù)據(jù)庫中,表既能反映實體,又能表示實體之間的聯(lián)系。③用表的主鍵和外鍵反映實體間的聯(lián)系。在關(guān)系數(shù)據(jù)庫中,外鍵是指表中含有的與另一個表的主鍵相對應(yīng)的字段,它用來與其他表建立聯(lián)系。7373任務(wù)3-5關(guān)系數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫(3)數(shù)據(jù)庫不僅包含表,還包含其他的數(shù)據(jù)庫對象,如視圖、存儲過程和索引等。數(shù)據(jù)庫是存儲數(shù)據(jù)的容器,數(shù)據(jù)主要保存在數(shù)據(jù)庫的表中,所以,數(shù)據(jù)表是數(shù)據(jù)庫的基本對象。除此之外,在數(shù)據(jù)庫中還有其他對象,常用的如下。①視圖:一個虛擬表,可用于從實際表中檢索數(shù)據(jù),并按指定的結(jié)構(gòu)形式瀏覽。②存儲過程:一個預(yù)編譯的語句和指令的集合,可執(zhí)行查詢或者數(shù)據(jù)維護工作。7474任務(wù)3-5關(guān)系數(shù)據(jù)庫項目2設(shè)計數(shù)據(jù)庫④索引:用于快速檢索訪問數(shù)據(jù)表中的數(shù)據(jù),以及增強數(shù)據(jù)完整性。⑤規(guī)則:通過綁定操作,可用于限定數(shù)據(jù)表中數(shù)據(jù)的有效值或數(shù)據(jù)類型。目前使用的數(shù)據(jù)庫系統(tǒng)大都是關(guān)系數(shù)據(jù)庫。現(xiàn)在關(guān)系數(shù)據(jù)庫以其完備的理論基礎(chǔ)、簡單的模型和使用的便捷性等優(yōu)點獲得了廣泛的應(yīng)用。本書中的數(shù)據(jù)庫模型都是關(guān)系模型。7575【任務(wù)目標】對數(shù)據(jù)完整性有清晰的認識?!駥﹃P(guān)鍵字有清晰的認識?!救蝿?wù)分析】數(shù)據(jù)完整性是數(shù)據(jù)庫設(shè)計日常維護的關(guān)鍵技術(shù),本任務(wù)介紹關(guān)鍵字和數(shù)據(jù)完整性。任務(wù)4認知關(guān)鍵字和數(shù)據(jù)完整性項目2設(shè)計數(shù)據(jù)庫7676關(guān)鍵字(keyword)又稱保留字,作為一個關(guān)系的主碼,標識關(guān)系的唯一性。1.關(guān)鍵字關(guān)鍵字是用來唯一標識表中每一行的屬性或?qū)傩缘慕M合,通常也被稱為關(guān)鍵碼。【例2-15】分析表2-2、表2-5、表2-8的關(guān)鍵字。表2-2課程信息表中的課程編號、課程名稱兩個屬性都可以作為關(guān)鍵字,因為這兩個屬性的值在一門課程里都是唯一的。表2-5學生成績表中的學號和課程編號是復合關(guān)鍵字。表2-8學生信息表中的學號、姓名是關(guān)鍵字。其他屬性的值都不唯一。任務(wù)4-1認知關(guān)鍵字項目2設(shè)計數(shù)據(jù)庫77772.候選關(guān)鍵字與主鍵候選關(guān)鍵字(CandidateKey)是指可以用來作為關(guān)鍵字的屬性或?qū)傩缘慕M合。主鍵是指選中的關(guān)鍵字。在一個表中能指定一個主鍵,它的值必須是唯一的,并且不允許為空(NULL,未輸入值的未知值)?!纠?-16】分析表2-2是否有候選關(guān)鍵字,選哪個(些)屬性作為主鍵比較合適?表2-2課程信息表中的課程編號、課程名稱兩個屬性都可以作為關(guān)鍵字,因為這兩個屬性的值在一門課程里都是唯一的,所以課程編號、課程名稱兩個屬性都是候選關(guān)鍵字。任務(wù)4-1認知關(guān)鍵字項目2設(shè)計數(shù)據(jù)庫78783.公共關(guān)鍵字公共關(guān)鍵字就是連接兩個表的公共屬性?!纠?-17】指出表2-2與表2-5、表2-5與表2-8的公共關(guān)鍵字。表2-2課程信息表和表2-5學生成績表之間通過課程編號進行聯(lián)系,所以課程編號關(guān)鍵字是兩個表的公共關(guān)鍵字,稱課程編號為表2-2和表2-5的公共關(guān)鍵字。因為表2-5學生成績表和表2-8學生信息表之間通過學號進行聯(lián)系,所以學號關(guān)鍵字是兩個表的公共關(guān)鍵字,稱學號為表2-5和表2-8的公共關(guān)鍵字。任務(wù)4-1認知關(guān)鍵字項目2設(shè)計數(shù)據(jù)庫79794.外鍵外鍵由一個表中的一個屬性或多個屬性組成,是另一個表的主鍵。實際上,外鍵本身只是主鍵的副本,它的值允許為空。外鍵是一個公共關(guān)鍵字。使用主鍵和外鍵可建立起表和表之間的聯(lián)系?!纠?-18】指出表2-2、表2-5、表2-8的外鍵。由例【2-17】知道,課程編號為表2-2課程信息表和表2-5學生成績表的公共關(guān)鍵字,在表2-2中它是主鍵,在表2-5中它是外鍵,因為表2-5
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同之二手車場地租賃合同
- 有機農(nóng)產(chǎn)品認證咨詢服務(wù)協(xié)議
- 股份制公司運營方案
- 體育健身行業(yè)私教課程運動傷害免責協(xié)議
- 勞務(wù)安全責任合同
- 高效率會議組織及策劃方案
- 心理咨詢師個人咨詢免責協(xié)議書
- 股權(quán)出讓居間協(xié)議書
- 第六單元《生日》教學設(shè)計-2024-2025學年四年級下冊數(shù)學北師大版
- 第1課時 億以內(nèi)數(shù)的認識(教學設(shè)計)-2024-2025學年四年級上冊數(shù)學人教版
- 2025年房屋交易代持策劃協(xié)議書
- 2025年上半年贛州市于都縣招聘城管協(xié)管員易考易錯模擬試題(共500題)試卷后附參考答案
- 中考數(shù)學總復習第一章第3課時二次根式課件
- 天然氣脫硫完整版本
- 2025年中國電子煙行業(yè)發(fā)展前景與投資戰(zhàn)略規(guī)劃分析報告
- 貨物學基礎(chǔ) 課件 項目一 任務(wù)一 貨物的基本概念
- 無人機法律法規(guī)與安全飛行 第2版空域管理
- 我的小學生活
- 《商務(wù)溝通-策略、方法與案例》課件 第三章 書面溝通
- 2024具身大模型關(guān)鍵技術(shù)與應(yīng)用報告-哈爾濱工業(yè)大學
- 提高瓦屋面太陽能板安裝一次驗收合格率
評論
0/150
提交評論