资源描述
数据库原理及应用课程设计说明书题 目: 社团管理系统 专业班级: 学生姓名: 学 号: 指导教师: 二0一四 年 6 月 9日目录1.设计要求及功能简介21.1本系统的设计内容及要求22.需求分析22.1开发背景22.2开发目的22.3功能需求22.4数据需求33.数据库设计33.1概念设计33.1.1实体及其属性图33.1.2实体及其联系图53.1.3完整的实体联系图53.1.3完整实体的PDM图53.2逻辑设计64.课题分析和查询方案及实现85.系统总结105.1总结105.2系统不足101.概述1.1本系统的设计内容及要求 根据目前我校社团管理机制,设计的社团管理系统后台数据库。实现社团日常业务运作的信息化管理。包括:社团基本信息管理,活动开展,活动分录入。活动参与,参与结果等次评定。团员之间的消息互动(类似微信),普通学生入会申请,社团内部职位安排等功能。策略分析题目:1按照社团给出职位一览信息。2按照活动给出参与及得分情况。3按照会员给出参与社团及曾经参加的活动列表,以及报名待申请的活动列表。4查询某同学消息互动2.需求分析2.1开发背景 当前还没有类似系统的使用,一直以来人们以传统人工方式管理学生社团,这种管理方式效率比较低,且还容易丢失,数据多的话对查找、更新、维护都带来了不少困难,随着科学技术的逐步提高,计算机功能日益成熟,它已进入人类社会的各个领域并发挥着越来越重要的作用,人们逐渐认识到了计算机的作用是多么的强大,我们完全可以利用计算机强大的功能开发出一个数据库来管理这些繁多的数据。2.2开发目的 现在科学技术那么发达,为了改变当前传统人工管理学生社团的局面,需要开发一种即省时又省力的方便快捷数据管理软件,因此我编写了此程序,使我们能够只从表面看数据,更清晰,同时方便了对数据的维护,使使用者能够很快的找到自己需要的信息,即节省了时间又节省了许多人力资源,在当今时间观念那么紧的社会下,能多一点时间做别的事情就能多一份收获。2.3功能需求社团管理(包括添加社团,解除社团,修改社团基本信息等)活动开展(在活动信息表中添加一个活动信息)活动分数录入(修改活动与社团关系表中的活动分数(活动分数允许为空)活动参与(在活动与社团关系表添加信息)参与结果等次评定(根据活动分数排名社团名次)团员之间的消息互动(在交互信息表中添加一个信息)普通学生入会申请(在学生与社团关系表添加一个信息)社团内部职位安排(修改学生与社团关系表中的职务信息)按照社团给出职位一览信息(在学生与社团关系表中根据社团名称查询所有符合的职位)按照活动给出参与及得分情况(在活动与社团关系表中根据活动名称查询参与的社团及得分情况)按照会员给出参与社团及曾经参加的活动列表(先在学生与社团关系表中根据某学生的姓名查询所在社团,再在活动与社团关系表中根据所查出的社团名称查询参加过的活动并把两个信息组成一个表显示出来)。查询某同学消息互动(在交互信息表中根据某学生的姓名查询交互信息)2.4数据需求社团信息:包括社团名称,社团性质,成立日期和创始人。学生信息:包括学号姓名,性别,班级,年级,院系,学号和联系方式。活动信息:活动名称,活动地点,活动时间。消息信息:互动方式。3.数据库设计3.1概念设计3.1.1实体及其属性E-R图社团实体的属性包括社团名称,社团性质,成立日期和创始人。社团信息实体E-R图社团性质成立日期社团社团名称创始人活动实体的属性活动属性有活动名称,活动地点,活动时间。活动信息实体E-R图开始时间活动活动名称活动地点学生实体的属性学生属性有学号姓名,性别,班级,年级,院系,学号和联系方式。学生信息实体E-R图性别年级姓名学生联系方式班级院系学号3.1.2实体及其联系图整体E-R图参加活动社团mba属于n消息交互学生qp3.1.3完整的实体联系图整体E-R图活动评分活动名称活动时间成立日期创始人社团名称活动地点参加活动社团ba社团性质m职务属于消息编号交互对象入团时间n年级p互动方式交互消息班级学生q院系联系方式姓名学号性别3.1.4完整实体的pdm图3.2逻辑设计建立的数据库名称为社团管理系统,数据库中有七个表,名称分别为Unioninf,Stuinf,Actinf,SUinf,AUinf,Mesinf和SMinf,Unioninf为社团信息表,用来存储社团相关信息,主键为社团名称,Stuinf为学生信息表,用来存储加入过社团的学生的相关信息,主键为学号,Activityinf为活动信息表,用来存储活动相关信息,主键为活动名称,AUinf为社团和活动的关系表,用来存储有哪些社团参加了哪些活动,主键为活动名称和社团名称,其中活动名称和社团名称分别是外码,SUinf为社团和学生的关系表,用来存储哪些学生参加了哪些社团,主键为学号和社团名称,其中学号和社团名称分别为外码,Mesinf为消息信息表,用来存储消息的属性,主键为互动方式。SMinf为学生消息互动表,用来存储哪些学生进行了哪些消息互动,主键是消息编号。 Unioninf(社团信息表)字段名类型长度是否为空备注社团名称varchar20否主键社团性质varchar50否成立日期varchar20否创始人varchar10否Create table Unioninf(社团名称 varchar(20) primary key,社团性质 varchar(50) not null,成立日期 varchar(20) not null,创始人 varchar(10) not null,) Stuinf(社团学生信息表)字段名类型长度是否为空备注学号int10否主键姓名varchar10否性别varchar2否班级varchar10否院系varchar20否联系方式int15能年级int2否 Create table Stuinf(学号 int primary key,姓名 varchar(10) not null,性别 varchar(2) not null,班级 varchar(10) not null,院系 varchar(20) not null,联系方式 int,年级 int not null,)SUinf(学生与社团关系表)字段名类型长度是否为空备注社团名称varchar20否主键(也是外键)学号int10否入团时间varchar10否职务varchar10否默认为普通会员Create table SUinf(社团名称 varchar(20) not null,学号 int not null,入团时间 varchar(10) not null,职务 varchar(10) not null default普通会员,Primary key (社团名称,学号),Foreign key (社团名称) references Unioninf (社团名称),Foreign key (学号) references Stuinf (学号),)Actinf(活动信息表)字段名类型长度是否为空备注活动名称varchar20否主键活动日期varchar10否活动地点varchar50否Create table Actinf (活动名称 varchar(20) not null ,活动日期 varchar(10) not null ,活动地点 varchar(50) not null ,Primary key (活动名称) ,)AUinf(活动与社团关系表)字段名类型长度是否为空备注社团名称varchar20否主键(也是外键)活动名称varchar20否活动评分int4能在0-100之间Create table AUinf(社团名称 varchar(20) not null ,活动名称 varchar(20) not null ,活动评分 int check(活动评分=0 and 活动评分=100),Primary key (社团名称,活动名称),Foreign key (社团名称) references Unioninf(社团名称),Foreign key (活动名称) references Actinf(活动名称),)Mesinf(消息信息表)字段名类型长度是否为空备注互动方式varchar20否主键Create table Mesinf (互动方式 varchar(20) not null,Primary key (互动方式),)SMinf(学生消息互动表)字段名类型长度是否为空备注消息编号int10否主键发送方学号int10否外键交互方式Varchar20否交互对象varchar10否Create table SMinf(消息编号 int not null ,发送方学号 int not null,交互方式 varchar(20) not null,交互对象 varchar(10) not null,Primary key (消息编号),Foreign key (发送方学号) references Stuinf (学号),Foreign key (交互方式) references Mesinf (互动方式),)注:以为两个个学生之间可以有多个消息互动,所以这个主键不能是发送方学号和交互方式,只能重新定义一个消息编号作为主键。而且每次添加数据一次要添加两个。4.课题分析和查询方案及实现1.社团管理(包括添加社团,解除社团,修改社团基本信息等)添加社团:insert into Unioninf values(羽毛球协会,体育,2013.2.23,张佳)解除社团:delete from Unioninf where 社团名称 = 羽毛球协会修改社团基本信息:update Unioninf set 创始人 = 王进where 社团名称 = 网球社团2.活动开展insert into Actinf values (晨跑,操场,2014.3.6)3. 活动分数录入update AUinf set 活动评分 = 99 where 社团名称 = 吉他协会 and 活动名称 = 晚会4. 活动参与insert into AUinf values(吉他协会,晚会,90)5. 参与结果等次评定select 社团名称,活动评分 from AUinf where 活动名称 = 春游 order by 活动评分 desc6. 团员之间的消息互动insert into SMinf values(9,121515,QQ,刘婷)insert into SMinf values(10,130522,QQ,蒋平)7. 普通学生入会申请insert into SUinf values(电子创新协会,130522,2014.05.06,普通会员)8. 社团内部职位安排update SUinf set 职务 = 财务总监 where 学号 in (select 学号 from Stuinf where 姓名 = 唐灿华)9. 按照社团给出职位一览信息select 职务,姓名 from SUinf inner join Stuinf on Stuinf.学号 = SUinf.学号 where 社团名称 = 电子创新协会10. 按照活动给出参与及得分情况select 社团名称 参与该活动的社团,活动评分 from AUinf where 活动名称 = 培训11. 按照会员给出参与社团select 社团名称 该学生参与的社团 from SUinf where 学号 in(select 学号 from Stuinf where 姓名 = 李娟)12. 按照会员给出曾经参加的活动列表select AUinf.社团名称 该同学参与的社团,活动名称 该学生在对应社团参与的活动 from SUinf inner join AUinf on SUinf.社团名称 = AUinf.社团名称 where 学号 in(select 学号 from Stuinf where 姓名 = 杨朝来)13. 查询某同学消息互动select 姓名,消息编号,交互方式,交互对象 from Stuinf inner join SMinf on Stuinf.学号 = SMinf.发送方学号 where 姓名 = 吕红5.系统总结5.1总结本系统是以Microsof SQL Server 2008作为后台数据库实现的一款用T-SQL语句操作的系统,能够实现对学生社团管理的基本功能,包括对社团信息的添加、删除、修改和查询,活动开展,活动分数录入,参与结果等次评定,普通学生入会申请,社团内部职位安排,按照活动给出参与及得分情况,按照会员给出参与社团及曾经参加的活动列表,查询某同学消息互动等功能,通过用一些数据对系统的测试,系统运行基本稳定,运行结果符合要求,能够实现上述功能,简单易用。5.2系统不足本系统虽然能够实现一些基本功能,但还有不少需要完善的地方,首先就是查询信息时只能用T-SQL语句查询,所以该系统局限性很大,有时候显示不能按自己想象的那样显示,只能按SQL2008的要求一列一列的显示。10
展开阅读全文