KTV点歌系统-广工数据库课程设计 - 图文

更新时间:2023-11-15 00:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成 绩

课 程 设 计

课程名称 数据库系统 题目名称___ 卡拉OK点歌系统___ 学生学院 计算机学院 专业班级 2010级计算机科学与技术四班 学 号 3110006015 学生姓名 张法光 指导教师 路璐

2013年 1 月 12 日

论文 评价标准 论文结构包含: 1、相关技术介绍、需求分析、 2、概念结构设计(涉及的实体至少三个以上)、 3、逻辑结构设计(有完整性约束说明)、 4、数据库物理设计、 5、数据库完整性设计(违反实体、参照完整性时的解决办法,比如触发器、存储过程等) 5、数据库安全性设计、 6、数据库实施、系统测试方案和测试报告、 7、系统的主要功能和使用说明、系统安装说明。 要求论文完整、内容详细,格式规范。 40 分数比例(%) 成绩 程序 1、 系统运行正确; 30 2、功能完善:有增、删、改、查功能,输入、输出功能; 3、有基本的统计、报表功能 4、有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、分组查询等。 5、工作量饱满; 6、系统实现技术的难度。 E-R图设计正确,至少3个实体; 数据库逻辑结构设计规范化; 数据库物理设计合理。 中 及格 不及格 30 总分 数据 库设 计 总评成绩 优 良 目 录

1 引言 .............................................................................................................................................. 7

1.1课题来源 ............................................................................................................................ 7 1.2课题研究主要内容 ............................................................................................................ 7 1.3主要工作 ............................................................................................................................ 8 2 需求分析....................................................................................................................................... 8

2.1信息要求分析 .................................................................................................................... 8 2.2处理要求分析 .................................................................................................................... 8 2.3数据字典及安全性、完整性要求分析 ............................................................................ 9 3 概念结构设计 ............................................................................................................................. 10

3.1数据实体描述及分ER图 ................................................................................................ 10 3.2整体ER图 ........................................................................................................................ 13 4 系统概要设计 ............................................................................................................................. 14

4.1数据库逻辑结构设计 ...................................................................................................... 14 4.2数据库物理设计 .............................................................................................................. 16 4.3系统总体框架 .................................................................................................................. 17 5 系统详细设计 ............................................................................................................................. 17

5.1数据库实施 ...................................................................................................................... 17 5.2数据库的数据完整性设计 .............................................................................................. 29 5.3数据的安全设计 .............................................................................................................. 31 5.4系统功能模块的设计与实现 .......................................................................................... 31 5.5系统功能测试 .................................................................................................................. 32 5.6数据库性能检测与备份设计 .......................................................................................... 49 5.7系统安装使用说明 .......................................................................................................... 49 6 回顾与展望 ................................................................................................................................. 50 7 参考文献..................................................................................................................................... 50

用户密码 用户姓名 用户性别 出生日期 注册日期

Char(20) Char(20) Char(2) datetime datetime Not null Not null Not null Not null Not null 收藏表

男或女 列名 用户编号 歌曲编号 日期

数据类型 int int datetime

能否取空 Not null Not null 约束性 主属性、外键 主属性、外键

4.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 歌星表

