《数据库课程设计网上订货系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计网上订货系统.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理课程设计报告设计题目: 网上订购系统 所在系别: 班级: 姓名: 学号: 组号: 指导教师: 年 月 日目录一、需求分析21.1开发背景和意义21.2系统需求概况2二、概念结构设计42.1、 各个表信息的实体图设计42.2、 E-R图设计5三、逻辑结构设计63.1、规范化的数据关系模式73.2.数据库及表结构的创建7四、物理结构设计与实现9五、数据实施和维护95.1、数据库完整性95.2、安全性设计10六、总结11七、附录121、需求分析1.1开发背景和意义1.1.1系统开发背景商业企业中,货物销售时,订购是关键的环节。它直接关系到企业的销售业绩,而在一个企业中,销售是关系到企业生存
2、的关键。随着时代的发展,货物订购仅靠人力手工完成已经无法满足企业发展的需要。而对商业企业来说,只有订货量越多的时候,才可能产生更多的利润。使用订货管理系统来协助销售部门管理订单成为提高部门效率成为必须。1.1.2系统开发意义网上订货管理作为计算机应用的一个分支,有着手工管理无法比拟的优点。该系统的三大益处有:(1)大大提高订货的运作效率;(2)通过全面的信息采集和处理,辅助提高订货的决策水平;(3)使用本系统,可以迅速提升订货的管理水平,为降低经营成本, 提高效益,增强网上订货扩张力, 提供有效的技术保障。因此,开发一套能够为消费者及工作人员提提供方便的订货管理系统,将是非常必要的,也是十分及
3、时的。1.2系统需求概况1.2.1 功能需求用户登陆企业产品网站后,可以在线选购货物,在选完货物后,系统提供一张订货单,订货单已经包括用户选过的货物,送货金额和订单号,还有一些待用户填写的内容:订货数量,订货时间和交货时间。用户填好电子订货单后提交。系统将其填进系统数据库,系统通知管理员可以发货,。(1) 用户登录时,若用户输入的用户名不存在时,则无法登录,然后再重新登录;用户能够根据不同权限添加、修改和删除系统不同级别的数据。(2) 管理员登录,可以从事以下操作:管理商品信息,可以对信息进行查询、添加、修改。查看供货商数据,并可以对数据进行管理。添加新商品功能,可增加删改商品信息。添加新商品
4、,选择商品类别,输入商品名称,进行商品说明。类别管理,可以更改类别名称,可以添加和删除类别。管理销售单,可以销售单进行条件查询,并进行管理。查看库存数据,并可以对数据进行管理。(3) 用户界面本系统采用Microsoft Visual Studio 2008设计,用户交互界面采用的是基于Windows的窗口界面,并结合Telerik RadControls for WinForms设计美观易懂的用户界面,数据库采用Microsoft SQL Server 2005设计。1.2.2 数据需求分析(1)数据流程图顾客网上订货管理系统管理员(2) 数据字典数据元素条目名称数据类型长度有关的数据结构商
5、品IDchar20订购表顾客IDchar10订购表订货日期smalldatetime10订购表订货数量int20订购表交货日期smalldatetime10订购表处理状态char20订购表顾客名char10顾客表电话char12顾客表地址nchar30顾客表社会保险号码char15顾客表密码char10顾客表注册日期smalldatetime10顾客表商品名称char20商品信息表保质期char4商品信息表生产日期smalldatetime10商品信息表库存量int20商品信息表厂家char20商品信息表进价float20商品信息表售价float29商品信息表2、概念结构设计2.1、 各个表信
6、息的实体图设计在已经存在的需求分析的基础上,经过分析抽象,画出反应订购管理系统的E-R图:1) 订购信息实体图设计订购表:此表记录顾客订购商品的所有信息,管理员通过此表进行信息查询,添加,删除,修改等操作。订购实体图如图3-1所示。处理状态交货日期订购商品ID订购数量订货日期顾客ID2) 商品信息实体图设计商品信息表:此表记录超市所有商品信息,管理员通过此表进行商品查询,添加,删除,修改等操作。商品信息实体图如图3-2所示。密码社会保险号码注册日期顾客顾客名地址电话顾客ID3) 顾客信息实体图设计顾客表:此表记录所有顾客基本信息,管理员通过此表进行顾客查询,添加,删除,修改等操作。供应商信息实
7、体图如图3-3所示。进价商品名称生产日期售价商品信息保质期厂家库存量商品ID2.2、 E-R图设计网上订货管理系统数据库E-R模型,如图3-9所示:顾客表社会保险号码险注册日期期密码顾客id地址顾客名电话订购表商品id订货日期订购数量交货日期顾客id处理状态商品信息表表库存量厂家进价商品id生产日期期商品名称保质期售价nm 3、逻辑结构设计实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以
8、与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合实体型转换为关系模式如下:1) 商品信息表(商品ID,商品名称,保质期,生产日期,库存量,厂家,进价,售价)2) 订购表(商品ID,顾客ID,订货日期,订购数量,交货日期,处理状态)3) 顾客表(顾客ID,顾客名,电话,地
9、址,社会保险号码,注册日期,密码)3.1、规范化的数据关系模式 经分析转换的关系模式如下:1) 商品信息表(商品ID,商品名称,保质期,生产日期,库存量,厂家,进价,售价)2) 订购表(商品ID,顾客ID,订货日期,订购数量,交货日期,处理状态)3) 顾客表(顾客ID,顾客名,电话,地址,社会保险号码,注册日期,密码)3.2.数据库及表结构的创建创建名为“订购管理系统”的数据库,并创建各表,各表结构如下:创建订购表:创建顾客表: 创建商品信息表:4、物理结构设计与实现对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。 所以数据库的物理设计,主要指物理设备上的
10、存储结构和存取方法。 用户DBMS OS DB 用户标识和鉴别 存取控制 操作系统安全保护 数据密码存储 物理设计的步骤 :(1)存储记录结构设计;(2)确定数据存储安排 ;(3)访问方法的设计 ;(4)完整性和安全性 ;(5)程序设计; 所采用的数据库系统为sql2005,系统自动为建好的数据库分配了数据的存储地址。4.1创建触发器1、创建订货日期大于注册日期的触发器create Trigger tri_con 订购表 after insert,update as if exists(select * from 订购表 d join 顾客表 c on d.顾客ID=c.顾客ID WHERE
11、d.订货日期=c.注册日期) rollback 2、创建顾客id的级联更新的触发器 create trigger tri_d on 顾客表 after update as update 顾客表 set 顾客ID= ( SELECT 顾客ID FROM INSERTED) WHERE 顾客ID IN ( select 顾客ID from deleted )3、创建订购数量大于或等于库存量的触发器create Trigger tri_won 订购表 after insert,update as if exists(select * from 订购表 d join 商品信息表 c on d.商品ID
12、=c.商品ID WHERE d.订购数量=d.交货日期) rollback4.2创建索引1、创建索引create index ename_indon 订购表(订货日期)4.3创建视图1、创建视图create view v_is_s1(商品名称,库存量,售价,生产日期,保质期)as select c.商品名称,库存量,售价,生产日期,保质期 from 订购表 c join 商品信息表 d on c.商品ID=d.商品ID4.4创建存储过程1、创建存储过程create procedure 商品信息表_商品ID商品ID char(15)asselect c.商品名称,进价,售价,订购数量from 商
13、品信息表 c join 订购表 d onc.商品ID=d.商品IDwhere c.商品ID=商品IDexec 商品信息表_商品ID 22、创建存储过程create procedure 商品信息表_订货日期订货日期 varchar(20)asselect c.商品ID,进价,售价,订购数量from 商品信息表 c join 订购表 d onc.商品ID=d.商品IDwhere 订货日期=订货日期exec 商品信息表_订货日期 201412095、数据实施和维护5.1、数据库完整性数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是
14、数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:1数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。2利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。3合理的
15、数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。4在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。在实施数据库完整性设计的时候,有一些基本的原则需要把握:1) 根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。2) 实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用
16、。用一定的时间和空间来换取系统的易用性是值得的。5.2、安全性设计数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。 信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制 等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必
17、须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。SQL Server提供多层安全。在最外层,SQL Server的登录安全性直接集成到Widows NT/2000的安全上,它允许Windows NT服务器验证用户。使用这种Windows 验证SQL Server就可以利用Windows NT/2000的安全特性,例如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定帐号。6、总结通过本次大作业的练习,本次的大作业总共涉及的科目有wb编程语言应用,数据库系统设计与分析,还有sql server数据库语言的实际操作应用
18、,并且对于总体的项目开发计划也有了基本的概念,在做系统的的过程中从对系统懵懂,模糊,零星的思路,到最后整体设计思路的形成,都是经过反复的经过推敲和研究出来的,其中大量的查阅有关书籍和资料,每一个人都把自己的想法和思路提出来,组员经过讨论和分析在决定最后的ER图,画好之后,可以说这个数据库已经可以呈现在脑海里了,但是为了更好的优化和设计出所需要的系统,就应该对ER图进行冗余检查,对ER图进行全面的优化,尽量使它符合3NF模式,最后用oracle语句实现你的数据库。通过这次课程设计,我们觉得我们收获的远不止于这个系统的设计,而是对于数据库系统的开发设计步骤与方法的实践掌握,我们觉得这是对我们系统开
19、发能力最好的训练和考核,它不仅仅是一次考核方式,还是一次真正的项目开发实践,为以后的工作打好了一个坚实的基础,虽然不至于到精通,但至少可以做到知道怎么干和从哪干起。这次的课程设计中有很多知识是我们课堂上没有学习过的,这就要求我们自己去查阅相关的书籍。正是这样给了我更多了解编程语言的机会,同时也锻炼了我的自学能力,为以后的学习奠定了基础。在这个过程中,我们学会了很多知识,在以后的学习中,我们会更加努力地学会专业知识,并将所学知识投入到社会实践中去,以便更好地掌握。7、附录7.1创建触发器1、创建订货日期大于注册日期的触发器create Trigger tri_con 订购表 after inse
20、rt,update as if exists(select * from 订购表 d join 顾客表 c on d.顾客ID=c.顾客ID WHERE d.订货日期=c.注册日期) rollback 2、创建顾客id的级联更新的触发器 create trigger tri_d on 顾客表 after update as update 顾客表 set 顾客ID= ( SELECT 顾客ID FROM INSERTED) WHERE 顾客ID IN ( select 顾客ID from deleted )3、创建订购数量大于或等于库存量的触发器create Trigger tri_won 订购
21、表 after insert,update as if exists(select * from 订购表 d join 商品信息表 c on d.商品ID=c.商品ID WHERE d.订购数量=d.交货日期) rollback7.2创建索引1、创建索引create index ename_indon 订购表(订货日期)7.3创建视图1、创建视图create view v_is_s1(商品名称,库存量,售价,生产日期,保质期)as select c.商品名称,库存量,售价,生产日期,保质期 from 订购表 c join 商品信息表 d on c.商品ID=d.商品ID7.4创建存储过程1、创
22、建存储过程create procedure 商品信息表_商品ID商品ID char(15)asselect c.商品名称,进价,售价,订购数量from 商品信息表 c join 订购表 d onc.商品ID=d.商品IDwhere c.商品ID=商品IDexec 商品信息表_商品ID 22、创建存储过程create procedure 商品信息表_订货日期订货日期 varchar(20)asselect c.商品ID,进价,售价,订购数量from 商品信息表 c join 订购表 d onc.商品ID=d.商品IDwhere 订货日期=订货日期exec 商品信息表_订货日期 201412097
23、.5、完整性约束1、创建顾客表的电话约束alter table 顾客表add constraint ck_ocheck(电话 like 0-90-90-9-0-90-90-90-90-90-90-90-9)2、创建地址默认值约束alter table 顾客表add constraint df_cdefault UNKNOWNfor 地址3、创建订购数量的约束alter table 订购表add constraint ch_Ocheck(订购数量0)4、创建订货日期和交货日期的约束alter table 订购表add constraint ch_wcheck(订货日期交货日期)5、创建唯一值约束
24、alter table 顾客表add constraint un_ounique (社会保险号码)6、修改唯一值的约束alter table 订购表add constraint df_pdefault 未处理 for 处理状态7、修改商品id的约束alter table 商品信息表add constraint chk_商品IDcheck (商品ID likec0-90-90-9)8、修改顾客id的约束alter table 顾客表add constraint chk_顾客IDcheck (顾客ID like0-90-90-9)参考文献:1 萨师炫等数据库系统概论(第三版).北京高等教育出版社,20012 施伯乐等.数据库技术.北京科学出版社,20023 王珊等.数据库系统原理教程.北京清华大学出版社,19984 张龙祥等.数据库原理与设计.北京人民邮电出版社,20025 陈志泊等.数据库原理及应用教程.北京人民邮电出版社,20026 徐洁磐.现代数据库系统教程.北京北京希望电子出版社,20027 周志逵等.数据库理论与新技术.北京北京理工大学出版社,20018 李建中等.数据库系统原理.北京电子工业出版社,19989 刘方鑫等.数据库原理与技术.北京电子工业出版社,200210高阳.计算机实用软件.北京电子工业出版社,1995第 19 页