据数库系统设计订单销售数据库管理系统.docx

上传人:b****8 文档编号:9527945 上传时间:2023-02-05 格式:DOCX 页数:28 大小:65.27KB
下载 相关 举报
据数库系统设计订单销售数据库管理系统.docx_第1页
第1页 / 共28页
据数库系统设计订单销售数据库管理系统.docx_第2页
第2页 / 共28页
据数库系统设计订单销售数据库管理系统.docx_第3页
第3页 / 共28页
据数库系统设计订单销售数据库管理系统.docx_第4页
第4页 / 共28页
据数库系统设计订单销售数据库管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

据数库系统设计订单销售数据库管理系统.docx

《据数库系统设计订单销售数据库管理系统.docx》由会员分享,可在线阅读,更多相关《据数库系统设计订单销售数据库管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

据数库系统设计订单销售数据库管理系统.docx

据数库系统设计订单销售数据库管理系统

 

长沙学院

 

课程设计说明书

题目销售订单数据库管理系统

系(部)__________________

专业(班级)________

姓名______

学号__________

指导教师______

起止日期_______________________

课程设计任务书

课程名称:

数据库系统原理

设计题目:

销售订单数据库管理系统

1、某销售商的订单系统需要如下信息:

每个供应商包含供应商编号、名称、地址、联系电话等信息。

每种产品包含产品号、产品名称、产品类别等信息。

每个供应商可供应多种产品,每种产品可由多个供应商供应。

客户包含编号、姓名、通信地址、电话等信息。

雇员包括编号、姓名、联系电话等信息。

订单包括订单号等信息。

一个客户可下多个订单,每个订单只能由一个客户下。

一个雇员可管理多个订单,每个订单只能由一个雇员管理。

一个订单订购多种产品,每种产品可在不同的订单中订购

2、系统功能基本要求:

按照一定条件查询、统计订单信息,例如订单量最多的客户或者产品。

能够模拟完成一个订单交易全过程。

设计工作量:

40课时

工作计划:

班级

周次

节次

教室

内容

指导教师

10软件7班

15周周一

1-4

XXX

布置任务

XXX

15周周三

1-4

XXX

上机

15周周四

9-12

XXX

答疑

15周周五

9-12

XXX

答疑

15周周六

1-4

XXX

上机

16周周一

9-12

XXX

答疑

16周周二

1-2

XXX

上机

16周周三

1-2

XXX

上机

16周周四

9-12

XXX

答疑

16周周五

1-4

XXX

上机

16周周六

1-4

XXX

答辩

 

指导教师签名:

         日期:

        

教研室主任签名:

       日期:

        

系主任签名:

         日期:

      

长沙学院课程设计鉴定表

姓名

学号

专业

班级

设计题目

指导教师

指导教师意见:

 

评定等级:

教师签名:

日期:

答辩小组意见:

 

评定等级:

     答辩小组长签名:

     日期:

    

教研室意见:

 

教研室主任签名:

日期:

 

系(部)意见:

 

系主任签名:

        日期:

     

说明

课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

目录

一、引言5

1.1编写目的5

1.2参考资料5

二、需求规约6

2.1业务描述6

2.2需求分析6

三、数据库环境说明7

四、数据库的命名规则7

4.1数据库对象命名规则7

4.2数据项编码规则7

五、逻辑设计8

5.1ER图8

5.2关系模型8

六、物理设计9

6.1表汇总9

6.2表[1]:

[Suppliers表](供应商表)9

6.3表[2]:

[Product表](产品表)10

6.4表[3]:

[SP表](供应商产品供应表)10

6.5表[4]:

[Orders表](订单表)11

6.6表[5]:

[PO表](产品订购表)12

6.7表[6]:

[Employee表](雇员表)12

6.8表[7]:

[Customer表](客户表)13

6.9视图的设计13

6.10存储过程的设计14

6.11触发器的设计18

6.12函数的设计18

七、安全性设计19

7.1防止用户直接操作数据库的方法19

