ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:239.71KB ,
资源ID:26056829      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26056829.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(点歌管理系统数据库设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

点歌管理系统数据库设计.docx

1、点歌管理系统数据库设计点歌管理系统数据库设计1 需求分析1.1 整体功能描述点歌管理系统能够存储歌曲,并按多种不同方式查找歌曲,如歌曲名,歌手名,歌曲类型,歌曲语言等等,并能够方便的对歌曲库进行管理,如歌曲的增加和删除。具体的功能需求如下。歌曲管理:(1) 添加歌曲:用户可以在系统中增加歌曲,在增加之前必须填写完整歌曲的属性。(2) 删除歌曲:用户可以删除系统中已经存在的歌曲。(3) 修改歌曲属性:用户可以自由修改系统中已经存在的歌曲的属性。歌曲的属性包括:歌曲的存放的位置,歌曲名字,歌手名字,曲风类型,歌曲语言。歌手信息管理:(4) 添加歌手:用户可以向系统增加歌手的信息。(5) 删除歌手:

2、用户可以删除系统中的歌手信息。(6) 修改歌手信息:用户可以修改歌手的信息。歌手信息包括:歌手名字,所属地区,性别。查找歌曲方面的:(7) 按歌曲名查找:用户给定歌曲的名字,系统返回歌曲的信息。(8) 按歌手名查找:用户给定歌手的名字,系统返回该歌手的所有歌曲。(9) 按歌曲类型查找:用户给定歌曲的类型,系统返回该类型所有歌曲。(10) 按歌曲语言类型查找:用户给定歌曲的语言类型,系统返回该语言类型的所有歌曲。查找歌手方面:(11) 按性别查找:用户给定歌手的性别(男或女),系统返回符合条件的歌手信息。(12) 按地区查找:用户给定歌手的所属地区,系统返回符合条件的歌手信息。(13) 按名字查

3、找:用户给定歌手的名字,系统返回符合条件的歌手信息。系统安全性:(14) 登录系统:系统对用户的身份进行验证,授权用户才能操作系统。1.2 数据流图(1) 根据系统的功能需求,可以画出系统的第1层数据流图。业务信息歌手查找参数歌手歌曲歌曲查找参数查找参数查找参数业务信息业务信息用户歌手管理歌手信息歌曲管理查找歌曲查找歌手歌曲信息图1 点歌管理系统第1层数据流图业务信息(2) 在系统的第1层数据流图之后,再画出系统的第2层数据流图。 歌曲 歌曲 歌曲 歌曲 歌曲不存在 歌曲已存在,添加失败 添加成功信息 歌曲 删除歌曲 歌曲 歌曲 歌曲存在 歌曲不存在,删除歌曲失败信息 删除成功信息 歌曲 歌曲

4、 歌曲 歌曲 歌曲 歌曲不存在,修改失败信息 修改成功信息 歌曲 查找歌曲的参数 查找参数 歌曲 歌曲不存在信息 歌曲(3) 以上只是给出了一部分功能的数据流图,其它的数据图和给出的数据流图的流程大体相似。1.3数据字典名字帐号别名无描述用于系统的身份验证定义帐号 = 帐号编号 + 密码 + 用户名位置帐号记录表名字帐号编号别名无描述唯一确定一个帐号定义帐号编号 = 正整数位置帐号记录表名字密码别名无描述帐号的密码定义密码 = 字符串位置帐号记录表名字用户名别名无描述帐号的用户名字定义用户名 = 字符串位置帐号记录表图9 用户名数据定义 名字歌曲别名无描述描述歌曲的属性定义歌曲 = 歌曲编号

5、+ 歌曲的存放路径+歌曲名字 + 歌手编号 + 歌曲类型 + 歌曲语言位置歌曲信息记录表 图10 歌曲数据定义名字歌曲编号别名无描述确定唯一首歌曲定义歌曲编号 = 正整数位置歌曲记录 图11 歌曲编号数据定义名字歌曲的存放位置别名无描述描述歌曲所在的文件夹定义歌曲的存放位置= 磁盘中的路径格式位置歌曲记录图12 歌曲存放位置数据定义名字歌曲名字别名无描述描述歌曲的名字定义歌曲名字 = 字符串 +.+ 音频文件扩展名位置歌曲记录 图13 歌曲名字数据定义名字曲风类型别名无描述描述歌曲的曲风类型定义曲风类型= 流行音乐 | 民族音乐 | 摇滚音乐 | 爵士音乐位置歌曲记录 图14 曲风类型数据定义

6、名字歌曲语言别名无描述描述歌曲的演唱语言种类定义歌曲类型= 粤语 | 国语 | 英语 | 日语 | 韩语位置歌曲记录 图15 歌曲语言数据定义名字歌手别名无描述描述歌手的信息定义歌手 = 歌手编号 + 歌手名字 + 所属地区 + 性别位置歌手信息记录表 图16 歌手数据定义名字歌手编号别名无描述唯一确定一个歌手的标识符定义歌手编号 = 字符串位置歌手记录 图17 歌手编号数据定义名字歌手名字别名无描述描述歌手的名字定义歌手名字 = 字符串位置歌手记录 图18 歌手名字数据定义名字所属地区别名无描述描述歌手工作的地方定义所属地区 = 字符串位置歌手记录 图19 所属地区数据定义名字性别别名无描述

7、描述歌手的性别定义性别 = 男 | 女 位置歌手记录 图20 性别数据定义2 概念设计2.1 局部视图设计 对需求分析阶段收集到的数据按照E-R模型的要求进行分类,组织,形成实体,实体的属性,标识实体的码,确定实体之间的联系类型(1:1,1:n,m:n),设计分E-R图。歌曲歌手演唱图21 E-R实体图 n 1图22 歌曲属性图 3 逻辑设计3.1 E-R图向关系模型的转换 在这个阶段,逻辑设计的主要任务就是要将上一步得到的E-R图向关系模型转换,将实体和实体型间的联系转换为关系模式,确定这些模式属性和码。将E-R图转换后,得到的关系模式如下,画有下划线的为主码: 歌曲(歌曲编号,歌曲名字,歌

8、曲存放位置,曲风类型编号,歌曲语言编号) 曲风类型(曲风类型编号,名字) 歌曲语言(歌曲语言编号,名字) 歌手(歌手编号,歌手名字,所属地区,性别) 演唱(歌曲编号,歌手编号) 帐号(帐号编号,用户名,密码)一个视图:视图_歌曲(歌曲名字,歌曲存放位置,曲风类型名字,歌曲语言名字,歌手名字)3.2 设计DBMS的数据字典将得到的关系模式转换为MS SQL 2000 所支持的数据模型,所得到的表格如下。图25 帐号记录表图26 歌手记录表图27 歌曲记录表 图28 曲风类型记录表图29 歌曲语言种类记录表图30 演唱关系表 图31 “视图_歌曲” 视图3.2 约束条件 本系统选择的数据库管理系统

9、为MS SQL 2005。(1) 演唱关系表的主键为(songid,singerid)同时songid为SONG (songid)的外码,singerid为SINGER(singerid)的外码。(2) 所有的关系表的主键都为自动递增的正整数,演唱关系表的主键例外。(3) SONG(style)为SONGSTYLE(sytleid)的外码,SONG(lanStyle)为SONGLANGUANGE(languageid)的外码。(4) SONG(sex)只能为M或者F。(5) SONGLANGUAGE(name)的值唯一。(6) SONGSTYLE(name)的值唯一。4 物理设计 本系统选择的

10、数据库管理系统为MS SQL 2000。数据库的存取方法,存取路径没有特殊要求,按照系统的默认值来设置。索引,聚族,日志,备份等参数,因为本数据库没有特殊要求,都没设置。5 数据库实施阶段由于时间上的限制,本人只是实现了系统的两个功能,一个是“系统的登录”,另一个是就是“添加歌手”.5.1“添加歌手”功能的 代码#pragma once/SingerMan.h/ CSingerMan 命令目标#include class CSingerMan : public CObjectpublic: CSingerMan(); CSingerMan(CString name, CString addre

11、ss, CString sex); static bool AddSinger(CSingerMan& singer , CDatabase& db); virtual CSingerMan();public: CString m_singerName; CString m_address; CString m_sex; CString m_singerId;/ SingerMan.cpp : 实现文件/#include stdafx.h#include SingSong.h#include SingerMan.h/ CSingerManCSingerMan:CSingerMan()CSing

