《数据库原理课程设计》课程设计.docx

上传人:b****7 文档编号:9623558 上传时间:2023-02-05 格式:DOCX 页数:19 大小:71.06KB
下载 相关 举报
《数据库原理课程设计》课程设计.docx_第1页
第1页 / 共19页
《数据库原理课程设计》课程设计.docx_第2页
第2页 / 共19页
《数据库原理课程设计》课程设计.docx_第3页
第3页 / 共19页
《数据库原理课程设计》课程设计.docx_第4页
第4页 / 共19页
《数据库原理课程设计》课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《数据库原理课程设计》课程设计.docx

《《数据库原理课程设计》课程设计.docx》由会员分享,可在线阅读,更多相关《《数据库原理课程设计》课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

《数据库原理课程设计》课程设计.docx

《数据库原理课程设计》课程设计

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

 

学生姓名:

系别:

班级:

专业:

指导教师:

 

2011年11月15日

1引言

问题描述

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

然而目前中小型企业在具体的业务流程处理过程中仍然使用手工操作的方式来实施,由于商品繁多、业务零杂,各类采购、销售单据数量非常多,人工处理比较困难,并且准确性难以确保。

所以这种现状不仅费时、费力、效率低下,而且无法达到理想的效果。

因此,中小企业实施规范管理势在必行,如何实现内部流程管理和外部市场竞争的管理,无疑是企业经营最核心的问题。

建立一个有效的商务进销存管理系统,可以使企业拥有比竞争对手更严谨的业务管理和控制,可以比竞争对手更快速地获得效益。

开发环境和运行环境

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

1.库、基本表的建立和修改:

在SQL-SERVER环境下用CREATETABLE建立库以及库中基本表。

2.数据加载:

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

3.单表查询以及多表查询:

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

4.触发器:

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

5.存储器:

设计存储过程,并用语句调用。

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

2需求分析

系统功能基本的要求

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

企业对系统实现的要求

要求实现的主要模块:

(1)用户管理

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

1.信息要求:

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

2.处理要求:

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

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

(1)安全性要求

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

b.系统实现:

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

(2)完整性要求

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

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

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

系统功能的设计

系统实现

(1)用户管理

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

数据流图

数据字典

部分重要表:

表名:

UserInfo

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

UserID

varchar

16

6

用户名

登陆用

2

Name

varchar

8

4

姓名

真实姓名

3

Pwd

varchar

200

0

密码

4

Power

varchar

8

0

权限

固定位是1有权限,0无此权限

表名:

Storage

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

ListID

varchar

50

Lis

唯一标志

2

Number

Int

0

表名:

Computer

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

ListID

varchar

50

唯一标志

2

LotNum

varchar

3

批次号

3

Brand

Varchar

50

品牌

4

CPU

Varchar

50

5

Memory

varchar

50

6

VideoCard

Varchar

50

显卡

7

HardDisk

Varchar

50

8

MainBoard

Varchar

50

主板

9

RwDrive

Varchar

50

光驱

10

Remark

Varchar

50

备注

11

Screen

Varchar

50

12

Unit

Varchar

20

单位

13

IsDelete

Bit

False

逻辑删除批次号

True未删除

表名:

AroundDevice

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

ListID

varchar

50

唯一标志

2

Type1

varchar

50

Type1

类型或名称

3

Type2

varchar

50

Type2

类型或名称

4

Type3

varchar

50

Type3

类型或名称

5

ProductName

50

产品名称

6

Unit

Varchar

20

单位

7

IsDelete

Bit

逻辑删除

表名:

PurchaseOrder

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

PurchaseNum

varchar

20

采购单编号

2

Supplier

varchar

50

供货商

3

ListID

varchar

50

产品唯一标志

4

UserName

varchar

经办人

5

Price

Money

单价

6

Number

Int

产品数量

7

Date

Datetimes

8

IsBilling

Bit

False

是否开票

9

IsTax

Bit

False

是否含税

10

Remark

Varchar

50

备注

11

IsReturn

Int

0

区分标志

0.采购单

1退单,2退库存

销售单:

SaleOrder

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

SaleNum

varchar

20

销售单编号

2

ListID

Varchar

50

唯一标志

ProName

Varchar

50

产品名称

3

UserName

varchar

8

经办人

4

SaleMan

Varchar

8

业务员

4

Cost

Money

销售成本

5

SalePrice

Money

售价

6

SaleNumber

Int

1

产品数量

7

Date

Datetime

8

Client

Varchar

50

客户

9

InMark

Varchar

20

内部票号

10

Remark

Varchar

50

备注

11

Screen

Varchar

50

11

IsReturn

Bit

False

是否退单

税票:

Ticket

序号

列名

数据类型

长度

小数位

标识

主键

允许空

默认值

说明

备注

1

InMark

Varchar

20

内部票号都放在一起

2

TicketNum

varchar

50

外部票号

3

Office

Varchar

50

开票单位

4

Content

Varchar

50

内容

5

Amount

Money

每种产品金额

6

TaxAmount

Money

税收金额

7

Total

Money

总金额

3概念设计

设计分e-r图

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

职员E-R图

周边设备E-R

销售单E-R图

分E-R图

分E-R图

设计完成的总e-r图

4逻辑结构设计

图向关系模式的转换

部分关系模式如下:

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

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

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

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

数据模型的优化

在概念设计的基础上,根据设计得到系统总的E-R图,按照概念模式与关系表转化的一般规则,结合实际的需要进行逻辑设计,E—R图中的实体、实体的属性和实体之间的联系转化为关系模式。

最后生成的部分关系及关系表如下(同时附优化说明):

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

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

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

优化说明:

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

用户子模式的设计

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

