KTV點歌系統-廣工數據庫課程設計(共50頁)_第1頁
KTV點歌系統-廣工數據庫課程設計(共50頁)_第2頁
KTV點歌系統-廣工數據庫課程設計(共50頁)_第3頁
KTV點歌系統-廣工數據庫課程設計(共50頁)_第4頁
KTV點歌系統-廣工數據庫課程設計(共50頁)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上成績課 程 設 計 課程名稱 數據庫系統 題目名稱_ 卡拉OK點歌系統_學生學院 計算機學院 專業(yè)班級 2010級計算機科學與技術四班 學 號 學生姓名 張法光 指導教師 路璐 2013年 1 月 12 日專心-專注-專業(yè)評價標準分數比例(%)成績論文論文結構包含:1、相關技術介紹、需求分析、2、概念結構設計(涉及的實體至少三個以上)、3、邏輯結構設計(有完整性約束說明)、4、數據庫物理設計、5、數據庫完整性設計(違反實體、參照完整性時的解決辦法,比如觸發(fā)器、存儲過程等)5、數據庫安全性設計、6、數據庫實施、系統測試方案和測試報告、7、系統的主要功能和使用說明、系統安

2、裝說明。要求論文完整、內容詳細,格式規(guī)范。40程序1、 系統運行正確;2、功能完善:有增、刪、改、查功能,輸入、輸出功能;3、有基本的統計、報表功能4、有多表連接查詢、自身連接查詢、字符串匹配查詢、模糊查詢、分組查詢等。5、工作量飽滿;6、系統實現技術的難度。30數據庫設計E-R圖設計正確,至少3個實體;數據庫邏輯結構設計規(guī)范化;數據庫物理設計合理。30總評成績 優(yōu) 良 中 及格 不及格總分目 錄1 引言1.1課題來源隨著現如今經濟文化水平的顯著提高,人們對生活質量及工作環(huán)境的要求也越來越高。同時,隨著生活節(jié)奏的加快,每個人都處于忙碌繁亂的社會的那個當中,不論是在家庭,工作場所,或是學校中,無

3、時無刻充滿著生活和學習上的壓力。工作之余,找到一種能夠換季壓力,釋放疲勞的娛樂方式,已成為大家共同的愿望。然而,受到工作條件和時間的限制,越來越多的人們選擇了去KTV廳唱K休閑娛樂。唱歌,自然免不了點歌的繁瑣。傳統的點歌設備主要是CD和固放設備組成,雖然基本滿足了人們的需求,但是也帶來了設備成本高,點歌過程繁瑣,更新麻煩等不少問題。隨著科學的發(fā)展和信息時代的到來,點歌系統應運而生,卡拉OK點歌系統已經成為了娛樂場所必不可少的一部分。卡拉OK點歌系統不僅簡化了用戶操作,而且極大化滿足了人們的需求和使用習慣。1.2課題研究主要內容 卡拉OK點歌系統是娛樂場所的一項管理措施,因此開發(fā)卡拉OK點歌系統

4、具有較大的社會意義,同時點歌系統是一娛樂軟件的開端,它具有簡單的軟件特征,系統結構與現實生活緊密結合,具體直觀,具有典范的便捷軟件特點??ɡ璒K點歌系統主要用于對音樂的各項查找,操作簡單,直觀。用起來極為方便。減少了手工操對工作人員帶來的不便和繁瑣,使每個用戶都能根據自己愛好選擇自己喜歡的音樂。因此,卡拉OK點歌系統是企業(yè)化、智能化、科學化、正規(guī)化不可缺少的管理軟件。該設計文檔主要介紹點歌系統的數據庫設計內容。建立數據庫和相關表和SQL語言的使用和用例圖的設計和設計綜述。然而,設計出一個讓用戶滿意的點歌系統并不是那么容易,本次課程設計將利用Eclipse和SQL SERVER2008等工具進行

5、開發(fā)實踐工作。1.3主要工作 本次課程設計個人獨立完成。包括界面模塊,需求分析,概念設計,系統設計,數據庫實現等設計。本次卡拉OK系統的開發(fā)主要前臺點歌系統和后臺管理系統模塊的開發(fā)。前臺點歌系統包含了拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來點播想要的歌曲。 管理員可登錄后臺管理系統對歌曲、歌星、用戶進行管理和維護。進入后臺管理系統后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。2 需求分析2.1信息要求分析經過對卡拉OK點歌系統的結構化分析,得出信息要求如下

