图书销售管理系统.doc
Word 文档数据库课程设计报告 题目:题目: 图书销售管理系统图书销售管理系统 目录目录引 言 3 3第一章 系统分析 3 31.1 功能需求 3第二章 系统功能概要设计 4 42.1 系统主要功能模块设计 42.2 数据库模块设计 4第三章 系统数据库设计 5 53.1 系统数据库分析 53.2 系统关系表 53.3 数据字典 63.3.1 数据项 63.3.2 数据构造 73.3.3 数据流表 83.3.4 数据存储 8第四章 概念构造设计 8 84.1 图书销售管理系统 E-R 图 9第五章 逻辑构造设计 10105.1 与系统 E-R 图对应的关系模式 105.1.1 实体所对应的关系模式 105.2 联系所对应的关系模式 11引引 言言随着计算机的普及书店规模的不断扩大,传统的图书销售管理方法,都是通过人工统计和计算的管理方式进展的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克制了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进展管理。通过图书销售管理系统可以解决书店管理中遇到的各种问题,该图书销售管理系统分析了市场需求和实际需要,通过 SQL 数据库的方式,实现了书店的图书销售等一系列管理,该系统具有处理图书录入、图书销售及管理、图书查询、报表查询等功能。第一章第一章 系统分析系统分析1.11.1 功能需求功能需求:本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以到达以下目标:a、 用户管理:对系统所有用户的相关信息进展管理。b、 图书管理:对图书信息进展添加以及编辑,对图书根本信息的录入及编辑包括图书类别、图书售价、图书、图书作者等。c、 图书销售管理:对图书的销售信息进展动态添加并实现对图书库存量的动态修改等,所添加的图书销售信息包括图书的售价、销售日期。d、 查询管理:用户根据实际需要对图书、图书销售、图书库存等信息分类查询。e、 报表查询:系统用户可以通过对时间段的选择来查看该段时间图书的销售情况,以便于做出更为合理的销售方案、提高效益。f、 数据管理:为了防止系统用户的误操作,用户可以根据自己的需要对图书信息、销售数据等进展备份等操作。第二章第二章 系统功能概要设计系统功能概要设计该图书销售管理系统是根据书店的情况结合实际需求而开发的,完全能够帮助书店实现高效、准确的图书销售自动化管理。2.12.1 系统主要功能系统主要功能模块设计模块设计:如下列图所示的系统功能模块图:图书销售管理系统图书管理模块(M2)报表查询管理模块(M5)图书销售管理模块(M3)查询管理模块(M4)数据管理模块(M6)用户管理模块(M1)图 2.1 图书销售管理系统主要功能模块图系统各个模块功能分配如下:1用户管理模块:系统用户根据权限进展系统登录并对相关用户信息进展管理;2图书管理模块:对图书的各种信息、类别进展录入、管理;3图书销售管理模块:对图书的各种销售信息进展录入、管理;4查询管理模块:对各种信息进展统计、查询;5报表查询管理模块:对销售完的图书进展统计、查询;6数据管理功能模块:对系统相关数据进展操作。2.22.2 数据库模块设计数据库模块设计:1用户管理模块M1:由相应事件驱动消息激活,完成用户登陆功能,之后进入消息循环状态,对相关用户信息进展操作。2图书管理模块:由相应事件驱动消息激活,完成图书信息管理,之后进入消息循环状态。3图书销售管理模块M3:由相应事件驱动消息激活,完成图书销售以及销售信息管理,之后进入消息循环状态。4查询管理模块M4:由相应事件驱动消息激活,完成对图书相关信息的查询功能,之后进入消息循环状态。5报表查询管理模块M5:由相应事件驱动消息激活,完成图书销售报表查询,之后进入消息循环状态。6数据管理模块M6:由相应事件驱动消息激活,对系统相关数据进展操作,之后进入消息循环状态。第三章第三章 系统数据库设计系统数据库设计3.13.1 系统数据库分析:系统数据库分析:系统功能的根本要求:图书各种信息的输入。图书信息的修改、删除;图书销售: 输入书号查询图书信息,输入购置数量、统计销售金额,生成销售记录。按照一定的条件,查询、统计符合条件的图书信息:书号、书名、作者、 。每月图书的销售排名报表生成,包括日期、书名、月销售总量。3.23.2 系统关系表:系统关系表:在对图书销售管理系统的功能模块进展了设计的根底上,要使其能够稳定、可靠的实现图书销售的自动化管理,就必须建立关系型数据表,具体关系表如下: (1)用户信息(Bookuser):Username(用户名)、Password(用户密码)、Quan*ian(用户权限);(2) 图书信息(Bookadd):Bookno(图书编号)、BookName(图书名称)、CategoryID(图书类别编号)、bookAuthor(图书作者)、bPublisher(图书)、bookPrice(图书售价)、StockNumber(图书库存数量);(3) 图书类别信息(CategoryInfo):CategoryID(图书类别编号)、CategoryName(图书类别名);(4)图书销售信息(booksale):Saleno(销售编号)、Bookno(图书编号)、SalePrice(销售价格)、SaleNumber(销售数量)、SaleDate(销售日期)。在系统的实际运行中,使用系统的有三个权限级别的用户,分别是顾客、一般用户(员工)、数据库管理员(DBA),作为游客仅能进入系统查看有限的图书信息。因此,作为顾客在数据库中没有相关信息记录。数据库管理员对图书销售管理系统拥有绝对的控制权,而一般用户对系统的控制权有限。数据库管理员能够动态的添加、删除一般用户且能够根据实际情况对一般用户的信息进展修改。在数据库管理员登录的系统的同时,一般用户不能进入到系统;相反,在一般用户进入系统后,数据库管理员也不能进入系统。3.33.3 数据字典:数据字典:根据系统需求分析,利用表格方式设计出了以下数据字典:3.3.13.3.1 数据项数据项数据字典的数据项如下表所示:编编 号号数据项名称数据项名称数据类型数据类型备备 注注1UsernameNvarchar用户账号、有唯一值、不能为空、长度为 20 个字符2PasswordNvarchar用户密码、长度为 20 个字符3Quan*ianNvarchar用户权限的划分(管理员、用户)4BooknoInt图书编号、有唯一值、不能为空5BookNameNvarchar图书名称、6CategoryIDInt图书类别、不能为空7bookAuthorNvarchar图书作者8bPublisherNvarchar图书11PriceMoney图书售价12StockNumberInt图书库存15CaigiryNameNvarchar图书类别名称16SaleIDInt图书销售日期17RealSaleNuberMoney销售价格18SaleDateDatetime销售日期3.3.23.3.2 数据构造数据构造数据字典的数据构造如下表:编编号号数据构数据构造名造名存储名存储名别别名名属属 性性备注备注1用户信息表BookUserUUsername、Password、Quan*ian永久存储2图书信息表BookaddBBookbo、BookName、CategoryID、bookAuthor、bPublisher、bookPrice、StockNumber永久存储3图书类别表CategoryInfoCCategoryID、CategoryName永久存储4销售信息表BooksaleSSaleno、Bookno、RSalePrice、SaleNumber、SaleDate永久存储5图书查询表视图*Bookno、BookName、CategoryID、bookAuthor、Publisher、StockNumber;(均来自 B 表)联系6分类查询表视图YBookName、CategoryName;分别来自 B、C表联系7库存查询表视图ZBookno、BookName、StockNumber;均来自B 表联系3.3.33.3.3 数据流表数据流表数据字典的数据流如下表所示:数据流名数据流名称称数据流数据流来源来源数数据据流流去去向向组组 成成备备 注注添加用户信息用户输入UUsername、Password、Quan*ian删除用户UUUsername、Password、Quan*ian修改密码UUUsername、Password图书入库信息用户输入、CBBookno、BookName、CategoryID、bookAuthor、bPublisher、bookPrice、StockNumber图书编辑BBBookno、BookName、CategoryID、bookAuthor、bPublisher、bookPrice、StockNumber图书类别信息添加用户输入、CCCategoryID、CategoryName图书类别信息修改CCCategoryID、CategoryName图书信息查询BBBookno、BookName、CategoryID、bookAuthor、bPublisher、bookPrice、StockNumber图书分类信息查询C、BCCategoryID、CategoryName、Bookno、BookName库存信息查询BBBookno、BookName、CategoryIDStockNumber查询月度报表SSSaleno、Bookno、SalePrice、SaleNumber、SaleDate3.3.43.3.4 数据存储数据存储数据字典的数据存储如下表所示:数据存数据存储名称储名称物理存储名物理存储名称称组组 成成备注备注用户表BookusersUsername、Password、Quan*ian实体图书信息表BookaddBookno、BookName、CategoryID、bookAuthor、bPublisher、bookPrice、StockNumber实体销售信息表BooksaleSaleno、Bookno、RSalePrice、SaleNumber、SaleDate实体图书类别表CategoryInfoCategoryID、CategoryName联系第四章第四章 概念构造设计概念构造设计4.14.1 图书销售管理系统图书销售管理系统 E-RE-R 图图: :图 书B图书类别C组成添加管理员操作员管 理1n图书销售S销 售用 户U图书查询*分类查询Y 库存查询Z查 询nmmm查 询销售报表S1n组成nm1nn1n图 4.7 图书销售管理系统 E-R 图第五章第五章 逻逻 辑辑 结结 构构 设设 计计5.15.1 与系统与系统 E-RE-R 图对应的关系模式:图对应的关系模式:5.1.15.1.1 实体所对应的关系模式实体所对应的关系模式管理员Username、Password、Quan*ian;操作员Username、Password、Quan*ian;图书Bookno、CategoryID 、BookName、bookAuthor、bPublisher、Price、StockNumber;图书类别CategoryID、CategoryName;图书销售Saleno、Bookno、SalePrice、SaleNumber、SaleDate;图书查询Bookno、CategoryID 、BookName、bookAuthor、bPublisher、StockNumber;分类查询CategoryName、BookName;库存查询Bookno、BookName、StockNumber;销售报表Saleno、Bookno、SalePrice、SaleNumber、SaleDate。说明:说明:1、下加横线局部表示关系的码; 2、以上关系的详细容说明请参照概念构造设计中的具体容;3、上面的各个关系对概念构造设计中的局部相关容了作了修改,主要加了各个实体之间的联系。5.25.2 联系所对应的关系模式:联系所对应的关系模式:1)把操作员与图书销售之间的 n:m 的销售联系转化为相应的关系模式如下:销售SaleID、BookID、RealSalePrice、SaleNuber、SaleDate ;2把用户与图书查询之间的 n:m 的查询联系转化为相应的关系模式如下:查询BookID、CategoryID、BookName、Author、Publisher、PublishDate、Price、StockNumber、Discount、Barcode ;3把用户与分类查询之间的 n:m 的查询联系转化为相应的关系模式如下:查询CategoryName、BookName ;4把用户与库存查询之间的 n:m 的查询联系转化为相应的关系模式如下:查询BookID、BookName、StockNumber ;5其他联系处理说明如下:管理员与操作员之间的 1:n 联系与用户关系合并;管理员与图书之间的 1:n 联系与图书关系合并;管理员与图书类别之间的 1:n 联系与图书类别关系合并;管理员与销售报表之间的 1:n 联系与销售关系合并。源程序:create database 图书销售管理系统on(name=Book_Data,filename=g:SQL图书销售管理系统.mdf,size=10,ma*size=50,filegrowth=5)log on(name=Book_Log,filename=g:SQL图书销售管理系统.ldf,size=5,ma*size=25,filegrowth=5)use 图书销售管理系统create table Bookadd(bookno char(12) primary key not null,bookname varchar(20),bookAuhtor varchar(20),CategoryID int not null,bookPrice numeric(7,2),booksum int,bPublisher varchar(40),stockNumber int)create table Booksale(saleno char(12) primary key not null,bookno char(12) not null,bookname varchar(20),saleNumber int,salePrice numeric(7,2),saleDate datetime)create table Bookuser(username varchar(20) not null,password varchar(20),Quan*ian varchar(20)create table CategoryInfo(CategoryID int not null,CategoryName varchar(20)gocreate view 图书查询as select bookno,bookname,bookAuhtor,CategoryID,bookPrice,bPublisherfrom Bookaddgogocreate view 分类查询as select BookName,CategoryNamefrom Bookadd,CategoryInfowhere Bookadd.CategoryID =CategoryInfo.CategoryIDgogocreate view 库存查询as select bookno,bookname,stockNumberfrom Bookaddgogocreate view 销售查询as select saleno,bookno,bookname,saleNumber,salePricefrom Booksalegoselect saleDate as 销售日期,bookname as 书名,sum(saleNumber) as 月销售数量into salesumfrom Booksale group by bookno go create trigger insert_bookadd on Bookaddafter insertas if e*ists( select * from inserted where bookno in (select bookname from Bookadd)print 添加成功!elsebeginprint 图书信息表中没有该图书的信息。拒绝插入!rollback transactionendgodrop trigger insert_bookaddinsert into Bookadd values(7,c*,fff,7,35,200,FFF,100)go create trigger del_book on Bookaddafter deleteasdelete from Booksalewhere Booksale.booknoin (select bookno from deleted)godrop trigger del_bookdelete from Bookadd where bookno= 3