【正文】
,不同的零件所用的材料可以相同。零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若干倉庫中(不跨倉庫存放)。解:分別給出一個(gè)層次、網(wǎng)狀和關(guān)系模型的實(shí)例。 一個(gè)層次模型的示例,成為一個(gè)教師學(xué)生層次數(shù)據(jù)庫。記錄型系是根結(jié)點(diǎn),由系編號(hào)、系名、辦公地三個(gè)字段組成。記錄型教研室是系的子女結(jié)點(diǎn),同時(shí)又是教師的雙親結(jié)點(diǎn),它是教研室編號(hào)、教研室名兩個(gè)字段組成。記錄教師由教師號(hào)、姓名、研究方向三個(gè)字段組成。由系到教研室、教研室到教師、系到學(xué)生均是一對(duì)多的聯(lián)系。 教師學(xué)生數(shù)據(jù)庫的一個(gè)值2)網(wǎng)狀模型的實(shí)例下面以教師授課為例,教師授課數(shù)據(jù)庫可包含三個(gè)記錄:教師、課程和授課。教師與授課之間聯(lián)系是一對(duì)多的聯(lián)系聯(lián)系名為TTC。 教師、課程、授課的網(wǎng)狀數(shù)據(jù)庫模式。解:1)層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn):(1)層次模型本身比較簡(jiǎn)單。(3)層次模型提供了良好的完整性支持。(2)對(duì)插入和刪除操作的限制太多,影響太大。(4)由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。(2)具有良好的性能,存取效率較高。(2)其DDL、DML語言復(fù)雜,用戶不容易使用。3)關(guān)系模型的優(yōu)缺點(diǎn)關(guān)系模型具有下列優(yōu)點(diǎn):(1)關(guān)系模型與非關(guān)系模型不同,它有較強(qiáng)的數(shù)學(xué)理論基礎(chǔ)。(3)關(guān)系模型的存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫開發(fā)和建立的工作。因此,為了提高性能,必須對(duì)用戶的查詢進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負(fù)擔(dān)。元組:二維表中的一行稱為一個(gè)元組。主碼:如果二維表中的某個(gè)屬性或是屬性組可以唯一確定一個(gè)元組,則稱為主碼,也稱為關(guān)系鍵,如教師號(hào),可以唯一確定一個(gè)教師,也就成為教師關(guān)系的主碼。分量:元組中的一個(gè)屬性值。關(guān)系模式:表現(xiàn)為關(guān)系名和屬性的集合,是對(duì)關(guān)系的具體描述。數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指外模式、模式和內(nèi)模式。數(shù)據(jù)庫管理系統(tǒng)(DBMS)提供子模式描述語言(子模式DDL)來定義子模式。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲(chǔ)細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序,與所使用的應(yīng)用開發(fā)工具及高級(jí)程序設(shè)計(jì)語言等無關(guān)。一個(gè)數(shù)據(jù)庫只有一個(gè)模式。(3)內(nèi)模式(Internal Schema):內(nèi)模式也稱為存儲(chǔ)模式,一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。DBMS提供內(nèi)模式描述語言(內(nèi)模式DDL)來嚴(yán)格地定義內(nèi)模式。2)數(shù)據(jù)庫管理系統(tǒng)內(nèi)部采用這樣的結(jié)構(gòu)是因?yàn)椋哼@種結(jié)構(gòu)能較好地保證數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有較高的邏輯獨(dú)立性和物理獨(dú)立性。數(shù)據(jù)庫的三級(jí)模式與二級(jí)映象使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。1數(shù)據(jù)獨(dú)立性包括哪兩個(gè)方面,含義分別是什么?解:數(shù)據(jù)獨(dú)立性分為數(shù)據(jù)邏輯獨(dú)立性與數(shù)據(jù)物理獨(dú)立性兩個(gè)方面。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱為數(shù)據(jù)邏輯獨(dú)立性。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱為數(shù)據(jù)物理獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)主要包括以下幾個(gè)功能:(1)數(shù)據(jù)定義:DBMS提供數(shù)據(jù)定義語言(Data Definition Language,簡(jiǎn)稱DDL),用戶通過它可以方便地對(duì)數(shù)據(jù)庫中的數(shù)據(jù)對(duì)象(包括表、視圖、索引、存儲(chǔ)過程等)進(jìn)行定義。(2)數(shù)據(jù)操縱:DBMS提供數(shù)據(jù)操縱語言(Data Manipulation Language,簡(jiǎn)稱DML),通過DML操縱數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的一些基本操作,如查詢,插入,刪除和修改等等。(3)數(shù)據(jù)庫的運(yùn)行管理:這一功能是數(shù)據(jù)庫管理系統(tǒng)的核心所在。DBMS主要通過數(shù)據(jù)的安全性控制、完整性控制、多用戶應(yīng)用環(huán)境的并發(fā)性控制和數(shù)據(jù)庫數(shù)據(jù)的系統(tǒng)備份與恢復(fù)四個(gè)方面來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的統(tǒng)一控制功能的。1數(shù)據(jù)庫系統(tǒng)通常由哪幾部分組成?解:數(shù)據(jù)庫系統(tǒng)是指計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的整個(gè)人機(jī)系統(tǒng)。1)硬件平臺(tái):要有足夠大的內(nèi)存支持OS與DBMS的運(yùn)行;要有足夠大而快速的磁盤等直接存儲(chǔ)設(shè)備存放數(shù)據(jù)庫,有足夠的磁盤空間做數(shù)據(jù)備份。2)數(shù)據(jù)庫:數(shù)據(jù)庫是存放數(shù)據(jù)的地方,是存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的大量可共享的數(shù)據(jù)集合。3)軟件:數(shù)據(jù)庫系統(tǒng)的軟件主要包括:(1)支持DBMS運(yùn)行的操作系統(tǒng);(2)DBMS:DBMS可以通過操作系統(tǒng)對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行存取、管理和維護(hù);(3)具有與數(shù)據(jù)庫接口的高級(jí)語言及其編譯系統(tǒng);(4)以DBMS為核心的應(yīng)用開發(fā)工具,為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)。這里的最終用戶,又可以分為三類:偶然用戶、簡(jiǎn)單用戶、復(fù)雜用戶等。1請(qǐng)用擴(kuò)展ER圖來表示客戶的相關(guān)信息。1請(qǐng)用擴(kuò)展ER圖中的實(shí)體角色的表示方法來分別表示:學(xué)生與學(xué)生間的班長(zhǎng)關(guān)系與課程之間的先修關(guān)系等。請(qǐng)用擴(kuò)展ER圖的表示方法來表示如下信息:人有姓名、所在城市等信息;人可分成客戶(含購買金額)和雇員(有雇員號(hào)、薪水信息等)兩類;雇員可再分為辦公人員(有累計(jì)辦公天數(shù)信息)、車間職員(有累計(jì)產(chǎn)生產(chǎn)品數(shù)量信息)、銷售人員(有累計(jì)銷售數(shù)量與銷售金額信息)等三類。制造商與批發(fā)商聯(lián)營產(chǎn)品的銷售有個(gè)具體的時(shí)間,共同聯(lián)營的產(chǎn)品才共同負(fù)責(zé)發(fā)送。其中醫(yī)生有姓名與專長(zhǎng)信息;病人有姓名、身份證號(hào)、保險(xiǎn)號(hào)等信息;病歷有門診日期、診斷病癥、治療方法及治療結(jié)果等信息。保險(xiǎn)號(hào)醫(yī)生專長(zhǎng)姓名病人身份證號(hào)m治療方法診治n姓名治療時(shí)間門診日期治療結(jié)果第2章 關(guān)系數(shù)據(jù)庫一、單項(xiàng)選擇題ACBCABBBCC設(shè)關(guān)系R和S的屬性個(gè)數(shù)分別為r和s,則(RS)操作結(jié)果的屬性個(gè)數(shù)為( )A. r+s B. rs C. rs D. max(r,s)在基本的關(guān)系中,下列說法正確的是( )A. 行列順序有關(guān) B. 屬性名允許重名C. 任意兩個(gè)元組不允許重復(fù) D. 列是非同質(zhì)的有關(guān)系R和S,R∩S的運(yùn)算等價(jià)于( )(RS) (RS) C.(RS)∪S ∪(RS)設(shè)關(guān)系R(A,B,C)和S(A,D),與自然連接R ∞ S等價(jià)的關(guān)系代數(shù)表達(dá)式是( )1=1A. =(RS) B. R SC. ∏B,C,D(=(RS)) D. ∏,B,C(RS)五種基本關(guān)系代數(shù)運(yùn)算是( )A. ∪、π和σ B. ∪、 、∏和σC. ∪、∩、π和σ D. ∪、∩、 、π和σ關(guān)系代數(shù)中的θ聯(lián)接操作由( )操作組合而成。 對(duì)一個(gè)關(guān)系做投影操作后,新關(guān)系的基數(shù)個(gè)數(shù)( )原來關(guān)系的基數(shù)個(gè)數(shù)。R: A B C S: D A1 2 3 1 22 1 3 2 null3 34 1A. (1,2) B. (2,null) C. (3,3) D. (4,1)關(guān)系運(yùn)算中花費(fèi)時(shí)間可能最長(zhǎng)的運(yùn)算是( )。關(guān)系代數(shù)中專門的關(guān)系運(yùn)算包括:選擇、投影、連接和除法,主要實(shí)現(xiàn)_查詢_類操作。關(guān)系數(shù)據(jù)庫中,關(guān)系稱為_表__,元組亦稱為__行__,屬性亦稱為_列__。一個(gè)關(guān)系模式可以形式化地表示為_R(U,D,dom,F(xiàn))_。,所有的關(guān)系集合構(gòu)成_關(guān)系數(shù)據(jù)庫_。將兩個(gè)關(guān)系中滿足一定條件的元組連接到一起構(gòu)成新表的操作稱為_θ連接_操作。解:1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)——關(guān)系關(guān)系模型的數(shù)據(jù)結(jié)構(gòu):非常單一,在用戶看來,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2)關(guān)系模型的關(guān)系操作:關(guān)系模型給出了關(guān)系操作的能力,它利用基于數(shù)學(xué)的方法來表達(dá)關(guān)系操作,關(guān)系模型給出的關(guān)系操作往往不針對(duì)具體的RDBMS語言來表述。查詢的表達(dá)能力是其中最主要的部分。關(guān)系代數(shù)是用對(duì)關(guān)系的運(yùn)算(即元組的集合運(yùn)行)來表達(dá)查詢要求的方式。關(guān)系演算又可按謂詞變?cè)幕緦?duì)象是元組變量還是域變量分為元組關(guān)系演算和域關(guān)系演算。另外還有一種介于關(guān)系代數(shù)和關(guān)系演算之間的語言SQL(Structured Query Language)。它充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)點(diǎn),是關(guān)系數(shù)據(jù)庫的國際標(biāo)準(zhǔn)語言。(2) 關(guān)系演算:用謂詞表達(dá)查詢要求,可分為兩類:①元組關(guān)系演算:謂詞變?cè)幕緦?duì)象是元組變量,例如 APLHA、QUEL;②域關(guān)系演算:謂詞變?cè)幕緦?duì)象是域變量,例如QBE。這些關(guān)系數(shù)據(jù)語言的共同特點(diǎn)是:語言具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能夠嵌入到高級(jí)語言中使用。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。試述關(guān)系數(shù)據(jù)庫語言的特點(diǎn)和分類。定義并理解下列概念,說明它們間的聯(lián)系與區(qū)別:(1)域、笛卡爾積、關(guān)系、元組、屬性(2)主碼、候選碼、外碼(3)關(guān)系模式、關(guān)系、關(guān)系數(shù)據(jù)庫解:(1)域、笛卡爾積、關(guān)系、元組、屬性1)域:域是一組具有相同數(shù)據(jù)類型的值的集合。關(guān)系是笛卡爾積的子集,反過來說,看到某關(guān)系,也要看到該關(guān)系背后存在的其所屬于的笛卡爾積,關(guān)系內(nèi)容無論如何變都變化不出其所屬于的笛卡爾積的,這是笛卡爾積概念的意義所在。5)表的每列起一個(gè)唯一的名字,稱為屬性。由于域可以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)唯一的名字,稱為屬性。2)主碼:一個(gè)關(guān)系至少有一個(gè)候選碼,則選定其中一個(gè)為主控使用者,稱為主碼(Primary key)。聯(lián)系:關(guān)系的候選碼中選定一個(gè)稱為主碼,主碼即是候選碼;而外碼是與另一關(guān)系的主碼相對(duì)應(yīng)的屬性組。關(guān)系模式是對(duì)關(guān)系的描述,一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)5元組。一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)五元組。其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。也就是說,關(guān)系模式是型,關(guān)系是它的值。在一個(gè)給定的現(xiàn)實(shí)世界領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。但在實(shí)際使用中,常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系,讀者可以從上下文中加以區(qū)別。關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對(duì)關(guān)系數(shù)據(jù)庫的描述,是關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫。解:1)關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。2)(1)實(shí)體完整性:若屬性組(或?qū)傩裕㎏是基本關(guān)系R的主碼(或稱主關(guān)鍵字),則所有元組K的取值唯一,并且K中屬性不能全部或部分取空值。(2)參照完整性:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值。它要滿足參照完整性。(3)用戶定義的完整性:用戶定義的完整性就是針對(duì)某一具體應(yīng)用的關(guān)系數(shù)據(jù)庫所制定的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)系代數(shù)運(yùn)算有哪兩大類,試說明每種運(yùn)算的操作含義。(1)傳統(tǒng)的集合運(yùn)算:包括并、交、差、廣義笛卡爾積四種運(yùn)算。2)各運(yùn)算的操作含義(1)并:設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的所有元組組成。記作:R-S={t| t R∧t S }(3)交:設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的交由既屬于R又屬于S的所有元組組成。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。記作:RS={t t | t R∧t S}(5)選擇:選擇又稱為限制(Restriction)。記作:∏(R) = { t[A] | t R }(7)連接:︵連接也稱為θ連接。記作: ={ t t |t ∈R∧t ∈S∧t [A]θt [B] }︵θ為”=”的連接運(yùn)算稱為等值連接。等值連接表示為:={ t t | ∈R∧t ∈S∧t [A]=t [B]}。即若R和S具有相同的屬性組B,則自然連接可記作:R∞S={ trts[B]|tr∈R∧ts∈S∧tr[B]=ts[B]}。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。記作:P=R247。關(guān)系代數(shù)的基本運(yùn)算有哪些?請(qǐng)用基本運(yùn)算表示非基本運(yùn)算。2)另外3種運(yùn)算,即交、連接和除為非基本運(yùn)算,均可以用這5種基本運(yùn)算來表達(dá)。S =∏X(R)∏X(∏X(R)∏Y(S)R)舉例說明等值連接與自然連接的區(qū)別與聯(lián)系。它是從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組。為此: = A=B(RS)︵自然連接(Natural join)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。為此:R∞S=∏ ( =(RS))一般的連接操作是從行的角度進(jìn)行運(yùn)算。舉例:(a)(b)分別為關(guān)系R和關(guān)系S,=(d)為等值連接R∞S的結(jié)果,(e)為自然連接R∞S的結(jié)果。R SABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52(a) (b)=R ∞S R∞SABCEa1b153a1b267a2b3810a2b382ACEa1b15b13a1b26b27a2b38b310a2b38b32(d) (e) 連接運(yùn)算舉例設(shè)有關(guān)系R、S(如下表所示),計(jì)算:R SA B C C D E3 6 7 3 4 54 5 7 6 2 36 2 35 4 322(1) R1 =R S (2) R2=R S(3) R3 = B=D(RS)解:(1)A B C D E6 2 3 4 55 4 3 4 5(2) A B D E6 2 3 3 4 5(3) 結(jié)果同(2)請(qǐng)用抽象的元組關(guān)系演算表達(dá)式表達(dá)第8題中的RR2與R