数据库课程设计 社团管理系统.docx
《数据库课程设计 社团管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 社团管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
数据库课程设计社团管理系统
《数据库原理及应用》
课程设计说明书
题目:
社团管理系统
专业班级:
学生姓名:
学号:
指导教师:
二0一四年6月9日
0
0
0
1.概述
本系统的设计内容及要求
根据目前我校社团管理机制,设计的社团管理系统后台数据库。
实现社团日常业务运作的信息化管理。
包括:
社团基本信息管理,活动开展,活动分录入。
活动参与,参与结果等次评定。
团员之间的消息互动(类似微信),普通学生入会申请,社团内部职位安排等功能。
策略分析题目:
1按照社团给出职位一览信息。
2按照活动给出参与及得分情况。
3按照会员给出参与社团及曾经参加的活动列表,以及报名待申请的活动列表。
4查询某同学消息互动
2.需求分析
开发背景
当前还没有类似系统的使用,一直以来人们以传统人工方式管理学生社团,这种管理方式效率比较低,且还容易丢失,数据多的话对查找、更新、维护都带来了不少困难,随着科学技术的逐步提高,计算机功能日益成熟,它已进入人类社会的各个领域并发挥着越来越重要的作用,人们逐渐认识到了计算机的作用是多么的强大,我们完全可以利用计算机强大的功能开发出一个数据库来管理这些繁多的数据。
开发目的
现在科学技术那么发达,为了改变当前传统人工管理学生社团的局面,需要开发一种即省时又省力的方便快捷数据管理软件,因此我编写了此程序,使我们能够只从表面看数据,更清晰,同时方便了对数据的维护,使使用者能够很快的找到自己需要的信息,即节省了时间又节省了许多人力资源,在当今时间观念那么紧的社会下,能多一点时间做别的事情就能多一份收获。
功能需求
社团管理(包括添加社团,解除社团,修改社团基本信息等)
活动开展(在活动信息表中添加一个活动信息)
活动分数录入(修改活动与社团关系表中的活动分数(活动分数允许为空))
活动参与(在活动与社团关系表添加信息)
参与结果等次评定(根据活动分数排名社团名次)
团员之间的消息互动(在交互信息表中添加一个信息)
普通学生入会申请(在学生与社团关系表添加一个信息)
社团内部职位安排(修改学生与社团关系表中的职务信息)
按照社团给出职位一览信息(在学生与社团关系表中根据社团名称查询所有符合的职位)
按照活动给出参与及得分情况(在活动与社团关系表中根据活动名称查询参与的社团及得分情况)
按照会员给出参与社团及曾经参加的活动列表(先在学生与社团关系表中根据某学生的姓名查询所在社团,再在活动与社团关系表中根据所查出的社团名称查询参加过的活动并把两个信息组成一个表显示出来)。
查询某同学消息互动(在交互信息表中根据某学生的姓名查询交互信息)
数据需求
社团信息:
包括社团名称,社团性质,成立日期和创始人。
学生信息:
包括学号姓名,性别,班级,年级,院系,学号和联系方式。
活动信息:
活动名称,活动地点,活动时间。
消息信息:
互动方式。
3.数据库设计
概念设计
实体及其属性E-R图
社团实体的属性包括社团名称,社团性质,成立日期和创始人。
社团信息实体E-R图
活动实体的属性
活动属性有活动名称,活动地点,活动时间。
活动信息实体E-R图
学生实体的属性
学生属性有学号姓名,性别,班级,年级,院系,学号和联系方式。
学生信息实体E-R图
实体及其联系图
整体E-R图
完整的实体—联系图
整体E-R图
完整实体的pdm图
逻辑设计
建立的数据库名称为社团管理系统,数据库中有七个表,名称分别为Unioninf,Stuinf,Actinf,SUinf,AUinf,Mesinf和SMinf,Unioninf为社团信息表,用来存储社团相关信息,主键为社团名称,Stuinf为学生信息表,用来存储加入过社团的学生的相关信息,主键为学号,Activityinf为活动信息表,用来存储活动相关信息,主键为活动名称,AUinf为社团和活动的关系表,用来存储有哪些社团参加了哪些活动,主键为活动名称和社团名称,其中活动名称和社团名称分别是外码,SUinf为社团和学生的关系表,用来存储哪些学生参加了哪些社团,主键为学号和社团名称,其中学号和社团名称分别为外码,Mesinf为消息信息表,用来存储消息的属性,主键为互动方式。
SMinf为学生消息互动表,用来存储哪些学生进行了哪些消息互动,主键是消息编号。
Unioninf(社团信息表)
字段名
类型
长度
是否为空
备注
社团名称
varchar
20
否
主键
社团性质
varchar
50
否
成立日期
varchar
20
否
创始人
varchar
10
否
CreatetableUnioninf(
社团名称varchar(20)primarykey,
社团性质varchar(50)notnull,
成立日期varchar(20)notnull,
创始人varchar(10)notnull,
)
Stuinf(社团学生信息表)
字段名
类型
长度
是否为空
备注
学号
int
10
否
主键
姓名
varchar
10
否
性别
varchar
2
否
班级
varchar
10
否
院系
varchar
20
否
联系方式
int
15
能
年级
int
2
否
CreatetableStuinf(
学号intprimarykey,
姓名varchar(10)notnull,
性别varchar
(2)notnull,
班级varchar(10)notnull,
院系varchar(20)notnull,
联系方式int,
年级intnotnull,
)
SUinf(学生与社团关系表)
字段名
类型
长度
是否为空
备注
社团名称
varchar
20
否
主键(也是外键)
学号
int
10
否
入团时间
varchar
10
否
职务
varchar
10
否
默认为普通会员
CreatetableSUinf(
社团名称varchar(20)notnull,
学号intnotnull,
入团时间varchar(10)notnull,
职务varchar(10)notnulldefault'普通会员',
Primarykey(社团名称,学号),
Foreignkey(社团名称)referencesUnioninf(社团名称),
Foreignkey(学号)referencesStuinf(学号),
)
Actinf(活动信息表)
字段名
类型
长度
是否为空
备注
活动名称
varchar
20
否
主键
活动日期
varchar
10
否
活动地点
varchar
50
否
CreatetableActinf(
活动名称varchar(20)notnull,
活动日期varchar(10)notnull,
活动地点varchar(50)notnull,
Primarykey(活动名称),
)
AUinf(活动与社团关系表)
字段名
类型
长度
是否为空
备注
社团名称
varchar
20
否
主键(也是外键)
活动名称
varchar
20
否
活动评分
int
4
能
在0-100之间
CreatetableAUinf(
社团名称varchar(20)notnull,
活动名称varchar(20)notnull,
活动评分intcheck(活动评分>=0and活动评分<=100),
Primarykey(社团名称,活动名称),
Foreignkey(社团名称)referencesUnioninf(社团名称),
Foreignkey(活动名称)referencesActinf(活动名称),
)
Mesinf(消息信息表)
字段名
类型
长度
是否为空
备注
互动方式
varchar
20
否
主键
CreatetableMesinf(
互动方式varchar(20)notnull,
Primarykey(互动方式),
)
SMinf(学生消息互动表)
字段名
类型
长度
是否为空
备注
消息编号
int
10
否
主键
发送方学号
int
10
否
外键
交互方式
Varchar
20
否
交互对象
varchar
10
否
CreatetableSMinf(
消息编号intnotnull,
发送方学号intnotnull,
交互方式varchar(20)notnull,
交互对象varchar(10)notnull,
Primarykey(消息编号),
Foreignkey(发送方学号)referencesStuinf(学号),
Foreignkey(交互方式)referencesMesinf(互动方式),
)
注:
以为两个个学生之间可以有多个消息互动,所以这个主键不能是发送方学号和交互方式,只能重新定义一个消息编号作为主键。
而且每次添加数据一次要添加两个。
4.课题分析和查询方案及实现
1.社团管理(包括添加社团,解除社团,修改社团基本信息等)
添加社团:
insertintoUnioninfvalues('羽毛球协会','体育','','张佳')
解除社团:
deletefromUnioninfwhere社团名称='羽毛球协会'
修改社团基本信息:
updateUnioninfset创始人='王进'
where社团名称='网球社团'
2.活动开展
insertintoActinfvalues('晨跑','操场','')
3.活动分数录入
updateAUinfset活动评分=99where社团名称='吉他协会'and活动名称='晚会'
4.活动参与
insertintoAUinfvalues('吉他协会','晚会','90')
5.参与结果等次评定
select社团名称,活动评分fromAUinfwhere活动名称='春游'orderby活动评分desc
6.团员之间的消息互动
insertintoSMinfvalues('9','121515','QQ','刘婷')
insertintoSMinfvalues('10','130522','QQ','蒋平')
7.普通学生入会申请
insertintoSUinfvalues('电子创新协会','130522','','普通会员')
8.社团内部职位安排
updateSUinfset职务='财务总监'where学号in
(select学号fromStuinfwhere姓名='唐灿华')
9.按照社团给出职位一览信息
select职务,姓名fromSUinfinnerjoinStuinfonStuinf.学号=SUinf.学号
where社团名称='电子创新协会'
10.按照活动给出参与及得分情况
select社团名称参与该活动的社团,活动评分fromAUinfwhere活动名称='培训'
11.按照会员给出参与社团
select社团名称该学生参与的社团fromSUinfwhere学号in
(select学号fromStuinfwhere姓名='李娟')
12.按照会员给出曾经参加的活动列表
selectAUinf.社团名称该同学参与的社团,活动名称该学生在对应社团参与的活动from
SUinfinnerjoinAUinfonSUinf.社团名称=AUinf.社团名称where学号in
(select学号fromStuinfwhere姓名='杨朝来')
13.查询某同学消息互动
select姓名,消息编号,交互方式,交互对象
fromStuinfinnerjoinSMinfonStuinf.学号=SMinf.发送方学号where姓名='吕红'
5.系统总结
总结
本系统是以MicrosofSQLServer2008作为后台数据库实现的一款用T-SQL语句操作的系统,能够实现对学生社团管理的基本功能,包括对社团信息的添加、删除、修改和查询,活动开展,活动分数录入,参与结果等次评定,普通学生入会申请,社团内部职位安排,按照活动给出参与及得分情况,按照会员给出参与社团及曾经参加的活动列表,查询某同学消息互动等功能,通过用一些数据对系统的测试,系统运行基本稳定,运行结果符合要求,能够实现上述功能,简单易用。
系统不足
本系统虽然能够实现一些基本功能,但还有不少需要完善的地方,首先就是查询信息时只能用T-SQL语句查询,所以该系统局限性很大,有时候显示不能按自己想象的那样显示,只能按SQL2008的要求一列一列的显示。