12、erMan:CSingerMan( CString name, CString address, CString sex ) m_singerName=name; m_address=address; m_sex=sex;CSingerMan:CSingerMan()bool CSingerMan:AddSinger( CSingerMan& singer , CDatabase& db ) if(!db.IsOpen()/ fail AfxMessageBox(_T(数据库的连接已经断开,无法执行操作!n请重新登录!); return false; CRecordset rs(&db); C

13、String strSql; strSql.Format(_T(insert into SINGER (name,address,sex ) values (%s,%s,%s), singer.m_singerName, singer.m_address, singer.m_sex); db.ExecuteSQL(strSql); return true;/ SingerAddDlg.cpp : 实现文件/#include stdafx.h#include SingSong.h#include SingerAddDlg.h#include SingerMan.h#include extern

14、CDatabase gal_db;/ CSingerAddDlg 对话框IMPLEMENT_DYNAMIC(CSingerAddDlg, CDialog)CSingerAddDlg:CSingerAddDlg(CWnd* pParent /*=NULL*/) : CDialog(CSingerAddDlg:IDD, pParent) , m_singerId(_T() , m_singerName(_T() , m_address(_T()CSingerAddDlg:CSingerAddDlg()void CSingerAddDlg:DoDataExchange(CDataExchange*

15、pDX) CDialog:DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_SINGERID, m_singerId); DDX_Text(pDX, IDC_EDIT_SINGERNAME, m_singerName); DDX_Text(pDX, IDC_EDIT_ADDRESS, m_address);BEGIN_MESSAGE_MAP(CSingerAddDlg, CDialog) ON_BN_CLICKED(IDOK, &CSingerAddDlg:OnBnClickedOk)END_MESSAGE_MAP()/ CSingerAddDlg 消息处

16、理程序void CSingerAddDlg:OnBnClickedOk() / TODO: 在此添加控件通知处理程序代码 UpdateData(true); CButton* p=(CButton*)GetDlgItem(IDC_RADIO_MALE); if(!p-GetState() m_sex=_T(F); CSingerMan singer(m_singerName,m_address,m_sex); if(CSingerMan:AddSinger(singer, gal_db) MessageBox(_T(成功添加歌曲!),_T(成功信息); OnOK(); else Message

17、Box(_T(添加歌曲失败!),_T(失败信息); BOOL CSingerAddDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: 在此添加额外的初始化 CButton* p=(CButton*)(GetDlgItem(IDC_RADIO_MALE); p-SetCheck(TRUE); m_sex=_T(M); return TRUE; / return TRUE unless you set the focus to a control / 异常: OCX 属性页应返回FALSE5.2程序运行图图32 系统初始界面图33系统登录图34 添

18、加歌手5 自我评价与总结总的来说,这次的课程设计的难度比较大。一个课程设计,是对该们课程的一次实践,是一次具体的动手能力的考验,是理论联系实践的一个过程。数据库系统原理是一门比较难的课程,课程设计自然而然的就比较难了。做这个课程设计时,老师只是给了我一个题目和一些简短的需求描述,但是要完成一个系统的设计,这些需求是远远不够的。通过在网上搜索资料,去图书馆翻阅文献,最终把功能需求确定下来了。有了需求描述,接下来的几个阶段都是比较好实现的,但是到了数据库实施这一步时,就出现问题了。原因是本人对具体数据库的实施不是很了解,是第一次做这个工作。对其中的某些名词不是很明白,例如,聚族索引,也不知道如何科学的确定存取方法,确定数据库的存储结构。这些知识都是实践上的知识,感觉课本上学到的理论不知如何才能运用到实践当中。 总的来说,这次的课程设计锻炼了我的理论结合实践的能力,尽管效果不是很好,但是这种能力确实提高了,并且我得到了很多实践的经验。6 参考文献 1王珊编著 【数据库系统简明教程】,高等教育出版社2王海龙,董智勇等编著 【Visual C+ 6.0设计师之路】,电子工业出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1