点歌管理系统数据库设计Word文件下载.docx

上传人:b****4 文档编号:17114760 上传时间:2022-11-28 格式:DOCX 页数:14 大小:61.68KB
下载 相关 举报
点歌管理系统数据库设计Word文件下载.docx_第1页
第1页 / 共14页
点歌管理系统数据库设计Word文件下载.docx_第2页
第2页 / 共14页
点歌管理系统数据库设计Word文件下载.docx_第3页
第3页 / 共14页
点歌管理系统数据库设计Word文件下载.docx_第4页
第4页 / 共14页
点歌管理系统数据库设计Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

点歌管理系统数据库设计Word文件下载.docx

《点歌管理系统数据库设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《点歌管理系统数据库设计Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

点歌管理系统数据库设计Word文件下载.docx

查找歌手方面:

(11)按性别查找:

用户给定歌手的性别(男或女),系统返回符合条件的歌手信息。

(12)按地区查找:

用户给定歌手的所属地区,系统返回符合条件的歌手信息.

(13)按名字查找:

用户给定歌手的名字,系统返回符合条件的歌手信息。

系统安全性:

(14)登录系统:

系统对用户的身份进行验证,授权用户才能操作系统.

2数据流图

(1)根据系统的功能需求,可以画出系统的第1层数据流图。

(2)在系统的第1层数据流图之后,再画出系统的第2层数据流图。

歌曲歌曲

歌曲歌曲歌曲不存在

歌曲已存在,添加失败

添加成功信息

歌曲删除歌曲

歌曲歌曲歌曲存在

歌曲不存在,删除歌曲失败信息

删除成功信息

歌曲歌曲歌曲

歌曲不存在,修改失败信息

修改成功信息

 

歌曲

查找歌曲的参数查找参数歌曲

歌曲不存在信息

(3)以上只是给出了一部分功能的数据流图,其它的数据图和给出的数据流图的流程大体相似。

3数据字典

名字

帐号

别名

描述

用于系统的身份验证

定义

帐号=帐号编号+密码+用户名

位置

帐号记录表

帐号编号

唯一确定一个帐号

帐号编号=正整数

密码

帐号的密码

密码=字符串

用户名

帐号的用户名字

用户名=字符串

描述歌曲的属性

歌曲=歌曲编号+歌曲的存放路径+歌曲名字+歌手编号+歌曲类型+歌曲语言

歌曲信息记录表

图10歌曲数据定义

歌曲编号

确定唯一首歌曲

歌曲编号=正整数

歌曲记录

图11歌曲编号数据定义

歌曲的存放位置

描述歌曲所在的文件夹

歌曲的存放位置=磁盘中的路径格式

图12歌曲存放位置数据定义

歌曲名字

描述歌曲的名字

歌曲名字=字符串+‘。

'

+音频文件扩展名

图13歌曲名字数据定义

曲风类型

描述歌曲的曲风类型

曲风类型={流行音乐|民族音乐|摇滚音乐|爵士音乐}

图14曲风类型数据定义

歌曲语言

描述歌曲的演唱语言种类

歌曲类型={粤语|国语|英语|日语|韩语}

图15歌曲语言数据定义

歌手

描述歌手的信息

歌手=歌手编号+歌手名字+所属地区+性别

歌手信息记录表

图16歌手数据定义

歌手编号

唯一确定一个歌手的标识符

歌手编号=字符串

歌手记录

图17歌手编号数据定义

歌手名字

描述歌手的名字

歌手名字=字符串

图18歌手名字数据定义

所属地区

描述歌手工作的地方

所属地区=字符串

图19所属地区数据定义

性别

描述歌手的性别

性别={男|女}

图20性别数据定义

2概念设计

2.1局部视图设计

对需求分析阶段收集到的数据按照E-R模型的要求进行分类,组织,形成实体,实体的属性,标识实体的码,确定实体之间的联系类型(1:

1,1:

n,m:

n),设计分E—R图.

演唱

图21E-R实体图

n1

图22歌曲属性图

3逻辑设计

3.1E—R图向关系模型的转换

在这个阶段,逻辑设计的主要任务就是要将上一步得到的E-R图向关系模型转换,将实体和实体型间的联系转换为关系模式,确定这些模式属性和码.将E-R图转换后,得到的关系模式如下,画有下划线的为主码:

歌曲(歌曲编号,歌曲名字,歌曲存放位置,曲风类型编号,歌曲语言编号)

曲风类型(曲风类型编号,名字)

歌曲语言(歌曲语言编号,名字)

歌手(歌手编号,歌手名字,所属地区,性别)

演唱(歌曲编号,歌手编号)

帐号(帐号编号,用户名,密码)

一个视图:

视图_歌曲(歌曲名字,歌曲存放位置,曲风类型名字,歌曲语言名字,歌手名字)

