数据库原理课程设计报告

时间:2024.4.13

   

 《数据库系统原理课程设计报告》

企业进销存管理系统

学生姓名: 陈庆虎  20091514119

蒋虎振  20091514120

张  威  20091514101

张林慧  20091514129

韩秀真  20091514130

赵肖平  20091514125

系    别: 信息工程学院                 

班    级: 计科091          

专    业: 计算机科学与技术  

指导教师:  张丽娟            

                                                     2011 年 11 月  15


目录

1 引言... 1

1.1 问题描述.... 1

1.2开发环境和运行环境.... 2

2 需求分析... 2

2.1系统功能基本的要求.... 2

2.2企业对系统实现的要求.... 2

2.3系统功能的设计.... 3

2.4数据字典.... 5

3 概念设计... 6

3.1设计分e-r.... 6

3.2设计完成的总e-r.... 9

4 逻辑结构设计... 9

4.1图向关系模式的转换.... 9

4.2数据模型的优化.... 10

4.3用户子模式的设计.... 10

5 数据实施和维护... 11

5.1建立数据库.... 11

5.2建表.... 11

5.3建查询.... 11

5.4建存储过程.... 12

6总结... 13

参考文献... 14


1 引言

1.1 问题描述

随着市场竞争的不断加剧,作为中小企业也迫切需要规范管理。

然而目前中小型企业在具体的业务流程处理过程中仍然使用手工操作的方式来实施,由于商品繁多、业务零杂,各类采购、销售单据数量非常多,人工处理比较困难,并且准确性难以确保。所以这种现状不仅费时、费力、效率低下,而且无法达到理想的效果。

因此,中小企业实施规范管理势在必行,如何实现内部流程管理和外部市场竞争的管理,无疑是企业经营最核心的问题。建立一个有效的商务进销存管理系统,可以使企业拥有比竞争对手更严谨的业务管理和控制,可以比竞争对手更快速地获得效益。

1.2开发环境和运行环境

企业进销存管理系统运用了当前流行的SQL SERVER20##、C#、VS2010等运行和开发的。

1.库、基本表的建立和修改:在SQL-SERVER环境下用CREATE TABLE 建立库以及库中基本表。

2.数据加载: 用手工录入或导入等方法实现基本表中的数据加载。

3.单表查询以及多表查询:在建立的基本表中使用select基本格式和聚集函数;设计合适的视图,实现多表间查询。

4.触发器:设计触发器,可实现表间关联字段修改时的完整性等问题。

5.存储器:设计存储过程,并用语句调用。

6.用SQL SERVER 2005/20##、C#、VisualStudio2010等开发环境设计、实现系统主要功能。

2 需求分析

2.1系统功能基本的要求

试设计一个企业进销存管理系统,便于企业对产品进行进销业务流程规划化管理。

2.2企业对系统实现的要求

要求实现的主要模块:(1)用户管理 (2)数据库维护 (3)产品入库管理 (4)产品出库管理 (5)库存管理 (6)维修管理 (7)个人信息 (8)基础数据维护。

1.信息要求:

信息的录入是通过产品入库登记,基础数据维护添加新的产品,出库时输入销售记录等过程进行数据信息的录入与查询。

2.处理要求:

建立一个有效的商务进销存管理系统,以解决商品繁多、业务零杂,各类采购、销售单据数量非常多,人工处理困难,准确性难以确保等众多问题。

3.安全性与完整性要求:

(1)安全性要求

a.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;

b.系统实现:数据备份、数据恢复,以防止重大失误、或是系统故障引起的损失;

(2)完整性要求

a.各种信息记录的完整性,信息记录内容不能为空;

b.各种数据间相互的联系的正确性;

c.相同的数据在不同记录中的一致性。

2.3系统功能的设计

系统实现(1)用户管理 (2)数据库维护 (3)产品入库管理 (4)产品出库管理 (5)库存管理 (6)维修管理 (7)个人信息 (8)基础数据维护。

数据流图

                         

2.4数据字典

部分重要表:

表名:UserInfo

                              表名:Storage

 表名:Computer

表名:AroundDevice

                       表名:PurchaseOrder

                        销售单:SaleOrder

                 税票:Ticket

 3 概念设计

3.1设计分e-r

   由于表格过多只列举部分表格设计E-R图如下:

