销售订单数据库管理系统设计课程论文.doc_第1页
销售订单数据库管理系统设计课程论文.doc_第2页
销售订单数据库管理系统设计课程论文.doc_第3页
销售订单数据库管理系统设计课程论文.doc_第4页
销售订单数据库管理系统设计课程论文.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书 题目 销售订单数据库管理系统 系(部)计算机系 专业(班级)软件 5 班 姓名 学号 指导教师 起止日期 2013.05.272013.06.08 课程设计任务书 课程名称:课程名称:数据库系统原理课程设计 设计题目:设计题目:销售订单数据库管理系统 题目:销售订单数据库管理系统 1、某销售商的订单系统需要如下信息: 每个供应商包含供应商编号、名称、地址、联系电话等信息。 每种产品包含产品号、产品名称、产品类别等信息。 每个供应商可供应多种产品,每种产品可由多个供应商供应。 客户包含编号、姓名、通信地址、电话等信息。 雇员包括编号、姓名、联系电话等信息。 订单包括订单号等信息。 一个客户可下多个订单,每个订单只能由一个客户下。 一个雇员可管理多个订单,每个订单只能由一个雇员管理。 一个订单订购多种产品,每种产品可在不同的订单中订购 2、系统功能基本要求: 按照一定条件查询、统计订单信息,例如订单量最多的客户或者产品。能够模拟完成一 个订单交易全过程。 各阶段具体要求:各阶段具体要求: 1、需求分析阶段 定义数据项的含义和取值 定义目标系统的数据流 2、概念结构设计阶段 画出实体模型 e-r 图 3、逻辑结构设计阶段 将实体模型转化为关系模型 给出每个关系的主关键字和函数依赖集 分析你所设计的关系数据库模式是否属于 3nf 4、物理设计阶段 确定所有字段的名称、类型、宽度、小数位数及完整性约束 确定数据库及表的名称及其组成 确定索引文件和索引关键字 5、数据库安全及维护设计阶段 设计一个适合的数据库安全策略(用户身份认证、访问权限、视图) 为了实现复杂的数据完整性约束,设计适当的触发器 设计一个适合的数据库备份策略 6、实施阶段 要求所有操作必须在查询分析器中用 sql 语句或系统存储过程完成。 设计工作量:设计工作量: (1)软件设计:完成问题陈述中所提到的所有需求功能。 (2)论文:要求撰写不少于 3000 个文字的文档,详细说明各阶段具体要求。 工作计划:工作计划: 安排两周时间进行课程设计,软件开发步骤如下,第一周完成 14,第二周完成 58, 论文同步进行; 1)选定题目 2)需求分析 3)概念结构设计 4)逻辑结构设计 5)物理设计 6)数据库安全及维护设计 7)数据库上机实现 8)答辩 班级日期节次地点内容 指导老师 15 周周四9-12 节致远楼 1201 布置任务、上机调 试 15 周周五9-12 节致远楼 1201上机调试 15 周周六9-12 节致远楼 1201上机调试 16 周周一9-12 节致远楼 1401上机调试 16 周周二9-12 节致远楼 1401上机调试 16 周周三9-12 节致远楼 1401上机调试 16 周周四9-12 节致远楼 1201上机调试 16 周周五9-12 节致远楼 1201上机调试 16 周周六5-8 节致远楼 1404上机调试 11 软件 5 班 16 周周六9-12 节致远楼 1201答辩 曾俊勇 注意事项注意事项 提交文档提交文档 长沙学院课程设计任务书(每学生 1 份) 长沙学院课程设计论文(每学生 1 份) 长沙学院课程设计鉴定表(每学生 1 份) 指导教师签名: 日期: 教研室主任签名: 日期: 系主任签名: 日期: 长沙学院课程设计鉴定表 姓名学号专业软件工程班级 设计题目销售订单数据库管理系统指导教师 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级: 答辩小组长签名: 日期: 教研室意见: 教研室主任签名: 日期: 系(部)意见: 系主任签名: 日期: 说明 课程设计成绩分“优秀” 、 “良好” 、 “及格” 、 “不及格”四类; 目 录 一、引言一、引言 6 1.1编写目的6 1.2参考资料6 二二 需求规约需求规约 7 2.1 业务描述.7 2.2 需求分析.7 三、三、数据库环境说明数据库环境说明8 四、四、数据库的命名规则数据库的命名规则9 4.1 数据库对象命名规则9 4.2 数据项编码规则.9 五、五、逻辑设计逻辑设计10 5.1 er 图10 5.2 关系模型.11 六、六、物理设计物理设计12 6.1 表汇总.12 6.2 表1: order_table表( 订单表)12 6.3 表2: accommdate _relation表( 供应关系表)13 6.4 表3: send_for表( 订购表) .13 6.5 表4: supplier表( 供应商表) .14 6.6 表5: product表( 产品表).14 6.7 表6: employee表( 雇员表) .15 6.8 表7: client表( 客户表).15 6.9 视图的设计.16 6.10 存储过程、查询及触发器的设计.16 七、安全性设计七、安全性设计 20 7.1防止用户直接操作数据库的方法20 7.2 用户帐号密码的加密方法.20 7.3 角色与权限.20 八、数据库管理与维护说明八、数据库管理与维护说明 20 九、测试九、测试 21 9.1 查询订单数最多的客户的姓名.21 9.2 插入产品订购信息.21 9.3 触发器测试.22 十、小结十、小结 24 一、引言 1.1 编写目的编写目的 此次课程设计是销售订单数据库管理系统。主要是用数据库语言完成按照一定条件查询、统计订 单信息,例如订单量最多的客户或者产品。能够模拟完成一个订单交易全过程。还有模仿现实中的销 售订单管理和产品存储的一系列过程。销售订单数据库管理系统设计编写数据库设计文档的目的是: 明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需 求人员、系统设计人员、开发人员、测试人员。设计该数据库的目的是为了能够模拟完成一次订单销 售流程。为了在未来学生能够更好的适应社会的软件应用和在学校时学习数据库语言的更好巩固,也 是想要了解学生在校学习数据库的程度。为了更好的对学生学习和在未来的发展。 1.2 参考资料参考资料 资料名称作者文件编号、版 本 数据库系统概 论 王珊、萨师煊2006 年 5 月第 4 版 数据库设计入 门经典 鲍威尔2007 年 3 月第 1 版 数据库原理克罗恩科2005 年 6 月第 1 版 二 需求规约 2.12.1 业务描述业务描述 销售订单数据库管理系统设计需求要满足客户在下订单完成交易全过程,有客户下订单、退订单、 插入新的客户、增加新产品和供应商等,还有对产品客户雇员等变动的保存,还有一些对产品、供应 商和雇员的某些查询如:查询姓名为“张斌”客户的订单的产品名称。按照一定条件查询、统计订单 信息,例如订单量最多的客户或者产品。能够模拟完成一个订单交易全过程。客户在下订单后,能够 判断产品库存是否足够,足够则订单成功,库存减少否则显示订单不成功,供应商提供产品。 2.22.2 需求分析需求分析 销售订单数据库管理系统: (1)能够完成插入产品,供应记录,订购记录等等这些信息; (2)能够模拟完成一次订单销售的过程,此外,在一个完整的订单销售流程中,本数据库系 统还提供查询某供应商供应的产品信息,询某产品信息,查询某客户信息,查询某订单订购的产品的 信息; (3)对于客户而言,还提供了查询订单最多的客户的功能。 总的来说,本数据库系统能够达到模拟完成一次订单销售流程的要求。在本销售订单数据库管理 系统中,有一些限制性条件,比如一个客户可以下多个订单,但一个订单只能由一个客户下,一个订 单可以订购多种产品,每种产品可被不同订单订购等等,这些限制条件的加入能够使本数据库管理系 统的功能更加完善,能够满足更高的要求。 三、三、数据库环境说明数据库环境说明 完成销售订单数据库管理系统的课程设计需要的数据库环境有以下说明: 表 3.1 数据库实 例 数据库系 统 数据库部 署环境 数据库设 计工具 数据库存放位 置 说明 销售订单 数据库管 理系统 sql server 2008 windows xp sql server存放位置,绝 对路径/相对路 径 d:program 完整的销售流程 表 3.2 数据库实 例 数据库系 统 数据库部 署环境 数据库设 计工具 数据库存放位 置 说明 销售订单 数据库管 理系统 sql server 2008 windows xp sql server存放位置,绝 对路径/相对路 径 d:program 查询订单最多的客户、 查询价格最高的产品 四、四、数据库的命名规则数据库的命名规则 4.1 数据库对象命名规则数据库对象命名规则 数据库对象命名规则备注 表s 功能描述字符串例如:order_table 订单表 视图view_功能描述字符串例如:view_product 产品视图 触发器insert_功能描述字符串例如:insert_po 更改库存触发器 存储过程procedure_功能描述字符串例如:pro_insertsuppliers 存储过程 4.24.2 数据项编码规则数据项编码规则 数据项命名规则数据类型长度范围备注 供应商 编号 自动增长定长整型6 位无 产品号自动增长定长整型6 位无 订单号自动增长定长整型6 位无 雇员号自动增长定长整型6 位无 客户号自动增长定长整型6 位无 五、五、逻辑设计逻辑设计 5.15.1 erer 图图 雇 员 供应商 产 品 客 户 户 订 单 订 购 下订单 管理 供应 雇员编号 商编号 姓名 联系电话 号 地址 姓名通信地址 号 客户编号 号 联系电话 号 产品名称 产品类别 号 售价 产品编号 号 库存 雇员编号 订单编号 号 客户编号 号 日期 订单编号 号 数量 工资 产品编号 号 产品编号 号 出厂价号 联系电话 供应商编号 号 名称 供应商编号 号 地址 总量 图 5.1 销售订单系统的 er 图 5.25.2 关系模型关系模型 供应商(供应商编号,名称,地址,联系电话) 产品(产品编号,产品名称,产品类别,售价,库存) 供应关系(供应商编号,产品编号,总量,出厂价) 订购(产品编号,订单编号,数量) 客户(客户编号,姓名,通信地址,电话,性别) 订单(订单编号,客户编号,雇员编号,下单日期) 雇员(雇员编号,姓名,联系电话,工资,性别) 注:有下划线 的表示该属性为主键,下划波浪线 的为外键 六、六、物理设计物理设计 本次销售订单系统的物理设计主要是系统的表的设计,本次设计所用到的表有 7 个,有产品表、 供应商表、雇员表、客户表、订单表、订购表和供应关系表。下面有对 7 个表的详细列举。 6.16.1 表汇总表汇总 表名功能说明 表 supplier供应商表,存储供应商的编号等信息 表 product产品表,存储产品的编号、数量等信息 表 accommdate_relation 供应关系表,存储供应商所供应的产品对应信息 表 order_table订单表,存储订单的编号、日期等信息 表 send_for订购表,存储产品订购的对应信息 表 employee雇员表,存储雇员的编号等信息 表 client客户表,存储客户的编号等信息 6.2 表1: order_table 表( 订单表) 表名 订单表(order_table) 数据库用户 sa 主键o_no 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 o_noint整型主键not null订单编号 c_no int整型外键not null客户编号 e_noint整型外键not null雇员编号 datedate日期型下单日期 sql脚本-订单表 create table order_table ( o_no int identity(1,1) primary key, c_noint not null, e_no int not null, data date foreign key (c_no) references client(c_no), foreign key (e_no) references employee(e_no), ); 6.3 表2: accommdate _relation 表( 供应关系表) 表名 供应关系表(accommdate _relation) 数据库用户sa 主键无 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 s_nochar(10)字符型外键not null供应商编号 p_nochar(10)字符型外键not null产品编号 p_totalint整型总量 p_ pricefloat(3)浮点型出厂价 sql 脚本-供应关系表 create table accommdate_relation ( p_noint not null, s_no int not null, p_total int, p_price float(3), ); 6.4 表3: send_for 表( 订购表) 表名订购表(send_for) 数据库用户sa 主键无 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 o_noint整型主键not null订单编号 s_noint整型外键not null产品编号 numberchar(10)字符型数量 sql 脚本-订购表 create table send_for ( o_no not null, int not null, p_noint not null, number char(10), foreign key (o_no) references order_table(o_no), foreign key (p_no) references product(p_no) ); 6.5 表4: supplier 表( 供应商表) 表名 供应商表(supplier) 数据库用户sa 主键无 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 s_no int 整型主键not null供应商编号 s_namechar(20)字符型not null名称 s_addresschar(20)字符型地址 s_telephonechar(10)字符型联系电话 sql脚本-供应商表 create table supplier -供应商表 ( s_no int identity(1,1) primary key, -供应商编号 s_name char(30) not null, -姓名 s_address char(20), -地址 s_telephone char(10); -电话 s_name char(10) -供应产品名称 ); 6.6 表5: product 表( 产品表) 表名 产品表(product) 数据库用户sa 主键p_no 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 p_noint整型主键not null产品编号 p_name char(20)字符型not null产品名称 p _categorychar(20)字符型产品类别 p_reserveint整型库存 p_price float(3)浮点型售价 sql 脚本-产品表 create table product ( p_no int identity(1,1) primary key, -产品编号 p_name char(20) not null, -产品名称 p_category char(20), - 产品类别 p_reserve int, - 库存 p_price float - 售价 ); 6.7 表6: employee 表( 雇员表) 表名雇员表(employee) 数据库用户sa 主键e_no 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 e_noint整型主键not null雇员编号 e_namechar(10)字符型not null姓名 e_wagefloat(3)浮点型工资 e_telchar(20)字符型联系电话 e-sexchar(10)字符型性别 - 雇员表 create table employee ( e_no int identity(1,1) primary key, e_name char(10) not null, e_wage float(3), c_sex char(10), e_telephone char(20) ); 6.8 表7: client 表( 客户表) 表名 客户表(client) 数据库用户sa 主键 c_no 其他排序字段无 索引字段无 字段名字段类型类型说明约束检查是否为空字段含义 clientint整型主键 c_nochar(10)字符型not null客户编号 c_name char(10)字符型not null姓名 c_addresschar(30)字符型通信地址 c_ telephonechar(20)字符型电话 c_sexchar(10)字符型性别 sql 脚本-客户表 create table client ( c_no int identity(1,1) primary key, c_name char(10) not null, c_sex char(10), c_address char(30), c_telephone char(20), ); 6.9 视图的设计视图的设计 (1)建立一张雇员信息的视图。目的:屏蔽雇员的工资信息。功能:能够向管理员提供简明,直 接的雇员信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的雇员信息。 -建立一张雇员信息的视图 create view table_employee as select e_name,e_wage from employee; select * from table_employee (2)建立一张产品信息的视图。目的:屏蔽产品的出厂价信息。功能:能够向管理员提供简明, 直接的产品信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的产品信息。 -建立一张产品信息的视图 create view table_product as select p_name, p_reserve,p_price from product; select * from table_product 6.106.10 存储过程、存储过程、查询查询及触发器的设计及触发器的设计 1 存储过程 (1)插入产品订购通过存储结构,把把产品订购信息写入到表中存储。 -插入产品订购信息 create procedure procedure_insert_product -插入产品信息 p_name char(20),p_category char(20),p_reserve int,p_price float as if exists(select * from product where p_name=p_name)-若有相同产品只更新库存 量 update product set p_reserve=p_reserve+p_reserve else insert into product(p_name,p_category,p_reserve,p_price) values(p_name,p_category,p_reserve,p_price); exec procedure_insert_product 雨伞,日用品,50,30 select * from product (2)完整的销售流程中就需要存储过程,把需要存储的订单存储入表中,在进行下一步进行查看库存 量和最终交易。 -完整的销售流程 create procedure procedure_order o_no int,p_no int,c_no int,e_no int,number int as insert into send_for(o_no,p_no,number) values(o_no,p_no,number); if exists(select * from send_for where o_no=o_no)-若有重复订单,则不予下单 print该订单已有客户下了,请您新建订单 else if exists(select * from product where p_reserve=all ( select e_wage from employee ); (6)查询库存最多产品编号、名称和价格 select p_no,p_name,p_price from product where p_price =all ( select p_price from product); (7)查询库存最多产品名称和库存 select p_name,p_reserve from product where p_reserve = ( select max(p_reserve) from product); (8)查询客户订单数的降序排列 select c_no,count(o_no) from order_table group by c_no order by count(o_no) desc (9)查询客户订单数最多的客户编号 create view view_order as select c_no,count(o_no) num from order_table group by c_no; select c_no,num from view_order where num=( select max(num) from view_order ); 七、安全性设计 7.1防止用户直接操作数据库的方法防止用户直接操作数据库的方法 (1)用户标识和鉴定 用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识 自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。 (2)存取控制 数据库安全性所关心的主要是 dbms 的存取控制机制。数据库安全最重要的一点就是确保只授权给 由资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的 存取控制机实现。 (3)数据加密 数据加密是防止数据库中数据在存储和传输中关系的有效字段。加密的基本思想是根据一定的 算法讲原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。 7.27.2 用户帐号密码的加密方法用户帐号密码的加密方法 为用户帐号密码加密,需要用程序实现,对用户的帐号密码实行加密算法,并在后台实现转换。 7.37.3 角色与权限角色与权限 角色可以访问的表与列操作权限 ss可访问所有表完全控制权限 admin可访问所有表部分的控制权限 employee_manage可访问部分表部分的操作权限 八、数据库管理与维护说明八、数据库管理与维护说明 数据库维护计划设定完成之后,如果 sql server 代理是启动的,那么在“管理sql server 代 理作业“下面会自动生成若干自动维护的工作条目,并且每个条目都有相应的计划表,这个才是正 常的。系统每天凌晨自动更新系统,删除未销卡记录。数据库维护计划非常强大,里面有各式各样对 数据库的维护/备份操作,每样都可以设定不同的 schedule,当然,每设定一项,在 job 里面就会自动 多出来一条。sql server agent 服务的正常运作是这一切的基础。系统每天凌晨更新后,自动备份数 据库。 九、测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论