期末大作業(yè):數(shù)據(jù)庫設(shè)計(jì)_第1頁
期末大作業(yè):數(shù)據(jù)庫設(shè)計(jì)_第2頁
期末大作業(yè):數(shù)據(jù)庫設(shè)計(jì)_第3頁
期末大作業(yè):數(shù)據(jù)庫設(shè)計(jì)_第4頁
期末大作業(yè):數(shù)據(jù)庫設(shè)計(jì)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選文檔期末大作業(yè): 學(xué)生畢業(yè)設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?)掌握數(shù)據(jù)庫設(shè)計(jì)的基本方法(2)掌握各種數(shù)據(jù)庫對(duì)象的設(shè)計(jì)方法二、實(shí)驗(yàn)內(nèi)容1.數(shù)據(jù)庫概要設(shè)計(jì):用文字簡(jiǎn)要描述實(shí)體之間的聯(lián)系,畫出E-R圖(標(biāo)出各聯(lián)系中實(shí)體的基數(shù))。實(shí)體之間關(guān)系:主要是以學(xué)生基本信息這個(gè)實(shí)體為一個(gè)中心,首先涉及的就是實(shí)習(xí)單位信息的問題,這個(gè)部分是一個(gè)實(shí)習(xí)單位對(duì)應(yīng)多個(gè)學(xué)生的關(guān)系,再后就是論文的問題,這個(gè)也是一個(gè)論文對(duì)應(yīng)多個(gè)學(xué)生,而一個(gè)學(xué)生只能對(duì)應(yīng)一個(gè)論文題目的關(guān)系,最后涉及的一個(gè)就是學(xué)生和導(dǎo)師之間的關(guān)系,這部分又可以分為兩種情況,主要是視學(xué)生的實(shí)習(xí)方式而定,分校內(nèi)實(shí)習(xí)和校外實(shí)習(xí)兩種,在校內(nèi)實(shí)習(xí)中,是一個(gè)學(xué)生對(duì)應(yīng)一個(gè)老師,