职员E-R图

                       

               周边设备E-R

                

                   销售单E-R图

             

                    分E-R图

              

                        分E-R图

3.2设计完成的总e-r

             

4 逻辑结构设计

4.1图向关系模式的转换

部分关系模式如下:

1、职员(职员ID,名字,密码,权限)

2、销售单(销售单ID,产品数量,经办人,业务员,是否开票,内部票号,销售日期,客户,销售成品,销售单编号,备注,是否退单,售价)

3、产品(产品ID,产品名称,单位,一级分类,二级分类,三级分类,批次号,品牌,类型,CPU,内存 ,显卡···显示器大小,是否删除等)

4、库存(产品ID,库存数量)

4.2数据模型的优化

在概念设计的基础上,根据设计得到系统总的E-R图,按照概念模式与关系表转化的一般规则,结合实际的需要进行逻辑设计,E—R图中的实体、实体的属性和实体之间的联系转化为关系模式。最后生成的部分关系及关系表如下(同时附优化说明):

1、  电脑(产品ID,批次号,品牌,型号,CPU,内存,显卡,硬盘,主板,显示器大小,光驱,是否是笔记本,是否删除)

2、单独显示器(产品ID,品牌,大小,是否删除)

3、周边设备(产品ID,产品名称,单位,一级分类,二级分类,三级分类,是否删除)

优化说明:原来是所有产品对象放在一起,由于这些不同的产品属性差别太大,放在一起造成很大的数据冗余,而且易出错,所以把他们分为三大类,如上面,这样就解决了很多问题。

4.3用户子模式的设计

在将概念模型转化为全局逻辑模型后,根据用户对进销存管理系统的局部应用需求,以下设计用户子模式:

考虑需求

考虑以下的几个需求:

⑴        管理员有可能是业务员或是经办人

⑵        可随时对任意产品进行开票的需求

定义用户级别

对用户职员的权限限制:

⑴        用户职工:用户登录系统,系统会判断其权限,他只能操作在他权限范围内的事务。

制作查询子系统:

根据分析需求,我们设计了一个开票管理系统

提供对销售产品的开票,查询税收相关情况。

5 数据实施和维护

5.1建立数据库

Create database SaleManage;

5.2建表

要求:至少5张表

1.建用户表

CREATE TABLE UserInfo  

(UserID VARCHAR(16) primary key NOTNULL,

NAME VARCHAR(8)NOTNULL,

Pwd varchar (200)NOTNULL,

Power varchar(8)NOTNULL,

);

2.建维修表单

CREATE TABLE RepairList 

(listID VARCHAR(50) PRIMARY KEY,

 RepairNum VARCHAR(20),

 Client VARCHAR(50),

 FaultPart VARCHAR(50),

 FaultNum VARCHAR(20),

 FaultReason VARCHAR(50),

 RepairDate  datetime,

 ReCompany VARCHAR(50),

 IsFinish Bit,

 FinishDate DATEtime,

 RepairCost Money,

 Charge Money

);

3.建库存

CREATE TABLE Storage  

(ListID VARCHAR(50) PRIMARY KEY, 

 Number INT

);

4.建销售单

CREATE  TABLE SaleOrder

(ID uniqueidentifier notnull,

SaleNum varchar(20)NOTNULL,

ListID varchar(50)NOTNULL,

ProName  varchar(50)NOTNULL,

UserName varchar(8)NOTNULL,

SaleMan varchar(8)NOTNULL,

Cost Money NULL,

SalePrice Money NOTNULL,

SaleNumber Int NOTNULL,

Date Datetime NOTNULL,

Client varchar(50)NOTNULL,

InMark varchar(20)NULL,

Remark varchar(50)NULL,

Screen  varchar(50)NULL,

IsReturn Bit NOTNULL,

)

5.建税票表

CREATE TABLE Ticket  

(InMark VARCHAR(20),

 TicketNum VARCHAR(50),

 Office VARCHAR(50),

 Content VARCHAR(50),

 Amount Money,

 TaxAmount Money,

 Total Money

); 

……

5.3建查询

要求:5个查询以上 

1、查询指定日期的所有的销售单

2、查询指定日期的所有的销售单

3、查询指定日期的所有的销售单

4、查询指定日期的所有的销售单

5、查询指定日期的所有的销售单

