當前位置:首頁 » 數據倉庫 » 資料庫基礎考試題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫基礎考試題

發布時間: 2023-08-04 17:39:21

1. 資料庫習題

1、數據模型包含三個方面的內容:___(數據結構)____、對數據的操作、____(完整性規則)____________。。
2、關系是以___(二維表) __的結構來表示實體與實體間的聯系。
3、資料庫系統的三級模式結構由外模式、 (模式 ) 和內模式組成。
4、查詢設計器分為上下兩部分,上半部分是表的顯示區,下半部分是 ( 查詢設計區) 。
5、表操作共有三種視圖,分別是設計視圖,列印視圖, (版面預覽) 視圖。
6、( 控制項 ) 是窗體上用於顯示數據、執行操作、裝飾窗體的對象。
7、數字欄位類型又分為整型、 (長整型) 、單精度類型、 (雙精度類型) 等類型。
8、 (某一具體應用所涉及的數據必須滿足的語義要求) 是指向表中輸入數據時設置的欄位值所要遵循的約束條件,即用戶自定義完整性約束。
9、索引的類型有 (唯一索引) 、 (主鍵索引) 、( 聚集索引/非聚集索引) 。
10、窗體通常是由 ( 窗體主體) 、頁腳及 ( 頁眉) 3部分組成。
三、簡答題
1、簡述什麼是查詢以及查詢的作用?
資料庫查詢是從指定的表或視圖中提取滿足條件的記錄,然後按照想要得到的輸出類型定向輸出查詢結果,諸如瀏覽器、報表、表、標簽等。

2、關系模型的主要特點是什麼?
優點:
·關系模型是建立在嚴格的數學概念的基礎上的。
·無論實體還是實體之間的聯系都用關系來表示。對數據的檢索結果也是關系(即表),因此 概念單一,其數據結構簡單、清晰。
·關系模型的存取路徑對用戶透明,從而具有更高的數據獨立性,更好的安全保密性,也簡化了程序員的工作和資料庫開發建立的工作。
缺點:
由於存取路徑對用戶透明,查詢效率往往不如非關系數據模型。因此為了提高性能,必須對用戶的查詢請求進行優化,增加了開發資料庫管理系統的負擔。

3、解釋屬性、事件和方法的概念?
對象的具體特徵稱為「屬性」
某一個觸發的動作成為事件
觸發事件後,具體的處理措施稱之為「方法」。

2. 【資料庫歷年期末考試題】資料庫原理期末考試題

2005-2006(2)資料庫系統原理試題(A)參考答案及評分標准

一、填空題(每空1分,共14分)

1、 數據結構

2、 元組

3、 實體完整性 參照完整性

4、 1NF

5、 數據字典

6、 B R +BR B S B S +BR B S

7、 可串列的

8、 RAID

9、 動態Hash 方法 可擴展Hash 方法

10、 並發控制技術 資料庫恢復技術

二、選擇題(每題1分,共10分)

1、 D 2、A 3、A 4、B 5、C 6、C 7、C 8、C 9、C 10、A

三、簡答題(每題4分,共16分)

1. 可以表示任何關系代數操作的5種基本代數操作是什麼?

答: ⋃ , - , ⨯ , σ , π

註:1個1分,寫對4個即可得4分

2. 關系資料庫中常用的連接操作的實現演算法有哪些?

答:循環嵌套連接演算法(1分)、排序合並連接演算法(1分)、hash 連接演算法(1分)、索引連接演算法(1分)。

3. 簡述B 樹和B+樹的區別。

答:(1)B+樹的葉子節點鏈在一起(2分)。(2)B+樹的內節點不存放數據指針(2分)。

4. 什麼是資料庫事務?什麼是資料庫事務的原子性?

答:一個存取或更改資料庫的程序的運行稱為資料庫事務(2分)。事務中的所有操作要麼全部被成功的完成且這些操作的結果被永久地存儲到資料庫中,要麼這