( 歌星编号 int primary 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 金曲排行表 (

歌曲编号 int primary key ,

歌曲名称 Char(20) Not null, 歌星姓名 Char(10) Not null, 周点击率 Char(10), 月点击率 Char(10), 总点击率 Char(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 后台日志表 (

操作编号 int primary key , 操作内容 Char(40) Not null, 操作时间 datetime Not 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')

结果验证:重新查询歌星列表,发现歌星杜兰特已不在列,删除成功。

5. 添加用户

结果验证:可在用户列表中找到用户test,添加操作成功。

6 删除用户

删除王宝强这个用户,登陆名为wbqinhao88.

结果验证:用户列表无法找到王宝强,说明此次删除操作成功。

5.6数据库性能检测与备份设计

5.6.1 数据库性能监测

性能监测是通过获取数据库系统正常工作运行时的各项指标来监测系统性能。在优化和监测数据库应用系统时,也需要借助各种工具。SQL Server 2005提供了一系列性能监测和优化工具,帮助用户监测SQL Server事件,评估SQL Server的性能,为优化SQL Server数据库提供依据。在数据库工作状态下仔细地考虑性能监测工作,这在数据库的性能调优过程中尤为需要。性能调优的优先顺序的步骤为筛选跟踪数据、重播跟踪和使用数据库性能监测工具定位和分析问题。

5.6.2 数据库备份设计

SQL Server2008提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。下面是介绍“分离/附加”的备份设计。

这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。

1、分离数据库就是将某个数据库从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。

2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。

5.7系统安装使用说明

所需编程软件:Eeclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

6 回顾与展望

做完卡拉OK点歌系统的时候,有种如释负重的感觉。数据库修改了许多次,界面也是调试了很久。回顾整个项目的开发,连接数据库比较简单,系统界面也不难,关键在按钮的“监听”和对数据库的数据处理,与学JAVA的师兄交流了好几天,基本确定了设计框架,刚开始做还是比较麻烦的,经常遇到许多未知的BUG,也有无法读取结果的时候。下苦心调试好前台的点歌模块,后续编程思路就清晰许多了,完成了添加歌曲功能模块后,添加用户和歌星参照设计模版,继而把后台管理系统开发出来,最后也总算把整个卡拉OK系统完成了。很高兴能够达到预期的目标和积累到数据库项目开发的经验,更加坚定了自己以后的编程之路。比较遗憾的是,由于时间的限制和对JAVA界面设计进阶了解的局限性,系统做得并不是十分精美,但也适当得添加了一些背景图片,还有点播歌曲这个功能模块尚未实现。但课程设计并不是学习项目开发的终点,寒假也有充裕的时间去了解点播歌曲的实现,所以最后决定在后几天继续完成对音乐点播模块的开发设计和对系统界面的进一步美化。

7 参考文献

[1] 王珊、萨师煊.数据库系统概论. 北京.高等教育出版社.2006. [2] 王珊等. 数据仓库技术与联机分析处理. 北京.科学出版社.1998. [3] 贾讽波.杨树青、杨玉顺.数据库应用实例.北京:人民邮电出版社.2006.

(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 ('男' , '女')), 出生日期 datetime Not null , 注册日期 datetime Not 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','2581521','谢婷婷','女','1990-06-18','2013-01-03') insert into 用户表

values('804','wbqlinhao88','s20081212','王宝强','男','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_平均点击率 as

select AVG(周点击率) 周平均,AVG(月点击率) 月平均,AVG(总点击率) 总平均 from 金曲排行表

(3)根据金曲排行表和平均点击率视图分别建立歌曲的周排行榜、月排行榜、总排行榜视图

create view VIEW_周排行榜 as

select 歌曲名称,歌星姓名,周点击率 from 金曲排行表,VIEW_平均点击率 where 周点击率>周平均

create view VIEW_月排行榜 as

select 歌曲名称,歌星姓名,月点击率 from 金曲排行表,VIEW_平均点击率 where 月点击率>月平均

create view VIEW_总排行榜 as

select 歌曲名称,歌星姓名,总点击率 from 金曲排行表,VIEW_平均点击率 where 总点击率>总平均

(4)根据歌曲表和排行榜视图建立热门歌手视图,要求歌星在周、月和总排行榜三个排行榜至少有一次榜上有名。

create view VIEW_热门歌手 as

select 歌曲名称,歌星姓名

from 金曲排行表,VIEW_平均点击率

where 总点击率>总平均 or 月点击率>月平均 or 周点击率>周平均

5.1.3 存储过程设计

1、--本存储过程是对排行表进行一定的数据结构的设计,在用户表是通过

--对总点击率进行设计的,分别设计两个变量进行累加点击率的处理。 create proc pr_总点击 @x int, @y int,

@总点击率 int output as

set @总点击率=@x+@y

select 歌曲名称,歌星姓名 from 金曲排行表

where @x=总点击率 and @y=总点击率

--调用存储过程:

declare @总点击率 int execute pr_总点击 '总点击率',

@总点击率 output

--查询存储过程:

exec sp_help pr_总点击

2、插入歌曲信息存储过程

create procedure pr_插入歌曲 @歌曲编号 int, @歌曲名称 char(20), @歌星编号 int,

@歌曲拼音缩写 char(20) as

insert into 歌曲表 (歌曲编号,歌曲名称,歌星编号,歌曲拼音缩写) values (@歌曲编号,@歌曲名称,@歌星编号,@歌曲拼音缩写)

--查询存储过程:

exec sp_help pr_插入歌曲

3、插入歌星信息存储过程

create procedure pr_插入歌星 @歌星编号 int, @歌星姓名 char(20), @歌星类型 char(20), @拼音缩写 char(20) as

insert into 歌星表 (歌星编号,歌星姓名,歌星类型,拼音缩写) values (@歌星编号,@歌星姓名,@歌星类型,@拼音缩写)

--查询存储过程:

exec sp_help pr_插入歌星

4、删除用户存储过程 create proc pr_删除用户 @用户编号 int as

delete from 用户表

where 用户编号=@用户编号

--查询存储过程:

exec sp_help pr_删除用户

5.1.4 触发器设计

1、更新排行触发器

该触发器的目的是为了完成歌曲在系统中的不定期的更新,点播热门歌曲会有,满足用户需求,数据库会对时间进行自动修该,来创建的触发器。 create trigger tg_update on 金曲排行表 for insert,update as

declare @x int,@y int

select @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 @歌曲编号 int

set @歌曲编号='插入成功' 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点歌系统后,显示的是各种点歌模式:有拼音点歌、歌星点歌、分类点歌、语种点歌,全部歌曲,每个点歌模块都可以查询想要点的歌曲。主要模块功能如下:

拼音点歌:A~Z 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.name,singer.name,song.type from song,singer

where song.singerid=singer.id and song.type='爱情'

和数据库的查询结果相符合,所以测试结果是正确的。

4.语种点歌

查询所有粤语歌曲

验证结果:

select song.id,song.name,singer.name,song.type from song,singer

where song.singerid=singer.id and song.eng='粤语'

结论:与数据库查询的结果一致,结果是正确的。

5.全部歌曲

查询歌曲库

结果验证:

select song.id,song.name,singer.name,song.type from song,singer

where song.singerid=singer.id

与数据库的查询结果一致,说明结果正确。

6.已点歌曲&收藏歌曲&金曲排行榜

搜索金曲排行榜,选择第一首歌,查询已选歌曲并收藏。 第一步:

第二步:

值得注意的是同一首歌不能重复收藏,如图:

5.5.3后台管理测试

本系统规定后台管理员只有一个,帐号密码均为admin.下面开始测试:

1. 添加歌曲

添加王力宏的新歌,编号111,国语,类型欢乐,保存在D盘的DB文件目录下,歌曲时长为03:51.

查询是否添加成功:

结果:歌曲添加成功!

2. 删除歌曲

删除刚才添加的新歌并验证结果。

结果验证:发现歌曲“唯一”已不存在,说明删除成功。

3. 添加歌星

结果验证:发现杜兰特在歌星列表中,操作正确。

4. 删除歌星

删除歌星杜兰特,并验证删除结果。

本文来源:https://www.bwwdw.com/article/4bmv.html

Top