【正文】
。數(shù)據(jù)庫技術39。解:除法(4)檢索不選修“C1”課程的學生學號,姓名和專業(yè)。C139。解:П學號,姓名,專業(yè)(學生)П學號,姓名,專業(yè)(σ分數(shù)60(學生∞學習)) 第3章 關系數(shù)據(jù)庫標準語言SQL一、 基本概念題1. SQL語言有什么特點?答:(1)語言功能的一體化(2)模式結構的一體化(3)面向集合的操作方式(4)自含式語言(交互式語言),又是嵌入式語言兩種使用方式、同一語法結構(5)語言簡潔、易學易用(6)高度非過程化2. 試指出SQL語言中基本表和視圖的區(qū)別和聯(lián)系是什么?答:一個視圖雖然也是一個關系,但是它與基本表有著本質的區(qū)別。在導出時,給出一個視圖的定義,此定義存放在數(shù)據(jù)字典中,但沒有真正執(zhí)行此定義。因此,視圖是虛表。4. 嵌入式SQL語言需解決的幾個問題是什么?怎么解決?答:使用嵌入式SQL必須解決以下幾個問題:⑴ 預編譯器不能識別和接受 SQL語句,因此,嵌入式程序中,應有區(qū)分 SQL語句與宿主語言語句的標記。 ⑵ DBMS和宿主語言程序(程序工作單元)如何進行信息傳遞。 ⑶ 一條SQL語句原則上可產生或處理一組記錄(集合),而宿主語言一次只能處理一個記錄,必須協(xié)調這兩種處理方式。5. 什么是游標?使用游標有哪幾個步驟?答:游標是系統(tǒng)為用戶的查詢結果開辟帶指針的數(shù)據(jù)緩沖區(qū),存放SQL的查詢結果,每個游標有一個單獨的名字。6. 嵌入式SQL語言在什么情況下需要使用游標?什么情況下不需要使用游標?答:不需要使用游標的語句有: .說明性語句;.數(shù)據(jù)定義語句;. 數(shù)據(jù)控制語句;.INSERT語句.查詢結果為單記錄的SELECT語句 . 對滿足條件的當前記錄(或記錄集),一次性進行修改或刪除的UPDATE和 DELETE語句(有些書上把 UPDATE或 DELETE語句這種使用形式稱為非CURRENT形式)。也稱為CURRENT形式的UPDATE、DELETE語句*7. 什么是TransactSQL?它在哪些方面增加了標準SQL的功能?答:TransactSQL 的縮寫為TSQL,TSQL是Microsoft 公司的SQL Server的數(shù)據(jù)庫語言,它是對標準SQL語言的擴充。8. 什么是觸發(fā)器?觸發(fā)器的主要優(yōu)點是什么?答:所謂觸發(fā)器就是一類由事件驅動的特殊過程(特殊類型的存儲過程),當一個觸發(fā)器建立后,它作為一個數(shù)據(jù)庫對象被存儲。觸發(fā)器一旦由某個用戶建立,任何用戶對該觸發(fā)器指定的數(shù)據(jù)進行增、刪或改操作時,DBMS系統(tǒng)將自動激活相應的觸發(fā)器,定義在觸發(fā)器中的功能將被DBMS執(zhí)行,在核心層進行集中的完整性控制。⑵ 和約束相比,觸發(fā)器提供了更多的靈活性。⑶ 無論對表中的數(shù)據(jù)進行何種更新(增、刪、改操作),相應的觸發(fā)器都能被激活,對數(shù)據(jù)實施完整性檢查和處理。9. 在SQL SERVER中定義觸發(fā)器時可使用系統(tǒng)提供的兩張?zhí)厥獾呐R時表inserted和deleted,這兩個表的結構如何確定?作用是什么?答:兩張表與創(chuàng)建觸發(fā)器的表有相同的結構?! 。脩舨荒苤苯有薷脑摫碇械臄?shù)據(jù)。10. 什么是存儲過程?存儲過程有哪些特點?答:存儲過程是存放在數(shù)據(jù)庫服務器上的預先定義與編譯好的SQL語句集合,是一個獨立的數(shù)據(jù)庫對象。⑵ 由于存儲過程在第一次執(zhí)行之后,就駐存在高速緩存存儲器中,減少了執(zhí)行SQL語句時的句法分析和查詢優(yōu)化的時間,提高了系統(tǒng)的執(zhí)行效率。如果用戶被授予執(zhí)行存儲過程的權限,那么既使該用戶沒有執(zhí)行訪問在該存儲過程中所參考的表或者視圖的權限,該用戶也可以執(zhí)行該存儲過程。由于存儲過程是存放在服務器端的,應用程序(客戶端)只需向服務器發(fā)出一次請求調用一個存儲過程,服務器上就可一次執(zhí)行一批SQL命令,中間結果不用送回客戶端,大大降低了網絡流量和服務器的開銷。二、 單項選擇題ACAAD、BDA三、 填空題1. SQL語言提供數(shù)據(jù)庫定義、__數(shù)據(jù)操作______、數(shù)據(jù)控制等功能。3.在各類視圖中,一般_單表行列子集_視圖是可更新視圖。以下7題使用如下的關系表R、S和T:R(BH,XM,XB,DWH)S(DWH,DWM)T(BH,XM,XB,DWH)5. 實現(xiàn)∏XM,DWH(σXB=‘女’(R))的SQL語句是SELECT XM,DWH FROM R WHERE XB=’女’。7. 實現(xiàn)∏BH,XM,XB,DWM(σXB=‘男’∧=(RS))的SQL語句是 SELECT , FROM R,S WHERE = and =’男’ 。9. 觸發(fā)器一旦由某個用戶建立,任何用戶對該觸發(fā)器指定的數(shù)據(jù)進行增、刪或改操作時,DBMS系統(tǒng)將__自動_執(zhí)行定義在觸發(fā)器中的功能。四、 編程題① create table 借閱(借書證號 char(3), 總編號 char(6), 借書日期 datetime,primary key(借書證號, 總編號),F(xiàn)OREIGN KEY(借書證號) REFERENCES 讀者(借書證號),F(xiàn)OREIGN KEY(總編號) REFERENCES圖書(總編號))② alter table讀者 add constraint c1 check(性別 in(‘男’,’女’))③ create unique index bookidx on 圖書(總編號 desc)④ select * from 圖書 where 出版單位=‘清華大學出版社’ order by 單價 desc⑤ select 圖書* from 圖書,借閱 where 圖書. 總編號=借閱. 總編號 and 單價17⑥ select 總編號 from 圖書 where 單價(select max(單價) from 圖書 where 出版單位=‘清華大學出版社’)⑦ select 出版單位,count(借書證號),sum(單價) from 圖書 group by 出版單位 having count(借書證號)5⑧⑨ insert into 借閱 values(‘006’,‘010206’,’20001216’) update 圖書 set 單價=單價+5 where 出版單位=‘高等教育出版社’1delete from 借閱 where ‘張三’= (select 作者from 圖書WHERE 圖書. 總編號=借閱. 總編號)1create view dzview(借書證號,姓名,性別, 單位) as select 讀者. 借書證號,姓名,性別, 單位 from 圖書,讀者,借閱 where 讀者. 借書證號=借閱. 借書證號and 圖書. 總編號=借閱. 總編號 and 出版單位=‘清華大學出版社’and 單位=‘計算機系’13 grant select,update(借書日期) on 借閱 to 張軍*二、 DC三、 create trigger t1on借閱 for deleteasupdate讀者 set 借閱冊數(shù)=借閱冊數(shù)1where =(select 書號 from deleted where 讀者. 總編號= deleted . 總編號) create procedure p1 n char(3), t dadatimeas select * from借閱 where 借書證號=n and 借書日期=t第4章 關系數(shù)據(jù)理論一、 基本概念題1. 什么樣的關系模式是一個不好的關系模式呢?其主要存在哪些問題?請舉例說明.答:不好的關系模式有如下的一些問題:(1)數(shù)據(jù)冗余(2)更新異常(3)插入異常(4)刪除異常2. 簡述Armstrong 公理系統(tǒng)。X205。A2:增廣律:若X→Y為F所蘊函,且Z是U的子集,即Z205。式中XZ和YZ是X∪Z 和 Y∪Z的簡寫。3. 什么叫關系的規(guī)范化?各種范式之間的聯(lián)系是什么?答:不好的關系模式導致關系操作異常,解決的辦法是進行關系模式的合理分解,也就是進行關系模式的規(guī)范化。范式提供了研究關