個事務對資料庫和其它事務沒有任何影響。這種性質稱為事務的原子性(2分)。

四、綜合題(每題12分,共60分)

(一)已知關系S ,P ,J ,SPJ 的關系模式為:

S (SNO ,SN ,CITY )

P (PNO ,PN ,COLOR )

J (JNO ,JN ,CITY )

SPJ (SNO ,JNO ,PNO ,QTY )

其中:SNO 為供應商號,SN 為供應商姓名,CITY 為所在城市;PNO 為零件號,PN 為 零件名稱,COLOR 為顏色;JNO 為工程項目號,JN 為工程項目名稱;QTY 為數量。

1、 試用

∏JN ((∏JNO ,PNO (SPJ )÷ ∏PNO (P ∏JNO ,JN (J ))(4分)

2、試用完成下列查詢:把零件號為P2的零件重量增加5,顏色改為黃色。

UPDATE P

SET WEIGHT=WEIGHT+5,COLOR=』黃色』

WHERE PNO=』P2』; (4分)

3、試用完成下列查詢:取出1個以上供應商提供的零件號。

SELECT PNO

FROM SPJ

GROUP BY PNO

HA VING COUNT (SNO )≥1 (4分)

(二) 設某商業集團資料庫有三個實體集。一是「商店」實體集,屬性有商店編號、商店名、地址等;二是「商品」 實體集,屬性有商品編號、商品名、規格、單價等;三是「供應商」 實體集,屬性有供應商編號、供應商名、地址等。

商店與商品間存在「銷售」聯系,每個商店可銷售多種商品,每個商品也可放在多個商店檔信胡銷售,每個商店行攔銷售一種商品,有月銷售量;供應商與商品間存在著「供應」 聯系,每個供應商供應多種商品,每種商品可以向多個供應商訂購。供應商供應商品給每個商店有月供應量。

(1)試畫出E-R 圖,並在圖上註明屬性。

(2) 將E--R 圖轉換成關系模型,並指明主鍵和外鍵。

(1)E-R 圖如圖所示。

(6分,其中實體2分、聯系2分、屬性2分)

(2)此E--R 圖轉換成的關系模型如下

商店(商店編號,商店名,地址) 主碼為商店編號

供應商(供應商編號,供應商名,地址) 主碼為供應商編號

商品(商品編號,商品名,規格,單價)

銷售(商店編號,商品號,月銷售量)

主碼為(商店編號,商品號),外碼為商店編號和商品號

供應(供應商編號,商店編號,月供應量)

主碼為(供應商編號,商店編號),外碼為供應商編號,商店編號

共6分,由於學生的寫法多樣,教師根據具體情況給分。

(三)1.設關系模式R 其中: U={A, B, C, D, E, P}

F={A→B,C→P,E→A,CE→D}

求出R 的所有候選關鍵字。

解:由計算可知: (CE)的閉包 = {ABCDEP}

而 C 的閉包={CP}

E 的閉包={ABE} (2分)

所以:R 的候選鍵為坦配 : CE 。 (2分)

2.判斷下面的關系模式最高屬於第幾範式) ,並說明理由。

R({A,B,C},{AC→B,AB→C,B→C})

答:是1NF ,(2分) 因為該關系的候選鍵之一為AB, 又因為有B→C,存在部分函數依賴(2分), 所以, 該關系為1NF.

3. 設關系R 具有屬性集合{O, I, S, A, B},函數依賴集合{I->B, IS->A, A->O}。把R 分解成

3NF ,並使其具有無損連接性和函數依賴保持性。

答:{IB,ISA,AO}(4分)

(四) 設文件F 具有10000個記錄,每個記錄50位元組,其中10位元組用來表示文件的鍵值。每個磁碟塊大小1000位元組,指向磁碟塊的指針佔5位元組,不允許記錄跨兩個塊。

(1) 如果為文件F 建立簡單hash 索引,使用100個hash 桶,則桶目錄需要多

少磁碟塊?平均每個桶需要多少磁碟塊?

答:(1)1 (2)10000個記錄/100個桶=100個記錄每桶,(2分)100個記

錄×50位元組每記錄/1000位元組每塊=5塊(2分)

(2) 如果為文件F 建立B +樹索引,各磁碟塊盡量裝滿,需要多少磁碟塊存儲索

引?

答:求秩D :5D+10(D+1) D=67 (2分)

即每個葉節點能保存D-1=66個鍵值。所以葉節點數為⎡10000/66⎤

=152個。(2分)

上一層的內節點同樣有67個指針,是一個67叉的節點,

⎡10000/67⎤=3,⎡3/67⎤=1(2分)

因此B+樹的節點總數為152+3+1=156個。即需要156個磁碟塊

存儲B+樹索引。(2分)

(五) 對於教學資料庫S(S#,SNAME ,AGE ,SEX) ,SC(S#,C#,GRADE) ,C(C#,CNAME ,TEACHER) 。現有一個查詢:檢索至少學習W ANG 老師所授一門課程的男學生學號和姓名。

1. 給出該查詢的關系代數表達式,並畫出該表達式構成的語法樹。

2. 使用啟發式優化演算法對語法樹進行優化,得到優化的語法樹。

解:(1) 關系代數表達式:

∏ S#,SNAME (σS.S#=SC.S#∧SC.C#=C.C#∧S.SEX=』男』 ∧teacher=』wang』(S×SC×C )) (3分)

∏ S#,SNAME

S.S#=SC.S#∧SC.C#=C.C#∧S.SEX=』男』 ∧teacher=』wang』

(3分)

∏ S#,SNAME σSC.C#=C.C#

σteacher=』wang』

∏ S#,C# S.SEX=』男』

s

結果樹(3分) c sc (3分)

3. 幾道資料庫的基礎試題,求大神指點,希望給出過程

1、檢索年齡大於20歲的女同學的學號和姓名;
select sno,sname from s where sage>20 and ssex='女'
2、檢索學習了課程號』C1』的學生學號,姓名與成績並按成績遞減排序;
select sname,grade from s join sc on s.sno=sc.sno join c on sc.cno=c.no and name='C1' order by grade desc

M: 10 9 8 7 6 5 4 3 2 1
N: 0

2。 輸出結果為: abc cw

4. 資料庫試題

一.填空題.
8.一個表中可能有多個關鍵字,但在實際的應用中只能選擇一個,被選用的關鍵字稱為 __主關鍵字___
用來求滿足條件的記錄行數的函數是__count___。
二.選擇題
10.在T-sql中使用(C)聲明變數:
A.set B.select C.declare D.print
11.在下面關於資料庫的說法中,錯誤的是(D)。
A.資料庫有較高的安全性
B.資料庫有較高的數據獨立性
C.資料庫中的數據可被不同的用戶共享
D.資料庫沒有數據冗餘

12.對於存儲過程,下列那一項說法是錯誤的:(B)
A. 存儲過程可以沒有輸入參數
B. 存儲過程只能有一個輸入參數
C. 存儲過程可以有多個輸入參數
D. 存儲過程即可以有輸入參數又可以有輸出參數

15.SQL Server 2000是基於C/S體系結構的(B)型資料庫管理系統。
A. 層次 B. 關系 C. 網狀 D.樹型

三.判斷題
10.在修改檢索結果中的列標題時,表中的列名並沒有改變。(對)
7.在企業管理器中,必須先注冊伺服器後才能對其進行管理。(對)
3.使用BEGIN TRANSACTION開始的事務,必須使用ROLLBACK TRANSACTION進行回滾。 (對)
6.使用T-SQL編寫程序時,假設已聲明了兩個整型變數@i和@j,可以使用set @i=5,@j=10語句給這兩個變數賦值。(對)
8.兩層Client/Server體系結構比三層Client/Server體系結構更安全可靠。(錯)

5. IBM認證資料庫考試試題

(1)已知表T1中有2行數據,T2中有3行數據,執行SQL語句

“select a.* from T1 a,T2 b”後,返回的行數為______

A、2行

B、3行

C、5行

D、6行

多表查詢沒有指定連接條件,會導致笛卡爾積的出現,返回行數等於2張表的行數乘積,返回6行記錄

考察:對多表連接、笛卡爾積的理解

答案:A

(2)、已知表T1和T2的欄位定義完全相同,T1,T2中各有5條不同的數據,其中T1有2條數據存在於表T2中,語句“select * from T1 union select * from T2”

返回的行數為_______

A、8行

B、10行

C、3行

D、12行

第二題? UNION在進行表鏈接後會篩選掉重復的記錄,所以在表鏈接後會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。

考察:UNION 的理解

答案: A

(3)、 已知表T1含有欄位ID、CourseID和Score,且數據為

ID CourseID Score

3 1 90

2 1 85

2 2 90

3 2 80

則語句“select id,sum(ScorE) from T1 group by ID”的執行結果為_________

A、 ID sum(ScorE)

—– ? ———-

3 ? 170

2 ? 175

B、 ID sum(ScorE)

—– ? ———-

2 ? 175

3 ? 170

C、 ID sum(ScorE)

—– ? ———-

2 ? 170

3 ? 175

D、 ID sum(ScorE)

—– ? ———-

3 ? 175

2 170

第三題 GROUP BY 對按照ID欄位進行分組,同時對ID相同欄位的ScorE進行求和,GROUP by 會自動對結果集進行排序所以答案選B

考察:group by 的理解

答案: B

(4)、電話號碼表t_phonebook中含有100萬條數據,其中號碼欄位PhoneNo上創建了唯一索引,且電話號碼全部由數字組成,要統計號碼頭為321的.電話號碼的數量,下面寫法執行速度最慢的是_________

A、 select count(*) from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’

B、 select count(*) from t_phonebook where phoneno like ‘321%’

C、 select count(*) from t_phonebook where substring(phoneno,1,3) = ‘321’

A>或者<操作符會採用索引查找

B:LIKE通配符在XXX%情況下會應用索引,如果在%xxx%等情況下不會應用索引

答案: C:採用函數處理的欄位不能利用索引,例如substr()? 這個題好像寫成java的函數了

答案: C

(5)、已知表tbl中欄位land_ID建有索引,欄位cust_id建有唯一索引,下列語句查詢邏輯相同,其中執行效率最優的是

A、 SELECT * FROM tbl

WHERE land_id > 750

or (cust_id=180 or cust_id=560)

B、 SELECT * FROM tbl

WHERE (cust_id=180 or cust_id=560)

or land_id > 750

C、 SELECT * FROM tbl WHERE land_id > 750

UNION

SELECT * FROM tbl WHERE cust_id = 180

UNION

SELECT * FROM tbl WHERE cust_id = 560

D、 SELECT * FROM tbl WHERE land_id > 750

UNION

( SELECT * FROM tbl WHERE cust_id = 180

UNION ALL

SELECT * FROM tbl WHERE cust_id = 560

)

C/D相比較而言,D的執行效率更高一些

UNION在進行表鏈接後會篩選掉重復的記錄,所以在表鏈接後會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。實際大部分應用中是不會產生重復的記錄

採用UNION ALL操作符替代UNION,因為UNION ALL操作只是簡單的將兩個結果合並後就返回。

(6)、員工技能表Staffskill結構如下,Staff和Skill欄位建有唯一約束

staff VARCHAR2(10),

skill VARCHAR2(10)

哪條語句可以查詢同時擁有技能A和技能B的員工

A、 select staff from Staffskill where skill=’A’ OR skill=’B’

B、 select staff from Staffskill where skill=’A’ AND skill=’B’

C、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff

D、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff having count(*)>1

答案:D

(7)員工表staff表結構如下

staffNo varchar2(10),

Email varchar2(50)

哪一個SQL語句查詢出沒有E_mail地址的員工號

A、select staffno from Staff where Email = NULL

B、select staffno from Staff where Email <> NULL

C、select staffno from Staff where Email is null

D、select staffno from Staff where Email is not null

答案: C

(8)Oracle資料庫啟動步驟的順序為

1.Mount? 2.Open? 3.Nomount

A、3-1-2

B、2-3-1

C、2-1-3

D、3-2-1

答案:A

(9)存在兩個結構相同的資料庫表T1(col1,col2,col3)、T2(col1,col2,col3),寫出一SQL語句將所有T1數據導入到T2表

A、select col1,col2,col3 from T1 INTO T2 (col1,col2,col3)

B、INSERT T1 (col1,col2,col3) INTO T2(col1,col2,col3)

C、insert into T2 (col1,col2,col3) AS select col1,col2,col3 from T1;

D、insert into T2 (col1,col2,col3) select col1,col2,col3 from T1;

答案: D

10)一個表的欄位為varchar2,如果建表時沒有指定長度,則默認長度為:

A、1

B、25

C、38

D、255

E、4000

F、建表時varchar2類型欄位必須指定長度

答案:F

(11)用TRUNCATE和DELETE語句刪除表中數據的區別?

A、TRUNCATE命令不記錄日誌

B、TRUNCATE命令記錄日誌

C、DELETE命令不記錄日誌

答案:A

(12)如下查詢語句SELECT id_number,100/quantity from inventory如果quantity為空,則查詢語句的第二個欄位將返回

A、 a space

B、 a null value

C、 a value of 0

D、 a value of 100

E、 the keywork null

答案:B

(13)如下語句:SELECT i.id_number,m.id_number FROM inventory i,manufacturer m

WHERE i.manufacturer_id = m.id_number

Order by inventory.description

執行時是錯誤的,請問以下措施哪個能夠改正這個錯誤?

A 在order by的子句中使用表的別名

B 在where子句中去掉表的別名

C 在where子句中用表名代替表的別名

D 在order by子句中去掉表名,只要欄位名稱即可

(如果2張表中,不同時存在欄位名為description的話,D答案也是正確的)

答案:A

14)A表欄位a 類型int中有100條記錄,值分別為1至100。如下語句

