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