【正文】
varchar(30),mes varchar(30),age int,sex char(2)asselect Uno as 39。,Upas as 39。,39。,39。圖340 查找會員密碼存儲過程/*創(chuàng)建查找會員聯(lián)系電話存儲過程*/create procedure Users_find_telno char(4),na2 varchar(30),na1 varchar(20)asselect Uno,Una1,Una2,Utel,Umes from Userswhere Uno=no or Una1=na1 or Una2=na2goexec Users_find_tel39。,39。,39。/*向F授權(quán)*/use minhangexec sp_grantdbaccess39。這個階段我們的測試主要通過數(shù)據(jù)庫設(shè)計評審來實現(xiàn)。使用人數(shù)39。故而,我在課設(shè)選題的時候我產(chǎn)生了做民航售票數(shù)據(jù)庫的想法。這三個獨立的數(shù)據(jù)庫通過應(yīng)用程序相連,單獨存在,這樣可以減少系統(tǒng)的出錯率,并增加系統(tǒng)安全性。比如:在User表中的電子郵件字段,想統(tǒng)計各個電子郵件服務(wù)商的使用人數(shù),由于Group by語句無法根據(jù)字段內(nèi)容的部分分組,故而建立了視圖HY,在此視圖中單獨用case語句列出了每個人所使用的電子郵件服務(wù)商,然后通過查詢視圖就可列出人數(shù)??偠灾?,本次課設(shè)基本達(dá)到了預(yù)期的目標(biāo),比較成功的模擬出了民航售票系統(tǒng)的部分功能,并在實現(xiàn)的過程中也有自己的創(chuàng)新特點。是狼就要練好牙,是羊就要練好腿。拼一個春夏秋冬!贏一個無悔人生!早安!—————獻(xiàn)給所有努力的人. 學(xué)習(xí)好幫手。不奮斗就是每天都很容易,可一年一年越來越難。Sons.2002[3] 西爾伯沙茨.?dāng)?shù)據(jù)庫系統(tǒng)概念.北京:機(jī)械工業(yè)出版社.2006101[4] 本甘.Microsoft SQL Server 2008技術(shù)內(nèi)幕:TSQL語言基礎(chǔ).北京:電子工業(yè)出版社.2009101[5] 法禾,羅伯森.SQL語言藝術(shù).北京:電子工業(yè)出版社.200831[6] 德萊尼.Microsoft SQL Server 2005技術(shù)內(nèi)幕:查詢、調(diào)整和優(yōu)化.北京:電子工業(yè)出版社.200971課程設(shè)計成績:項 目業(yè)務(wù)考核成績(70%)(百分制記分)平時成績(30%)(百分制記分)綜合總成績(百分制記分)注:教師按學(xué)生實際成績(平時成績和業(yè)務(wù)考核成績)登記并錄入教務(wù)MIS系統(tǒng),由系統(tǒng)自動轉(zhuǎn)化為“優(yōu)秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)和不及格(60分以下)”五等。再如:另一存儲過程Users_find_sec可以和前臺配合由用戶提供相應(yīng)的用戶信息,查詢出用戶密碼,實現(xiàn)密碼找回功能。實為一大遺憾。而我在做時,是直接在數(shù)據(jù)庫的表中存儲明文密碼,這樣大大降低了系統(tǒng)的安全性。 通過以上測試,基本認(rèn)定數(shù)據(jù)庫的設(shè)計是成功的,可以基本滿足預(yù)期要求。/*視圖查詢測試*/select*from HY圖343 試圖查詢測試預(yù)計顯示出除會員密碼以外的所有會員信息,顯示結(jié)果與預(yù)期相符,測試成功。gouse minhanggrant select,updateon Twork to Fgo/*收回F的update權(quán)限*/use minhanggorevoke update on Twork from F/*授予F的insert權(quán)限*/use minhanggogrant insert on Users to F傳統(tǒng)軟件系統(tǒng)測試的測試重點是需求覆蓋,而對于我們的數(shù)據(jù)庫測試同樣也需要對需求覆蓋進(jìn)行保證。,39。圖341 查找會員聯(lián)系電話存儲過程/*更改Flight的Fno,則Twork也更改觸發(fā)器*/alter trigger T_Flighton Flightfor updateasif update(Fno)beginupdate Tworkset Fno=from Tworkinner join Flight on =where =end圖342 觸發(fā)器數(shù)據(jù)庫安全:/*創(chuàng)建一個登陸*/exec sp_addlogin39。,39。,39。,39。 from Userswhere Una1=na1 and Una2=na2 and Umes=mes and Uage=age and Usex=sexgoexec Users_find_sec39。,Una1 as 39。,39。select*from Flight where Fno=39。,39。,39。,39。,39。,39。,39。,39。,Ntim as 39。,Nsay as 39。, as 39。,Pna as 39。 from Flightwhere City1=39。,Time1 as 39。,City1 as 39。from Ticketinner join Twork on =inner join Users on =inner join Flight on =goselect*from JP圖326 機(jī)票信息視圖/*由成都出發(fā)的航班視圖*/create view CHBasselect Fno as39。,Tpos as39。=Time1, as 39。=City1+39。end from Usersgoselect*from HY圖325 會員信息視圖/*創(chuàng)建機(jī)票信息視圖*/alter view JPasselect as39。 when Umes like 39。when Umes like 39。 when Umes like39。when Umes like39。=case when Umes like 39。,Umes as 39。,Uage as 39。,Una2 as 39。=Cpri2 from Flightinner join Twork on =inner join Cabin on =goselect*from HB圖324 航班信息視圖/*創(chuàng)建所有會員信息視圖*/create view HYasselect Uno as 39。=avg(Cpri2)from Cabin圖323 查詢實例21/*創(chuàng)建所有航班信息視圖*/alter view HBasselect distinct ,Ftype,Ctype,City1,City2,Time1,Time2,Ftim,39。from Tworkgroup by Nature圖322 查詢實例20/*查詢成人票價的平均數(shù)(計算查詢)*/select 39。 then 39。 then 39。=count(Usex) from Usersgroup by Usex圖321 查詢實例19/*列出已售出和退回的票的數(shù)量(分組查詢、計算查詢)*/select 39。,count(Mlev) as 39。=Ctype,39。=Tna,39。=,39。圖312 查詢實例10/*按年齡的升序顯示所有會員(排序查詢)*/select Uno,Una2,Uage from Usersorder by Uage asc圖313 查詢實例11/*列出年齡超過平均年齡的會員并以年齡降序顯示(排序查詢、分組查詢)*/select Uno,Una2,Uage from Usersgroup by Uno,Una2,Uagehaving Uage(select avg(Uage) from Users)order by Uage desc圖314 查詢實例12/*列出購買了航班號為ABX98的會員,并按價格降序顯示(排序查詢、連接查詢)*/select ,Fno,Pri from Tworkinner join Users on =where Fno=39。,Cpri2 as 39。圖310 查詢實例8/*查詢使用郵箱的會員(條件查詢)*/select Uno,Una1,Una2,Umes from Userswhere Umes like 39。圖37 查詢實例5/*查詢年齡在歲以上的會員(條件查詢)*/select Uno,Una1,Una2,Uage from Userswhere Uage30圖38 查詢實例6/*查詢年齡姓李并且名字個字的會員(條件查詢)*/select Uno,Una1,Una2 from Userswhere Una2 like 39。圖34 查詢實例2/*查詢機(jī)型為A380的航班(條件查詢)*/select*from Flightwhere Ftype=39。goupdate Usersset Uage=nullwhere Uno=15go刪除實例:use minhanggodelete Userswhere Uno=15godelete Ticketwhere Tno=20godelete Tworkwhere Wno=20go查詢實例:/*查詢到廣州的航班(條件查詢)*/select*from Flightwhere City2=39。where Fno=39。,20,15,3,39。,21,13545091010,39。,00099922,39。 ,[Sheet1$])可以快速導(dǎo)入數(shù)據(jù)插入實例:use minhanggoinsert into Ticketvalues(20,39。Excel 。d:\39。20100627103請不要在機(jī)場門口乘坐黑車,以免上當(dāng)受騙。2010062255請不要在機(jī)場門口乘坐黑車,以免上當(dāng)受騙。所有轉(zhuǎn)換后的關(guān)系模式如下所示:會員(會員編號、會員名、密碼、真實姓名、性別、年齡、電話、電子郵件)機(jī)票(機(jī)票號、乘客姓名、乘客身份證號、聯(lián)系電話)票務(wù)(性質(zhì)、會員編號、機(jī)票號、座艙編號、航班號、航空公司編號、票價)航空公司(航空公司編號、航空公司名、負(fù)責(zé)人、聯(lián)系電話)