实例6社团管理系统数据库设计呕心沥血整理版.docx
《实例6社团管理系统数据库设计呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《实例6社团管理系统数据库设计呕心沥血整理版.docx(44页珍藏版)》请在冰豆网上搜索。
实例6社团管理系统数据库设计呕心沥血整理版
实例6:
社团管理系统数据库设计
1数据库设计
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求.
1.1需求分析阶段
需求分析是整个设计过程的基础,是最困难、最耗时间的一步。
需求分析做的不好,甚至会导致整个数据库设计返工重做。
1。
1.1引言
1.研究背景
随着我国高等教育的快速发展,高校办学规模不断扩大社团活动日益丰富,高校中大大小小的社团犹如雨后春笋般地建立起来.然而,其中许多的社由于缺乏管理而发展困难,于是便纷纷在昙花一现中退出了社联的大舞台.社团的出现为大学生们供了一个展现自我、发展自我的平台.然而,社团从建立到社团消亡过程,对于学校来说无疑是资金的流失;对于学生来说便是缺少了一个发展自我的舞台。
面对社团内纷繁复杂的事物以及日益增多的资料收藏,社团负责人急需一个有效的管理系统作为自己的管理工具,实现网上操作,提高工作效率。
然而在目前,大部分的高校都没有能设立起这样的管理系统。
我所开发的唐仲英爱心社活动管理系统就是一个从总体立足,以社团的主体工作-社团活动为出发点兼顾社员管理,为社团负责人提供了一个方便、快捷地了解社内信息和及时、准确的做工作计划的工具,从而为社团良好的发展起到了一定的推动作用。
1。
1。
2设计目标与任务
1.需求分析阶段的目标
(1)详细调查,深入了解唐仲英爱心社,对存在的问题进行分析,从而完成对背景和研究意义的分析;
(2)完成业务处理和数据处理(业务流图和数据流图),准确地表达用户的需求;
(3)建立数据字典(DD);
2.需求分析阶段的任务
(1)处理对象:
活动信息,社员基本信息,社员—活动信息,活动村庄信息,活动完成情况信息,详细描述如下:
a活动信息:
对经过团委批准后的活动的详细资料,涉及的数据有:
活动的编号,名称,时间,活动地点的名称,负责人姓名,活动经费等;
b社员基本信息:
秘书处审批社员能否参加活动的依据,涉及的数据主要有:
社员的编号,名字,性别,年级学院,出生日期,爱好特长,住处,联系方式,是否负责人等;
c社员—活动的信息:
处理活动参加情况,一个社员可以参加多项活动,一项活动可以被多个社员参加。
涉及的主要信息有:
活动的编号,社员的编号;
d动地点信息:
一项活动可以在多个村庄开展,一个村庄可以开展多项活动.涉的内容主要有:
村庄的编号,村庄的名称,村负责人,联系电话等;
e活动评价信息:
其中主要涉及的数据有:
评价编号,活动效果,活动说明,活动得分;
在以上处理对象中,可用每个处理对象的编号或名称将各个对象联系起来,可以实现社内总体信息的查看,同时,当其中的某个对象改变时,其他对象中的数据要做相应的改变。
(2)处理的功能
本系统处理功能比较简单,主要包括活动的管理为核心模块,社员的管理,社员参加活动的管理等.其中,主要实现查询,插入、修改、删除等功能。
(3)安全性及完整性要求
由于本系统的用户主要是基于社团管理者管理社内主要业务出发,同时还允许社内成员了解自己参加活动情况,因而其安全性要求不是很高.
在用户登录管理系统中,有相关用户身份(用户名和密码)验证。
用户主要为社团管理者和社员,有社员权限限制。
对操作过程中的数据查询和更新操作,可对数据库访问进行授权,还可以建立视图对不同的用户进行权限设置,从而进一步来保证安全性。
在完整性要求中,活动编号,社员编号,村庄编号等可作为主键,可唯一标识实体,社员入社,社员参加活动以及活动的选址等,都通过外键将其联系起来.
1.1。
3结果
1.需求调查以及收获
在整个需求分析阶段,首先通过亲身参加业务工作来了解业务活动的情况;其次,查阅了许多相关资料(社员信息,活动资料等);最后通过与社长交谈,经社长介绍社内现状及其工作中遇到的困难,认识到此系统应该实现的功能以及在做这个系统时我应该努力的方向。
2.业务流程图(业务流图如图1。
1)
业务描述:
一般学生通过提交入社申请,经秘书处批准,通过者则可成为社员。
秘书处拟订并提交本学期的计划书,经团委老师审核,审核通过的活动再交由外联部进行实地调查、联系。
外联部通过实际调查取得村庄的信息并与当地主要负责人联系好后,组织部就根据以上所得信息开展活动.社员参加活动要在秘书处报名,秘书处对所有报名者进行审核,审核通过者便可参加活动。
以上便是系统的整个业务流程.
3.数据流图(DFD)
顶层数据流图如图1。
2;
中层数据流图如图1。
3;
4.数据字典(DD)
图1.3中层数据流图
1.2概念设计阶段
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计.
1。
2。
1目标与任务
1.目标:
将需求阶段得到的用户需求抽象为信息结构即概念模型,概念结构要满足真实、易于理解、易于更改、易于转换等要求。
2.具体任务
(1)选择中层数据流为切入点,通常选择实际系统中的子系统。
对实体的及其属性进行描述;
(2)设计分E—R图,即各子模块的E—R图;
(3)生成初步E—R图,通过合并方法,做到子系统实体、属性、联系统一;
(4)生成全局E—R图,通过消除冲突等方面。
1。
2。
2结果
1.实体及其属性
图2.1社员实体及其属性
2.分E—R图
3.总E-R图
4.消除冗余和冲突
在图2.7分E—R图中,负责人属于社员,然而负责人与活动又是一对多的关系,因而负责人是弱实体,为了避免产生冗余,在社员信息中加入标识属性(是否负责人);
1。
3逻辑设计阶段
1。
3。
1目标
在此阶段,我们将概念结构设计阶段设计好的基本E-R图转化为SQLServer2000支持的数据模型相符合的逻辑结构.
1。
3.2任务
1.将E-R模型转换为关系模型
转换原则:
(1)一个实体转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码;
(2)一个1:
1的联系可以转换为一个独立的关系模式,也可以与任意一端的对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相关联的各实体的码以及本身的属性均转换成关系的属性,每个实体的码均是该关系的侯选码。
如果与一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性;
(3)一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;如果转换为一个独立的关系模式,则与该联系相关联的各实体的码以及本身的属性均转换成关系的属性,而关系的码是n端实体的码;
(4)一个m:
n的联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码是个实体的码的组合;
(5)三个或三个以上实体之间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及关系本身的属性均转换为关系本身的属性均转换为关系的属性,而关系的码为各实体码的组合;
(6)具有相同码的关系模式可以合并。
将E—R图转换为关系模型:
(1)E—R图2。
5中,根据m:
n的关系,与该联系相连的各实体以及联系本身的属性均转换为关系的属性,而关系的码是实体码的组合,即活动实体和村庄实体个建立一个关系,而将联系举行转换为一个关系,举行的码是活动实体和村庄实体的码的组合;
活动(活动编号,活动名称,时间,活动经费);
村庄(村庄编号,村庄名称,村负责人,联系电话);
举行(活动编号村庄编号,活动内容)。
(2)E—R图2。
6中,根据1:
n的关系可以与一端实体对应的关系模式合并,并在该关系模式的属性里加入另一个关系模式的码和联系本身的属性的原则,将联系合并活动活动完成情况实体对应的关系模式中,加入活动实体的码(活动编号)。
活动(活动编号,活动名称,时间,活动经费,活动负责人编号);
完成情况(评语编号,活动效果,活动说明,活动得分,活动编号);
(3)E—R图2。
7中,根据m:
n的关系,与该联系相连的各实体以及联系本身的属性均转换为关系的属性,而关系的码是实体码的组合.即社员实体和活动实体各建立一个关系,而将联系参加转换为一个关系,参加的码是活动实体码和社员实体的码的组合;
活动(活动编号,活动名称,时间,活动经费);
社员(社员编号,社员姓名,社员性别,出生日期,年级学院,特长爱好,住址,联系电话,是否负责人);
参加(社员编号活动编号,备注);
注:
带有下滑线的属性为关系的码。
2.数据模型的优化
(1)原则:
一事一地;
(2)方法:
垂直分解法;
(3)步骤:
a根据语义要求,观察各关系中的属性是否可分解,从而判断是否满足1NF;
b分析主属性对非主属性是否存在部分函数依赖,从而判断是否满足2NF;
c分析主属性对非主属性是否存在传递函数依赖,从而判断是否满足3NF;
d分析是否无损分解,是否保持函数依赖关系;
分析过程:
a在以上的数据模型中,属性均不可分解,满足1NF;
b在活动实体中,有且仅有活动编号能唯一地决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
在村庄实体中,有且仅有村庄编号能唯一地决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
在社员实体中,有且仅有社员编号能唯一地决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
在活动完成情况实体中,有且仅有评语编号能唯一地决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
在联系举行中,只有活动编号和村庄编号一起才能唯一地决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
在联系参加中,只有活动编号和社员编号一起才能唯一的决定其他属性,即每一个非主属性完全函数依赖与主属性,因而满足2NF;
c在活动实体中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF。
在村庄实体中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF。
在社员实体中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF。
在活动完成情况实体中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF。
在联系举行中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF。
在联系参加中,主属性活动编号与非主属性之间不存在传递函数依赖,因而满足3NF.
通过以上步骤进行检验,在以上的数据模型中,不存在属性可分解、主属性对非主属性是否存在部分函数依赖以及主属性对非主属性是否存在传递函数依赖。
因而,以上数据模型已经满足3NF。
3.关系模式定义
如表3-1
4.用户子模式定义
在概念模型转换为逻辑模型后,根据用户的需要与应用需求,设计用户的外模式,提高系统的安全性,方便用户的应用。
由于用户外模式与模式是相对独立的,因此在定义用户外模式时要注意考虑用户的习惯与方便.包括:
使用更符合用户习惯的别名,可以对不同级别的用户定义不同的VIEW,以保证系统的安全性,简化用户对系统的使用.
根据以上规则,我分别建立子模式如表:
3-2
5.功能模块图
1.3。
3结果
1.将E—R图转化为关系模式
表3—1关系模式汇总
编号
关系名称
模式说明
T-1
活动
ActNo,ActName,ActTime,ActMoney,ActChargNo
T-2
村庄
CounNo,CounName,CounTel,CounCharger
T-3
社员模式
MemNo,MemName,MemSex,MemBirth,GraDarName,MemHabit,MemAddr,Charger,MemTelep
T-4
活动完成情况
ActResuNo,ActEffect,ActDetai,Actscore,ActNo
T-5
社员参加活动
MemNo,ActNo,Note
T-6
活动举行地点
ActNo,CounNo,Content
详见附录3
2.子模式
表3-2关系外模式汇总
序号
视图名称
视图定义
作用
备注
01
社员信息团委老师视图
MemNo,MemName,MemSex,GraDarName,MemAddr,MemTelep,MemHabit,Charger
团委老师查看社员信息
了解社员基本信息
02
社员信息负责人视图
MemNo,MemName,MemSex,GraDarName,MemAddr,MemTelep,MemHabit,Charger
负责人查看社员信息
了解社员基本信息
03
社员_活动信息负责人视图
MemNo,ActNo,Note
负责人查看社员参加活动的情况
了解社员参加活动的积极程度
04
社员_活动信息团委老师视图
MemNo,MemNameGraDarName,ActName
老师查看社员活动信息
考察社内活动参与情况
05
活动_地点信息负责人视图
ActName,CounName,Content
负责人查看活动举行地点的信息
了解社内活动都在哪些地点举行
06
活动_评价信息负责人视图
ActNo,ActName,ActEffect,ActDetai
负责人查看活动完成信息
为第二年制定计划书提供参考
视图定义详见附录4
1。
4物理设计阶段
1.4.1目标
为逻辑数据模型选取一个最适合应用环境的物理结构,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式.
1。
4.2任务
具体分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率。
(2)具体的方法是希望设计优化的物理数据库结构,使得在数据库上运行的各种事物响应时间小、存储空间利用率高、事务吞吐率大。
为此首先对要运行的事务进行详细的分析,获得选择物理数据库设计所需要的参数.其次,要充分了解所用的RDBMS的内容特征,特别是系统提供的存取方法和存储结构。
1。
4.3结果
1索引的建立
(1)原则
a如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引);
b如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;
c如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引;
由以上条件可知采用SQL2000系统的默认格式必须建立索引.采取的索引方式有一些属性列建立索引,一些属性列建立组合索引,一些属性列设计为唯一索引。
(2)主要内容
a在本系统中,由于活动编号在查询活动信息时,在做连接操作的连接条件中经常出现,所以在活动编号上建立唯一性索引;
b由于社员编号在查询社员信息时,在做连接操作的连接条件中经常出现,所以在社员编号上建立唯一性索引;
c由于村庄编号在查询村庄信息时,在做连接操作的连接条件中经常出现,所以在村庄编号上建立唯一性索引。
2存储过程
表4—1存储过程汇总
编号
存储过程名称
定义
作用
P-1
query1(query11,query12,query13,query14)
详见附录4
根据不同的用户,分别用社员编号和社员姓名来查看社员信息
P-2
Insert1
详见附录4
插入社员
P-3
query2(query21,query22)
详见附录4
分别用活动编号和活动名称来查看活动信息
P—4
Insert2
详见附录4
插入活动
P-5
query3(query31,query32)
详见附录4
分别用村庄编号和名称查看村庄信息
P—6
Insert3
详见附录4
插入村庄
3触发器
表4—2触发器汇总
编号
触发器名称
定义
作用
T—1
活动—delete
详见附录4
删除活动及其所有信息
T—2
社员—delete
详见附录4
删除社员及其所有信息
T—3
村庄-delete
详见附录4
删除村庄信息
1。
5数据库实施阶段
1。
5。
1目标
完成数据库的物理设计之后,就要运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果,建立数据库、编制与调试应用程序、组织数据入库并进行试运行。
1。
5。
2任务
1.建立数据库、数据表、视图、索引等存储过程等DDL定义,并完成完整性、安全性等要求定义;
2.数据入库;
3.使用存储过程完成处理过程、系统主要功能(查询、更新、简单统计等);
4.数据库试运行;
1.5.3结果
1.建立数据库、数据表、视图、索引、存储过程以及触发器见附录4;
2.数据入库见附录2.
1。
6调试与测试
1。
6。
1目标
测试所建立的存储过程以及触发器的正确性,发现不足进行改正。
1。
6。
2任务
在完成了以上阶段的所有任务后,我们就要对已建立的系统进行调试与测试。
测试的内容主要包括两块:
一,性能测试:
实际运行应用程序和执行对数据库的各种操作;二,性能测试:
主要测试系统的性能指标,分析是否符合设计目标.
2。
6.3结果
见附录6
2.附录
附录1数据字典
表1—1数据项
编号
数据项名
数据类型
长度
取值范围
含义说明
数据项之间的关系
DI-1
MemNo
Char
4
000—999
标识社员
决定其他数据
项
DI—2
MemName
Char
8
社员姓名
DI—3
MemSex
Char
2
男,女
社员性别
DI-4
MemBirth
DateTime
社员出生时期
DI-5
GraDarName
Char
8
社员所在年级和学院
DI—7
MemHabit
Char
20
社员特长爱好
DI-8
MemAddr
Char
20
社员住址
DI—9
Charger
Char
5
是,否
是否负责人
DI—10
MemTelep
Char
15
社员联系方式
DI-11
ActNo
Char
4
00—99
活动编号
决定其他数据项
DI—12
ActName
Char
10
活动名称
DI—13
ActChargNo
Char
4
活动负责人编号
DI—14
ActTime
datetime
活动时间
DI-15
ActMoney
smallint
活动经费
DI—16
CounNo
Char
4
00—99
活动村庄号
决定其他数据项
DI-17
CounName
Char
8
村庄的名称
DI—18
CounTel
Char
15
村庄联系电话
DI—19
CounCharger
Char
20
村庄负责人
DI—20
ActResuNo
Char
4
00—99
活动评价号
决定其他数据项
DI—21
ActEffect
Char
10
活动效果
DI-22
Act—Detai
Char
10
活动说明
DI-23
Actscore
Char
5
活动得分
表1-2数据结构
数据结构编号
结构名
数据结构含义
数据结构组成
DS-1
Member
社员信息
MemNo,MemName,MemSex,MemBirth,Gra-DarName,MemGrade,MemHabit,MemAddr,MemTelep
数据结构编号
结构名
数据结构含义
数据结构组成
DS—2
Activity
活动信息
ActNo,ActCharger,ActName,ActTime,CoryNo
DS-3
Country
活动地点信息
CoryNo,CoryName,CoryDescrp
DS-4
Act—Reslt
活动完成情况信息
ActResult,ActEffect,ActAffect
表1—3数据流
数据流名
数据来源
数据去向
组成
流通量
社员信息流
学生入社申请
秘书处安排活动
Member
大,入社更新
活动信息流
秘书处拟订,团委审批
外联部调查,联系
Activity
大,拟订计划书
活动地点信息流
外联部调查统计
组织部组织活动
Country
小,安排时更新
活动完成信息流
组织部组织实施
秘书处保管
Act—Result
小,活动再次完成后更新
表1—4数据存储
数据存储名
说明
输入数据流
输出数据流
组成
社员信息
存储社员基本信息
学生基本信息流
社员基本信息流
Member
活动信息
存储活动基本信息
计划书中活动信息流
批准的活动信息流
Activity
活动地点
存储活动地点基本信息
活动地点信息流
活动地点信息流
Country
活动完成情况
存储活动完成情况
活动完成信息流
活动完成信息流
Act—Resut
表1—5数据处理过程
编号
处理过程
输入
输出
处理
活动激发条件
1
学生申请入社
学生基本信息流
社员基本信息流
保存社员基本信息
学生向秘书处提交入社申请书
2
活动计划书审核
计划活动信息流
批准活动信息流
保存批准活动流
秘书处提交计划书
3
外联部实地调查联系
批准的活动信息流
活动地点信息流
保存活动地点信息
秘书处将批准的活动书交给外联部联系
4
活动组织实施
完成活动信息
活动评价信息
保存活动完成情况
外联部将活动计划信息交由组织部实施
附录2数据录入信息
表5-1村庄信息
CounNo
CounName
CounTel
CounCharger
01
上孟村
85021055
张维彩
02
虎欲村
85051120
刘书记
03
辛口村
85059654
李村长
04
西山村
87034589
王书记
05
枣林村
89054781
杨书记
06
中兴村
86154789
陈村长
07
仁烟村
87266540
刘村长
08
崇耕村
85410321
郝书记
09
群兴村
87254631
苏书记
CounNo
CounName
CounTel
CounCharger
10
金盆村
84210565
严村长
表5-2活动信息
ActNo
ActName
ActTime
ActMoney
ActChargNo
01
义务助教
2005—12-3
30
001
02
大手牵小手
2006—5—11
40
011
03
调研
2006-3—21
20
007
04
乡村图书架
2006-7—10
100
015
05
捐助图书
2006—5-29
50
011