6、:1.、歌星信息:包括了歌星編號、歌星姓名、歌星性別、國籍、歌星類型、地區(qū)、拼音縮寫。2、歌曲信息:包括了歌曲編號、歌曲名稱、歌星編號、語種、歌曲類型、路徑、歌曲拼音縮寫、歌曲時長3、金曲排行信息:包括了歌曲編號、歌曲名稱、歌星姓名、周點擊率 、月點擊率 、總點擊率4、后臺日志信息:包括了操作編號、操作內容 、操作時間、操作人員、備注5、管理員信息:包括了管理員用戶名 管理員密碼6、用戶信息:包括了用戶編號、用戶登錄名、用戶密碼、用戶姓名、用戶性別、出生日期 注冊日期2.2處理要求分析 卡拉OK點歌系統主要分為歌曲的查詢與管理,管理主要包括歌曲的查詢,增添,修改,刪除;查詢可以按照歌星查詢,歌

7、曲類型查詢,歌曲名稱查詢等方式查詢。 系統功能需求:2.2.1 點播歌曲 點歌是最基本也是最重要的功能,重在快捷方便。比如拼音點歌、指定歌星點歌,只需輸入相應的拼音簡寫然后點擊,就能檢索到想要點播的歌曲。2.2.2 添加歌曲 音樂是滾動的時尚元素,明天都可能有新的創(chuàng)作,所以添加新歌也是必不可少的功能。當然,經典老歌也是不可或缺的元素,適當添加經典老歌,增添懷舊的氣氛。2.2.3 歌曲管理 歌曲庫十分龐大,給歌曲管理帶來一定的難度。對歌曲信息的增添和刪改同樣需要相應的子功能模塊管理。2.2.4 后臺記錄 系統在運行當中難免出現故障,對數據庫的部分重要更新操作可記錄入庫,作為系統故障時恢復的依據。

8、2.3數據字典及安全性、完整性要求分析名稱描述定義位置歌星信息主要用于存儲歌星歌手的基本信息包括:歌星編號、歌星姓名、歌星性別、國籍、歌星類型、地區(qū)、拼音縮寫數據庫的歌星信息表歌曲信息記錄歌曲的基本信息包括:歌曲編號、歌曲名稱、歌星編號、語種、歌曲類型、文件路徑、歌曲拼音縮寫、歌曲時長數據庫的歌曲信息表金曲排行記錄歌曲熱度信息包括:歌曲編號、歌曲名稱、歌星姓名、周點擊率、月點擊率,總點擊率數據庫的歌曲排行榜信息表后臺日志記錄后臺操作日志記錄包括:操作編號、操作內容、操作時間、操作人員、備注數據庫的后臺操作記錄表管理員信息記錄管理員相關信息包括:管理員編號、管理員用戶名、管理員密碼數據庫的管理員

9、信息表用戶信息記錄用戶資料和歌曲收藏信息包括:用戶編號、用戶登錄名、用戶密碼、收藏歌曲編號、用戶姓名、用戶性別、出生日期、注冊日期數據庫的用戶信息表3 概念結構設計3.1數據實體描述及分ER圖3.1.1 歌星信息實體3.1.2 歌曲信息實體3.1.3 金曲排行實體3.1.4 后臺日志實體3.1.5 管理員信息實體3.1.6 用戶信息實體3.2整體ER圖分ER圖向整體ER圖合并,合并過程中出現的問題和解決方案。(1) 結構沖突。歌星在歌星信息這個分ER圖中作為主體,而在歌曲信息分ER圖中則作為屬性。歌星包含自己的屬性,不能放在歌曲信息表的屬性里,此時把歌曲表里面的歌星字段用歌星編號取代,而歌星表

10、和歌曲表為一對多關系。(2) 命名沖突。歌曲信息與歌星信息都包含編號及名稱,起名時需要區(qū)分開。分別命名為歌曲編號和歌星編號。4 系統概要設計4.1數據庫邏輯結構設計為了完成需求分析中確定的基本功能和概念設計中模塊的劃分,通過基于3NF的數據庫設計方法(通過分析,各數據表已達第三范式),構造了7張基本表?,F在對這7張基本表劃分基本關系,在已設計好的數據庫中初步建立各表,用于存儲歌曲信息和歌星信息等基本信息。此外,在基本表上定義了一些約束條件,包括基本表上數據類型和數據長度的限制以及是否允許為空或表內是否取值唯一的限定。根據E-R圖,可轉化為如下關系模式:關系的主碼用下劃線標出,外碼用波浪線標出。

