版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、成績課 程 設 計 課程名稱 數(shù)據(jù)庫系統(tǒng) 題目名稱_ 卡拉OK點歌系統(tǒng)_學生學院 計算機學院 專業(yè)班級 2010級計算機科學與技術四班 學 號 3110006015 學生姓名 張法光 指導教師 路璐 2013年 1 月 12 日評價標準分數(shù)比例(%)成績論文論文結構包含:1、相關技術介紹、需求分析、2、概念結構設計(涉及的實體至少三個以上)、3、邏輯結構設計(有完整性約束說明)、4、數(shù)據(jù)庫物理設計、5、數(shù)據(jù)庫完整性設計(違反實體、參照完整性時的解決辦法,比如觸發(fā)器、存儲過程等)5、數(shù)據(jù)庫安全性設計、6、數(shù)據(jù)庫實施、系統(tǒng)測試方案和測試報告、7、系統(tǒng)的主要功能和使用說明、系統(tǒng)安裝說明。要求論文完整
2、、內容詳細,格式規(guī)范。40程序1、 系統(tǒng)運行正確;2、功能完善:有增、刪、改、查功能,輸入、輸出功能;3、有基本的統(tǒng)計、報表功能4、有多表連接查詢、自身連接查詢、字符串匹配查詢、模糊查詢、分組查詢等。5、工作量飽滿;6、系統(tǒng)實現(xiàn)技術的難度。30數(shù)據(jù)庫設計E-R圖設計正確,至少3個實體;數(shù)據(jù)庫邏輯結構設計規(guī)范化;數(shù)據(jù)庫物理設計合理。30總評成績 優(yōu) 良 中 及格 不及格總分目 錄1 引言81.1課題來源81.2課題研究主要內容81.3主要工作92 需求分析92.1信息要求分析92.2處理要求分析92.3數(shù)據(jù)字典及安全性、完整性要求分析103 概念結構設計113.1數(shù)據(jù)實體描述及分ER圖113.2
3、整體ER圖144 系統(tǒng)概要設計154.1數(shù)據(jù)庫邏輯結構設計154.2數(shù)據(jù)庫物理設計174.3系統(tǒng)總體框架185 系統(tǒng)詳細設計185.1數(shù)據(jù)庫實施185.2數(shù)據(jù)庫的數(shù)據(jù)完整性設計305.3數(shù)據(jù)的安全設計325.4系統(tǒng)功能模塊的設計與實現(xiàn)325.5系統(tǒng)功能測試555.6數(shù)據(jù)庫性能檢測與備份設計715.7系統(tǒng)安裝使用說明716 回顧與展望727 參考文獻721 引言1.1課題來源隨著現(xiàn)如今經(jīng)濟文化水平的顯著提高,人們對生活質量及工作環(huán)境的要求也越來越高。同時,隨著生活節(jié)奏的加快,每個人都處于忙碌繁亂的社會的那個當中,不論是在家庭,工作場所,或是學校中,無時無刻充滿著生活和學習上的壓力。工作之余,找到
4、一種能夠換季壓力,釋放疲勞的娛樂方式,已成為大家共同的愿望。然而,受到工作條件和時間的限制,越來越多的人們選擇了去KTV廳唱K休閑娛樂。唱歌,自然免不了點歌的繁瑣。傳統(tǒng)的點歌設備主要是CD和固放設備組成,雖然基本滿足了人們的需求,但是也帶來了設備成本高,點歌過程繁瑣,更新麻煩等不少問題。隨著科學的發(fā)展和信息時代的到來,點歌系統(tǒng)應運而生,卡拉OK點歌系統(tǒng)已經(jīng)成為了娛樂場所必不可少的一部分??ɡ璒K點歌系統(tǒng)不僅簡化了用戶操作,而且極大化滿足了人們的需求和使用習慣。1.2課題研究主要內容 卡拉OK點歌系統(tǒng)是娛樂場所的一項管理措施,因此開發(fā)卡拉OK點歌系統(tǒng)具有較大的社會意義,同時點歌系統(tǒng)是一娛樂軟件的
5、開端,它具有簡單的軟件特征,系統(tǒng)結構與現(xiàn)實生活緊密結合,具體直觀,具有典范的便捷軟件特點。卡拉OK點歌系統(tǒng)主要用于對音樂的各項查找,操作簡單,直觀。用起來極為方便。減少了手工操對工作人員帶來的不便和繁瑣,使每個用戶都能根據(jù)自己愛好選擇自己喜歡的音樂。因此,卡拉OK點歌系統(tǒng)是企業(yè)化、智能化、科學化、正規(guī)化不可缺少的管理軟件。該設計文檔主要介紹點歌系統(tǒng)的數(shù)據(jù)庫設計內容。建立數(shù)據(jù)庫和相關表和SQL語言的使用和用例圖的設計和設計綜述。然而,設計出一個讓用戶滿意的點歌系統(tǒng)并不是那么容易,本次課程設計將利用Eclipse和SQL SERVER2008等工具進行開發(fā)實踐工作。1.3主要工作 本次課程設計個人
6、獨立完成。包括界面模塊,需求分析,概念設計,系統(tǒng)設計,數(shù)據(jù)庫實現(xiàn)等設計。本次卡拉OK系統(tǒng)的開發(fā)主要前臺點歌系統(tǒng)和后臺管理系統(tǒng)模塊的開發(fā)。前臺點歌系統(tǒng)包含了拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來點播想要的歌曲。 管理員可登錄后臺管理系統(tǒng)對歌曲、歌星、用戶進行管理和維護。進入后臺管理系統(tǒng)后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。2 需求分析2.1信息要求分析經(jīng)過對卡拉OK點歌系統(tǒng)的結構化分析,得出信息要求如下:1.、歌星信息:包括了歌星編號、歌星姓名、歌
7、星性別、國籍、歌星類型、地區(qū)、拼音縮寫。2、歌曲信息:包括了歌曲編號、歌曲名稱、歌星編號、語種、歌曲類型、路徑、歌曲拼音縮寫、歌曲時長3、金曲排行信息:包括了歌曲編號、歌曲名稱、歌星姓名、周點擊率 、月點擊率 、總點擊率4、后臺日志信息:包括了操作編號、操作內容 、操作時間、操作人員、備注5、管理員信息:包括了管理員用戶名 管理員密碼6、用戶信息:包括了用戶編號、用戶登錄名、用戶密碼、用戶姓名、用戶性別、出生日期 注冊日期2.2處理要求分析 卡拉OK點歌系統(tǒng)主要分為歌曲的查詢與管理,管理主要包括歌曲的查詢,增添,修改,刪除;查詢可以按照歌星查詢,歌曲類型查詢,歌曲名稱查詢等方式查詢。 系統(tǒng)功能
8、需求:2.2.1 點播歌曲 點歌是最基本也是最重要的功能,重在快捷方便。比如拼音點歌、指定歌星點歌,只需輸入相應的拼音簡寫然后點擊,就能檢索到想要點播的歌曲。2.2.2 添加歌曲 音樂是滾動的時尚元素,明天都可能有新的創(chuàng)作,所以添加新歌也是必不可少的功能。當然,經(jīng)典老歌也是不可或缺的元素,適當添加經(jīng)典老歌,增添懷舊的氣氛。2.2.3 歌曲管理 歌曲庫十分龐大,給歌曲管理帶來一定的難度。對歌曲信息的增添和刪改同樣需要相應的子功能模塊管理。2.2.4 后臺記錄 系統(tǒng)在運行當中難免出現(xiàn)故障,對數(shù)據(jù)庫的部分重要更新操作可記錄入庫,作為系統(tǒng)故障時恢復的依據(jù)。2.3數(shù)據(jù)字典及安全性、完整性要求分析名稱描述
9、定義位置歌星信息主要用于存儲歌星歌手的基本信息包括:歌星編號、歌星姓名、歌星性別、國籍、歌星類型、地區(qū)、拼音縮寫數(shù)據(jù)庫的歌星信息表歌曲信息記錄歌曲的基本信息包括:歌曲編號、歌曲名稱、歌星編號、語種、歌曲類型、文件路徑、歌曲拼音縮寫、歌曲時長數(shù)據(jù)庫的歌曲信息表金曲排行記錄歌曲熱度信息包括:歌曲編號、歌曲名稱、歌星姓名、周點擊率、月點擊率,總點擊率數(shù)據(jù)庫的歌曲排行榜信息表后臺日志記錄后臺操作日志記錄包括:操作編號、操作內容、操作時間、操作人員、備注數(shù)據(jù)庫的后臺操作記錄表管理員信息記錄管理員相關信息包括:管理員編號、管理員用戶名、管理員密碼數(shù)據(jù)庫的管理員信息表用戶信息記錄用戶資料和歌曲收藏信息包括:
10、用戶編號、用戶登錄名、用戶密碼、收藏歌曲編號、用戶姓名、用戶性別、出生日期、注冊日期數(shù)據(jù)庫的用戶信息表3 概念結構設計3.1數(shù)據(jù)實體描述及分ER圖3.1.1 歌星信息實體3.1.2 歌曲信息實體3.1.3 金曲排行實體3.1.4 后臺日志實體3.1.5 管理員信息實體3.1.6 用戶信息實體3.2整體ER圖分ER圖向整體ER圖合并,合并過程中出現(xiàn)的問題和解決方案。(1) 結構沖突。歌星在歌星信息這個分ER圖中作為主體,而在歌曲信息分ER圖中則作為屬性。歌星包含自己的屬性,不能放在歌曲信息表的屬性里,此時把歌曲表里面的歌星字段用歌星編號取代,而歌星表和歌曲表為一對多關系。(2) 命名沖突。歌曲信
11、息與歌星信息都包含編號及名稱,起名時需要區(qū)分開。分別命名為歌曲編號和歌星編號。4 系統(tǒng)概要設計4.1數(shù)據(jù)庫邏輯結構設計為了完成需求分析中確定的基本功能和概念設計中模塊的劃分,通過基于3NF的數(shù)據(jù)庫設計方法(通過分析,各數(shù)據(jù)表已達第三范式),構造了7張基本表?,F(xiàn)在對這7張基本表劃分基本關系,在已設計好的數(shù)據(jù)庫中初步建立各表,用于存儲歌曲信息和歌星信息等基本信息。此外,在基本表上定義了一些約束條件,包括基本表上數(shù)據(jù)類型和數(shù)據(jù)長度的限制以及是否允許為空或表內是否取值唯一的限定。根據(jù)E-R圖,可轉化為如下關系模式:關系的主碼用下劃線標出,外碼用波浪線標出。實體:歌星(歌星編號,歌星姓名,歌星性別,國籍
12、,歌星類型,地區(qū),拼音縮寫)歌曲(歌曲編號,歌曲名稱,歌星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)后臺日志(操作編號,操作內容,操作時間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號,用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊日期)聯(lián)系:收藏(用戶編號,歌曲編號,日期)歌星表列名數(shù)據(jù)類型能否取空約束性歌星編號intNot null主鍵歌星姓名Char(10)Not null歌星性別char(2)男或女國籍Char(20)歌星類型Char(10)地區(qū)Char(20)拼音縮寫Char
13、(20)Not null字母歌曲表列名數(shù)據(jù)類型能否取空約束性歌曲編號intNot null主鍵 歌曲名稱Char(20)Not null 歌星編號intNot null 外鍵 語種Char(10) 歌曲類型Char(10) 路徑Char(20) 歌曲拼音縮寫Char(20)Not null 字母 歌曲時長datetime金曲排行表列名數(shù)據(jù)類型能否取空約束性歌曲編號intNot null主鍵歌曲名稱Char(20)Not null歌星姓名Char(10)Not null周點擊率int月點擊率int總點擊率int后臺日志表列名數(shù)據(jù)類型能否取空約束性操作編號intNot null 主鍵操作內容Cha
14、r(40)Not null操作時間datetimeNot null操作人員Char(20)Not null外鍵備注Char(20)管理員表列名數(shù)據(jù)類型能否取空約束性管理員用戶名Char(20)Not null主鍵管理員密碼Char(20)Not null用戶表列名數(shù)據(jù)類型能否取空約束性用戶編號intNot null主鍵用戶登錄名Char(20)Not null唯一用戶密碼Char(20)Not null用戶姓名Char(20)Not null用戶性別Char(2)Not null男或女出生日期datetimeNot null注冊日期datetimeNot null收藏表列名數(shù)據(jù)類型能否取空約束
15、性用戶編號intNot null主屬性、外鍵歌曲編號intNot null主屬性、外鍵日期datetime4.2數(shù)據(jù)庫物理設計 4.2.1 介紹數(shù)據(jù)庫的物理設計就是為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用要求的物理結構的過程。物理結構設計階段實現(xiàn)的是數(shù)據(jù)庫系統(tǒng)的內模式,它的質量直接決定了整個系統(tǒng)的性能。因此在確定數(shù)據(jù)庫的存儲結構和存取方法之前,對數(shù)據(jù)庫系統(tǒng)所支持的事務要進行仔細分析,獲得優(yōu)化數(shù)據(jù)庫物理設計的參數(shù)。數(shù)據(jù)庫的物理設計通常分為兩步:一:確定數(shù)據(jù)庫的物理結構,在關系數(shù)據(jù)庫中主要指存取方法和存取結構;二:對物理結構進行評價,評價的重點是時間和空間效率。 4.2.2 索引設計 (1)建立
16、一個聚集索引,在熱門歌手視圖建立的索引。 create clustered index 熱門歌手索引 on VIEW_熱門歌手(歌星姓名) (2)建立四個唯一索引,分別由各表組成。1.歌星表索引create unique index 歌星索引 on 歌星表(歌星姓名)2. 歌曲表索引create unique index 歌曲索引 on 歌曲表(歌曲名稱)3.金曲排行表索引create unique index 排行索引 on 金曲排行表(歌曲編號)4.用戶索引create unique index 用戶索引 on 用戶表(用戶姓名)4.3系統(tǒng)總體框架 根據(jù)系統(tǒng)功能的需求分析和卡拉OK點歌系統(tǒng)
17、的特點,經(jīng)過模塊化的分析得出系統(tǒng)功能模塊結構圖。系統(tǒng)結構圖:5 系統(tǒng)詳細設計5.1數(shù)據(jù)庫實施完成數(shù)據(jù)庫的物理設計之后,設計人員就要用RDBMS提供的數(shù)據(jù)定義語言和其他實用程序將數(shù)據(jù)庫邏輯設計和物理設計結果嚴格描述出來,成為DBMS可以接受的源代碼,再經(jīng)過調試產(chǎn)生目標模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實施階段。5.1.1 數(shù)據(jù)庫的實施數(shù)據(jù)庫的實施主要是根據(jù)邏輯結構設計和物理結構設計的結果,在計算機系統(tǒng)上建立實際的數(shù)據(jù)庫結構、導入數(shù)據(jù)并進行程序的調試。它相當于軟件工程中的代碼編寫和程序調試的階段。創(chuàng)建數(shù)據(jù)庫主要通過T-SQL語句來實現(xiàn),在查詢分析器分別輸入以下語句來執(zhí)行:create d
18、atabase 點歌系統(tǒng)數(shù)據(jù)庫(1)create table 歌星表( 歌星編號intprimary key, 歌星姓名char(10) not null, 歌星性別char(2) check (歌星性別 in ('男' , '女'), 國籍char(20), 歌星類型 char(10), 拼音縮寫char(20) not null, 地區(qū) char(20) insert into 歌星表 values ('001','李偉','男','中國','流行','lw',&
19、#39;大陸')insert into 歌星表 values ('002','周杰倫','男','中國','流行','zjl','港臺')insert into 歌星表 values ('003','許嵩','男','中國','搖滾','xs','港臺')insert into 歌星表 values ('004','陳音','
20、女','中國','流行','cy','港臺')insert into 歌星表 values ('005','王力宏','男','中國','搖滾','wlh','大陸')insert into 歌星表 values ('006','paul','女','美國','流行','pau','外國')insert
21、 into 歌星表 values ('007','李曉','男','中國','流行','lx','港臺')(2)create table 歌曲表( 歌曲編號 int primary key, 歌曲名稱 Char(20) not null, 歌星編號 int not null foreign key (歌星編號) references 歌星表(歌星編號), 語種 Char(10), 歌曲類型 Char(10), 路徑 Char(20), 歌曲拼音縮寫 Char(20) not null
22、, 歌曲時長 datetime)insert into 歌曲表 values ('1','七里香','2','國語','愛情','D盤DB文件夾','qlx','06:35')insert into 歌曲表 values ('2','千里之外','2','粵語','悲傷','D盤DB文件夾','qlzw','03:51')insert int
23、o 歌曲表 values ('3','忐忑','7','英語','歡樂','D盤DB文件夾','tt','04:55')insert into 歌曲表 values ('4','千里之外','3','國語','悲傷','D盤DB文件夾','qlzw','04:12')insert into 歌曲表 values ('5',
24、39;月亮之光','5','粵語','悲傷','D盤DB文件夾','ylzg','06:53')(3)create table 金曲排行表( 歌曲編號intprimary key , 歌曲名稱Char(20) Not null, 歌星姓名Char(10) Not null, 周點擊率float(10), 月點擊率float(10), 總點擊率float(10)insert into 金曲排行表 values ('1','七里香','周杰倫',&
25、#39;11','99','220')insert into 金曲排行表 values ('2','千里之外','周杰倫','31','199','550')insert into 金曲排行表 values ('3','忐忑','李曉','22','124','330')insert into 金曲排行表 values ('4','千里之外&
26、#39;,'許嵩','38','77','220')insert into 金曲排行表 values ('5','月亮之光','王力宏','51','64','180')(4)create table 后臺日志表( 操作編號intprimary key , 操作內容Char(40)Not null, 操作時間datetimeNot null, 操作人員char(20)Not null foreign key (操作人員) referen
27、ces 管理員表(管理員用戶名), 備注Char(20)(5)create table 管理員表( 管理員用戶名Char(20) primary key , 管理員密碼Char(20) Not null )insert into 管理員表values('admin','admin') (6)create table 用戶表( 用戶編號 int primary key , 用戶登錄名 Char(20)Not null unique, 用戶密碼Char(20)Not null , 用戶姓名Char(20)Not null , 用戶性別Char(2)Not null
28、check(用戶性別 in ('男' , '女'), 出生日期datetimeNot null , 注冊日期datetimeNot null)insert into 用戶表values('801','chenfeng','chen92','陳峰','男','1992-02-12','2013-01-08')insert into 用戶表values('802','lm2013','linming20',&
29、#39;林敏','女','1995-04-21','2013-01-01')insert into 用戶表values('803','tingting9527','2581521','謝婷婷','女','1990-06-18','2013-01-03')insert into 用戶表values('804','wbqlinhao88','s20081212','王寶強
30、9;,'男','1993-02-09','2013-01-06')(7)create table 收藏表( 用戶編號int, 歌曲編號int , primary key (用戶編號,歌曲編號), foreign key (用戶編號) references 用戶表(用戶編號) on delete cascade /*當刪除用戶表的元組時,級連刪除收藏表中相應的元組*/ on update cascade,/*當更新用戶表的用戶編號時,級連更新收藏表中相應的元組*/ foreign key (歌曲編號) references 歌曲表(歌曲編號) on
31、 delete no action /*當刪除歌曲表的元組時造成了與收藏表不一致時拒絕刪除*/ on update cascade, /*當更新歌曲表的歌曲編號時,級連級連更新收藏表中相應的元組*/ 日期datetime)insert into 收藏表 values ('801','1','2013-01-01')insert into 收藏表 values ('801','2','2013-01-01')insert into 收藏表 values ('801','3
32、9;,'2013-01-01')insert into 收藏表 values ('801','4','2013-01-03')insert into 收藏表 values ('801','5','2013-01-03')insert into 收藏表 values ('802','1','2013-01-02')insert into 收藏表 values ('802','2','2013-01-
33、02')insert into 收藏表 values ('802','5','2013-02-03')insert into 收藏表 values ('803','2','2013-01-02')insert into 收藏表 values ('803','4','2013-01-02')insert into 收藏表 values ('803','5','2013-02-03')insert i
34、nto 收藏表 values ('804','1','2013-01-02')insert into 收藏表 values ('804','2','2013-01-02')insert into 收藏表 values ('804','5','2013-02-03')insert into 收藏表 values ('804','4','2013-03-11')insert into 收藏表 values (
35、'804','5','2013-03-11')數(shù)據(jù)庫關系圖: 5.1.2 視圖設計為了便于瀏覽經(jīng)常查詢的信息,提高查詢效率,可以考慮建立相關視圖,因為它不僅可提供了數(shù)據(jù)庫安全性,還可以節(jié)省系統(tǒng)資源開銷。(1)用戶表、收藏表,歌星表,歌曲表之間,建立一個歌曲總點擊率超過一百的視圖create view VIEW_用戶喜愛歌曲as select 用戶表.用戶編號,用戶登錄名,用戶姓名,收藏表.歌曲編號,歌曲表.歌曲名稱,金曲排行表.歌星姓名,總點擊率from 用戶表,收藏表,歌星表,歌曲表,金曲排行表where 用戶表.用戶編號=收藏表.用戶編號 -
36、用戶表連接收藏表 and 收藏表.歌曲編號=歌曲表.歌曲編號 -收藏表連接歌曲表 and 歌曲表.歌星編號=歌星表.歌星編號 -歌曲表連接歌星表 and 歌曲表.歌曲編號=金曲排行表.歌曲編號 -歌曲表連接金曲排行表 and 總點擊率>100(2) 根據(jù)金曲排行表,建立周點擊率,月點擊率,總點擊率的平均點擊率的視圖create view VIEW_平均點擊率asselect AVG(周點擊率) 周平均,AVG(月點擊率) 月平均,AVG(總點擊率) 總平均 from 金曲排行表(3) 根據(jù)金曲排行表和平均點擊率視圖分別建立歌曲的周排行榜、月排行榜、總排行榜視圖create view VI
37、EW_周排行榜asselect 歌曲名稱,歌星姓名,周點擊率from 金曲排行表,VIEW_平均點擊率where 周點擊率>周平均create view VIEW_月排行榜asselect 歌曲名稱,歌星姓名,月點擊率from 金曲排行表,VIEW_平均點擊率where 月點擊率>月平均create view VIEW_總排行榜asselect 歌曲名稱,歌星姓名,總點擊率from 金曲排行表,VIEW_平均點擊率where 總點擊率>總平均 (4) 根據(jù)歌曲表和排行榜視圖建立熱門歌手視圖,要求歌星在周、月和總排行榜三個排行榜至少有一次榜上有名。create view VIE
38、W_熱門歌手asselect 歌曲名稱,歌星姓名from 金曲排行表,VIEW_平均點擊率where 總點擊率>總平均 or 月點擊率>月平均 or 周點擊率>周平均5.1.3 存儲過程設計1、-本存儲過程是對排行表進行一定的數(shù)據(jù)結構的設計,在用戶表是通過 -對總點擊率進行設計的,分別設計兩個變量進行累加點擊率的處理。create proc pr_總點擊x int,y int,總點擊率 int outputasset 總點擊率=x+yselect 歌曲名稱,歌星姓名from 金曲排行表where x=總點擊率 and y=總點擊率-調用存儲過程:declare 總點擊率 in
39、texecute pr_總點擊'總點擊率',總點擊率 output-查詢存儲過程:exec sp_help pr_總點擊2、插入歌曲信息存儲過程create procedure pr_插入歌曲 歌曲編號 int, 歌曲名稱 char(20),歌星編號 int, 歌曲拼音縮寫 char(20)asinsert into 歌曲表 (歌曲編號,歌曲名稱,歌星編號,歌曲拼音縮寫)values (歌曲編號,歌曲名稱,歌星編號,歌曲拼音縮寫)-查詢存儲過程:exec sp_help pr_插入歌曲 3、插入歌星信息存儲過程create procedure pr_插入歌星 歌星編號 int,
40、 歌星姓名 char(20),歌星類型 char(20),拼音縮寫 char(20)asinsert into 歌星表 (歌星編號,歌星姓名,歌星類型,拼音縮寫)values (歌星編號,歌星姓名,歌星類型,拼音縮寫) -查詢存儲過程:exec sp_help pr_插入歌星4、刪除用戶存儲過程create proc pr_刪除用戶用戶編號 intas delete from 用戶表where 用戶編號=用戶編號-查詢存儲過程:exec sp_help pr_刪除用戶 5.1.4 觸發(fā)器設計 1、更新排行觸發(fā)器 該觸發(fā)器的目的是為了完成歌曲在系統(tǒng)中的不定期的更新,點播熱門歌曲會有,滿足用戶需求
41、,數(shù)據(jù)庫會對時間進行自動修該,來創(chuàng)建的觸發(fā)器。create trigger tg_updateon 金曲排行表for insert,updateasdeclare x int,y intselect x=歌曲編號,y=歌星姓名 from 金曲排行表if exists(select * from 金曲排行表 where 歌曲名稱=x and 歌星姓名<>y) begin raiserror('歌曲排行',16,1) rollback transaction end 2、插入歌曲觸發(fā)器create trigger tri_插入歌曲 on 歌曲表for insert as
42、 declare 歌曲編號 intset 歌曲編號='插入成功' print 歌曲編號3、插入歌星觸發(fā)器create trigger tri_插入歌星 on 歌星表for insert as declare 歌星編號 int,歌星姓名 char(20)set 歌星編號='恭喜,信息插入成功'set 歌星姓名='恭喜,信息插入成功' print 歌星編號print 歌星姓名 5.2數(shù)據(jù)庫的數(shù)據(jù)完整性設計 5.2.1 數(shù)據(jù)庫完整性概念數(shù)據(jù)庫完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設計就是
43、數(shù)據(jù)庫完整性約束的設計。數(shù)據(jù)庫的完整性包括:(1)實體完整性實體完整性將行定義為特定表的唯一實體。實體完整性通過索引、UNIQUE 約束、PRIMARY KEY 約束或 IDENTITY 屬性強制表的標識符列或主鍵的完整性。(2) 參照完整性參照完整性保證在主鍵(在被參考表中)和外鍵之間的關系總是得到維護(通過 FOREIGN KEY 和 CHECK 約束),確保鍵值在所有表中一致,要求不能引用不存在的值,如果鍵值更改了,那么在整個數(shù)據(jù)庫中,對該鍵值的所有引用要進行一致的更改;(3)用戶定義的完整性用戶定義完整性使得用戶得以定義不屬于其它任何完整性分類的特定業(yè)務規(guī)則。所有的完整性類型都支持用戶
44、定義完整性(CREATE TABLE 中的所有列級和表級約束、存儲過程和觸發(fā)器)。 5.2.2 違反數(shù)據(jù)庫完整性 1、違反實體完整性 本系統(tǒng)中有以下7個關系模式,帶下劃線為主碼,刪除線為外碼。歌星(歌星編號,歌星姓名,歌星性別,國籍,歌星類型,地區(qū),拼音縮寫)歌曲(歌曲編號,歌曲名稱,歌星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)后臺日志(操作編號,操作內容,操作時間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號,用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊日期)收藏(用戶編號,歌曲
45、編號,日期) 對以上的基本表進行增加、刪除和修改操作時,檢測:1、 檢查主碼值是否唯一,如果不是唯一則拒絕插入。2、 檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入。2. 違反參照完整性可能破壞參照完整性的情況及違約處理:對應的數(shù)據(jù)庫的參照完整性設計:create table 收藏表( 用戶編號int, 歌曲編號int , primary key (用戶編號,歌曲編號), foreign key (用戶編號) references 用戶表(用戶編號) on delete cascade /*當刪除用戶表的元組時,級連刪除收藏表中相應的元組*/ on update cascade,/*當更
46、新用戶表的用戶編號時,級連更新收藏表中相應的元組*/ foreign key (歌曲編號) references 歌曲表(歌曲編號) on delete no action /*當刪除歌曲表的元組時造成了與收藏表不一致時拒絕刪除*/ on update cascade, /*當更新歌曲表的歌曲編號時,級連級連更新收藏表中相應的元組*/ 日期datetime)3、違反自定義完整性1、性別只能取值男或女,對應T-SQL設計CHECK(SEX IN '男'或'女'),當性別插入值在可行域外的時候拒絕執(zhí)行,并利用觸發(fā)器提醒用戶輸入正確值。2、 要求用戶登錄名唯一,屬性列
47、定義需加上UNIQUE限制。管理員添加用戶的時候,若新增用戶登錄名已存在用戶信息表中,回被系統(tǒng)拒絕執(zhí)行。5.3數(shù)據(jù)的安全設計 在卡拉OK點歌系統(tǒng)中,設計了用戶登錄和管理員登錄。其中用戶只有檢索和收藏歌曲的權限,管理員能夠對歌曲信息、歌星信息、用戶信息作增刪改查操作。為了避免操作權限的交錯,本系統(tǒng)設計規(guī)定只有一個管理員。5.4系統(tǒng)功能模塊的設計與實現(xiàn) 5.4.1 系統(tǒng)功能描述 1. 點歌功能描述:進入卡拉OK點歌系統(tǒng)后,顯示的是各種點歌模式:有拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。主要模塊功能如下: 拼音點歌:AZ 26個字母自由組合,對應拼音模糊
48、搜索。歌星點歌:顯示歌星列表,對應歌星個人專輯。分類點歌:愛情、悲傷、歡樂、輕快語種點歌:國語、粵語、英語 全部歌曲:顯示全部歌曲,方便點播歌曲。 2.歌曲管理功能描述: 用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來點播想要的歌曲。主要模塊功能如下: 已點歌曲:根據(jù)用戶個人喜好點播歌曲,方便用戶查看已選歌曲列表。 收藏歌曲:根據(jù)用戶個人喜好收藏歌曲,進入已點歌曲列表點擊收藏即可。 金曲排行:根據(jù)總點擊率設計的排行榜,方便用戶查找熱門歌曲。 3.后臺數(shù)據(jù)庫維護功能描述 管理員可登錄后臺管理系統(tǒng)對歌曲、歌星、用戶進行管理和維護。進入后臺管理系統(tǒng)后,顯示
49、的是歌曲管理、歌星管理、用戶管理大三模塊。主要模塊功能如下: 歌曲管理:管理員可根據(jù)歌曲信息添加歌曲,刪除歌曲,查詢歌曲。 歌星管理:管理員可根據(jù)歌星信息添加歌星,刪除歌星,查詢歌星。 用戶管理:管理員可根據(jù)用戶信息添加用戶,刪除用戶,查詢用戶。 5.4.2 功能模塊設計 對上述各項功能進行集中,分塊,按照結構化程序設計的要求,分為系統(tǒng)點歌功能模塊和后臺數(shù)據(jù)庫維護功能模塊。 1.系統(tǒng)點歌模塊 系統(tǒng)點歌模塊由點歌和歌曲管理兩大功能模塊組成。 點歌功能模塊包括了:拼音點歌、歌星點歌、分類點歌、語種點歌、全部歌曲。歌曲管理模塊包括了:已點歌曲、收藏歌曲、金曲排行。5.5系統(tǒng)功能測試5.5.1 登錄界
50、面測試1. 用戶登錄界面2管理員登錄界面 3. 登錄名或密碼錯誤點歌測試1. 拼音點歌采用拼音模糊搜索,查找所有包含“ql”拼音縮寫的歌曲。結論:結果是正確的,千里之外和七里香的拼音縮寫均包含了ql,上數(shù)據(jù)庫查證結果也是一致。2. 歌星點歌搜索周杰倫的專輯,任意選擇一首歌。并檢查是否出現(xiàn)在歌曲管理中的已選列表。發(fā)現(xiàn)是成功的,已選列表包含了七里香這首歌。3. 分類點歌查詢“愛情”類型的全部歌曲驗證結果:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.id and so
51、ng.type='愛情'和數(shù)據(jù)庫的查詢結果相符合,所以測試結果是正確的。4. 語種點歌查詢所有粵語歌曲驗證結果:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.id and song.eng='粵語'結論:與數(shù)據(jù)庫查詢的結果一致,結果是正確的。5. 全部歌曲查詢歌曲庫結果驗證:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.id與數(shù)據(jù)庫的查詢結果一致,說明結果正確。6.已點歌曲&收藏歌曲&金曲排行榜搜索金曲排行榜,選擇第一首歌,查詢已選歌曲并收藏。第一步:第二
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度商業(yè)綜合體車位劃線與公共藝術施工合同2篇
- 2025版綠色屋頂與垂直綠化施工合同范本3篇
- 二零二五年度建筑項目工程結算審計合同2篇
- 思考助力夢想青春無畏挑戰(zhàn)
- 二零二五年度二手房無證交易合同附件與補充協(xié)議3篇
- 2025年度房產(chǎn)證辦理專業(yè)團隊服務委托合同3篇
- 二零二五年度房屋買賣合同附帶物業(yè)費及社區(qū)服務費協(xié)議3篇
- 課件5:齒輪輪系
- 商業(yè)博覽會冠名贊助合同(2篇)
- 二零二五年度醫(yī)療設備安裝與售后服務合同2篇
- 老年人照料設施建筑設計防火規(guī)范
- 山西省呂梁市基層診所醫(yī)療機構衛(wèi)生院社區(qū)衛(wèi)生服務中心村衛(wèi)生所室地址信息
- (完整)注冊安全工程師考試題庫及答案(通用版)
- 項目農民工實名制與工資支付監(jiān)管工作總臺賬
- 牙科診所復診患者就診流程圖
- 《振動力學》習題集(含答案解析)
- 診斷課件診斷學咯血
- 高速公路項目施工安全標準化圖集(多圖)
- 第一節(jié)植物細胞的結構和功能 (3)
- 蕪湖市教育高層次人才分層培養(yǎng)實施方案
- 電梯安全防護知識培訓PPT課件:正確使用電梯
評論
0/150
提交評論