当前位置:文档之家› 数据库课程设计超市管理系统(广工)

数据库课程设计超市管理系统(广工)

课程名称数据库系统题目名称小型超市管理系统学生学院计算机学院专业班级学号学生姓名指导教师2013 年 1 月目录1 引言 (1)1.1课题来源 (1)1.2课题研究主要内容 (1)1.3主要工作 (1)2 开发工具和平台 (1)3 命名约定 (1)4 需求分析 (2)4.1信息要求分析 (2)4.2处理要求分析 (2)5 概念结构设计 (3)5.1数据实体描述及分ER图 (3)5.2整体ER图 (3)6 系统概要设计 (4)6.1数据库逻辑结构设计 (4)6.2数据库物理设计 (6)6.3系统总体框架 (7)7 系统详细设计 (7)7.1数据库实施 (7)7.2数据库的数据完整性设计 (9)7.3数据的安全设计 (10)7.4系统功能模块的设计与实现 (11)7.5系统安装使用说明 (21)8 回顾与展望 (21)参考文献 (22)1 引言1.1课题来源到超市购物是一种较为频繁的生活事件。

由于人们的超市购物行为越来越频繁,超市规模越来越大,商品种类数目与之俱增,超市商品的管理变得更加困难。

显然手工的管理方式是不合适的。

因此利用数据库相关技术开发一个规模适当、操作方便、功能完备的超市管理系统显得很有必要。

1.2课题研究主要内容使用数据库管理系统和应用程序实现小型超市管理系统的商品销售结算,销售情况管理,商品信息管理,库存管理,权限管理等功能。

1.3主要工作先对小型超市管理系统的设计进行需求分析,建立数据流图和数据字典。

进行概念结构设计,作出E-R图并进行优化。

进行逻辑结构设计,建立数据关系模型。

进行物理结构设计,选择适当的存取方法。

利用数据库管理系统按前面的分析设计作出若于基本表,根据应用程序和用户的需要建立视图。

最后进行应用程序的设计、调试、运行。

2 开发工具和平台数据库管理系统:Microsoft SQL Server 2008程序设计语言:Java 1.6应用程序开发工具:eclipse测试平台 Windows 7 64bit3 命名约定表名和属性名的首字母大写(虽然SQL语言不分大小写,但设计过程仍遵守这一约定),1基本表名和数据若由多个单词构成,则每个单词的首字母均大写,且单词间首尾紧密相接,没有间隔或其它分隔符。

对于视图采用 _view 这一后辍。

4 需求分析4.1信息要求分析4.1.1商品销售模块应具有收银结算的功能:可将查询得的商品加入购物单,并计算总价。

结算后要更新商品的库存。

4.1.2销售管理模块要实现对购物单和商品销量的查询。

可分别按单号和商品编号,并能在限定(或不限定)时间范围内进行查询,并可查看查询结果的细目。

4.1.3库存管理模块要实现去商品进货的管理,及时更新库存。

并具要能实现对供应商信息和商品信息的增、删、查、改等功能。

4.1.4实现权限管理,对不同的用户可授于不同的权限,不同权限所能使用的功能范围有所不同。

4.2处理要求分析商品销售与结算销售情况查询库存和商品信息管理用户权限管理235 概念结构设计5.1数据实体描述及分ER 图5.2整体ER 图实体间关系:一个购物单里可以有多种商品,每种商品可以存在于多个购物单中;一个供应商可供应多种商品,每种商品可从多个供应商进货;一个购物单只由一个用户(操作员)操作生成,一个用户可操作生成多个购物单。

根据以上实体间的关系以及各分E-R 图,可做出如下的整体E-R 图:图5-1 分E-R 图 商品实体E-R 图 商品供应商实体E-R 图购物单实体E-R 图用户实体E-R 图图5-2 整体E-R图6 系统概要设计6.1数据库逻辑结构设计参考整体E-R图可得到如下关系模式:商品(编号,名称,单价,折扣,库存,单位)商品供应商(编号,名称,地址,电话)供应商—商品(供应商编号,商品编号,数量)购物单(单号,总额,日期,时间)购物单—商品(购物单号,商品编号,数量)用户(工号,姓名,性别,权限,最后登录时间)购物单—用户(单号,工号)说明:由于购物单所关联的历史商品信息不一定与当前的商品信息相同,因此需要更改一个关系模式:购物单—商品(单号,编号,名称,单价,折扣,库存,单位);另外可以将购物单—用户模式合并到用户模式中去。

