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