数据库音乐库系统(总35页)
-CAL-FENGHAI.-(YICAI)-Company One1
-CAL-本页仅作为文档封面,使用请直接删除
音乐库需求分析报告
1.系统背景................................................................... 3 2.系统功能................................................................... 4 3.用户类和特征 ............................................................... 4 4.用户业务流程图 ............................................................. 5
1.普通用户: ............................................................ 5 用户 .................................................................... 6 3.系统管理员 ............................................................ 6 4.用户视图 .............................................................. 6
1.普通用户 ......................................................... 6 用户 ............................................................... 7 3.系统管理员 ....................................................... 8
5.实体分析ER图 .............................................................. 8 6.数据流程图 ................................................................. 9 7.数据库的创建 .............................................................. 10 8.表的创建.................................................................. 10
1.歌曲信息:music information ...................................... 10 2.歌曲类型:music type ............................................ 11 3.意见和建议:opinions ............................................ 11 4.用户资料:user information ....................................... 12 5.登录信息:enter information ...................................... 12 6.歌曲下载方式:download ways ...................................... 13
9.表格代码.................................................................. 13 10.表约束的创建 ............................................................. 15 11.索引创建 ................................................................. 16 12.数据插入脚本 ............................................................. 16
1.歌曲信息 ............................................................. 16 2.歌曲类型 ............................................................. 17 3.意见 ................................................................. 17 4.用户信息 ............................................................. 18 5.登录信息 ............................................................. 19 6.下载方式 ............................................................. 19 13.多条件查询 ............................................................... 20
1.多重条件: ............................................................ 20 2.限定数据范围: ........................................................ 21 3.用in关键字限定范围: ................................................. 21 NULL 和 IS NOT NULL关键字: ............................................ 21 5.模糊查询: ............................................................ 22 14.分组统计的使用 ........................................................... 22
1.集合函数: ............................................................ 22
2
2.分组汇总: ............................................................ 22 11. 排序.................................................................... 22 15.嵌套查询 ................................................................. 23
1.内连接: .............................................................. 23 2.外连接: .............................................................. 23 16.模糊查询 ................................................................. 24 12. 数据的修改和删除 ........................................................ 24 13. 创建视图 ................................................................ 25 14. 创建储存过程 ............................................................ 26 15. 创建触发器 .............................................................. 28 16. 事务.................................................................... 29 17. 账号的创建 .............................................................. 30 18. 角色和权限分配 .......................................................... 32 19. 数据库的分离和附加、备份恢复 ............................................ 33 20. 数据导入导出 ............................................................ 35
1.系统背景
随着社会经济的发展,人们生活水平的提高,大家对精神方面的追求有所加强。其中对音乐的收听占了很大比例。不管是在上班、上网、休息、聚会、甚至是走路,我们都在听音乐,音乐已经成人们生活的一部分。然而现在还没有一个很完善的音乐库系统,所以需要有一个全面的音乐库搜索系统,以满足大家的需求。此音乐库系统的创建符合广大用户的需求。
3
2.系统功能
首先由用户注册或直接登录进入此系统。此系统收藏了时下网
上最流行的音乐以及各种经典老歌,并由系统管理员对
分类管理、更新上传,方便用户简单查找和收
传自己的歌曲、添加更多的音乐、发表个人
其进行
听,用户也能上 看法、提出意见和
建议,使系统更符合用户的要求,最终做到满足用户。
3.用户类和特征
1.普通用户:
作为普通用户首先要进行注册或登录才能进入系统。其可以收听系统库音乐、网上查找歌曲、普通下载、添加自己喜欢的音乐、对音乐进行论、添加好友、歌曲分享、评论他人歌曲、对系统提意见。
用户:
除拥有普通用户的权限外,还有收听高质量的 歌曲、观看视频和MV、为好友点歌、上传自己
唱的歌、分享自己演唱的
歌曲、和好友一起听音乐、高速批量下载等附加功能。
3.系统管理员:
4
保证音乐库正常运行、防止音乐库音乐被篡改、实时更新和上传歌曲、对音乐进行分类(比如情感、年龄段、各时代歌曲、各个国家、每日排行......)、保存用户上传的歌曲或视频、规范的评论、收集并整理用户的意见和建议、修改用户的基本资料等功能。
4.用户业务流程图
1.普通用户:
5
用户
3.系统管理员
4.用户视图
1.普通用户
用户登录:需要输入用户名、密码、验证码
6
收听歌曲:歌曲根据类型可分为不同年龄层次、不同时代背景、不同感情倾向、不同语言方式,一首歌曲可能包含其中多种类型。 查找歌曲:查找歌曲时可以根据歌曲名、歌曲编号、歌曲类型进行简单的搜索。
添加歌曲:可直接点击歌曲名将音乐添加到本地列表。
对音乐库的评论:这包括对音乐收听方面和系统使用方面的意见和建议, 每个人可以提多个意见。
添加好友:可直接输入好友的号码进行查找,也可输入其网名进行广泛搜索。
歌曲分享:专门有个界面进行歌曲的分享,只需要输入歌曲名即可进行分享。
评论他人歌曲:在歌曲名后面专门有个按钮进行评论,点开之后即可输入您的评论内容。
用户
高质量音乐:有一部分歌曲可以高质量收听,用户可直接点击按钮进行收听。
观看视频和MV:听歌时观看MV也是件很享受的事情。 点歌:输入歌曲名和好友的名字,即可为好友点歌。
上传歌曲:专为VIP用户打造的功能,单击上传按钮即可浏览文件,在选择上传的歌曲即可。
7
高速下载:用户可以根据自己喜好选择一种下载方式进行高速批量下载。
3.系统管理员
更新上传:管理员可根据网上的新歌和用户的听歌记录适时的添加音乐和更新系统库。
分类管理:歌曲的不断更新使得系统不断变大,如不进行分类管理系统可能会出问题。也为了用户方便使用,对每一首歌的类型进行详细的划分。
用户信息查看及管理:不同的用户有不同的信息,允许用户修改自己的信息,防止篡改他人信息。普通用户和VIP用户的资料也应该分开管理,以免混淆。
收集整理意见和建议:这主要分为两种,音乐收听方面和音乐库系统方面,各意见要进行分条整理,方便查看和统计。
5.实体分析ER图
8
6.数据流程图
9
7.数据库的创建
USE master GO
CREATE DATABASE yinyuek ON PRIMARY ( NAME=yinyueku_DAate, FILENAME='C:\\Users\\Dell\\Desktop\\', SIZE=10, MAXSIZE=UNLIMITED, FILEGROWTH=5 )
LOG ON ( NAME=yinyueku_Log, FILENAME='C:\\Users\\Dell\\Desktop\\', SIZE=10, MAXSIZE=2000, FILEGROWTH=10% ) GO
8.表的创建
1.歌曲信息:music information
属性名 Music number Music name Song er information Pop music 中文名 歌曲号 歌曲名 歌手信息 类型 int char char 长度 5 20 20 是否允许为空 Not null null null 每日最热歌曲 10
char 20 null Upload music 用户上传歌曲 char 20 null
2.歌曲类型:music type
属性名 Music Name Different ages Different background 中文名 歌曲名 不同年龄层次 不同时代背景 类型 char char char 长度 10 20 20 是否允许为空 Not null null null Different 不同情感倾向 emotional Different language 不同语言 char 20 null char 20 null
3.意见和建议:opinions
属性名 numbers systems 中文名 意见序号 系统方面 类型 int char 长度 5 100 是否允许为空 Not null null 11
Music listening 音乐收听 char 100 null
4.用户资料:user information
属性名 User name Sex Age User type Up music 中文名 用户名 性别 年龄 用户类型 上传音乐 类型 char char int char char char 长度 10 10 2 10 20 100 是否允许为空 Not null null null null null null Person 其他个人信息 Information
5.登录信息:enter information
属性名 user name password verification code 中文名 用户名 密码 验证码 类型 char int char 长度 10 6 5 是否允许为空 Not null null null 12
6.歌曲下载方式:download ways
属性名 The Way Thunder QQ Internet Duomi Music 中文名 方式 迅雷 QQ旋风 普通网页 多米音乐 类型 int char char char char 长度 2 10 10 10 10 是否允许为空 Not null null null null Null Google Music 谷歌音乐 char 10 null
9.表格代码
CREATE TABLE MusicInformation( MusicNumber int NOT NULL, MusicName char(20) NULL, SongerInformation char(40), PopMusic char(20) NULL, UploadMusic char(20) NULL, PRIMARY KEY(MusicNumber) )
CREATE TABLE MusicType( MusicName char(20) NOT NULL,
DifferentAges char(20) NULL, DifferentBackground char(20) NULL,
13
DifferentEmotional char(20) NULL, DifferentLanguage char(20) NULL, PRIMARY KEY(MusicName ) )
CREATE TABLE Opinions( Numbers int NOT NULL, Systems char(100) NULL, MusicListening char(100) NULL, PRIMARY KEY(Numbers) )
CREATE TABLE UserInformation(
UserName char(10) NOT NULL, Sex char(10) NULL, Age int NULL, UserType char(10) NULL, UpMusic char(10) NULL, PersonInformation char(100) NULL, PRIMARY KEY(UserName ) )
CREATE TABLE EnterEnformation( UserName char(10) NOT NULL, Passwords int NULL, VerificatioNode char(4) NULL, PRIMARY KEY(UserName,) )
CREATE TABLE DownloadWays( TheWay int NOT NULL, Thunder char(10) NULL, QQ char(10) NULL, Internet char(10) NULL, DuomiMusic char(10) NULL, GoogleMusic char(10) NULL, PRIMARY KEY(TheWay) )
14
10.表约束的创建
CREATE TABLE MusicInformation ( MusicNumber int NOT NULL, CONSTRAINT pkMusicInformation PRIMARY KEY (MusicNumber) )
CREATE TABLE MusicType (
MusicName char(20) NOT NULL,
CONSTRAINT pkMusicInformation PRIMARY KEY (MusicName) )
CREATE TABLE Opinions (
Numbers int NOT NULL, CONSTRAINT pkNumbers PRIMARY KEY (Numbers ) )
CREATE TABLE UserInformation (
UserName char(10) NOT NULL,
CONSTRAINT pkMusicInformation PRIMARY KEY (UserName) )
CREATE TABLE EnterEnformation( UserName char(10) NOT NULL, CONSTRAINT pkMusicInformation PRIMARY KEY (UserName) )
CREATE TABLE DownloadWays (
TheWay int NOT NULL,
CONSTRAINT pkTheWay PRIMARY KEY (TheWay ) )
15
11.索引创建
CREATE UNIQUE CLUSTERED INDEX idx_Opinions ON Opinions(Numbers )
CREATE UNIQUE CLUSTERED INDEX idx_DownloadWays ON DownloadWays(TheWay )
CREATE INDEX idx_EnterEnformation ON EnterEnformation (UserName)
CREATE INDEX idx_UserInformation ON UserInformation (UserName)
CREATE INDEX idx_MusicType ON MusicType(MusicName )
12.数据插入脚本
1.歌曲信息
INSERT MusicInformation
(MusicNumber,MusicName,SongerInformation,PopMusic,UploadMusic) VALUES ('00001','皮影戏','周杰伦','爱的供养','倾听我'), ('00002','星空','五月天','老男孩','倾世'), ('00003','倾听我','林心如','依然爱你','三寸天堂'), ('00004','倾世','霍建华','落花','走天涯'), ('00005','未来','魏晨','荷塘月色','你是我的眼'), ('00006','情殇','信乐团','没那么简单','翅膀'), ('00007','小永远','何洁','就去爱吧','似曾相识'), ('00008','明天','陈志朋','我们爱过就好','回家路上'), ('00009','长镜头','那英','花一开满就相爱','一样爱着你'), ('00010','伤不起','王麟','羽绒服','花一开满就相爱')
16
2.歌曲类型
INSERT MusicType
(MusicName,DifferentAges,DifferentBackground,DifferentEmotional,DifferentLanguage)
VAlUES ('皮影戏','所有年龄','21世纪','开心','中文'), ('星空','所有年龄','90后','忧伤','中文'), ('倾听我','所有年龄','90后','忧伤','中文'), ('倾世','青年','21世纪','emotional04','中文'), ('未来','青年','21世纪','憧憬','中文'), ('情殇','青年','90后','悲凉','中文'), ('小永远','所有年龄','21世纪','活泼','中文'), ('明天','青年','90后','期待','中文'), ('长镜头','少年','21世纪','轻快','中文'), ('伤不起','青年','90后','激情','中文')
3.意见
INSERT Opinions (Numbers,Systems,MusicListening) VALUES (00001,'东西有些杂乱','音质不好'), (00002,'更新有些慢','链接地址有问题'), (00003,'没有多选项','供选择的不多'),
17
(00004,'没有多选项','有些没有MV'), (00005,'下载方面有问题','音质不好'), (00006,'操作不舒服','感觉不好'),
(00007,'对评论没有规范处理','供选择的不多'), (00008,'东西有些杂乱','链接地址有问题'), (00009,'更新有些慢','有些没有MV'),
(00010,'对评论没有规范处理','供选择的不多')
4.用户信息
INSERT UserInformation
(UserName,Sex,Age,UserType,UpMusic,PersonInformation)
VALUES ('A','男','15','普通用户','唱片','爱好:听音乐; 现居地:成都'), ('B','男','18','VIP用户','背影里的沉默','爱好:唱歌; 现居地:宜宾'), ('C','女','15','普通用户','简单不简单','爱好:游泳; 现居地:乐山'), ('D','男','19','VIP用户','第一夫人','爱好:KTV; 现居地:上海'), ('E','女','17','普通用户','my summer rain','爱好:看书; 现居地:广州'), ('F','女','16','普通用户','如果有一天','爱好:书法; 现居地:南京'), ('G','男','19','VIP用户','那又怎样','爱好:打篮球; 现居地:南充'), ('H','女','20','普通用户','依然在路上','爱好:画画; 现居地:绵阳'), ('I','男','17','VIP用户','我是怎么了','爱好:足球; 现居地:成都'), ('J','女','21','普通用户','hold不住','爱好:羽毛球; 现居地:绵阳')
18
5.登录信息
INSERT EnterEnformation (UserName,Passwords,VerificatioNode) VALUES ('A','123456','node01'), ('B','234567','node02'), ('C','345678','node03'), ('D','456789','node04'), ('E','012345','node05'),
('F','153456','node06'),
('G','234567','node07'), ('H','345578','node08'), ('I','451789','node09'), ('J','015345','node10')
6.下载方式
INSERT DownloadWays
(TheWay,Thunder,QQ,Internet,DuomiMusic,GoogleMusic) VALUES (01,'是','否','否','否','否'), (02,'否','是','否','否','否'), (03,'否','否','是','否','否'),
19
(04,'否','否','否','是','否'), (05,'否','否','否','否','是'), (06,'是','否','否','否','否'), (07,'否','是','否','否','否'), (08,'否','否','是','否','否'), (09,'否','否','否','是','否'), (10,'否','否','否','否','是')
13.多条件查询
1.多重条件:
普通用户:查找歌曲、查看歌曲信息、查找好友
--歌曲号在00002到00005之间的所有歌曲信息
select MusicNumber,MusicName,SongerInformation,PopMusic,UploadMusic from MusicInformation where MusicNumber>00002 and MusicNumber<00005
--显示歌手为'五月天'的歌曲的歌曲号和歌曲名字 select MusicNumber,MusicName from MusicInformation where SongerInformation='五月天'
20
2.限定数据范围:
--显示年龄在16~19岁之间的用户信息
select UserName,Sex,Age,UserType,UpMusic,PersonInformation from UserInformation where Age between 16 and 19
3.用in关键字限定范围:
VIP用户:高速下载
--显示迅雷下载方式 select TheWay from DownloadWays where Thunder in ('是')
--显示用户为男性的信息
select UserName,Sex,Age,UserType,PersonInformation from UserInformation where Sex in ('男')
NULL 和 IS NOT NULL关键字:
--显示年龄不为空的用户信息 select * from UserInformation where Age is not null
21
5.模糊查询:
--显示用户名中含有“C”的密码和验证码
select UserName,Passwords,VerificatioNode from EnterEnformation where UserName like 'C%'
14.分组统计的使用
1.集合函数:
--显示年龄的最大值
select MAX(Age) from UserInformation
2.分组汇总:
select 'YiJian Number'=Numbers, 'Total Age'=SUM(Numbers) from Opinions group by Numbers having SUM(Numbers)>5
11.排序
22
--按年龄降序显示用户信息
select UserName AS '用户名',Age AS '年龄',Sex AS '性别', PersonInformation AS '其他个人信息' from UserInformation order by Age desc
15.嵌套查询
1.内连接:
系统管理员:查看并管理用户资料信息
--显示所有用户的密码、用户类型和上传的音乐 select Passwords,UserType,UpMusic from UserInformation AS a,EnterEnformation AS b where =
2.外连接:
--显示所有用户密码、用户类型 select Passwords,UserType from EnterEnformation left outer join UserInformation
23
on =
16.模糊查询
--显示用户名中含有“C”的密码和验证码
select UserName,Passwords,VerificatioNode from EnterEnformation where UserName like 'C%'
12.数据的修改和删除
select 歌曲号=MusicNumber,MusicName AS 歌曲名,歌手信息=SongerInformation, 每日最热歌曲=PopMusic,用户上传歌曲=UploadMusic from MusicInformation
select 歌曲名字=MusicName,不同年龄层次=DifferentAges,不同时代背景=DifferentBackground, 不同情感倾向=DifferentEmotional,不同语言=DifferentLanguage from MusicType
select 意见序号=Numbers,系统意见=Systems,音乐收听方面=MusicListening from Opinions
select 用户名=UserName,性别=Sex,年龄=Age,用户类型=UserType, 上传音乐=UpMusic,其他个人信息=PersonInformation
24
from UserInformation
select 用户名=UserName,密码=Passwords,验证码=VerificatioNode from EnterEnformation
select 方法=TheWay,迅雷=Thunder,OO旋风=QQ,网页下载=Internet,多米音乐=DuomiMusic, 谷歌音乐=GoogleMusic from DownloadWays
13.创建视图
普通用户:
--显示用户信息 create view XinXi with encryption as select *from UserInformation
select *from XinXi
--查找歌曲显示歌曲种类 create view chazhao with encryption as select *from MusicType where MusicName ='未来' select *from chazhao
VIP用户:
25
--显示歌曲信息并上传 create view shuangchuan with encryption as select MusicNumber,MusicName,SongerInformation from MusicInformation select *from shuangchuan
系统管理员:
--显示用户信息 create view watch with encryption as select UserName,Sex,Age,UserType,PersonInformation from UserInformation select *from watch
14.创建储存过程
普通用户:
--显示19岁以上的用户的信息并加为好友 create proc nianling as begin select UserName,Sex,UserType,PersonInformation from UserInformation where Age>=19 end
26
exec nianling
带参数的
--显示年龄为17,18岁的用户信息 create proc prcAge @maxnianji int, @minnianji int as begin select *from UserInformation where Age<=@maxnianji and Age>=@minnianji end
exec prcAge 18,17
VIP用户:
--显示迅雷高速下载方式 create proc xiazai as begin select *from DownloadWays where Thunder='是' end
exec xiazai
系统管理员:
--显示音乐收听方面的意见
27
create proc yijian as begin select Numbers,MusicListening from Opinions end
exec yijian
15.创建触发器
DML触发器
--用户上传音乐,系统库的歌曲数就会随之增加 create trigger shangchuanmusic on UserInformation for insert as begin declare @misicname as char(10), @number as int select @misicname=UpMusic,@number=MusicNumber from UserInformation,MusicInformation update MusicInformation set MusicNumber=MusicNumber+@number End
DDL触发器
--禁止删除和修改当前数据库中的任何表
28
create trigger trgsafe on database
for drop_table,allter_table as print'不能修改和删除表' rollback
登录触发器
--如果登录名login_test已经创建了两个用户对话,则拒绝该用户名启动SQL Server登录尝试
create trigger trgconnection_limit
on all server with execute as 'login_test' for logon as begin if ORIGINAL_LOGIN()= and'login_test' (select COUNT(*) from where is_user_process=1 and original_login_name='login_test')>3 rollback End
16.事务
--删除用户名为A的用户信息 declare @user_name char(5)
select @user_name='my_tran_delete' begin tran @user_name GO
user yinyueku GO
delete from UserInformation where UserName ='A' GO
COMMITE tran 'my_tran_delete'
29
17.账号的创建
30
31
18.角色和权限分配
32
19.数据库的分离和附加、备份恢复
33
34
20.数据导入导出
35
36
37
38
因篇幅问题不能全部显示,请点此查看更多更全内容