数据库报告--华工超市管理系统
数据库大作业报告
----学校超市数据库系统模拟
院系:材料科学与工程学院
班级:材实1001
组员:刘北辰
李索
张紫阳
张琦
朱云鹭
喻舒德雯
一、需求分析:
学校超市人员众多、业务繁忙,数据管理需求量大。
一个学校的数据库系统除了需要记录货物的流入流出,还要对其库存及人员进行管理。
一个基本的超市管理系统需要包含:出库入库表、员工表、商品表、货架表、供应商表等。
考虑到学校超市的规模较小,职员分工不是很明确,我们取消了部出库入库表对货物的采购和销售进行记录,员工表对职员的相关信息和门表格。
奖惩记录进行统计并计算其工资,商品表对超市内的商品信息进行记录,货架表记录商品的进货价格、数量和日期,供应商表记录了每种商品的进货来源以及供应商信息。
二、业务规则:
我们数据库设计的构思来自于学校里的超市日常运营系统。
根据超市中员工、商品、仓库、供应商关系等各种信息,以及供应、卖出、管理等各种功能,提出一种可以实现超市运营部分功能的数据库设计方案。
在此,首先分析超市数据库系统要实现的功能。
主要包括:
1、进货销售:包括超级用户查看销售单、库存表,了解商品信息、货存情况,
授权给业务员。
业务员可以查看出入库信息,管理员可以查看并修改之。
2、人员管理:主要是员工薪水单。
员工可以在自己权限范围内查看工资状况。
超级用户可以看到所有用户的薪水,管理用户只可以看到自己和下属的用
户的薪水,业务员用户可以看到自己的薪水。
3、库存管理:由存货单组成。
员工可以看到权限范围内的产品的库存情况。
超级用户可以看到所有产品的存货,管理用户只可以看到自己下属员工所
管理的存货,业务员用户可以看到自己管理的存货。
三、业务流程:
进货销售数据流图
1、进货销售:超级用户可以查看销售、库存表并授权给其他员工相应的查看权利。
业务员用户和管理员用户可以在授权的条件下查看或修改出入库信息。
“查看销售单指令”超级用户发出查看销售单指令,系统显示销售单。
“查看库存表指令”超级用户发出查看库存表指令,系统显示货存表和商品表。
包括销售信息、货物信息和商品信息。
“授权指令”超级用户发出授权指令,系统赋予业务员用户、管理员用户相应权利。
“查看出入库单指令”用户发出查看出入库单指令,系统合并销售单、进货单得到出入库信息并显示。
人员管理数据流图
2、工资计算:员工的实际工资由基本工资和应扣工资组成。
基本工资与员工的等级有关,应扣工资在本方案中主要是缺勤状况决定的。
每个人可见的信息是不同的。
超级用户拥有最高的管理权限,可以授权其他用户对信息的可见性。
同时超级用户对所有用户都是可见的。
管理用户可以看到自己的所有信息和下属业务员用户的所有信息。
但是没有授权业务员用户的权限。
业务员用户只能够看到自己的信息。
“查看薪水表指令”:查看自己权限内可以看到的用户的薪水。
“查看到岗信息指令”:查看权限范围内可以看到的用户的到岗信息。
“安排工作指令”:管理用户可以安排自己下属业务员用户的工作。
库存数据流图
3、库存:用户查看产品的库存信息
超级用户具有最高权限,对所有用户可见,同时也具有授权的权利。
管理用户可看见属下的业务员信息,但不能授权给业务员。
业务员用户只有查看自己所管的存货的信息。
“查看库存表指令”:查看权限范围内的库存信息
四、概念设计:
整体E-R图
五、逻辑设计:
商品设计表: 商品表:
员工设计表:
员工表:
货架设计表:
货架表:
供应商设计表: 供应商表:
收银台设计表:
收银台表:
关系表:
六、规范化设计:
第一范式(1NF):
员工表(工号,姓名,性别,年龄,学历,籍贯,职务,收银台编号,货架号,到岗时间,离岗时间,基本工资,实际工资)
商品表(条形码,商品名,类别,零售价,批发价,总数,剩余数量) 收银台表(收银台编号,条形码,数量,时间)
货架表(货架号,条形码,类别,总数,剩余数量)
供应商表(供应商编号,条形码,数量,时间)
第二范式同第一范式。
第三范式(3NF):
员工信息表(工号,姓名,性别,年龄,学历,籍贯)
职务表(工号,职务)
考勤表(工号,收银台编号,货架号,到岗时间,离岗时间) 工资表(工号,基本工资,实际工资)
商品信息表(条形码,商品名,类别,零售价,批发价)
出货表(收银台编号,条形码,数量,零售价,时间)
入货表(供应商编号,条形码,数量,批发价,时间)
库存表(货架号,条形码,类别,总数,剩余数量)
账本表(日期,销售额,利润,开销,结余)
BC范式同第三范式。
七、工作小结及展望:
在小组长刘北辰的领导下,我们全组同学通过四次小组讨论最终在一星期的时间内完成了这一份数据库课程设计大作业。
在这过程中,我们通过去韵苑教工服务中心超市实体调查、查询各类数据库设计的资料,深化了对数据库设计过程、E-R 图、关系数据模型、范式等数据库基本概念及实际操作的理解。
首先,我们通过调查超市运营情况,得出学校超市由于规模小而在人员工作岗位上不像大超市分工明细的特点。
而正是因为一个学校超市的职工工作可能既包含收银又包含清货清理等造成了我们对要不要部门表的分歧。
最后小组讨论根据这一与大型超市的不同特点,我们不将部门(例如采购部,销售部,运营部,管理部)纳为职员这一实体的属性,而是根据职员工作地点的不同进行其分工的记录方式。
即职员具体工作不固定,所以只将职务分为普通员工、经理、副经理三个等级。
于是第一次小组讨论,我们解决了需求收集和分析、设计概念结构两个步骤,并讨论出了E-R图的大概雏形。
由于讨论一时进行到焦灼状态,我们决定各自回去思考,通过整理思路冷静头脑画出自己认为较为优化的E-R图及关系模型。
第二次讨论中,小组长将大家的思路综合考虑,通过激烈的讨论与阐述理由,我们丰富了实体的属性,简化了实体间的联系,力求将整个关系整理的更为合理清晰。
但在收银员——
收银台(收款机)——商品售出间的关系仍存在争议,主要是因为由于收银员并不是固定在一个收银台工作,而管理人员需通过收款机的记录清查收银员工作时实收款数是否与售出物品价格等值,从而造成了关系的复杂性。
第三次讨论中,我们划分了每个人在写设计报告中的明确分工,大家各司其职同时互帮互助,遇到不懂的地方互相虚心请教。
同时,组长刘北辰同学能
够很好地调动组员们的积极性,组内氛围十分融洽。
第四次讨论中,我们将大家所做的成果在一份实验报告中整理综合,将不妥之处继续修改完善。
虽然我们努力将此次设计作业做的最为完美,由于临近期末考试完成时间有限并且对于数据库设计经验不够,我们的设计中仍存在一些不足的地方。
首先,员工的实际工资中我们考虑的仅限于(实际工资=基本工资+系数*上班时间),对于实际中的复杂情况,如:旷班、请假、工作严重失误、加班奖励等奖惩制度,是没有考虑进去的。
其次,由于员工职务的流动性,员工与货架、收银机的关系没有办法明显体现。
若是大型超市,有固定的人员负责某一片货区,工作在确定的收款机或是负责与固定的供应商联系,则不会出现这个问题。
这样我们将增加部门表以明细分工。
如果有更为充足的时间我们将努力完善这一部分,做到整个超市数据库的优化。
数据库的理论学习较为抽象,书中充斥的是大量的抽象概念使我们很难将理论与实际操作结合起来,这样也造成了理解上的困难,记忆负担。
而此次短暂的实验设计,帮助我们实际体验了数据库设计流程,感受了需求分析、设计概念结构设计、逻辑结构设计、物理结构设计步骤具体要做一些什么,怎么做。
虽然不是一帆风顺,有一些问题最终也没有解决,但对于大部分问题我们都学到了解决问题的方法,这是书本永远也不可能交给我们的经验财富。
在以后的设计作业中,我们全组同学会更加努力攻克一些更加复杂的数据库设计任务,更积极的向老师请教。
思考更全面,将整个数据库设计的更为人性化、方便化,拥有更高的使用价值。
组员分工情况:
刘北辰:分配任务、调查超市具体情况、初期概念设计(数据流和关系分析) 李索、张紫阳:数据库实施、改良概念模型和逻辑结构
张琦、喻舒德雯、朱云鹭:简化关系、改良数据库、总结报告。