由关系模式可设计得如下基本表:6.2数据库物理设计6.2.1创建数据库数据库命名为SuperMarket。

数据文件初始大小为30MB,日志文件的初始大小为3MB;数据文件按20%增长,日志文件按1MB增长。

CREATE DATABASE SuperMarketON PRIMARY (NAME = SuperMarket,FILENAME = 'G:\SuperMarket\SuperMarket.MDF',SIZE = 30MB,FILEGROWTH = 20%)LOG ON (NAME = SuperMarket_LOG,FILENAME = 'G:\SuperMarket\SuperMarket_LOG.LDF',SIZE = 3MB,FILEGROWTH = 1MB);6.2.2建立索引create index CommodityIDIndex on Commodities(ID);6.3系统总体框架图6-1 系统总体框架7 系统详细设计7.1数据库实施7.1.1建立基本表Create Table Suppliers (ID varchar(10) primary key,Name varchar(30) not null,Addr varchar(40),Tel varchar(15));Create Table Commodities (ID varchar(12) primary key,Name varchar(30) not null,UnitPrice money not null,Discount smallint check (Discount between 1 and 10), Stocks integer,Unit varchar(8));Create Table Users (ID varchar(10) primary key,Name varchar(30) not null,Sex varchar(2) check (Sex in ('男', '女')),Authority varchar(10),RecentlyLogin smalldatetime);Create Table Orders (ID varchar(16) primary key,OrderDate date not null,OrderTime time not null,TotalPrice money not null,OperatorID varchar(10),);Create Table Supply (SupplierID varchar(10)not null,CommoditiesID varchar(12) not null,primary key (SupplierID, CommoditiesID),foreign key (SupplierID) references Suppliers(ID),foreign key (CommoditiesID) references Commodities(ID));Create Table OrderDetails(OrderID varchar(16),CommodityID varchar(12),Name varchar(30) not null,UnitPrice money not null,Discount smallint check (Discount between 1 and 10),Unit varchar(8),Amount integer,primary key(OrderID, CommodityID),foreign key (OrderID) references Orders(ID));7.1.2建立视图商品视图:create view Commodities_viewasselect ID 商品编号, Name 名称, UnitPrice 单价, Discount 折扣, Unit 单位, Stocks 库存from Commodities购物单视图:create view Orders_viewasselect ID 单号, TotalPrice 总额, OrderDate 日期, OrderTime 时间, OperatorID 操作员工号from Orders购物单细目视图:Create view OrderDetails_viewasselect OrderID 单号, CommodityID 商品编号, Name 名称, UnitPrice 单价, Discount 折扣, Amount 数量, Unit 单位, OrderDate 日期, OrderTime 时间, OperatorID 操作员工号from OrderDetails, Orderswhere Orders.ID = OrderID库存视图:create view Stocks_viewasselect CommoditiesID 商品编号, SupplierID 供应商编号, Name 商品名称, Unit 单位, Stocks 原有库存from Commodities, Supplywhere Commodities.ID = moditiesID供应商视图:create view Suppliers_viewasselect ID 供应商编号, Name 名称, Addr 地址, Tel 联系电话from Suppliers;用户(权限)视图:create view Users_viewasselect ID 工号, Name 姓名, Sex 性别, Authority 权限, RecentlyLogin 最后登录时间from Users7.2数据库的数据完整性设计为处理插入购物单细目时违反实体完整性的情况,设计如下触发器,将插入的元组与原有的元组合并,更新Amount属性值。

(实际运行时有报错,这个问题还没解决)create trigger Insert_OrderDetailson OrderDetailsinstead of insertas begindeclare@new_OID varchar(16),@new_CID varchar(12),@new_Name varchar(30),@new_UP money,@new_Dis smallint,@new_Unit varchar(8),@new_Amount int,@old_Amount intselect @new_OID = OrderID from insertedselect @new_CID = CommodityID from insertedselect @new_Name = Name from insertedselect @new_UP = UnitPrice from insertedselect @new_Dis = Discount from insertedselect @new_Unit = Unit from insertedselect @new_Amount = Amount from insertedselect @old_Amount = Amount from deletedif(@new_OID in (select OrderID from OrderDetails) and @new_CID in (select CommodityID from OrderDetails)) beginset @new_Amount = @old_Amount + @new_Amountendinsert into OrderDetails values(@new_OID, @new_CID, @new_Name, @new_UP, @new_Dis, @new_Unit, @new_Amount)end7.3数据的安全设计在本系统中有四种角色:超级管理员,权限管理员,销售员,销售管理员,仓库管理员。

相关主题