select Sa.ID as saID,Sa.SaleNum as 销售单编号,Sa.IsBilling as 选择,Sa.ProName as 产品名称,isnull(Ar.Type1,'')+isnull( ' '+Ar.Type2,'')+isnull(Com.Brand,'')+

isnull( ' 批次:'+Com.LotNum,'')+isnull( ' CPU:'+Com.CPU,'')+

isnull( ' 显卡:'+Com.VideoCard,'')+isnull( ' 显示器:'+Com.Screen,'')+

 isnull( '显示器品牌:'+Sc.Brand,'')+isnull( ' 大小:'+Sc.Size,'') as 产品详细信息,

  Sa.SalePrice as 售价,Sa.SaleNumber as 数量,isnull(Sa.SalePrice,'')*isnull( Sa.SaleNumber,'')

  as 金额,Sa.IsBilling as 是否开票, Sa.SaleMan as 业务员,Sa.Client as 客户,

  Sa.UserName as 经办人,Sa.Date as 销售日期, Sa.Cost as 开销,Sa.Remark as 备注

    from SaleOrder as Sa leftjoin AroundDevice as Ar on Sa.ListID=Ar.ListID 

     leftjoin Computer as Com on Sa.ListID=Com.ListID  

     leftjoin Screen as Sc on Sa.ListID=Sc.ListID

     where Date BETWEEN '2011/12/14' AND '2011/12/14' and

      Sa.IsReturn= 'false 'order by Sa.SaleNum desc

5.4建存储过程

要求:三个以上

1.业务员的显示,如果是管理员,则显示为公司(不带参数)

create proc pro_UserShow

as

select case when power='1111111'then '公司' else Name END Name from UserInfo

exec pro_UserShow

2.根据所选产品查看它最近三次售价(带参数)

create procedure pro_RecentPrice

@ListID varchar(30),@SellID varchar(20)

AS

select top 3  SalePrice from SaleOrder

where ListID=@ListIDand SaleNum!=@SellID order by SaleNum desc  

两种调用示例:

exec pro_RecentPrice 'B2011/12/14 12:46:573','S20111214205416'

exec pro_RecentPrice

@ListID='B2011/12/14 12:46:573',@SellID='S20111214205416'

3.查询库存(带输出参数):

CREATE PROC pro_StoNumber

              @ListID varchar(30),

              @Number int output

AS

SELECT @Number=Number

from     Storage

where  ListID=@ListID

调用示例:

declare  @ListID varchar(30),@Number int

select @ListID='B2011/12/14 12:46:573'

 EXEC pro_StoNumber @ListID ,

       @Number OUTPUT

 SELECT @Number

5.4建触发器

要求:INSERT,UPDATE,DELETE三种触发器任选

插入销售单数据时,同时库存减去销售数量

create trigger Tr_SaleOrder

 on SaleOrder for insert

   AS

   DECLARE  @outNumber int, @ListID varchar(30)

   SELECT @outNumber=SaleNumber, @ListID=ListID FROM inserted

     UPDATE Storage SET Number= Number -@outNumber

         WHERE ListID=@ListID

   

GO

示例:

insert into SaleOrder (ID,SaleNum,ListID,ProName,SalePrice,SaleNumber,IsBilling,InMark,SaleMan,Client,UserName,Cost,Date,Remark)

  values('12e1c6b1-999b-41ee-a385-edec847dde4e','S20111214163521','B2011/12/14 12:46:573','ProBook 4321s','4600','1','True','20111214001','公司','上海直销商','dahu','','2011/12/14','')

6总结

据库有保持数据的独立性,所谓数据独立,是指存储在数据库中的数据独立于处理数据的所有应用程序而存在。也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是独立于应用而存在着的客观实体。而某一项应用是处理数据获取信息的过程,也就是应用程序,它只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身数据库的传统定义是以一定的组织方式存储的一组相关数据的集合,主要表现为数据表的集合。

1.SQL语句按其功能可以分为如下3大类

(1)数据定义语句 DDL ( Data Definition Language)

(2)数据操作语句 DML (Data Manipulation Language);

(3)数据控制语句 DCL (Data Control Language)。。

2.学习心得