7.1.1用户标识和鉴定19

7.1.2存取控制19

7.1.3数据加密19

7.2用户帐号密码的加密方法19

7.3角色与权限19

八、数据库管理与维护说明20

九、总结21

一、引言

1.1编写目的

本文档是销售订单数据库管理系统设计文档的组成部分,编写数据库设计文档的目的是:

明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《SQLSERVER2008数据库设计和开发规范》。

本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

设计该数据库的目的是为了能够模拟完成一次订单销售流程。

1.2参考资料

资料名称

作者

文件编号、版本

《数据库系统概论》

王珊、萨师煊

2006年5月第4版

《数据库设计入门经典》

鲍威尔

2007年3月第1版

《数据库原理》

克罗恩科

2005年6月第1版

二、需求规约

2.1业务描述

销售订单数据库管理系统的总目标是:

在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的销售订单数据库管理系统,实现订单销售的自动化的计算机系统,为商品供应商提供准确、精细、迅速的订单销售信息。

具体功能为供应商供应产品、请假的申请,出差的记录输入到系统中,系统将为员工记录这些信息。

 

2.2需求分析

本销售订单数据库管理系统,能够完成插入产品,供应记录,订购记录等等这些信息,以能够模拟完成一次订单销售的过程,此外,在一个完整的订单销售流程中,本数据库系统还提供查询某供应商供应的产品信息,询某产品信息,查询某客户信息,查询某订单订购的产品的信息。

对于客户而言,还提供了查询订单最多的客户的功能。

总的来说,本数据库系统能够达到模拟完成一次订单销售流程的要求。

在本销售订单数据库管理系统中,有一些限制性条件,比如一个客户可以下多个订单,但一个订单只能由一个客户下,一个订单可以订购多种产品,每种产品可被不同订单订购等等,这些限制条件的加入能够使本数据库管理系统的功能更加完善,能够满足更高的要求。

三、数据库环境说明

数据库实例

数据库系统

数据库部署环境

数据库设计工具

数据库存放位置

说明

销售订单数据库管理系统

SqlServer2008

WindowsXP

SqlServer

存放位置,绝对路径/相对路径

用于订单销售管理

 

四、数据库的命名规则

4.1数据库对象命名规则

数据库对象

命名规则

备注

S功能描述字符串

例如:

Suppliers供应商表

视图

view_功能描述字符串

例如:

view_Product产品视图

触发器

insert_功能描述字符串

例如:

insert_PO更改库存触发器

存储过程

Procedure_功能描述字符串

例如:

pro_insertSuppliers存储过程

4.2数据项编码规则

数据项

命名规则

数据类型

长度范围

备注

供应商编号

两位整数序号(00~99)

定长字符串

12位

产品号

两位整数序号

(00~99)

定长字符串

12位

订单号

两位整数序号(00~99)

定长字符串

12位

雇员号

两位整数序号(00~99)

定长字符串

12位

客户号

两位整数序号(00~99)

定长字符串

12位

五、逻辑设计

5.1ER图

5.2关系模型

供应商(供应商编号,名称,地址,联系电话)

产品(产品编号,产品名称,产品类别,售价,出厂价,存货量)

供应(供应商编号,产品编号)

订购(产品编号,订单编号,数量)

客户(客户编号,姓名,通信地址,电话)

订单(订单编号,日期,客户编号,雇员编号)

雇员(雇员编号,姓名,联系电话,工资)

注:

有下划线的表示该属性为主码。

六、物理设计

6.1表汇总

表名

功能说明

表Suppliers

供应商表,存储供应商的编号等信息

表Product

产品表,存储产品的编号、数量等信息

表SP

供应商产品供应表,存储供应商所供应的产品对应信息

表Orders

订单表,存储订单的编号、日期等信息

表PO

产品订购表,存储产品订购的对应信息

表Employee

雇员表,存储雇员的编号等信息

表Customer

客户表,存储客户的编号等信息

 

6.2表[1]:

[Suppliers表](供应商表)

