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