3。

2设计DBMS的数据字典

将得到的关系模式转换为MSSQL2000所支持的数据模型,所得到的表格如下。

图25帐号记录表

图26歌手记录表

图27歌曲记录表

图28曲风类型记录表

图29歌曲语言种类记录表

图30演唱关系表

图31“视图_歌曲”视图

2约束条件

本系统选择的数据库管理系统为MSSQL2005。

(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物理设计

本系统选择的数据库管理系统为MSSQL2000。

数据库的存取方法,存取路径没有特殊要求,按照系统的默认值来设置.索引,聚族,日志,备份等参数,因为本数据库没有特殊要求,都没设置。

5数据库实施阶段

由于时间上的限制,本人只是实现了系统的两个功能,一个是“系统的登录"

另一个是就是“添加歌手”.

5。

1“添加歌手"

功能的代码

#pragmaonce

//SingerMan。

h

//CSingerMan命令目标

#include<

afxdb.h〉

classCSingerMan:

publicCObject

{

public:

CSingerMan();

CSingerMan(CStringname,CStringaddress,CStringsex);

staticboolAddSinger(CSingerMan&singer,CDatabase&db);

virtual~CSingerMan();

CStringm_singerName;

CStringm_address;

CStringm_sex;

CStringm_singerId;

};

//SingerMan。

cpp:

实现文件

//

#include"

stdafx。

h"

#include”SingSong。

h”

SingerMan.h"

//CSingerMan

CSingerMan:

CSingerMan()

CSingerMan:

CSingerMan(CStringname,CStringaddress,CStringsex)

m_singerName=name;

m_address=address;

m_sex=sex;

}

:

~CSingerMan()

boolCSingerMan:

AddSinger(CSingerMan&

singer,CDatabase&db)

if(!

db。

IsOpen())//fail

AfxMessageBox(_T(”数据库的连接已经断开,无法执行操作!

\n请重新登录!

”));

returnfalse;

CRecordsetrs(&db);

CStringstrSql;

strSql。

Format(_T(”insertintoSINGER(name,address,sex)values('

%s'

,’%s’,'

)"

),

singer.m_singerName,singer.m_address,singer.m_sex);

db。

ExecuteSQL(strSql);

returntrue;

//SingerAddDlg。

cpp:

#include"

#include”SingSong.h”

#include”SingerAddDlg.h"

#include"

SingerMan。

#include〈afxdb。

h〉

externCDatabasegal_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()

voidCSingerAddDlg:

DoDataExchange(CDataExchange*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消息处理程序

OnBnClickedOk()

//TODO:

在此添加控件通知处理程序代码

UpdateData(true);

CButton*p=(CButton*)GetDlgItem(IDC_RADIO_MALE);

if(!

p->

GetState())

m_sex=_T(”F”);

CSingerMansinger(m_singerName,m_address,m_sex);

if(CSingerMan:

AddSinger(singer,gal_db))

MessageBox(_T("

成功添加歌曲!

”),_T("

成功信息"

));

OnOK();

}

else

添加歌曲失败!

),_T("

失败信息"

));

BOOLCSingerAddDlg:

OnInitDialog()

OnInitDialog();

//TODO:

在此添加额外的初始化

CButton*p=(CButton*)(GetDlgItem(IDC_RADIO_MALE));

p—〉SetCheck(TRUE);

m_sex=_T("

M"

);

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

//异常:

OCX属性页应返回FALSE

5.2程序运行图

图32系统初始界面

图33系统登录

图34添加歌手

5自我评价与总结

总的来说,这次的课程设计的难度比较大。

一个课程设计,是对该们课程的一次实践,是一次具体的动手能力的考验,是理论联系实践的一个过程。

《数据库系统原理》是一门比较难的课程,课程设计自然而然的就比较难了。

做这个课程设计时,老师只是给了我一个题目和一些简短的需求描述,但是要完成一个系统的设计,这些需求是远远不够的。

通过在网上搜索资料,去图书馆翻阅文献,最终把功能需求确定下来了.有了需求描述,接下来的几个阶段都是比较好实现的,但是到了数据库实施这一步时,就出现问题了。

原因是本人对具体数据库的实施不是很了解,是第一次做这个工作。

对其中的某些名词不是很明白,例如,聚族索引,也不知道如何科学的确定存取方法,确定数据库的存储结构。

这些知识都是实践上的知识,感觉课本上学到的理论不知如何才能运用到实践当中。

总的来说,这次的课程设计锻炼了我的理论结合实践的能力,尽管效果不是很好,但是这种能力确实提高了,并且我得到了很多实践的经验。

6参考文献

[1]王珊编著【数据库系统简明教程】,高等教育出版社[2]王海龙,董智勇等编著【VisualC++6.0设计师之路】,电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 书信模板

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

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