销售订单数据库管理系统课程设计说明书(doc 19页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
X X 学院课程设计说明书
题目销售订单数据库管理系统
系(部) 计算机科学与技术系
专业(班级) 软件工程
姓名
学号
指导教师起止日期
课程设计任务书
课程名称:数据库系统课程设计
设计题目:机票预定管理系统、职工考勤管理系统、工厂数据库管理系统、超市会员管理系统、销售订单数据库管理系统(任选一题)。
已知技术参数和设计要求:
题目一:机票预定管理系统
1、某航空公司机票预订管理系统需要如下信息:
航班:航班编号、出发地、目的地、出发时间、飞行时间、飞机型号等。
飞机:飞机型号、座位数。
机票:航班编号、客户编号、价格、折扣、当前预售状态等。
客户:姓名、联系电话、身份证号码等。
业务员:姓名、工号。
2、系统功能的基本要求:
按照一定条件查询、统计符合条件的航班、机票、客户信息等。
例如航班剩余舱位数目、同一航线可选航班信息、客户购买历史等,能够模拟完成机票预订业务。
题目二:职工考勤管理系统
1、某职工管理管理系统中需要如下信息:
职工信息,包括职工编号、职工姓名、性别、年龄、职称等;
出勤记录信息,包括上班打卡时间,下班打开时间,缺勤记录等;
出差信息,包括出差起始时间、结束时间、统计总共天数等;
请假信息,包括请假开始时间,结束时间,统计请假天数等;
加班信息,包括加班开始时间、结束时间、统计加班总时间。
2、系统功能的基本要求:
按照一定条件查询、统计职工基本信息,某段时间出勤、出差、请假及加班信息。
查询加班最多或请假做多的职工,能模拟完成职工考勤过程。
题目三:工厂数据库管理系统
1、某工厂需建立一个管理数据库存储以下信息:
工厂包括厂名和厂长名。
一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
一个车间生产多种产品,产品有产品号、产品名称和价格。
一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
一个产品由多种零件组成,一种零件也可装配出多种产品。
产品与零件均存入仓库中。
厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
2、系统功能的基本要求:
按照一定条件查询、统计工人和产品等基本信息,能模拟工厂生产过程中对原材料(零件)、产品检测、库存环节的管理。
题目四:超市会员管理系统
1、某超市会员管理系统中需要如下信息:
会员:姓名、性别、年龄、联系方式、初次成为会员的时间等
会员购物信息:购买商品编号、商品名称、商品所属种类,数量,价格、购物时间等
会员返利信息:包括会员积分的情况,享受优惠的等级等
2、系统功能的基本要求:
按照一定条件查询、统计会员购买信息,例如会员某段时间的消费金额、积分情况、享受优惠的情况,按不同类别查询不同年龄段会员消费偏好,并设置参数定义畅销商品,并可以查询某段时间畅销商品的销售情况,能够模拟完成会员购物过程。
题目五:销售订单数据库管理系统
1、某销售商的订单系统需要如下信息:
每个供应商包含供应商编号、名称、地址、联系电话等信息。
每种产品包含产品号、产品名称、产品类别等信息。
每个供应商可供应多种产品,每种产品可由多个供应商供应。
客户包含编号、姓名、通信地址、电话等信息。
雇员包括编号、姓名、联系电话等信息。
订单包括订单号等信息。
一个客户可下多个订单,每个订单只能由一个客户下。
一个雇员可管理多个订单,每个订单只能由一个雇员管理。
一个订单订购多种产品,每种产品可在不同的订单中订购
2、系统功能基本要求:
按照一定条件查询、统计订单信息,例如订单量最多的客户或者产品。
能够模拟完成一个订单交易全过程。
各阶段具体要求:
1、需求分析阶段
●定义数据项的含义和取值
●定义目标系统的数据流
2、概念结构设计阶段
●画出实体模型E-R图
3、逻辑结构设计阶段
●将实体模型转化为关系模型
●给出每个关系的主关键字和函数依赖集
●分析你所设计的关系数据库模式是否属于3NF
4、物理设计阶段
●确定所有字段的名称、类型、宽度、小数位数及完整性约束
●确定数据库及表的名称及其组成
●确定索引文件和索引关键字
5、数据库安全及维护设计阶段
●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)
●为了实现复杂的数据完整性约束,设计适当的触发器
●设计一个适合的数据库备份策略
6、实施阶段
●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。
设计工作量:
(1)软件设计:完成问题陈述中所提到的所有需求功能。
(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。
工作计划:
安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;
1) 选定题目
2) 需求分析
3) 概念结构设计
4) 逻辑结构设计
5) 物理设计
6) 数据库安全及维护设计
7) 数据库上机实现
8) 答辩
指导教师签名:日期:
教研室主任签名:日期:
系主任签名:日期:
目录
一、引言
1.1 编写目的
本文档是销售订单数据库管理系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《销售订单数据库管理系统数据库设计和开发规范》。
本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。
1.2 参考资料
二、需求规约
2.1 业务描述
销售订单数据库管理系统:
1、某销售商的订单系统需要如下信息:
每个供应商包含供应商编号、名称、地址、联系电话等信息。
每种产品包含产品号、产品名称、产品类别等信息。
每个供应商可供应多种产品,每种产品可由多个供应商供应。
客户包含编号、姓名、通信地址、电话等信息。
雇员包括编号、姓名、联系电话等信息。
订单包括订单号等信息。
一个客户可下多个订单,每个订单只能由一个客户下。
一个雇员可管理多个订单,每个订单只能由一个雇员管理。
一个订单订购多种产品,每种产品可在不同的订单中订购
2、系统功能基本要求:
按照一定条件查询、统计订单信息,例如订单量最多的客户或者产品。
能够模拟完成一个订单交易全过程。
2.2 需求分析
三、数据库环境说明
3.1
四、数据库的命名规则
4.1 数据库对象命名规则
4.2 数据项编码规则
五、逻辑设计
5.1画出E-R图
5.2创建关系模型
供应商(供应商编号,供应商名称,供应商地址,联系电话)产品(产品编号,产品名称,产品类别,库存数量)
客户(客户编号,客户姓名,通信地址,联系电话)
雇员(雇员编号,姓名,联系电话)
订单(订单号,客户编号,雇员编号)
供应情况(供应商编号,产品编号,供应数量)
订购情况(产品编号,订单号,订购数量)
5.3 规范化分析
供应商表:
供应商编号→供应商名称,供应商编号→供应商地址,供应商编号→供应商联系电话供应商表中不存在部分依赖和传递依赖,所以这个表是3NF的
产品表:
产品编号→产品名称,产品编号→产品类别,产品编号→库存数量
产品表中不存在部分依赖和传递依赖,所以这个表是3NF的
客户表
客户编号→客户姓名,客户编号→通信地址,客户编号→联系电话
客户表中不存在部分依赖和传递依赖,所以这个表是3NF的
雇员表:
雇员编号→护院姓名,雇员编号→联系电话
雇员表中不存在部分依赖和传递依赖,所以这个表是3NF的
订单号→客户编号,订单号→雇员编号
订单表中不存在部分依赖和传递依赖,所以这个表是3NF的
分析知道,这个数据库中所有表都是3NF,所以这个数据库是3NF的。
六、物理设计
6.1表汇总
6.2表:
6.3视图的设计
create view P_S_E_P_number
as
select Pno,sum(P_S_num) 提供的总数
from P_S
group by Pno
create view P_O_P_E_number
as
select Pno,sum(P_O_num) 订购的总数
from P_O
group by Pno
6.4存储过程、函数及触发器的设计
存储过程
create Procedure select_C_imformation
(@Cno char(12))
as
select *
from C
where Cno=@Cno
create Procedure select_E_imformation (@Eno char(12))
as
select *
from E
where Eno=@Eno
create Procedure select_O_imformation (@Ono char(12))
as
select *
from O
where Ono=@Ono
create Procedure select_ord_sit_imformation (@Ono char(12),@Pno char(12))
as
select *
from P_O
where Ono=@Ono and Pno=@Pno
create Procedure select_P_imformation (@Pno char(12))
as
select *
from P
where Pno=@Pno
create Procedure select_P_S_imformation (@Pno char(12),@Sno char(12))
as
select *
from P_S
where Pno=@Pno and Sno=@Sno
create Procedure select_P_O_imformation (@Ono char(12),@Pno char(12))
as
select *
from P_O
where Pno=@Pno and Ono=@Ono
触发器
create trigger PO_trigger
on P_O
after update
as
begin
update P
set Pnum=Pnum+(
select P_O_num from delected)
where Pno=(select Pno from inserted) update P
set Pnum=Pnum-(
select P_O_num from inserted)
where Pno=(select Pno from inserted) end
create trigger PS_trigger
on P_S
after update
as
begin
update P
set Pnum=Pnum+(
select P_S_num from delected)
where Pno=(select Pno from inserted) update P
set Pnum=Pnum-(
select P_S_num from inserted)
where Pno=(select Pno from inserted) end
七、安全性设计
7.1 防止用户直接操作数据库的方法
USE 销售订单管理
EXEC SP_GRANTDBACCESS 'GY','GY';
GRANT SELECT,UPDATE,DELETE ON O TO GY
USE 销售订单管理
EXEC SP_GRANTDBACCESS 'CPGLY','CPGLY';
GRANT SELECT,UPDATE,DELETE ON P_S TO CPGL Y
USE 销售订单管理
EXEC sp_grantdbaccess 'laoban', 'laoban';
EXEC sp_addrolemember 'db_owner', 'laoban'
用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库。
7.2 用户帐号密码的加密方法
exec sp_addlogin 'GY','123456','销售订单管理'; //GY,雇员
exec sp_addlogin 'CPGLY','123456','销售订单管理'; //CPGL Y,产品管理员
exec sp_addlogin 'laoban','123456','销售订单管理'; //laoban,数据库拥有者对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。
此部分内容作者可以选择保留和去除。
用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。
7.3 角色与权限
确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。
每个角色拥有刚好能够完成任务的权限,不多也不少。
在应用时再为用户分配角色,则每个用户的权限
八、数据库管理与维护说明
数据库完整备份,每周日执行一次
数据库日志备份,每天每隔1个小时备份一次
数据库差异备份,每天00:00执行一次
//完整型备份
BACKUP DATABASE 销售订单管理
TO DISK = 'D:\销售订单管理.bak' WITH NOINIT;
//日志备份
BACKUP LOG 销售订单管理
TO DISK = 'D:\销售订单管理.bak' WITH NOINIT;
//差异备份
BACKUP DATABASE 销售订单管理
TO DISK = 'D:\销售订单管理.bak' WITH NOINIT DIFFERENTIAL;。