数据库课程设计--销售管理系统(共26页)

上传人:9** 文档编号:55860334 上传时间:2022-02-19 格式:DOC 页数:26 大小:312KB
返回 下载 相关 举报
数据库课程设计--销售管理系统(共26页)_第1页
第1页 / 共26页
数据库课程设计--销售管理系统(共26页)_第2页
第2页 / 共26页
数据库课程设计--销售管理系统(共26页)_第3页
第3页 / 共26页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上目录专心-专注-专业摘要SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UN操作系统上的应用。SQL Server 2000 是Microsoft 公司推出的SQL Server数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。1.概述SQL server是时下比较流行的数据库,利用SQL server可以做很多管理系统,此次我们的选题为:产品销售管理系统。本次课程设计的目的在于,加深对SQL serve知识的应用能力,团队中的合作意识,把课本信息用于实践,为进入社会打好基础。销售管理系统是销售管理软件的通俗化名称,销售管理系统是管理、销售活动、报告、统计的先进工具,适合企业销售办公和管理使用,协助和销售人员快速管理客户、销售和业务的重要数据。主要功能模块包括:渠道管理、项目管理、合同管理、报价管理、销售机会管理、收款计划管理、付款计划管理、潜在客户池、公共检索、自动化管理策略、客户管理、竞争对手管理、服务管理、商品管理、销售管理、采购管理、费用管理、短信群发、传真群发、邮件群发、活动管理、任务管理、权限管理、自定义功能、数据导入功能、新闻公告发布、工作台、快速通道、系统监控、报表数据分析等。鉴于我们的能力有限,仅选择了其中的几个功能实现。2.需求分析产品销售管理系统的总体要求是:企业生产多种产品,产品销售管理系统模拟产品销售过程中的管理,管理对象包括产品、客户、发票等,可以实现产品销售,并能进行各种查询、统计等的处理。其中大致设计功能如下分为以下几点。系统管理的对象如下:1.客户:每个客户分配唯一客户号,要登记客户姓名、地址、电话、信用状况(优/良/一般/差)、预付款等信息。2.产品:产品编码、产品名称、规格、单价、库存数量等。3.客户购买产品要开具发票,每张发票由唯一的发票号、客户名称、购买日期、付款金额和若干购买产品细节组成。4.产品细节包括:序号、产品号、购买数量等。企业的产品销售管理规定如下:1.客户可多次购买任意产品,每次可以购买多种产品。2.客户每次购买要开具发票,一张发票只开给一个客户。3.一张发票可以开多种产品,同类产品在一张发票上只能出现一次。3.概念结构设计3.1概念结构设计工具实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。E-R模型的构成成分是实体集、属性和联系集,其表示方法如下:(1) 实体集用矩形框表示,矩形框内写上实体名。(2) 实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。(3) 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即11、1N或MN。3.2客户子系统每个客户分配唯一客户号,要登记客户姓名、地址、电话、信用状况(优/良/一般/差)、预付款等信息。客户购买产品要开具发票。客户可多次购买任意产品,每次可以购买多种产品。客户每次购买要开具发票。所以与之对应的分E-R图如图1(见下一页)图13.3产品子系统3.3.1 子系统描述产品具有产品编码、产品名称、规格、单价、库存数量等属性。产品细节包括:序号、产品号、购买数量等。同类产品在一张发票上只能出现一次。3.3.2 分E-R图图23.4发票子系统3.4.1 子系统描述客户购买产品要开具发票,每张发票由唯一的发票号、客户名称、购买日期、付款金额和若干购买产品细节组成,一张发票只开给一个客户,一张发票可以开多种产品。2.4.2 分E-R图图33.5总E-R图3.5.1 E-R图的集成总E-R图是由子E-R图已经它们各自的属性,联系的总和。3.5.2 总体E-R图,图4(见下一页)图44.逻辑结构设计逻辑结构的设计流程如下图:4.1E-R图向关系数据模式转换通过以上各个子系统的分析和E-R图,可以把以上实体转换为如下的关系数据模式:4.1.1 客户关系数据模式:(1)客户(客户号,姓名,地址,电话,信用状况,预付款),以客户姓名为关系码;(2)产品(编码,名称,规格,单价,库存数量),以产品名称为关系码;(3)购买(客户姓名,产品名称),以客户姓名为关系码;购买与客户端合并,则客户关系数据模式如下:客户(客户号,姓名,地址,电话,信用状况,预付款,产品名称);产品(编码,名称,规格,单价,库存数量)。4.1.2 产品关系数据模式:(1)产品(编码,名称,规格,单价,库存数量),以产品名称为关系码;(2)发票(编号,日期,用户,产品,单价,数量,总金额),以发票编号为关系码;(3)拥有(发票编号,产品名称),以发票编号为关系码;拥有与产品端合并,则产品关系数据模式如下:产品(编码,名称,规格,单价,库存数量,发票编号);发票(编号,日期,用户,产品名称,单价,数量,总金额)。4.1.3 发票关系数据模式:(1)发票(编号,日期,用户,产品,单价,数量,总金额),以发票编号为关系码;(2)客户(客户号,姓名,地址,电话,信用状况,预付款),以客户姓名为关系码;(3)获得(客户姓名,发票编号),以客户姓名为关系码;获得与客户端合并,则发票关系数据模式如下:客户(客户号,姓名,地址,电话,信用状况,预付款,发票编号);发票(编号,日期,用户,产品,单价,数量,总金额)。4.2 视图的设计(既向特定DBMS转换)通过关系数据模式和E-R图,可以设计出如下图的视图(见下一页):4.3优化4.3.1 指出数据依赖客户关系模式内部存在如下数据依赖:客户编号-姓名 客户编号-地址客户编号-电话 客户编号-信用客户编号-预付款发票关系模式内部存在如下数据依赖:发票编号-日期 发票编号-用户发票编号-产品 发票编号-单价发票编号-数量 发票编号-总金额产品关系模式内部存在如下数据依赖:产品编号-名称 产品编号-规格产品编号-单价 产品编号-库存发票关系模式与客户关系模式存在如下数据依赖:发票.姓名-客户.姓名发票关系模式与产品关系模式存在如下数据依赖:发票.产品名称-产品.名称 发票.单价-产品.单价4.3.2 对数据进行极小化处理,并指明范式级别由此可以看出上面的三个模式中无数据冗余,另外客户关系模式中:客户编号-(姓名,地址,电话,信用,预付款),其它数据无依赖,所以客户关系模式是1NF关系;而对于发票关系模式,可发现如下的数据依赖传递:总金额-(单价,数量) 发票编号-(单价,数量);所以发票关系模式是2NF关系;同样在产品关系模式中:产品编号-(名称,规格,单价,库存),其它数据无依赖,所以产品关系模式是1NF关系。4.3.3 提高系统效率因为对于整个系统而言更新和查询是最为频繁的,为提高效率,所以定义如下子关系:产品(编号,名称,单价,库存);发票(编号,客户,产品);客户(编号,姓名,电话,信用,预付款)。这样就可以把数据分离出来,减少查询数据量,从而题高系统的效率。5.数据库物理设计与实施5.1数据库应用的硬件、软件环境介绍5.1.1 数据库应用的硬件介绍本次目的主要是用于学习,另外由于条件的限制,所以硬件的采用如下:CPU为AMD Athlon(速龙) X4 631四核;内存为2G(DDR3 1333MHz);硬盘为500G(7200RM);主板为昂达A75T。这样使得数据库运行较为流畅。5.1.2 软件环境介绍操作系统选用目前较稳定的Windows XP中文版;数据库系统采用关系型数据库系统SQL Server 2008;由Windows XP和SQL Server 2008共同组成系统的开发环境。(1)中文操作系统Windows XP的特点:首先,操作系统采用完全图形化的用户界面。将使软件用户的培训大大简化,提高了工作效率。其次,Windows XP的设备无关性使本系统软件开发时无须固定使用设备,有利于软件的移植和硬件设备的更新换代。再次,Windows XP系统中文版支持信息交换用汉字编码字符集,完善的中文支持使二者紧密结合,构成一个功能完备的软件开发环境。(2)SQL Server 2008由微软开发,它可以随时随地的管理数据,可以将数据结构化、半结构化、和非结构化文档的数据直接存储到数据库中。同时SQL Server 2008提供了很多丰富的集成服务,包括对数据进行查询,搜索、同步、报告、以及分析等。SQL Server 2008平台愿景是使得公司可以运行他们最关键任务的应用程序,同时降低了管理数据基础设施和发送观察和信息给所有用户的成本。这个平台有以下特点:(a)可信任的使得公司可以以很高的安全性、可靠性和可扩展性来运行公司最关键任务的应用程序。(b)高效的使得公司可以降低开发和管理他们的数据基础设施的时间和成本。(c)智能的提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。5.2物理结构设计在G盘下创建一个名为manage_new的数据库,并在该数据库中创建如下的表。数据表汇总:表名功能说明发票记录客户部分信息以及产品部分信息产品记录产品全部信息客户记录客户全部信息表一:发票表:列名数据类型是否允许空编号(主键)整型否日期时间否用户字符否产品字符否单价货币否数量整型否总金额货币否表二:客户表:列名数据类型是否允许空编号(主键)整型否姓名字符否地址字符否电话整型否信用字符否预付款整型否表三:产品表:列名数据类型是否允许空编号(主键)整型否名称字符否规格字符否单价货币否库存整型否5.3索引的设计为了保证效率和查询的便捷性,因此在每个表中创建两个非聚集索引。5.3.1 产品表的索引创建:在产品表中的查询主要以编号和名称为主,所以创建编号和名称的索引。USE manage_newCREATE INDEX IX_pro_idON 产品(编号)CREATE INDEX IX_pro_nameON 产品(名称) 5.3.2 发票表索引创建:在发票表中的查询主要以编号和用户为主,所以创建编号和用户的索引。USE manage_newCREATE INDEX IX_Bill_idON 发票(编号)CREATE INDEX IX_Bill_ClientnameON 发票(用户)5.3.3 客户表索引创建:在产品表中的查询主要以编号和姓名为主,所以创建编号和姓名的索引。USE manage_newCREATE INDEX IX_Client_idON 用户信息(编号)CREATE INDEX IX_Client_nameON 用户信息(姓名)5.4建立数据库5.4.1 创建数据库CREATE DATABASE manage_newON PRIMARY (Name=manage_new_data,Filename=G:manage_new.mdf,Size=8MB,Maxsize=unlimited,Filegrowth=10%)LOG ON(Name=manage_new_log,Filename=G:manage_new.ldf,Size=3MB,Maxsize=50MB,Filegrowth=2MB)5.4.2 创建数据表use managegocreate table 用户信息(编号 int identity primary key not null,姓名 varchar(50) not null,地址 varchar(100) not null,电话 int not null,信用 char(10) not null,预付款 int not null)gocreate table 产品(编号 int identity primary key not null,名称 varchar(50) not null,规格 varchar(100) not null,单价 decimal(18,2) not null,库存 int not null)gocreate table 发票(编号 int identity primary key not null,用户 varchar(50) not null,日期 datetime not null,产品 varchar(5) not null,单价 decimal not null,数量 int not null,金额 decimal not null)5.5加载测试数据(1)向产品表中加载测试数据use managegoinsert into 产品(名称,规格,单价,库存) values(联想 G580A-ITH,系列: IdeaPad G580 Intel Core/酷睿 i3: i3-2370M显卡型:独立机械硬盘容量: 500G内存容量: 2G,3080.00,200)insert into 产品(名称,规格,单价,库存) values(联想 G480A-ISE ,系列: 扬天V570 Intel Core/酷睿 i7: i7-3520M显卡类型:独立 机械硬盘容量: 500G 内存容量: 4G,4150.00 ,193)insert into 产品(名称,规格,单价,库存) values(联想 G400AM-ISE ,系列: 扬天V570 Intel Core/酷睿 i7: i7-3610QM显卡类型: 独立 机械硬盘容量: 500G 内存容量: 4G,4580.00,150)insert into 产品(名称,规格,单价,库存) values(联想 G505-ASI,系列: 扬天V570 AMD APU: A6-4455M显卡类型: 独立机械硬盘容量: 500G 内存容量: 4G,3150.00,292)insert into 产品(名称,规格,单价,库存) values(联想 G505-AFO ,系列: 扬天V570 AMD APU: A4-4355M 显卡类型: 独立机械硬盘容量: 500G 内存容量: 4G,2950.00,200)insert into 产品(名称,规格,单价,库存) values(联想 E49L(B960),系列: 昭阳E47 Intel Pentium/奔腾: B950显卡类型: 集成机械硬盘容量: 320G内存容量: 2G,2200.00 ,199)(2)向发票表中加载测试数据use managegoselect * from 产品select * from 用户信息select * from 发票declare i decimal(18,2),j decimal(18,2)select i=单价 from 产品 where 名称=联想 G485G-ETH set j=i*2insert into 发票(日期,用户,产品,单价,数量,总金额)values(2013-1-24,陈二,联想 G485G-ETH,2160.00,2,j)declare a decimal(18,2),b decimal(18,2)select a=单价 from 产品 where 名称=联想 G500-IFI set b=a*1insert into 发票(日期,用户,产品,单价,数量,总金额)values(2013-3-20,张三,联想 G500-IFI,2160.00,1,b)declare n decimal(18,2),m decimal(18,2)select n=单价 from 产品 where 名称=联想 G580A-ITH set m=n*1insert into 发票(日期,用户,产品,单价,数量,总金额)values(2013-4-2,孙七,联想 G580A-ITH,2160.00,1,m)declare k decimal(18,2),l decimal(18,2)select k=单价 from 产品 where 名称=联想 E49L(B960) set l=k*3insert into 发票(日期,用户,产品,单价,数量,总金额)values(2013-4-15,王五,联想 E49L(B960),2160.00,3,l)declare q decimal(18,2),p decimal(18,2)select q=单价 from 产品 where 名称=联想 G505-AFO set p=q*2insert into 发票(日期,用户,产品,单价,数量,总金额)values(2013-6-25,吴九,联想 G505-AFO ,2160.00,3,p)(3)向用户表中加载测试数据use managegoinsert into 产品(姓名,地址,电话,信用,预付款) values(刘一,钦州,良,150)insert into 产品(姓名,地址,电话,信用,预付款) values(陈二,南宁,优,200)insert into 产品(姓名,地址,电话,信用,预付款) values(张三,柳州,优,350)insert into 产品(姓名,地址,电话,信用,预付款) values(李四,桂林,差,0)insert into 产品(姓名,地址,电话,信用,预付款) values(王五,南宁,良,100)insert into 产品(姓名,地址,电话,信用,预付款) values(赵六,来宾,差,280)insert into 产品(姓名,地址,电话,信用,预付款) values(孙七,河池,差,80)insert into 产品(姓名,地址,电话,信用,预付款) values(周八,南宁,良,150)insert into 产品(姓名,地址,电话,信用,预付款) values(吴九,柳州,优,400)insert into 产品(姓名,地址,电话,信用,预付款) values(郑十,百色,良,0)insert into 产品(姓名,地址,电话,信用,预付款) values(张小小,来宾,差,500)6.数据库操作要求及实现6.1数据查询操作6.1.1 创建存储过程,并通过执行存储过程来实现查询(1)创建统计SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE total_money -统计总金额ASBEGINSET NOCOUNT ON;declare number_money int,money int,i int,j int;set money=0;set i=0;select number_money=count(总金额) from 发票;while inumber_moneybeginselect j=总金额 from 发票set money=money+jset i=i+1endselect money as 总收入ENDGOcreate procedure total_usename-统计总客户asbeginset nocount on;declare number_peaple intselect number_peaple=count(姓名) from 用户信息select number_peaple as 客户总数endgocreate procedure total_proc-统计总产品asbeginset nocount on;declare number_proc intselect number_proc=count(名称) from 产品select number_proc as 产品总数endgocreate procedure total_lib-统计总库存asbeginset nocount on;declare number_lib int,lib int,i int,j int;set lib=0;set i=0;select number_lib=count(库存) from 产品;while inumber_libbeginselect j=库存 from 产品set lib=lib+jset i=i+1endselect lib as 库存总数end(2)创建查询SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE sl_pro_table -查询产品表ASBEGINSET NOCOUNT ON;select * from 产品ENDGOcreate procedure sl_name_table-查询用户信息asbeginset nocount on;select * from 用户信息endgocreate procedure sl_bill_table-查询发票asbeginselect * from 发票endgo6.2数据更新操作SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-添加用户Create proc up_insert_user 姓名 varchar(50), 地址 varchar(100), 电话 int,信用 char(10),预付款 int,rtn varchar(50) output as declare tmp姓名 varchar(50), tmp地址 varchar(100), tmp电话 int,tmp信用 char(10),tmp预付款 intif exists(select * from 用户信息 where 姓名=姓名) begin select tmp姓名=姓名,tmp地址=地址,tmp电话=电话, tmp信用=信用, tmp预付款=预付款 from 用户信息 where 姓名=姓名 if (tmp姓名=姓名) and (tmp地址=地址) and (tmp电话=电话) and (tmp信用=信用) and (tmp预付款=预付款) ) begin set rtn=该用户已经存在 -有相同的数据,直接返回值 end else begin update 用户信息 set 姓名=姓名,地址=地址,电话=电话, 信用=信用, 预付款=预付款 where 姓名=姓名 set rtn=更新该用户信息成功 -有主键相同的数据,进行更新处理 end end else begin insert into 用户信息(姓名,地址,电话,信用,预付款) values(姓名,地址,电话 ,信用 ,预付款 ) set rtn=成功添加新用户 -没有相同的数据,进行插入处理 end go-添加产品Create proc up_insert_proc 名称 varchar(50), 规格 varchar(100), 单价 decimal(18,2), 库存 int,rtn varchar(50) output as declare tmp名称 varchar(50), tmp规格 varchar(100), tmp单价 decimal(18,2), tmp库存 intif exists(select * from 产品 where 名称=名称) begin select tmp名称=名称,tmp规格=规格,tmp单价=单价, tmp库存=库存 from 产品 where 名称=名称 if (tmp名称=名称) and (tmp规格=规格) begin set rtn=该产品已经存在 -有相同的数据,直接返回值 end else begin update 产品 set 名称=名称,规格=规格,单价=单价, 库存=库存 where 名称=名称 set rtn=更新该产品信息成功 -有主键相同的数据,进行更新处理 end end else begin insert into 产品(名称,规格,单价,库存) values(名称,规格,单价,库存) set rtn=添加产品成功 -没有相同的数据,进行插入处理 endgo-添加发票Create proc up_insert_bill 日期 datetime, 用户 varchar(50), 产品 varchar(50),单价 decimal(18,2), 数量 int,总金额 decimal(18,2),rtn varchar(50) output as declare tmp日期 datetime, tmp用户 varchar(50), tmp产品 varchar(50),tmp单价 decimal(18,2), tmp数量 int,tmp总金额 decimal(18,2) if exists(select * from 发票 where 用户=用户) begin select tmp日期=日期,tmp用户=用户,tmp产品=产品,tmp单价=单价,tmp数量=数量,tmp总金额=总金额 from 发票 where 用户=用户 if (tmp日期=日期) and (tmp用户=用户) and (tmp产品=产品) and (tmp单价=单价) and (tmp数量=数量) begin set rtn=该发票已经存在 -有相同的数据,直接返回值 end else begin declare i intselect i=库存 from 产品 where 名称=产品update 产品 set 库存=(i-数量) where 名称=产品update 发票 set 日期=日期,用户=用户,产品=产品,单价=单价,数量=数量,总金额=总金额 where 用户=用户 set rtn=更新该发票成功 -有主键相同的数据,进行更新处理 end end else begin declare j intselect j=库存 from 产品 where 名称=产品update 产品 set 库存=(j-数量) where 名称=产品insert into 发票(日期,用户,产品,单价,数量,总金额) values(日期,用户,产品,单价,数量,总金额) set rtn=添加该发票成功 -没有相同的数据,进行插入处理 end go6.3数据维护操作打开数据库企业窗体,连接到数据库后打开管理的下拉列表,找到维护计划,右键打开维护计划向导,创建一个名为manage_newPlan的维护计划(计划类型按需),下一步在维护任务选项中选择检查数据完整性、收缩数据库、备份数据库(完整)。下一步中选择数据库均选manage_new这个数据库,其它默认即可,直至完成。由此便创建了一个自动维护计划。6.4其它6.4.1 创建删除操作的存储过程SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-删除用户CREATE PROCEDURE del_use姓名 varchar(50),rtn varchar(50) outputASBEGINSET NOCOUNT ON;if(exists(select * from 用户信息 where 姓名=姓名)begindelete from 用户信息 where 姓名=姓名select rtn=删除用户成功endelsebeginselect rtn=该用户不存在endENDGO-删除产品CREATE PROCEDURE del_proc名称 varchar(50),rtn varchar(50) outputASBEGINSET NOCOUNT ON;if(exists(select * from 产品 where 名称=名称)begin delete from 用户信息 where 姓名=名称select rtn=删除产品成功endelsebeginselect rtn=该产品不存在endENDGO-删除发票CREATE PROCEDURE del_bill用户 varchar(50),rtn varchar(50) outputASBEGINSET NOCOUNT ON;if(exists(select * from 发票 where 用户=用户)begindelete from 发票 where 用户=用户select rtn=删除发票成功endelsebeginselect rtn=该发票不存在endENDGO7.收获、体会和建议课程设计报告结束。8.主要参考文献【1】赵洛育,SQL Server从入门到精通M,北京:清华大学出版社,2012.9。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!