1、(完整word版)数据库音乐库系统音乐库需求分析报告1.系统背景22.系统功能23.用户类和特征34.用户业务流程图41.普通用户:42.VIP用户43.系统管理员54.用户视图51.普通用户52.VIP用户63.系统管理员65.实体分析ER图76.数据流程图87.数据库的创建88.表的创建91.歌曲信息:music information92.歌曲类型:music type93.意见和建议:opinions104.用户资料:user information105.登录信息:enter information116.歌曲下载方式:download ways119.表格代码1210.表约束的创建
2、1311.索引创建1412.数据插入脚本151.歌曲信息152.歌曲类型153.意见164.用户信息165.登录信息176.下载方式1813.多条件查询181.多重条件:182.限定数据范围:193.用in关键字限定范围:194.IS NULL 和 IS NOT NULL关键字:205.模糊查询:2014.分组统计的使用201.集合函数:202.分组汇总:2011. 排序2115.嵌套查询211.内连接:212.外连接:2216.模糊查询2212. 数据的修改和删除2213. 创建视图2314. 创建储存过程2415. 创建触发器2616. 事务2717. 账号的创建2818. 角色和权限分配
3、3019. 数据库的分离和附加、备份恢复3120. 数据导入导出331.系统背景随着社会经济的发展,人们生活水平的提高,大家对精神方面的追求有所加强。其中对音乐的收听占了很大比例。不管是在上班、上网、休息、聚会、甚至是走路,我们都在听音乐,音乐已经成人们生活的一部分。然而现在还没有一个很完善的音乐库系统,所以需要有一个全面的音乐库搜索系统,以满足大家的需求。此音乐库系统的创建符合广大用户的需求。2.系统功能首先由用户注册或直接登录进入此系统。此系统收藏了时下网上最流行的音乐以及各种经典老歌,并由系统管理员对其进行分类管理、更新上传,方便用户简单查找和收听,用户也能上传自己的歌曲、添加更多的音乐
4、、发表个人看法、提出意见和建议,使系统更符合用户的要求,最终做到满足用户。3.用户类和特征1.普通用户:作为普通用户首先要进行注册或登录才能进入系统。其可以收听系统库音乐、网上查找歌曲、普通下载、添加自己喜欢的音乐、对音乐进行论、添加好友、歌曲分享、评论他人歌曲、对系统提意见。2.VIP用户:除拥有普通用户的权限外,还有收听高质量的歌曲、观看视频和MV、为好友点歌、上传自己唱的歌、分享自己演唱的歌曲、和好友一起听音乐、高速批量下载等附加功能。3. 系统管理员:保证音乐库正常运行、防止音乐库音乐被篡改、实时更新和上传歌曲、对音乐进行分类(比如情感、年龄段、各时代歌曲、各个国家、每日排行.)、保存
5、用户上传的歌曲或视频、规范的评论、收集并整理用户的意见和建议、修改用户的基本资料等功能。4.用户业务流程图1.普通用户:2.VIP用户3.系统管理员4.用户视图1.普通用户用户登录:需要输入用户名、密码、验证码收听歌曲:歌曲根据类型可分为不同年龄层次、不同时代背景、不同感情倾向、不同语言方式,一首歌曲可能包含其中多种类型。查找歌曲:查找歌曲时可以根据歌曲名、歌曲编号、歌曲类型进行简单的搜索。添加歌曲:可直接点击歌曲名将音乐添加到本地列表。对音乐库的评论:这包括对音乐收听方面和系统使用方面的意见和建议, 每个人可以提多个意见。添加好友:可直接输入好友的号码进行查找,也可输入其网名进行广泛搜索。歌
6、曲分享:专门有个界面进行歌曲的分享,只需要输入歌曲名即可进行分享。评论他人歌曲:在歌曲名后面专门有个按钮进行评论,点开之后即可输入您的评论内容。2.VIP用户高质量音乐:有一部分歌曲可以高质量收听,用户可直接点击按钮进行收听。观看视频和MV:听歌时观看MV也是件很享受的事情。点歌:输入歌曲名和好友的名字,即可为好友点歌。上传歌曲:专为VIP用户打造的功能,单击上传按钮即可浏览文件,在选择上传的歌曲即可。高速下载:用户可以根据自己喜好选择一种下载方式进行高速批量下载。3.系统管理员更新上传:管理员可根据网上的新歌和用户的听歌记录适时的添加音乐和更新系统库。分类管理:歌曲的不断更新使得系统不断变大
7、,如不进行分类管理系统可能会出问题。也为了用户方便使用,对每一首歌的类型进行详细的划分。用户信息查看及管理:不同的用户有不同的信息,允许用户修改自己的信息,防止篡改他人信息。普通用户和VIP用户的资料也应该分开管理,以免混淆。收集整理意见和建议:这主要分为两种,音乐收听方面和音乐库系统方面,各意见要进行分条整理,方便查看和统计。5.实体分析ER图6.数据流程图7.数据库的创建USE masterGOCREATE DATABASE yinyuekON PRIMARY(NAME=yinyueku_DAate,FILENAME=C:UsersDellDesktopyinyueku_Date.MDF,
8、SIZE=10,MAXSIZE=UNLIMITED,FILEGROWTH=5)LOG ON(NAME=yinyueku_Log,FILENAME=C:UsersDellDesktopyinyueku_Log.LDF,SIZE=10,MAXSIZE=2000,FILEGROWTH=10%)GO8.表的创建1.歌曲信息:music information属性名中文名类型长度是否允许为空Music number歌曲号int5Not null Music name歌曲名char20nullSong erinformation歌手信息char20nullPop music每日最热歌曲char20null
9、Upload music用户上传歌曲char20null2.歌曲类型:music type属性名中文名类型长度是否允许为空Music Name歌曲名char10Not null Different ages不同年龄层次char20nullDifferent background不同时代背景char20nullDifferent emotional 不同情感倾向char20nullDifferent language不同语言char20null3.意见和建议:opinions属性名中文名类型长度是否允许为空numbers意见序号int5Not nullsystems系统方面char100null
10、Music listening音乐收听char100null4.用户资料:user information属性名中文名类型长度是否允许为空User name用户名char10Not nullSex性别char10nullAge年龄int2nullUser type用户类型char10nullUp music上传音乐char20nullPerson Information 其他个人信息char100null5.登录信息:enter information属性名中文名类型长度是否允许为空user name用户名char10Not nullpassword密码int6nullverification
11、 code验证码char5null6.歌曲下载方式:download ways属性名中文名类型长度是否允许为空The Way方式int2Not nullThunder 迅雷char10nullQQQQ旋风char10nullInternet 普通网页char10nullDuomi Music 多米音乐char10NullGoogle Music 谷歌音乐char10null9.表格代码CREATE TABLE MusicInformation(MusicNumber int NOT NULL,MusicName char(20) NULL,SongerInformation char(40),
12、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(Numb
13、ers 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 EnterEnfor
14、mation(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 TA
15、BLE 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 T
16、ABLE 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.索
17、引创建CREATE UNIQUE CLUSTERED INDEX idx_OpinionsON Opinions(Numbers )CREATE UNIQUE CLUSTERED INDEX idx_DownloadWaysON DownloadWays(TheWay )CREATE INDEX idx_EnterEnformationON EnterEnformation (UserName)CREATE INDEX idx_UserInformationON UserInformation (UserName)CREATE INDEX idx_MusicTypeON MusicType(M
18、usicName )12.数据插入脚本1.歌曲信息INSERT MusicInformation (MusicNumber,MusicName,SongerInformation,PopMusic,UploadMusic)VALUES (00001,皮影戏,周杰伦,爱的供养,倾听我),(00002,星空,五月天,老男孩,倾世),(00003,倾听我,林心如,依然爱你,三寸天堂),(00004,倾世,霍建华,落花,走天涯),(00005,未来,魏晨,荷塘月色,你是我的眼),(00006,情殇,信乐团,没那么简单,翅膀),(00007,小永远,何洁,就去爱吧,似曾相识),(00008,明天,陈志朋
19、,我们爱过就好,回家路上),(00009,长镜头,那英,花一开满就相爱,一样爱着你),(00010,伤不起,王麟,羽绒服,花一开满就相爱)2.歌曲类型INSERT MusicType (MusicName,DifferentAges,DifferentBackground,DifferentEmotional,DifferentLanguage)VAlUES (皮影戏,所有年龄,21世纪,开心,中文),(星空,所有年龄,90后,忧伤,中文),(倾听我,所有年龄,90后,忧伤,中文),(倾世,青年,21世纪,emotional04,中文),(未来,青年,21世纪,憧憬,中文),(情殇,青年,90
20、后,悲凉,中文),(小永远,所有年龄,21世纪,活泼,中文),(明天,青年,90后,期待,中文),(长镜头,少年,21世纪,轻快,中文),(伤不起,青年,90后,激情,中文)3.意见INSERT Opinions (Numbers,Systems,MusicListening)VALUES (00001,东西有些杂乱,音质不好),(00002,更新有些慢,链接地址有问题),(00003,没有多选项,供选择的不多),(00004,没有多选项,有些没有MV),(00005,下载方面有问题,音质不好),(00006,操作不舒服,感觉不好),(00007,对评论没有规范处理,供选择的不多),(0000
21、8,东西有些杂乱,链接地址有问题),(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,普通用
22、户,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,2
23、34567,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,否,否,否,是,否)
24、,(05,否,否,否,否,是),(06,是,否,否,否,否),(07,否,是,否,否,否),(08,否,否,是,否,否),(09,否,否,否,是,否),(10,否,否,否,否,是)13.多条件查询1.多重条件:普通用户:查找歌曲、查看歌曲信息、查找好友-歌曲号在00002到00005之间的所有歌曲信息select MusicNumber,MusicName,SongerInformation,PopMusic,UploadMusicfrom MusicInformationwhere MusicNumber00002 and MusicNumber511. 排序-按年龄降序显示用户信息sele
25、ct UserName AS 用户名,Age AS 年龄,Sex AS 性别,PersonInformation AS 其他个人信息from UserInformationorder by Age desc15.嵌套查询 1.内连接:系统管理员:查看并管理用户资料信息-显示所有用户的密码、用户类型和上传的音乐select Passwords,UserType,UpMusicfrom UserInformation AS a,EnterEnformation AS bwhere a.UserName =b.UserName2.外连接:-显示所有用户密码、用户类型select Passwords,
26、UserTypefrom EnterEnformation left outer join UserInformationon UserInformation.UserName =EnterEnformation.UserName16.模糊查询-显示用户名中含有“C”的密码和验证码select UserName,Passwords,VerificatioNodefrom EnterEnformationwhere UserName like C%12. 数据的修改和删除select 歌曲号=MusicNumber,MusicName AS 歌曲名,歌手信息=SongerInformation,
27、每日最热歌曲=PopMusic,用户上传歌曲=UploadMusicfrom MusicInformation select 歌曲名字=MusicName,不同年龄层次=DifferentAges,不同时代背景=DifferentBackground,不同情感倾向=DifferentEmotional,不同语言=DifferentLanguagefrom MusicTypeselect 意见序号=Numbers,系统意见=Systems,音乐收听方面=MusicListeningfrom Opinionsselect 用户名=UserName,性别=Sex,年龄=Age,用户类型=UserTy
28、pe,上传音乐=UpMusic,其他个人信息=PersonInformationfrom UserInformationselect 用户名=UserName,密码=Passwords,验证码=VerificatioNodefrom EnterEnformationselect 方法=TheWay,迅雷=Thunder,OO旋风=QQ,网页下载=Internet,多米音乐=DuomiMusic,谷歌音乐=GoogleMusicfrom DownloadWays13. 创建视图普通用户:-显示用户信息create view XinXiwith encryptionasselect *from U
29、serInformationselect *from XinXi-查找歌曲显示歌曲种类create view chazhaowith encryptionasselect *from MusicTypewhere MusicName =未来select *from chazhaoVIP用户:-显示歌曲信息并上传create view shuangchuanwith encryptionasselect MusicNumber,MusicName,SongerInformationfrom MusicInformationselect *from shuangchuan系统管理员:-显示用户信息
30、create view watchwith encryptionasselect UserName,Sex,Age,UserType,PersonInformationfrom UserInformationselect *from watch 14. 创建储存过程普通用户:-显示19岁以上的用户的信息并加为好友create proc nianlingas beginselect UserName,Sex,UserType,PersonInformationfrom UserInformationwhere Age=19endexec nianling带参数的-显示年龄为17,18岁的用户信息
31、create proc prcAgemaxnianji int,minnianji intasbeginselect *from UserInformationwhere Age=minnianjiendexec prcAge 18,17VIP用户:-显示迅雷高速下载方式create proc xiazaiasbeginselect *from DownloadWayswhere Thunder=是endexec xiazai系统管理员:-显示音乐收听方面的意见create proc yijianasbeginselect Numbers,MusicListeningfrom Opinions
32、endexec yijian15. 创建触发器DML触发器-用户上传音乐,系统库的歌曲数就会随之增加create trigger shangchuanmusicon UserInformationfor insertasbegindeclare misicname as char(10),number as intselect misicname=UpMusic,number=MusicNumberfrom UserInformation,MusicInformation update MusicInformationset MusicNumber=MusicNumber+numberEndD
33、DL触发器-禁止删除和修改当前数据库中的任何表create trigger trgsafeon databasefor drop_table,allter_tableasprint不能修改和删除表rollback登录触发器-如果登录名login_test已经创建了两个用户对话,则拒绝该用户名启动SQL Server登录尝试create trigger trgconnection_limiton all server with execute as login_testfor logonasbeginif ORIGINAL_LOGIN()= andlogin_test(select COUNT(
34、*) from sys.dm_exec_sessionswhere is_user_process=1 andoriginal_login_name=login_test)3rollbackEnd16. 事务-删除用户名为A的用户信息declare user_name char(5)select user_name=my_tran_deletebegin tran user_nameGOuser yinyuekuGOdelete from UserInformation where UserName =AGOCOMMITE tran my_tran_delete17. 账号的创建18. 角色和权限分配19. 数据库的分离和附加、备份恢复20. 数据导入导出单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。.