1.設有關系R(A,B,C)和S(C,D)。與SQL語句? select A,B,D from R,S where R.C=S.C
等價的關系代數表達式是(B)
A. σR.C=S.C(πA,B,D(R×S)) ? B. πA,B,D(σR,C= S.C (R×S))
C. σR.C=S.C((πA,B R)×(πDS)) ? D. σR,C=S.C(πD((πA,BR)×S)
2、設關系R和關系S的元數分別是3和4,關系T是R與S的廣義笛卡爾積,即:T=R×S,則關系T的元數是(C)
A. 7 B. 9 C. 12 D. 16
3、數據庫設計階段分為(B)
A. 物理設計階段、邏輯設計階段、編程和調試階段
B. 概念設計階段、邏輯設計階段、物理設計階段、實施和調試階段
C. 方案設計階段、總體設計階段、個別設計和編程階段
D. 模型設計階段、程序設計階段和運行階段
4、設U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關於多值依賴的敘述中,不正確的是(C)
A. 若X→→Y,則X→→Z B. 若X→Y,則X→→Y
C. 若X→→Y,且Y′?Y,則X→→Y′ D. 若Z=Φ,則X→→Y
5、查詢優化策略中,正確的策略是(D)
A.盡可能早地執行笛卡爾積操作 B.盡可能早地執行並操作
C.盡可能早地執行差操作 D.盡可能早地執行選擇操作
6、語句delete from sc 表明(A)
A. 刪除sc中的全部記錄 B. 刪除基本表sc?
C. 刪除基本表sc中的列數據 D. 刪除基本表sc中的部分行
7、在DB應用中,壹般壹條SQL 語句可產生或處理壹組記錄,而DB主語言語句壹般壹次只能處理壹條記錄,其協調可通過哪種技術實現(B)
A. 指針 B. 遊標 C. 數組 D. 棧
8、五種基本關系代數運算是( A )
A. ∪,-,×,π和σ B. ∪,-,?,π和σ
C. ∪,∩,×,π和σ D. ∪,∩,?,π和σ
9、下列聚合函數中不忽略空值(null) 的是 ( C )\
A. SUM (列名) B. MAX (列名)? C. COUNT ( * ) D. AVG (列名)
10、在數據庫設計中,將ER圖轉換成關系數據模型的過程屬於(B)
A. 需求分析階段 B. 邏輯設計階段? C. 概念設計階段D. 物理設計階段
11.在SQL語言的SELECT語句中,實現投影操作的是哪個子句?(A)
A. select B. from C. Where D. group by
12、設屬性A是關系R的主屬性,則屬性A不能取空值(NULL)。這是(A)
A. 實體完整性規則 B. 參照完整性規則
C. 用戶定義完整性規則 D. 域完整性規則
13. 當數據庫損壞時,數據庫管理員可通過何種方式恢復數據庫( A )。
A. 事務日誌文件 B. 主數據文件
C. DELETE語句 D. 聯機幫助文件
14. 不屬於SQL Server系統全局變量的是( D )。
A. @@Error B. @@Connections
C. @@Fetch_Status D. @Records
還有六個 不知道了...
反正就是這個類型的
二、填空題
1、用樹型結構表示實體類型及實體間聯系的數據模型稱為 層次模型。 2、關系數據庫的關系演算語言是以謂詞演算為基礎的DML語言。 3、從數據庫管理系統角度看,數據庫系統通常采用三級模式結構,即數據庫系統由內模式、外模式和 模式 組成。 4、RDMBS查詢處理可分為查詢分析、查詢檢查、查詢優化和查詢執行 四個階段。 5、概念結構設計是對現實世界的壹種抽象,壹般有分析 、聚集、概括***三種抽象機制。 6、物理優化就是要選擇高效合理的操作算法或 存取路徑 以求得優化的查詢計劃。 7、將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計,概念結構設計通常有四類方法:自頂向上、自底向下、逐步擴張和混合策略。 8、在關系模式R<U,F>中若不存在這樣的碼X,屬性組Y及非屬性組Z(Z不是Y的子集)使得X→Y,Y→Z成立,且YX,則稱R∈3NF。9. 觸發器是壹種特殊的存儲過程,它可以在對壹個表上進行_插入(insert)、 _刪除(delete)__和___更新(update_____操作中的任壹種或幾種操作時被自動調用執行。
(還有壹個 .....)
三、簡答題
1、什麽叫數據與程序的物理獨立性?什麽叫數據與程序的邏輯獨立性?為什麽數據庫系統具有數據與程序的獨立性?答:數據與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的數據
類型等),由數據庫管理員對各個外模式/模式的映像做相應改變,可以使外模式保持不
變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏
輯獨立性,簡稱數據的邏輯獨立性。數據與程序的物理獨立性:當數據庫的存儲結構改變了,
由數據庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而應用程序也
不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。數據庫管理系統在三
級模式之間提供的兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理
獨立性。
2、數據庫的完整性概念與數據庫的安全性概念有什麽區別和聯系?
答:數據的完整性和安全性是兩個不同的概念,但是有壹定的聯系。前者是為了防止數據庫中存
在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In
Garba : e out )所造成的無效操作和錯誤結果。後者是保護數據庫防止惡意的破壞和非法的
存取。也就是說,安全性措施的防範對象是非法用戶和非法操作,完整性措施的防範對象是
不合語義的數據。
3、試給出多值依賴、和4NF的定義。 4、試給出函數依賴、BCNF的定義。 5、簡述嵌入式SQL語句與主語言之間的通信。首先用SQL通信區(SQL Communication Area,簡稱SQLCA)向主語言傳遞SQL語句的執行狀態信息,使主語言能夠據此控制程序流程;在程序運行中,主語言向SQL語句提供參數,使用主變量(host variable)輸入數據;同時,程序把SQL語句查詢數據庫的結果交主語言進壹步處理,其中使用主變量和遊標(cursor)向主語言輸出數據,從而實現了SQL語言的過程化工作。
SQL語句執行後,系統要反饋給應用程序若幹信息,主要包括描述系統當前工作狀態和運行環境的各種數據,這些信息將送到SQL通信區SQLCA中。應用程序從SQLCA中取出這些狀態信息,據此決定接下來執行的語句。
6、試述RDBMS查詢優化的壹般步驟。( l )把查詢轉換成
某種內部表示,通常用的內部表示是語法樹。 ( 2 )把語法樹轉換成標準(優化)形式。即
利用優化算法,把原始的語法樹轉換成優化的形式。 ( 3 )選擇低層的存取路徑。 ( 4 )生
成查詢計劃,選擇代價最小的。
7、試述RDBMS查詢優化的壹般準則。答:下面的優化策略壹般能提高查詢效率: ( l )選擇運算應盡可能先做; ( 2 )把投影運
算和選擇運算同時進行; ( 3 )把投影同其前或其後的雙目運算結合起來執行; ( 4 )把
某些選擇同在它前面要執行的笛卡兒積結合起來成為壹個連接運算; ( 5 )找出公***子表
達式; ( 6 )選取合適的連接算法。
8、什麽是數據庫的邏輯結構設計?試述其設計步驟。答:數據庫的邏輯結構設計就是把概念結構設計階段設計好的基本 E 壹 R 圖轉換為與選
用的 DBMS 產品所支持的數據模型相符合的邏輯結構。設計步驟為 : ( l )將概念結構轉換
為壹般的關系、網狀、層次模型; ( 2 )將轉換來的關系、網狀、層次模型向特定 DBMS 支持
下的數據模型轉換; ( 3 )對數據模型進行優化。
9、數據字典的內容和作用是什麽?答:數據字典是系統中各類數據描述的集合。數據字典的內容通常包括: ( l )數據項;
( 2 )數據結構; ( 3 )數據流; ( 4 )數據存儲; ( 5 )處理過程五個部分。其中數據項是
數據的最小組成單位,若幹個數據項可以組成壹個數據結構。數據字典通過對數據項和數據
結構的定義來描述數據流和數據存儲的邏輯內容。數據字典的作用:數據字典是關於數據庫
中數據的描述,在需求分析階段建立,是下壹步進行概念設計的基礎,並在數據庫設計過
程中不斷修改、充實、完蓋。
四、設計題
1、今有兩個關系模式:
職工(職工號,姓名,年齡,職務,工資,部門號)Person(pno, pname, page, ptitle, psal, dno)部門 (部門號,名稱,經理名,地址,電話號)Depart(dno, dname, dmanager, daddress, dtel)請用SQL的GRANT和REVOKE語句(加上視圖機制)完成以下授權定義或存取控制功能:
(1)用戶yong對兩個表有INSERT 和DELETE權力。
GRANT INSERT,DELETE ON Person,Depart
TO yong
(2)用戶liu對職工表有SELECT權力,對工資字段具有更新權力。
GRANT SELECT,UPDATE(psal) ON Person
TO liu
(3)用戶zhang具有修改這兩個表的結構的權力。
GRANT ALTER TABLE ON Person,Depart
TO zhang;
(4)用戶yang具有從每個部門職工中SELECT最高工資、最低工資、平均工資的權力,他不能查看每個人的工資,並具有給其他用戶授權的權力。
視圖:
CREATE VIEW psal AS
SELECT Depart.dname,MAX(psal),MIN(psal),AVG(psal)
FROM Person,Depart
WHERE Person.dno=Depart.dno
GROUP BY Person.dno
GRANT SELECT ON psal
TO yang with grant option ;
(5)撤銷各用戶yang所授予的權力 授權:
REVOKE ALL PRIVILIGES ON Person,Depart FROM YANG;
2、假設有下面兩個關系模式:職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼;部門(部門號,名稱,經理名,電話),其中部門號
為主碼。用SQL語言定義這兩個關系模式,要求在模式中完成以下完整性約束條
件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。
答
CREATE TABLE DEPT
(Deptno NUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60),
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
3、設某商業集團關於商店銷售商品的數據庫中有三個基本表: 商店SHOP(S#,SNAME,AREA,MGR_NAME)其屬性是商店編號,商店名稱,區域名,經理姓名。銷售SALE(S#,G#, QUANTITY)其屬性是商店編號,商品編號,銷售數量。
商品GOODS(G#,GNAME,PRICE)
其屬性是商品編號,商品名稱,單價。 (1)試寫出下列查詢的關系代數表達式、元組表達式和關系邏輯規則:檢索銷售“冰箱”的商店的編號和商店名稱。解:關系代數表達式:πS#,SNAME(σGNAME='冰箱'(SHOP?SALE?GOODS))
元組表達式:{ t | (?u) (?v) (?w) (SHOP (u)∧SALE (v)∧GOODS (w)
∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]∧t[2]=u[2])}
關系邏輯規則:W(u1,u2)?SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3)
(2)試寫出上面第(1)問的SELECT語句表達形式。解:SELECT語句如下:
SELECT A.S#,SNAME
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';
(3)試寫出下列操作的SQL語句:從SALE表中,把“開開商店”中銷售單價高於1000元的商品的銷售元組全部刪除。解:DELETE FROM SALE
WHERE S# IN(SELECT S#
FROM SHOP
WHERE SNAME='開開商店')
AND G# IN(SELECT G#
FROM GOODS
WHERE PRICE>1000);
(4)寫壹個斷言,要求區域名為“EAST”的商店裏銷售商品的單價不能低於100元。解:CREATE ASSERTION ASSE8 CHECK
(100<=ALL(SELECT PRICE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST'));
或 CREATE ASSERTION ASSE8 CHECK
(NOT EXISTS(SELECT *
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G#
AND AREA='EAST' AND PRICE<100));
(5)試寫出下列操作的SQL語句: 統計區域名為“EAST”的所有商店銷售的每壹種商品的總數量和總價值。 要求顯示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其屬性為商品編號、商品名稱、銷售數量、銷售價值。解:SELECT C.G#,GNAME,SUM(QUANTITY)AS SUM_QUANTITY,
PRICE*SUM(QUANTITY)AS SUM_VALUE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST'
GROUP BY C.G#,GNAME;
(註:SELECT子句中的屬性C.G#,GNAME應在分組子句中出現)
4、請設計壹個圖書館數據庫,此數據庫中對每個借閱者保存讀者記錄,包括:讀者號,姓名,地址,性別,年齡,單位。對每本書存有:書號,書名,作者,出版社。對
每本被借出的書存有讀者號、借出日期和應還日期。要求:給出E 壹R 圖,再將其轉換為關系模型。
答:
關系模型為:讀者(讀者號,姓名,地址,性別書(書號,書名,作者,出版社)借書
(讀者號,書號,借出日期,年齡,單位)應還日期)
6、設有壹個SPJ數據庫,包括S,P,J,SPJ四個關系模式:供應商(供應商代碼,供應商姓名,供應商狀態,供應商所在城市)S(SNO,SNAME,STATUS,CITY)
零件(零件代碼,零件名,顏色,重量) P(PNO,PNAME,COLOR。WEIGHT) 工程項目(工程項目代碼,工程項目名,工程項目所在城市) J(JNO,JNAME,CITY) 供應情況(供應商代碼,零件代碼,工程項目代碼,供應數量) SPJ(SNO,PNO,JNO,QTY) 試用關系代數和SQL語言完成下列查詢。 (1)求供應工程J1零件的供應商號碼SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1'
(2)求供應工程J1零件P1的供應商號碼SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1';
(3)求供應工程J1零件為紅色的供應商號碼SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ PNO=P PNO AND COLOR='紅';
(4)求沒有使用天津供應商生產的紅色零件的工程號JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM
SPJ,P,S WHERE S.CITY=' 天津 ' AND COLOR=' 紅 ' AND S.SNO=SPJ.SNO AND
P.PNO=SPJ.PNO);
(5)求至少用了供應商S1所供應的全部零件的工程號JNO:由於 VFP 不允許子查詢嵌套太深,將查詢分為兩步
A、查詢S1 供應商供應的零件號
SELECT DIST PNO FROM SPJ WHERE SNO='S1'結果是(P1,P2);
B、查詢哪壹個工程既使用 P1 零件又使用 P2 零件。
SELECT JNO FROM SPJ WHERE PNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2');
是否具有損連接的分解