版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課 程 設 計</b></p><p> 課程名稱 數(shù)據(jù)庫系統(tǒng) </p><p> 題目名稱___ 卡拉OK點歌系統(tǒng)___</p><p> 學生學院 計算機學院 </p><p> 2013年 1 月 12 日</p><
2、;p> 評價標準分數(shù)比例(%)成績</p><p> 論文論文結(jié)構(gòu)包含:1、相關技術(shù)介紹、需求分析、2、概念結(jié)構(gòu)設計(涉及的實體至少三個以上)、3、邏輯結(jié)構(gòu)設計(有完整性約束說明)、4、數(shù)據(jù)庫物理設計、5、數(shù)據(jù)庫完整性設計(違反實體、參照完整性時的解決辦法,比如觸發(fā)器、存儲過程等)5、數(shù)據(jù)庫安全性設計、6、數(shù)據(jù)庫實施、系統(tǒng)測試方案和測試報告、7、系統(tǒng)的主要功能和使用說明、系統(tǒng)安裝說明。要求論文完整、內(nèi)容詳細
3、,格式規(guī)范。40</p><p> 程序系統(tǒng)運行正確;2、功能完善:有增、刪、改、查功能,輸入、輸出功能;3、有基本的統(tǒng)計、報表功能4、有多表連接查詢、自身連接查詢、字符串匹配查詢、模糊查詢、分組查詢等。5、工作量飽滿;6、系統(tǒng)實現(xiàn)技術(shù)的難度。30</p><p> 數(shù)據(jù)庫設計E-R圖設計正確,至少3個實體;數(shù)據(jù)庫邏輯結(jié)構(gòu)設計規(guī)范化;數(shù)據(jù)庫物理設計合理。30</p><
4、p> 總評成績優(yōu) 良中及格不及格總分</p><p><b> 目 錄</b></p><p><b> 1 引言8</b></p><p><b> 1.1課題來源8</b></p><p> 1.2課題研究主要內(nèi)容8</p>
5、<p><b> 1.3主要工作9</b></p><p><b> 2 需求分析9</b></p><p> 2.1信息要求分析9</p><p> 2.2處理要求分析9</p><p> 2.3數(shù)據(jù)字典及安全性、完整性要求分析10</p><p
6、> 3 概念結(jié)構(gòu)設計11</p><p> 3.1數(shù)據(jù)實體描述及分ER圖11</p><p> 3.2整體ER圖14</p><p> 4 系統(tǒng)概要設計15</p><p> 4.1數(shù)據(jù)庫邏輯結(jié)構(gòu)設計15</p><p> 4.2數(shù)據(jù)庫物理設計17</p><p>
7、 4.3系統(tǒng)總體框架18</p><p> 5 系統(tǒng)詳細設計18</p><p> 5.1數(shù)據(jù)庫實施18</p><p> 5.2數(shù)據(jù)庫的數(shù)據(jù)完整性設計30</p><p> 5.3數(shù)據(jù)的安全設計32</p><p> 5.4系統(tǒng)功能模塊的設計與實現(xiàn)32</p><p>
8、 5.5系統(tǒng)功能測試55</p><p> 5.6數(shù)據(jù)庫性能檢測與備份設計71</p><p> 5.7系統(tǒng)安裝使用說明71</p><p> 6 回顧與展望72</p><p><b> 7 參考文獻72</b></p><p><b> 1 引言</b&g
9、t;</p><p><b> 1.1課題來源</b></p><p> 隨著現(xiàn)如今經(jīng)濟文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。同時,隨著生活節(jié)奏的加快,每個人都處于忙碌繁亂的社會的那個當中,不論是在家庭,工作場所,或是學校中,無時無刻充滿著生活和學習上的壓力。工作之余,找到一種能夠換季壓力,釋放疲勞的娛樂方式,已成為大家共同的愿望。然而,受
10、到工作條件和時間的限制,越來越多的人們選擇了去KTV廳唱K休閑娛樂。唱歌,自然免不了點歌的繁瑣。傳統(tǒng)的點歌設備主要是CD和固放設備組成,雖然基本滿足了人們的需求,但是也帶來了設備成本高,點歌過程繁瑣,更新麻煩等不少問題。隨著科學的發(fā)展和信息時代的到來,點歌系統(tǒng)應運而生,卡拉OK點歌系統(tǒng)已經(jīng)成為了娛樂場所必不可少的一部分。卡拉OK點歌系統(tǒng)不僅簡化了用戶操作,而且極大化滿足了人們的需求和使用習慣。</p><p>
11、 1.2課題研究主要內(nèi)容</p><p> 卡拉OK點歌系統(tǒng)是娛樂場所的一項管理措施,因此開發(fā)卡拉OK點歌系統(tǒng)具有較大的社會意義,同時點歌系統(tǒng)是一娛樂軟件的開端,它具有簡單的軟件特征,系統(tǒng)結(jié)構(gòu)與現(xiàn)實生活緊密結(jié)合,具體直觀,具有典范的便捷軟件特點??ɡ璒K點歌系統(tǒng)主要用于對音樂的各項查找,操作簡單,直觀。用起來極為方便。減少了手工操對工作人員帶來的不便和繁瑣,使每個用戶都能根據(jù)自己愛好選擇自己喜歡的音樂。因此,卡
12、拉OK點歌系統(tǒng)是企業(yè)化、智能化、科學化、正規(guī)化不可缺少的管理軟件。該設計文檔主要介紹點歌系統(tǒng)的數(shù)據(jù)庫設計內(nèi)容。建立數(shù)據(jù)庫和相關表和SQL語言的使用和用例圖的設計和設計綜述。然而,設計出一個讓用戶滿意的點歌系統(tǒng)并不是那么容易,本次課程設計將利用Eclipse和SQL SERVER2008等工具進行開發(fā)實踐工作。</p><p><b> 1.3主要工作</b></p><
13、p> 本次課程設計個人獨立完成。包括界面模塊,需求分析,概念設計,系統(tǒng)設計,數(shù)據(jù)庫實現(xiàn)等設計。本次卡拉OK系統(tǒng)的開發(fā)主要前臺點歌系統(tǒng)和后臺管理系統(tǒng)模塊的開發(fā)。前臺點歌系統(tǒng)包含了拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來點播想要的歌曲。</p><p> 管理員可登錄后臺管
14、理系統(tǒng)對歌曲、歌星、用戶進行管理和維護。進入后臺管理系統(tǒng)后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。</p><p><b> 2 需求分析</b></p><p><b> 2.1信息要求分析</b></p><p> 經(jīng)過對卡拉OK點歌系統(tǒng)的結(jié)構(gòu)化分析,得出信息要求如下:</p><p&
15、gt; 1.、歌星信息:包括了歌星編號、歌星姓名、歌星性別、國籍、歌星類型、地區(qū)、拼音縮寫。</p><p> 2、歌曲信息:包括了歌曲編號、歌曲名稱、歌星編號、語種、歌曲類型、路徑、歌曲拼音縮寫、歌曲時長</p><p> 3、金曲排行信息:包括了歌曲編號、歌曲名稱、歌星姓名、周點擊率 、月點擊率 、總點擊率</p><p> 4、后臺日志信息:包括了操作
16、編號、操作內(nèi)容 、操作時間、操作人員、備注</p><p> 5、管理員信息:包括了管理員用戶名 管理員密碼</p><p> 6、用戶信息:包括了用戶編號、用戶登錄名、用戶密碼、用戶姓名、用戶性別、出生日期 注冊日期</p><p><b> 2.2處理要求分析</b></p><p> 卡拉OK點歌系統(tǒng)主要分
17、為歌曲的查詢與管理,管理主要包括歌曲的查詢,增添,修改,刪除;查詢可以按照歌星查詢,歌曲類型查詢,歌曲名稱查詢等方式查詢。 系統(tǒng)功能需求:</p><p> 2.2.1 點播歌曲</p><p> 點歌是最基本也是最重要的功能,重在快捷方便。比如拼音點歌、指定歌星點歌,只需輸入相應的拼音簡寫然后點擊,就能檢索到想要點播的歌曲。</p><p> 2.2.2 添
18、加歌曲</p><p> 音樂是滾動的時尚元素,明天都可能有新的創(chuàng)作,所以添加新歌也是必不可少的功能。當然,經(jīng)典老歌也是不可或缺的元素,適當添加經(jīng)典老歌,增添懷舊的氣氛。</p><p> 2.2.3 歌曲管理</p><p> 歌曲庫十分龐大,給歌曲管理帶來一定的難度。對歌曲信息的增添和刪改同樣需要相應的子功能模塊管理。</p><p&g
19、t; 2.2.4 后臺記錄</p><p> 系統(tǒng)在運行當中難免出現(xiàn)故障,對數(shù)據(jù)庫的部分重要更新操作可記錄入庫,作為系統(tǒng)故障時恢復的依據(jù)。</p><p> 2.3數(shù)據(jù)字典及安全性、完整性要求分析</p><p><b> 3 概念結(jié)構(gòu)設計</b></p><p> 3.1數(shù)據(jù)實體描述及分ER圖</p&g
20、t;<p> 3.1.1 歌星信息實體</p><p> 3.1.2 歌曲信息實體</p><p> 3.1.3 金曲排行實體</p><p> 3.1.4 后臺日志實體</p><p> 3.1.5 管理員信息實體</p><p> 3.1.6 用戶信息實體</p><p
21、><b> 3.2整體ER圖</b></p><p> 分ER圖向整體ER圖合并,合并過程中出現(xiàn)的問題和解決方案。</p><p> 結(jié)構(gòu)沖突。歌星在歌星信息這個分E—R圖中作為主體,而在歌曲信息分E—R圖中則作為屬性。歌星包含自己的屬性,不能放在歌曲信息表的屬性里,此時把歌曲表里面的歌星字段用歌星編號取代,而歌星表和歌曲表為一對多關系。</p>
22、;<p> 命名沖突。歌曲信息與歌星信息都包含編號及名稱,起名時需要區(qū)分開。分別命名為歌曲編號和歌星編號。</p><p><b> 4 系統(tǒng)概要設計</b></p><p> 4.1數(shù)據(jù)庫邏輯結(jié)構(gòu)設計</p><p> 為了完成需求分析中確定的基本功能和概念設計中模塊的劃分,通過基于3NF的數(shù)據(jù)庫設計方法(通過分析,各數(shù)
23、據(jù)表已達第三范式),構(gòu)造了7張基本表。現(xiàn)在對這7張基本表劃分基本關系,在已設計好的數(shù)據(jù)庫中初步建立各表,用于存儲歌曲信息和歌星信息等基本信息。此外,在基本表上定義了一些約束條件,包括基本表上數(shù)據(jù)類型和數(shù)據(jù)長度的限制以及是否允許為空或表內(nèi)是否取值唯一的限定。</p><p> 根據(jù)E-R圖,可轉(zhuǎn)化為如下關系模式:關系的主碼用下劃線標出,外碼用刪除線標出。</p><p><b>
24、 實體:</b></p><p> 歌星(歌星編號,歌星姓名,歌星性別,國籍,歌星類型,地區(qū),拼音縮寫)</p><p> 歌曲(歌曲編號,歌曲名稱,歌星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)</p><p> 金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)</p><p> 后臺日
25、志(操作編號,操作內(nèi)容,操作時間,操作人員,備注)</p><p> 管理員(管理員用戶名,管理員密碼)</p><p> 用戶(用戶編號,用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊日期)</p><p><b> 聯(lián)系:</b></p><p> 收藏(用戶編號,歌曲編號,日期)</p>
26、;<p><b> 歌星表</b></p><p><b> 歌曲表</b></p><p><b> 金曲排行表</b></p><p><b> 后臺日志表</b></p><p><b> 管理員表</b>
27、;</p><p><b> 用戶表</b></p><p><b> 收藏表</b></p><p> 4.2數(shù)據(jù)庫物理設計</p><p><b> 4.2.1 介紹</b></p><p> 數(shù)據(jù)庫的物理設計就是為一個給定的邏輯數(shù)據(jù)模型選
28、取一個最適合應用要求的物理結(jié)構(gòu)的過程。物理結(jié)構(gòu)設計階段實現(xiàn)的是數(shù)據(jù)庫系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個系統(tǒng)的性能。因此在確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法之前,對數(shù)據(jù)庫系統(tǒng)所支持的事務要進行仔細分析,獲得優(yōu)化數(shù)據(jù)庫物理設計的參數(shù)。</p><p> 數(shù)據(jù)庫的物理設計通常分為兩步:</p><p> 一:確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關系數(shù)據(jù)庫中主要指存取方法和存取結(jié)構(gòu);</p>
29、<p> 二:對物理結(jié)構(gòu)進行評價,評價的重點是時間和空間效率。</p><p> 4.2.2 索引設計</p><p> ?。?)建立一個聚集索引,在熱門歌手視圖建立的索引。</p><p> create clustered index 熱門歌手索引 </p><p> on VIEW_熱門歌手(歌星姓名)</p&
30、gt;<p> (2)建立四個唯一索引,分別由各表組成。</p><p><b> 1.歌星表索引</b></p><p> create unique index 歌星索引 on 歌星表(歌星姓名)</p><p><b> 歌曲表索引</b></p><p> creat
31、e unique index 歌曲索引 on 歌曲表(歌曲名稱)</p><p><b> 3.金曲排行表索引</b></p><p> create unique index 排行索引 on 金曲排行表(歌曲編號)</p><p><b> 4.用戶索引</b></p><p> crea
32、te unique index 用戶索引 on 用戶表(用戶姓名)</p><p><b> 4.3系統(tǒng)總體框架</b></p><p> 根據(jù)系統(tǒng)功能的需求分析和卡拉OK點歌系統(tǒng)的特點,經(jīng)過模塊化的分析得出系統(tǒng)功能模塊結(jié)構(gòu)圖。系統(tǒng)結(jié)構(gòu)圖:</p><p><b> 5 系統(tǒng)詳細設計</b></p>&
33、lt;p><b> 5.1數(shù)據(jù)庫實施</b></p><p> 完成數(shù)據(jù)庫的物理設計之后,設計人員就要用RDBMS提供的數(shù)據(jù)定義語言和其他實用程序?qū)?shù)據(jù)庫邏輯設計和物理設計結(jié)果嚴格描述出來,成為DBMS可以接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實施階段。</p><p> 5.1.1 數(shù)據(jù)庫的實施</p>
34、<p> 數(shù)據(jù)庫的實施主要是根據(jù)邏輯結(jié)構(gòu)設計和物理結(jié)構(gòu)設計的結(jié)果,在計算機系統(tǒng)上建立實際的數(shù)據(jù)庫結(jié)構(gòu)、導入數(shù)據(jù)并進行程序的調(diào)試。它相當于軟件工程中的代碼編寫和程序調(diào)試的階段。</p><p> 創(chuàng)建數(shù)據(jù)庫主要通過T-SQL語句來實現(xiàn),在查詢分析器分別輸入以下語句來</p><p><b> 執(zhí)行:</b></p><p>
35、create database 點歌系統(tǒng)數(shù)據(jù)庫</p><p><b> ?。?)</b></p><p> create table 歌星表</p><p> ( 歌星編號intprimary key,</p><p> 歌星姓名char(10) not null,</p><p>
36、 歌星性別char(2) check (歌星性別 in ('男' , '女')),</p><p> 國籍char(20),</p><p> 歌星類型 char(10),</p><p> 拼音縮寫char(20) not null,</p><p> 地區(qū) char(20)&l
37、t;/p><p><b> ) </b></p><p> insert into 歌星表 values ('001','李偉','男','中國','流行','lw','大陸')</p><p> insert into 歌星表
38、values ('002','周杰倫','男','中國','流行','zjl','港臺')</p><p> insert into 歌星表 values ('003','許嵩','男','中國','搖滾','xs
39、','港臺')</p><p> insert into 歌星表 values ('004','陳音','女','中國','流行','cy','港臺')</p><p> insert into 歌星表 values ('005',
40、39;王力宏','男','中國','搖滾','wlh','大陸')</p><p> insert into 歌星表 values ('006','paul','女','美國','流行','pau','外國')&l
41、t;/p><p> insert into 歌星表 values ('007','李曉','男','中國','流行','lx','港臺')</p><p><b> ?。?)</b></p><p> create table 歌曲表
42、</p><p> ( 歌曲編號 int primary key,</p><p> 歌曲名稱 Char(20) not null,</p><p> 歌星編號 int not null </p><p> foreign key (歌星編號) references 歌星表(歌星編號),</p><p> 語
43、種 Char(10),</p><p> 歌曲類型 Char(10),</p><p> 路徑 Char(20),</p><p> 歌曲拼音縮寫 Char(20) not null,</p><p> 歌曲時長 datetime</p><p><b> )</b></p>
44、<p> insert into 歌曲表 </p><p> values ('1','七里香','2','國語','愛情','D盤DB文件夾','qlx','06:35')</p><p> insert into 歌曲表 </p>
45、;<p> values ('2','千里之外','2','粵語','悲傷','D盤DB文件夾','qlzw','03:51')</p><p> insert into 歌曲表 </p><p> values ('3',
46、39;忐忑','7','英語','歡樂','D盤DB文件夾','tt','04:55')</p><p> insert into 歌曲表 </p><p> values ('4','千里之外','3','國語',
47、39;悲傷','D盤DB文件夾','qlzw','04:12')</p><p> insert into 歌曲表 </p><p> values ('5','月亮之光','5','粵語','悲傷','D盤DB文件夾','yl
48、zg','06:53')</p><p><b> ?。?)</b></p><p> create table 金曲排行表</p><p><b> (</b></p><p> 歌曲編號intprimary key ,</p><p>
49、 歌曲名稱Char(20) Not null,</p><p> 歌星姓名Char(10) Not null,</p><p> 周點擊率Char(10),</p><p> 月點擊率Char(10),</p><p> 總點擊率Char(10)</p><p><b> )<
50、/b></p><p> insert into 金曲排行表 values ('1','七里香','周杰倫','11','99','220')</p><p> insert into 金曲排行表 values ('2','千里之外','周杰倫&
51、#39;,'31','199','550')</p><p> insert into 金曲排行表 values ('3','忐忑','李曉','22','124','330')</p><p> insert into 金曲排行表 value
52、s ('4','千里之外','許嵩','38','77','220')</p><p> insert into 金曲排行表 values ('5','月亮之光','王力宏','51','64','180')</p&
53、gt;<p><b> (4)</b></p><p> create table 后臺日志表</p><p><b> (</b></p><p> 操作編號intprimary key ,</p><p> 操作內(nèi)容Char(40)Not null,</p&
54、gt;<p> 操作時間datetimeNot null,</p><p> 操作人員char(20)Not null </p><p> foreign key (操作人員) references 管理員表(管理員用戶名),</p><p> 備注Char(20)</p><p><b>
55、)</b></p><p><b> ?。?)</b></p><p> create table 管理員表</p><p><b> (</b></p><p> 管理員用戶名Char(20) primary key ,</p><p> 管理員密碼
56、Char(20) Not null </p><p><b> )</b></p><p> insert into 管理員表</p><p> values('admin','admin') </p><p><b> (6)</b></p>
57、<p> create table 用戶表</p><p><b> (</b></p><p> 用戶編號 int primary key ,</p><p> 用戶登錄名 Char(20)Not null unique,</p><p> 用戶密碼Char(20)Not null ,
58、</p><p> 用戶姓名Char(20)Not null ,</p><p> 用戶性別Char(2)Not null check(用戶性別 in ('男' , '女')),</p><p> 出生日期datetimeNot null ,</p><p> 注冊日期datetime
59、Not null</p><p><b> )</b></p><p> insert into 用戶表</p><p> values('801','chenfeng','chen92','陳峰','男','1992-02-12',
60、9;2013-01-08')</p><p> insert into 用戶表</p><p> values('802','lm2013','linming20','林敏','女','1995-04-21','2013-01-01')</p><
61、p> insert into 用戶表</p><p> values('803','tingting9527','2581521','謝婷婷','女','1990-06-18','2013-01-03')</p><p> insert into 用戶表</p&
62、gt;<p> values('804','wbqlinhao88','s20081212','王寶強','男','1993-02-09','2013-01-06')</p><p><b> ?。?)</b></p><p> creat
63、e table 收藏表</p><p><b> (</b></p><p> 用戶編號int,</p><p> 歌曲編號int ,</p><p> primary key (用戶編號,歌曲編號),</p><p> foreign key (用戶編號) references
64、用戶表(用戶編號)</p><p> on delete cascade /*當刪除用戶表的元組時,級連刪除收藏表中相應的元組*/</p><p> on update cascade,/*當更新用戶表的用戶編號時,級連更新收藏表中相應的元組*/</p><p> foreign key (歌曲編號) references 歌曲表(歌曲編號)</p>
65、;<p> on delete no action /*當刪除歌曲表的元組時造成了與收藏表不一致時拒絕刪除*/</p><p> on update cascade, /*當更新歌曲表的歌曲編號時,級連級連更新收藏表中相應的元組*/</p><p> 日期datetime</p><p><b> )</b><
66、;/p><p> insert into 收藏表 values ('801','1','2013-01-01')</p><p> insert into 收藏表 values ('801','2','2013-01-01')</p><p> insert into
67、收藏表 values ('801','3','2013-01-01')</p><p> insert into 收藏表 values ('801','4','2013-01-03')</p><p> insert into 收藏表 values ('801','5
68、','2013-01-03')</p><p> insert into 收藏表 values ('802','1','2013-01-02')</p><p> insert into 收藏表 values ('802','2','2013-01-02')</
69、p><p> insert into 收藏表 values ('802','5','2013-02-03')</p><p> insert into 收藏表 values ('803','2','2013-01-02')</p><p> insert into 收藏
70、表 values ('803','4','2013-01-02')</p><p> insert into 收藏表 values ('803','5','2013-02-03')</p><p> insert into 收藏表 values ('804','1
71、39;,'2013-01-02')</p><p> insert into 收藏表 values ('804','2','2013-01-02')</p><p> insert into 收藏表 values ('804','5','2013-02-03')</p&
72、gt;<p> insert into 收藏表 values ('804','4','2013-03-11')</p><p> insert into 收藏表 values ('804','5','2013-03-11')</p><p><b> 數(shù)據(jù)庫關系圖:
73、</b></p><p> 5.1.2 視圖設計</p><p> 為了便于瀏覽經(jīng)常查詢的信息,提高查詢效率,可以考慮建立相關視圖,因為它不僅可提供了數(shù)據(jù)庫安全性,還可以節(jié)省系統(tǒng)資源開銷。</p><p> ?。?)用戶表、收藏表,歌星表,歌曲表之間,建立一個歌曲總點擊率超過一百的視圖</p><p> create vie
74、w VIEW_用戶喜愛歌曲</p><p><b> as </b></p><p> select 用戶表.用戶編號,用戶登錄名,用戶姓名,收藏表.歌曲編號,歌曲表.歌曲名稱,金曲排行表.歌星姓名,總點擊率</p><p> from 用戶表,收藏表,歌星表,歌曲表,金曲排行表</p><p> where 用
75、戶表.用戶編號=收藏表.用戶編號 --用戶表連接收藏表</p><p> and 收藏表.歌曲編號=歌曲表.歌曲編號 --收藏表連接歌曲表</p><p> and 歌曲表.歌星編號=歌星表.歌星編號 --歌曲表連接歌星表</p><p> and 歌曲表.歌曲編號=金曲排行表.歌曲編號 --歌曲表連接金曲排行表</p><p> a
76、nd 總點擊率>100</p><p> 根據(jù)金曲排行表,建立周點擊率,月點擊率,總點擊率的平均點擊率的視圖</p><p> create view VIEW_平均點擊率</p><p><b> as</b></p><p> select AVG(周點擊率) 周平均,AVG(月點擊率) 月平均,AVG
77、(總點擊率) 總平均 </p><p> from 金曲排行表</p><p> 根據(jù)金曲排行表和平均點擊率視圖分別建立歌曲的周排行榜、月排行榜、總排行榜視圖</p><p> create view VIEW_周排行榜</p><p><b> as</b></p><p> sel
78、ect 歌曲名稱,歌星姓名,周點擊率</p><p> from 金曲排行表,VIEW_平均點擊率</p><p> where 周點擊率>周平均</p><p> create view VIEW_月排行榜</p><p><b> as</b></p><p> select
79、歌曲名稱,歌星姓名,月點擊率</p><p> from 金曲排行表,VIEW_平均點擊率</p><p> where 月點擊率>月平均</p><p> create view VIEW_總排行榜</p><p><b> as</b></p><p> select 歌曲名稱
80、,歌星姓名,總點擊率</p><p> from 金曲排行表,VIEW_平均點擊率</p><p> where 總點擊率>總平均</p><p> 根據(jù)歌曲表和排行榜視圖建立熱門歌手視圖,要求歌星在周、月和總排行榜三個排行榜至少有一次榜上有名。</p><p> create view VIEW_熱門歌手</p>
81、<p><b> as</b></p><p> select 歌曲名稱,歌星姓名</p><p> from 金曲排行表,VIEW_平均點擊率</p><p> where 總點擊率>總平均 or 月點擊率>月平均 or 周點擊率>周平均</p><p> 5.1.3 存儲過程設
82、計</p><p> 1、--本存儲過程是對排行表進行一定的數(shù)據(jù)結(jié)構(gòu)的設計,在用戶表是通過</p><p> --對總點擊率進行設計的,分別設計兩個變量進行累加點擊率的處理。</p><p> create proc pr_總點擊</p><p><b> @x int,</b></p><p
83、><b> @y int,</b></p><p> @總點擊率 int output</p><p><b> as</b></p><p> set @總點擊率=@x+@y</p><p> select 歌曲名稱,歌星姓名</p><p> from
84、金曲排行表</p><p> where @x=總點擊率 and @y=總點擊率</p><p><b> --調(diào)用存儲過程:</b></p><p> declare @總點擊率 int</p><p> execute pr_總點擊</p><p><b> '總點
85、擊率',</b></p><p> @總點擊率 output</p><p><b> --查詢存儲過程:</b></p><p> exec sp_help pr_總點擊</p><p> 2、插入歌曲信息存儲過程</p><p> create procedure
86、 pr_插入歌曲 </p><p> @歌曲編號 int, </p><p> @歌曲名稱 char(20),</p><p> @歌星編號 int, </p><p> @歌曲拼音縮寫 char(20)</p><p><b> as</b></p><
87、;p> insert into 歌曲表 (歌曲編號,歌曲名稱,歌星編號,歌曲拼音縮寫)</p><p> values (@歌曲編號,@歌曲名稱,@歌星編號,@歌曲拼音縮寫)</p><p><b> --查詢存儲過程:</b></p><p> exec sp_help pr_插入歌曲 </p><p>
88、 3、插入歌星信息存儲過程</p><p> create procedure pr_插入歌星 </p><p> @歌星編號 int, </p><p> @歌星姓名 char(20),</p><p> @歌星類型 char(20),</p><p> @拼音縮寫 char(20)</
89、p><p><b> as</b></p><p> insert into 歌星表 (歌星編號,歌星姓名,歌星類型,拼音縮寫)</p><p> values (@歌星編號,@歌星姓名,@歌星類型,@拼音縮寫)</p><p><b> --查詢存儲過程:</b></p><
90、;p> exec sp_help pr_插入歌星</p><p> 4、刪除用戶存儲過程</p><p> create proc pr_刪除用戶</p><p><b> @用戶編號 int</b></p><p><b> as </b></p><p>
91、 delete from 用戶表</p><p> where 用戶編號=@用戶編號</p><p><b> --查詢存儲過程:</b></p><p> exec sp_help pr_刪除用戶</p><p> 5.1.4 觸發(fā)器設計</p><p><b> 1、更新
92、排行觸發(fā)器</b></p><p> 該觸發(fā)器的目的是為了完成歌曲在系統(tǒng)中的不定期的更新,點播熱門歌曲會有,滿足用戶需求,數(shù)據(jù)庫會對時間進行自動修該,來創(chuàng)建的觸發(fā)器。</p><p> create trigger tg_update</p><p><b> on 金曲排行表</b></p><p>
93、 for insert,update</p><p><b> as</b></p><p> declare @x int,@y int</p><p> select @x=歌曲編號,@y=歌星姓名 </p><p> from 金曲排行表</p><p> if exists(s
94、elect * </p><p> from 金曲排行表</p><p> where 歌曲名稱=@x and 歌星姓名<>@y)</p><p><b> begin</b></p><p> raiserror('歌曲排行',16,1) </p><p>
95、 rollback transaction </p><p><b> end </b></p><p><b> 2、插入歌曲觸發(fā)器</b></p><p> create trigger tri_插入歌曲 </p><p><b> on 歌曲表</b>
96、;</p><p> for insert as declare </p><p><b> @歌曲編號 int</b></p><p> set @歌曲編號='插入成功' </p><p> print @歌曲編號</p><p><b> 3、插入歌星觸發(fā)器
97、</b></p><p> create trigger tri_插入歌星 </p><p><b> on 歌星表</b></p><p> for insert as declare </p><p> @歌星編號 int,</p><p> @歌星姓名 char(20
98、)</p><p> set @歌星編號='恭喜,信息插入成功'</p><p> set @歌星姓名='恭喜,信息插入成功' </p><p> print @歌星編號</p><p> print @歌星姓名</p><p> 5.2數(shù)據(jù)庫的數(shù)據(jù)完整性設計</p>
99、;<p> 5.2.1 數(shù)據(jù)庫完整性概念</p><p> 數(shù)據(jù)庫完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設計就是數(shù)據(jù)庫完整性約束的設計。</p><p> 數(shù)據(jù)庫的完整性包括:</p><p><b> ?。?)實體完整性</b></p><
100、;p> 實體完整性將行定義為特定表的唯一實體。實體完整性通過索引、UNIQUE 約束、PRIMARY KEY 約束或 IDENTITY 屬性強制表的標識符列或主鍵的完整性。</p><p><b> 參照完整性</b></p><p> 參照完整性保證在主鍵(在被參考表中)和外鍵之間的關系總是得到維護(通過 FOREIGN KEY 和 CHECK 約束),
101、確保鍵值在所有表中一致,要求不能引用不存在的值,如果鍵值更改了,那么在整個數(shù)據(jù)庫中,對該鍵值的所有引用要進行一致的更改;</p><p> ?。?)用戶定義的完整性</p><p> 用戶定義完整性使得用戶得以定義不屬于其它任何完整性分類的特定業(yè)務規(guī)則。所有的完整性類型都支持用戶定義完整性(CREATE TABLE 中的所有列級和表級約束、存儲過程和觸發(fā)器)。</p>&l
102、t;p> 5.2.2 違反數(shù)據(jù)庫完整性</p><p><b> 1、違反實體完整性</b></p><p> 本系統(tǒng)中有以下7個關系模式,帶下劃線為主碼,刪除線為外碼。</p><p> 歌星(歌星編號,歌星姓名,歌星性別,國籍,歌星類型,地區(qū),拼音縮寫)</p><p> 歌曲(歌曲編號,歌曲名稱,歌
103、星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)</p><p> 金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)</p><p> 后臺日志(操作編號,操作內(nèi)容,操作時間,操作人員,備注)</p><p> 管理員(管理員用戶名,管理員密碼)</p><p> 用戶(用戶編號,用戶登錄名,用戶密碼,用戶
104、姓名,用戶性別,出生日期,注冊日期)</p><p> 收藏(用戶編號,歌曲編號,日期)</p><p> 對以上的基本表進行增加、刪除和修改操作時,檢測:</p><p> 檢查主碼值是否唯一,如果不是唯一則拒絕插入。</p><p> 檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入。</p><p>
105、<b> 違反參照完整性</b></p><p> 可能破壞參照完整性的情況及違約處理:</p><p> 對應的數(shù)據(jù)庫的參照完整性設計:</p><p> create table 收藏表</p><p><b> (</b></p><p> 用戶編號int
106、,</p><p> 歌曲編號int ,</p><p> primary key (用戶編號,歌曲編號),</p><p> foreign key (用戶編號) references 用戶表(用戶編號)</p><p> on delete cascade /*當刪除用戶表的元組時,級連刪除收藏表中相應的元組*/</p&
107、gt;<p> on update cascade,/*當更新用戶表的用戶編號時,級連更新收藏表中相應的元組*/</p><p> foreign key (歌曲編號) references 歌曲表(歌曲編號)</p><p> on delete no action /*當刪除歌曲表的元組時造成了與收藏表不一致時拒絕刪除*/</p><p>
108、 on update cascade, /*當更新歌曲表的歌曲編號時,級連級連更新收藏表中相應的元組*/</p><p> 日期datetime</p><p><b> )</b></p><p> 3、違反自定義完整性</p><p> 1、性別只能取值男或女,對應T-SQL設計CHECK(SEX I
109、N '男'或'女'),</p><p> 當性別插入值在可行域外的時候拒絕執(zhí)行,并利用觸發(fā)器提醒用戶輸入正確值。</p><p> 要求用戶登錄名唯一,屬性列定義需加上UNIQUE限制。</p><p> 管理員添加用戶的時候,若新增用戶登錄名已存在用戶信息表中,回被系統(tǒng)拒絕執(zhí)行。</p><p> 5
110、.3數(shù)據(jù)的安全設計</p><p> 在卡拉OK點歌系統(tǒng)中,設計了用戶登錄和管理員登錄。其中用戶只有檢索和收藏歌曲的權(quán)限,管理員能夠?qū)Ω枨畔?、歌星信息、用戶信息作增刪改查操作。為了避免操作權(quán)限的交錯,本系統(tǒng)設計規(guī)定只有一個管理員。</p><p> 5.4系統(tǒng)功能模塊的設計與實現(xiàn)</p><p> 5.4.1 系統(tǒng)功能描述 </p><p
111、><b> 點歌功能描述:</b></p><p> 進入卡拉OK點歌系統(tǒng)后,顯示的是各種點歌模式:有拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。主要模塊功能如下:</p><p> 拼音點歌:A~Z 26個字母自由組合,對應拼音模糊搜索。</p><p> 歌星點歌:顯示歌星列表,對應歌
112、星個人專輯。</p><p> 分類點歌:愛情、悲傷、歡樂、輕快</p><p> 語種點歌:國語、粵語、英語</p><p> 全部歌曲:顯示全部歌曲,方便點播歌曲。</p><p> 2.歌曲管理功能描述:</p><p> 用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照
113、金曲排行來點播想要的歌曲。主要模塊功能如下:</p><p> 已點歌曲:根據(jù)用戶個人喜好點播歌曲,方便用戶查看已選歌曲列表。</p><p> 收藏歌曲:根據(jù)用戶個人喜好收藏歌曲,進入已點歌曲列表點擊收藏即可。</p><p> 金曲排行:根據(jù)總點擊率設計的排行榜,方便用戶查找熱門歌曲。</p><p> 3.后臺數(shù)據(jù)庫維護功能描述
114、</p><p> 管理員可登錄后臺管理系統(tǒng)對歌曲、歌星、用戶進行管理和維護。進入后臺管理系統(tǒng)后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。主要模塊功能如下:</p><p> 歌曲管理:管理員可根據(jù)歌曲信息添加歌曲,刪除歌曲,查詢歌曲。</p><p> 歌星管理:管理員可根據(jù)歌星信息添加歌星,刪除歌星,查詢歌星。</p><p>
115、; 用戶管理:管理員可根據(jù)用戶信息添加用戶,刪除用戶,查詢用戶。</p><p> 5.4.2 功能模塊設計</p><p> 對上述各項功能進行集中,分塊,按照結(jié)構(gòu)化程序設計的要求,分為系統(tǒng)點歌功能模塊和后臺數(shù)據(jù)庫維護功能模塊。</p><p><b> 1.系統(tǒng)點歌模塊</b></p><p> 系統(tǒng)點歌模
116、塊由點歌和歌曲管理兩大功能模塊組成。</p><p> 點歌功能模塊包括了:拼音點歌、歌星點歌、分類點歌、語種點歌、全部歌曲。</p><p> 歌曲管理模塊包括了:已點歌曲、收藏歌曲、金曲排行。</p><p><b> 5.5系統(tǒng)功能測試</b></p><p> 5.5.1 登錄界面測試</p>
117、<p><b> 用戶登錄界面</b></p><p><b> 2管理員登錄界面</b></p><p> 3. 登錄名或密碼錯誤</p><p><b> 5.5.2點歌測試</b></p><p><b> 1. 拼音點歌</b&g
118、t;</p><p> 采用拼音模糊搜索,查找所有包含“ql”拼音縮寫的歌曲。</p><p> 結(jié)論:結(jié)果是正確的,千里之外和七里香的拼音縮寫均包含了ql,上數(shù)據(jù)庫查證結(jié)果也是一致。</p><p><b> 2. 歌星點歌</b></p><p> 搜索周杰倫的專輯,任意選擇一首歌。并檢查是否出現(xiàn)在歌曲管理中
119、的已選列表。</p><p> 發(fā)現(xiàn)是成功的,已選列表包含了七里香這首歌。</p><p><b> 分類點歌</b></p><p> 查詢“愛情”類型的全部歌曲</p><p><b> 驗證結(jié)果:</b></p><p> select song.id,son
120、g.name,singer.name,song.type</p><p> from song,singer</p><p> where song.singerid=singer.id and song.type='愛情'</p><p> 和數(shù)據(jù)庫的查詢結(jié)果相符合,所以測試結(jié)果是正確的。</p><p><b&
121、gt; 語種點歌</b></p><p><b> 查詢所有粵語歌曲</b></p><p><b> 驗證結(jié)果:</b></p><p> select song.id,song.name,singer.name,song.type</p><p> from song,si
122、nger</p><p> where song.singerid=singer.id and song.eng='粵語'</p><p> 結(jié)論:與數(shù)據(jù)庫查詢的結(jié)果一致,結(jié)果是正確的。</p><p><b> 全部歌曲</b></p><p><b> 查詢歌曲庫</b>
123、</p><p><b> 結(jié)果驗證:</b></p><p> select song.id,song.name,singer.name,song.type</p><p> from song,singer</p><p> where song.singerid=singer.id</p>&
124、lt;p> 與數(shù)據(jù)庫的查詢結(jié)果一致,說明結(jié)果正確。</p><p> 6.已點歌曲&收藏歌曲&金曲排行榜</p><p> 搜索金曲排行榜,選擇第一首歌,查詢已選歌曲并收藏。</p><p><b> 第一步:</b></p><p><b> 第二步:</b><
125、;/p><p> 值得注意的是同一首歌不能重復收藏,如圖:</p><p> 5.5.3后臺管理測試</p><p> 本系統(tǒng)規(guī)定后臺管理員只有一個,帳號密碼均為admin.下面開始測試:</p><p><b> 添加歌曲</b></p><p> 添加王力宏的新歌,編號111,國語,類型
126、歡樂,保存在D盤的DB文件目錄下,歌曲時長為03:51.</p><p><b> 查詢是否添加成功:</b></p><p> 結(jié)果:歌曲添加成功!</p><p><b> 刪除歌曲 </b></p><p> 刪除剛才添加的新歌并驗證結(jié)果。</p><p>
127、結(jié)果驗證:發(fā)現(xiàn)歌曲“唯一”已不存在,說明刪除成功。</p><p><b> 添加歌星</b></p><p> 結(jié)果驗證:發(fā)現(xiàn)杜蘭特在歌星列表中,操作正確。</p><p><b> 刪除歌星</b></p><p> 刪除歌星杜蘭特,并驗證刪除結(jié)果。</p><p&g
128、t; 結(jié)果驗證:重新查詢歌星列表,發(fā)現(xiàn)歌星杜蘭特已不在列,刪除成功。</p><p><b> 添加用戶</b></p><p> 結(jié)果驗證:可在用戶列表中找到用戶test,添加操作成功。</p><p><b> 6 刪除用戶</b></p><p> 刪除王寶強這個用戶,登陸名為wbq
129、inhao88.</p><p> 結(jié)果驗證:用戶列表無法找到王寶強,說明此次刪除操作成功。</p><p> 5.6數(shù)據(jù)庫性能檢測與備份設計</p><p> 5.6.1 數(shù)據(jù)庫性能監(jiān)測</p><p> 性能監(jiān)測是通過獲取數(shù)據(jù)庫系統(tǒng)正常工作運行時的各項指標來監(jiān)測系統(tǒng)性能。在優(yōu)化和監(jiān)測數(shù)據(jù)庫應用系統(tǒng)時,也需要借助各種工具。SQL S
130、erver 2005提供了一系列性能監(jiān)測和優(yōu)化工具,幫助用戶監(jiān)測SQL Server事件,評估SQL Server的性能,為優(yōu)化SQL Server數(shù)據(jù)庫提供依據(jù)。在數(shù)據(jù)庫工作狀態(tài)下仔細地考慮性能監(jiān)測工作,這在數(shù)據(jù)庫的性能調(diào)優(yōu)過程中尤為需要。性能調(diào)優(yōu)的優(yōu)先順序的步驟為篩選跟蹤數(shù)據(jù)、重播跟蹤和使用數(shù)據(jù)庫性能監(jiān)測工具定位和分析問題。</p><p> 5.6.2 數(shù)據(jù)庫備份設計</p><p&g
131、t; SQL Server2008提供了“分離/附加”數(shù)據(jù)庫、“備份/還原”數(shù)據(jù)庫、復制數(shù)據(jù)庫等多種數(shù)據(jù)庫的備份和恢復方法。下面是介紹“分離/附加”的備份設計。</p><p> 這個方法涉及到SQL Server分離數(shù)據(jù)庫和附加數(shù)據(jù)庫這兩個互逆操作工具。</p><p> 1、分離數(shù)據(jù)庫就是將某個數(shù)據(jù)庫從SQL Server數(shù)據(jù)庫列表中刪除,使其不再被SQL Server管理和使用
132、,但該數(shù)據(jù)庫的文件(.MDF)和對應的日志文件(.LDF)完好無損。分離成功后,我們就可以把該數(shù)據(jù)庫文件(.MDF)和對應的日志文件(.LDF)拷貝到其它磁盤中作為備份保存。</p><p> 2、附加數(shù)據(jù)庫就是將一個備份磁盤中的數(shù)據(jù)庫文件(.MDF)和對應的日志文件(.LDF)拷貝到需要的計算機,并將其添加到某個SQL Server數(shù)據(jù)庫服務器中,由該服務器來管理和使用這個數(shù)據(jù)庫。</p>&l
133、t;p> 5.7系統(tǒng)安裝使用說明</p><p> 所需編程軟件:Eeclipse</p><p> Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。</p>
134、;<p><b> 6 回顧與展望</b></p><p> 做完卡拉OK點歌系統(tǒng)的時候,有種如釋負重的感覺。數(shù)據(jù)庫修改了許多次,界面也是調(diào)試了很久?;仡櫿麄€項目的開發(fā),連接數(shù)據(jù)庫比較簡單,系統(tǒng)界面也不難,關鍵在按鈕的“監(jiān)聽”和對數(shù)據(jù)庫的數(shù)據(jù)處理,與學JAVA的師兄交流了好幾天,基本確定了設計框架,剛開始做還是比較麻煩的,經(jīng)常遇到許多未知的BUG,也有無法讀取結(jié)果的時候。下
135、苦心調(diào)試好前臺的點歌模塊,后續(xù)編程思路就清晰許多了,完成了添加歌曲功能模塊后,添加用戶和歌星參照設計模版,繼而把后臺管理系統(tǒng)開發(fā)出來,最后也總算把整個卡拉OK系統(tǒng)完成了。很高興能夠達到預期的目標和積累到數(shù)據(jù)庫項目開發(fā)的經(jīng)驗,更加堅定了自己以后的編程之路。比較遺憾的是,由于時間的限制和對JAVA界面設計進階了解的局限性,系統(tǒng)做得并不是十分精美,但也適當?shù)锰砑恿艘恍┍尘皥D片,還有點播歌曲這個功能模塊尚未實現(xiàn)。但課程設計并不是學習項目開發(fā)的終
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計報告--ktv點歌系統(tǒng)
- 數(shù)據(jù)庫課程設計報告--ktv點歌系統(tǒng)
- 數(shù)據(jù)庫課程設計報告--ktv在線點歌系統(tǒng)
- ktv點歌系統(tǒng)畢業(yè)設計
- ktv點歌系統(tǒng)畢業(yè)設計
- ktv點歌系統(tǒng)數(shù)據(jù)庫設計
- ktv點歌系統(tǒng)測試用例
- c語言課程設計-ktv歌曲系統(tǒng)
- ktv包廂點歌服務標準
- 微機接口音樂點歌課程設計
- 基于qt的ktv點歌系統(tǒng)畢業(yè)論文
- 課程設計—火車售票系統(tǒng)課程設計
- 遠程點歌系統(tǒng)設計方案
- 通風系統(tǒng)課程設計--某企業(yè)車間通風系統(tǒng)課程設計
- 《面向?qū)ο笳n程設計》課程設計---媒體管理系統(tǒng)
- 課程設計---課程設計圖書管理系統(tǒng)
- eda課程設計-- eda與數(shù)字系統(tǒng)課程設計
- 畢業(yè)設計--點歌系統(tǒng)的設計與實現(xiàn)
- c課程設計---圖書管理系統(tǒng)課程設計
- 課程設計-訂單式銷售管理系統(tǒng)課程設計
評論
0/150
提交評論