资源描述
(完整word版)数据库音乐库系统
音乐库需求分析报告
1.系统背景 2
2.系统功能 2
3.用户类和特征 3
4.用户业务流程图 4
1.普通用户: 4
2.VIP用户 4
3.系统管理员 5
4.用户视图 5
1.普通用户 5
2.VIP用户 6
3.系统管理员 6
5.实体分析ER图 7
6.数据流程图 8
7.数据库的创建 8
8.表的创建 9
1.歌曲信息:music information 9
2.歌曲类型:music type 9
3.意见和建议:opinions 10
4.用户资料:user information 10
5.登录信息:enter information 11
6.歌曲下载方式:download ways 11
9.表格代码 12
10.表约束的创建 13
11.索引创建 14
12.数据插入脚本 15
1.歌曲信息 15
2.歌曲类型 15
3.意见 16
4.用户信息 16
5.登录信息 17
6.下载方式 18
13.多条件查询 18
1.多重条件: 18
2.限定数据范围: 19
3.用in关键字限定范围: 19
4.IS NULL 和 IS NOT NULL关键字: 20
5.模糊查询: 20
14.分组统计的使用 20
1.集合函数: 20
2.分组汇总: 20
11. 排序 21
15.嵌套查询 21
1.内连接: 21
2.外连接: 22
16.模糊查询 22
12. 数据的修改和删除 22
13. 创建视图 23
14. 创建储存过程 24
15. 创建触发器 26
16. 事务 27
17. 账号的创建 28
18. 角色和权限分配 30
19. 数据库的分离和附加、备份恢复 31
20. 数据导入导出 33
1.系统背景
随着社会经济的发展,人们生活水平的提高,大家对精神方面的追求有所加强。其中对音乐的收听占了很大比例。不管是在上班、上网、休息、聚会、甚至是走路,我们都在听音乐,音乐已经成人们生活的一部分。然而现在还没有一个很完善的音乐库系统,所以需要有一个全面的音乐库搜索系统,以满足大家的需求。此音乐库系统的创建符合广大用户的需求。
2.系统功能
首先由用户注册或直接登录进入此系统。此系统收藏了时下网 上最流行的音乐以及各种经典老歌,并由系统管理员对其进行 分类管理、更新上传,方便用户简单查找和收听,用户也能上 传自己的歌曲、添加更多的音乐、发表个人看法、提出意见和
建议,使系统更符合用户的要求,最终做到满足用户。
3.用户类和特征
1.普通用户:
作为普通用户首先要进行注册或登录才能进入系统。其可以收听系统库音乐、网上查找歌曲、普通下载、添加自己喜欢的音乐、对音乐进行论、添加好友、歌曲分享、评论他人歌曲、对系统提意见。
2.VIP用户:
除拥有普通用户的权限外,还有收听高质量的 歌曲、观看视频和MV、为好友点歌、上传自己 唱的歌、分享自己演唱的歌曲、和好友一起听音乐、高速批量下载等附加功能。
3. 系统管理员:
保证音乐库正常运行、防止音乐库音乐被篡改、实时更新和上传歌曲、对音乐进行分类(比如情感、年龄段、各时代歌曲、各个国家、每日排行......)、保存用户上传的歌曲或视频、规范的评论、收集并整理用户的意见和建议、修改用户的基本资料等功能。
4.用户业务流程图
1.普通用户:
2.VIP用户
3.系统管理员
4.用户视图
1.普通用户
用户登录:需要输入用户名、密码、验证码
收听歌曲:歌曲根据类型可分为不同年龄层次、不同时代背景、不同感情倾向、不同语言方式,一首歌曲可能包含其中多种类型。
查找歌曲:查找歌曲时可以根据歌曲名、歌曲编号、歌曲类型进行简单的搜索。
添加歌曲:可直接点击歌曲名将音乐添加到本地列表。
对音乐库的评论:这包括对音乐收听方面和系统使用方面的意见和建议, 每个人可以提多个意见。
添加好友:可直接输入好友的号码进行查找,也可输入其网名进行广泛搜索。
歌曲分享:专门有个界面进行歌曲的分享,只需要输入歌曲名即可进行分享。
评论他人歌曲:在歌曲名后面专门有个按钮进行评论,点开之后即可输入您的评论内容。
2.VIP用户
高质量音乐:有一部分歌曲可以高质量收听,用户可直接点击按钮进行收听。
观看视频和MV:听歌时观看MV也是件很享受的事情。
点歌:输入歌曲名和好友的名字,即可为好友点歌。
上传歌曲:专为VIP用户打造的功能,单击上传按钮即可浏览文件,在选择上传的歌曲即可。
高速下载:用户可以根据自己喜好选择一种下载方式进行高速批量下载。
3.系统管理员
更新上传:管理员可根据网上的新歌和用户的听歌记录适时的添加音乐和更新系统库。
分类管理:歌曲的不断更新使得系统不断变大,如不进行分类管理系统可能会出问题。也为了用户方便使用,对每一首歌的类型进行详细的划分。
用户信息查看及管理:不同的用户有不同的信息,允许用户修改自己的信息,防止篡改他人信息。普通用户和VIP用户的资料也应该分开管理,以免混淆。
收集整理意见和建议:这主要分为两种,音乐收听方面和音乐库系统方面,各意见要进行分条整理,方便查看和统计。
5.实体分析ER图
6.数据流程图
7.数据库的创建
USE master
GO
CREATE DATABASE yinyuek
ON PRIMARY
(
NAME=yinyueku_DAate,
FILENAME='C:\Users\Dell\Desktop\yinyueku_Date.MDF',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=5
)
LOG ON
(
NAME=yinyueku_Log,
FILENAME='C:\Users\Dell\Desktop\yinyueku_Log.LDF',
SIZE=10,
MAXSIZE=2000,
FILEGROWTH=10%
)
GO
8.表的创建
1.歌曲信息:music information
属性名
中文名
类型
长度
是否允许为空
Music number
歌曲号
int
5
Not null
Music name
歌曲名
char
20
null
Song er
information
歌手信息
char
20
null
Pop music
每日最热歌曲
char
20
null
Upload music
用户上传歌曲
char
20
null
2.歌曲类型:music type
属性名
中文名
类型
长度
是否允许为空
Music Name
歌曲名
char
10
Not null
Different ages
不同年龄层次
char
20
null
Different background
不同时代背景
char
20
null
Different emotional
不同情感倾向
char
20
null
Different language
不同语言
char
20
null
3.意见和建议:opinions
属性名
中文名
类型
长度
是否允许为空
numbers
意见序号
int
5
Not null
systems
系统方面
char
100
null
Music listening
音乐收听
char
100
null
4.用户资料:user information
属性名
中文名
类型
长度
是否允许为空
User name
用户名
char
10
Not null
Sex
性别
char
10
null
Age
年龄
int
2
null
User type
用户类型
char
10
null
Up music
上传音乐
char
20
null
Person Information
其他个人信息
char
100
null
5.登录信息:enter information
属性名
中文名
类型
长度
是否允许为空
user name
用户名
char
10
Not null
password
密码
int
6
null
verification code
验证码
char
5
null
6.歌曲下载方式:download ways
属性名
中文名
类型
长度
是否允许为空
The Way
方式
int
2
Not null
Thunder
迅雷
char
10
null
QQ
QQ旋风
char
10
null
Internet
普通网页
char
10
null
Duomi Music
多米音乐
char
10
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,
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)
)
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 )
)
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','伤不起','王麟','羽绒服','花一开满就相爱')
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,'没有多选项','供选择的不多'),
(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不住','爱好:羽毛球; 现居地:绵阳')
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,'否','否','是','否','否'),
(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='五月天'
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 ('男')
4.IS NULL 和 IS NOT NULL关键字:
--显示年龄不为空的用户信息
select * from UserInformation
where Age is not null
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. 排序
--按年龄降序显示用户信息
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 a.UserName =b.UserName
2.外连接:
--显示所有用户密码、用户类型
select Passwords,UserType
from EnterEnformation left outer join UserInformation
on UserInformation.UserName =EnterEnformation.UserName
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
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用户:
--显示歌曲信息并上传
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
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
系统管理员:
--显示音乐收听方面的意见
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触发器
--禁止删除和修改当前数据库中的任何表
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 sys.dm_exec_sessions
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'
17. 账号的创建
18. 角色和权限分配
19. 数据库的分离和附加、备份恢复
20. 数据导入导出
单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善
教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。
.
展开阅读全文