数据库校园一卡通管理系统样本Word文档格式.docx
《数据库校园一卡通管理系统样本Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库校园一卡通管理系统样本Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
1.2.3需求分析阶段成果
(1)校园卡一卡通管理系统业务流程图
校园卡日常管理业务流程图:
超市消费业务流程图:
宿舍身份认证管理业务流程图:
校车管理业务流程图:
(3)数据流程图
顶层数据流程图:
审批信息
事务申请
学生个人信息
身份确认反馈
消费反馈
身份确认申请
事务处理
消费信息请求
学生
P0
校园卡事务管理系统
校园卡中心
D0
审批记录
图2.0顶层数据流程图
第1层数据流程图:
第1层数据流程图
第2层数据流程图:
从日常事务处理角度出发:
第2层数据流图(从日常管理角度)
从校园卡消费管理角度出发:
第2层数据流图(从消费角度)
从校园卡的身份认证管理角度出发:
.....
身份确认
身份认证请求
身份认证记录
身份认证
P3
图书馆
D3
第2层数据流图(从身份认证角度)
(4)数据字典
(a)数据项:
系统涉及的数据项有27项
表1.1数据项列表
数据项编号
数据项名称
简述
类型及宽度
取值范围
DI-1
Sid
学生身份证号
char(18)
DI-2
Sno
学生学号
char(8)
DI-3
Sname
学生姓名
char(10)
DI-4
Sage
学生性别
char(4)
"
男"
、"
女"
DI-5
Sbirth
学生出生年
DI-6
Sdept
学生所在院系
char(20)
DI-7
Sspecial
学生所在专业
DI-8
Sclass
学生所在班级
DI-9
Saddr
学生生源地
char(6)
DI-10
Cardno
校园卡卡号
DI-11
Cardstate
校园卡状态
可用"
不可用"
DI-12
Cardmoney
校园卡内余额
Float
DI-13
Cardstyle
校园卡类型
”学生卡”、”教师卡”
DI-14
Cardtime
办理时间
DI-18
Gsrq
挂失所在时间
Datetime
DI-20
Jgrq
解挂的时间
DI-21
Czrq
充值的时间
DI-22
Czje
充值金额
DI-23
Czno
充值次数编号
Int
DI-24
Pmoney
本次刷卡金额
DI-25
Brno
借书编号
DI-26
Bookno
图书编号
DI-27
Booklist
已借数量
(b)数据结构:
表1.2数据结构列表
数据结构编号
数据结构名称
数据结构别名
数据结构含义
数据项组成
DS-1
学生信息
Student
记录学生的信息
Sid、Sno、Sname、Ssex、Sbirth、Sdept、Sspecial、Sclass、Saddr
DS-2
挂失信息
LosInf
记录挂失信息
Cardno、Sno、Sid、Gsrq、jbr
DS-3
充值信息
FillInf
记录充值相关信息
Czno、Cardno、Sno、Czlx、Czje、jbr
DS-4
校园卡信息
Card
记录校园卡信息
Cardno、Sno、Sid、Cardstates、Cardmoney
DS-5
学生餐厅信息
DinInf
记录餐厅信息
Dinno、Dinname、Dinmanage、Dinaddr
DS-6
超市信息
SupInf
记录超市信息
Supno、Supname、Supmanage、Supaddr
DS-8
消费刷卡信息
PressInf
消费刷卡记录
Pressno、Pplace、Pno、Cardno、Pmoney、ptime、Pmanage、Paddr
DS-10
归宿刷卡信息
DormPress
记录归宿刷卡信息
Sno、Sid、Dormno、Backtime
DS-11
图书馆信息
LibInf
记录图书馆信息
Libno、Libname、Libregion
DS-12
借书信息
LibPress
记录借书信息
Brno、Bookno、Cardstate、Borlist、Libno
2概念设计阶段
2.1引言
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
2.2概念模型设计
(1)各部分E-R图。
(a)学生校园卡关系
分E-R图1
(b)校园卡日常管理关系
分E-R图2
(c)校园卡消费关系
分E-R图3
分E-R图4
m
校园卡
乘车刷卡
校车刷卡机
含有
校车
1
分E-R图5
(d)校园卡身份认证
分E-R图6
借书刷卡
分E-R图7
(2)各分E-R图中关键实体和联系的属性如下所示:
学生:
(学号,姓名,性别,出生日期,身份证号,学院,专业,班级,生源地)
校园卡:
(校园卡卡号,持卡人学号,持卡人姓名,持卡人身份证号,持卡人性别,卡内余额,校园卡可用性)
服务:
(本次服务编号,校园卡卡号,服务类型,服务时间,服务中心地址)
校园卡中心:
(服务中心编号,服务中心地址,服务中心负责人)
超市:
(超市编号,超市名称,超市负责人,超市所在校区)
超市刷卡:
(本次消费编号,超市编号,校园卡卡号,消费金额,消费时间)
餐厅:
(餐厅编号,餐厅名称,餐厅负责人,餐厅所在校区)
餐厅刷卡:
(本次消费编号,餐厅编号,校园卡卡号,消费金额,消费时间)
校车:
(校车编号,校车类型,校车司机)
乘车刷卡:
(本次消费编号,校车编号,校园卡卡号,消费金额,消费时间)
图书馆:
(图书馆编号,图书馆名称,图书馆所在校区)
借书:
(借书编号,校园卡可用性,已借图书,图书馆编号)
宿舍楼:
(宿舍楼编号,宿舍楼学生类型,宿舍楼所在校区)
进出刷卡:
(归宿编号,校园卡卡号,学生学号,宿舍楼编号,刷卡时间)
(注:
由于属性较多,全都写到E-R图中显得很乱,此处将各属性列出。
)
(3)将E-R图合并,按照要求消除属性冲突、命名冲突、结构冲突等,得到初步的E-R图,在此基础上消除冗余得到下图的基本E-R图:
11
n
服务
拥有
超市刷卡
餐厅刷卡
超市刷卡机
归宿检测
超市
餐厅刷卡机
餐厅
宿舍楼
基本E-R图
3逻辑设计阶段
3.1逻辑设计的任务和目标
系统逻辑设计的任务是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成具体的关系模型、模型优化、数据库模式定义、用户子模式(视图)设计)、数据处理(画出系统功能模块图)两大任务。
3.2数据组织
3.2.1将E-R图转换为关系模型
由以上分析,能够将学生实体、校园卡实体、校园卡中心实体、餐厅实体、超市实体、校车实体、宿舍楼实体、图书馆实体分别转化为单独的关系模型。
为了方便同学查询餐厅、超市和校车的消费情况,特将消费性刷卡联系转化为独立关系模式;
为了了解同学的归宿信息,将身份认证型的进出刷卡转化为独立关系模式;
为了了解同学借阅图书的情况,将身份认证中的借书刷卡转化为独立的关系模式;
同时,考虑同学要向校园卡中充值,在学生校园卡联系中抽取充值关系转化为独立关系模式;
考虑同学可能会挂失等,从学生校园卡联系中抽取挂失关系转化为独立关系模式。
具体的关系模式转化结果如下:
student(Sno、Sid、Sname、Ssex、Sbirth、Sdept、Sspecial、Sclass、Saddr)
Card(Cardno、Sno、Sid、Cardstyle、Cardstates、Cardmoney、Cardtime)
CardCenter(CCno、CCaddr、jbr)
充值:
FillInf(Czno、Cardno、Sno、Czje、Czrq、jbr)
挂失:
LosInf(Gsno、Cardno、Sno、Gsrq、jbr)
DinInf(Dinno、Dinname、Dinmanage、Dinaddr)
SupInf(Supno、Supname、Supmanage、Supaddr)
BusInf(Busno、Busstyle、Busdriver)
消费刷卡:
PressInf(Pressno、Pplace、Cardno、pmoney、ptime)
宿舍:
DormInf(Dormno、Dormstyle、Dormregion)
DormPress(Backno、Cardno、Sno、Dormno、Backtime)
LibInf(Libno、Libname、Libregion)
图书借阅刷卡:
BorBookPress(Brno、Bookno、Cardstates、Borlist、Libno)
标有直线下划线的为主属性,标有波浪线下划线的是外键属性)
4物理设计阶段
4.1物理设计阶段的目标与任务
数据库的物理设计就是根据所选用的DBMS和处理需求,进行物理存储安排,建立索引,形成数据库的内模式,为逻辑数据模型选取一个最适合应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
由于基本表Card,Student,DinInf,SupInf的主码Cardno,Sno,Dinno,Supno经常在查询条件和连接操作的连接条件中出现,且它们的取值唯一,考虑在这四个属性上分别建立唯一性索引;
5数据库实施阶段
5.1建立数据库、数据表、视图、索引
5.1.1建立数据库
createdatabasesducardsystem;
5.1.2建立数据表
(1)学生基本信息表的建立:
createtableStudent(
Snochar(12)primarykey,
Sidchar(18)notnull,
Snamechar(10)notnull,
Ssexchar(4)check(Ssex='
男'
orSsex='
女'
)notnull,
Sbirthchar(10)notnull,
Sdeptchar(20)notnull,
Sspecialchar(20)notnull,
Sclasschar(20)notnull,
Saddrchar(20)notnull,);
(2)校园卡基本信息表的建立:
createtableCard(
Cardnochar(8)primarykey,
Snochar(12)notnull,
Sidchar(18)notnull,
Cardstylechar(18)notnull,
Cardstatechar(10)notnull,
CardmoneyFloatnotnull,
CardtimeDateTimenotnull,
foreignkey(Sno)referencesStudent(Sno),);
(3)校园卡中心CardCenter:
createtableCardCenter(
CCnochar(10)primarykey,
CCaddrchar(40)notnull,
jbrchar(10)notnull,);
(4)创立充值信息表FillInf:
createtableFillInf(
CznoIntprimarykey,
Cardnochar(8)notnull,
CzrqDateTimenotnull,
CzjeIntnotnull,
jbrchar(10)notnull,
foreignkey(Cardno)referencesCard(Cardno),
foreignkey(Sno)referencesStudent(Sno),);
(5)创立挂失信息表LosInf:
createtableLosInf(
GsnoIntprimarykey,
GsrqDateTimenotnull,
foreignkey(Cardno)referencesCard(Cardno),
foreignkey(Sno)referencesstudent(Sno),);
(6)餐厅信息表DinInf;
createtableDinInf(
Dinnochar(4)primarykey,
Dinnamechar(10)notnull
Dinmanagechar(10)notnull,
Dinaddrchar(10)notnull,);
(7)超市信息表SupInf:
createtableSupInf(
Supnochar(4)primarykey,
Supnamechar(40)notnull,
Supmanagechar(10)notnull,
Supaddrchar(10)notnull,);
(8)校车信息表BusInf:
createtableBusInf(
Busnochar(4)primarykey
Busstylechar(10)notnull
Busdriverchar(10)notnull,);
(9)消费刷卡信息记录表PressInf:
createtablePressInf(
PressnoIntprimarykey,
Pplacechar(10)check(Pplace='
餐厅'
orPplace='
超市'
校车'
PmoneyFloatnotnull,
PtimeDateTimenotnull,
foreignkey(Cardno)referencesCard(Cardno),);
(10)宿舍信息表DormInf:
createtableDormInf(
Dormnochar(10)primarykey,
Dormstylechar(8)check(Dormstyle='
男生'
orDormstyle='
女生'
Sdeptchar(20)notnull,
Dormregionchar(10)notnull,
(11)归宿刷卡信息表Dormpress:
createtableDormPress(
BacknoIntprimarykey,
BacktimeDateTimenotnull,
Dormnochar(10)notnull,
foreignkey(Sno)referencesStudent(Sno),
foreignkey(Dormno)referencesDormInf(Dormno),);
(12)图书馆信息表LibInf:
createtableLibInf(
Libnochar(10)primarykey,
Libnamechar(20)notnull,
Libregionchar(20)notnull,);
(13)图书馆借阅刷卡记录BorBookPress:
createtableBorBookPress(
BrnoIntprimarykey,
Booknochar(10)notnull,
Borlistchar(40)notnull,
Libnochar(10)notnull,
foreignkey(Libno)referencesLibInf(Libno));
5.1.3建立视图
(1)用于查询的更新学生在各个餐厅刷卡消费信息的视图定义如下:
createviewDinner2
as
select*
fromPressInf
wherePlace='
withcheckoption;
(2)用于查询和更新学生在各个餐厅刷卡消费信息的视图定义如下:
createviewSupmarket
(3)将学生信息表和刷卡消费表连接,用于查询相关的学生的基本信息
createviewstudent_Press
selectPressInf.Pressno,PressInf.Pplace,PressInf.Cardno,PressInf.pmoney,PressInf.Ptime,Card.Sno
fromPressInf,Card
wherePressInf.Cardno=Card.Cardno
5.1.4建立索引
依次分别在表Student,Card,DinInf,SupInf的主码Sno,Cardno,Dinno,Supno
上建立唯一性索引,具体SQL代码如下:
createuniq