
电脑销售系统课程设计-SQL课程设计.doc
21页《数据库系统》课程设计说明书设计题目:_ 电脑销售系统课程设计__目 录 1 引 言 11.1课程设计选题 11.2课程设计的目的 11.3本选题的设计背景 12 系统分析与设计 12.1 系统的需求分析 12.1.1 功能需求 1性能需求 2操作要求 2数据流图表示 22.2 系统的开发运行环境 32.3 系统总体设计 33 数据库设计 33.1 数据库概念结构 33.1.1 局部E-R图 43.1.2 实体间联系 63.2 数据库逻辑结构 63.2.1 关系模型 63.2.2 关系模型的优化 73.2.3 视图的设计 73.3 数据库的实现 8表 83.3.2 视图 93.3.3 安全性设计 93.3.4 完整性设计 103.3.5 索引设计 103.3.6 整个库的存储方式 124 主要模块的详细设计与实现 124.1 登录模块 124.2 销售员身份模块 134.3 人事部身份模块 144.4 管理员身份模块 164.5 密码修改模块 17结 论 18参 考 文 献 191 引 言1.1课程设计选题《电脑销售系统》1.2课程设计的目的通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术和的使用;应用SQL SERVER2008开发工具实践了《电脑销售系统》的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力1.3本选题的设计背景现在笔记本电脑越来越普及,许多大学生、白领等都拥有笔记本或购买笔记本的打算所以,笔记本的市场需求量是很大的而对于一个电脑的大商场,会有多家电脑品牌的若干机型售价、库存、进货、销售、员工和客户等这些信息量庞大而繁琐如果单靠人工记录和管理这些信息,不仅工作量大,而且效率低下利用DBMS设计平台,设计出符合商场实际情况的电脑销售数据库系统,能够有效、快速、简单、准确的管理这些信息2 系统分析与设计2.1 系统的需求分析需求分析是数据库的起点,为以后的具体设计做准备需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用经验证明,由于设计要求的不正确或误解,知道系统测试阶段才能发现很多错误,则纠正起来要付出很大的代价因此,必须高度重视系统的需求分析 功能需求作为一个电脑商场的电脑销售系统,必须对商场的库存、销售情况作出具体的统计,库房管理人员能够对仓库里的库存信息进行修改更新,销售人员能够查询电脑的库存、进价、售价,能够增添销售信息性能需求对库房的管理和对电脑信息的查询,不同的角色应该有不同的权限,数据库系统要设置不同的用户和角色并给予不同的权限。
数据库系统的数据要有一定的恢复功能,这可以通过日志文件来实现操作要求对于数据库中的数据信息,要有一定的约束,各数据表中的关联数据要相对一致,防止混乱不清的数据出现信息修改要及时、准确数据流图表示⑴当仓库新进入一批货物或出库一些货物时图1:数据流图1采购员审查核实新进电脑数据更新对应库存增加销售员审查核实卖掉电脑数据更新对应库存减少⑵当售出电脑时,售货员需要填写销售信息并添加客户信息图2:数据流图2销售员整理分类填写销售信息增加销售、客户记录提交信息2.2 系统的开发运行环境本系统开发平台: VB6.0+ sql server 2008本系统采用架构: 主从式结构的数据库系统本系统运行环境: windows xp 或以上版本,安装有sql sever2.3 系统总体设计数据库管理电脑信息管理部门管理员工信息管理顾客信息管理仓库管理图3:系统总体设计3 数据库设计3.1 数据库概念结构概念结构设计是把用户的信息要求统一到一个整体逻辑结构中,此结构能够表达用户的要求,是一个独立于任何DBMS软件和硬件的概念模型 数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。
概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型 局部E-R图⑴部门:由部门号、部门名、负责人、备注组成部门部门号部门名负责人备注图4:部门⑵仓库:由仓库号、负责人、备注组成仓库仓库号负责人备注图5:仓库⑶客户:由客户号、姓名、年龄、性别、住址、联系方式组成客户客户号姓名年龄性别住址联系方式图6:客户⑷员工:由员工号、姓名、性别、年龄、职位、所属部门、家庭地址、联系组成员工姓名性别年龄职位所属部门员工号家庭地址联系图7:员工⑸电脑:由序列号、品牌、型号、进价、售价、库存、备注组成电脑序列号品牌型号进价售价库存备注图8:电脑 实体间联系 员工属于部门,有员工管理仓库库,电脑存放于仓库,销售需要联系客户、员工、电脑三个实体,同时销售还需要包含销售记录号、销售额、日期的属性客户员工部门仓库电脑属于存放销售管理销售记录号销售额日期图9:实体间联系3.2 数据库逻辑结构 关系模型根据系统的概念结构分析,得出其关系模式如下:部门(部门号,部门名,负责人,备注)仓库(仓库号,负责人,备注)员工(员工号,姓名,性别,年龄,职位,所属部门,家庭住址,联系)客户(客户号,姓名,性别,年龄,住址,联系方式)电脑(序列号,品牌,型号,进价,售价,库存,备注)存放(序列号,仓库号)属于(员工号,部门号)管理(仓库号,员工号)销售(销售记录号,员工号,客户号,序列号,销售额,日期) 关系模型的优化由于上述关系模式有些有相同的码,可以进行合并,所以要进行优化,优化后结果如下:部门(部门号,部门名,负责人,备注)仓库(仓库号,员工号,负责人,备注)员工(员工号,部门号,姓名,性别,年龄,职位,所属部门,家庭住址,联系)客户(客户号,姓名,性别,年龄,住址,联系方式)电脑(序列号,仓库号,品牌,型号,进价,售价,库存,备注)销售(销售记录号,员工号,客户号,序列号,销售额,日期)其中,部门号、仓库号、员工号、客户号、序列号分别为五个实体的主码,销售记录号是销售联系的主码。
这些主码在表中具有唯一性,不可为空部门的备注、仓库的备注有则写之,无则不写对于客户的信息,客户号、姓名和联系方式不可少,以方便售后但是性别、年龄和住址根据用户要求可为空 视图的设计角色权限销售员Ø 查询商品的情况Ø 查询商品存储情况Ø 对销售数据进行查询更新统计采购员Ø 对供应商数据进行查询更新Ø 对采购数据进行查询更新统计顾客Ø 查询商品基本信息管理员Ø 维护(插入,更新和删除)营业员,采购员数据Ø 查询所有的数据表1:视图的设计视图并不是数据库中真是存在的表,是对数据库中基本表的查询、筛选所得,视图的建立是为了方便地满足不同用户,为不同用户创建不同的视图,可以根据他们不同的身份职责看到不同的信息同时减少了数据库的数据冗余度销售员可看到的视图中,要包含电脑的基本信息,包括序列号、仓库号、品牌、型号、售价、库存、备注;而且,而作为顾客,可以查询到电脑的序列号、品牌和型号,还有对应负责的销售员的员工号,需要其他信息需要咨询销售员;作为采购人员,需要查询到电脑的品牌、型号和对应的库存、进价、售价;而作为管理层和人事管理可以查询到员工的基本信息,包括员工号、部门号、姓名、性别、年龄、职位、所属部门、家庭住址和联系。
3.3 数据库的实现表根据优化后的关系模式,创建数据库Computer-Sale,并以此创建出6个表,图10:创建表表中各数据项的定义要符合前面的需求分析,并根据实际情况建立约束,其中Laptop表建立的效果如下图所示:图11:表Laptop 视图根据前面的视图设计,分别建立相应的视图,如下图所示共建立了4个视图:图12:建视图其中View_Consumer视图为顾客可见视图,效果如下图所示:图13:视图View_Conxumer 安全性设计根据应用的要求,对顾客、销售员、管理员等分别创建不同的用户和角色,并赋予它们不同的权限,以达到数据库的安全使用同时,对于数据库中的数据,要设定约束,利用存储过程或触发器来进一步完善数据库的安全性再有,数据库的存储文件可以存储在不同的存储设备上,从而保证数据库的安全性使得数据库有一定的备份和恢复能力 完整性设计数据库的完整性包括实体完整性、参照完整性和用户自定义完整性实体完整性,就是每一个实体都有它的唯一主键,这在逻辑结构设计中已经指出参照完整性是指一个表中的一个属性的值要参照另外一个表中的一个属性列的值,即设置外键,如下图: 图14:建外键Trade中的cnum、lnum、wnum要分别参照Consumer、Laptop和Worker表。
用户自定义完整性是根据实际情况而设置约束,如职工的年龄在18到55之间,性别只能取难男和女两个值, 图15:建约束 索引设计创建索引可以大大提高系统的性能第一,通过创建唯一性索引,可以保证每一行数据的唯一性第二,可以大大加快数据的检索速度,这也是所以的最主要原因第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能如图对Laptop表依品牌做索引,对Trade表依销售员员工号做索引: 图16:建索引存储过程、触发器的设计存储过程是存储在SQL Server数据库中的一种变异对象创建合理的存储过程能具有以下优点:模块化的程序设计、高效率的执行、减少网络流量、可以作为安全机制使用而触发器是一种特殊的存储过程,当它,满足了一定的条件后会自动执行如下图建立一个查询的存储过程并执行: 图17:存储过程的建立和执行创建触发器的代码如下所示:create trigger InsertTradeon Tradefor insertasprint('您新添加了一次新的销售记录!') 整个库的存储方式整个数据库的数据文件有两部分组成,一个是这里有两个文件,Computer-Sale.mdf和C。