2、而一個(gè)老師則可以對(duì)應(yīng)多個(gè)學(xué)生的關(guān)系,校外實(shí)習(xí)的情況稍有不同,一個(gè)學(xué)生可以對(duì)應(yīng)兩個(gè)老師,而一個(gè)老師則可以對(duì)應(yīng)多個(gè)學(xué)生的關(guān)系。下面是實(shí)體關(guān)系圖:實(shí)習(xí)單位信息學(xué)生信息校內(nèi)教師信息校外教師信息論文信息實(shí)習(xí)選擇指導(dǎo)指導(dǎo)(0,n)(1.1)1n(1,1)(0,n)n1(1,1)1n(0,n)(0,1)(0,n)n12、數(shù)據(jù)表設(shè)計(jì):將E-R圖轉(zhuǎn)換為數(shù)據(jù)表,給出創(chuàng)建各表的SQL語句。數(shù)據(jù)庫的創(chuàng)建:create database 學(xué)生畢業(yè)設(shè)計(jì)on primary(name=學(xué)生畢業(yè)設(shè)計(jì),filename='f:學(xué)生畢業(yè)設(shè)計(jì).mdf',size=20mb,maxsize=50mb,filegrow

3、th=10%)log on (name=學(xué)生畢業(yè)設(shè)計(jì)_log,filename='f:學(xué)生畢業(yè)設(shè)計(jì)_log.ldf',size=15mb,maxsize=30mb,filegrowth=10%)go建表:use 學(xué)生畢業(yè)設(shè)計(jì)create table 實(shí)習(xí)單位信息(單位編號(hào) char(4)not null,實(shí)習(xí)單位 varchar(50)not null,聯(lián)系電話 varchar(20),通信地址 varchar(50),郵編 char(6),primary key(實(shí)習(xí)單位)create table 校內(nèi)教師信息(教師編號(hào) char(4)not null,校內(nèi)教師 varcha

4、r(20)not null,性別 char(2),專業(yè)名稱 varchar(20),職稱 varchar(20),職務(wù) varchar(20),primary key(校內(nèi)教師)create table 校外教師信息(教師編號(hào) char(4)not null,校外教師 varchar(20)not null,性別 char(2),部門 varchar(20),職稱 varchar(20),職務(wù) varchar(20),primary key(校外教師)create table 論文信息(論文ID char(6),論文題目 varchar(50)not null,要求 varchar(100),

5、primary key(論文題目)create table 學(xué)生基本信息(學(xué)號(hào) char(8)not null,姓名 varchar(20)not null,性別 char(2),出生日期 datetime,專業(yè)名稱 varchar(20)not null,籍貫 varchar(20),實(shí)習(xí)單位 varchar(50),校內(nèi)教師 varchar(20)not null,校外教師 varchar(20),論文題目 varchar(50),primary key(學(xué)號(hào)),foreign key(實(shí)習(xí)單位)references 實(shí)習(xí)單位信息(實(shí)習(xí)單位),foreign key(校內(nèi)教師)refere

6、nces 校內(nèi)教師信息(校內(nèi)教師),foreign key(校外教師)references 校外教師信息(校外教師),foreign key(論文題目)references 論文信息(論文題目)3、完整性約束:根據(jù)需要給數(shù)據(jù)表添加數(shù)據(jù)完整性,并說明添加的理由。完整性約束:Create rule phone_ruleAS 聯(lián)系電話 Like '(0-90-90-90-9)-0-90-90-90-90-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì) exec Sp_bindrule phone_rule, '學(xué)院信息.專業(yè)電話'(為了約束電話號(hào)碼形式,保證數(shù)據(jù)的完整性和正確性

7、)create rule code_ruleas code like '0-90-90-90-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì) exec Sp_bindrule code_rule, '實(shí)習(xí)單位信息.郵編'(保證郵編的正確性)Create rule lunwen_ruleAS code Like 'lw0-90-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì) exec Sp_bindrule lunwen_rule, '論文信息.論文ID'(確定論文編號(hào)的格式,保證數(shù)據(jù)的完整性以避免數(shù)據(jù)庫的混亂和輸入信息時(shí)產(chǎn)生欺騙)CREATE rul

8、e xuehao_ruleas code like '20090-90-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì) exec Sp_bindrule xuehao_rule, '學(xué)生基本信息.學(xué)號(hào)'(確定學(xué)號(hào)的格式,保證學(xué)生身份的真實(shí)性)create rule a_ruleas code like 'a0-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì) exec Sp_bindrule a_rule, '校內(nèi)教師信息.教師編號(hào)' (確定教師編號(hào)的格式,保證教室身份的真實(shí)性)create rule b_ruleas code like 'b

9、0-90-90-9'use 學(xué)生畢業(yè)設(shè)計(jì)exec Sp_bindrule b_rule, '校外教師信息.教師編號(hào)' (確定教師編號(hào)的格式,保證教室身份的真實(shí)性并與校內(nèi)教師編號(hào)區(qū)分) 4、存儲(chǔ)過程、觸發(fā)器和視圖:根據(jù)需要給數(shù)據(jù)庫添加幾個(gè)實(shí)用的存儲(chǔ)過程、觸發(fā)器和視圖,并說明它們各自的功能。查詢:use 學(xué)生畢業(yè)設(shè)計(jì)select 學(xué)號(hào),姓名,學(xué)生基本信息.性別,學(xué)生基本信息.校內(nèi)教師,職稱,職務(wù) from 學(xué)生基本信息,校內(nèi)教師信息where 學(xué)生基本信息.校內(nèi)教師= 校內(nèi)教師信息.校內(nèi)教師 and 學(xué)生基本.校內(nèi)教師='孫貝貝'use 學(xué)生畢業(yè)設(shè)計(jì)sele

10、ct *from 學(xué)生基本信息where 校外教師 is not null;use 學(xué)生畢業(yè)設(shè)計(jì)select *from 學(xué)生基本信息返回指導(dǎo)老師與其指導(dǎo)的學(xué)生名字的存儲(chǔ)過程:Create Proc 校內(nèi)指導(dǎo)情況as select 校內(nèi)教師信息.校內(nèi)教師,學(xué)生基本信息.姓名from 校內(nèi)教師信息 inner join 學(xué)生基本信息on 校內(nèi)教師信息.校內(nèi)教師=學(xué)生基本信息.校內(nèi)教師return查看:exec sp_depends 校內(nèi)指導(dǎo)情況返回學(xué)生實(shí)習(xí)情況的存儲(chǔ)過程:create proc 學(xué)生實(shí)習(xí)as select *from 學(xué)生基本信息return查看:exec sp_depends

11、學(xué)生實(shí)習(xí)創(chuàng)建視圖:create view 學(xué)生與指導(dǎo)老師情況asselect 學(xué)號(hào),姓名,專業(yè)名稱,校內(nèi)教師,校外教師from 學(xué)生基本信息查看視圖:觸發(fā)器:一位教師指導(dǎo)學(xué)生人數(shù)不得超過10人use 學(xué)生畢業(yè)設(shè)計(jì)goCREATE TRIGGER lxx_6ON 學(xué)生基本信息after insertAsbegin if ( select COUNT(distinct 姓名) from 學(xué)生基本信息,校內(nèi)教師信息 where ( 學(xué)生基本信息.校內(nèi)教師=校內(nèi)教師信息.校內(nèi)教師 and 學(xué)生基本信息.校內(nèi)教師='孫貝貝')>10 print '一個(gè)老師指導(dǎo)學(xué)生不能超過十

12、人!' end go職稱不到副教授、教授級(jí)別的教師只能指導(dǎo)本專業(yè)學(xué)生use 學(xué)生畢業(yè)設(shè)計(jì)goCREATE TRIGGER lxx_7ON 學(xué)生基本信息after updateAsselect 職務(wù),學(xué)生基本信息.專業(yè)名稱 from 校內(nèi)教師信息,學(xué)生基本信息 if 校內(nèi)教師信息.職務(wù) <>'副教授'or 校內(nèi)教師信息.職務(wù) <> '教授' and 校內(nèi)教師信息.專業(yè)名稱=學(xué)生基本信.專業(yè)名稱 begin print '此老師只能指導(dǎo)本專業(yè)學(xué)生!' end go5、實(shí)驗(yàn)小結(jié):這次的實(shí)驗(yàn)把我們這學(xué)期所學(xué)的數(shù)據(jù)庫知識(shí)全部綜合在了一起,其實(shí)開始學(xué)習(xí)數(shù)據(jù)庫的時(shí)候,并沒有想到數(shù)據(jù)庫設(shè)計(jì)要花費(fèi)那么多的心思和想法,首先吧,要設(shè)計(jì)之前,總體的需求分析是必須的,再后就是分析實(shí)體以及實(shí)體關(guān)系,這套方法還是很有效的,尤其對(duì)我們這樣數(shù)據(jù)庫的初學(xué)者來說,最起碼我覺得是最正常的設(shè)計(jì)思維了。這個(gè)學(xué)期的另外一門課程,專業(yè)實(shí)訓(xùn)上,我們小組的項(xiàng)目也是和數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)掛鉤的,在整體數(shù)據(jù)庫設(shè)計(jì)學(xué)習(xí)之前,我們就已經(jīng)先學(xué)會(huì)數(shù)據(jù)庫的需求分析等等了,只是還是沒有做的很到位,因?yàn)閷?duì)數(shù)據(jù)完整性這一塊知識(shí)的缺乏,所有涉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論