表名

Suppliers(供应商表)

数据库用户

Sa

主键

Snumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Snumber

char(12)

N

Y

主键/供应商号

2

Sname

char(30)

N

N

供应商名称

3

Saddress

char(30)

Y

N

供应商地址

4

Stelnum

int

Y

N

供应商电话

sql脚本

--建立供应商表

createtableSuppliers--供应商表

(Snumberchar(12)primarykey,--供应商编号,主码

Snamechar(30)notnull,--姓名

Saddresschar(30),--地址

Stelnumint--电话

);

 

6.3表[2]:

[Product表](产品表)

表名

Product(产品表)

数据库用户

sa

主键

Pnumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Pnumber

char(12)

N

Y

主键/产品编号

2

Pname

char(30)

N

Y

产品名称

3

Pcategory

char(15)

Y

N

产品类别

4

Pprice

int

Y

N

产品售价

5

Pex_price

real

Y

N

产品出厂价

6

Pinventory

real

Y

N

产品库存量

sql脚本

--建立产品表

createtableProduct--产品表

(Pnumberchar(12)primarykey,--产品编号,主码

Pnamechar(30)notnull,--产品名称

Pcategorychar(15),--产品类别--

Ppriceint,--售价--

Pex_pricereal,--出厂价--

Pinventoryreal--存货量--

);

6.4表[3]:

[SP表](供应商产品供应表)

表名

SP(供应商产品供应表)

数据库用户

sa

主键

Snumber,Pnumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Snumber

char(12)

N

Y

主键/供应商号

2

Pnumber

char(12)

N

Y

主键/产品编号

sql脚本

--建立供应商产品供应表

createtableSP--供应商供应产品表--

(Snumberchar(12),--供应商编号,外码

Pnumberchar(12),--产品编号,外码

primarykey(Snumber,Pnumber),--联合主码

foreignkey(Pnumber)referencesProduct(Pnumber)

ondeletecascade

onupdatecascade,

foreignkey(Snumber)referencesSuppliers(Snumber)

ondeletecascade

onupdatecascade

);

6.5表[4]:

[Orders表](订单表)

表名

Orders(订单表)

数据库用户

sa

主键

Onumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Onumber

char(12)

N

Y

主键/订单号

2

Odate

date

N

N

订单日期

3

Enumber

char(12)

Y

N

雇员号

4

Cnumber

char(12)

N

N

客户号

sql脚本

--建立订单表

createtableOrders--订单表

(Onumberchar(12)primarykey,--编号,主码

Odatedate,--日期

Enumberchar(12),--设置雇员号,外码

Cnumberchar(12),--设置客户号,外码

foreignkey(Cnumber)referencesCustomer(Cnumber)

ondeletecascade

onupdatecascade,

foreignkey(Enumber)referencesEmployee(Enumber)

ondeletecascade

onupdatecascade

);

6.6表[5]:

[PO表](产品订购表)

表名

PO(产品订购表)

数据库用户

sa

主键

Pnumber,Onumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Pnumber

char(12)

N

Y

主键/产品号

2

Onumber

char(12)

N

Y

主键/订单号

3

Quantity

int

N

N

订购产品数量

sql脚本

--建立产品订购表

createtablePO--产品订购表

(Pnumberchar(12),--产品编号

Onumberchar(12),--订单编号

Quantityint,--产品数量

primarykey(Pnumber,Onumber),--联合主码

foreignkey(Pnumber)referencesProduct(Pnumber)--外码

ondeletecascade

onupdatecascade,

foreignkey(Onumber)referencesOrders(Onumber)--外码

ondeletecascade

onupdatecascade

);

6.7表[6]:

[Employee表](雇员表)

表名

Employee(雇员表)

数据库用户

sa

主键

Enumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Enumber

char(12)

N

Y

主键/雇员号

2

Ename

char(10)

N

N

雇员名称

3

Etelnum

int

N

Y

雇员电话

4

Ewages

real

N

N

雇员薪资

