收藏 分销(赏)

超市数据库系统.docx

上传人:xrp****65 文档编号:8949783 上传时间:2025-03-09 格式:DOCX 页数:24 大小:656.60KB
下载 相关 举报
超市数据库系统.docx_第1页
第1页 / 共24页
超市数据库系统.docx_第2页
第2页 / 共24页
点击查看更多>>
资源描述
超市数据库系统 组长:彭国辉 小组成员:薛超义 张义 刘争林 王佳琦 罗建明 彭凡 合肥工业大学 一、背景介绍 3 二、需求分析 3 2.1、超市的组织机构情况 3 2.2、调查相关部门的业务活动情况 3 2.3、主要用户对系统的要求 4 2.4、数据字典 5 2.5、数据流图 8 三、概念结构设计 10 3.1、分E-R图设计 10 3.2、总E-R图设计 11 四、逻辑结构设计 12 4.1、E-R图向关系模型转换 12 4.2、用户子模式 12 五、 物理结构设计 12 5.1、关系模式存取方法 13 5.2、存储结构 13 六、数据库实施 13 6.1、建表 13 6.2、数据载入 16 6.3、设计视图 16 6.4、建立索引 19 七、数据库运行 21 一、背景介绍 信息化建设是大中型超市实现可持续发展的需要 ,随着市场竞争的日益激烈,产品的生命周期不断缩短,顾客需求的个性化化和多样化日趋明显,因此传统的规模化和标准化的经营模式难以适应现代大中型超市的持续发展的要求。为适应以顾客、竞争、变化为特征的外部环境,大中型超市必须加强信息化建设,通过构建企业内部信息管理系统和统一化的服务操作平台,将供应商、顾客、物流以及银行等各环节一体化整合起来,构成一个商别牺链网络,将兴趣、爱好、购买力和购买习性相同或相近的顾客整合为定性的虚拟社群,并为其提供个性化的产品与服务,形成超巾忠诚的消费群。比外,超市通过顾客管理信息系统和商品销售系统来综合预计客户需求,合理配置资源,使资源在网络上合理流动来缩短运转周期,降低库存,并通过网上 自助交易方式来降低运营成本 ,开拓新的市场,创造新的商机 实现大中型超市可持续发展。 二、需求分析 2.1、超市的组织机构情况 一般的超市有总经理若干名,每个总经理管辖一个部门(销售部、采购部、仓储部、财务部、人事部);各部门对应相应的职能,例如,销售部管理商品销售情况,推销新产品等,商品管理就要对商品的库存量,销售量,毛利等分析。 2.2、调查相关部门的业务活动情况 2.2.1、采购部 采购部首先是要筛选合作的供应商;选择与超市消费者消费需求相匹配的;协商与供应商采购的最有利条件(包括超市采购商品的质量、包装、品牌、折扣、价格、广告赞助、促销办法、订货办法、订货数量、交货期限及送货地点等); 与超市各卖场做好最有效的沟通,确保各超市门店的商品畅销等。 2.2.2、仓储部 仓储部负责所有物品的保管工作,必须做出出入库详细的明细,对物品的出入库要及时验收、登记帐簿,做到帐物相符; 及时向采购员报告物品库存情况,提出物品采购计划,对采购回来的物品进行验质检量;保管员签字验收合格后的物品的数量和质量由保管员负责; 负责仓库每月盘点的顺利进行、实物的盘存工作顺利进行。 2.2.3、销售部 负责制订分解经营指标计划、制订总体营销策略;负责各个时期经营策略、营销运作方式、促销活动方案的策划,并会同采购部、中心店组织安排实施;负责建立、实施经营目标管理责任制,按月、季度、年度进行考核;负责对供货商资信进行考察、合同审定、物价审核及相关材料存档管理工作。 2.2.4、人事部 超市人事部门负责员工结构总体的规划及其实施、招录员工、培训员工、奖励或惩罚员工、超市内部员工的流动、员工的工资管理、员工的考核以及员工的职称管理等方面;岗位职责中涉及了人事部总监、人事部经理、人事部主管、招聘专员、薪酬福利专员等中高基层工作人员的岗位。 2.3、主要用户对系统的要求 2.3.1、总经理 a、信息要求 总经理需要了解超市损益情况,销售额,各种商品的销售量及库存量,制定商品采购战略;部门业绩,员工绩效;对顾客购买习惯分析,需要顾客购买信息表。 b、处理要求 当有员工晋升时,有权更新员工信息;部门调整时,有权更新部门相关信息。 2.3.2、部门主管 a、信息要求 各部门主管需知道本部门成员信息,业绩情况;采购部主管 、销售部主管和仓储部还要了解各种商品销售量、库存量、损失量;人事部主管需有所有的员工信息、人员岗位分布情况;财务部主管需商品销售信息,商品采购信息,人员工资福利情况;采购部主管需要供应商的相关信息,比如供应商提供商品的价格,数量等。 b、处理要求 各主管能够部分修改本部门相关信息,比如联系电话,部门人数,部门地址,本部门人员详细信息;人事部主管有增加或删除职工的权力;仓储部主管可以增加商品记录,修改损失单,上架单等;销售部主管可以更新货物售出单,更改商品售价,打折,会员价等商品信息。 2.3.3、员工 a、 信息要求 员工能够查到自己的个人信息,例如,月工资,奖金,职位等;因职位的不同,权限也相应不。 b、处理要求 员工对自己的个人信息可以修改,如联系电话,银行账号,住址等。 2.3.4、顾客 a、 信息要求 这里的顾客主要指超市会员,会员能够查看自己买了哪些商品,相关费用,剩多少积分等基本信息;顾客还可以了解超市商品的价格以及新产品上架,折扣等商品信息。 b、处理要求 会员可以对自己的银行账号、联系电话、住址做更新操作。 2.4、数据字典 Member(会员表) 列名 数据类型 约束条件 说明 MemID Varchar(20) 主键,非空 会员卡号 MemName Varchar(10) 非空 会员名 Sex Varchar(5) - 会员性别 Age SmallInt - 会员年龄 BankNumber Varchar(20) - 银行卡号 Integral Int 非空 积分 Customer(顾客表) 列名 数据类型 约束条件 说明 SerialNumber Varchar(20) 主键,非空 流水号 EmNo Char(6) 非空 员工号 IsMem Bit 非空 是否是会员 Payment Varchar(20) 非空 付款方式 PurTime Datetime 非空 购买时间 Goods_Customer(顾客-商品表) 列名 数据类型 约束条件 说明 SerialNumber Varchar(20) 主键,非空 流水号 GoodsID Varchar(20) 主键,非空 商品编号 EmployeeInfo(员工表) 列名 数据类型 约束 说明 EmployeeNo Char(6) 主键,非空 员工号 EmployeeName Varchar(8) 非空 员工名 PostNo Char(6) 外码 职位代码 Birth datetime - 出生日期 Tel Numbereric(10,0) 非空 联系方式 DepartmentNo Char(6) 外码 部门号 IDCard Numbereric(18,0) 非空 身份证号 BankNo Numbereric(20,0) - 银行账号 Seniority Int 非空 工龄 DepartmentInfo(部门表) 列名 数据类型 约束 说明 DepartmentNo Char(6) 主键,非空 部门号 DepartmetName Varchar(8) 非空 部门名 Tel Char(11) 非空 联系电话 PeopleCount Int - 部门人数 CashierCustomer(收银员-顾客表) 列名 数据类型 约束 说明 SerialNumber Varchar(20) 主键,非空 流水号 CashierNumber Char(6) 主键,非空 收银员编号 Satisfaction Int - 满意度 PostInfo(职称表) 列名 数据类型 约束 说明 PostNo Char(6) 主键,非空 职称代码 PostName Varchar(8) 非空 职称名 Wage Money 非空 工资 Supplierinfo(供应商) 列名 数据类型 约束 说明 SupNumber Char(10) 主键,非空 供应商编号 SupName Char(20) 非空 供应商名 SupAdd Varchar(50) - 供应商地址 Prin Char(10) - 负责人 SupPhone Numbereric(18,0) - 供应商电话 Goodsinfo(商品) 列名 数据类型 约束 说明 GoodsNumber Char(10) 主键,非空 商品编号 GoodsName Char(20) 非空 商品名 Price Money 非空 价格 Category Char(10) 非空 类别 Discount Money - 折扣 VIPPrice Money - 会员价 Supplier-Goodsinfo(供应商-商品) 列名 数据类型 约束 说明 SupNumber Char(10) 主键,非空 供应商编号 GoodsNumber Char(10) 主键,非空 商品编号 Bid Money - 进价 GoodsAmo float - 货物数量 Stowageinfo(仓库) 列名 数据类型 约束 说明 StoNumber Char(10) 主键,非空 仓库编号 Volume Float 非空 库容量 Type Varchar(10) - 类型 StoPrin Char(10) 非空 仓库负责人 Stowage-Goodsinfo(仓库-商品) 列名 数据类型 约束 说明 StoNumber Char(10) 主键,非空 仓库编号 Category Char(10) 主键,非空 类别 Amount float - 数量 PurDate date - 入库日期 2.5、数据流图 图1顶层数据流图 图2会员数据流 图3商品管理数据流 图4员工管理数据流 图5销售管理数据流 三、概念结构设计 3.1、分E-R图设计 会员 顾客 商品 属于 购买 职位 员工 仓库 聘任 部门 供应商 存放 服务 领导 供应 ID 姓名 性别 银行账号 年龄 积分 流水号 员工号 是否会员 付款方式 购买时间 编号 姓名 职位编号 出生日期 联系方式 部门号 身份证号 就职时间 银行账号 商品编号 名称 价格 会员价 类别 折扣 容量 负责人 类型 编号 职位编号 工资 职位名 供应商名 地址 负责人 编号 电话 部门号 部门名 主管 联系电话 部门人数 3.2、总E-R图设计 四、逻辑结构设计 4.1、E-R图向关系模型转换 员工EmployeeInfo(EmNo,EmName,PostNo,Birth,Tel,DepartNo,IDCard,BankNo,InOffice) 部门DepartmentInfo(DepartNo,DepartName,Tel,Count,HeadNo) 职位PostInfo(PostNo,PostName,Wage) 会员Member(MemID,MemName,Sex,Age,BankNum,Integral) 顾客Customer(SerialNum,EmNo,IsMem,Payment,PurTime) 会员-顾客Member_Customer(SerialNum,IsMem,MemID) 顾客-商品Goods_Customer(SerialNum,GoodsID) 供应商Supplierinfo(SupNum,SupName,SupAdd,Prin,SupPhone) 商品Goodsinfo(GoodsNum,GoodsName,Price,Category,Discount,VIPPrice) 供应商-商品Supplier-Goods info(SupNum,GoodsNum,Bid,GoodsAmo) 仓库Stowage info(StoNum,Volume,******,StoPrin) 仓库-商品Stowage-Goods info(StoNum,Category,Amount,PurDate) 注:下划线标注的属性为主码,以上关系模式均为BCNF。 4.2、用户子模式 顾客{流水号,收银员编号,商品名,价格,折扣,满意度} 员工{员工编号,员工名,职位编号,职位名,工资,工龄} 仓库主管{仓库编号,类别,库存,容量,负责人,入库日期} 部门主管{部门编号,部门名,部门人数,员工编号,员工名,职位编号,职位名,工资,工龄} 五、 物理结构设计 5.1、关系模式存取方法 在员工表(EployeeInfo)属性列EmployeeNumber上建立B+树索引,会员表(Member)属性列Member建立B+树索引;在商品表(GoodsInfo)属性列SubNumber上建立聚簇存取方法。 5.2、存储结构 六、数据库实施 6.1、建表 供应商: CREATE TABLE Supplier( SupplierNumber CHAR(10) NOT NULL UNIQUE, SupplierName CHAR(20) NOT NULL, SupplierAddress VARCHAR(50), Principal CHAR(10), SupplierPhone NUMERIC(18,0), PRIMARY KEY(SupplierNumber) ); 商品: CREATE TABLE Goods( GoodsNumber CHAR(10) NOT NULL UNIQUE, GoodsName CHAR(20) NOT NULL, Price MONEY NOT NULL, Category CHAR(10) NOT NULL, Discount MONEY, VIPprice MONEY, PRIMARY KEY(GoodsNumber) ); 供应商—商品: CREATE TABLE SupplierGoods( SupplierNumber CHAR(10) NOT NULL, GoodsNumber CHAR(10) NOT NULL, Bid MONEY, GoodsAmount FLOAT, PRIMARY KEY(SupplierNumber,GoodsNumber), CONSTRAINT C1 FOREIGN KEY(SupplierNumber) REFERENCES Supplier(SupplierNumber), CONSTRAINT C2 FOREIGN KEY(GoodsNumber) REFERENCES Goods(GoodsNumber) ); 仓库: CREATE TABLE Stowage( StowageNumber CHAR(10) NOT NULL UNIQUE, Volume FLOAT NOT NULL, StowagePrincipal CHAR(10) NOT NULL, PRIMARY KEY(StowageNumber) ); 仓库—商品: CREATE TABLE StowageGoods( StowageNumber CHAR(10) NOT NULL , Category CHAR(10) NOT NULL, Amount FLOAT, PurchaseDate DATETIME, PRIMARY KEY(StowageNumber,Category), CONSTRAINT C3 FOREIGN KEY(StowageNumber) REFERENCES Stowage(StowageNumber) ); 会员: CREATE TABLE Member( MemberID VARCHAR(20) NOT NULL UNIQUE, Name VARCHAR(10) NOT NULL, Sex VARCHAR(5), Age SMALLINT, Account VARCHAR(20), Integral INT NOT NULL, PRIMARY KEY(MemberID) ); 顾客: CREATE TABLE Customer( SerialNumber VARCHAR(20) NOT NULL UNIQUE, IsMember CHAR(5) NOT NULL, Payment VARCHAR(20) NOT NULL, PurchaseTime DATETIME NOT NULL, PRIMARY KEY(SerialNumber) ); 商品—顾客: CREATE TABLE GoodsCustomer( SerialNumber VARCHAR(20) NOT NULL, GoodsNumber CHAR(10) NOT NULL, GoodsAmont FLOAT , PRIMARY KEY(SerialNumber,GoodsNumber), CONSTRAINT C4 FOREIGN KEY(SerialNumber) REFERENCES Customer(SerialNumber), CONSTRAINT C5 FOREIGN KEY(GoodsNumber) REFERENCES Goods(GoodsNumber) ); 职位: CREATE TABLE Post( PostNumber CHAR(6) NOT NULL UNIQUE, PostName VARCHAR(8) NOT NULL, Wage MONEY NOT NULL, PRIMARY KEY(PostNumber) ); 部门: CREATE TABLE Department( DepartmentNumber CHAR(6) NOT NULL UNIQUE, DepartmentName VARCHAR(8) NOT NULL, Tel CHAR(11) NOT NULL, PeopleCount INT, PRIMARY KEY(DepartmentNumber) ); 员工: CREATE TABLE Employment( EmployeeNumber CHAR(6) NOT NULL UNIQUE, EmployName VARCHAR(8) NOT NULL, PostNumber CHAR(6), Birth DATETIME, Tel NUMERIC(10,0) NOT NULL, DepartmentNumber CHAR(6), IDcard NUMERIC(18,0) NOT NULL, BankNumber NUMERIC(20,0), Seniority INT NOT NULL, PRIMARY KEY(EmployeeNumber), CONSTRAINT C6 FOREIGN KEY(PostNumber) REFERENCES Post(PostNumber), CONSTRAINT C7 FOREIGN KEY(DepartmentNumber) REFERENCES Department(DepartmentNumber) ); 收银员—顾客: CREATE TABLE CashierCustomer( SerialNumber VARCHAR(20) NOT NULL UNIQUE, CashierNumber CHAR(6) NOT NULL, Satisfaction INT, PRIMARY KEY(SerialNumber,CashierNumber), CONSTRAINT C9 CHECK(Satisfaction BETWEEN 5 AND 10), CONSTRAINT C10 FOREIGN KEY(SerialNumber) REFERENCES Customer(SerialNumber), CONSTRAINT C11 FOREIGN KEY(CashierNumber) REFERENCES Employment(EmployeeNumber) ); 各表之间的关系: 6.2、数据载入 注:在数据库中已输入 6.3、设计视图 顾客视图: CREATE VIEW 顾客 AS SELECT dbo.Customer.SerialNumber,dbo.CashierCustomer.CashierNumber, dbo.GoodsCustomer.GoodsNumber, dbo.Goods.GoodsName, dbo.Goods.Price, dbo.Goods.Discount, dbo.CashierCustomer.Satisfaction FROM dbo.CashierCustomer INNER JOIN dbo.Customer ON dbo.CashierCustomer.SerialNumber = dbo.Customer.SerialNumber INNER JOIN dbo.GoodsCustomer ON dbo.Customer.SerialNumber = dbo.GoodsCustomer.SerialNumber INNER JOIN dbo.Goods ON dbo.GoodsCustomer.GoodsNumber = dbo.Goods.GoodsNumberSELECT dbo.Customer.SerialNumber, dbo.CashierCustomer.CashierNumber, dbo.GoodsCustomer.GoodsNumber, dbo.Goods.GoodsName, dbo.Goods.Price, dbo.Goods.Discount, dbo.CashierCustomer.Satisfaction FROM dbo.CashierCustomer INNER JOIN dbo.Customer ON dbo.CashierCustomer.SerialNumber = dbo.Customer.SerialNumber INNER JOIN dbo.GoodsCustomer ON dbo.Customer.SerialNumber = dbo.GoodsCustomer.SerialNumber INNER JOIN dbo.Goods ON dbo.GoodsCustomer.GoodsNumber = dbo.Goods.GoodsNumber 员工视图: CREATE VIEW 员工 AS SELECT TOP 100 PERCENT dbo.Employment.EmployeeNumber, dbo.Employment.EmployName, dbo.Post.PostNumber, dbo.Post.PostName, dbo.Post.Wage, dbo.Employment.Seniority FROM dbo.Employment INNER JOIN dbo.Post ON dbo.Employment.PostNumber = dbo.Post.PostNumber ORDER BY dbo.Employment.EmployeeNumber 仓库主管视图: CREATE VIEW 仓库主管 AS SELECT TOP 100 PERCENT dbo.Stowage.StowageNumber, dbo.StowageGoods.Category, dbo.StowageGoods.Amount, dbo.Stowage.Volume, dbo.StowageGoods.PurchaseDate, dbo.Stowage.StowagePrincipal FROM dbo.Stowage INNER JOIN dbo.StowageGoods ON dbo.Stowage.StowageNumber = dbo.StowageGoods.StowageNumber ORDER BY dbo.Stowage.StowageNumber 部门主管视图: CREATE VIEW 部门主管 AS SELECT TOP 100 PERCENT dbo.Department.DepartmentNumber, dbo.Department.DepartmentName, dbo.Department.PeopleCount, dbo.Employment.EmployeeNumber, dbo.Employment.EmployName, dbo.Post.PostNumber, dbo.Post.PostName, dbo.Post.Wage, dbo.Employment.Seniority FROM dbo.Department INNER JOIN dbo.Employment ON dbo.Department.DepartmentNumber = dbo.Employment.DepartmentNumber INNER JOIN dbo.Post ON dbo.Employment.PostNumber = dbo.Post.PostNumber ORDER BY dbo.Department.DepartmentNumber, dbo.Post.PostNumber, dbo.Employment.EmployeeNumber 6.4、建立索引 七、 数据库运行 会员查询: SELECT SerialNumber FROM Customer WHERE IsMember='是'; 商品名商品价格查询: SELECT GoodsName,Price FROM Goods,GoodsCustomer WHERE Goods.GoodsNumber=GoodsCustomer.GoodsNumber AND GoodsAmont='1'; 查询商品所在的仓库: SELECT GoodsName,StowagePrincipal FROM Goods,Stowage,StowageGoods WHERE Goods.Category=StowageGoods.Category AND StowageGoods.StowageNumber=Stowage.StowageNumber; 查询销售单: SELECT Customer.SerialNumber,IsMember,Payment,PurchaseTime,CashierNumber,Satisfaction FROM Customer,CashierCustomer WHERE Customer.SerialNumber=CashierCustomer.SerialNumber; 插入仓库: INSERT INTO Stowage VALUES('E3175','600','马力'); 更新供应商: UPDATE Supplier SET Principal='王楠' WHERE SupplierNumber='0004';
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服