數據庫經典簡答題分析

 

1.主鍵約束與唯一鍵約束的異同.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

相同:它們都屬於實體完整性約束.

不同點:

(1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。
(2)
可以把唯一性約束放在一個或者多個列上,這些列或列的組合必須有唯一的。但是,唯一性約束所在的列並不是表的主鍵列。
(3)
唯一性約束強制在指定的列上創建一個唯一性索引。在默認情況下,創建唯一性的非聚簇索引,但是,也可以指定所創建的索引是聚簇索引。

(4)建立主鍵的目的是讓外鍵來引用.

(5)一個表最多隻有一個主鍵,但可以有很多唯一鍵

2.簡述C/S體系結構的基本思想

C/S體系結構的數據庫,由兩部分組成,即客戶應用程序和數據庫服務器程序,稱爲前臺程序與後臺程序。一旦服務器程序被啓動,就隨時等待響應客戶程序發來的請求;客戶程序運行在用戶自己的電腦上,對應於服務器電腦,可稱爲客戶電腦。當需要對數據庫中的數據進行任何操作時,客戶程序就自動地尋找服務器程序,並向其發出請求,服務器程序根據預定的規則作出應答,送回結果。

  在典型的C/S數據庫應用中,數據的儲存管理功能,是由服務器程序獨立進行的,前臺應用只要不能違反的規則,都在服務器程序中集中實現,對於工作在前臺程序上的最終用戶是透明的,他們無須過問(通常也無法干涉)這背後的過程,就可以完成所需工作。在客戶服務器架構的應用中,前臺程序可以變的非常瘦小,大部分事情都交給了服務器和網絡。在C/S體系的下,數據庫真正變成了公共、專業化的倉庫,受到獨立的專門管理。

3.備份的四種方式是什麼?

(1)完全數據庫備份就是備份數據庫中的所有數據和結構.

(2)增量備份是備份自從上一次完全數據庫備份之後改變的數據.可以降低數據庫恢復所需要的時間.

(3)事務日誌備份:備份數據庫事務日誌的變化過程.當執行完全數據庫備份之後,可以執行事務日誌備份.

(4)對於海量數據庫,應該執行數據庫文件或文件組備份.不備份整個數據庫.

4.試舉出說明SQL語言中游標(CURSOR)的使用步驟.

使用遊標有四種基本的步驟:聲明遊標、打開遊標、提取數據、關閉遊標.

(1)聲明遊標 :象使用其它類型的變量一樣,使用一個遊標之前,首先應當聲明它。遊標的聲明包括兩個部分:遊標的名稱;這個遊標所用到的SQL語句。

(2)打開遊標: 聲明瞭遊標後在作其它操作之前,必須打開它。打開遊標是執行與其相關的一段SQL語句,open mycousor

(3)提取數據:已經聲明並打開一個遊標後,我們就可以將數據放入任意的變量中,FETCH語句中您可以指定遊標的名稱和目標變量的名稱.

(4)在遊標操作的最後要關閉遊標, ,以使系統釋放遊標佔用的資源。

5.隨着應用系統中的數據量的增加,數據庫的空閒空間越來越少,怎樣擴大數據庫的大小?

可根據在創建數據庫時所定義的增長參數,自動擴充數據庫。通過在現有的數據庫文件上分配其它的文件空間,或者在另一個新文件上分配空間,還可以手動擴充數據庫。如果現有的文件已經充滿,則可能需要擴充數據或事務日誌空間。

擴充數據庫時,必須按至少 1 MB 增加該數據庫的大小。擴充數據庫的權限默認授予數據庫所有者,並自動與數據庫所有者身份一起傳輸。數據庫擴充後,數據或事務日誌文件立即可以使用新空間,這取決於哪個文件進行了擴充。

在擴充數據庫時,建議指定文件的最大允許增長的大小。這樣做可以防止文件無限制地增大,以至用盡整個磁盤空間。若要指定文件的最大大小,請在使用SQL Server 企業管理器內的/"屬性/"對話框創建數據庫時,使用 CREATE DATABASE 語句的 MAXSIZE 參數或者/"將文件增長限制爲 (MB)/"選項。

使用 ALTER DATABASE 語句和 MODIFY FILE 子句更改 tempdb 數據庫,以更改 tempdb 中每個文件的物理文件名,使之引用新的物理位置(例如新磁盤)。

展開/"數據庫/"文件夾,右擊要增加大小的數據庫,然後單擊/"屬性/"命令。若要增加數據空間,單擊/"常規/"選項卡。若要增加事務日誌空間,單擊/"事務日誌/"選項卡。

若要添加新文件,單擊下一個空行,在/"文件名/"列中輸入將容納附加空間的文件名。

還可以進行收縮數據庫.

.

1.select  name,class from card where cno in

(select cno from borrow where bno in

(select bno from books where bname='b2'))

 

 

2.select cno,bno,rdate from borrow where rdate-getdate()>0

 

3. select bname, author from books where price=

    (select max(price) from books)

 

4.select cno from borrow where cno=

(select cno from books where bno=borrow.bno and bname='計算方法') and cno!= (select cno from borrow where cno=

(select cno from books where bno=borrow.bno and bname='計算方法習題集'))

Order by cno desc

發佈了57 篇原創文章 · 獲贊 6 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章