sql脚本

--建立雇员表

createtableEmployee--雇员表

(Enumberchar(12)primarykey,--编号

Enamechar(10),--名字

Etelnumint,--电话

Ewagesreal--工资

);

 

6.8表[7]:

[Customer表](客户表)

表名

Customer(客户表)

数据库用户

sa

主键

Cnumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

Cnumber

char(12)

N

Y

主键/客户表

2

Cname

char(10)

N

N

客户名称

3

Caddress

char(30)

Y

N

客户地址

4

Ctelnum

int

Y

Y

客户电话

sql脚本

--建立客户表

createtableCustomer--客户表

(Cnumberchar(12)primarykey,--编号

Cnamechar(10),--姓名

Caddresschar(30),--地址

Ctelnumint--电话

);

 

6.9视图的设计

1、建立一张雇员信息的视图

目的:

屏蔽雇员的工资信息。

功能:

能够向管理员提供简明,直接的雇员信息展示。

意义:

有利于数据库安全的维护,防止任意修改数据库中的雇员信息。

createviewview_Employee--建立Employee视图,屏蔽工资属性

as

selectEnumber,Ename,Etelnum

fromEmployee

withcheckoption;

2、建立一张产品信息的视图

目的:

屏蔽产品的出厂价信息。

功能:

能够向管理员提供简明,直接的产品信息展示。

意义:

有利于数据库安全的维护,防止任意修改数据库中的产品信息。

createviewview_Producte--建立Product视图,屏蔽出厂价属性

as

selectPnumber,Pname,Pcategory,Pprice,Pinventory

fromview_Producte

withcheckoption;

 

6.10存储过程的设计

1、查询订单数量

功能:

查询订单的数量

目的:

存储查询订单数量的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchOrdersNum--查询订单的存储过程

as

selectCOUNT(*)'订单总数'--查询订单数量

fromOrders;

2、查询客户的订单信息

功能:

查询客户的订单信息

目的:

存储查询客户的订单信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_CustomerOrders--查询某个客户订单信息

@Cnamechar(10)

as

selectOnumber,Odate,Enumber

fromOrders,Customer

whereCnamelike@CnameandCustomer.CnumberlikeOrders.Cnumber;

3、查询订单最多的客户信息

功能:

查询订单最多的客户信息

目的:

存储查询订单最多的客户信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchMaxOrders--查询订单最多的客户信息

as

selectCnumber,Cname,Caddress,Ctelnum

fromOrders,Customer

whereOrders.Cnunmer=Customer.Cnunmer

groupbyCnumberhavingMAX(Cnumber);

4、查询客户信息

功能:

查询客户信息

目的:

存储查询客户信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchCustomer--查询某客户信息

@Cnamechar(10)

as

select*

fromCustomer

whereCname=@Cname;

5、查询雇员信息

功能:

查询雇员信息

目的:

存储查询雇员信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchEmployee--查询某雇员信息

@Enamechar(10)

as

select*

fromEmployee

whereEname=@Ename;

6、查询某订单对应的产品信息

功能:

查询某订单对应的产品信息

目的:

存储查询某订单对应的产品信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchPO--查询某订单的产品信息

@Onumberchar(12)

as

selectOnumber,Product.Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory

fromProduct,PO

whereOnumber=@OnumberandPO.Pnumber=Product.Pnumber;

 

7、查询产品信息

功能:

查询产品信息

目的:

存储查询产品信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchProduct--查询某产品信息

@Pnumberchar(12)

as

selectPnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory,Snumber

fromProduct,SP

wherePnumber=@PnumberandSP.Pnumber=@Pnumber;

8、插入供应商信息

功能:

插入供应商信息

目的:

存储插入供应商信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_InsertSuppliers--插入供应商信息

@Snumberchar(12),@Snamechar(30),@Saddresschar(30),@Stelnumint

as

IFEXISTS(SELECT*FROMSuppliersWHERESnu

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

当前位置:首页 > 党团工作 > 党团建设

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

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