SELECT a FROM A

WHERE A BETWEEN 1 AND 50

OR (A IN (25,70,95)

AND A BETWEEN 25 AND 75)

則如下哪個值在這個sql語句返回的結果集中

A、30? B、51? C、75? D、95

答案:A

15) 變數v_time = ‘23-MAY-00’,如下那條語句返回值為‘01-JAN-00’?

A SELECT ROUND(V_TIME,’DAY’) FROM DUAL;

B SELECT ROUND(V_TIME,’YEAR’) FROM DUAL;

C SELECT ROUND(V_TIME,’MONTH’) FROM DUAL;

D SELECT ROUND(TO_CHAR(V_TIME,’YYYY’)) FROM DUAL;

答案:B

16)關於索引(index)的說法哪些是錯誤?

A、創建索引能提高數據插入的性能

B、索引應該根據具體的檢索需求來創建,在選擇性好的列上創建索引

C、索引並非越多越好

D、建立索引可使檢索操作更迅速

答案: A

(17)指出下面sql語句的錯誤之處:

select id_number “Part Number”,sum(price) “price” from inventory

where price > 50

group by “Part Number”

order by 2;

A、order by 2

B、from inventory

C、 where price > 50

D、group by “Part Number”

答案:D

(18)如下語句

if v_num > 5 then

v_example := 1;

elsif v_num > 10 then

v_example := 2;

elsif v_num < 20 then

v_example := 3;

elsif v_num < 39 then

v_example := 4;

else? v_example := 5;

如果v_num = 37,則v_example的值是多少?

A、1 ? B、2 C、3 D、4 E、5

答案:A