我做的是住房公积金测算系统,刚刚拿到题目完全不知道从那下手,应该是第一次做的原因吧!以前只知道上课听老师讲从来没做过,数据库我认为和生活或者以后的生活没什么联系,所以我平时也就随便听听,但题目一手就知道那是自己一个人的事了,应为题目几乎两三个人一题,就算是两三个人一题也得写的不同,所以刚开始两天我都没怎么做,为了看书上的内容。                                      

                                                              

参考文献

数据库系统概论/王珊 萨师煊 主编——高等教育出版社,2006.5第四版

数据库实用教程/郑阿奇主编.—北京:电子工业出版社,2009.1高等学校计算机教材

更多相关推荐:
数据库原理课程设计报告(学生成绩管理系统)

科技学院课程设计报告20xx20xx年度第2学期名称数据库原理课程设计院系班级网络08k2学号学生姓名指导教师设计周数1成绩日期20xx年6月5日数据库原理课程设计任务书一目的与要求1这门课是为计算机科学与技术...

数据库原理课程设计实验报告模板

课程设计实验报告模版综合性设计性实验报告实验课程名称XX系统的后台数据库设计专业软件工程班级学号某某姓名某某组长学号姓名学号姓名学号姓名指导教师及职称郭美珍讲师开课学期20xx至20xx学年第一学期设计时间20...

数据库原理课程设计报告书

数据库原理实践报告班级统计一班学号20xx20xx姓名王一晰11实验目的在本次课程设计中通过超市管理信息系统这个项目综合运用数据库的知识并使数据库和Java编程语言结合起来并用可视化工具将其做成一个较为简单的项...

数据库原理及应用课程设计报告

数据库原理及应用课程设计报告商品销售管理系统学院信息工程学院班级学号姓名完成时间201课程设计的任务数据库原理及应用是计算机及其相关学科的一门重要的学科基础课程也是计算机软件科学与技术信息科学与技术的重要学科分...

数据库原理及应用课程设计

软件学院课程设计报告书课程名称设计题目专业班级学号姓名指导教师20xx年6月目录1设计时间12设计目的23设计任务24设计内容341需求分析342概念结构设计3421实体3422局部视图343逻辑结构设计643...

学生选课信息系统数据库课程设计报告

Oracle数据库应用开发期末设计报告学号20xx051341姓名秦小梅班级中软lt3gt班学期第二学期成绩数据库原理与应用课程设计目录一系统概述2二需求说明21需求调研22系统功能的设计和划分33数据流图44...

Java oracle数据库课程设计报告

南阳理工学院数据库程序设计课程设计报告课题姓名学号同组姓名专业班级指导教师设计时间20xx年6月目录1开发背景32系统描述33数据分析431数据流图432数据字典44概念模型设计941ER图95逻辑模型设计及优...

数据库原理课程实验报告(华北电力大学)

科技学院课程设计报告20xx20xx年度第2学期名称数据库原理课程设计院系班级网络09k1学号学生姓名指导教师郭丰娟乔玲玲设计周数1成绩日期20xx年6月1日数据库原理课程设计任务书一目的与要求1这门课是为计算...

华北电力大学数据库原理课程设计报告

科技学院课程设计报告20xx20xx年度第2学期名称数据库原理课程设计院系班级网络学号学生姓名指导教师郭丰娟乔玲玲设计周数1成绩日期20xx年6月1日数据库原理课程设计任务书一目的与要求1这门课是为计算机科学与...

图书管理系统数据库课程设计报告书

图书管理系统一背景资料1图书馆有各种图书若干万册2每种图书都有书名图书编号作者译者出版社定价和内容简介3借书证记录有借阅者的姓名工作单位住址联系电话等4凭借书证借书每次最多能借5本书借书期限最长为60天二系统功...

图书管理系统数据库课程设计报告书

河南理工大学图书管理系统一背景资料1图书馆有各种图书若干万册2每种图书都有书名图书编号作者译者出版社定价和内容简介3借书证记录有借阅者的姓名工作单位住址联系电话等4凭借书证借书每次最多能借5本书借书期限最长为6...

学校图书管理系统课程设计报告

湖南工学院南校区经济与管理系数据库课程设计课题名称:图书管理系统系别:经济管理系专业:电子商务姓名:**班级:电商0901班学号:***指导老师:哈哈完成时间:20**年12月湖南工学院20**年12月目录第1…

数据库原理课程设计报告(20篇)