数据库校园一卡通管理系统.docx
- 文档编号:10939686
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:24
- 大小:364.69KB
数据库校园一卡通管理系统.docx
《数据库校园一卡通管理系统.docx》由会员分享,可在线阅读,更多相关《数据库校园一卡通管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
数据库校园一卡通管理系统
题目:
校园一卡通管理系统
摘要:
校园一卡通将管理、生活、消费、身份认证等多种功能集中于一体,提高了学生校园生活的效率。
该校园一卡通管理系统包括三个子系统:
校园卡日常管理、消费管理、身份认证。
每个子系统又包括多个功能模块,并提供了对各功能模块的查询和更新功能。
该系统开发由系统需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段等阶段组成。
关键字:
一卡通日常管理消费管理身份认证
1系统需求分析阶段
1.1需求分析目标
针对大学学生日常生活和学习管理情况的实地调查加自己的亲身体验,了解了目前应用关于大学的校园一卡通管理系统的应用情况,并充分体会到该模式相对于人工管理模式的简单、高效。
基于以上情况,目的是自行设计一个模拟大学校园一卡通的管理系统,在设计过程中,加深对校园一卡通的了解,增强对数据库知识的理解及SQL语言的实际应用,训练设计开发数据库的能力。
1.2需求分析任务
(1)处理对象:
该系统主要处理的对象有:
学生基本信息、校园卡基本信息、校园卡日常管理基本信息、餐厅消费基本信息、超市基本信息、身份认证基本信息、图书管理基本信息等。
各个对象包括信息如下所示(详细的数据见于数据字典):
1.学生基本信息(Student):
包括学生身份证号、学生学号、学生姓名、学生性别、学生出生年份、学生所在院系、学生的专业、学生所在班级等方面的信息,可以方便学生信息的查询和更新;
2.“校园卡”基本信息(Card):
包括校园卡的卡号、持卡人学生学号、持卡学生姓名、持卡学生性别、校园卡的状态、校园卡内的余额;
3.校园卡日常管理基本信息(CardManage):
包括四个数据结构办卡信息、挂失信息、解挂信息、充值信息,每个数据结构中的数据项见数据字典;
4.餐厅基本信息(cateen):
包括餐厅编号、餐厅名称、餐厅负责人、餐厅位置,具体的数据项见数据字典;
5.超市基本信息(supmanage):
包括超市编号、超市名称、超市负责人、超市位置,具体的数据项见数据字典;
6.消费基本信息(Busmanage):
包括消费编号、消费地点、卡号、消费时间、消费金额,具体数据项见数据字典;
7.身份认证基本信息(Identity):
包括四个数据构DormInf(学生宿舍楼基本信息),DormPress(学生归宿刷卡信息),LibInf(图书馆基本信息),LibPress(借书基本信息),具体的数据项见数据字典;
(2)处理功能要求
系统主要完成一下几个功能:
1.学生基本信息查询与更新;
2.校园卡日常事务管理情况基本信息查询与更新;
3.校园卡在某个时刻所处状态的查询;
4.餐厅基本信息的查询和修改;
5.超市基本信息的查询和修改;
6.学生消费额(包括餐厅,超市,校车消费)基本信息的查询;
(3)安全性和完整性要求
描述学生基本信息、校园卡日常事务管理基本信息、“校园卡”基本信息、餐厅消费基本信息、超市消费基本信息、身份认证基本信息中数据项能否为null,以及一些用户自定义完整性(符合实际要求)。
1.2.3需求分析阶段成果
(1)校园卡一卡通管理系统业务流程图
校园卡日常管理业务流程图:
超市消费业务流程图:
宿舍身份认证管理业务流程图:
校车管理业务流程图:
(3)数据流程图
顶层数据流程图:
图2.0顶层数据流程图
第1层数据流程图:
第1层数据流程图
第2层数据流程图:
从日常事务处理角度出发:
第2层数据流图(从日常管理角度)
第2层数据流程图:
从校园卡消费管理角度出发:
第2层数据流图(从消费角度)
第2层数据流程图:
从校园卡的身份认证管理角度出发:
.....
第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
学生出生年
char(10)
DI-6
Sdept
学生所在院系
char(20)
DI-7
Sspecial
学生所在专业
char(20)
DI-8
Sclass
学生所在班级
char(20)
DI-9
Saddr
学生生源地
char(6)
DI-10
Cardno
校园卡卡号
char(8)
DI-11
Cardstate
校园卡状态
char(6)
"可用"、"不可用"
DI-12
Cardmoney
校园卡内余额
Float
DI-13
Cardstyle
校园卡类型
char(10)
“学生卡”、“教师卡”
DI-14
Cardtime
办理时间
char(10)
DI-18
Gsrq
挂失所在时间
Datetime
DI-20
Jgrq
解挂的时间
Datetime
DI-21
Czrq
充值的时间
Datetime
数据项编号
数据项名称
简述
类型及宽度
取值范围
DI-22
Czje
充值金额
Float
DI-23
Czno
充值次数编号
Int
DI-24
Pmoney
本次刷卡金额
Float
DI-25
Brno
借书编号
char(10)
DI-26
Bookno
图书编号
char(10)
DI-27
Booklist
已借数量
Int
(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
分E-R图5
(d)校园卡身份认证
分E-R图6
分E-R图7
(2)各分E-R图中关键实体和联系的属性如下所示:
学生:
(学号,姓名,性别,出生日期,身份证号,学院,专业,班级,生源地)
校园卡:
(校园卡卡号,持卡人学号,持卡人姓名,持卡人身份证号,持卡人性别,卡内余额,校园卡可用性)
服务:
(本次服务编号,校园卡卡号,服务类型,服务时间,服务中心地址)
校园卡中心:
(服务中心编号,服务中心地址,服务中心负责人)
超市:
(超市编号,超市名称,超市负责人,超市所在校区)
超市刷卡:
(本次消费编号,超市编号,校园卡卡号,消费金额,消费时间)
餐厅:
(餐厅编号,餐厅名称,餐厅负责人,餐厅所在校区)
餐厅刷卡:
(本次消费编号,餐厅编号,校园卡卡号,消费金额,消费时间)
校车:
(校车编号,校车类型,校车司机)
乘车刷卡:
(本次消费编号,校车编号,校园卡卡号,消费金额,消费时间)
图书馆:
(图书馆编号,图书馆名称,图书馆所在校区)
借书:
(借书编号,校园卡可用性,已借图书,图书馆编号)
宿舍楼:
(宿舍楼编号,宿舍楼学生类型,宿舍楼所在校区)
进出刷卡:
(归宿编号,校园卡卡号,学生学号,宿舍楼编号,刷卡时间)
(注:
由于属性较多,全都写到E-R图中显得很乱,此处将各属性列出。
)
(3)将E-R图合并,按照要求消除属性冲突、命名冲突、结构冲突等,得到初步的E-R图,在此基础上消除冗余得到下图的基本E-R图:
基本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,
Snochar(12)notnull,
CzrqDateTimenotnull,
CzjeIntnotnull,
jbrchar(10)notnull,
foreignkey(Cardno)referencesCard(Cardno),
foreignkey(Sno)referencesStudent(Sno),);
(5)创建挂失信息表LosInf:
createtableLosInf(
GsnoIntprimarykey,
Cardnochar(8)notnull,
Snochar(12)notnull,
GsrqDateTimenotnull,
jbrchar(10)notnull,
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='超市'orPplace='校车')notnull,
Cardnochar(8)notnull,
PmoneyFloatnotnull,
PtimeDateTimenotnull,
foreignkey(Cardno)referencesCard(Cardno),);
(10)宿舍信息表DormInf:
createtableDormInf(
Dormnochar(10)primarykey,
Dormstylechar(8)check(Dormstyle='男生'orDormstyle='女生')notnull,
Sdeptchar(20)notnull,
Dormregionchar(10)notnull,
(11)归宿刷卡信息表Dormpress:
createtableDormPress(
BacknoIntprimarykey,
BacktimeDateTimenotnull,
Cardnochar(8)notnull,
Snochar(12)notnull,
Dormnochar(10)notnull,
foreignkey(Cardno)referencesCard(Cardno),
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,
Cardstatechar(10)notnull,
Borlistchar(40)notnull,
Libnochar(10)notnull,
foreignkey(Libno)referencesLibInf(Libno));
5.1.3建立视图
(1)用于查询的更新学生在各个餐厅刷卡消费信息的视图定义如下:
createviewDinner2
as
select*
fromPressInf
wherePlace='餐厅'
withcheckoption;
(2)用于查询和更新学生在各个餐厅刷卡消费信息的视图定义如下:
createviewSupmarket
as
select*
fromPressInf
wherePlace='超市'
withcheckoption;
(3)将学生信息表和刷卡消费表连接,用于查询相关的学生的基本信息
createviewstudent_Press
as
selectPressInf.Pressno,PressInf.Pplace,PressInf.Cardno,PressInf.pmoney,PressInf.Ptime,Card.Sno
fromPressInf,Card
wherePressInf.Cardno=Card.Cardno
withcheckoption;
5.1.4建立索引
依次分别在表Student,Card,DinInf,SupInf的主码Sno,Cardno,Dinno,Supno
上建立唯一性索引,具体SQL代码如下:
createuniqueindexS_Snoonstudent(Snoasc);
createuniqueindexCard_CardnoonCard(Cardnoasc);
createuniqueindexDinner_DinnoonDinInf(Dinnodesc);
createuniqueindexSupmarket_SupnoonSupInf(Supnodesc);
5.1.5建立触发器
用触发器来实现在用校园卡刷卡消费和进行各种类型的校园卡充值操作后,不仅要修改PressInf、FillInf里的信息,还要修改对应的Card表里的校园卡余额CardPmoney的值。
具体触发器依次定义如下:
createtriggerfill
onFillInf
afterinsert
as
updateCard
setCardmoney=Cardmoney+Czje
fromInserted
whereCardstate='可用'andCard.Cardno=Inserted.Cardno
createtriggerconsume
onPressInf
afterinsert
as
updateCard
setCardmoney=Cardmoney-Pmoney
fromInserted
whereCardstate='可用'andCard.Cardno=(selectCardnofromInserted)
6感言及数据库系统拓展
本次设计过程让我对校园卡管理系统及数据库系统的设计编程有了新的认识,加深了对课本知识的理解,但由于知识的缺乏,本系统人存在以下问题:
1.有些表的属性设计得不够合理,彼此之间外码等联接可能不合适。
2.由于设计的复杂性,电子账户部分没有加入到数据库系统中。
3.由于在冗余及系统优
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 校园 一卡通 管理 系统