第一篇:數(shù)據(jù)庫試題及課后答案
數(shù)據(jù)庫系統(tǒng)概論習題集
第一章 緒論
一、選擇題
1.DBS是采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng),DBS是一個集合體,包含數(shù)據(jù)庫、計算機硬件、軟件和(C)。
A.系統(tǒng)分析員 B.程序員 C.數(shù)據(jù)庫管理員 D.操作員
2.數(shù)據(jù)庫(DB),數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是(A)。
A.DBS包括DB和DBMS B.DBMS包括DB和DBS
C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS
3.下面列出的數(shù)據(jù)庫管理技術(shù)發(fā)展的三個階段中,沒有專門的軟件對數(shù)據(jù)進行管理的是(D)。
I.人工管理階段
II.文件系統(tǒng)階段
III.數(shù)據(jù)庫階段
A.I 和 II B.只有 II
C.II 和 III D.只有 I
4.下列四項中,不屬于數(shù)據(jù)庫系統(tǒng)特點的是(C)。
A.數(shù)據(jù)共享 B.數(shù)據(jù)完整性 C.數(shù)據(jù)冗余度高 D.數(shù)據(jù)獨立性高
5.數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性體現(xiàn)在(B)。
A.不會因為數(shù)據(jù)的變化而影響到應用程序
B.不會因為系統(tǒng)數(shù)據(jù)存儲結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應用程序
C.不會因為存儲策略的變化而影響存儲結(jié)構(gòu)
D.不會因為某些存儲結(jié)構(gòu)的變化而影響其他的存儲結(jié)構(gòu)
6.描述數(shù)據(jù)庫全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是(A)。
A.模式 B.內(nèi)模式 C.外模式 D.用戶模式
7.要保證數(shù)據(jù)庫的數(shù)據(jù)獨立性,需要修改的是(C)。
A.模式與外模式 B.模式與內(nèi)模式
C.三層之間的兩種映射 D.三層模式
8.要保證數(shù)據(jù)庫的邏輯數(shù)據(jù)獨立性,需要修改的是(A)。
A.模式與外模式的映射 B.模式與內(nèi)模式之間的映射
C.模式 D.三層模式
9.用戶或應用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是(C),它是模式的邏輯子集。
A.模式 B.物理模式 C.子模式 D.內(nèi)模式
10.下述(D)不是DBA數(shù)據(jù)庫管理員的職責。
A.完整性約束說明 B.定義數(shù)據(jù)庫模式
C.數(shù)據(jù)庫安全 D.數(shù)據(jù)庫管理系統(tǒng)設(shè)計
選擇題答案:
(1)C(2)A(3)D(4)C(5)B
(6)A(7)C(8)A(9)C(10)D 課后習題
第二章 關(guān)系數(shù)據(jù)庫
一、選擇題
1.下面的選項不是關(guān)系數(shù)據(jù)庫基本特征的是(A)。
A.不同的列應有不同的數(shù)據(jù)類型
B.不同的列應有不同的列名
C.與行的次序無關(guān)
D.與列的次序無關(guān)
2.一個關(guān)系只有一個(D)。
A.候選碼 B.外碼 C.超碼 D.主碼
3.關(guān)系模型中,一個碼是(C)。
A.可以由多個任意屬性組成B.至多由一個屬性組成
C.可有多個或者一個其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.以上都不是
4.現(xiàn)有如下關(guān)系:
患者(患者編號,患者姓名,性別,出生日起,所在單位)
醫(yī)療(患者編號,患者姓名,醫(yī)生編號,醫(yī)生姓名,診斷日期,診斷結(jié)果)
其中,醫(yī)療關(guān)系中的外碼是(A)。
A.患者編號 B.患者姓名
C.患者編號和患者姓名 D.醫(yī)生編號和患者編號
5.現(xiàn)有一個關(guān)系:借閱(書號,書名,庫存數(shù),讀者號,借期,還期),假如同一本書允許一個讀者多次借閱,但不能同時對一種書借多本,則該關(guān)系模式的外碼是(D)。
A.書號 B.讀者號
C.書號+讀者號 D.書號+讀者號+借期
6.關(guān)系模型中實現(xiàn)實體間 N:M 聯(lián)系是通過增加一個(A)。
A.關(guān)系實現(xiàn) B.屬性實現(xiàn) C.關(guān)系或一個屬性實現(xiàn) D.關(guān)系和一個屬性實現(xiàn)
7.關(guān)系代數(shù)運算是以(C)為基礎(chǔ)的運算。
A.關(guān)系運算 B.謂詞演算 C.集合運算 D.代數(shù)運算
8.關(guān)系數(shù)據(jù)庫管理系統(tǒng)應能實現(xiàn)的專門關(guān)系運算包括(B)。
A.排序、索引、統(tǒng)計 B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序 D.顯示、打印、制表
9.五種基本關(guān)系代數(shù)運算是(A)。
A.∪ - × σ π
B.∪ - σ π
C.∪ ∩ × σ π
D.∪ ∩ σ π
10.關(guān)系代數(shù)表達式的優(yōu)化策略中,首先要做的是(B)。
A.對文件進行預處理
B.盡早執(zhí)行選擇運算
C.執(zhí)行笛卡爾積運算
D.投影運算
11.關(guān)系數(shù)據(jù)庫中的投影操作是指從關(guān)系中(B)。
A.抽出特定記錄 B.抽出特定字段
C.建立相應的影像 D.建立相應的圖形
12.從一個數(shù)據(jù)庫文件中取出滿足某個條件的所有記錄形成一個新的數(shù)據(jù)庫文件的操作是(C)操作。
A.投影 B.聯(lián)接 C.選擇 D.復制
13.關(guān)系代數(shù)中的聯(lián)接操作是由(B)操作組合而成。
A.選擇和投影 B.選擇和笛卡爾積
C.投影、選擇、笛卡爾積 D.投影和笛卡爾積
14.自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。一般情況下,當對關(guān)系R和S是用自然聯(lián)接
時,要求R和S含有一個或者多個共有的(C)。
A.記錄 B.行 C.屬性 D.元組
15.假設(shè)有關(guān)系R和S,在下列的關(guān)系運算中,(D)運算不要求:“R和S具有相同的元數(shù),且它們的對應屬性的數(shù)據(jù)類型也相同”。
A.R∩S B.R∪S C.R-S D.R×S
16.假設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達式R-(R-S)表示的是(A)。
A.R∩S B.R∪S C.R-S D.R×S
17.下面列出的關(guān)系代數(shù)表達是中,那些式子能夠成立(C)
ⅰ.σf1(σf2(E))= σf1∧f2(E)
ⅱ.E1∞E2 = E2∞E1
ⅲ.(E1∞E2)∞E3 = E1∞(E2∞E3)
ⅳ.σf1(σf2(E))=σf2(σf1(E))
A.全部 B.ⅱ和ⅲ C.沒有 D.ⅰ和ⅳ
18.下面四個關(guān)系表達式是等價的,是判別它們的執(zhí)行效率(A)。
E1 =πA(σ B=C ∧ D=E′(R×S))
E2 =πA(σ B=C(R× σD=E′(S))
E3 =πA(R∞B=CσD=E′(S))
E3 =πA(σD=E′(R∞B=C S))
A.E3最快 B.E2最快 C.E4最快 D.E1最快
19.有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學生的學號和分數(shù),正確的關(guān)系代數(shù)表達式是(D)。
ⅰ.πS_ID,SCORE(σ age>22(SC))
ⅱ.σ age>22(πS_ID,SCORE(SC))
ⅲ.πS_ID,SCORE(σ age>22(πS_ID,SCORE,AGE(SC)))
A.ⅰ和 ⅱ B.只有ⅱ正確 C.只有 ⅰ正確 D.ⅰ和ⅲ正確
選擇題答案:
(1)A(2)D(3)C(4)A(5)D
(6)A(7)C(8)B(9)A(10)B
(11)B(12)C(13)B(14)C(15)D
(16)A(17)C(18)A(19)D 課后習題
5.設(shè)有一個SPJ 數(shù)據(jù)庫,包括S,P,J,SPJ 四個關(guān)系模式: 1)求供應工程J1 零件的供應商號碼SNO: πSno(σSno=‘J1’(SPJ))2)求供應工程J1 零件P1 的供應商號碼SNO: πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供應工程J1 零件為紅色的供應商號碼SNO:
πSno(σPno=‘P1‘(σCOLOR=’紅‘(P)∞SPJ))4)求沒有使用天津供應商生產(chǎn)的紅色零件的工程號JNO:
πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘紅‘(S∞SPJ∞P)5)求至少用了供應商S1 所供應的全部零件的工程號JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘(SPJ))
7.關(guān)系代數(shù)的基本運算有哪些 ? 如何用這些基本運算來表示其他運算? 答:并、差、笛卡爾積、投影和選擇5 種運算為基本的運算。其他3 種運算,即交、連接
和
除,均可以用這5 種基本運算來表達。第三章 SQL語言
一、選擇題
1.SQL語言是(B)的語言,容易學習。
A.過程化 B.非過程化
C.格式化 D.導航式
2.SQL語言的數(shù)據(jù)操縱語句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語句是(A)。
A.SELECT B.INSERT
C.UPDATE D.DELETE
3.在視圖上不能完成的操作是(C)。
A.更新視圖 B.查詢
C.在視圖上定義新的表 D.在視圖上定義新的視圖
4.SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語句是實現(xiàn)哪種功能(C)。
A.數(shù)據(jù)查詢 B.數(shù)據(jù)操縱
C.數(shù)據(jù)定義 D.數(shù)據(jù)控制
5.SQL語言中,刪除一個視圖的命令是(B)。
A.DELETE
B.DROP
C.CLEAR
D.REMOVE
6.在SQL語言中的視圖VIEW是數(shù)據(jù)庫的(A)。
A.外模式 B.模式 C.內(nèi)模式 D.存儲模式
7.下列的SQL語句中,(D)不是數(shù)據(jù)定義語句。
A.CREATE TABLE B.DROP VIEW
C.CREATE VIEW D.GRANT
8.若要撤銷數(shù)據(jù)庫中已經(jīng)存在的表S,可用(C)。
A.DELETE TABLE S B.DELETE S
C.DROP TABLE S D.DROP S
9.若要在基本表S中增加一列CN(課程名),可用(C)。
A.ADD TABLE S(CN CHAR(8))
B.ADD TABLE S ALTER CN CHAR(8)
C.ALTER TABLE S ADD(CN CHAR(8))
D.ALTER TABLE S(ADD CN CHAR(8))
10.學生關(guān)系模式 S(S#,Sname,Sex,Age),S的屬性分別表示學生的學號、姓名、性別、年齡。要在表S中刪除一個屬性“年齡”,可選用的SQL語句是(B)。
A.DELETE Age from S
B.ALTER TABLE S DROP Age
C.UPDATE S Age
D.ALTER TABLE S ‘Age’
11.有關(guān)系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學生號,SNAME是學生姓名,SAGE是學生年齡,C#是課程號,CNAME是
課程名稱。要查詢選修“ACCESS”課的年齡不小于20的全體學生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是(A)。
A.S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B.S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C.SAGE in>=20 and CNAME in ‘ACCESS’
D.SAGE>=20 and CNAME=’ ACCESS’
12.設(shè)關(guān)系數(shù)據(jù)庫中一個表S的結(jié)構(gòu)為S(SN,CN,grade),其中SN為學生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。若要把“張二的化學成績80分”插入S中,則可用(D)。
A.ADD
INTO S
VALUES(’張二’,’化學’,’80’)
B.INSERT
INTO S
VALUES(’張二’,’化學’,’80’)
C.ADD
INTO S
VALUES(’張二’,’化學’,80)
D.INSERT
INTO S
VALUES(’張二’,’化學’,80)
13.設(shè)關(guān)系數(shù)據(jù)庫中一個表S的結(jié)構(gòu)為:S(SN,CN,grade),其中SN為學生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。若要更正王二的化學成績?yōu)?5分,則可用(A)。
A.UPDATE S
SET grade=85
WHERE SN=’王二’ AND CN=’化學’
B.UPDATE S
SET grade=’85’
WHERE SN=’王二’ AND CN=’化學’
C.UPDATE grade=85
WHERE SN=’王二’ AND CN=’化學’
D.UPDATE grade=’85’
WHERE SN=’王二’ AND CN=’化學’
14.在SQL語言中,子查詢是(D)。
A.返回單表中數(shù)據(jù)子集的查詢語言
B.選取多表中字段子集的查詢語句
C.選取單表中字段子集的查詢語句
D.嵌入到另一個查詢語句之中的查詢語句
15.SQL是一種(C)語言。
A.高級算法 B.人工智能
C.關(guān)系數(shù)據(jù)庫 D.函數(shù)型
16.有關(guān)系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學生號,SNAME是學生姓名,SEX是性別,C#是課程號,CNAME是課程名
稱。要查詢選修“數(shù)據(jù)庫”課的全體男生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是(A)。
A.S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’數(shù)據(jù)庫’
B.S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’數(shù)據(jù)庫’
C.SEX ’男’ and CNAME ’ 數(shù)據(jù)庫’
D.S.SEX=’男’ and CNAME=’ 數(shù)據(jù)庫’
17.若用如下的SQL語句創(chuàng)建了一個表SC:
CREATE TABLE SC(S# CHAR(6)NOT NULL,C# CHAR(3)NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行時,(B)行可以被插入。
A.(’201009’,’111’,60,必修)
B.(’200823’,’101’,NULL,NULL)
C.(NULL,’103’,80,’選修’)
D.(’201132’,NULL,86,’ ’)
18.假設(shè)學生關(guān)系S(S#,SNAME,SEX),課程關(guān)系C(C#,CNAME),學生選課關(guān)系SC(S#,C#,GRADE)。要查詢選修“Computer”課的男生姓名,將涉及到關(guān)系(D)。
A.S B.S,SC C.C,SC D.S,C,SC
選擇題答案:
(1)B(2)A(3)C(4)C(5)B
(6)A(7)D(8)C(9)C(10)B
(11)A(12)D(13)A(14)D(15)C
(16)A(17)B(18)D 課后習題
3.用SQL語句建立第2章習題5中的四個表。
第四章 數(shù)據(jù)庫安全性
一、選擇題
1.以下(D)不屬于實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的主要技術(shù)和方法。
A.存取控制技術(shù) B.視圖技術(shù)
C.審計技術(shù) D.出入機房登記和加鎖
2. SQL中的視圖提高了數(shù)據(jù)庫系統(tǒng)的(D)。
A.完整性 B.并發(fā)控制
C.隔離性 D.安全性
3. SQL語言的GRANT和REMOVE語句主要是用來維護數(shù)據(jù)庫的(C)。
A.完整性 B.可靠性
C.安全性 D.一致性
4.在數(shù)據(jù)庫的安全性控制中,授權(quán)的數(shù)據(jù)對象的(A),授權(quán)子系統(tǒng)就越靈活。
A.范圍越小 B.約束越細致
C.范圍越大 D.約束范圍大
選擇題答案:
(1)D(2)D(3)C(4)A
5.試述實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。
答: 實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:
1)用戶標識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。每次用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)。
2)存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如C2級中的自主存取控制(DAC),B1級中的強制存取控制(MAC);
3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。
4)審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。
5)數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
具體內(nèi)容請參見《概論》9.2。
6.什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法?
答: 自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限。當用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。
強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標以一定的密級,每一個用戶也被(強制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。
*解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權(quán)限“自主”地授予別人。即用戶具有一定的“自主”權(quán)。
7.SQL語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。
答:
SQL中 的自主存取控制是通過GRANT 語句和 REVOKE 語句來實現(xiàn)的。如:
GRANT SELECT,INSERT ON Student TO 王平WITH GRANT OPTION;
就將Student表的SELECT和INSERT權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同時也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE;
就將Student表 的INSERT權(quán)限從用戶王平處收回,選項 CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
10.為什么強制存取控制提供了更高級別的數(shù)據(jù)庫安全性?
答:
強制存取控制(MAC)是對數(shù)據(jù)本身進行密級標記,無論數(shù)據(jù)如何復制,標記與數(shù)據(jù)是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級別的安全性。
11.理解并解釋MAC機制中主體、客體、敏感度標記的含義。
答:
主體是系統(tǒng)中的活動實體,既包括DBMS所管理的實際用戶,也包括代表用戶的各進程。
客體是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。
對于主體和客體,DBMS為它們每個實例(值)指派一個敏感度標記(Label)。敏感度標記被分成若干級別,例如絕密(Top Secret)、機密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度標記稱為許可證級別(Clearance Level),客體的敏感度標記稱為密級(Classification Level)。
13.什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?
答:
審計功能是指DBMS的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄到系統(tǒng)的審計日志中。
因為任何系統(tǒng)的安全保護措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計功能,DBA可以根據(jù)審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。
第五章 數(shù)據(jù)庫完整性
一、選擇題
1.完整性檢查和控制的防范對象(AC),防止它們進入數(shù)據(jù)庫。安全性控制的防范對象是(BD),防止他們對數(shù)據(jù)庫數(shù)據(jù)的存取。
A.不合語義的數(shù)據(jù) B.非法用戶
C.不正確的數(shù)據(jù) D.非法操作
2.下述哪個是SQL語言中的數(shù)據(jù)控制命令(A)。
A.GRANT B.COMMIT
C.UPDATE D.SELECT
3.下述SQL語言中的權(quán)限,哪一個允許用戶定義新關(guān)系時,引用其他關(guān)系的主碼作為外碼(C)。
A.INSERT B.DELETE
C.REFERENCES D.SELECT
選擇題答案:
(1)A C B D(2)A(3)C 課后習題
6.假設(shè)有下面兩個關(guān)系模式:
職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼;
部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼;
用SQL語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:
定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。
答
CREATE TABLE DEPT
(Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10),PhoneNumber Char(12)
CONSTRAINT PK_SC PRIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK(Age《=60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFERENCES DEPT(Deptno));
第六章 關(guān)系數(shù)據(jù)理論
一、選擇題
1.為了設(shè)計出性能較優(yōu)的關(guān)系模式,必須進行規(guī)范化,規(guī)范化主要的理論依據(jù)是(A)。
A.關(guān)系規(guī)范化理論 B.關(guān)系代數(shù)理論
C.數(shù)理邏輯 D.關(guān)系運算理論
2.規(guī)范化理論是關(guān)系數(shù)據(jù)庫進行邏輯設(shè)計的理論依據(jù),根據(jù)這個理論,關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足:每一個屬性都是(B)。
A.長度不變的 B.不可分解的C.互相關(guān)聯(lián)的 D.互不相關(guān)的
3.已知關(guān)系模式R(A,B,C,D,E)及其上的函數(shù)相關(guān)性集合F={A→D,B→C,E→A },該關(guān)系模式的候選關(guān)鍵字是(B)。
A.AB B.BE
C.CD D.DE
4.設(shè)學生關(guān)系S(SNO,SNAME,SSEX,SAGE,SDPART)的主鍵為SNO,學生選課關(guān)系SC(SNO,CNO,SCORE)的主鍵為SNO和CNO,則關(guān)系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主鍵為SNO和CNO,其滿足(A)。
A.1NF B.2NF
C.3NF D.BCNF
5.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學生,G表示成績,T表示時間,R表示教室,根據(jù)語義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },關(guān)系模式W的一個關(guān)鍵字是(D)。
A.(S,C)B.(T,R)
C.(T,P)D.(T,S)
6.關(guān)系模式中,滿足2NF的模式(B)。
A.可能是1NF B.必定是1NF
C.必定是3NF D.必定是BCNF
7.關(guān)系模式R中的屬性全是主屬性,則R的最高范式必定是(C)。
A.1NF B.2NF
C.3NF D.BCNF
8.消除了部分函數(shù)依賴的1NF的關(guān)系模式,必定是(B)。
A.1NF B.2NF
C.3NF D.BCNF
9.如果A->B ,那么屬性A和屬性B的聯(lián)系是(B)。
A.一對多 B.多對一
C.多對多 D.以上都不是
10.關(guān)系模式的候選關(guān)鍵字可以有1個或多個,而主關(guān)鍵字有(C)。
A.多個 B.0個
C.1個 D.1個或多個
11.候選關(guān)鍵字的屬性可以有(D)。
A.多個 B.0個
C.1個 D.1個或多個
12.關(guān)系模式的任何屬性(A)。
A.不可再分 B.可以再分
C.命名在關(guān)系模式上可以不唯一 D.以上都不是
13.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學生,G表示成績,T表示時間,R表示教室,根據(jù)語義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若將關(guān)系模式W分解為三個關(guān)系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),則W1的規(guī)范化程序最高達到(D)。
A.1NF B.2NF
C.3NF D.BCNF
14.在關(guān)系數(shù)據(jù)庫中,任何二元關(guān)系模式的最高范式必定是(D)。
A.1NF B.2NF
C.3NF D.BCNF
15.在關(guān)系規(guī)范式中,分解關(guān)系的基本原則是(B)。
I.實現(xiàn)無損連接
II.分解后的關(guān)系相互獨立
III.保持原有的依賴關(guān)系
A.Ⅰ和Ⅱ B.Ⅰ和Ⅲ
C.Ⅰ D.Ⅱ
16.不能使一個關(guān)系從第一范式轉(zhuǎn)化為第二范式的條件是(B)。
A.每一個非屬性都完全函數(shù)依賴主屬性
B.每一個非屬性都部分函數(shù)依賴主屬性
C.在一個關(guān)系中沒有非屬性存在D.主鍵由一個屬性構(gòu)成
17.任何一個滿足2NF但不滿足3NF的關(guān)系模式都不存在(D)。
A.主屬性對鍵的部分依賴
B.非主屬性對鍵的部分依賴
C.主屬性對鍵的傳遞依賴
D.非主屬性對鍵的傳遞依賴
18.設(shè)數(shù)據(jù)庫關(guān)系模式R=(A,B,C,D,E),有下列函數(shù)依賴:A→BC,D→E,C→D;下述對R的分解中,哪些分解是R的無損連接分解(B)。
I.(A,B,C)(C,D,E)
II.(A,B)(A,C,D,E)
III.(A,C)(B,C,D,E)
IV.(A,B)(C,D,E)
A.只有Ⅳ B.Ⅰ和Ⅱ C.Ⅰ、Ⅱ和Ⅲ D.都不是
19.設(shè)U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關(guān)于多值依賴的敘述中,不正確的是(C)。
A.若X→→Y,則X→→Z
B.若X→Y,則X→→Y
C.若X→→Y,且Y′∈Y,則X→→Y′
D.若Z=∮,則X→→Y
20.若關(guān)系模式R(U,F(xiàn))屬于3NF,則(C)。
A.一定屬于BCNF
B.消除了插入的刪除異常
C.仍存在一定的插入和刪除異常
D.屬于BCNF且消除了插入和刪除異常
21.下列說法不正確的是(C)。
A.任何一個包含兩個屬性的關(guān)系模式一定滿足3NF
B.任何一個包含兩個屬性的關(guān)系模式一定滿足BCNF
C.任何一個包含三個屬性的關(guān)系模式一定滿足3NF
D.任何一個關(guān)系模式都一定有碼
22.設(shè)關(guān)系模式R(A,B,C),F(xiàn)是R上成立的FD集,F(xiàn)={B→C},則分解P={AB,BC}相對于F(A)。
A.是無損聯(lián)接,也是保持FD的分解
B.是無損聯(lián)接,也不保持FD的分解
C.不是無損聯(lián)接,但保持FD的分解
D.既不是無損聯(lián)接,也不保持FD的分解
23.關(guān)系數(shù)據(jù)庫規(guī)范化是為了解決關(guān)系數(shù)據(jù)庫中(A)的問題而引入的。
A.插入、刪除和數(shù)據(jù)冗余
B.提高查詢速度
C.減少數(shù)據(jù)操作的復雜性
D.保證數(shù)據(jù)的安全性和完整性
24.關(guān)系的規(guī)范化中,各個范式之間的關(guān)系是(B)。
A.1NF∈2NF∈3NF
B.3NF∈2NF∈1NF
C.1NF=2NF=3NF
D.1NF∈2NF∈BCNF∈3NF
25.數(shù)據(jù)庫中的冗余數(shù)據(jù)是指可(D)的數(shù)據(jù)。
A.容易產(chǎn)生錯誤
B.容易產(chǎn)生沖突
C.無關(guān)緊要
D.由基本數(shù)據(jù)導出
26.學生表(id,name,sex,age,depart_id,depart_name),存在函數(shù)依賴是id→name,sex,age,depart_id;dept_id→dept_name,其滿足(B)。
A.1NF B.2NF
C.3NF D.BCNF
27.設(shè)有關(guān)系模式R(S,D,M),其函數(shù)依賴集:F={S→D,D→M},則關(guān)系模式R的規(guī)范化程度最高達到(B)。
A.1NF B.2NF
C.3NF D.BCNF
28.設(shè)有關(guān)系模式R(A,B,C,D),其數(shù)據(jù)依賴集:F={(A,B)→C,C→D},則關(guān)系模式R的規(guī)范化程度最高達到(B)。
A.1NF B.2NF
C.3NF D.BCNF
29.下列關(guān)于函數(shù)依賴的敘述中,哪一條是不正確的(B)。
A.由X→Y,Y→Z,則X→YZ
B.由X→YZ,則X→Y,Y→Z
C.由X→Y,WY→Z,則XW→Z
D.由X→Y,Z∈Y,則X→Z
30.X→Y,當下列哪一條成立時,稱為平凡的函數(shù)依賴(B)。
A.X∈Y B.Y∈X
C.X∩Y=∮ D.X∩Y≠∮
31.關(guān)系數(shù)據(jù)庫的規(guī)范化理論指出:關(guān)系數(shù)據(jù)庫中的關(guān)系應該滿足一定的要求,最起碼的要求是達到1NF,即滿足(D)。
A.每個非主鍵屬性都完全依賴于主鍵屬性
B.主鍵屬性唯一標識關(guān)系中的元組
C.關(guān)系中的元組不可重復
D.每個屬性都是不可分解的
32.根據(jù)關(guān)系數(shù)據(jù)庫規(guī)范化理論,關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足第一范式,部門(部門號,部門名,部門成員,部門總經(jīng)理)關(guān)系中,因哪個屬性而使它不滿足第一范式(B)。
A.部門總經(jīng)理 B.部門成員 C.部門名 D.部門號
33.有關(guān)系模式A(C,T,H,R,S),其中各屬性的含義是:
C:課程 T:教員 H:上課時間 R:教室 S:學生
根據(jù)語義有如下函數(shù)依賴集:
F={C→T,(H,R)→C,(H,T)RC,(H,S)→R}
(1)關(guān)系模式A的碼是(B)。
A.C B.(H,S)C.(H,R)D.(H,T)
(2)關(guān)系模式A的規(guī)范化程度最高達到(B)。
A.1NF B.2NF C.3NF D.BCNF
(3)現(xiàn)將關(guān)系模式A分解為兩個關(guān)系模式A1(C,T),A2(H,R,S),則其中A1的規(guī)范化程度達到(D)。
A.1NF B.2NF C.3NF D.BCNF
選擇題答案:
(1)A(2)B(3)B(4)A(5)D
(6)B(7)C(8)B(9)B(10)C
(11)D(12)A(13)D(14)D(15)B
(16)B(17)D(18)B(19)C(20)C
(21)C(22)A(23)A(24)A(25)D
(26)B(27)B(28)B(29)B(30)B
(31)D(32)B(33)B B D
2.建立一個關(guān)于系、學生、班級、學會等諸信息的關(guān)系數(shù)據(jù)庫。
描述學生的屬性有:學號、姓名、出生年月、系名、班號、宿舍區(qū)。
描述班級的屬性有:班號、專業(yè)名、系名、人數(shù)、入校年份。
描述系的屬性有:系名、系號、系辦公室地點、人數(shù)。
描述學會的屬性有:學會名、成立年份、地點、人數(shù)。
有關(guān)語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學生。一個系的學生住在同一宿舍區(qū)。每個學生可參加若干學會,每個學會有若干學生。學生參加某學會有一個入會年份。
請給出關(guān)系模式,寫出每個關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。
指出各關(guān)系的候選碼、外部碼,有沒有全碼存在?
答:
關(guān)系模式: 學生S(S#,SN,SB,DN,C#,SA)
班級C(C#,CS,DN,CNUM,CDATE)
系 D(D#,DN,DA,DNUM)
學會P(PN,DATE1,PA,PNUM)
學生--學會SP(S#,PN,DATE2)
其中,S#—學號,SN—姓名,SB—出生年月,SA—宿舍區(qū)
C#—班號,CS—專業(yè)名,CNUM—班級人數(shù),CDATE—入校年份
D#—系號,DN—系名,DA—系辦公室地點,DNUM—系人數(shù)
PN—學會名,DATE1—成立年月,PA—地點,PNUM—學會人數(shù),DATE2—入會年份
每個關(guān)系模式的極小函數(shù)依賴集:
S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA
C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#
D:D#→DN,DN→D#,D#→DA,D#→DNUM
P:PN→DATE1,PN→PA,PN→PNUM
SP:(S#,PN)→DATE2
S中存在傳遞函數(shù)依賴: S#→DN, S#→SA, C#→SA
C中存在傳遞函數(shù)依賴:C#→DN
(S#,PN)→DATE2 和(CS,CDATE)→C# 均為SP中的函數(shù)依賴,是完全函數(shù)依賴
關(guān)系 候選碼 外部碼 全碼
S S# C#,DN 無
C C#,(CS,CDATE)DN 無
D D#和DN 無 無
P PN 無 無
SP(S#,PN)S#,PN 無
第七章 數(shù)據(jù)庫設(shè)計
一、選擇題
1.數(shù)據(jù)流程圖是用于描述結(jié)構(gòu)化方法中(D)階段的工具。
A.概要設(shè)計 B.可行性分析
C.程序編碼 D.需求分析
2.數(shù)據(jù)庫設(shè)計中,用E-R圖賴描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,這是數(shù)據(jù)庫設(shè)計的(C)。
A.需求分析階段 B.邏輯設(shè)計階段
C.概念設(shè)計階段 D.物理設(shè)計階段
3.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于(B)。
A.需求分析階段 B.邏輯設(shè)計階段
C.概念設(shè)計階段 D.物理設(shè)計階段
4.子模式DDL是用來描述(B)。
A.數(shù)據(jù)庫的總體邏輯結(jié)構(gòu) B.數(shù)據(jù)庫的局部邏輯結(jié)構(gòu)
C.數(shù)據(jù)庫的物理存儲結(jié)構(gòu) D.數(shù)據(jù)庫的概念結(jié)構(gòu)
5.數(shù)據(jù)庫設(shè)計的概念設(shè)計階段,表示概念結(jié)構(gòu)的常用方法和描述工具是(C)。
A.層次分析法和層次結(jié)構(gòu)圖
B.數(shù)據(jù)流程分析法和數(shù)據(jù)流程圖
C.實體聯(lián)系法和實體聯(lián)系圖
D.結(jié)構(gòu)分析法和模塊結(jié)構(gòu)圖
6.在E-R模型向關(guān)系模型轉(zhuǎn)換時,M:N的聯(lián)系轉(zhuǎn)換為關(guān)系模式時,其關(guān)鍵字是(C)。
A.M端實體的關(guān)鍵字
B.N端實體的關(guān)鍵字
C.M、N端實體的關(guān)鍵字組合D.重新選取其他屬性
7.某學校規(guī)定,每一個班級最多有50名學生,至少有10名學生;每一名學生必須屬于一個班級。在班級與學生實體的聯(lián)系中,學生實體的基數(shù)是(B)。
A.(0,1)B.(1,1)
C.(1,10)D.(10,50)
8.在關(guān)系數(shù)據(jù)庫設(shè)計中,設(shè)計關(guān)系模式是數(shù)據(jù)庫設(shè)計中(A)階段的任務。
A.邏輯設(shè)計階段 B.概念設(shè)計階段
C.物理設(shè)計階段 D.需求分析階段
9.關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要解決的問題是(A)。
A.如何構(gòu)造合適的數(shù)據(jù)邏輯結(jié)構(gòu)
B.如何構(gòu)造合適的數(shù)據(jù)物理結(jié)構(gòu)
C.如何構(gòu)造合適的應用程序界面
D.如何控制不同用戶的數(shù)據(jù)操作權(quán)限
10.數(shù)據(jù)庫設(shè)計可劃分為七個階段,每個階段都有自己的設(shè)計內(nèi)容,“為哪些關(guān)系,在哪些屬性上、鍵什么樣的索引”這一設(shè)計內(nèi)容應該屬于(C)設(shè)計階段。
A.概念設(shè)計 B.邏輯設(shè)計
C.物理設(shè)計 D.全局設(shè)計
11.假設(shè)設(shè)計數(shù)據(jù)庫性能用“開銷”,即時間、空間及可能的費用來衡量,則在數(shù)據(jù)庫應用系統(tǒng)生存期中存在很多開銷。其中,對物理設(shè)計者來說,主要考慮的是(C)。
A.規(guī)劃開銷 B.設(shè)計開銷
C.操作開銷 D.維護開銷
12.數(shù)據(jù)庫物理設(shè)計完成后,進入數(shù)據(jù)庫實施階段,下述工作中,(D)一般不屬于實
施階段的工作。
A.建立庫結(jié)構(gòu) B.系統(tǒng)調(diào)試
C.加載數(shù)據(jù) D.擴充功能
13.從ER圖導出關(guān)系模型時,如果實體間的聯(lián)系是M:N的,下列說法中正確的是(C)。
A.將N方關(guān)鍵字和聯(lián)系的屬性納入M方的屬性中
B.將M方關(guān)鍵字和聯(lián)系的屬性納入N方的屬性中
C.增加一個關(guān)系表示聯(lián)系,其中納入M方和N方的關(guān)鍵字
D.在M方屬性和N方屬性中均增加一個表示級別的屬性
14.在ER模型中,如果有3個不同的實體集,3個M:N聯(lián)系,根據(jù)ER模型轉(zhuǎn)換為關(guān)系模型的規(guī)則,轉(zhuǎn)換為關(guān)系的數(shù)目是(C)。
A.4 B.5
C.6 D.7
選擇題答案:
(1)D(2)C(3)B(4)B(5)C
(6)C(7)B(8)A(9)A(10)C
(11)C(12)D(13)C(14)C 課后習題
6.數(shù)據(jù)字典的內(nèi)容和作用是什么?
答:
數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程五個部分
其中數(shù)據(jù)項是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。
數(shù)據(jù)字典的作用:
數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進行概念設(shè)計的基礎(chǔ),并在數(shù)據(jù)庫設(shè)計過程中不斷修改、充實、完善。
(注意,數(shù)據(jù)庫設(shè)計階段形成的數(shù)據(jù)字典與后面講到的數(shù)據(jù)字典不同,后者是DBMS關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,當然兩者是有聯(lián)系的)。
第九章 關(guān)系系統(tǒng)及其優(yōu)化
一、選擇題
1.概念模型是現(xiàn)實世界的第一層抽象,這一類最著名的模型是(D)。
A.層次模型 B.關(guān)系模型 C.網(wǎng)狀模型 D.實體-關(guān)系模型
2.區(qū)分不同實體的依據(jù)是(B)。
A.名稱 B.屬性 C.對象 D.概念
3.關(guān)系數(shù)據(jù)模型是目前最重要的一種數(shù)據(jù)模型,它的三個要素分別為(B)。
A.實體完整、參照完整、用戶自定義完整
B.數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作、完整性約束
C.數(shù)據(jù)增加、數(shù)據(jù)修改、數(shù)據(jù)查詢
D.外模式、模式、內(nèi)模式
4.在(A)中一個結(jié)點可以有多個雙親,節(jié)點之間可以有多種聯(lián)系。
A.網(wǎng)狀模型 B.關(guān)系模型
C.層次模型 D.以上都有
5.(B)的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。
A.網(wǎng)狀模型 B.關(guān)系模型
D.層次模型 D.以上都有
6.在關(guān)系數(shù)據(jù)庫中,要求基本關(guān)系中所有的主屬性上不能有空值,其遵守的約束規(guī)則是(C)。
A.數(shù)據(jù)依賴完整性規(guī)則 B.用戶定義完整性規(guī)則
C.實體完整性規(guī)則 D.域完整性規(guī)則
選擇題答案:
(1)D(2)B(3)B(4)A(5)B(6)C 課后習題
第十章 數(shù)據(jù)庫恢復技術(shù)
一、選擇題
1.一個事務的執(zhí)行,要么全部完成,要么全部不做,一個事務中對數(shù)據(jù)庫的所有操作都是一個不可分割的操作序列的屬性是(A)。
A.原子性 B.一致性
C.獨立性 D.持久性
2.表示兩個或多個事務可以同時運行而不互相影響的是(C)。
A.原子性 B.一致性
C.獨立性 D.持久性
3.事務的持續(xù)性是指(B)
A.事務中包括的所有操作要么都做,要么都不做。
B.事務一旦提交,對數(shù)據(jù)庫的改變是永久的。
C.一個事務內(nèi)部的操作對并發(fā)的其他事務是隔離的。
D.事務必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。
4.SQL語言中的COMMIT語句的主要作用是(C)。
A.結(jié)束程序 B.返回系統(tǒng)
C.提交事務 D.存儲數(shù)據(jù)
5.SQL語言中用(B)語句實現(xiàn)事務的回滾
A.CREATE TABLE B.ROLLBACK
C.GRANT和REVOKE D.COMMIT
6. 若系統(tǒng)在運行過程中,由于某種硬件故障,使存儲在外存上的數(shù)據(jù)部分損失或全部損失,這種情況稱為(A)。
A.介質(zhì)故障 B.運行故障
C.系統(tǒng)故障 D.事務故障
7. 在DBMS中實現(xiàn)事務持久性的子系統(tǒng)是(D)。
A.安全管理子系統(tǒng) B.完整性管理子系統(tǒng)
C.并發(fā)控制子系統(tǒng) D.恢復管理子系統(tǒng)
8.后援副本的作用是(C)。
A.保障安全性 B.一致性控制
C.故障后的恢復 D.數(shù)據(jù)的轉(zhuǎn)儲
9. 事務日志用于保存(C)。
A.程序運行過程 B.程序的執(zhí)行結(jié)果
C.對數(shù)據(jù)的更新操作 D.數(shù)據(jù)操作
10. 數(shù)據(jù)庫恢復的基礎(chǔ)是利用轉(zhuǎn)儲的冗余數(shù)據(jù)。這些轉(zhuǎn)儲的冗余數(shù)據(jù)包括(C)。
A.數(shù)據(jù)字典、應用程序、審計檔案、數(shù)據(jù)庫后備副本
B.數(shù)據(jù)字典、應用程序、審計檔案、日志文件
C.日志文件、數(shù)據(jù)庫后備副本
D.數(shù)據(jù)字典、應用程序、數(shù)據(jù)庫后備副本
選擇題答案:
(1)A(2)C(3)B(4)C(5)B
(6)A(7)D(8)C(9)C(10)C
第十一章 數(shù)據(jù)庫并發(fā)控制
一、選擇題
1. 為了防止一個用戶的工作不適當?shù)赜绊懥硪粋€用戶,應該采?。―)。
A.完整性控制 B.訪問控制
C.安全性控制 D.并發(fā)控制
2.解決并發(fā)操作帶來的數(shù)據(jù)不一致問題普遍采用(A)技術(shù)。
A.封鎖 B.存取控制
C.恢復 D.協(xié)商
3. 下列不屬于并發(fā)操作帶來的問題是(C)。
A.丟失修改 B.不可重復讀
C.死鎖 D.臟讀
4. DBMS普遍采用(C)方法來保證調(diào)度的正確性。
A.索引 B.授權(quán)
C.封鎖 D.日志
5.事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結(jié)束才釋放,這是(A)。
A.一級封鎖協(xié)議 B.二級封鎖協(xié)議
C.三級封鎖協(xié)議 D.零級封鎖協(xié)議
6. 如果事務T獲得了數(shù)據(jù)項Q上的排他鎖,則T對Q(C)。
A.只能讀不能寫 B.只能寫不能讀
C.既可讀又可寫 D.不能讀也不能寫
7.設(shè)事務T1和T2,對數(shù)據(jù)庫中地數(shù)據(jù)A進行操作,可能有如下幾種情況,請問哪一種不會發(fā)生沖突操作(D)。
A.T1正在寫A,T2要讀A
B.T1正在寫A,T2也要寫A
C.T1正在讀A,T2要寫A
D.T1正在讀A,T2也要讀A
8.如果有兩個事務,同時對數(shù)據(jù)庫中同一數(shù)據(jù)進行操作,不會引起沖突的操作是(D)。
A.一個是DELETE,一個是SELECT
B.一個是SELECT,一個是DELETE
C.兩個都是UPDATE
D.兩個都是SELECT
9. 在數(shù)據(jù)庫系統(tǒng)中,死鎖屬于(B)。
A.系統(tǒng)故障 B.事務故障
C.介質(zhì)故障 D.程序故障
選擇題答案:
(1)D(2)A(3)C(4)C(5)A
(6)C(7)D(8)D(9)B
第二篇:數(shù)據(jù)庫試題及答案_
筆試樣卷一
參考答案
一、簡答題(25分)
1.數(shù)據(jù)庫階段數(shù)據(jù)管理的主要特點是什么? 2.
解釋DB、DBMS、DBS三個概念?
3.什么是物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性? 4.
試說明DBMS的主要功能?
5.在ER模型轉(zhuǎn)換為關(guān)系模型時,聯(lián)系類型要根據(jù)不同的情況作不同的處理,試說明之。
二、計算題(20分)
1.設(shè)有關(guān)系R和S R: S:
A B C A B C 3 6 7 3 4 5 2 5 7 7 2 3 7 3 4 4 4 3 列表計算R∪S、R-S、R×S、π3,2(S)、δB<5(R)。(5分)2.
設(shè)有三個關(guān)系
S(SNO, SNAME, AGE, SEX, SDEPT)SC(SNO, CNO, GRANDE)C(CNO, CNAME, CDEPT, TNAME)試用關(guān)系代數(shù)表達式表示下列查詢
(1)檢索LIU老師所授課程的課程號、課程名(2)檢索年齡大于23歲的男學生的學號和姓名
(3)檢索學號為S3的學生所學課程的課程名和認課教師姓名(4)檢索WANG同學不學的課程的課程號
(5)檢索至少選修了兩門課程的學生的學號(10分)
三、設(shè)有三個基本表(45分)
S(SNO, SNAME, AGE, SEX, SDEPT)SC(SNO, CNO, GRANDE)C(CNO, CNAME, CDEPT, TNAME)1.
試用T-SQL的查詢語句表達下列查詢(1)檢索LIU老師所授課程的課程號、課程名(2)檢索年齡大于23歲的男學生的學號和姓名
(3)檢索學號為S3的學生所學課程的課程名和認課教師姓名(4)檢索WANG同學不學的課程的課程號
(5)檢索至少選修了兩門課程的學生的學號(10分)2.
試用T-SQL的查詢語句表達下列查詢(1)統(tǒng)計有學生選修的課程的門數(shù)(2)求選修C4課程的學生的年齡
(3)求LIU老師所授課程的每門課程的學生的平均成績(4)統(tǒng)計每門課程的學生選修人數(shù)
(5)求年齡大于所有女同學年齡的男學生的姓名和年齡(10分)3.
試用T-SQL更新語句完成下列更新操作
(1)往表S中插入一個學生資料(‘S9’, ‘WU’, 18)
(2)在表S中檢索每一門課程成績都大于等于80分的學生的學號、姓名、性別,把檢索結(jié)果插入另一個已存在的表STU(SNO, SNAME, SEX)(3)刪除SC表中WANG同學的選課資料(4)把低于總平均分的女同學的成績提高5%(5)把表SC中C4課程的成績提高5%(10分)
四、設(shè)有關(guān)系模式R(ABCD),R上的FD集F={ AB→CD, A→D},試說明R不是2NF的理由,并把R分解成2NF模式集。(10分)
數(shù)據(jù)庫應用筆試樣卷一參考答案
一、簡答題(25分)
1.采用數(shù)據(jù)模型表示復雜的數(shù)據(jù)結(jié)構(gòu);有較高的數(shù)據(jù)獨立性;為用戶提供了方便的用戶接口;提供數(shù)據(jù)控制功能;增加了系統(tǒng)的靈活性。
2.DB(數(shù)據(jù)庫):存儲在計算機內(nèi)有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。DBMS(數(shù)據(jù)庫管理系統(tǒng)):是位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件。
DBS(數(shù)據(jù)庫系統(tǒng)):是實現(xiàn)有組織的、動態(tài)的存儲大量關(guān)聯(lián)數(shù)據(jù),以方便用戶訪問的計算機硬件、軟件和株距資源組成的計算機系統(tǒng)。
3.物理數(shù)據(jù)獨立性:內(nèi)模式的修改,只需對模式/內(nèi)模式映象做相應修改,而不需修改概念模式。邏輯數(shù)據(jù)獨立性:概念模式的修改,只需對外模式/模式映象做相應修改,而不需修改外模式。4.DBMS的主要功能:
數(shù)據(jù)定義(DDL):三級結(jié)構(gòu)、兩級映象、完整性約束等。數(shù)據(jù)操縱(DML):檢索、更新。
數(shù)據(jù)保護:數(shù)據(jù)恢復、并發(fā)控制、完整性控制、安全性控制等。數(shù)據(jù)維護:數(shù)據(jù)載入、轉(zhuǎn)換、存儲、、性能監(jiān)控等。
數(shù)據(jù)字典(DD):存儲三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為DD,即系統(tǒng)數(shù)據(jù)庫。5.實體:實體類型→關(guān)系模式。聯(lián)系:
1∶1:將聯(lián)系臵入任一端實體,并加入另一端實體主鍵為外鍵。1∶N:將聯(lián)系臵入多端實體,并加入一端實體主鍵為外鍵。M∶N:建立新關(guān)系模式,主鍵為兩端實體的主鍵,并為外鍵。
二、計算題(20分)1.R∪S: A B C 3 6 7 2 5 7 7 3 4 4 4 3 4 5 7 2 3 R-S: A B C 3 6 7 2 5 7 7 3 4 4 4 3 R×S
A B C π3,2(S): C B 5 3 4 2 δB<5(R): A B C 7 3 4 4 4 3 2.(1)∏cno,cname(σTNAME=’ LIU’(C))(2)∏sno,sname(σage=23 ∧sex=’ 男’(S))(3)∏cname,tname(σsno=’s3’(S)∞SC∞C)(4)∏cno(C)-∏cno(σsname=’WANG’(SC∞S))(5)∏sno(σ1=4∧2<>5(SCXSC))
三、(45分)1.(1)SELECT CNO,CNAME FROM C WHERE TNAME=’ LIU’
(2)SELECT SNO,SNAME FROM S WHERE AGE>23 AND sex=’ 男’(3)SELECT C.CNO, TNAME FROM S,SC,C WHERE SNO=’S3’ AND C.CNO=SC.CNO=’c03’ AND S.SNO=SC.SNO(4)select cno from c where not exists(select cno from sc where c.cno=sc.cno and sname='WANG')(5)select sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno<>sc2.cno 2.(1)select ,count(*)as num from sc group by cno(2)SELECT SNO,AGE FROM S,SC WHERE S.SNO=SC.SNO AND CNO=’C4’
(3)select cno, avg(score)from c,sc WHERE TNAME=’ LIU’ AND C.CNO=SC.CNO group by cno(4)select cno,count(*)from sc(5)select sname,age from s where SEX='男' and age>all(select age from s where sex='女')3.(1)INSERT INTO S(sno, sname, age)VALUE(‘S9’, ‘WU’, 18)
(2)select sno,sname,.seg into stu from s where score>=80 and s.sno=sc.sno(3)delete from sc where sc.sno=(select sno from s where sname=’wang’ and s.sno=sc.sno)
(4)update sc set score=score*(1+0.05)from s,sc where sex=’ 女’ and s.sno=sc.sno and score<(select avg(score)from sc)(5)update sc set score=score*(1+0.05)from where cno=’c4’
四、(10分)
設(shè)有關(guān)系模式R(ABCD),R上的FD集F={ AB→CD, A→D},試說明R不是2NF的理由,并把R分解成2NF模式集。(10分)
1、侯選鍵為AB
2、由AB→CD 可知AB→C,AB→D 又由于A→D
故D局部依賴于侯選鍵AB 所以R不是2NF
3、R1(AB,C)R2(A,D)
筆試樣卷二
參考答案
一、選擇題(10X2=20分)
1.數(shù)據(jù)完整性不包括
a)主體完整性 b)實體完整性 c)參照完整性 d)自定義完整性 2.
常用的三種結(jié)構(gòu)數(shù)據(jù)模型不包括
a)關(guān)系模型 b)實體聯(lián)系模型 c)層次模型 d)網(wǎng)狀模型
3.關(guān)系的集合運算不包括
a)交 b)并 c)和 d)差 4.
關(guān)系的專門關(guān)系運算不包括
a)選擇 b)投影 c)連接 d)積 5.
事務的屬性包括
a)原子性、安全性、隔離性、持久性 b)原子性、一致性、安全性、持久性
c)原子性、一致性、隔離性、安全性 d)原子性、一致性、隔離性、持久性
6.SQL Server系統(tǒng)數(shù)據(jù)庫不包括
a)master b)tempdb c)student d)model 7.
SQL Server中,數(shù)據(jù)庫主數(shù)據(jù)文件擴展名為
a)ldf b)mdf c)ndf d)dbf 8.
SQL Server中,索引類型包括
a)聚集索引和非聚集索引 b)主索引和次索引 c)單索引和復合索引 d)內(nèi)索引和外索引 9.
SQL的數(shù)據(jù)操縱命令是
a)select、insert、delete、update b)create、select、insert、delete c)create、insert、delete、update d)select、insert、delete、alter 10.SQL Server系統(tǒng)的觸發(fā)器包括
a)select、insert、delete b)insert、delete、update c)select、insert、update d)select、delete、update
二、填空題(10X2=20分)
1.數(shù)據(jù)管理經(jīng)歷了、、三個階段。2.
DB的中文含義是、DBMS的中文含義是、DBS的中文含義是、DBA的中文含義是。3.
數(shù)據(jù)庫的三級體系結(jié)構(gòu)為、、,兩級映象為、,兩級數(shù)據(jù)獨立性為、。4.
SQL主要由、、三類語句組成。5.
數(shù)據(jù)庫設(shè)計通常由規(guī)劃、需求分析、、、、數(shù)據(jù)庫實現(xiàn)、數(shù)據(jù)庫運行與維護7個階段構(gòu)成。
三、應用題(3X5=15分)
設(shè)關(guān)系模式R,其中U={A,B,C,D},F(xiàn)={AB→C,C→A,C→D,D→B},試問:
1.關(guān)系R各屬性的閉包。2.
關(guān)系R的所有候選碼。
3.判斷關(guān)系R是否屬于3NF,并解釋你的結(jié)論。
四、綜合題(45分)
某學校要對學生成績進行計算機管理。該學校有若干學生,每個學生有學號、班級、姓名、性別、出生日期、地址。開設(shè)的課程需要管理課程編號、課程名稱、學分和學生選修該課程后的成績等信息。該學校規(guī)定:一個學生可以有選修多門課程,一門課程可以有多名學生選修。
1.畫出此管理系統(tǒng)的ER模型。
2.簡述ER模型向關(guān)系模式轉(zhuǎn)換的一般方法。3.
將以上ER模型轉(zhuǎn)化為關(guān)系模式,包括主鍵、外鍵。4.
試用SQL語句表示以下數(shù)據(jù)編輯:
①
將新生“張三”插入學生表(其它屬性自設(shè))。②
刪除選課表中學號為“0001”的學生的選課信息。③
將所有選修了課程編號為“c001”的學生成績加5分。④
將所有選修了“數(shù)據(jù)庫”課程的學生成績提高5分。⑤
把低于總平均分的女同學的成績提高5%。5.
試用代數(shù)表達式表示以下查詢:
①
查詢?nèi)K袑W生的學生表的所有信息。
②
查詢?nèi)K械刂窞椤拔靼病钡膶W生的學號、姓名、性別。③
查詢所有選修了“數(shù)據(jù)庫”課程的學生的學號、姓名、成績。④
查詢選修了所有課程的學生的學號、姓名、性別。⑤
查詢選修了2門課程以上的學生的學號、姓名、性別。⑥
查詢學號為“0001”的學生沒有選修的課程編號、課程名稱。6.
試用SQL語句表示以下查詢:
①
查詢?nèi)K袑W生的學生表的所有信息。
②
查詢?nèi)K械刂窞椤拔靼病钡膶W生的學號、姓名、性別。③
查詢所有選修了“數(shù)據(jù)庫”課程的學生的學號、姓名、成績。④
查詢每個學生所選課程的數(shù)量、總分、最高、最低分 ⑤
查詢選修了所有課程的學生的學號、姓名、性別。⑥
查詢選修了2門課程以上的學生的學號、姓名、性別。
數(shù)據(jù)庫應用筆試樣卷二參考答案
一、選擇題(10X2=20分)
1.a)2.b)3.c)
4.d)5.d)6.c)7.b)8.a)9.a)10.b)
二、填空題(10X2=20分)
11.人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫階段三個階段。12.數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理員。
13.數(shù)據(jù)庫的三級體系結(jié)構(gòu)為外模式、概念模式、內(nèi)模式,兩級映象為外模式/模式映象、模式/內(nèi)模式映象,兩級數(shù)據(jù)獨立性為物理數(shù)據(jù)獨立性、邏輯數(shù)據(jù)獨立性。14.SQL主要由 數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制三類語句組成。
15.數(shù)據(jù)庫設(shè)計通常由規(guī)劃、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、數(shù)據(jù)庫實現(xiàn)、數(shù)據(jù)庫運行與維護7個階段構(gòu)成。
三、應用題(3X5=15分)
16.A+=A,B+=B,C+=ABCD,D+=DB,(AB)+= ABCD 17.關(guān)系R的所有候選碼。AB及C 18.關(guān)系R不屬于3NF。
因為非候選碼傳遞依賴于侯選鍵AB
四、綜合題(45分)
某學校要對學生成績進行計算機管理。該學校有若干學生,每個學生有學號、班級、姓名、性別、出生日期、地址。開設(shè)的課程需要管理課程編號、課程名稱、學分和學生選修該課程后的成績等信息。該學校規(guī)定:一個學生可以有選修多門課程,一門課程可以有多名學生選修。
1.ER模型。
2.ER模型向關(guān)系模式轉(zhuǎn)換的一般方法。實體:
實體類型→關(guān)系模式。聯(lián)系:
1∶1:將聯(lián)系臵入任一端實體,并加入另一端實體主鍵為外鍵。1∶N:將聯(lián)系臵入多端實體,并加入一端實體主鍵為外鍵。M∶N:建立新關(guān)系模式,主鍵為兩端實體的主鍵,并為外鍵。3.關(guān)系模式
s(sno,class,sname,sex,birthday,addr)c(sno,cname,credit)sc(sno, cno,score)4.試用SQL語句表示以下數(shù)據(jù)編輯:
1.INSERT INTO S(sno, class, sname, sex)VALUE(‘0025’, ‘982’, ‘張三’, ‘男’)2.DELETE FROM SC WHERE SNO=‘0001’AND S.SNO=SCSNO 3.update sc set score=score+5 from where cno=’c001’ 4.update sc set score=score*(1+0.05)from c,sc where sname=’ 數(shù)據(jù)庫’ and c.cno=sc.cno 5.update sc set score=score*(1+0.05)from s,sc where sex=’ 女’ and s.sno=sc.sno and score<(select avg(score)from sc)
5.試用代數(shù)表達式表示以下查詢:
1.select * from s 2.select sno,sname,sex from s where address like '%西安% 3.select sc.sno,sname, score from s,c,sc where sc.sno=s.sno and sc.cno=c.cno and cname='數(shù)據(jù)庫' 4.select sno,sname,sex from s where not exists(select * from c where not exists(select * from sc where sc.sno=s.sno and sc.cno=c.cno))5.select sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno<>sc2.cno 6.select cno,cname from c where not exists(select cno from sc,s where s.sno=sc.sno and c.cno=sc.cno and sno='0001')。
6.試用SQL語句表示以下查詢:
1.select * from s 2.select sno,sname,sex from s where address like '%西安% 3.select sc.sno,sname, score from s,c,sc where sc.sno=s.sno and sc.cno=c.cno and cname='數(shù)據(jù)庫' 4.select sno,count(*)as num,sum(score), max(score), min(score)from sc group by sno 5.select sno,sname,sex from s where not exists(select * from c where not exists(select * from sc where sc.sno=s.sno and sc.cno=c.cno))6.select sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno<>sc2.cno
筆試樣卷三
參考答案
一、填空題(30分)
1.數(shù)據(jù)完整性包括、、。2.
SQL Server系統(tǒng)數(shù)據(jù)庫包括、、、。3.
SQL Server中,數(shù)據(jù)庫主數(shù)據(jù)文件擴展名為,次數(shù)據(jù)文件擴展名為,事務日志文件擴展名為。4.
SQL Server數(shù)據(jù)定義語句包括、、。
5.ER模型的中文名稱為。6.
經(jīng)典的結(jié)構(gòu)數(shù)據(jù)模型包括、、。
7.專門的關(guān)系運算包括、、、。8.
SQL Server數(shù)據(jù)操縱命令包括、、、。
9.使用存儲過程的目的是。10.
數(shù)據(jù)庫索引包括、。
11.數(shù)據(jù)庫系統(tǒng)3級結(jié)構(gòu)包括、。
二、設(shè)有學生成績庫,包含三張表:
學生(學號,班級,姓名,性別,出生日期,地址,電話,信箱)課程(課程編號,課程名稱,學分)選課(學號,課程編號,成績)用SQL語句完成以下操作(50分)。
1、刪除所有成績?yōu)镹ULL的學生選課信息。
2、將所有不及格課程的成績加5分。
3、將所有“數(shù)據(jù)庫應用”課程的成績加5分。
4、查詢所有課程的所有信息。
5、查詢所有學生的姓名、性別。
6、查詢所有男生的姓名、年齡。
7、查詢所有學生的平均成績,并按平均成績排名次。
8、查詢所有選修了“數(shù)據(jù)庫應用”課程的學生的學號、姓名和該課成績。
9、查詢張三同學沒有選修的課程編號、課程名稱。
10、查詢所有學生都選修的課程編號、課程名稱。
三、關(guān)系模式R(ABCD),F(xiàn)={AB→C,C→A,C→D,D→B}(20分)
1、關(guān)系R的所有候選碼是什么?
2、R是否屬于3NF,解釋你的結(jié)論。
數(shù)據(jù)庫應用筆試樣卷三參考答案
一、填空題(30分)
1.數(shù)據(jù)完整性包括 實體完整性、參照完整性、用戶定義完整性。2.SQL Server系統(tǒng)數(shù)據(jù)庫包括 master、model、msdb、tempdb。
3.SQL Server中,數(shù)據(jù)庫主數(shù)據(jù)文件擴展名為mdf,次數(shù)據(jù)文件擴展名為 ndf,事務日志文件擴展名為ldf。
4.SQL Server數(shù)據(jù)定義語句包括 create、drop、alter。5.ER模型的中文名稱為實體聯(lián)系模型。
6.經(jīng)典的結(jié)構(gòu)數(shù)據(jù)模型包括 層次、網(wǎng)狀、結(jié)構(gòu)。7.專門的關(guān)系運算包括 選擇、投影、連接、除。
8.SQL Server數(shù)據(jù)操縱命令包括 insert、delete、update、select。9.使用存儲過程的目的是 減輕網(wǎng)絡(luò)流量、提高效率。10.數(shù)據(jù)庫索引包括聚集、非聚集。
11.數(shù)據(jù)庫系統(tǒng)3級結(jié)構(gòu)包括外部級、概念級和內(nèi)部級。
二、設(shè)有學生成績庫,包含三張表:
學生(學號,班級,姓名,性別,出生日期,地址,電話,信箱)課程(課程編號,課程名稱,學分)選課(學號,課程編號,成績)用SQL語句完成以下操作(50分)。
1.delete from sc where score is null 2.update sc set score=score+5 from where score<60 3.update sc set score=score+5 from c,sc where sname=’ 數(shù)據(jù)庫’ and c.cno=sc.cno 4.select * from c 5.select sname.sex from s 6.select sname.year(getdate())-year(birthday)as age from s where sex=’ 男’ 7.select sno,avg(score)from sc group by sno order by 2 desc 8.select sc.sno,sname,cname,score from s,c,sc where sc.sno=s.sno and sc.cno=c.cno and cname='數(shù)據(jù)庫' 9.select cno,cname from c where not exists(select cno from sc,s where c.cno=sc.cno and c.sno=s.sno and sname='張三')10.select cno,cname from c where not exists(select * from s where not exists(select * from sc where sc.sno=s.sno and sc.cno=c.cno))
三、關(guān)系模式R(ABCD),F(xiàn)={AB→C,C→A,C→D,D→B}(20分)
1.關(guān)系R的所有候選碼。AB及C 2.關(guān)系R不屬于3NF。因為非候選碼傳遞依賴于侯選鍵AB
數(shù)據(jù)庫試題及答案 兩套 收藏 數(shù)據(jù)庫原理試題(A卷)
一、填空題(每空 1 分,共 20 分)
1.對于一個國家來說,數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的 _____________ 和 _____________ 已成為這個國家信息化程度的 ________________。2.數(shù)據(jù)模型通常由: ________________、________________ 和 _____________ 三部分組成。
3.游標的功能是把 ________________ 轉(zhuǎn)換為 ________________。4.最常用的數(shù)據(jù)庫的恢復技術(shù)是_____________ 和 _____________。
5._____________ 模型是現(xiàn)實世界到 _____________ 機器模型的中間橋梁。6.數(shù)據(jù)獨立性是指_____________ 和_____________ 獨立性。
7.數(shù)據(jù)庫應用程序開發(fā)工具目前有 ________________、_________________、________________、和 ________________ 等。
8.目前數(shù)據(jù)庫產(chǎn)品有 SQL Server 和 ________________、________________ 等。
二、選擇題(每小題 1 分,共 10 分)
1.關(guān)于冗余數(shù)據(jù)的敘述中,不正確的是()。A .冗余的存在容易破壞數(shù)據(jù)庫的完整性 B .冗余的存在給數(shù)據(jù)庫的維護增加困難.C .不應該在數(shù)據(jù)庫中存儲任何冗余數(shù)據(jù) D .冗余數(shù)據(jù)是指可由基本數(shù)據(jù)導出的數(shù)據(jù) 2.概念模型獨立于()。
A . ER 模型 B .硬件設(shè)備 C . DBMS D .操作系統(tǒng) 3.下列敘述正確的為()。
A.主碼是一個屬性,它能唯一表識一列 B.主碼是一個屬性,它能唯一表識一行
C.主碼是一個屬性或?qū)傩约?,它能唯一表識一列 D.主碼是一個屬性或?qū)傩约芪ㄒ槐碜R一行
4.數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持數(shù)據(jù)庫的()。
A .數(shù)據(jù)獨立性 B .數(shù)據(jù)安全性 C .結(jié)構(gòu)規(guī)范化 D .操作可行性 5.一個關(guān)系中的候選關(guān)鍵字()。
A .至多一個 B .可多個 C .必須多個 D .至少 3 個 6.常用的關(guān)系運算是關(guān)系代數(shù)和()。
A .集合代數(shù) B .邏輯演算 C .關(guān)系演算 D .集合演算 7.在基本層次聯(lián)系中,記錄型之間的聯(lián)系是()。
A .一對一聯(lián)系 B .一對多聯(lián)系 C .多對多聯(lián)系 D .多對一聯(lián)系 8.并發(fā)操作會帶來哪些數(shù)據(jù)不一致性()。
A .不可修改、不可重復讀、臟讀、死鎖 B .不可重復讀、臟讀、死鎖 C .丟失修改、臟讀、死鎖 D .丟失修改、不可重復讀、臟讀 9.在數(shù)據(jù)庫與宿主語言之間傳遞信息是通過()。
A.全局變量 B.共性變量 C.公共數(shù)據(jù)區(qū) D.系統(tǒng)緩沖區(qū) 10.數(shù)據(jù)庫的()是指數(shù)據(jù)的正確性和相容性。A.安全性 B.完整性 C.并發(fā)控制 D.恢復
三、判斷題(每小題 1 分,共 10 分 , 對不正確的要寫出理由)1.子模式 DDL 是用來描述數(shù)據(jù)庫的物理存儲結(jié)構(gòu)的。()2.同一個關(guān)系模型的任兩個元組值不能全同。()3.基本表是本身獨立存在的表,在 SQL 中一個關(guān)系就對應基本表。()4.數(shù)據(jù)流程圖(DFD)是用于描述結(jié)構(gòu)化方法中詳細設(shè)計階段的工具。()5.若數(shù)據(jù)庫中只包含成功事務提交的結(jié)果則此數(shù)據(jù)庫成為處于安全狀態(tài)()6.事務的持續(xù)性是指事務中包括的所有操作,要么都做,要么都不做。()7.DB 用戶的權(quán)限可分為具有 DBA 特權(quán)的用戶和一般 DB 用戶()8.數(shù)據(jù)庫的網(wǎng)狀模型應滿足的條件是必須有兩個以上的結(jié)點。()
9.CREAT TABLE 命令可直接定義主碼、外碼、參照表,系統(tǒng)就能夠自動地執(zhí)行實體完整性和參照完整性規(guī)則。()
10.分布式數(shù)據(jù)庫數(shù)據(jù)獨立性包括數(shù)據(jù)的邏輯獨立性、數(shù)據(jù)的物理獨立性和數(shù)據(jù)分布獨立性。()
四、(每小題 3 分,共 15 分)設(shè)有關(guān)系模式,其中
(1)計算。
(2)求 F 的最小等價依賴集。(3)求出 的關(guān)鍵字。
(4)將 R 分解使其滿足 BCNF 且無損連接。
(5)將 R 分解使其滿足 3NF 且無損連接與保持函數(shù)依賴。
五、綜合題(25 分)
1.將 R ∪ S、R-S 兩種關(guān)系代數(shù)基本運算表示為域關(guān)系演算表達式。(5 分)2.關(guān)系數(shù)據(jù)庫中有下列三個關(guān)系:
商店(商店代號,商店名,店員人數(shù),所在城市)商品(商品編號,商品名,價格)商店--商品(商店代號,商品編號,商品數(shù)量)(1)用 ALPHA 語言完成下列操作:(4 分)檢索銷售全部商品的商店姓名。
(2)用關(guān)系代數(shù)完成下列操作:(4 分)檢索店員人數(shù)大于 23 商店代號和商店名。(3)試用 SQL 語句寫出下列查詢:
(a)找出店員人數(shù)不超過 100 人或者在長沙市的所有商店的代號和商店名。(4 分)(b)找出供應書包的商店名。(4 分)
(c)找出至少供應商品代號為 233 的商店所供應的全部商品的商店名。(4 分)
六、設(shè)計題(每小題 10 分,共 20 分)
某市人才交流中心擬建立人才信息交流網(wǎng)?,F(xiàn)有資料:每個前來登記的個人需填寫的《人才入庫登記表》(見附表 1);每個前來登記的企業(yè)需填寫的《企業(yè)信息登記表》(見附表 2)。
試設(shè)計人才、崗位和企業(yè)的實體聯(lián)系圖,并將概念模型轉(zhuǎn)換為關(guān)系模式。附表 1 :人才入庫登記表 個人編號: 登記日期 姓名
性別
出生日期 身份證號 畢業(yè)院校
專業(yè)
學歷 聯(lián)系電話
電子郵件
附表 2 :企業(yè)信息登記表 企業(yè)編號: 登記日期 企業(yè)名稱
地址
企業(yè)網(wǎng)址 崗位需求 聯(lián)系人
聯(lián)系電話
電子郵件 企業(yè)簡介
數(shù)據(jù)庫原理試題答案(A卷)一.填空題(每空 1 分,共 20 分)
1.安全性,完整性,衡量標準
2.數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,完整約束。3.集合記錄,單記錄
4.數(shù)據(jù)轉(zhuǎn)儲,登錄日志文件 5.概念,數(shù)據(jù)模型 6.物理,邏輯
7.C++, VB, Def, C# 8.Oracle, Access
二、單項選擇題(每小題 1 分,共 10 分)
C,C,D,A,B,C,B,D,A,B
三、判斷題(每小題 1 分,共 10 分)
F,T,T,F(xiàn),T,F(xiàn),T,T,T
四、(每小題 3 分,共 15 分)
? 令 x={AD}, x(0)=AD, x(1)=ACD, x(2)=ACD, 故(AD)+ =ACD ? 將 F 中依賴右部屬性單一化: F 1 : A C C A B A B C D A D C 在 F 1 中去掉多余的函數(shù)依賴: 因為 B A,A C 所以 B C 是多余的 又因為 D A,A C 所以 D C 是多余的 F 2 : A C C A B A D A 函數(shù)依賴集的最小集不是唯一的,本題答案不唯一。
因為 F 2 中所有依賴的左部都是單屬性,所以不存在依賴左部多余的屬性。所以 F : A C C A B A D A(3)因為 DB 在 F 中的又函數(shù)依賴的右部中均未出現(xiàn),所以候選關(guān)鍵字一定包含 BD,而(BD)+ =ABCD 因此 BD 是 R 惟一的候選關(guān)鍵字。(4)考慮 A C,所以 AC 不是 BCNF(AC 不包含候選關(guān)鍵字 BD),將 ABCD 分解為 AC 和 ABD。AC 已是 BCNF,進一步分解 ABC 選擇 B A,把 ABD 分解為 AB 和 BD,此時 AB 和 AD 均為 BCNF,所以 ρ ={AC,BA,DA,BD}(5)Ri A B
C D AC BA DA a 1 a 1 a 1 a 2 a 3 a 3 a 3
a 4
五、,R US={t|P(t)US(t)`}
R-S={t|P(t)?S(t)`}(5 分),(1)SHOP(sno,sna,snu,city)
GOODS(gno,gna,price)
SHOP-GOODS(sno,gno,num)
Range GOODS rx
SHOP-GOODS ry
GET W(SHOP.SNA)rx ry(ry.gno=rx.gno shop.sno=ry.sno)
(2)∏ sno,sna(δ snu>23(SHOP))(3 分)
(3)(a)SELECT SNO,SNA
FROM SHOP
WHERE CITY=' 長沙 'OR SNO<=100(3 分)
分)((b)SELECT SHOP.sna
FROM SHOP,SHOP-GOODS,GOODS
WHERE SHOP.sno=SHOP-GOODS.sno AND GOODS.gna=' 書包 '
SHOP-GOODS.gno =GOODS.gno(4 分)
(c)SELECT sna
FROM SHOP sx
WHERE NOTEXIST
(SELECT *
FROM GOODS-SHOP sy
WHERE GOODS-SHOP.sno=' 223' AND NOTEXIST
(SELECT *
FROM SHOP-GOODS sz
WHERE sy.gno=sz.gno AND sx.sno=sz.sno))(5 分)
六、設(shè)計題
問題一: 設(shè)計人才、崗位和企業(yè)的實體聯(lián)系圖(5 分)
問題二: 轉(zhuǎn)換關(guān)系模式(5 分)
(b)個人編號,崗位,最低薪水,登記日期
(c)企業(yè)編號,崗位,專業(yè)學歷,薪水,備注,登記日期
(d)個人編號,姓名,性別,出生日期,身份證號,畢業(yè)院校,專業(yè),學歷,證書,名稱,聯(lián)系電話,電子郵件,個人簡歷,特長
(e)證書名稱,證書編號
企業(yè)(企業(yè)編號,企業(yè)名稱,聯(lián)系人,聯(lián)系電話,地址,企業(yè)網(wǎng)址,電子郵件,企業(yè)簡介)
數(shù)據(jù)庫原理試題(B卷)
一、填空題(每空 2 分,共 20 分)
1、關(guān)系中主碼的取值必須唯一且非空,這是由 ___________ 完整性規(guī)則決定的。
2、當數(shù)據(jù)庫被破壞后,如果事先保存了數(shù)據(jù)庫副本和 ________________,就有可能恢復數(shù)據(jù)庫。
3、數(shù)據(jù)庫的 ____________ 是指數(shù)據(jù)庫的正確性和相容性。
4、關(guān)系數(shù)據(jù)操作語言的特點是:操作對象與結(jié)果均為 ___________、操作的非過程性強、語言一體化、并且建立在數(shù)學理論基礎(chǔ)之上。
5、SQL 是一種介于關(guān)系代數(shù)和 _____________ 之間的結(jié)構(gòu)化的查詢語言。
6、對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個 _______________ 映象,它定義了該外模式與模式之間的對應關(guān)系。
7、視圖是一個需表,它一經(jīng)定義就可以和基本表一樣被查詢,但 _________ 操作將有一定的限制。
8、數(shù)據(jù)倉庫是一個面向主題的、_____________、不可更新的、隨時間不斷變化的數(shù)據(jù)集合。
9、避免活鎖的簡單方法是采用 ________________ 的策略。
10、知識庫系統(tǒng)和主動數(shù)據(jù)庫系統(tǒng)是將數(shù)據(jù)庫技術(shù)和 ______________ 技術(shù)相結(jié)合產(chǎn)生的。
二、選擇題(每小題 1 分,共 10 分)
1、SQL 中,下列涉及空值的操作,不正確的是()
A . AGE IS NULL B . AGE IS NOT NULL C . AGE=NULL D . NOT(AGE IS NULL)
2、關(guān)系數(shù)據(jù)模型的三個組成部分中,不包括()
A .完整性規(guī)則 B .數(shù)據(jù)結(jié)構(gòu) C .數(shù)據(jù)操作 D .并發(fā)控制
3、DB, DBMS 和 DBS 三者間的關(guān)系是()
A . DB 包括 DBMS 和 DBS B . DBS 包括 DB 和 DBMS C . DBMS 包括 DBS 和 DB D . DBS 與 DB、DBMS 無關(guān)
4、數(shù)據(jù)庫的并發(fā)操作可能帶來的問題包括()
A .丟失更新 B .數(shù)據(jù)獨立性會提高 C .非法用戶的使用 D .增加數(shù)據(jù)的冗余度
5、并發(fā)事務的交叉執(zhí)行破壞了事務的()
A .原子性 B .隔離性 C .一致性 D .永久性 6、3NF()規(guī)范化為 BCNF。
A .消除非主屬性對碼的部分函數(shù)依賴 B .消除非主屬性對碼的傳遞函數(shù)依賴 C .消除主屬性對碼的部分和傳遞函數(shù)依賴 D .消除非平凡且非函數(shù)依賴的多值依賴
7、()是長期存儲在計算機內(nèi)的有組織,可共享的數(shù)據(jù)集合。
A .數(shù)據(jù)庫管理系統(tǒng) B .數(shù)據(jù)庫系統(tǒng) C .數(shù)據(jù)庫 D .文件組織
8、一個 1 : n 聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,關(guān)系的碼為()
A .實體的碼 B.各實體碼的組合 C.n 端實體的碼 D.每個實體的碼
9、在數(shù)據(jù)庫設(shè)計中,將 ER 圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()
A.需求分析階段 B.邏輯設(shè)計階段 C.概念設(shè)計階段 D.物理設(shè)計階段
10、關(guān)系完備的系統(tǒng)是指()。
A.僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu),不支持集合級的操作 B.僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和三種關(guān)系操作
C.支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和所有的關(guān)系代數(shù)操作 D.支持關(guān)系模型的所有特征
三、簡答題(每小題 5 分,共 20 分)、數(shù)據(jù)庫系統(tǒng)中的常見故障有那些?、簡述數(shù)據(jù)模型的三個組成部分。、所有的視圖是否都可以更新?為什么?、什么樣的并發(fā)調(diào)度是正確的調(diào)度?
四、(共 10 分)事務 T1 和 T2 同時對 A 的值操作。A 的初值是 50,事務 T1 對 A 的值減 10,事務 T2 對 A 的值加倍,1、若這兩個事務并發(fā)執(zhí)行,舉例可能結(jié)果。
2、請給出一個可串行化調(diào)度,并給出執(zhí)行結(jié)果。
五、(共 10 分)對學生-課程數(shù)據(jù)庫有如下的查詢:
SELECT Sname
FROM Student, Cource , SC
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Course.Cno AND Course.Cname=' 數(shù)據(jù)庫 '
此查詢要求選修了數(shù)據(jù)庫的所有學生的姓名。
(1)試畫出用關(guān)系代數(shù)表示的語法樹;
(2)對原始的語法樹進行優(yōu)化,畫出優(yōu)化后的標準語法樹。
六、(共 20 分)設(shè)有學生-課程數(shù)據(jù)庫,其數(shù)據(jù)庫模式為 : 學生 S(學號 SNO,姓名 SN,所在系 SD,年齡 SA)、課程 C(課程號 CNO,課程姓名 CN,先修課號 PCNO)、學生選課 SC(學號 SNO,課程號 CNO,成績 G)。、試用關(guān)系代數(shù),ALPHA 語言語言分別寫出下列查詢:
(1)查詢選修了 2 號課程的學生的學號;(4分)
(2)求選讀了‘數(shù)據(jù)庫概論'的學生學號和姓名;(4分)
(3)求選修了全部課程的學生學號、姓名。(4分)、試用 SQL 語言寫出下列查詢:
(1)查詢學生總?cè)藬?shù);(2分)
(2)查詢選修了 5 門以上課程的學生學號;(3分)
(3)刪除‘數(shù)據(jù)結(jié)構(gòu)'課程及所有對它的選課情況。(3分)
七、綜合題(共 10 分)
設(shè)有一局部應用,包括 3 個實體“科室”,“醫(yī)生”,“病人”,且有以下事實:每位醫(yī)生屬于且僅屬于一個科室;每個科室可以聘用若干醫(yī)生,對每個醫(yī)生聘用時存有聘用期限和聘用日期;一個病人可以由不同的醫(yī)生為其診斷,每個醫(yī)生可以為若干病人診治,每次診斷存有就診日期。設(shè)科室的屬性包括科室代碼,科室名稱;醫(yī)生的屬性包括工號,姓名和職稱;病人的屬性包括姓名、年齡、工作單位。
1、試設(shè)計 E - R 圖,注明屬性和聯(lián)系類型。
2、將 E - R 圖轉(zhuǎn)換為等價的關(guān)系模型(包括關(guān)系名,屬性名和碼)。
數(shù)據(jù)庫原理試題答案(B卷)
一、填空題(每題 2 分,共 20 分)
1、實體
2、日志文件
3、完整性
4、關(guān)系
5、關(guān)系演算
6、外模式 / 模式
7、更新
8、集成的
9、先來先服務
10、人工智能
二、選擇題(每題 1 分,共 10 分)、C 2、D 3、B 4、A 5、B 6、C 7、C 8、C 9、B 10、C
三、簡答題(每題 5 分,共 20 分)、答案要點:數(shù)據(jù)庫系統(tǒng)中的常見故障有:事務內(nèi)部的故障(事務故障)(1 分)、系統(tǒng)故障(1 分)、介質(zhì)故障(2 分)、計算機病毒(1 分)。、答案要點:數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)(1 分)、數(shù)據(jù)操作(2 分)、完整性約束(2 分)三部分組成。、答案要點:不是所有的視圖都是可更新的(2 分);因為有些視圖的更新不能唯一地有意義地轉(zhuǎn)換成對相應基本表地更新(3 分)。、答案要點:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行執(zhí)行它們時的結(jié)果相同(5 分)。
四、(共 10 分)、80,90、T 1 T 2
Slock A
讀 A = 50
Y = A
Unlock A
Xlock A
A=Y-10 Slock A
寫回 A = 40
等待
Unlock A 等待
讀 A = 40
Y = A
Unlock A
Xlock A
A=Y × 2
寫回 A = 80
Unlock A
五、(共 10 分)
六、(共 20 分)、關(guān)系代數(shù):
(1)sno(cno =‘ 2 '(SC))(2分)
(2)Sno,Sn(Cn=' 數(shù)據(jù)庫概論 ')(2分)
(3)Sno,SN(S(Cno,sno(SC)÷ Cno(C)))(2分)
ALPHA 語言
? GET W(SC.SNO): SC.CNO=' 2'(2分)
? RANGE C X
SC Y
GET W(S.SNO.S.SN): X(Y(X.CNO=Y.CNO ^ Y.SNO=S.SNO ^ X.CN=' 數(shù)據(jù)庫概論 '
? RANGE C X
SC Y
GET W(S.SNO,S.SN): X(Y(Y.CNO=X.CNO ^ Y.SNO=S.SNO))(2分)、(1)SELECT COUNT(*)FROM STUDENT(2分)
(2)SELECT SNO FROM SC
GROUP BY SNO HAVING COUNT(*)>5(3分)
(3)DELECT FROM SC
WHERE SC.CNO IN(SELECT C.CNO FROM C WHERE CN=' 數(shù)據(jù)結(jié)構(gòu) ')
DELETE FROM C WHERE CN= ‘數(shù)據(jù)結(jié)構(gòu)'(3分)
七、(共 10 分)
(5分)
科室(科室代碼,科室名稱)(1分)
醫(yī)生(工號,姓名,名稱,聘用日期,聘用期限,科室)(1分)
病人(病歷號,姓名,年齡,工作單位)(1分)
2分)(就診(醫(yī)生工號,病歷號,就診日期)(2分)
發(fā)表于 @ 2008年12月29日 09:41:00 | 評論(4)| 編輯| 舉報| 收藏
舊一篇:考試臨近——在即 | 新一篇:學習IT的情感生活 查看最新精華文章 請訪問博客首頁相關(guān)文章
數(shù)據(jù)庫概論筆記(第一天)數(shù)據(jù)庫原理及應用《數(shù)據(jù)庫系統(tǒng)概論》(第三版)數(shù)據(jù)庫數(shù)據(jù)基礎(chǔ)--基本概念數(shù)據(jù)庫的基本結(jié)構(gòu)三個層次數(shù)據(jù)庫原理與應用數(shù)據(jù)庫設(shè)計的理論與方法收藏數(shù)據(jù)庫的主要特點hlf881216 發(fā)表于2009年12月9日 17:05:52 IP:舉報回復刪除 很好!?。iiiqpl 發(fā)表于2009年12月21日 21:51:03 IP:舉報回復刪除 看不到圖片呀匿名用戶 發(fā)表于2009年12月25日 13:02:42 IP:舉報回復刪除 zs84102030 發(fā)表于2009年12月28日 15:04:19 IP:舉報回復刪除 發(fā)表評論 表 情: 評論內(nèi)容: 用 戶 名: 登錄 注冊 匿名評論 匿名用戶驗 證 碼: 重新獲得驗證碼 Copyright ? pengluer Powered by CSDN Blog
第三篇:數(shù)據(jù)庫期末考試_試題及答案
數(shù)據(jù)庫試題 4
一、填空題(共9題,每空1分,共15分)1.將數(shù)據(jù)庫從SQL Server實例中刪除,即在邏輯上將數(shù)據(jù)文件和日志文件與服務器相脫離,但文件并不從磁盤上刪除,此操作稱為_數(shù)據(jù)庫分離,可通過(數(shù)據(jù)庫附加)將其重新加載到SQL Server實例中。
2.SQL Server中用于服務器的所有初始化信息和系統(tǒng)級信息的的系統(tǒng)數(shù)據(jù)庫是master。3.打開數(shù)據(jù)庫student,使之成為當前數(shù)據(jù)庫,可以使用語句_ use student _。
4.使用T-SQL語句創(chuàng)建存儲過程時,若要求對存儲過程的定義文本進行加密,應使用with encryption子句。
5.若要刪除sutdent表的全部數(shù)據(jù),數(shù)據(jù)刪除后不可撤銷,應使用語句truncate table student,,若想刪除student數(shù)據(jù)表,應使用語句drop table student。
6.若要對數(shù)據(jù)庫中的對象進行改名,就使用的系統(tǒng)存儲過程是sp_rename。
7.Sql Server的數(shù)據(jù)庫文件分為數(shù)據(jù)文件和日志文件,其中數(shù)據(jù)文件又分為主要數(shù)據(jù)文件、次要數(shù)據(jù)文件
8.在Sql Server中,按觸發(fā)的時機,觸發(fā)器可分為后觸發(fā)器和替代觸發(fā)器。9.在Sql Server的事務處理中,開啟一個事務可用Begin Transaction,提交事 和撤銷事務應使用Commit transaction,和rollback transaction。
二、簡答題(共3題,每題7分,共21分)
1.在數(shù)據(jù)庫端編程,主要有自定義函數(shù)、存儲過程和觸發(fā)器三種形式,請比較一下這三種方式的異同。
答:相同點:存儲過程、觸發(fā)器和自定義函數(shù)都能完成特定的功能,并且都存儲在服務器端的數(shù)據(jù)字典中。區(qū)別:存儲過程和自定義函數(shù)都可以定義參數(shù),觸發(fā)器不可以;從調(diào)用方式上,存儲過程和自定義函數(shù)都需要由應用程序或其他功能體進行調(diào)用,而觸發(fā)器是當相應事件發(fā)生時自動執(zhí)行,不須干預;自定義函數(shù)需要定義返回類型,函數(shù)體中至少要有一條用于返回返回值的語句,而存儲過程和觸發(fā)器不需要。
2.SqlServer有哪些系統(tǒng)數(shù)據(jù)庫,各自的作用是什么?
答:主要的系統(tǒng)數(shù)據(jù)庫有master、model、tempdb和msdb。其中Master數(shù)據(jù)庫保存了Sql Server2005的初始化信息和所有系統(tǒng)級信息。Master數(shù)據(jù)庫是Sql Server 2005中最重要的系統(tǒng)數(shù)據(jù)庫,對其更新和刪除操作而導致Master數(shù)據(jù)庫的不可用都將使得整個Sql Server2005系統(tǒng)無法啟動和運行。Model數(shù)據(jù)庫是用于保存所有用戶數(shù)據(jù)庫和Tempdb數(shù)據(jù)庫的模版。每當用戶創(chuàng)建數(shù)據(jù)庫的時候,Sql Server 2005將用Model數(shù)據(jù)庫提供的信息初始化被創(chuàng)建的數(shù)據(jù)庫。Msdb數(shù)據(jù)庫是Sql Server2005代理服務工作時使用的數(shù)據(jù)庫,用于為Sql Server代理服務在警報和作業(yè)等操作時提供存儲空間。Tempdb數(shù)據(jù)庫是一個臨時的系統(tǒng)數(shù)據(jù)庫,用于為所有臨時表、臨時存儲過程以及其他的臨時操作提供存儲空間。
3.數(shù)據(jù)庫中的常用完整性有幾種?在Sql Server主要通過什么方式實現(xiàn)?
答:視圖是一個虛擬表,并不存儲任何物理數(shù)據(jù)。視圖與真正的表很類似,也是由一組命名的列和數(shù)據(jù)行組成,其內(nèi)容由查詢所定義。但是視圖并不是以一組數(shù)據(jù)形式存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存儲視圖的定義,而不存在視圖中的數(shù)據(jù),視圖中的數(shù)據(jù)仍存儲在基本表中。當基本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出來的數(shù)據(jù)也隨之改變。視圖和表相比有獨特的優(yōu)勢主要有以下幾個方面:(1)保證數(shù)據(jù)的安全。(2)簡化查詢操作。(3)保證數(shù)據(jù)的邏輯獨立性。
三、應用題(共6題,本題共54分。)
1.創(chuàng)建名為“Love”的數(shù)據(jù)庫,其中主數(shù)據(jù)文件為Lovedat.mdf,初始大小為8M,增長大小為1M,日志文件為Lovedat.ldf,初始大小是5M,最大存儲空間是30M,增長是5M。請寫出相應的SQL語句。(本題8分)Create database love on
log on(name=lovedat_log,filename='d:databaselovedat.ldf',size=5,Maxsize=30,filegrowth=5)
2.使用sql語句創(chuàng)建表authors,結(jié)構(gòu)如下表所示(本題8分)列名 數(shù)據(jù)類型
N 大小
是否為空
姓名
默認值 說明
authorID int 4
編號(主鍵),自動增長
電話 地址(name=lovedat,filename='d:databaselovedat.mdf',size=8,Maxsize=unlimited,filegrowth=1)
authorName nvarchar 50 N Phone nvarchar 13 Y address nvarchar 255 Y
create table authors(authorid int identity(1,1)primary key not null, authorname nvarchar(50)not null,phone nvarchar(13)null, address nvarchar(255))
3.使用SQL語句對2中創(chuàng)建的authors表進行如下修改:(每小題5分,共15分)(1)添加Sex 列 char(2),city列 varchar(20)。
alter table authors add sex char(2)null,city nvarchar(20)null;(2)刪除city列。
alter table authors drop column city(3)修改作者信息表authors中的address列將該列的屬性的長度更改為500。alter table authors alter column address nvarchar(500)not null 4.系部表的創(chuàng)建語句如下,請完成以下操作(每小題5分,共15分)CREATE TABLE 系部
(系部代碼 char(2)CONSTRAINT pk_xbdm PRIMARY KEY, 系部名稱 varchar(30)NOT NULL,系主任 char(8))(1)將系部表中計算機系的系主任改為‘張中裕’
Update 系部 set 系主任=’ 張中裕’
where 系部名稱=’計算機系’
(2)將系部表中的系部名稱列中的‘系’全部更改為‘科學系’(使用replace函數(shù),用法:replace(串1,串2,串3),其功能是將串1中的串2 替換為串3)Update 系部 set 系部名稱=replace(系部名稱,’系’,’科學系’)(3)在系部表中刪除系主任姓‘張’的系部數(shù)據(jù)
Delete from 系部 where 系主任 like ‘張%’
5.有二個數(shù)據(jù)表XS(xh, xm)和XS_KC(xh, kch, cj),用兩種方法,寫出如下查詢:“查找數(shù)據(jù)庫中所有學生的學號(xh)、姓名(xm)以及其所選修的課程號(kch)和成績(cj)”。(本題8分)
.(1)select xs.xh,xm,kch,cj from xs, xs_kc where xs.xh=xs_kc.xh;(2)select xs.xh,xm,kch,cj from xs join xs_kc on xs.xh=xs_kc.xh;
四、編程題(共2題,每題5分,共10分)
1.在數(shù)據(jù)表上機記錄中創(chuàng)建一個名為insert_sjkh的insert觸發(fā)器其作用是:當用戶在“上機記錄”表中插入記錄時,若“上機卡”表中沒有該上機號,則提示用戶不能插入,否則,提示記錄插入成功。(附:上機記錄表結(jié)構(gòu):(上機號 char(13),上機日期 datetime,開始時間 datetime,結(jié)束時間 datetime,上機狀態(tài) bit)。上機卡表結(jié)構(gòu):(上機號 char(13),姓名??)
Create trigger insert_sjkh on dbo.上機記錄 for insert As begin Declare @asjkh char(13)Declare @acount int Select @asjkh=上機號from inserted Select @acount=count(*)from 上機卡where 上機號=@asjkh If @acount=0
Print '上機卡中無此卡號,不能插入' Else
Print '數(shù)據(jù)插入成功'
end
2.在student數(shù)據(jù)庫中的學生、課程注冊、課程表中創(chuàng)建一個帶參的存儲過程cjcx。其功能是:當任意輸入一個學生的姓名時,返回該學生的學號、選修的課程名和課程成績。然后使用存儲過程,查詢學生“陳斌”的學號、選修的課程名和課程成績。Create PROCEDURE [dbo].[cjcx]
AS BEGIN SELECT 學生.學號,課程.課程名,課程注冊.成績 from
學生,課程,課程注冊
where 學生.學號=課程注冊.學號 and 課程注冊.課程號=課程.課程號 and 姓名=@axm END 執(zhí)行存儲過程cjcx,查詢“周紅瑜”的學號、選修的課程名和課程成績。Exec cjcx @axm=’張斌’ @axm char(8)
第四篇:數(shù)據(jù)庫sql課后練習題及答案解析
先創(chuàng)建下面三個表:
(book表)
(borrow表)
(reader表)
1)找出姓李的讀者姓名(NAME)和所在單位(COMPANY)。
2)列出圖書庫中所有藏書的書名(BOOK_NAME)及出版單位(OUTPUT)。3)查找“高等教育出版社”的所有圖書名稱(BOOK_NAME)及單價(PRICE),結(jié)果按單價降序排序。
4)查找價格介于10元和20元之間的圖書種類(SORT),結(jié)果按出版單位(OUTPUT)和單價(PRICE)升序排序。
5)查找書名以”計算機”開頭的所有圖書和作者(WRITER)。
6)檢索同時借閱了總編號(BOOK_ID)為112266和449901兩本書的借書證號(READER_ID)。
##7)* 查找所有借了書的讀者的姓名(NAME)及所在單位(COMPANY)。8)* 找出李某所借所有圖書的書名及借書日期(BORROW_DATE)。
9)* 無重復地查詢2006年10月以后借書的讀者借書證號(READER_ID)、姓名和單位。
##10)* 找出借閱了
11)找出與”趙正義”在同一天借書的讀者姓名、所在單位及借書日期。12)查詢2006年7月以后沒有借書的讀者借書證號、姓名及單位。#13)求”科學出版社”圖書的最高單價、最低單價、平均單價。##14)* 求”信息系”當前借閱圖書的讀者人次數(shù)。
#15)求出各個出版社圖書的最高價格、最低價格和總冊數(shù)。#16)分別找出各單位當前借閱圖書的讀者人數(shù)及所在單位。
17)* 找出當前至少借閱了2本圖書(大于等于2本)的讀者姓名及其所在單位。18)分別找出借書人次數(shù)多于1人次的單位及人次數(shù)。
19)找出藏書中各個出版單位的名稱、每個出版社的書籍的總冊數(shù)(每種可能有多冊)、書的價值總額。
20)查詢經(jīng)濟系是否還清所有圖書。如果已經(jīng)還清,顯示該系所有讀者的姓名、所在單位和職稱。
附錄:建表語句
創(chuàng)建圖書管理庫的圖書、讀者和借閱三個基本表的表結(jié)構(gòu): 創(chuàng)建BOOK:(圖書表)
CREATE TABLE BOOK(BOOK_ID int, SORT VARCHAR(10), BOOK_NAME VARCHAR(50), WRITER VARCHAR(10), OUTPUT VARCHAR(50), PRICE int);
創(chuàng)建READER:(讀者表)
CREATE TABLE READER(READER_ID int, COMPANY VARCHAR(10), NAME VARCHAR(10), SEX VARCHAR(2), GRADE VARCHAR(10), ADDR VARCHAR(50));
創(chuàng)建BORROW:(借閱表)
CREATE TABLE BORROW(READER_ID int, BOOK_ID int, BORROW_DATE datetime)
插入數(shù)據(jù): BOOK表: insert into BOOK values(445501,'TP3/12','數(shù)據(jù)庫導論','王強','科學出版社',17.90);insert into BOOK values(445502,'TP3/12','數(shù)據(jù)庫導論','王強','科學出版社',17.90);insert into BOOK values(445503,'TP3/12','數(shù)據(jù)庫導論','王強','科學出版社',17.90);insert into BOOK values(332211,'TP5/10','計算機基礎(chǔ)','李偉','高等教育出版社',18.00);insert into BOOK values(112266,'TP3/12','FoxBASE','張三','電子工業(yè)出版社',23.60);insert into BOOK values(665544,'TS7/21','高等數(shù)學','劉明','高等教育出版社',20.00);insert into BOOK values(114455,'TR9/12','線性代數(shù)','孫業(yè)','北京大學出版社',20.80);insert into BOOK values(113388,'TR7/90','大學英語','胡玲','清華大學出版社',12.50);insert into BOOK values(446601,'TP4/13','數(shù)據(jù)庫基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(446602,'TP4/13','數(shù)據(jù)庫基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(446603,'TP4/13','數(shù)據(jù)庫基礎(chǔ)','馬凌云','人民郵電出版社',22.50);insert into BOOK values(449901,'TP4/14','FoxPro大全','周虹','科學出版社',32.70);insert into BOOK values(449902,'TP4/14','FoxPro大全','周虹','科學出版社',32.70);insert into BOOK values(118801,'TP4/15','計算機網(wǎng)絡(luò)','黃力鈞','高等教育出版社',21.80);insert into BOOK values(118802,'TP4/15','計算機網(wǎng)絡(luò)','黃力鈞','高等教育出版社',21.80);
READER表: insert into reader values(111,'信息系','王維利','女','教授','1號樓424');insert into reader values(112,'財會系','李 立','男','副教授','2號樓316');insert into reader values(113,'經(jīng)濟系','張 三','男','講師','3號樓105');insert into reader values(114,'信息系','周華發(fā)','男','講師','1號樓316');insert into reader values(115,'信息系','趙正義','男','工程師','1號樓224');insert into reader values(116,'信息系','李 明','男','副教授','1號樓318');insert into reader values(117,'計算機系','李小峰','男','助教','1號樓214');insert into reader values(118,'計算機系','許鵬飛','男','助工','1號樓216');insert into reader values(119,'計算機系','劉大龍','男','教授','1號樓318');insert into reader values(120,'國際貿(mào)易','李 雪','男','副教授','4號樓506');insert into reader values(121,'國際貿(mào)易','李 爽','女','講師','4號樓510');insert into reader values(122,'國際貿(mào)易','王 純','女','講師','4號樓512');insert into reader values(123,'財會系','沈小霞','女','助教','2號樓202');insert into reader values(124,'財會系','朱 海','男','講師','2號樓210');insert into reader values(125,'財會系','馬英明','男','副教授','2號樓212');
BORROW表: insert into borrow values(112,445501,'3-19-2006');insert into borrow values(125,332211,'2-12-2006');insert into borrow values(111,445503,'8-21-2006');insert into borrow values(112,112266,'3-14-2006');insert into borrow values(114,665544,'10-21-2006');insert into borrow values(120,114455,'11-2-2006');insert into borrow values(120,118801,'10-18-2006');insert into borrow values(119,446603,'11-12-2006');insert into borrow values(112,449901,'10-23-2006');insert into borrow values(115,449902,'8-21-2006');insert into borrow values(118,118801,'9-10-2006');
現(xiàn)有關(guān)系數(shù)據(jù)庫如下:
數(shù)據(jù)庫名:圖書借閱管理系統(tǒng)
讀者表(讀者編號 char(6),姓名,性別,年齡,單位,身份證號,職稱)圖書表(圖書編號char(6),圖書名稱,出版社,作者)借閱表(讀者編號,圖書編號,借閱時間)用SQL語言實現(xiàn)下列功能的sql語句代碼。(1)創(chuàng)建數(shù)據(jù)表book;
book表(圖書編號 char(6),圖書名稱,出版社,作者)要求使用:主鍵(圖書編號)、非空(圖書名稱),非空(作者)(2)創(chuàng)建數(shù)據(jù)表reader表;
學生信息表(reader編號 char(8),姓名,性別,年齡,工作單位,身份證號,職稱)要求使用:主鍵(reader編號)、默認(職稱)、非空(工作單位,姓名)、唯一(身份證號)、檢查(性別),檢查(年齡)(3)創(chuàng)建借書表borrow;
borrow(ID,讀者編號,圖書編號,借書日期)要求使用:外鍵(學號,課號)(4)將下列課程信息添加到book表的代碼
圖書編號 名稱
100101 數(shù)據(jù)庫原理 100102 數(shù)據(jù)結(jié)構(gòu)
修改 課號為100102的圖書名稱:數(shù)據(jù)結(jié)構(gòu)與算法 刪除 課號為100101的圖書信息(5)創(chuàng)建視圖讀者借書信息的代碼;
讀者借書信息視圖(讀者編號,姓名,圖書編號,圖書名稱,借書日期)(6)從讀者表book中查詢姓李的女讀者的情況:姓名、性別、工作單位。(7)查詢統(tǒng)計出借書量超過5本的單位平均年齡
(8)創(chuàng)建帶參數(shù)的存儲過程[借某圖書的讀者高低均年齡]、執(zhí)行該過程的代碼
存儲過程功能:查詢借閱某圖書的的讀者最高年齡、最低年齡、平均年齡;
執(zhí)行該過程,查詢所有借閱’數(shù)據(jù)庫基礎(chǔ)’這本書的讀者的最高年齡、最低年齡、平均年齡;
1)找出姓李的讀者姓名(NAME)和所在單位(COMPANY)。
SELECT NAME,COMPANY FROM READER WHERE NAME LIKE '李%'
2)列出圖書庫中所有藏書的書名(BOOK_NAME)及出版單位(OUTPUT)。
SELECT BOOK_NAME, OUTPUT FROM BOOK
3)查找“高等教育出版社”的所有圖書名稱(BOOK_NAME)及單價(PRICE),結(jié)果按單價降序排序。
SELECT BOOK_NAME,PRICE FROM BOOK WHERE OUTPUT='高等教育出版社' ORDER BY PRICE DESC 4)查找價格介于10元和20元之間的圖書種類(SORT),結(jié)果按出版單位(OUTPUT)和單價(PRICE)升序排序。
SELECT SORT,OUTPUT,PRICE FROM BOOK WHERE PRICE BETWEEN 10 AND 20 ORDER BY OUTPUT ,PRICE
5)查找書名以”計算機”開頭的所有圖書和作者(WRITER)。
SELECT BOOK_NAME,WRITER FROM BOOK WHERE BOOK_NAME LIKE '計算機%' 6)檢索同時借閱了總編號(BOOK_ID)為112266和449901兩本書的借書證號(READER_ID)。
SELECT A.READER_ID FROM BORROW A,BORROW B WHERE A.BOOK_ID='112266' AND B.BOOK_ID='449901' AND A.READER_ID=B.READER_ID
##7)* 查找所有借了書的讀者的姓名(NAME)及所在單位(COMPANY)。
SELECT DISTINCT NAME,COMPANY FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID
8)* 找出李某所借所有圖書的書名及借書日期(BORROW_DATE)。
SELECT BOOK.BOOK_NAME,BORROW.BORROW_DATE FROM BOOK,BORROW,READER WHERE BOOK.BOOK_ID=BORROW.BOOK_ID AND
READER.READER_ID=BORROW.READER_ID AND READER.NAME LIKE '李%'
9)* 無重復地查詢2006年10月以后借書的讀者借書證號(READER_ID)、姓名和單位。
SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE >='2006-10-1')
##10)* 找出借閱了
SELECT DISTINCT READER_ID FROM BORROW,BOOK WHERE BORROW.BOOK_ID=BOOK.BOOK_ID AND BOOK.BOOK_NAME LIKE 'FoxPro大全'
11)找出與”趙正義”在同一天借書的讀者姓名、所在單位及借書日期。
SELECT NAME,COMPANY,BORROW_DATE FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID AND BORROW_DATE IN(SELECT BORROW_DATE FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID AND NAME='趙正義')
12)查詢2006年7月以后沒有借書的讀者借書證號、姓名及單位。
SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID NOT IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE>='2006-7-1')
#13)求”科學出版社”圖書的最高單價、最低單價、平均單價。
SELECT MAX(PRICE)最高單價,MIN(PRICE)最低單價,AVG(PRICE)平均單價 FROM BOOK WHERE OUTPUT='科學出版社'
##14)* 求”信息系”當前借閱圖書的讀者人次數(shù)。
SELECT COUNT(DISTINCT READER_ID)當前借閱圖書的讀者人次數(shù)FROM BORROW WHERE READER_ID IN(SELECT READER_ID FROM READER WHERE COMPANY IN('信息系'))
#15)求出各個出版社圖書的最高價格、最低價格和總冊數(shù)。
SELECT MAX(PRICE)最高價格,MIN(PRICE)最低價格,COUNT(PRICE)總冊數(shù)FROM BOOK GROUP BY OUTPUT
#16)分別找出各單位當前借閱圖書的讀者人數(shù)及所在單位。
SELECT COUNT(COMPANY)讀者人數(shù),COMPANY FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY
17)* 找出當前至少借閱了2本圖書(大于等于2本)的讀者姓名及其所在單位。
SELECT NAME 讀者姓名,COMPANY 單位FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW GROUP BY READER_ID HAVING COUNT(*)>=2)
18)分別找出借書人次數(shù)多于1人次的單位及人次數(shù)。
SELECT COMPANY,COUNT(*)人次數(shù) FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY HAVING COUNT(*)>1
19)找出藏書中各個出版單位的名稱、每個出版社的書籍的總冊數(shù)(每種可能有多冊)、書的價值總額。
SELECT OUTPUT,COUNT(*)書籍的總冊數(shù),SUM(PRICE)書的價值總額 FROM BOOK GROUP BY OUTPUT
20)查詢經(jīng)濟系是否還清所有圖書。如果已經(jīng)還清,顯示該系所有讀者的姓名、所在單位和職稱。
SELECT NAME,COMPANY FROM READER WHERE NOT EXISTS(SELECT* FROM READER,BORROW WHERE READER.READER_ID=BORROW.READER_ID AND COMPANY='經(jīng)濟系')
第五篇:數(shù)據(jù)庫設(shè)計課后答案
第六章
數(shù)據(jù)庫設(shè)計
習題解答和解析
1.1.試述數(shù)據(jù)庫設(shè)計過程。
答:這里只概要列出數(shù)據(jù)庫設(shè)計過程的六個階段:
(1)需求分析;(2)概念結(jié)構(gòu)設(shè)計;(3)邏輯結(jié)構(gòu)設(shè)計;(4)數(shù)據(jù)庫物理設(shè)計;(5)數(shù)據(jù)庫實施;(6)數(shù)據(jù)庫運 行和維護。這是一個完整的實際數(shù)據(jù)庫及其應用系統(tǒng)的設(shè)計過程。不僅包括設(shè)計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實施、運行和維護。設(shè)計一個完善的數(shù)據(jù)庫應用系統(tǒng)往往是上述六個階段的不斷反復。
解析:希望讀者能夠認真閱讀《概論》6.1的內(nèi)容,了解并掌握數(shù)據(jù)庫設(shè)計過程。2.2.試述數(shù)據(jù)庫設(shè)計過程各個階段上的設(shè)計描述。答:各階段的設(shè)計要點如下:
(1)需求分析:準確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
(2)概念結(jié)構(gòu)設(shè)計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。
(3)邏輯結(jié)構(gòu)設(shè)計:將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。(4)數(shù)據(jù)庫物理設(shè)計:為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。
(5)數(shù)據(jù)庫實施:設(shè)計人員運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應用程序,組織數(shù)據(jù)入庫,并進行試運行。
(6)數(shù)據(jù)庫運行和維護:在數(shù)據(jù)庫系統(tǒng)運行過程中對其進行評價、調(diào)整與修改。解析:
這是進一步了解數(shù)據(jù)庫設(shè)計的具體內(nèi)容。設(shè)計描述是指在各個階段體現(xiàn)設(shè) 計內(nèi)容,描述設(shè)計結(jié)果的各種文檔、程序。讀者可以參考《概論》上圖6.3。
3.3.試述數(shù)據(jù)庫設(shè)計過程中結(jié)構(gòu)設(shè)計部分形成的數(shù)據(jù)庫模式。答:數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的不同階段形成數(shù)據(jù)庫的各級模式,即:
(1)在概念設(shè)計階段形成獨立于機器特點,獨立于各個DBMS產(chǎn)品的概念模式,在本篇中就是E-R圖;
(2)在邏輯設(shè)計階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式,然后在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式;
(3)在物理設(shè)計階段,根據(jù)DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。
讀者可以參考《概論》上圖6.4。圖中概念模式是面向用戶和設(shè)計人員的,屬于概念模型的層次;邏輯模式、外模式、內(nèi)模式是DBMS支持的模式,屬于數(shù)據(jù)模型的層次,可以在DBMS中加以描述和存儲。
4.4.試述數(shù)據(jù)庫設(shè)計的特點。
答:數(shù)據(jù)庫設(shè)計既是一項涉及多學科的綜合性技術(shù)又是一項龐大的工程項目。其主要特點有:
(1)數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。
(2)從軟件設(shè)計的技術(shù)角度看,數(shù)據(jù)庫設(shè)計應該和應用系統(tǒng)設(shè)計相結(jié)合,也就是說,整個設(shè)計過程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計和行為(處理)設(shè)計密切結(jié)合起來。詳細的可以參考《概論》上6.1.2。
5.5.需求分析階段的設(shè)計目標是什么?調(diào)查的內(nèi)容是什么? 答:需求分析階段的設(shè)計目標是通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部 門、企業(yè)等),充分了
解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。
調(diào)查的內(nèi)容是“數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的如下要求:
(1)信息要求,指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì),由信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù);
(2)處理要求,指用戶要完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯(lián)機處理;
(3)安全性與完整性要求。
詳細的可以參考《概論》上6.2。
6.6.數(shù)據(jù)字典的內(nèi)容和作用是什么? 答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:(1)數(shù)據(jù)項;(2)數(shù)據(jù)結(jié)構(gòu);(3)數(shù)據(jù)流;(4)數(shù)據(jù)存儲;(5)處理過程五個部分。
其中數(shù)據(jù)項是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流和數(shù)據(jù)存儲的邏輯內(nèi)容。
數(shù)據(jù)字典的作用:數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進行概念設(shè)計的基礎(chǔ),并在數(shù)據(jù)庫設(shè)計過程中不斷修改、充實、完善。(詳細參考《概論》上6.2.3。注意,數(shù)據(jù)庫設(shè)計階段形成的數(shù)據(jù)字典與第十一章DBMS中的數(shù)據(jù)字典不同,后者是DBMS關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,當然兩者是有聯(lián)系的)。
7.7.什么是數(shù)據(jù)庫的概念結(jié)構(gòu)?試述其特點和設(shè)計策略。答:概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,其主要特點是:
(1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是對現(xiàn)實世界的一個真實模型;
(2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫設(shè)計成功的關(guān)鍵;
(3)易于更改,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充;(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)的設(shè)計策略通常有四種:
l)自頂向下,即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化;
2)自底向上,即首先定義各局部應用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu);
3)逐步擴張,首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);
4)混合策略,即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。詳細參考《概論》上6.3。
8.8.什么叫數(shù)據(jù)抽象?試舉例說明。
答:數(shù)據(jù)抽象是對實際的人、物、事和概念進行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細節(jié), 并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。如“分類”這種抽象是:定義某一類概念作為現(xiàn)實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“is member of” 的語義。在E-R模型中,實體型就是這種抽象。例如在學校環(huán)境中,李英是老師,表示李英是教師類型中的一員,則教師是實體型,李英是教師實體型中的一個實體值,具有教師共同的特性和行為:在某個系某個專業(yè)教學,講授某些課程,從事某個方向的科研。
9.9.試述數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計的重要性和設(shè)計步驟。
答:重要性:數(shù)據(jù)庫概念設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,將在需求分析階段所得到的應用需求首先抽
象為概念結(jié)構(gòu),以此作為各種數(shù)據(jù)模型的共同基礎(chǔ),從而能更好地、更準確地用某一DBMS實現(xiàn)這些需求。
設(shè)計步驟:概念結(jié)構(gòu)的設(shè)計方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設(shè)計步驟通常分為兩步:第1步是抽象數(shù)據(jù)并設(shè)計局部視圖,第2步是集成局部視圖,得到全局的概念結(jié)構(gòu)(如《概論》圖6.9 所示)。
10.什么是E-R圖?構(gòu)成E-R圖的基本要素是什么? 答:E-R圖為實體-聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。
構(gòu)成E-R圖的基本要素是實體型、屬性和聯(lián)系,其表示方法為:(1)實體型,用矩形表示,矩形框內(nèi)寫明實體名;
(2)屬性,用橢圓形表示,并用無向邊將其與相應的實體連接起來;
(3)聯(lián)系,用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1,1:n或m:n)。
解析:E-R圖的概念是在第一章中講解的,讀者可以復習《概論》1.2.2 概念模型的 內(nèi)容。
11.為什么要視圖集成?視圖集成的方法是什么? 答:在對數(shù)據(jù)庫系統(tǒng)進行概念結(jié)構(gòu)設(shè)計時一般采用自底向上的設(shè)計方法,把繁雜的大系統(tǒng)分解子系 統(tǒng)。首先設(shè)計各個子系統(tǒng)的局部視圖,然后通過視圖集成的方式將各子系統(tǒng)有機地融合起來,綜合成一個系統(tǒng)的總視圖。這樣,設(shè)計清晰,由簡到繁。由于數(shù)據(jù)庫系統(tǒng)是從整體角度看待和描述數(shù)據(jù)的,因此數(shù)據(jù)不再面向某個應用而是整個系統(tǒng)。因此必須進行視圖集成,使得數(shù)據(jù)庫能被全系統(tǒng)的多個用戶、多個應用共享使用。
一般說來,視圖集成可以有兩種方式:
(1)多個分E-R圖一次集成,如《概論》圖6.25(a)所示;(2)逐步集成,用累加的方式一次集成兩個分E-R圖,如《概論》圖6.25(b)所示。無論采用哪種方式,每次集成局部E-R圖時都需要分兩步走:
? ? 合并,解決各分E-R圖之間的沖突,將各分E-R圖合并起來生成初步E-R圖; ? ? 修改和重構(gòu),消除不必要的冗余,生成基本E-R圖。12.什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計?試述其設(shè)計步驟。
答:數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所
支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計步驟為(《概論》圖6.31):
(1)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;
(2)將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;(3)對數(shù)據(jù)模型進行優(yōu)化。
13.試述把E-R圖轉(zhuǎn)換為DBTG模型和關(guān)系模型的轉(zhuǎn)換規(guī)則。答:E-R圖向DBTG模型的轉(zhuǎn)換規(guī)則:
(1)每個實體型轉(zhuǎn)換為記錄型,實體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項;(2)實體型之間1:n(n?1)的聯(lián)系轉(zhuǎn)換為一個系,沒有任何聯(lián)系的實體型轉(zhuǎn)換為奇異系;
(3)K(K?2)個實體型之間多對多的聯(lián)系,引入一個連結(jié)記錄,形成K個實體型和連結(jié)記錄之間的K個系。連結(jié)記錄的屬性由諸首記錄的碼及聯(lián)系屬性所組成;
(4)同一實體型內(nèi)的1:n,n:m聯(lián)系,引入連結(jié)記錄,轉(zhuǎn)換為兩個系。
解析:根據(jù)我國實際情況,網(wǎng)狀,層次數(shù)據(jù)庫系統(tǒng)已很少使用,因此《概論》第三版 把它們刪去了,有關(guān)的主要概念放在第一章數(shù)據(jù)模型中介紹。對于DBTG模型的許多概念也介紹得很簡單。本題的內(nèi)容已經(jīng)超出了書上的內(nèi)容,讀者只要了解就可以了。但是,下面E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則要求同學必須掌握,并且能夠舉一反三。
答:E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則:一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。
對于實體間的聯(lián)系則有以下不同的情況:
(1)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個實體的碼均是該關(guān)系的候選碼。如果與某一端實體對應的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個關(guān)系模式的碼和聯(lián)系本身的屬性。(2)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系摸式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實體的碼。
(3)一個m:n 聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實體碼的組合組成該關(guān)系的碼,或碼的一部分。
(4)3個或3個以上實體間的一個多元聯(lián)系可以轉(zhuǎn)換為一個關(guān)系模式。與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實體碼的組合。
(5)具有相同碼的關(guān)系模式可以合并。
14.你能給出由E-R圖轉(zhuǎn)換為IMS模型的轉(zhuǎn)換規(guī)則嗎? 答:E-R圖向IMS模型的轉(zhuǎn)換規(guī)則:
(1)每個實體型轉(zhuǎn)換為記錄型,實體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項;(2)實體型之間1:n(n?1)的聯(lián)系轉(zhuǎn)換記錄型之間的有向邊;
(3)實體型之間m:n(m>1,n>1)的聯(lián)系則分解成一對多聯(lián)系,再根據(jù)(2)轉(zhuǎn)換;(4)K(K?2)個實體型之間多對多的聯(lián)系,可先轉(zhuǎn)換成多對兩個實體型之間的聯(lián)系,再根據(jù)(3)轉(zhuǎn)換。
解析:IMS是IBM公司的層次數(shù)據(jù)庫管理系統(tǒng)。IMS 模型是層次模型。E-R圖向IMS模型轉(zhuǎn)換的另一種方法是,先把E-R圖轉(zhuǎn)換為網(wǎng)狀模型,再利用IMS邏輯數(shù)據(jù)庫LDB的概念來表示網(wǎng)狀模型。詳細方法這里從略。
15.試把第一章習題12和習題13中的E-R圖轉(zhuǎn)換為DBTG模型、IMS模型、關(guān)系模型。答:下面是第一章習題 12 的 E-R 圖 : 各實體的屬性為:(簡便起見,未用圖表示)系:系編號,系名
班級:班級編號,班級名 教研室:教研室編號,教研室 學生:學號,姓名,學歷 課程:課程編號,課程名 教員:職工號,姓名,職稱 各聯(lián)系的屬性為: 選修課:成績 其他聯(lián)系無屬性。
該E-R圖的DBTG模型如下頁所示 其關(guān)系模型為:
系(系編號,系名,學校名)班級(班級編號,班級名,系編號)教研室(教研室編號,教研室,系編號)學生(學號,姓名,學歷,班級編號,導師職工號)課程(課程編號,課程名)教員(職工號,姓名,職稱,教研室編號)選課(學號,課程編號,成績)習題13的E-R圖: 各實體的屬性為:(方便起見,未用圖表示)產(chǎn)品:產(chǎn)品號,產(chǎn)品名 零件:零件號,零件名
原材料:原材料號,原材料名,類別 倉庫:合庫號,倉庫名 各聯(lián)系的屬性為: 產(chǎn)品組成:使用零件量 零件制造:使用原材料量 零件存儲:存儲量 材料存放:存放量
其DBTG模型如下頁圖所示。對應的IMS模型從略。
對應的關(guān)系模型為(其中有下橫線的屬性是主碼屬性): 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,倉庫號)零件(零件號,零件名)原材料(原材料號,原材料名,類別,倉庫號,存放量)倉庫(倉庫號,倉庫名)產(chǎn)品組成(產(chǎn)品號,零件號,使用零件量)零件組成(零件號,原材料號,使用原材料量)零件儲存(零件號,倉庫號,存儲量)16.試述邏輯設(shè)計階段中運用LRA方法優(yōu)化模型的方法和步驟。答:(從略,此題不作要求)17.試用規(guī)范化理論中有關(guān)范式的概念分析習題15中你設(shè)計的關(guān)系模型中各個關(guān)系模式的碼,它們屬于第幾范式?會產(chǎn)生什么更新異常? 答:習題15中設(shè)計的兩個關(guān)系數(shù)據(jù)庫的各個關(guān)系模式的碼都用下劃線注明,這些關(guān)系模式都只有一個碼,且都是惟一決定的因素,所以都屬于BCNF。不會產(chǎn)生更新異常現(xiàn)象。
18.規(guī)范化理論對數(shù)據(jù)庫設(shè)計有什么指導意義? 答:規(guī)范化理論為數(shù)據(jù)庫設(shè)計人員判斷關(guān)系模式的優(yōu)劣提供了理論標準,可用以指導關(guān)系數(shù)據(jù)模型的優(yōu)化,用來預測模式可能出現(xiàn)的問題,為設(shè)計人員提供了自動產(chǎn)生各種模式的算法工具,使數(shù)據(jù)庫設(shè)計工作有了嚴格的理論基礎(chǔ)(可參考《概論》上數(shù)據(jù)模型的優(yōu)化)。
19.試述數(shù)據(jù)庫物理設(shè)計的內(nèi)容和步驟。答:數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于給定的DBMS。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用要求的物理結(jié)構(gòu),就是數(shù)據(jù)庫的物理設(shè)計的主要內(nèi)容。
數(shù)據(jù)庫的物理設(shè)計步驟通常分為兩步:
(1)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu);
(2)對物理結(jié)構(gòu)進行評價,評價的重點是時間效率和空間效率。詳細參考《概論》上6.5.10。
20.你能給出關(guān)系數(shù)據(jù)庫物理設(shè)計的主要內(nèi)容嗎?例如Oracle數(shù)據(jù)庫物理設(shè)計的內(nèi)容。答:關(guān)系數(shù)據(jù)庫物理設(shè)計的內(nèi)容主要包括:(1)為關(guān)系模式選擇存取方法;(2)設(shè)計關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)。詳細參考《概論》上6.5.2和6.5.3。
有關(guān)Oracle數(shù)據(jù)庫物理設(shè)計的內(nèi)容請參考其技術(shù)資料,根據(jù)上述內(nèi)容進行總結(jié)。21.數(shù)據(jù)輸入在實施階段的重要性是什么?如何保證輸入數(shù)據(jù)的正確性? 答:數(shù)據(jù)庫是用來對數(shù)據(jù)進行存儲、管理與應用的,因此在實施階段必須將原有 系統(tǒng)中的歷史數(shù)據(jù)輸入到數(shù)據(jù)庫。數(shù)據(jù)量一般都很大,而且數(shù)據(jù)來源于部門中的各個不同的單位。數(shù)據(jù)的組織方式、結(jié)構(gòu)和格式都與新設(shè)計的數(shù)據(jù)庫系統(tǒng)有相當?shù)牟罹?,組織數(shù)據(jù)錄人就要將各類源數(shù)據(jù)從各個局部應用中抽取出來,分類轉(zhuǎn)換,最后綜合成符合新設(shè)計的數(shù)據(jù)庫結(jié)構(gòu)的形式,輸入數(shù)據(jù)庫。因此這樣的數(shù)據(jù)轉(zhuǎn)換、組織入庫的工作是相當費力費時的工作。特別是原系統(tǒng)是手工數(shù)據(jù)處理系統(tǒng)時,各類數(shù)據(jù)分散在各種不同的原始表格、憑證、單據(jù)之中,數(shù)據(jù)輸入工作量更大。
保證輸入數(shù)據(jù)正確性的方法:為提高數(shù)據(jù)輸入工作的效率和質(zhì)量,應該針對具體的應用環(huán)境設(shè)計一個數(shù)據(jù)錄入子系統(tǒng),由計算機來完成數(shù)據(jù)入庫的任務。
在源數(shù)據(jù)入庫之前要采用多種方法對它們進行檢驗,以防止不正確的數(shù)據(jù)入庫。詳細參考《概論》上6.6.1。
22.什么是數(shù)據(jù)庫的再組織和重構(gòu)造?為什么要進行數(shù)據(jù)庫的再組織和重構(gòu)造? 答:數(shù)據(jù)庫的再組織是指:按原設(shè)計要求重新安排存儲位置、回收垃圾、減少指針鏈等,以提高系統(tǒng)性能。數(shù)據(jù)庫的重構(gòu)造則是指部分修改數(shù)據(jù)庫的模式和內(nèi)模式,即修改原設(shè)計的邏輯和物理結(jié)構(gòu)。數(shù)據(jù)庫的再組織是不修改數(shù)據(jù)庫的模式和內(nèi)模式的。進行數(shù)據(jù)庫的再組織和重構(gòu)造的原因:數(shù)據(jù)庫運行一段時間后,由于記錄不斷增、刪、改,會使數(shù)據(jù)庫的物理存儲情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫性能下降,這時DBA就要對數(shù)據(jù)庫進行重組織。DBMS一般都提供用于數(shù)據(jù)重組織的實用程序。數(shù)據(jù)庫應用環(huán)境常常發(fā)生變化,如增加新的應用或新的實體,取消了某些應用,有的實體與實體間的聯(lián)系也發(fā)生了變化等,使原有的數(shù)據(jù)庫設(shè)計不能滿足新 的需求,需要調(diào)整數(shù)據(jù)庫的模式和內(nèi)模式。這就要進行數(shù)據(jù)庫重構(gòu)造。
23.現(xiàn)有一局部應用,包括兩個實體:“出版社”和“作者”,這兩個實體是多對多的聯(lián)系,請讀者自己設(shè)計適當?shù)膶傩?畫出E-R圖,再將其轉(zhuǎn)換為關(guān)系模型(包括關(guān)系名、屬性名、碼和完整性約束條件)。
答:E-R圖為: 關(guān)系模型為:
作者(作者號,姓名,年齡,性別,電話,地址)出版社(出版社號,名稱,地址,聯(lián)系電話)出版(作者號,出版社號,書的數(shù)量)出版關(guān)系的主碼作者號,出版社號分別參照作者關(guān)系的主碼作者號和出版 社關(guān)系的主碼出版社號。
24.請設(shè)計一個圖書館數(shù)據(jù)庫,此數(shù)據(jù)庫中對每個借閱者保存讀者記錄,包括:讀者號,姓名,地址,性別,年齡,單位。對每本書存有:書號,書名,作者,出版 社。對每本被借出的書存有讀者號、借出日期和應還日期。要求:給出E-R圖,再將其轉(zhuǎn)換為關(guān)系模型。
答:E-R圖為:
關(guān)系模型為:
讀者(讀者號,姓名,地址,性別,年齡,單位)書(書號,書名,作者,出版社)借書(讀者號,書號,借出日期,應還日期)
大作業(yè)
完成一個實際部門的數(shù)據(jù)庫應用系統(tǒng)設(shè)計全過程。
包括:需求調(diào)查、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫建立、數(shù)據(jù)輸入、應用系統(tǒng)設(shè)計和開發(fā)、用戶界面的設(shè)計和實現(xiàn)等。
要求:
1.人員:5-6人。2.分工:每個人擔任不同的角色,包括系統(tǒng)分析人員、系統(tǒng)設(shè)計人員、數(shù)據(jù)庫設(shè)計人員、應用系統(tǒng)開發(fā)人員、測試人員等。分工協(xié)作,共同完成設(shè)計和開發(fā)任務,從而培養(yǎng)團隊精神。
3.選擇一個合適的DBMS產(chǎn)品或者使用學校提供的DBMS產(chǎn)品,選擇合適的應用開發(fā)工具,按照設(shè)計的結(jié)果建立數(shù)據(jù)庫、開發(fā)應用系統(tǒng)、輸入數(shù)據(jù)、調(diào)試運行你們的系統(tǒng)。
4.要求寫出完整的實驗報告,包括:需求調(diào)查報告、系統(tǒng)分析報告、數(shù)據(jù)庫設(shè)計報告、應用系統(tǒng)設(shè)計報告、數(shù)據(jù)庫實施計劃、系統(tǒng)測試計劃、系統(tǒng)測試報告、用戶使用手冊等文檔。
5.向老師和其他小組運行演示開發(fā)的數(shù)據(jù)庫應用系統(tǒng),提交所有文檔。
6.集體討論、互相學習,指出各自的特點和不足,交流開發(fā)過程中的收獲和 體會。