KTV点歌系统-广工数据库课程设计_第1页
KTV点歌系统-广工数据库课程设计_第2页
KTV点歌系统-广工数据库课程设计_第3页
KTV点歌系统-广工数据库课程设计_第4页
KTV点歌系统-广工数据库课程设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩课 程 设 计 课程名称 数据库系统 题目名称_ 卡拉OK点歌系统_学生学院 计算机学院 专业班级 2010级计算机科学与技术四班 学 号 学生姓名 张法光 指导教师 路璐 2013年 1 月 12 日评价标准分数比例(%)成绩论文论文结构包含:1、相关技术介绍、需求分析、2、概念结构设计(涉及的实体至少三个以上)、3、逻辑结构设计(有完整性约束说明)、4、数据库物理设计、5、数据库完整性设计(违反实体、参照完整性时的解决办法,比如触发器、存储过程等)5、数据库安全性设计、6、数据库实施、系统测试方案和测试报告、7、系统的主要功能和使用说明、系统安装说明。要求论文完整、内容详细,格式规范。40程序1、 系统运行正确;2、功能完善:有增、删、改、查功能,输入、输出功能;3、有基本的统计、报表功能4、有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、分组查询等。5、工作量饱满;6、系统实现技术的难度。30数据库设计E-R图设计正确,至少3个实体;数据库逻辑结构设计规范化;数据库物理设计合理。30总评成绩 优 良 中 及格 不及格总分目 录1 引言81.1课题来源81.2课题研究主要内容81.3主要工作92 需求分析92.1信息要求分析92.2处理要求分析92.3数据字典及安全性、完整性要求分析103 概念结构设计113.1数据实体描述及分ER图113.2整体ER图144 系统概要设计154.1数据库逻辑结构设计154.2数据库物理设计174.3系统总体框架185 系统详细设计185.1数据库实施185.2数据库的数据完整性设计305.3数据的安全设计325.4系统功能模块的设计与实现325.5系统功能测试555.6数据库性能检测与备份设计715.7系统安装使用说明716 回顾与展望727 参考文献721 引言1.1课题来源随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV厅唱K休闲娱乐。唱歌,自然免不了点歌的繁琐。传统的点歌设备主要是CD和固放设备组成,虽然基本满足了人们的需求,但是也带来了设备成本高,点歌过程繁琐,更新麻烦等不少问题。随着科学的发展和信息时代的到来,点歌系统应运而生,卡拉OK点歌系统已经成为了娱乐场所必不可少的一部分。卡拉OK点歌系统不仅简化了用户操作,而且极大化满足了人们的需求和使用习惯。1.2课题研究主要内容 卡拉OK点歌系统是娱乐场所的一项管理措施,因此开发卡拉OK点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。卡拉OK点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,卡拉OK点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。该设计文档主要介绍点歌系统的数据库设计内容。建立数据库和相关表和SQL语言的使用和用例图的设计和设计综述。然而,设计出一个让用户满意的点歌系统并不是那么容易,本次课程设计将利用Eclipse和SQL SERVER2008等工具进行开发实践工作。1.3主要工作 本次课程设计个人独立完成。包括界面模块,需求分析,概念设计,系统设计,数据库实现等设计。本次卡拉OK系统的开发主要前台点歌系统和后台管理系统模块的开发。前台点歌系统包含了拼音点歌、歌星点歌、分类点歌、语种点歌,全部歌曲,每个点歌模块都可以查询想要点的歌曲。用户点歌完毕之后,可进入歌曲管理,查看自己的歌曲和收藏自己喜欢的歌曲,也可以按照金曲排行来点播想要的歌曲。 管理员可登录后台管理系统对歌曲、歌星、用户进行管理和维护。进入后台管理系统后,显示的是歌曲管理、歌星管理、用户管理大三模块。2 需求分析2.1信息要求分析经过对卡拉OK点歌系统的结构化分析,得出信息要求如下:1.、歌星信息:包括了歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写。2、歌曲信息:包括了歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、路径、歌曲拼音缩写、歌曲时长3、金曲排行信息:包括了歌曲编号、歌曲名称、歌星姓名、周点击率 、月点击率 、总点击率4、后台日志信息:包括了操作编号、操作内容 、操作时间、操作人员、备注5、管理员信息:包括了管理员用户名 管理员密码6、用户信息:包括了用户编号、用户登录名、用户密码、用户姓名、用户性别、出生日期 注册日期2.2处理要求分析 卡拉OK点歌系统主要分为歌曲的查询与管理,管理主要包括歌曲的查询,增添,修改,删除;查询可以按照歌星查询,歌曲类型查询,歌曲名称查询等方式查询。 系统功能需求:2.2.1 点播歌曲 点歌是最基本也是最重要的功能,重在快捷方便。比如拼音点歌、指定歌星点歌,只需输入相应的拼音简写然后点击,就能检索到想要点播的歌曲。2.2.2 添加歌曲 音乐是滚动的时尚元素,明天都可能有新的创作,所以添加新歌也是必不可少的功能。当然,经典老歌也是不可或缺的元素,适当添加经典老歌,增添怀旧的气氛。2.2.3 歌曲管理 歌曲库十分庞大,给歌曲管理带来一定的难度。对歌曲信息的增添和删改同样需要相应的子功能模块管理。2.2.4 后台记录 系统在运行当中难免出现故障,对数据库的部分重要更新操作可记录入库,作为系统故障时恢复的依据。2.3数据字典及安全性、完整性要求分析名称描述定义位置歌星信息主要用于存储歌星歌手的基本信息包括:歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写数据库的歌星信息表歌曲信息记录歌曲的基本信息包括:歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、文件路径、歌曲拼音缩写、歌曲时长数据库的歌曲信息表金曲排行记录歌曲热度信息包括:歌曲编号、歌曲名称、歌星姓名、周点击率、月点击率,总点击率数据库的歌曲排行榜信息表后台日志记录后台操作日志记录包括:操作编号、操作内容、操作时间、操作人员、备注数据库的后台操作记录表管理员信息记录管理员相关信息包括:管理员编号、管理员用户名、管理员密码数据库的管理员信息表用户信息记录用户资料和歌曲收藏信息包括:用户编号、用户登录名、用户密码、收藏歌曲编号、用户姓名、用户性别、出生日期、注册日期数据库的用户信息表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图中则作为属性。歌星包含自己的属性,不能放在歌曲信息表的属性里,此时把歌曲表里面的歌星字段用歌星编号取代,而歌星表和歌曲表为一对多关系。(2) 命名冲突。歌曲信息与歌星信息都包含编号及名称,起名时需要区分开。分别命名为歌曲编号和歌星编号。4 系统概要设计4.1数据库逻辑结构设计为了完成需求分析中确定的基本功能和概念设计中模块的划分,通过基于3NF的数据库设计方法(通过分析,各数据表已达第三范式),构造了7张基本表。现在对这7张基本表划分基本关系,在已设计好的数据库中初步建立各表,用于存储歌曲信息和歌星信息等基本信息。此外,在基本表上定义了一些约束条件,包括基本表上数据类型和数据长度的限制以及是否允许为空或表内是否取值唯一的限定。根据E-R图,可转化为如下关系模式:关系的主码用下划线标出,外码用波浪线标出。实体:歌星(歌星编号,歌星姓名,歌星性别,国籍,歌星类型,地区,拼音缩写)歌曲(歌曲编号,歌曲名称,歌星编号,语种,歌曲类型,路径,歌曲拼音缩写,歌曲时长)金曲排行(歌曲编号,歌曲名称,歌星姓名,周点击率,月点击率,总点击率)后台日志(操作编号,操作内容,操作时间,操作人员,备注)管理员(管理员用户名,管理员密码)用户(用户编号,用户登录名,用户密码,用户姓名,用户性别,出生日期,注册日期)联系:收藏(用户编号,歌曲编号,日期)歌星表列名数据类型能否取空约束性歌星编号intNot null主键歌星姓名Char(10)Not null歌星性别char(2)男或女国籍Char(20)歌星类型Char(10)地区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后台日志表列名数据类型能否取空约束性操作编号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注册日期datetimeNot null收藏表列名数据类型能否取空约束性用户编号intNot null主属性、外键歌曲编号intNot null主属性、外键日期datetime4.2数据库物理设计 4.2.1 介绍数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。数据库的物理设计通常分为两步:一:确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;二:对物理结构进行评价,评价的重点是时间和空间效率。 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系统总体框架 根据系统功能的需求分析和卡拉OK点歌系统的特点,经过模块化的分析得出系统功能模块结构图。系统结构图:5 系统详细设计5.1数据库实施完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库了,这就是数据库实施阶段。5.1.1 数据库的实施数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。创建数据库主要通过T-SQL语句来实现,在查询分析器分别输入以下语句来执行:create database 点歌系统数据库(1)create table 歌星表( 歌星编号intprimary key, 歌星姓名char(10) not null, 歌星性别char(2) check (歌星性别 in (男 , 女), 国籍char(20), 歌星类型 char(10), 拼音缩写char(20) not null, 地区 char(20) insert into 歌星表 values (001,李伟,男,中国,流行,lw,大陆)insert into 歌星表 values (002,周杰伦,男,中国,流行,zjl,港台)insert into 歌星表 values (003,许嵩,男,中国,摇滚,xs,港台)insert into 歌星表 values (004,陈音,女,中国,流行,cy,港台)insert into 歌星表 values (005,王力宏,男,中国,摇滚,wlh,大陆)insert into 歌星表 values (006,paul,女,美国,流行,pau,外国)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), 歌曲拼音缩写 Char(20) not null, 歌曲时长 datetime)insert into 歌曲表 values (1,七里香,2,国语,爱情,D盘DB文件夹,qlx,06:35)insert into 歌曲表 values (2,千里之外,2,粤语,悲伤,D盘DB文件夹,qlzw,03:51)insert into 歌曲表 values (3,忐忑,7,英语,欢乐,D盘DB文件夹,tt,04:55)insert into 歌曲表 values (4,千里之外,3,国语,悲伤,D盘DB文件夹,qlzw,04:12)insert into 歌曲表 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,七里香,周杰伦,11,99,220)insert into 金曲排行表 values (2,千里之外,周杰伦,31,199,550)insert into 金曲排行表 values (3,忐忑,李晓,22,124,330)insert into 金曲排行表 values (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 foreign 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 , 用户性别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,linming20,林敏,女,1995-04-21,2013-01-01)insert into 用户表values(803,tingting9527,谢婷婷,女,1990-06-18,2013-01-03)insert into 用户表values(804,wbqlinhao88,s,王宝强,男,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 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,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-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 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 收藏表 values (804,5,2013-03-11)数据库关系图: 5.1.2 视图设计为了便于浏览经常查询的信息,提高查询效率,可以考虑建立相关视图,因为它不仅可提供了数据库安全性,还可以节省系统资源开销。(1)用户表、收藏表,歌星表,歌曲表之间,建立一个歌曲总点击率超过一百的视图create view VIEW_用户喜爱歌曲as select 用户表.用户编号,用户登录名,用户姓名,收藏表.歌曲编号,歌曲表.歌曲名称,金曲排行表.歌星姓名,总点击率from 用户表,收藏表,歌星表,歌曲表,金曲排行表where 用户表.用户编号=收藏表.用户编号 -用户表连接收藏表 and 收藏表.歌曲编号=歌曲表.歌曲编号 -收藏表连接歌曲表 and 歌曲表.歌星编号=歌星表.歌星编号 -歌曲表连接歌星表 and 歌曲表.歌曲编号=金曲排行表.歌曲编号 -歌曲表连接金曲排行表 and 总点击率100(2) 根据金曲排行表,建立周点击率,月点击率,总点击率的平均点击率的视图create view VIEW_平均点击率asselect AVG(周点击率) 周平均,AVG(月点击率) 月平均,AVG(总点击率) 总平均 from 金曲排行表(3) 根据金曲排行表和平均点击率视图分别建立歌曲的周排行榜、月排行榜、总排行榜视图create view VIEW_周排行榜asselect 歌曲名称,歌星姓名,周点击率from 金曲排行表,VIEW_平均点击率where 周点击率周平均create view VIEW_月排行榜asselect 歌曲名称,歌星姓名,月点击率from 金曲排行表,VIEW_平均点击率where 月点击率月平均create view VIEW_总排行榜asselect 歌曲名称,歌星姓名,总点击率from 金曲排行表,VIEW_平均点击率where 总点击率总平均 (4) 根据歌曲表和排行榜视图建立热门歌手视图,要求歌星在周、月和总排行榜三个排行榜至少有一次榜上有名。create 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 总点击率 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_插入歌星 歌星编号 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 触发器设计 1、更新排行触发器 该触发器的目的是为了完成歌曲在系统中的不定期的更新,点播热门歌曲会有,满足用户需求,数据库会对时间进行自动修该,来创建的触发器。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、插入歌曲触发器create trigger tri_插入歌曲 on 歌曲表for insert as declare 歌曲编号 intset 歌曲编号=插入成功 print 歌曲编号3、插入歌星触发器create trigger tri_插入歌星 on 歌星表for insert as declare 歌星编号 int,歌星姓名 char(20)set 歌星编号=恭喜,信息插入成功set 歌星姓名=恭喜,信息插入成功 print 歌星编号print 歌星姓名 5.2数据库的数据完整性设计 5.2.1 数据库完整性概念数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库的完整性包括:(1)实体完整性实体完整性将行定义为特定表的唯一实体。实体完整性通过索引、UNIQUE 约束、PRIMARY KEY 约束或 IDENTITY 属性强制表的标识符列或主键的完整性。(2) 参照完整性参照完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护(通过 FOREIGN KEY 和 CHECK 约束),确保键值在所有表中一致,要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改;(3)用户定义的完整性用户定义完整性使得用户得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATE TABLE 中的所有列级和表级约束、存储过程和触发器)。 5.2.2 违反数据库完整性 1、违反实体完整性 本系统中有以下7个关系模式,带下划线为主码,删除线为外码。歌星(歌星编号,歌星姓名,歌星性别,国籍,歌星类型,地区,拼音缩写)歌曲(歌曲编号,歌曲名称,歌星编号,语种,歌曲类型,路径,歌曲拼音缩写,歌曲时长)金曲排行(歌曲编号,歌曲名称,歌星姓名,周点击率,月点击率,总点击率)后台日志(操作编号,操作内容,操作时间,操作人员,备注)管理员(管理员用户名,管理员密码)用户(用户编号,用户登录名,用户密码,用户姓名,用户性别,出生日期,注册日期)收藏(用户编号,歌曲编号,日期) 对以上的基本表进行增加、删除和修改操作时,检测:1、 检查主码值是否唯一,如果不是唯一则拒绝插入。2、 检查主码的各个属性是否为空,只要有一个为空就拒绝插入。2. 违反参照完整性可能破坏参照完整性的情况及违约处理:对应的数据库的参照完整性设计:create table 收藏表( 用户编号int, 歌曲编号int , primary key (用户编号,歌曲编号), foreign key (用户编号) references 用户表(用户编号) on delete cascade /*当删除用户表的元组时,级连删除收藏表中相应的元组*/ on update cascade,/*当更新用户表的用户编号时,级连更新收藏表中相应的元组*/ foreign key (歌曲编号) references 歌曲表(歌曲编号) on delete no action /*当删除歌曲表的元组时造成了与收藏表不一致时拒绝删除*/ on update cascade, /*当更新歌曲表的歌曲编号时,级连级连更新收藏表中相应的元组*/ 日期datetime)3、违反自定义完整性1、性别只能取值男或女,对应T-SQL设计CHECK(SEX IN 男或女),当性别插入值在可行域外的时候拒绝执行,并利用触发器提醒用户输入正确值。2、 要求用户登录名唯一,属性列定义需加上UNIQUE限制。管理员添加用户的时候,若新增用户登录名已存在用户信息表中,回被系统拒绝执行。5.3数据的安全设计 在卡拉OK点歌系统中,设计了用户登录和管理员登录。其中用户只有检索和收藏歌曲的权限,管理员能够对歌曲信息、歌星信息、用户信息作增删改查操作。为了避免操作权限的交错,本系统设计规定只有一个管理员。5.4系统功能模块的设计与实现 5.4.1 系统功能描述 1. 点歌功能描述:进入卡拉OK点歌系统后,显示的是各种点歌模式:有拼音点歌、歌星点歌、分类点歌、语种点歌,全部歌曲,每个点歌模块都可以查询想要点的歌曲。主要模块功能如下: 拼音点歌:AZ 26个字母自由组合,对应拼音模糊搜索。歌星点歌:显示歌星列表,对应歌星个人专辑。分类点歌:爱情、悲伤、欢乐、轻快语种点歌:国语、粤语、英语 全部歌曲:显示全部歌曲,方便点播歌曲。 2.歌曲管理功能描述: 用户点歌完毕之后,可进入歌曲管理,查看自己的歌曲和收藏自己喜欢的歌曲,也可以按照金曲排行来点播想要的歌曲。主要模块功能如下: 已点歌曲:根据用户个人喜好点播歌曲,方便用户查看已选歌曲列表。 收藏歌曲:根据用户个人喜好收藏歌曲,进入已点歌曲列表点击收藏即可。 金曲排行:根据总点击率设计的排行榜,方便用户查找热门歌曲。 3.后台数据库维护功能描述 管理员可登录后台管理系统对歌曲、歌星、用户进行管理和维护。进入后台管理系统后,显示的是歌曲管理、歌星管理、用户管理大三模块。主要模块功能如下: 歌曲管理:管理员可根据歌曲信息添加歌曲,删除歌曲,查询歌曲。 歌星管理:管理员可根据歌星信息添加歌星,删除歌星,查询歌星。 用户管理:管理员可根据用户信息添加用户,删除用户,查询用户。 5.4.2 功能模块设计 对上述各项功能进行集中,分块,按照结构化程序设计的要求,分为系统点歌功能模块和后台数据库维护功能模块。 1.系统点歌模块 系统点歌模块由点歌和歌曲管理两大功能模块组成。 点歌功能模块包括了:拼音点歌、歌星点歌、分类点歌、语种点歌、全部歌曲。歌曲管理模块包括了:已点歌曲、收藏歌曲、金曲排行。5.5系统功能测试5.5.1 登录界面测试1. 用户登录界面2管理员登录界面 3. 登录名或密码错误5.5.2点歌测试1. 拼音点歌采用拼音模糊搜索,查找所有包含“ql”拼音缩写的歌曲。结论:结果是正确的,千里之外和七里香的拼音缩写均包含了ql,上数据库查证结果也是一致。2. 歌星点歌搜索周杰伦的专辑,任意选择一首歌。并检查是否出现在歌曲管理中的已选列表。发现是成功的,已选列表包含了七里香这首歌。3. 分类点歌查询“爱情”类型的全部歌曲验证结果:select song.id,,,song.typefrom song,singerwhere song.singerid=singer.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后台管理测试 本系统规定后台管理员只有一个,帐号密码均为admin.下面开始测试:1. 添加歌曲添加王力宏的新歌,编号111,国语,类型欢乐,保存在D盘的DB文件目录下,歌曲时长为03:51.查询是否添加成功:结果:歌曲添加成功!2. 删除歌曲 删除刚才添加的新歌并验证结果。结果验证:发现歌曲“唯一”已不存在,说明删除成功。3. 添加歌星结果验证:发现杜兰特在歌星列表中,操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论