11、實體:歌星(歌星編號,歌星姓名,歌星性別,國籍,歌星類型,地區(qū),拼音縮寫)歌曲(歌曲編號,歌曲名稱,歌星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)后臺日志(操作編號,操作內容,操作時間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號,用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊日期)聯系:收藏(用戶編號,歌曲編號,日期)歌星表列名數據類型能否取空約束性歌星編號intNot null主鍵歌星姓名Char(10)Not null歌星性別char(2)男或女國籍Char(20)歌星類型Cha

12、r(10)地區(qū)Char(20)拼音縮寫Char(20)Not null字母歌曲表列名數據類型能否取空約束性歌曲編號intNot null主鍵 歌曲名稱Char(20)Not null 歌星編號intNot null 外鍵 語種Char(10) 歌曲類型Char(10) 路徑Char(20) 歌曲拼音縮寫Char(20)Not null 字母 歌曲時長datetime金曲排行表列名數據類型能否取空約束性歌曲編號intNot null主鍵歌曲名稱Char(20)Not null歌星姓名Char(10)Not null周點擊率int月點擊率int總點擊率int后臺日志表列名數據類型能否取空約束性操作

13、編號intNot null 主鍵操作內容Char(40)Not null操作時間datetimeNot null操作人員Char(20)Not null外鍵備注Char(20)管理員表列名數據類型能否取空約束性管理員用戶名Char(20)Not null主鍵管理員密碼Char(20)Not null用戶表列名數據類型能否取空約束性用戶編號intNot null主鍵用戶登錄名Char(20)Not null唯一用戶密碼Char(20)Not null用戶姓名Char(20)Not null用戶性別Char(2)Not null男或女出生日期datetimeNot null注冊日期datetime

14、Not null收藏表列名數據類型能否取空約束性用戶編號intNot null主屬性、外鍵歌曲編號intNot null主屬性、外鍵日期datetime4.2數據庫物理設計 4.2.1 介紹數據庫的物理設計就是為一個給定的邏輯數據模型選取一個最適合應用要求的物理結構的過程。物理結構設計階段實現的是數據庫系統的內模式,它的質量直接決定了整個系統的性能。因此在確定數據庫的存儲結構和存取方法之前,對數據庫系統所支持的事務要進行仔細分析,獲得優(yōu)化數據庫物理設計的參數。數據庫的物理設計通常分為兩步:一:確定數據庫的物理結構,在關系數據庫中主要指存取方法和存取結構;二:對物理結構進行評價,評價的重點是時間

15、和空間效率。 4.2.2 索引設計 (1)建立一個聚集索引,在熱門歌手視圖建立的索引。 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系統總體

16、框架 根據系統功能的需求分析和卡拉OK點歌系統的特點,經過模塊化的分析得出系統功能模塊結構圖。系統結構圖:5 系統詳細設計5.1數據庫實施完成數據庫的物理設計之后,設計人員就要用RDBMS提供的數據定義語言和其他實用程序將數據庫邏輯設計和物理設計結果嚴格描述出來,成為DBMS可以接受的源代碼,再經過調試產生目標模式。然后就可以組織數據入庫了,這就是數據庫實施階段。5.1.1 數據庫的實施數據庫的實施主要是根據邏輯結構設計和物理結構設計的結果,在計算機系統上建立實際的數據庫結構、導入數據并進行程序的調試。它相當于軟件工程中的代碼編寫和程序調試的階段。創(chuàng)建數據庫主要通過T-SQL語句來實現,在查詢

17、分析器分別輸入以下語句來執(zhí)行:create database 點歌系統數據庫(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','李偉','男','中國','

18、;流行','lw','大陸')insert into 歌星表 values ('002','周杰倫','男','中國','流行','zjl','港臺')insert into 歌星表 values ('003','許嵩','男','中國','搖滾','xs','港臺')insert into 歌星表 values ('004&

19、#39;,'陳音','女','中國','流行','cy','港臺')insert into 歌星表 values ('005','王力宏','男','中國','搖滾','wlh','大陸')insert into 歌星表 values ('006','paul','女','美國','流行','pau&#

20、39;,'外國')insert 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), 歌

