




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长 沙 学 院课程设计说明书题目 _ 系(部) _ 专业(班级) _ 姓名 _ 学号 _ 指导教师 _ 起止日期 _课程设计任务书课程名称:数据库系统原理课程名称:数据库系统原理设计题目:设计题目:销售订单数据库管理系统1、某销售商的订单系统需要如下信息:每个供应商包含供应商编号、名称、地址、联系电话等信息。每种产品包含产品号、产品名称、产品类别等信息。每个供应商可供应多种产品,每种产品可由多个供应商供应。客户包含编号、姓名、通信地址、电话等信息。雇员包括编号、姓名、联系电话等信息。订单包括订单号等信息。一个客户可下多个订单,每个订单只能由一个客户下。一个雇员可管理多个订单,每个订单只能由一个
2、雇员管理。一个订单订购多种产品,每种产品可在不同的订单中订购2、系统功能基本要求:按照一定条件查询、统计订单信息,例如订单量最多的客户或者产品。能够模拟完成一个订单交易全过程。设计工作量:设计工作量:40 课时工作计划:工作计划:班级周次节次教室内容指导教师15 周周一1-4xxx布置任务15 周周三1-4xxx上机15 周周四9-12xxx答疑15 周周五9-12xxx答疑15 周周六1-4xxx上机16 周周一9-12xxx答疑16 周周二1-2xxx上机16 周周三1-2xxx上机16 周周四9-12xxx答疑16 周周五1-4xxx上机10 软件7 班16 周周六1-4xxx答辩xxx
3、指导教师签名:日期:教研室主任签名: 日期:系主任签名: 日期: 长沙学院课程设计鉴定表姓名学号专业班级设计题目指导教师指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀” 、 “良好” 、 “及格” 、 “不及格”四类;目 录一、引言一、引言 .51.1编写目的.51.2参考资料.5二、二、需求规约需求规约.62.1 业务描述.62.2 需求分析.6三、三、数据库环境说明数据库环境说明.7四、四、数据库的命名规则数据库的命名规则.74.1 数据库对象命名规则
4、.74.2 数据项编码规则.7五、五、逻辑设计逻辑设计.85.1 er 图.85.2 关系模型.8六、六、物理设计物理设计.96.1 表汇总.96.2 表1: suppliers表(供应商表).96.3 表2: product表(产品表) .106.4 表3: sp 表(供应商产品供应表).106.5 表4: orders表(订单表).116.6 表5: po 表(产品订购表).126.7 表6: employee表(雇员表) .126.8 表7: customer表(客户表).136.9 视图的设计.136.10 存储过程的设计.146.11 触发器的设计.186.12 函数的设计.18七、
5、七、安全性设计安全性设计.197.1 防止用户直接操作数据库的方法.197.1.1 用户标识和鉴定.197.1.2 存取控制.197.1.3 数据加密.197.2 用户帐号密码的加密方法.197.3 角色与权限.19八、八、数据库管理与维护说明数据库管理与维护说明.20九、九、总结总结.21一、引言一、引言1.1编写目的编写目的本文档是销售订单数据库管理系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循sql server 2008 数据库设计和开发规范 。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人
6、员。设计该数据库的目的是为了能够模拟完成一次订单销售流程。1.2参考资料参考资料 资料名称作者文件编号、版本数据库系统概论 王珊、萨师煊2006 年 5 月第 4 版数据库设计入门经典鲍威尔2007 年 3 月第 1 版数据库原理克罗恩科2005 年 6 月第 1 版二、二、需求规约2.1 业务描述业务描述销售订单数据库管理系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的销售订单数据库管理系统,实现订单销售的自动化的计算机系统,为商品供应商提供准确、精细、迅速的订单销售信息。具体功能为
7、供应商供应产品、请假的申请,出差的记录输入到系统中,系统将为员工记录这些信息。2.2 需求分析需求分析本销售订单数据库管理系统,能够完成插入产品,供应记录,订购记录等等这些信息,以能够模拟完成一次订单销售的过程,此外,在一个完整的订单销售流程中,本数据库系统还提供查询某供应商供应的产品信息,询某产品信息,查询某客户信息,查询某订单订购的产品的信息。对于客户而言,还提供了查询订单最多的客户的功能。总的来说,本数据库系统能够达到模拟完成一次订单销售流程的要求。在本销售订单数据库管理系统中,有一些限制性条件,比如一个客户可以下多个订单,但一个订单只能由一个客户下,一个订单可以订购多种产品,每种产品可
8、被不同订单订购等等,这些限制条件的加入能够使本数据库管理系统的功能更加完善,能够满足更高的要求。三、三、数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明销售订单数据库管理系统sql server 2008windows xpsql server存放位置,绝对路径/相对路径用于订单销售管理四、四、数据库的命名规则数据库的命名规则4.1 数据库对象命名规则数据库对象命名规则数据库对象命名规则备注表s 功能描述字符串例如:suppliers 供应商表视图view_功能描述字符串例如:view_product 产品视图触发器insert_功能描述字符串例如:insert
9、_po 更改库存触发器存储过程procedure_功能描述字符串例如:pro_insertsuppliers 存储过程 4.2 数据项编码规则数据项编码规则数据项命名规则数据类型长度范围备注供应商编号两位整数序号(0099)定长字符串12 位无产品号两 位 整 数 序 号(0099)定长字符串12 位无订单号两位整数序号(0099)定长字符串12 位无雇员号两位整数序号(0099)定长字符串12 位无客户号两位整数序号(0099)定长字符串12 位无五、五、逻辑设计逻辑设计5.1 er 图图供应商供应产品订购订单管理雇员下发客户名称地址联系电话客户编号姓名通信地址电话产品编号供应商编号产品编号
10、产品名称产品类型产品编号订单编号订单编号雇员编号姓名联系电话供应商编号售价出厂价存货量数量日期雇员编号工资客户编号5.2 关系模型关系模型供应商(供应商编号,名称,地址,联系电话)产品(产品编号,产品名称,产品类别,售价,出厂价,存货量)供应(供应商编号,产品编号)订购(产品编号,订单编号,数量)客户(客户编号,姓名,通信地址,电话)订单(订单编号,日期,客户编号,雇员编号)雇员(雇员编号,姓名,联系电话,工资)注:有下划线的表示该属性为主码。六、六、物理设计6.1 表汇总表汇总表名功能说明表 suppliers供应商表,存储供应商的编号等信息表 product产品表,存储产品的编号、数量等信
11、息表 sp供应商产品供应表,存储供应商所供应的产品对应信息表 orders订单表,存储订单的编号、日期等信息表 po产品订购表,存储产品订购的对应信息表 employee雇员表,存储雇员的编号等信息表 customer客户表,存储客户的编号等信息6.2 表表1: suppliers 表表(供应商表供应商表)表名suppliers(供应商表)数据库用户sa主键snumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空 y/n唯一y/n区别度默认值约束条件/说明1snumberchar(12)ny高无主键/供应商号2snamechar(30)nn中无供应商名称3saddress
12、char(30)yn中无供应商地址4stelnumintyn高无供应商电话sql 脚本-建立供应商表create table suppliers -供应商表(snumber char(12) primary key,-供应商编号,主码 sname char(30) not null,-姓名 saddress char(30), -地址 stelnum int -电话);6.3 表表2: product 表表(产品表产品表)表名product(产品表)数据库用户sa主键pnumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空y/n唯一y/n区别度默认值约束条件/说明1pnu
13、mberchar(12)ny高无主键/产品编号2pnamechar(30)ny高无产品名称3pcategorychar(15)yn低无产品类别4ppriceintyn中无产品售价5pex_pricerealyn中无产品出厂价6pinventoryrealyn中无产品库存量sql 脚本-建立产品表create table product -产品表(pnumber char(12) primary key, -产品编号,主码 pname char(30) not null, -产品名称 pcategory char(15), -产品类别- pprice int, -售价- pex_price re
14、al, -出厂价- pinventory real -存货量-);6.4 表表3: sp 表表(供应商产品供应表供应商产品供应表)表名sp(供应商产品供应表)数据库用户sa主键snumber,pnumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空唯一y/n区别度默认值约束条件/说明y/n1snumberchar(12)ny高无主键/供应商号2pnumberchar(12)ny高无主键/产品编号sql 脚本-建立供应商产品供应表create table sp-供应商供应产品表-(snumber char(12),-供应商编号,外码 pnumber char(12),-产品
15、编号,外码 primary key(snumber,pnumber),-联合主码 foreign key (pnumber) references product(pnumber) on delete cascade on update cascade, foreign key (snumber) references suppliers(snumber) on delete cascade on update cascade);6.5 表表4: orders 表表(订单表订单表)表名orders(订单表)数据库用户sa主键onumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)
16、允许为空y/n唯一y/n区别度默认值约束条件/说明1onumberchar(12)ny高无主键/订单号2odatedatenn低无订单日期3enumberchar(12)yn中无雇员号4cnumberchar(12)nn高无客户号sql 脚本-建立订单表create table orders-订单表(onumber char(12)primary key,-编号,主码 odate date,-日期 enumber char(12),-设置雇员号,外码 cnumber char(12),-设置客户号,外码 foreign key (cnumber) references customer(cnu
17、mber) on delete cascade on update cascade, foreign key (enumber) references employee(enumber) on delete cascade on update cascade);6.6 表表5: po 表表(产品订购表产品订购表)表名po(产品订购表)数据库用户sa主键pnumber,onumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空y/n唯一y/n区别度默认值约束条件/说明1pnumberchar(12)ny高无主键/产品号2onumberchar(12)ny高无主键/订单号3qu
18、antityintnn低无订购产品数量sql 脚本-建立产品订购表create table po-产品订购表(pnumber char(12),-产品编号 onumber char(12),-订单编号 quantity int,-产品数量 primary key(pnumber,onumber),-联合主码 foreign key (pnumber) references product(pnumber)-外码 on delete cascade on update cascade, foreign key (onumber) references orders(onumber)-外码 on
19、delete cascade on update cascade); 6.7 表表6: employee 表表(雇员表雇员表)表名employee(雇员表)数据库用户sa主键enumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空y/n唯一y/n区别度默认值约束条件/说明1enumberchar(12)ny高无主键/雇员号2enamechar(10)nn中无雇员名称3etelnumintny高无雇员电话4ewagesrealnn低无雇员薪资sql 脚本-建立雇员表create table employee-雇员表(enumber char(12) primary key,
20、-编号 ename char(10),-名字 etelnum int,-电话 ewages real-工资);6.8 表表7: customer 表表(客户表客户表)表名customer(客户表)数据库用户sa主键cnumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空y/n唯一y/n区别度默认值约束条件/说明1cnumberchar(12)ny高无主键/客户表2cnamechar(10)nn中无客户名称3caddresschar(30)yn中无客户地址4ctelnumintyy高无客户电话sql 脚本-建立客户表create table customer-客户表(cnu
21、mber char(12) primary key,-编号 cname char(10),-姓名 caddress char(30),-地址 ctelnum int-电话);6.9 视图的设计视图的设计1、建立一张雇员信息的视图目的:屏蔽雇员的工资信息。功能:能够向管理员提供简明,直接的雇员信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的雇员信息。create view view_employee-建立employee视图,屏蔽工资属性asselect enumber,ename,etelnumfrom employeewith check option;2、建立一张产品信息的视
22、图目的:屏蔽产品的出厂价信息。功能:能够向管理员提供简明,直接的产品信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的产品信息。create view view_producte-建立product视图,屏蔽出厂价属性asselect pnumber,pname,pcategory,pprice,pinventoryfrom view_productewith check option;6.10 存储过程存储过程的设计的设计1、查询订单数量功能:查询订单的数量目的:存储查询订单数量的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure p
23、rocedure_searchordersnum -查询订单的存储过程asselect count(*) 订单总数-查询订单数量from orders;2、查询客户的订单信息功能:查询客户的订单信息目的:存储查询客户的订单信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_customerorders-查询某个客户订单信息cname char(10)asselect onumber,odate,enumberfrom orders,customerwhere cname like cname and customer.cn
24、umber like orders.cnumber;3、查询订单最多的客户信息功能:查询订单最多的客户信息目的:存储查询订单最多的客户信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_searchmaxorders-查询订单最多的客户信息asselect cnumber,cname,caddress,ctelnumfrom orders,customerwhere orders.cnunmer=customer.cnunmergroup by cnumber having max(cnumber);4、查询客户信息功能:
25、查询客户信息目的:存储查询客户信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_searchcustomer-查询某客户信息cname char(10)asselect *from customerwhere cname=cname;5、查询雇员信息功能:查询雇员信息目的:存储查询雇员信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_searchemployee-查询某雇员信息ename char(10)asselect *from employe
26、ewhere ename=ename;6、查询某订单对应的产品信息功能:查询某订单对应的产品信息目的:存储查询某订单对应的产品信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_searchpo-查询某订单的产品信息onumber char(12)asselect onumber,product.pnumber,pname,pcategory,pprice,pex_price,pinventoryfrom product,powhere onumber=onumber and po.pnumber=product.pnum
27、ber;7、查询产品信息功能:查询产品信息目的:存储查询产品信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_searchproduct-查询某产品信息pnumber char(12)asselect pnumber,pname,pcategory,pprice,pex_price,pinventory,snumberfrom product,spwhere pnumber=pnumber and sp.pnumber=pnumber;8、插入供应商信息功能:插入供应商信息目的:存储插入供应商信息的操作意义:下次重复同样
28、的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_insertsuppliers-插入供应商信息snumber char(12),sname char(30),saddress char(30),stelnum intasif exists(select * from suppliers where snumber=snumber)print该供应商记录已经存在elseinsert into suppliers(snumber,sname,saddress,stelnum)values(snumber,sname,saddress,stelnum)
29、;9、插入订单信息功能:插入订单信息目的:存储插入订单信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_insertorders-插入订单表onumber char(12),odate date,enumber char(12),cnumber char(12)asif exists(select * from orders where onumber=onumber)print该订单记录已经存在elseinsert into orders(onumber,odate,enumber,cnumber)values(onu
30、mber,odate,enumber,cnumber);10、插入产品订购信息功能:插入产品订购信息目的:存储插入产品订购信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_insertpo-插入产品订购表pnumber char(12),onumber char(12),quantity intasif exists(select * from po where pnumber=pnumber and onumber=onumber)-当该订单已经订购改产品时不予重复订购print该产品订购订单记录已经存在if exis
31、ts(select * from product where pinventoryquantity)-当库存量不足时不予订购print该产品库存不足,无法订购elseinsert into po(onumber,pnumber,quantity)values(onumber,pnumber,quantity);11、插入产品信息功能:插入产品信息目的:存储产品的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_insertproduct -插入产品信息pnumber char(12),pname char(30),pcateg
32、ory char(15),pprice int,pex_price real,pinventory realasif exists(select * from product where pnumber=pnumber)-若有相同产品,只更新库存量update productset pinventory=pinventory+pinventoryelseinsert into product(pnumber,pname,pcategory,pprice,pex_price,pinventory)values(pnumber,pname,pcategory,pprice,pex_price,pi
33、nventory);12、完整的订单销售流程功能:插入订单信息和订购信息以及修改产品库存等信息目的:存储从客户下单到订单订购产品的流程的操作意义:直观展示订单销售流程,使用户能够更简明的执行完整的订单销售流程create procedure procedure_order -完整的订单销售流程onumber char(12),odate date,enumber char(12),cnumber char(12)pnumber char(12),onumber char(12),quantity intasif exists(select * from orders where onumber
34、=onumber)-若有重复订单,则不予下单print该订单记录已存在,不能重复下订单elseinsert into orders(onumber,odate,enumber,cnumber)values(onumber,odate,enumber,cnumber);if exists(select * from po where pnumber=pnumber and onumber=onumber)-若有重复订购单,则不予订购print该产品订购记录已存在,不能重复订购elseif exists(select * from product where pinventoryquantity)
35、-若产品库存量不足,则不予订购print产品库存量不足,不能订购elseinsert into po(onumber,pnumber,quantity)values(onumber,pnumber,quantity);6.11 触发器的设计触发器的设计1、建立触发器 insert_po:当插入了一条新的产品订购信息后,则激活该触发器,新的产品库存量等于旧库存量减去产品订购的数量。功能:能够根据数据库中数据的变化来自动进行数据更新操作。目的:将必备的操作自动化。意义:为数据库用户提供一种简便操作,省去了逐项更改数据的麻烦。create trigger insert_po-after 触发器,当订
36、购产品后,自动减少库存量on po after insertfor each rowas beginupdate product set new.pinventory=old.pinventory-new.quantity;end;6.12 函数的设计函数的设计无七、七、安全性设计7.1 防止用户直接操作数据库的方法防止用户直接操作数据库的方法7.1.1 用户标识和鉴定用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。7.1.2 存取控制数据库安全性所关心的主要是 dbms
37、的存取控制机制。数据库安全最重要的一点就是确保只授权给由资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的存取控制机实现。7.1.3 数据加密 数据加密是防止数据库中数据在存储和传输中关系的有效字段。加密的基本思想是根据一定的算法讲原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。例如:exec sp_addlogin employee_manage,123456,sales_system;exec sp_grantdbaccess employee_manage,阿莱格里;grant all privileges -将指定权限授予该用户on table suppliers,product,sp,orders,po,view_employee,view_productto 阿莱格里7.2 用户帐号密码的加密方法用户帐号密码的加密方法为用户帐号密码加密,需要用程序实现,对用户的帐号密码实行加密算法,并在后台实现转换。7.3 角色与权限角色与权限角色可以访问的表与列操作权限ss可访问所有表完全控制权限admin可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度汽车销售折扣及售后服务合同
- 2025年度环保主题纪录片制作及授权使用合同
- 中学生社会实践感悟之旅的读后感
- 施工总承包合同
- 农产品品牌国际化与差异化发展战略方案
- 人工智能辅助教育产品开发流程
- 企业员工福利管理信息系统采购合同
- 物联网设备安全监测协议
- 古诗文观止的教学教案与文学评析
- 食品营养与健康管理试题集
- 2024年环北部湾广西水资源配置有限公司招聘考试真题
- 2025年黑龙江建筑职业技术学院单招职业技能测试题库完美版
- 上海市建设工程施工图设计文件勘察设计质量疑难问题汇编(2024 版)
- 第一单元时、分、秒(说课稿)-2024-2025学年三年级上册数学人教版
- 地理-浙江省杭州八县市2024学年高二第一学期期末学业水平测试试题和答案
- 《康复工程学》课件-第一讲 康复工程概论
- DeepSeek:从入门到精通
- 天津2025年天津中德应用技术大学辅导员岗位招聘7人笔试历年参考题库附带答案详解
- 2025年无锡职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年铜材拉丝项目可行性研究报告
- 2025四川宜宾市高县县属国企业第一次招聘3人易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论