数据库课程设计_第1页
数据库课程设计_第2页
数据库课程设计_第3页
数据库课程设计_第4页
数据库课程设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

成绩成绩课程设计课程名称数据库系统概论题目名称___KYV点歌系统___学生学院计算机学院专业班级2012级软件工程3班学号3112006228学生姓名陈增铭指导教师周俭铁2015年1月20日目录TOC\o"1-3"\h\u258831前言 595671.1课题来源 5314671.2课题研究主要内容 5146391.3主要工作 5317042需求分析 6196932.1信息需求分析 667052.2功能需求分析 635342.3数据字典及安全性、完整性要求分析 725413概念结构设计 854053.1用例图 8317473.2整体ER图 990684系统概要设计 1098634.1数据库逻辑结构设计 11150744.2数据库物理设计 12183664.3系统总体框架 1368055系统详细设计 13287335.1数据库实施 1454885.2数据库的数据完整性设计 22167095.3数据的安全设计 2445016数据库运行与维护与系统测试 25318617系统安装说明 29318618收获与体会 30一.前言1.1课题来源随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV厅唱K休闲娱乐。唱歌,自然免不了点歌的繁琐。传统的点歌设备主要是CD和固放设备组成,虽然基本满足了人们的需求,但是也带来了设备成本高,点歌过程繁琐,更新麻烦等不少问题。随着科学的发展和信息时代的到来,点歌系统应运而生,KTV点歌系统已经成为了娱乐场所必不可少的一部分。KTV点歌系统不仅简化了用户操作,而且极大化满足了人们的需求和使用习惯。1.2课题研究主要内容KTV点歌系统是娱乐场所的一项管理措施,因此开发KTV点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。KTV点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,KTV点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。该设计文档主要介绍点歌系统的数据库设计内容。建立数据库和相关表和SQL语言的使用和用例图的设计和设计综述。然而,设计出一个让用户满意的点歌系统并不是那么容易,本次课程设计将利用visualstudio2012和SQLSERVER2005等工具进行开发实践工作。1.3主要工作本次课程设计个人独立完成。包括界面模块,需求分析,概念设计,系统设计,数据库实现等设计。本次KTV系统的开发主要前台点歌系统和后台管理系统模块的开发。前台点歌系统包含了拼音点歌、歌星点歌、分类点歌、语种点歌,全部歌曲,每个点歌模块都可以查询想要点的歌曲。用户点歌完毕之后,可进入歌曲管理,查看自己的歌曲和收藏自己喜欢的歌曲,也可以按照金曲排行来点播想要的歌曲。管理员可登录后台管理系统对歌曲、歌星、用户进行管理和维护。进入后台管理系统后,显示的是歌曲管理、歌星管理、用户管理大三模块。2.需求分析2.1信息需求分析经过对KTV点歌系统的结构化分析,得出信息要求如下:1.、歌星信息:包括了歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写。2、歌曲信息:包括了歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、路径、歌曲拼音缩写、歌曲时长3、金曲排行信息:包括了歌曲编号、歌曲名称、歌星姓名、周点击率、月点击率、总点击率4、后台日志信息:包括了操作编号、操作内容、操作时间、操作人员、备注5、管理员信息:包括了管理员用户名管理员密码6、用户信息:包括了用户编号、用户登录名、用户密码、用户姓名、用户性别、出生日期注册日期2.2功能需求分析KTV点歌系统主要分为歌曲的查询与管理,管理主要包括歌曲的查询,增添,修改,删除;查询可以按照歌星查询,歌曲类型查询,歌曲名称查询等方式查询。系统功能需求:2.2.1点播歌曲点歌是最基本也是最重要的功能,重在快捷方便。比如拼音点歌、指定歌星点歌,只需输入相应的拼音简写然后点击,就能检索到想要点播的歌曲。2.2.2添加歌曲音乐是滚动的时尚元素,明天都可能有新的创作,所以添加新歌也是必不可少的功能。当然,经典老歌也是不可或缺的元素,适当添加经典老歌,增添怀旧的气氛。2.2.3歌曲管理歌曲库十分庞大,给歌曲管理带来一定的难度。对歌曲信息的增添和删改同样需要相应的子功能模块管理。2.2.4后台记录系统在运行当中难免出现故障,对数据库的部分重要更新操作可记录入库,作为系统故障时恢复的依据。2.3数据字典及安全性、完整性需求分析名称描述定义位置歌星信息主要用于存储歌星歌手的基本信息包括:歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写数据库的歌星信息表歌曲信息记录歌曲的基本信息包括:歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、文件路径、歌曲拼音缩写、歌曲时长数据库的歌曲信息表热度排行记录歌曲热度信息包括:歌曲编号、歌曲名称、歌星姓名、周点击率、月点击率,总点击率数据库的歌曲排行榜信息表后台日志记录后台操作日志记录包括:操作编号、操作内容、操作时间、操作人员、备注数据库的后台操作记录表管理员信息记录管理员相关信息包括:管理员编号、管理员用户名、管理员密码数据库的管理员信息表用户信息记录用户资料和歌曲收藏信息包括:用户编号、用户登录名、用户密码、收藏歌曲编号、用户姓名、用户性别、出生日期、注册日期数据库的用户信息表3概念结构设计3.1用例图未注册用户与注册用户用例图:管理员用例图:3.2整体ER图4系统概要设计4.1数据库逻辑结构设计为了完成需求分析中确定的基本功能和概念设计中模块的划分,通过基于3NF的数据库设计方法(通过分析,各数据表已达第三范式),构造了7张基本表。现在对这7张基本表划分基本关系,在已设计好的数据库中初步建立各表,用于存储歌曲信息和歌星信息等基本信息。此外,在基本表上定义了一些约束条件,包括基本表上数据类型和数据长度的限制以及是否允许为空或表内是否取值唯一的限定。对于实体之间的联系关系中,只有收藏关系需要确切地单独建立一个表出来,这个表以歌曲表的歌曲编号和用户表的用户编号为主码。而其他关系不需要建表,因为它们没有建表的需要。根据E-R图,可转化为如下关系模式:关系的主码用下划线标出,外码用波浪线标出。实体:歌星(歌星编号,歌星姓名,歌星性别,国籍,歌星类型,地区,拼音缩写)歌曲(歌曲编号,歌曲名称,歌星编号,语种,歌曲类型,路径,歌曲拼音缩写,歌曲时长)金曲排行(歌曲编号,歌曲名称,歌星姓名,周点击率,月点击率,总点击率)后台日志(操作编号,操作内容,操作时间,操作人员,备注)管理员(管理员用户名,管理员密码)用户(用户编号,用户登录名,用户密码,用户姓名,用户性别,出生日期,注册日期)联系:收藏(用户编号,歌曲编号,日期)歌星表列名数据类型能否取空约束性歌星编号intNotnull主键歌星姓名Char(10)Notnull歌星性别char(2)男或女国籍Char(20)歌星类型Char(10)地区Char(20)拼音缩写Char(20)Notnull字母歌曲表列名数据类型能否取空约束性歌曲编号intNotnull主键歌曲名称Char(20)Notnull歌星编号intNotnull外键语种Char(10)歌曲类型Char(10)路径Char(20)歌曲拼音缩写Char(20)Notnull字母歌曲时长datetime金曲排行表列名数据类型能否取空约束性歌曲编号intNotnull主键歌曲名称Char(20)Notnull歌星姓名Char(10)Notnull周点击率int月点击率int总点击率int后台日志表列名数据类型能否取空约束性操作编号intNotnull主键操作内容Char(40)Notnull操作时间datetimeNotnull操作人员Char(20)Notnull外键备注Char(20)管理员表列名数据类型能否取空约束性管理员用户名Char(20)Notnull主键管理员密码Char(20)Notnull用户表列名数据类型能否取空约束性用户编号intNotnull主键用户登录名Char(20)Notnull唯一用户密码Char(20)Notnull用户姓名Char(20)Notnull用户性别Char(2)Notnull男或女出生日期datetimeNotnull注册日期datetimeNotnull收藏表列名数据类型能否取空约束性用户编号intNotnull主属性、外键歌曲编号intNotnull主属性、外键日期datetime4.2数据库物理设计4.2.1介绍数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。数据库的物理设计通常分为两步:一:确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;二:对物理结构进行评价,评价的重点是时间和空间效率。4.2.2索引设计建立四个唯一索引,分别由各表组成。1.歌星表索引createuniqueindex歌星索引on歌星表(歌星姓名)歌曲表索引createuniqueindex歌曲索引on歌曲表(歌曲名称)3.金曲排行表索引createuniqueindex排行索引on金曲排行表(歌曲编号)4.用户索引createuniqueindex用户索引on用户表(用户姓名)4.3系统总体框架根据系统功能的需求分析和卡拉OK点歌系统的特点,经过模块化的分析得出系统功能模块结构图。系统结构图:5数据库具体实施5.1数据库实施完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库了,这就是数据库实施阶段。5.1.1数据库的实施数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。创建数据库主要通过T-SQL语句来实现,在查询分析器分别输入以下语句来执行:createdatabaseKYV点歌系统(1)createtable歌星表(歌星编号 int primarykey,歌星姓名 char(10)notnull,歌星性别 char(2) check(歌星性别in('男','女')),国籍 char(20),歌星类型char(10),拼音缩写 char(20)notnull,地区 char(20))insertinto歌星表values('001','蔡依林','女','中国','流行','cyl','港台')insertinto歌星表values('002','周杰伦','男','中国','流行','zjl','港台')insertinto歌星表values('003','陈坤','男','中国','摇滚','ck','大陆')insertinto歌星表values('004','黄丽玲','女','中国','流行','hll','港台')insertinto歌星表values('005','张靓颖','女','中国','流行','zly','大陆')insertinto歌星表values('006','Adele','女','美国','流行','ade','外国')insertinto歌星表values('007','张杰','男','中国','流行','zj','大陆')insertinto歌星表values('008','张韶涵','女','中国','流行','zsh','港台')insertinto歌星表values('009','邓紫棋','女','中国','流行','dzq','港台')(2)createtable歌曲表(歌曲编号intprimarykey,歌曲名称Char(20)notnull,歌星编号intnotnullforeignkey(歌星编号)references歌星表(歌星编号),语种Char(10),歌曲类型Char(10),路径Char(20),歌曲拼音缩写Char(20)notnull,歌曲时长datetime)insertinto歌曲表values('1','第三人称','1','国语','爱情','C盘CD文件夹','dsrc','04:35')insertinto歌曲表values('2','牛仔很忙','2','国语','欢快','C盘CD文件夹','nzhm','03:51')insertinto歌曲表values('3','空城','3','国语','伤感','C盘CD文件夹','kc','04:55')insertinto歌曲表values('4','睡公主','9','粤语','爱情','C盘CD文件夹','sgz','04:12')insertinto歌曲表values('5','有形的翅膀','8','国语','励志','C盘CD文件夹','yxdcb','04:53')insertinto歌曲表values('6','给我一个理由忘记','4','国语','感情','C盘CD文件夹','gwygly','05:03')insertinto歌曲表values('7','终于等到你','5','国语','爱情','C盘CD文件夹','zyddn','04:30')insertinto歌曲表values('8','someonelikeyou','6','外语','感情','C盘CD文件夹','sly','04:28')insertinto歌曲表values('9','天下','7','国语','励志','C盘CD文件夹','tx','05:03')insertinto歌曲表values('10','泡沫','9','国语','伤感','C盘CD文件夹','pm','04:42')(3)createtable金曲排行表(歌曲编号 int primarykey,歌曲名称 Char(20)Notnull,歌星姓名 Char(10)Notnull,周点击率 float(10), 月点击率 float(10), 总点击率 float(10) )insertinto金曲排行表values('1','第三人称','蔡依林','33','150','350')insertinto金曲排行表values('2','牛仔很忙','周杰伦','40','199','550')insertinto金曲排行表values('3','空城','杨坤','22','124','300')insertinto金曲排行表values('4','睡公主','邓紫棋','55','230','720')insertinto金曲排行表values('7','终于等到你','张靓颖','51','64','180')insertinto金曲排行表values('8','someonelikeyou','Adele','11','87','120')insertinto金曲排行表values('5','有形的翅膀','张韶涵','25','150','400')Insertinto金曲排行表values('6','给我一个理由忘记','黄丽玲','28','153','320')(4)createtable后台日志表(操作编号 int primarykey,操作内容 Char(40) Notnull,操作时间 datetime Notnull, 操作人员 char(20) Notnullforeignkey(操作人员)references管理员表(管理员用户名),备注 Char(20) )(5)createtable管理员表(管理员用户名 Char(20)primarykey,管理员密码 Char(20)Notnull )insertinto管理员表values('admin','admin')(6)createtable用户表(用户编号intprimarykey,用户登录名Char(20) Notnullunique,用户密码 Char(20) Notnull, 用户姓名 Char(20) Notnull, 用户性别 Char(2) Notnullcheck(用户性别in('男','女')),出生日期 datetime Notnull,注册日期 datetime Notnull )insertinto用户表values('801','ruan36228','6228','陈寅恪','男','1992-02-22','2014-04-08')insertinto用户表values('802','ruan36229','6229','赵信','男','1993-04-21','2014-10-01')insertinto用户表values('803','ruan36233','6233','维恩','女','1993-06-18','2015-01-03')insertinto用户表values('804','ruan36244','6244','阿狸','女','1993-02-09','2014-12-06')(7)createtable收藏表(用户编号 int ,歌曲编号 int,primarykey(用户编号,歌曲编号),foreignkey(用户编号)references用户表(用户编号)ondeletecascade/*当删除用户表的元组时,级连删除收藏表中相应的元组*/onupdatecascade,/*当更新用户表的用户编号时,级连更新收藏表中相应的元组*/foreignkey(歌曲编号)references歌曲表(歌曲编号)ondeletenoaction/*当删除歌曲表的元组时造成了与收藏表不一致时拒绝删除*/onupdatecascade,/*当更新歌曲表的歌曲编号时,级连级连更新收藏表中相应的元组*/日期 datetime )insertinto收藏表values('801','1','2014-05-01')insertinto收藏表values('801','2','2014-05-01')insertinto收藏表values('801','3','2014-06-01')insertinto收藏表values('801','4','2014-11-03')insertinto收藏表values('801','6','2014-07-03')insertinto收藏表values('802','1','2014-11-02')insertinto收藏表values('802','9','2014-11-02')insertinto收藏表values('802','5','2014-12-03')insertinto收藏表values('803','2','2015-01-06')insertinto收藏表values('803','8','2015-01-06')insertinto收藏表values('803','5','2015-01-06')insertinto收藏表values('804','1','2014-12-12')insertinto收藏表values('804','7','2014-12-12')insertinto收藏表values('804','5','2014-12-12')insertinto收藏表values('804','4','2014-12-12')insertinto收藏表values('804','2','2014-12-12')数据库关系图:5.1.2视图设计为了便于浏览经常查询的信息,提高查询效率,可以考虑建立相关视图,因为它不仅可提供了数据库安全性,还可以节省系统资源开销。(1)用户表、收藏表,歌星表,歌曲表之间,建立一个歌曲总点击率超过一百的视图createviewVIEW_用户喜爱歌曲asselect用户表.用户编号,用户登录名,用户姓名,收藏表.歌曲编号,歌曲表.歌曲名称,金曲排行表.歌星姓名,总点击率from用户表,收藏表,歌星表,歌曲表,金曲排行表where用户表.用户编号=收藏表.用户编号--用户表连接收藏表and收藏表.歌曲编号=歌曲表.歌曲编号--收藏表连接歌曲表and歌曲表.歌星编号=歌星表.歌星编号--歌曲表连接歌星表and歌曲表.歌曲编号=金曲排行表.歌曲编号--歌曲表连接金曲排行表and总点击率>100根据金曲排行表,建立周点击率,月点击率,总点击率的平均点击率的视图createviewVIEW_平均点击率asselectAVG(周点击率)周平均,AVG(月点击率)月平均,AVG(总点击率)总平均from金曲排行表根据金曲排行表和平均点击率视图分别建立歌曲的周排行榜、月排行榜、总排行榜视图createviewVIEW_周排行榜asselect歌曲名称,歌星姓名,周点击率from金曲排行表,VIEW_平均点击率where周点击率>周平均createviewVIEW_月排行榜asselect歌曲名称,歌星姓名,月点击率from金曲排行表,VIEW_平均点击率where月点击率>月平均createviewVIEW_总排行榜asselect歌曲名称,歌星姓名,总点击率from金曲排行表,VIEW_平均点击率where总点击率>总平均根据歌曲表和排行榜视图建立热门歌手视图,要求歌星在周、月和总排行榜三个排行榜至少有一次榜上有名。createviewVIEW_热门歌手asselect歌曲名称,歌星姓名from金曲排行表,VIEW_平均点击率where总点击率>总平均or月点击率>月平均or周点击率>周平均5.2数据库的数据完整性设计5.2.1数据库完整性概念数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库的完整性包括:(1)实体完整性实体完整性将行定义为特定表的唯一实体。实体完整性通过索引、UNIQUE约束、PRIMARYKEY约束或IDENTITY属性强制表的标识符列或主键的完整性。参照完整性参照完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护(通过FOREIGNKEY和CHECK约束),确保键值在所有表中一致,要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改;(3)用户定义的完整性用户定义完整性使得用户得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATETABLE中的所有列级和表级约束、存储过程和触发器)。5.2.2违反数据库完整性1、违反实体完整性本系统中有以下7个关系模式,带下划线为主码,删除线为外码。歌星(歌星编号,歌星姓名,歌星性别,国籍,歌星类型,地区,拼音缩写)歌曲(歌曲编号,歌曲名称,歌星编号,语种,歌曲类型,路径,歌曲拼音缩写,歌曲时长)金曲排行(歌曲编号,歌曲名称,歌星姓名,周点击率,月点击率,总点击率)后台日志(操作编号,操作内容,操作时间,操作人员,备注)管理员(管理员用户名,管理员密码)用户(用户编号,用户登录名,用户密码,用户姓名,用户性别,出生日期,注册日期)联系:收藏(用户编号,歌曲编号,日期)对以上的基本表进行增加、删除和修改操作时,检测:检查主码值是否唯一,如果不是唯一则拒绝插入。检查主码的各个属性是否为空,只要有一个为空就拒绝插入。违反参照完整性可能破坏参照完整性的情况及违约处理:对应的数据库的参照完整性设计:createtable收藏表(用户编号 int ,歌曲编号 int,primarykey(用户编号,歌曲编号),foreignkey(用户编号)references用户表(用户编号)ondeletecascade/*当删除用户表的元组时,级连删除收藏表中相应的元组*/onupdatecascade,/*当更新用户表的用户编号时,级连更新收藏表中相应的元组*/foreignkey(歌曲编号)references歌曲表(歌曲编号)ondeletenoaction/*当删除歌曲表的元组时造成了与收藏表不一致时拒绝删除*/onupdatecascade,/*当更新歌曲表的歌曲编号时,级连级连更新收藏表中相应的元组*/日期 datetime3、违反自定义完整性1、性别只能取值男或女,对应T-SQL设计CHECK(SEXIN'男'或'女'),当性别插入值在可行域外的时候拒绝执行,并利用触发器提醒用户输入正确值。要求用户登录名唯一,属性列定义需加上UNIQUE限制。管理员添加用户的时候,若新增用户登录名已存在用户信息表中,回被系统拒绝执行。5.3数据的安全设计在卡拉OK点歌系统中,设计了用户登录和管理员登录。其中用户只有检索和收藏歌曲的权限,管理员能够对歌曲信息、歌星信息、用户信息作增删改查操作。5.4系统功能模块的设计与实现5.4.1系统功能描述后台数据库维护功能描述管理员可登录后台管理系统对歌曲、歌星、

温馨提示

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

评论

0/150

提交评论