21、曲拼音縮寫 Char(20) not null, 歌曲時長 datetime)insert into 歌曲表 values ('1','七里香','2','國語','愛情','D盤DB文件夾','qlx','06:35')insert into 歌曲表 values ('2','千里之外','2','粵語','悲傷','D盤DB文件夾','qlzw',

22、9;03:51')insert into 歌曲表 values ('3','忐忑','7','英語','歡樂','D盤DB文件夾','tt','04:55')insert into 歌曲表 values ('4','千里之外','3','國語','悲傷','D盤DB文件夾','qlzw','04:12')insert into 歌曲表

23、 values ('5','月亮之光','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','七

24、里香','周杰倫','11','99','220')insert into 金曲排行表 values ('2','千里之外','周杰倫','31','199','550')insert into 金曲排行表 values ('3','忐忑','李曉','22','124','330')insert into 金曲排行表 values

25、('4','千里之外','許嵩','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 for

26、eign key (操作人員) references 管理員表(管理員用戶名), 備注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

27、 , 用戶性別Char(2)Not null check(用戶性別 in ('男' , '女'), 出生日期datetimeNot null , 注冊日期datetimeNot null)insert into 用戶表values('801','chenfeng','chen92','陳峰','男','1992-02-12','2013-01-08')insert into 用戶表values('802','lm2013'

28、;,'linming20','林敏','女','1995-04-21','2013-01-01')insert into 用戶表values('803','tingting9527','','謝婷婷','女','1990-06-18','2013-01-03')insert into 用戶表values('804','wbqlinhao88','s',

29、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 歌曲表(

30、歌曲編號) on 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',&

31、#39;3','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','

32、2013-01-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')

33、insert into 收藏表 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 收藏表

34、values ('804','5','2013-03-11')數據庫關系圖: 5.1.2 視圖設計為了便于瀏覽經常查詢的信息,提高查詢效率,可以考慮建立相關視圖,因為它不僅可提供了數據庫安全性,還可以節(jié)省系統資源開銷。(1)用戶表、收藏表,歌星表,歌曲表之間,建立一個歌曲總點擊率超過一百的視圖create view VIEW_用戶喜愛歌曲as select 用戶表.用戶編號,用戶登錄名,用戶姓名,收藏表.歌曲編號,歌曲表.歌曲名稱,金曲排行表.歌星姓名,總點擊率from 用戶表,收藏表,歌星表,歌曲表,金曲排行表where 用戶表.用戶編號=收藏

35、表.用戶編號 -用戶表連接收藏表 and 收藏表.歌曲編號=歌曲表.歌曲編號 -收藏表連接歌曲表 and 歌曲表.歌星編號=歌星表.歌星編號 -歌曲表連接歌星表 and 歌曲表.歌曲編號=金曲排行表.歌曲編號 -歌曲表連接金曲排行表 and 總點擊率>100(2) 根據金曲排行表,建立周點擊率,月點擊率,總點擊率的平均點擊率的視圖create view VIEW_平均點擊率asselect AVG(周點擊率) 周平均,AVG(月點擊率) 月平均,AVG(總點擊率) 總平均 from 金曲排行表(3) 根據金曲排行表和平均點擊率視圖分別建立歌曲的周排行榜、月排行榜、總排行榜視圖create

36、 view VIEW_周排行榜asselect 歌曲名稱,歌星姓名,周點擊率from 金曲排行表,VIEW_平均點擊率where 周點擊率>周平均create view VIEW_月排行榜asselect 歌曲名稱,歌星姓名,月點擊率from 金曲排行表,VIEW_平均點擊率where 月點擊率>月平均create view VIEW_總排行榜asselect 歌曲名稱,歌星姓名,總點擊率from 金曲排行表,VIEW_平均點擊率where 總點擊率>總平均 (4) 根據歌曲表和排行榜視圖建立熱門歌手視圖,要求歌星在周、月和總排行榜三個排行榜至少有一次榜上有名。create

37、view VIEW_熱門歌手asselect 歌曲名稱,歌星姓名from 金曲排行表,VIEW_平均點擊率where 總點擊率>總平均 or 月點擊率>月平均 or 周點擊率>周平均5.1.3 存儲過程設計1、-本存儲過程是對排行表進行一定的數據結構的設計,在用戶表是通過 -對總點擊率進行設計的,分別設計兩個變量進行累加點擊率的處理。create proc pr_總點擊x int,y int,總點擊率 int outputasset 總點擊率=x+yselect 歌曲名稱,歌星姓名from 金曲排行表where x=總點擊率 and y=總點擊率-調用存儲過程:declare

38、 總點擊率 intexecute 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_插入歌星 歌

39、星編號 int, 歌星姓名 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ā)器的目的是為了完成歌曲在系統中的不定期的更新,點播熱門歌曲會

40、有,滿足用戶需求,數據庫會對時間進行自動修該,來創(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 i

41、nsert as declare 歌曲編號 intset 歌曲編號='插入成功' print 歌曲編號3、插入歌星觸發(fā)器create trigger tri_插入歌星 on 歌星表for insert as declare 歌星編號 int,歌星姓名 char(20)set 歌星編號='恭喜,信息插入成功'set 歌星姓名='恭喜,信息插入成功' print 歌星編號print 歌星姓名 5.2數據庫的數據完整性設計 5.2.1 數據庫完整性概念數據庫完整性是指數據庫中數據的正確性和相容性。數據庫完整性由各種各樣的完整性約束來保證,因此可以說數據

42、庫完整性設計就是數據庫完整性約束的設計。數據庫的完整性包括:(1)實體完整性實體完整性將行定義為特定表的唯一實體。實體完整性通過索引、UNIQUE 約束、PRIMARY KEY 約束或 IDENTITY 屬性強制表的標識符列或主鍵的完整性。(2) 參照完整性參照完整性保證在主鍵(在被參考表中)和外鍵之間的關系總是得到維護(通過 FOREIGN KEY 和 CHECK 約束),確保鍵值在所有表中一致,要求不能引用不存在的值,如果鍵值更改了,那么在整個數據庫中,對該鍵值的所有引用要進行一致的更改;(3)用戶定義的完整性用戶定義完整性使得用戶得以定義不屬于其它任何完整性分類的特定業(yè)務規(guī)則。所有的完整

43、性類型都支持用戶定義完整性(CREATE TABLE 中的所有列級和表級約束、存儲過程和觸發(fā)器)。 5.2.2 違反數據庫完整性 1、違反實體完整性 本系統中有以下7個關系模式,帶下劃線為主碼,刪除線為外碼。歌星(歌星編號,歌星姓名,歌星性別,國籍,歌星類型,地區(qū),拼音縮寫)歌曲(歌曲編號,歌曲名稱,歌星編號,語種,歌曲類型,路徑,歌曲拼音縮寫,歌曲時長)金曲排行(歌曲編號,歌曲名稱,歌星姓名,周點擊率,月點擊率,總點擊率)后臺日志(操作編號,操作內容,操作時間,操作人員,備注)管理員(管理員用戶名,管理員密碼)用戶(用戶編號,用戶登錄名,用戶密碼,用戶姓名,用戶性別,出生日期,注冊日期)收藏

44、(用戶編號,歌曲編號,日期) 對以上的基本表進行增加、刪除和修改操作時,檢測:1、 檢查主碼值是否唯一,如果不是唯一則拒絕插入。2、 檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入。2. 違反參照完整性可能破壞參照完整性的情況及違約處理:對應的數據庫的參照完整性設計:create table 收藏表( 用戶編號int, 歌曲編號int , primary key (用戶編號,歌曲編號), foreign key (用戶編號) references 用戶表(用戶編號) on delete cascade /*當刪除用戶表的元組時,級連刪除收藏表中相應的元組*/ on update casc

45、ade,/*當更新用戶表的用戶編號時,級連更新收藏表中相應的元組*/ foreign key (歌曲編號) references 歌曲表(歌曲編號) on delete no action /*當刪除歌曲表的元組時造成了與收藏表不一致時拒絕刪除*/ on update cascade, /*當更新歌曲表的歌曲編號時,級連級連更新收藏表中相應的元組*/ 日期datetime)3、違反自定義完整性1、性別只能取值男或女,對應T-SQL設計CHECK(SEX IN '男'或'女'),當性別插入值在可行域外的時候拒絕執(zhí)行,并利用觸發(fā)器提醒用戶輸入正確值。2、 要求用戶登

46、錄名唯一,屬性列定義需加上UNIQUE限制。管理員添加用戶的時候,若新增用戶登錄名已存在用戶信息表中,回被系統拒絕執(zhí)行。5.3數據的安全設計 在卡拉OK點歌系統中,設計了用戶登錄和管理員登錄。其中用戶只有檢索和收藏歌曲的權限,管理員能夠對歌曲信息、歌星信息、用戶信息作增刪改查操作。為了避免操作權限的交錯,本系統設計規(guī)定只有一個管理員。5.4系統功能模塊的設計與實現 5.4.1 系統功能描述 1. 點歌功能描述:進入卡拉OK點歌系統后,顯示的是各種點歌模式:有拼音點歌、歌星點歌、分類點歌、語種點歌,全部歌曲,每個點歌模塊都可以查詢想要點的歌曲。主要模塊功能如下: 拼音點歌:AZ 26個字母自由組

47、合,對應拼音模糊搜索。歌星點歌:顯示歌星列表,對應歌星個人專輯。分類點歌:愛情、悲傷、歡樂、輕快語種點歌:國語、粵語、英語 全部歌曲:顯示全部歌曲,方便點播歌曲。 2.歌曲管理功能描述: 用戶點歌完畢之后,可進入歌曲管理,查看自己的歌曲和收藏自己喜歡的歌曲,也可以按照金曲排行來點播想要的歌曲。主要模塊功能如下: 已點歌曲:根據用戶個人喜好點播歌曲,方便用戶查看已選歌曲列表。 收藏歌曲:根據用戶個人喜好收藏歌曲,進入已點歌曲列表點擊收藏即可。 金曲排行:根據總點擊率設計的排行榜,方便用戶查找熱門歌曲。 3.后臺數據庫維護功能描述 管理員可登錄后臺管理系統對歌曲、歌星、用戶進行管理和維護。進入后臺

48、管理系統后,顯示的是歌曲管理、歌星管理、用戶管理大三模塊。主要模塊功能如下: 歌曲管理:管理員可根據歌曲信息添加歌曲,刪除歌曲,查詢歌曲。 歌星管理:管理員可根據歌星信息添加歌星,刪除歌星,查詢歌星。 用戶管理:管理員可根據用戶信息添加用戶,刪除用戶,查詢用戶。 5.4.2 功能模塊設計 對上述各項功能進行集中,分塊,按照結構化程序設計的要求,分為系統點歌功能模塊和后臺數據庫維護功能模塊。 1.系統點歌模塊 系統點歌模塊由點歌和歌曲管理兩大功能模塊組成。 點歌功能模塊包括了:拼音點歌、歌星點歌、分類點歌、語種點歌、全部歌曲。歌曲管理模塊包括了:已點歌曲、收藏歌曲、金曲排行。5.5系統功能測試5

49、.5.1 登錄界面測試1. 用戶登錄界面2管理員登錄界面 3. 登錄名或密碼錯誤5.5.2點歌測試1. 拼音點歌采用拼音模糊搜索,查找所有包含“ql”拼音縮寫的歌曲。結論:結果是正確的,千里之外和七里香的拼音縮寫均包含了ql,上數據庫查證結果也是一致。2. 歌星點歌搜索周杰倫的專輯,任意選擇一首歌。并檢查是否出現在歌曲管理中的已選列表。發(fā)現是成功的,已選列表包含了七里香這首歌。3. 分類點歌查詢“愛情”類型的全部歌曲驗證結果:select song.id,,,song.typefrom song,singerwhere song.singerid=sin

50、ger.id and song.type='愛情'和數據庫的查詢結果相符合,所以測試結果是正確的。4. 語種點歌查詢所有粵語歌曲驗證結果:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.id and song.eng='粵語'結論:與數據庫查詢的結果一致,結果是正確的。5. 全部歌曲查詢歌曲庫結果驗證:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.id與數據庫的查詢結果一致,說明結果正確。6.已點歌曲&收藏歌曲&金曲排行榜搜索金曲排行榜,選擇第一首歌,查詢已選歌曲并收藏。第一步:第二步:值得注意的是同一首歌不能重復收藏,如圖: 5.5.3后

溫馨提示

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

評論

0/150

提交評論