(一)數據庫的發展歷史分哪幾個階段?各有什么特點
答:數據庫的發展歷史經歷了人工管理、文件系統和數據庫系統三個發展階段。
人工管理數據具有如下特點:
1、數據不保存
2、數據需要由應用程序自己管理,沒有相應的軟件系統負責數據的管理工作
3、數據不共享
4、數據不具有獨立性,數據的邏輯結構或物理結構發生變化后,必須對應用程序做相應的修改,這就進一步加重了程序員的負擔。
文件系統階段特點為:
1、數據可以長期保存
2、由專門的軟件即文件系統進行數據管理,程序和數據之間由軟件提供的存取方法進行轉換,使應用程序與數據之間有了一定的獨立性,程序員可以不必過多地考慮物理細節,將精力集中于算法。
3、數據共享性差
4、數據獨立性低
數據庫系統階段特點為:
1、數據結構化
2、數據的共享性好,冗余度低
3、數據獨立性高
4、數據由DBMS統一管理和控制
(二)簡述數據庫設計過程的各個階段上的設計描述。
答:數據庫設計過程分為六個階段:
1、需求分析:準確了解與分析用戶需求,(包括數據與處理)。需求分析是整個設計過程的基礎,需求分析的結果是否準確反映了用戶的實際需求,將直接影響到后面各個階段的設計、并影響到設計結果是否合理和實用。
2、概念結構設計:數據庫邏輯結構依賴于具體的DBMS,在將現實世界需求轉換為機器世界的模型之前,我們先以一種獨立于具體數據庫管理系統的邏輯描述方法來描述數據庫的邏輯結構,即設計數據庫的概念結構。概念結構設計是整個數據庫設計的關鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。
3、邏輯結構設計:邏輯結構設計是將抽象的概念結構轉換為所選用的DBMS支持的數據模型,并對其進行優化。
4、數據庫物理設計:數據庫物理設計是對為邏輯數據模型選取一個時候應用環境的物理結構(包括存儲結構和存取方法)
5、數據庫實施
6、數據庫運行和維護
(三)學校有若干個系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授每人各帶若干研究生。每個班有若干學生,每個學生選修若干課程,每門課程可由若干學生選修。用E-R圖畫出該學校的概念模型。
答:E-R圖如下所示:
(四)今要建立關于系、學生、班級、學會諸信息的一個關系數據庫。一個系有若干專業,每個專業每年只招一個班,每個班有若干學生。一個系的學生住在同一個宿舍區。每個學生可參加若干學會,每個學會有若干學生。
描述學生的屬性有:學號、姓名、出生年月、系名、班號、宿舍區。
描述班級的屬性有:班號、專業名、系名、人數、入校年份。
描述系的屬性有:系號、系名、系辦公室地點、人數。
描述學會的屬性有:學會名、成立年份、地點、人數。學生參加某學會有一個入會年份
請給出關系模式,寫出每個關系模式的極小函數依賴集,指出是否存在傳遞函數依賴,對于函數依賴左部是多屬性的情況,討論函數依賴是完全函數依賴,還是部分函數依賴。指出各種關系的候選碼和外部碼。
答:關系模式如下:
學生:{學號, 姓名, 出生年月, 系名, 班號, 宿舍區},候選碼:學號,外部碼:班號
班級:{班號, 專業名, 系名, 人數, 入校年份},候選碼:班號,外部碼:無
系:{系號, 系名, 系辦公室地點, 人數},候選碼:系號、系名外部碼:無
學會:{學會名, 成立年份, 地點, 人數},候選碼:學會名外部碼: 無
函數依賴如下:
學生:{學號→姓名,學號→出生年月,學號→系名,學號→班號,學號→宿舍區}, 完全函數依賴,無傳遞依賴
班級:{班號→專業名,班號→系名,班號→人數,班號→入校年份}, 完全函數依賴,無傳遞依賴
系:{系號→系名,系號→系辦公室地點,系號→人數}, 無傳遞依賴, 完全函數依賴,無傳遞依賴
學會:{學會名→成立年份,學會名→地點,學會名→人數}, 無傳遞依賴, 完全函數依賴,無傳遞依賴
(五)現有關系數據庫如下:
學生(學號,姓名,性別,專業、獎學金)
課程(課程號,名稱,學分)
學習(學號,課程號,分數)
請用關系代數表達式實現下列1—4小題,用SQL語言實現下列5—8小題。
1.檢索“國際貿易”專業中獲得獎學金的學生信息,包括學號、姓名、課程名和分數;
答:∏學號,姓名,名稱,分數(σ獎學金》0(學生)∧專業=‘國際貿易’(學生)(學生∞學習∞課程))
2.檢索學生成績得過滿分(100分)的課程的課程號、名稱和學分;
答:
課程號,名稱,學分(σ分數=100(學習))學習∞課程
3.檢索沒有獲得獎學金、同時至少有一門課程成績在95分以上的學生信息,包括學號、姓名和專業;
答:
學號,姓名,專業(σ獎學金 = 0(學生)∧分數》95(學習)(學生∞學生))
4.檢索沒有任何一門課程成績在80分以下的學生的信息,包括學號、姓名和專業;
答:
學號,姓名,專業(學生)—∏學號,姓名,專業(σ分數《80(學生∞學習))
5.檢索沒有獲得獎學金、同時至少有一門課程成績在95分以上的學生信息,包括學號、姓名和專業;
答:
select b.學號, b.姓名, b.專業from學習 a, 學生 b where a.學號 = b.學號 and a.分數》= 95 and isnull(a.獎學金, 0) = 0
6.檢索沒有任何一門課程成績在80分以下的所有學生的信息,包括學號、姓名和專業
答:
Select a.學號, b.姓名, b.專業From 學生 a Where not exists(select 1 from 學習 b where a.學號 = b.學號 and b.分數 《 80)
7.對成績得過滿分(100分)的學生,如果沒有獲得獎學金的,將其獎學金設為1000元;
答: Update 學習 set 獎學金 = 1000 Where 學號 in ( Select 學號 from 學習 where 分數 = 100 )
And isnull(獎學金, 0) = 0
8.定義學生成績得過滿分(100分)的課程視圖AAA,包括課程號、名稱和學分;
答: Create view AAA As Select b.學號, c.姓名, a.課程號, a.名稱, b.學分From 課程 a, 學習 b, 學生cWhere a.課程號 = b.課程號 and b.分數 = 100 and b.學號 = c.學號
評論
查看更多