考虑需求

考虑以下的几个需求:

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

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

定义用户级别

对用户职员的权限限制:

1用户职工:

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

制作查询子系统:

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

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

5数据实施和维护

建立数据库

CreatedatabaseSaleManage;

建表

要求:

至少5张表

1.建用户表

CREATETABLEUserInfo

(UserIDVARCHAR(16)primarykeyNOTNULL,

NAMEVARCHAR(8)NOTNULL,

Pwdvarchar(200)NOTNULL,

Powervarchar(8)NOTNULL,

);

2.建维修表单

CREATETABLERepairList

(listIDVARCHAR(50)PRIMARYKEY,

RepairNumVARCHAR(20),

ClientVARCHAR(50),

FaultPartVARCHAR(50),

FaultNumVARCHAR(20),

FaultReasonVARCHAR(50),

RepairDatedatetime,

ReCompanyVARCHAR(50),

IsFinishBit,

FinishDateDATEtime,

RepairCostMoney,

ChargeMoney

);

3.建库存

CREATETABLEStorage

(ListIDVARCHAR(50)PRIMARYKEY,

NumberINT

);

4.建销售单

CREATETABLESaleOrder

(IDuniqueidentifiernotnull,

SaleNumvarchar(20)NOTNULL,

ListIDvarchar(50)NOTNULL,

ProNamevarchar(50)NOTNULL,

UserNamevarchar(8)NOTNULL,

SaleManvarchar(8)NOTNULL,

CostMoneyNULL,

SalePriceMoneyNOTNULL,

SaleNumberIntNOTNULL,

DateDatetimeNOTNULL,

Clientvarchar(50)NOTNULL,

InMarkvarchar(20)NULL,

Remarkvarchar(50)NULL,

Screenvarchar(50)NULL,

IsReturnBitNOTNULL,

5.建税票表

CREATETABLETicket

(InMarkVARCHAR(20),

TicketNumVARCHAR(50),

OfficeVARCHAR(50),

ContentVARCHAR(50),

AmountMoney,

TaxAmountMoney,

TotalMoney

);

……

建查询

要求:

5个查询以上

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

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

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

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

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

selectassaID,as销售单编号,as选择,as产品名称,isnull,'')+isnull(''+,'')+isnull,'')+

isnull('批次:

'+,'')+isnull('CPU:

'+,'')+

isnull('显卡:

'+,'')+isnull('显示器:

'+,'')+

isnull('显示器品牌:

'+,'')+isnull('大小:

'+,'')as产品详细信息,

as售价,as数量,isnull,'')*isnull(,'')

as金额,as是否开票,as业务员,as客户,

as经办人,as销售日期,as开销,as备注

fromSaleOrderasSaleftjoinAroundDeviceasAron=

leftjoinComputerasComon=

leftjoinScreenasScon=

whereDateBETWEEN'2011/12/14'AND'2011/12/14'and

='false'orderbydesc

建存储过程

要求:

三个以上

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

createprocpro_UserShow

as

selectcasewhenpower='1111111'then'公司'elseNameENDNamefromUserInfo

execpro_UserShow

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

createprocedurepro_RecentPrice

@ListIDvarchar(30),@SellIDvarchar(20)

AS

selecttop3SalePricefromSaleOrder

whereListID=@ListIDandSaleNum!

=@SellIDorderbySaleNumdesc

两种调用示例:

execpro_RecentPrice'B2011/12/1412:

46:

573','S20'

execpro_RecentPrice

@ListID='B2011/12/1412:

46:

573',@SellID='S20'

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

CREATEPROCpro_StoNumber

@ListIDvarchar(30),

@Numberintoutput

AS

SELECT@Number=Number

fromStorage

whereListID=@ListID

调用示例:

declare@ListIDvarchar(30),@Numberint

select@ListID='B2011/12/1412:

46:

573'

EXECpro_StoNumber@ListID,

@NumberOUTPUT

SELECT@Number

建触发器

要求:

INSERT,UPDATE,DELETE三种触发器任选

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

createtriggerTr_SaleOrder

onSaleOrderforinsert

AS

DECLARE@outNumberint,@ListIDvarchar(30)

SELECT@outNumber=SaleNumber,@ListID=ListIDFROMinserted

UPDATEStorageSETNumber=Number-@outNumber

WHEREListID=@ListID

GO

示例:

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

values('12e1c6b1-999b-41ee-a385-edec847dde4e','S20','B2011/12/1412:

46:

573','ProBook4321s','4600','1','True','001','公司','上海直销商','dahu','','2011/12/14','')

6总结

据库有保持数据的独立性,所谓数据独立,是指存储在数据库中的数据独立于处理数据的所有应用程序而存在。

也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是独立于应用而存在着的客观实体。

而某一项应用是处理数据获取信息的过程,也就是应用程序,它只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身数据库的传统定义是以一定的组织方式存储的一组相关数据的集合,主要表现为数据表的集合。

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

(1)数据定义语句DDL(DataDefinitionLanguage)

(2)数据操作语句DML(DataManipulationLanguage);

(3)数据控制语句DCL(DataControlLanguage)。

2.学习心得

我做的是住房公积金测算系统,刚刚拿到题目完全不知道从那下手,应该是第一次做的原因吧!

以前只知道上课听老师讲从来没做过,数据库我认为和生活或者以后的生活没什么联系,所以我平时也就随便听听,但题目一手就知道那是自己一个人的事了,应为题目几乎两三个人一题,就算是两三个人一题也得写的不同,所以刚开始两天我都没怎么做,为了看书上的内容。

参考文献

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

数据库实用教程/郑阿奇主编.—北京:

电子工业出版社,高等学校计算机教材

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1