數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第3頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第4頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

成績(jī)成績(jī)課程設(shè)計(jì)課程名稱數(shù)據(jù)庫(kù)系統(tǒng)概論題目名稱___KYV點(diǎn)歌系統(tǒng)___學(xué)生學(xué)院計(jì)算機(jī)學(xué)院專業(yè)班級(jí)2012級(jí)軟件工程3班學(xué)號(hào)3112006228學(xué)生姓名陳增銘指導(dǎo)教師周儉鐵2015年1月20日目錄TOC\o"1-3"\h\u258831前言 595671.1課題來(lái)源 5314671.2課題研究主要內(nèi)容 5146391.3主要工作 5317042需求分析 6196932.1信息需求分析 667052.2功能需求分析 635342.3數(shù)據(jù)字典及安全性、完整性要求分析 725413概念結(jié)構(gòu)設(shè)計(jì) 854053.1用例圖 8317473.2整體ER圖 990684系統(tǒng)概要設(shè)計(jì) 1098634.1數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 11150744.2數(shù)據(jù)庫(kù)物理設(shè)計(jì) 12183664.3系統(tǒng)總體框架 1368055系統(tǒng)詳細(xì)設(shè)計(jì) 13287335.1數(shù)據(jù)庫(kù)實(shí)施 1454885.2數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性設(shè)計(jì) 22167095.3數(shù)據(jù)的安全設(shè)計(jì) 2445016數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)與系統(tǒng)測(cè)試 25318617系統(tǒng)安裝說(shuō)明 29318618收獲與體會(huì) 30一.前言1.1課題來(lái)源隨著現(xiàn)如今經(jīng)濟(jì)文化水平的顯著提高,人們對(duì)生活質(zhì)量及工作環(huán)境的要求也越來(lái)越高。同時(shí),隨著生活節(jié)奏的加快,每個(gè)人都處于忙碌繁亂的社會(huì)的那個(gè)當(dāng)中,不論是在家庭,工作場(chǎng)所,或是學(xué)校中,無(wú)時(shí)無(wú)刻充滿著生活和學(xué)習(xí)上的壓力。工作之余,找到一種能夠換季壓力,釋放疲勞的娛樂(lè)方式,已成為大家共同的愿望。然而,受到工作條件和時(shí)間的限制,越來(lái)越多的人們選擇了去KTV廳唱K休閑娛樂(lè)。唱歌,自然免不了點(diǎn)歌的繁瑣。傳統(tǒng)的點(diǎn)歌設(shè)備主要是CD和固放設(shè)備組成,雖然基本滿足了人們的需求,但是也帶來(lái)了設(shè)備成本高,點(diǎn)歌過(guò)程繁瑣,更新麻煩等不少問(wèn)題。隨著科學(xué)的發(fā)展和信息時(shí)代的到來(lái),點(diǎn)歌系統(tǒng)應(yīng)運(yùn)而生,KTV點(diǎn)歌系統(tǒng)已經(jīng)成為了娛樂(lè)場(chǎng)所必不可少的一部分。KTV點(diǎn)歌系統(tǒng)不僅簡(jiǎn)化了用戶操作,而且極大化滿足了人們的需求和使用習(xí)慣。1.2課題研究主要內(nèi)容KTV點(diǎn)歌系統(tǒng)是娛樂(lè)場(chǎng)所的一項(xiàng)管理措施,因此開(kāi)發(fā)KTV點(diǎn)歌系統(tǒng)具有較大的社會(huì)意義,同時(shí)點(diǎn)歌系統(tǒng)是一娛樂(lè)軟件的開(kāi)端,它具有簡(jiǎn)單的軟件特征,系統(tǒng)結(jié)構(gòu)與現(xiàn)實(shí)生活緊密結(jié)合,具體直觀,具有典范的便捷軟件特點(diǎn)。KTV點(diǎn)歌系統(tǒng)主要用于對(duì)音樂(lè)的各項(xiàng)查找,操作簡(jiǎn)單,直觀。用起來(lái)極為方便。減少了手工操對(duì)工作人員帶來(lái)的不便和繁瑣,使每個(gè)用戶都能根據(jù)自己愛(ài)好選擇自己喜歡的音樂(lè)。因此,KTV點(diǎn)歌系統(tǒng)是企業(yè)化、智能化、科學(xué)化、正規(guī)化不可缺少的管理軟件。該設(shè)計(jì)文檔主要介紹點(diǎn)歌系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)內(nèi)容。建立數(shù)據(jù)庫(kù)和相關(guān)表和SQL語(yǔ)言的使用和用例圖的設(shè)計(jì)和設(shè)計(jì)綜述。然而,設(shè)計(jì)出一個(gè)讓用戶滿意的點(diǎn)歌系統(tǒng)并不是那么容易,本次課程設(shè)計(jì)將利用visualstudio2012和SQLSERVER2005等工具進(jìn)行開(kāi)發(fā)實(shí)踐工作。1.3主要工作本次課程設(shè)計(jì)個(gè)人獨(dú)立完成。包括界面模塊,需求分析,概念設(shè)計(jì),系統(tǒng)設(shè)計(jì),數(shù)據(jù)庫(kù)實(shí)現(xiàn)等設(shè)計(jì)。本次KTV系統(tǒng)的開(kāi)發(fā)主要前臺(tái)點(diǎn)歌系統(tǒng)和后臺(tái)管理系統(tǒng)模塊的開(kāi)發(fā)。前臺(tái)點(diǎn)歌系統(tǒng)包含了拼音點(diǎn)歌、歌星點(diǎn)歌、分類點(diǎn)歌、語(yǔ)種點(diǎn)歌,全部歌曲,每個(gè)點(diǎn)歌模塊都可以查詢想要點(diǎn)的歌曲。用戶點(diǎn)歌完畢之后,可進(jìn)入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來(lái)點(diǎn)播想要的歌曲。管理員可登錄后臺(tái)管理系統(tǒng)對(duì)歌曲、歌星、用戶進(jìn)行管理和維護(hù)。進(jìn)入后臺(tái)管理系統(tǒng)后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。2.需求分析2.1信息需求分析經(jīng)過(guò)對(duì)KTV點(diǎn)歌系統(tǒng)的結(jié)構(gòu)化分析,得出信息要求如下:1.、歌星信息:包括了歌星編號(hào)、歌星姓名、歌星性別、國(guó)籍、歌星類型、地區(qū)、拼音縮寫(xiě)。2、歌曲信息:包括了歌曲編號(hào)、歌曲名稱、歌星編號(hào)、語(yǔ)種、歌曲類型、路徑、歌曲拼音縮寫(xiě)、歌曲時(shí)長(zhǎng)3、金曲排行信息:包括了歌曲編號(hào)、歌曲名稱、歌星姓名、周點(diǎn)擊率、月點(diǎn)擊率、總點(diǎn)擊率4、后臺(tái)日志信息:包括了操作編號(hào)、操作內(nèi)容、操作時(shí)間、操作人員、備注5、管理員信息:包括了管理員用戶名管理員密碼6、用戶信息:包括了用戶編號(hào)、用戶登錄名、用戶密碼、用戶姓名、用戶性別、出生日期注冊(cè)日期2.2功能需求分析KTV點(diǎn)歌系統(tǒng)主要分為歌曲的查詢與管理,管理主要包括歌曲的查詢,增添,修改,刪除;查詢可以按照歌星查詢,歌曲類型查詢,歌曲名稱查詢等方式查詢。系統(tǒng)功能需求:2.2.1點(diǎn)播歌曲點(diǎn)歌是最基本也是最重要的功能,重在快捷方便。比如拼音點(diǎn)歌、指定歌星點(diǎn)歌,只需輸入相應(yīng)的拼音簡(jiǎn)寫(xiě)然后點(diǎn)擊,就能檢索到想要點(diǎn)播的歌曲。2.2.2添加歌曲音樂(lè)是滾動(dòng)的時(shí)尚元素,明天都可能有新的創(chuàng)作,所以添加新歌也是必不可少的功能。當(dāng)然,經(jīng)典老歌也是不可或缺的元素,適當(dāng)添加經(jīng)典老歌,增添懷舊的氣氛。2.2.3歌曲管理歌曲庫(kù)十分龐大,給歌曲管理帶來(lái)一定的難度。對(duì)歌曲信息的增添和刪改同樣需要相應(yīng)的子功能模塊管理。2.2.4后臺(tái)記錄系統(tǒng)在運(yùn)行當(dāng)中難免出現(xiàn)故障,對(duì)數(shù)據(jù)庫(kù)的部分重要更新操作可記錄入庫(kù),作為系統(tǒng)故障時(shí)恢復(fù)的依據(jù)。2.3數(shù)據(jù)字典及安全性、完整性需求分析名稱描述定義位置歌星信息主要用于存儲(chǔ)歌星歌手的基本信息包括:歌星編號(hào)、歌星姓名、歌星性別、國(guó)籍、歌星類型、地區(qū)、拼音縮寫(xiě)數(shù)據(jù)庫(kù)的歌星信息表歌曲信息記錄歌曲的基本信息包括:歌曲編號(hào)、歌曲名稱、歌星編號(hào)、語(yǔ)種、歌曲類型、文件路徑、歌曲拼音縮寫(xiě)、歌曲時(shí)長(zhǎng)數(shù)據(jù)庫(kù)的歌曲信息表熱度排行記錄歌曲熱度信息包括:歌曲編號(hào)、歌曲名稱、歌星姓名、周點(diǎn)擊率、月點(diǎn)擊率,總點(diǎn)擊率數(shù)據(jù)庫(kù)的歌曲排行榜信息表后臺(tái)日志記錄后臺(tái)操作日志記錄包括:操作編號(hào)、操作內(nèi)容、操作時(shí)間、操作人員、備注數(shù)據(jù)庫(kù)的后臺(tái)操作記錄表管理員信息記錄管理員相關(guān)信息包括:管理員編號(hào)、管理員用戶名、管理員密碼數(shù)據(jù)庫(kù)的管理員信息表用戶信息記錄用戶資料和歌曲收藏信息包括:用戶編號(hào)、用戶登錄名、用戶密碼、收藏歌曲編號(hào)、用戶姓名、用戶性別、出生日期、注冊(cè)日期數(shù)據(jù)庫(kù)的用戶信息表3概念結(jié)構(gòu)設(shè)計(jì)3.1用例圖未注冊(cè)用戶與注冊(cè)用戶用例圖:管理員用例圖:3.2整體ER圖4系統(tǒng)概要設(shè)計(jì)4.1數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)為了完成需求分析中確定的基本功能和概念設(shè)計(jì)中模塊的劃分,通過(guò)基于3NF的數(shù)據(jù)庫(kù)設(shè)計(jì)方法(通過(guò)分析,各數(shù)據(jù)表已達(dá)第三范式),構(gòu)造了7張基本表?,F(xiàn)在對(duì)這7張基本表劃分基本關(guān)系,在已設(shè)計(jì)好的數(shù)據(jù)庫(kù)中初步建立各表,用于存儲(chǔ)歌曲信息和歌星信息等基本信息。此外,在基本表上定義了一些約束條件,包括基本表上數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度的限制以及是否允許為空或表內(nèi)是否取值唯一的限定。對(duì)于實(shí)體之間的聯(lián)系關(guān)系中,只有收藏關(guān)系需要確切地單獨(dú)建立一個(gè)表出來(lái),這個(gè)表以歌曲表的歌曲編號(hào)和用戶表的用戶編號(hào)為主碼。而其他關(guān)系不需要建表,因?yàn)樗鼈儧](méi)有建表的需要。根據(jù)E-R圖,可轉(zhuǎn)化為如下關(guān)系模式:關(guān)系的主碼用下劃線標(biāo)出,外碼用波浪線標(biāo)出。實(shí)體:歌星(歌星編號(hào),歌星姓名,歌星性別,國(guó)籍,歌星類型,地區(qū),拼音縮寫(xiě))歌曲(歌曲編號(hào),歌曲名稱,歌星編號(hào),語(yǔ)種,歌曲類型,路徑,歌曲拼音縮寫(xiě),歌曲時(shí)長(zhǎng))金曲排行(歌曲編號(hào),歌曲名稱,歌星姓名,周點(diǎn)擊率,月點(diǎn)擊率,總點(diǎn)擊率)后臺(tái)日志(操作編號(hào),操作內(nèi)容,操作時(shí)間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號(hào),用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊(cè)日期)聯(lián)系:收藏(用戶編號(hào),歌曲編號(hào),日期)歌星表列名數(shù)據(jù)類型能否取空約束性歌星編號(hào)intNotnull主鍵歌星姓名Char(10)Notnull歌星性別char(2)男或女國(guó)籍Char(20)歌星類型Char(10)地區(qū)Char(20)拼音縮寫(xiě)Char(20)Notnull字母歌曲表列名數(shù)據(jù)類型能否取空約束性歌曲編號(hào)intNotnull主鍵歌曲名稱Char(20)Notnull歌星編號(hào)intNotnull外鍵語(yǔ)種Char(10)歌曲類型Char(10)路徑Char(20)歌曲拼音縮寫(xiě)Char(20)Notnull字母歌曲時(shí)長(zhǎng)datetime金曲排行表列名數(shù)據(jù)類型能否取空約束性歌曲編號(hào)intNotnull主鍵歌曲名稱Char(20)Notnull歌星姓名Char(10)Notnull周點(diǎn)擊率int月點(diǎn)擊率int總點(diǎn)擊率int后臺(tái)日志表列名數(shù)據(jù)類型能否取空約束性操作編號(hào)intNotnull主鍵操作內(nèi)容Char(40)Notnull操作時(shí)間datetimeNotnull操作人員Char(20)Notnull外鍵備注Char(20)管理員表列名數(shù)據(jù)類型能否取空約束性管理員用戶名Char(20)Notnull主鍵管理員密碼Char(20)Notnull用戶表列名數(shù)據(jù)類型能否取空約束性用戶編號(hào)intNotnull主鍵用戶登錄名Char(20)Notnull唯一用戶密碼Char(20)Notnull用戶姓名Char(20)Notnull用戶性別Char(2)Notnull男或女出生日期datetimeNotnull注冊(cè)日期datetimeNotnull收藏表列名數(shù)據(jù)類型能否取空約束性用戶編號(hào)intNotnull主屬性、外鍵歌曲編號(hào)intNotnull主屬性、外鍵日期datetime4.2數(shù)據(jù)庫(kù)物理設(shè)計(jì)4.2.1介紹數(shù)據(jù)庫(kù)的物理設(shè)計(jì)就是為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程。物理結(jié)構(gòu)設(shè)計(jì)階段實(shí)現(xiàn)的是數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個(gè)系統(tǒng)的性能。因此在確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取方法之前,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)所支持的事務(wù)要進(jìn)行仔細(xì)分析,獲得優(yōu)化數(shù)據(jù)庫(kù)物理設(shè)計(jì)的參數(shù)。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)通常分為兩步:一:確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存取結(jié)構(gòu);二:對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率。4.2.2索引設(shè)計(jì)建立四個(gè)唯一索引,分別由各表組成。1.歌星表索引createuniqueindex歌星索引on歌星表(歌星姓名)歌曲表索引createuniqueindex歌曲索引on歌曲表(歌曲名稱)3.金曲排行表索引createuniqueindex排行索引on金曲排行表(歌曲編號(hào))4.用戶索引createuniqueindex用戶索引on用戶表(用戶姓名)4.3系統(tǒng)總體框架根據(jù)系統(tǒng)功能的需求分析和卡拉OK點(diǎn)歌系統(tǒng)的特點(diǎn),經(jīng)過(guò)模塊化的分析得出系統(tǒng)功能模塊結(jié)構(gòu)圖。系統(tǒng)結(jié)構(gòu)圖:5數(shù)據(jù)庫(kù)具體實(shí)施5.1數(shù)據(jù)庫(kù)實(shí)施完成數(shù)據(jù)庫(kù)的物理設(shè)計(jì)之后,設(shè)計(jì)人員就要用RDBMS提供的數(shù)據(jù)定義語(yǔ)言和其他實(shí)用程序?qū)?shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)結(jié)果嚴(yán)格描述出來(lái),成為DBMS可以接受的源代碼,再經(jīng)過(guò)調(diào)試產(chǎn)生目標(biāo)模式。然后就可以組織數(shù)據(jù)入庫(kù)了,這就是數(shù)據(jù)庫(kù)實(shí)施階段。5.1.1數(shù)據(jù)庫(kù)的實(shí)施數(shù)據(jù)庫(kù)的實(shí)施主要是根據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果,在計(jì)算機(jī)系統(tǒng)上建立實(shí)際的數(shù)據(jù)庫(kù)結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)并進(jìn)行程序的調(diào)試。它相當(dāng)于軟件工程中的代碼編寫(xiě)和程序調(diào)試的階段。創(chuàng)建數(shù)據(jù)庫(kù)主要通過(guò)T-SQL語(yǔ)句來(lái)實(shí)現(xiàn),在查詢分析器分別輸入以下語(yǔ)句來(lái)執(zhí)行:createdatabaseKYV點(diǎn)歌系統(tǒng)(1)createtable歌星表(歌星編號(hào) int primarykey,歌星姓名 char(10)notnull,歌星性別 char(2) check(歌星性別in('男','女')),國(guó)籍 char(20),歌星類型char(10),拼音縮寫(xiě) char(20)notnull,地區(qū) char(20))insertinto歌星表values('001','蔡依林','女','中國(guó)','流行','cyl','港臺(tái)')insertinto歌星表values('002','周杰倫','男','中國(guó)','流行','zjl','港臺(tái)')insertinto歌星表values('003','陳坤','男','中國(guó)','搖滾','ck','大陸')insertinto歌星表values('004','黃麗玲','女','中國(guó)','流行','hll','港臺(tái)')insertinto歌星表values('005','張靚穎','女','中國(guó)','流行','zly','大陸')insertinto歌星表values('006','Adele','女','美國(guó)','流行','ade','外國(guó)')insertinto歌星表values('007','張杰','男','中國(guó)','流行','zj','大陸')insertinto歌星表values('008','張韶涵','女','中國(guó)','流行','zsh','港臺(tái)')insertinto歌星表values('009','鄧紫棋','女','中國(guó)','流行','dzq','港臺(tái)')(2)createtable歌曲表(歌曲編號(hào)intprimarykey,歌曲名稱Char(20)notnull,歌星編號(hào)intnotnullforeignkey(歌星編號(hào))references歌星表(歌星編號(hào)),語(yǔ)種Char(10),歌曲類型Char(10),路徑Char(20),歌曲拼音縮寫(xiě)Char(20)notnull,歌曲時(shí)長(zhǎng)datetime)insertinto歌曲表values('1','第三人稱','1','國(guó)語(yǔ)','愛(ài)情','C盤(pán)CD文件夾','dsrc','04:35')insertinto歌曲表values('2','牛仔很忙','2','國(guó)語(yǔ)','歡快','C盤(pán)CD文件夾','nzhm','03:51')insertinto歌曲表values('3','空城','3','國(guó)語(yǔ)','傷感','C盤(pán)CD文件夾','kc','04:55')insertinto歌曲表values('4','睡公主','9','粵語(yǔ)','愛(ài)情','C盤(pán)CD文件夾','sgz','04:12')insertinto歌曲表values('5','有形的翅膀','8','國(guó)語(yǔ)','勵(lì)志','C盤(pán)CD文件夾','yxdcb','04:53')insertinto歌曲表values('6','給我一個(gè)理由忘記','4','國(guó)語(yǔ)','感情','C盤(pán)CD文件夾','gwygly','05:03')insertinto歌曲表values('7','終于等到你','5','國(guó)語(yǔ)','愛(ài)情','C盤(pán)CD文件夾','zyddn','04:30')insertinto歌曲表values('8','someonelikeyou','6','外語(yǔ)','感情','C盤(pán)CD文件夾','sly','04:28')insertinto歌曲表values('9','天下','7','國(guó)語(yǔ)','勵(lì)志','C盤(pán)CD文件夾','tx','05:03')insertinto歌曲表values('10','泡沫','9','國(guó)語(yǔ)','傷感','C盤(pán)CD文件夾','pm','04:42')(3)createtable金曲排行表(歌曲編號(hào) int primarykey,歌曲名稱 Char(20)Notnull,歌星姓名 Char(10)Notnull,周點(diǎn)擊率 float(10), 月點(diǎn)擊率 float(10), 總點(diǎn)擊率 float(10) )insertinto金曲排行表values('1','第三人稱','蔡依林','33','150','350')insertinto金曲排行表values('2','牛仔很忙','周杰倫','40','199','550')insertinto金曲排行表values('3','空城','楊坤','22','124','300')insertinto金曲排行表values('4','睡公主','鄧紫棋','55','230','720')insertinto金曲排行表values('7','終于等到你','張靚穎','51','64','180')insertinto金曲排行表values('8','someonelikeyou','Adele','11','87','120')insertinto金曲排行表values('5','有形的翅膀','張韶涵','25','150','400')Insertinto金曲排行表values('6','給我一個(gè)理由忘記','黃麗玲','28','153','320')(4)createtable后臺(tái)日志表(操作編號(hào) int primarykey,操作內(nèi)容 Char(40) Notnull,操作時(shí)間 datetime Notnull, 操作人員 char(20) Notnullforeignkey(操作人員)references管理員表(管理員用戶名),備注 Char(20) )(5)createtable管理員表(管理員用戶名 Char(20)primarykey,管理員密碼 Char(20)Notnull )insertinto管理員表values('admin','admin')(6)createtable用戶表(用戶編號(hào)intprimarykey,用戶登錄名Char(20) Notnullunique,用戶密碼 Char(20) Notnull, 用戶姓名 Char(20) Notnull, 用戶性別 Char(2) Notnullcheck(用戶性別in('男','女')),出生日期 datetime Notnull,注冊(cè)日期 datetime Notnull )insertinto用戶表values('801','ruan36228','6228','陳寅恪','男','1992-02-22','2014-04-08')insertinto用戶表values('802','ruan36229','6229','趙信','男','1993-04-21','2014-10-01')insertinto用戶表values('803','ruan36233','6233','維恩','女','1993-06-18','2015-01-03')insertinto用戶表values('804','ruan36244','6244','阿貍','女','1993-02-09','2014-12-06')(7)createtable收藏表(用戶編號(hào) int ,歌曲編號(hào) int,primarykey(用戶編號(hào),歌曲編號(hào)),foreignkey(用戶編號(hào))references用戶表(用戶編號(hào))ondeletecascade/*當(dāng)刪除用戶表的元組時(shí),級(jí)連刪除收藏表中相應(yīng)的元組*/onupdatecascade,/*當(dāng)更新用戶表的用戶編號(hào)時(shí),級(jí)連更新收藏表中相應(yīng)的元組*/foreignkey(歌曲編號(hào))references歌曲表(歌曲編號(hào))ondeletenoaction/*當(dāng)刪除歌曲表的元組時(shí)造成了與收藏表不一致時(shí)拒絕刪除*/onupdatecascade,/*當(dāng)更新歌曲表的歌曲編號(hào)時(shí),級(jí)連級(jí)連更新收藏表中相應(yīng)的元組*/日期 datetime )insertinto收藏表values('801','1','2014-05-01')insertinto收藏表values('801','2','2014-05-01')insertinto收藏表values('801','3','2014-06-01')insertinto收藏表values('801','4','2014-11-03')insertinto收藏表values('801','6','2014-07-03')insertinto收藏表values('802','1','2014-11-02')insertinto收藏表values('802','9','2014-11-02')insertinto收藏表values('802','5','2014-12-03')insertinto收藏表values('803','2','2015-01-06')insertinto收藏表values('803','8','2015-01-06')insertinto收藏表values('803','5','2015-01-06')insertinto收藏表values('804','1','2014-12-12')insertinto收藏表values('804','7','2014-12-12')insertinto收藏表values('804','5','2014-12-12')insertinto收藏表values('804','4','2014-12-12')insertinto收藏表values('804','2','2014-12-12')數(shù)據(jù)庫(kù)關(guān)系圖:5.1.2視圖設(shè)計(jì)為了便于瀏覽經(jīng)常查詢的信息,提高查詢效率,可以考慮建立相關(guān)視圖,因?yàn)樗粌H可提供了數(shù)據(jù)庫(kù)安全性,還可以節(jié)省系統(tǒng)資源開(kāi)銷(xiāo)。(1)用戶表、收藏表,歌星表,歌曲表之間,建立一個(gè)歌曲總點(diǎn)擊率超過(guò)一百的視圖createviewVIEW_用戶喜愛(ài)歌曲asselect用戶表.用戶編號(hào),用戶登錄名,用戶姓名,收藏表.歌曲編號(hào),歌曲表.歌曲名稱,金曲排行表.歌星姓名,總點(diǎn)擊率from用戶表,收藏表,歌星表,歌曲表,金曲排行表where用戶表.用戶編號(hào)=收藏表.用戶編號(hào)--用戶表連接收藏表and收藏表.歌曲編號(hào)=歌曲表.歌曲編號(hào)--收藏表連接歌曲表and歌曲表.歌星編號(hào)=歌星表.歌星編號(hào)--歌曲表連接歌星表and歌曲表.歌曲編號(hào)=金曲排行表.歌曲編號(hào)--歌曲表連接金曲排行表and總點(diǎn)擊率>100根據(jù)金曲排行表,建立周點(diǎn)擊率,月點(diǎn)擊率,總點(diǎn)擊率的平均點(diǎn)擊率的視圖createviewVIEW_平均點(diǎn)擊率asselectAVG(周點(diǎn)擊率)周平均,AVG(月點(diǎn)擊率)月平均,AVG(總點(diǎn)擊率)總平均from金曲排行表根據(jù)金曲排行表和平均點(diǎn)擊率視圖分別建立歌曲的周排行榜、月排行榜、總排行榜視圖createviewVIEW_周排行榜asselect歌曲名稱,歌星姓名,周點(diǎn)擊率from金曲排行表,VIEW_平均點(diǎn)擊率where周點(diǎn)擊率>周平均createviewVIEW_月排行榜asselect歌曲名稱,歌星姓名,月點(diǎn)擊率from金曲排行表,VIEW_平均點(diǎn)擊率where月點(diǎn)擊率>月平均createviewVIEW_總排行榜asselect歌曲名稱,歌星姓名,總點(diǎn)擊率from金曲排行表,VIEW_平均點(diǎn)擊率where總點(diǎn)擊率>總平均根據(jù)歌曲表和排行榜視圖建立熱門(mén)歌手視圖,要求歌星在周、月和總排行榜三個(gè)排行榜至少有一次榜上有名。createviewVIEW_熱門(mén)歌手asselect歌曲名稱,歌星姓名from金曲排行表,VIEW_平均點(diǎn)擊率where總點(diǎn)擊率>總平均or月點(diǎn)擊率>月平均or周點(diǎn)擊率>周平均5.2數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性設(shè)計(jì)5.2.1數(shù)據(jù)庫(kù)完整性概念數(shù)據(jù)庫(kù)完整性是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫(kù)完整性由各種各樣的完整性約束來(lái)保證,因此可以說(shuō)數(shù)據(jù)庫(kù)完整性設(shè)計(jì)就是數(shù)據(jù)庫(kù)完整性約束的設(shè)計(jì)。數(shù)據(jù)庫(kù)的完整性包括:(1)實(shí)體完整性實(shí)體完整性將行定義為特定表的唯一實(shí)體。實(shí)體完整性通過(guò)索引、UNIQUE約束、PRIMARYKEY約束或IDENTITY屬性強(qiáng)制表的標(biāo)識(shí)符列或主鍵的完整性。參照完整性參照完整性保證在主鍵(在被參考表中)和外鍵之間的關(guān)系總是得到維護(hù)(通過(guò)FOREIGNKEY和CHECK約束),確保鍵值在所有表中一致,要求不能引用不存在的值,如果鍵值更改了,那么在整個(gè)數(shù)據(jù)庫(kù)中,對(duì)該鍵值的所有引用要進(jìn)行一致的更改;(3)用戶定義的完整性用戶定義完整性使得用戶得以定義不屬于其它任何完整性分類的特定業(yè)務(wù)規(guī)則。所有的完整性類型都支持用戶定義完整性(CREATETABLE中的所有列級(jí)和表級(jí)約束、存儲(chǔ)過(guò)程和觸發(fā)器)。5.2.2違反數(shù)據(jù)庫(kù)完整性1、違反實(shí)體完整性本系統(tǒng)中有以下7個(gè)關(guān)系模式,帶下劃線為主碼,刪除線為外碼。歌星(歌星編號(hào),歌星姓名,歌星性別,國(guó)籍,歌星類型,地區(qū),拼音縮寫(xiě))歌曲(歌曲編號(hào),歌曲名稱,歌星編號(hào),語(yǔ)種,歌曲類型,路徑,歌曲拼音縮寫(xiě),歌曲時(shí)長(zhǎng))金曲排行(歌曲編號(hào),歌曲名稱,歌星姓名,周點(diǎn)擊率,月點(diǎn)擊率,總點(diǎn)擊率)后臺(tái)日志(操作編號(hào),操作內(nèi)容,操作時(shí)間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號(hào),用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊(cè)日期)聯(lián)系:收藏(用戶編號(hào),歌曲編號(hào),日期)對(duì)以上的基本表進(jìn)行增加、刪除和修改操作時(shí),檢測(cè):檢查主碼值是否唯一,如果不是唯一則拒絕插入。檢查主碼的各個(gè)屬性是否為空,只要有一個(gè)為空就拒絕插入。違反參照完整性可能破壞參照完整性的情況及違約處理:對(duì)應(yīng)的數(shù)據(jù)庫(kù)的參照完整性設(shè)計(jì):createtable收藏表(用戶編號(hào) int ,歌曲編號(hào) int,primarykey(用戶編號(hào),歌曲編號(hào)),foreignkey(用戶編號(hào))references用戶表(用戶編號(hào))ondeletecascade/*當(dāng)刪除用戶表的元組時(shí),級(jí)連刪除收藏表中相應(yīng)的元組*/onupdatecascade,/*當(dāng)更新用戶表的用戶編號(hào)時(shí),級(jí)連更新收藏表中相應(yīng)的元組*/foreignkey(歌曲編號(hào))references歌曲表(歌曲編號(hào))ondeletenoaction/*當(dāng)刪除歌曲表的元組時(shí)造成了與收藏表不一致時(shí)拒絕刪除*/onupdatecascade,/*當(dāng)更新歌曲表的歌曲編號(hào)時(shí),級(jí)連級(jí)連更新收藏表中相應(yīng)的元組*/日期 datetime3、違反自定義完整性1、性別只能取值男或女,對(duì)應(yīng)T-SQL設(shè)計(jì)CHECK(SEXIN'男'或'女'),當(dāng)性別插入值在可行域外的時(shí)候拒絕執(zhí)行,并利用觸發(fā)器提醒用戶輸入正確值。要求用戶登錄名唯一,屬性列定義需加上UNIQUE限制。管理員添加用戶的時(shí)候,若新增用戶登錄名已存在用戶信息表中,回被系統(tǒng)拒絕執(zhí)行。5.3數(shù)據(jù)的安全設(shè)計(jì)在卡拉OK點(diǎn)歌系統(tǒng)中,設(shè)計(jì)了用戶登錄和管理員登錄。其中用戶只有檢索和收藏歌曲的權(quán)限,管理員能夠?qū)Ω枨畔ⅰ⒏栊切畔?、用戶信息作增刪改查操作。5.4系統(tǒng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)5.4.1系統(tǒng)功能描述后臺(tái)數(shù)據(jù)庫(kù)維護(hù)功能描述管理員可登錄后臺(tái)管理系統(tǒng)對(duì)歌曲、歌星、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論