数据库大作业报告_第1页
数据库大作业报告_第2页
数据库大作业报告_第3页
数据库大作业报告_第4页
数据库大作业报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、学校代码: 学 号: Hefei University实验设计报告 BACHELOR DISSERTATION项目名称: UPS物流配送系统系 别: 电子信息与电气工程系专业班级: 14电子二班项目类型: 数据库报告指导教师: 方小红学生姓名: 张颖(1405012028)完成时间: 2015.12.10目录一.数据库说明2二.目的和作用3三.数据库设计31.系统主要业务分析32.数据库结构设计33.数据库逻辑设计43.1数据库表名汇总43.2数据库实体函数依赖与规范43.3表结构设计53.4数据库表设计:将ER图转化为数据表11四.实验小结24一.数据库说明UPS物流配送系统采用的是课程实验

2、中使用的SQL Sever,使用的版本是2012版。设计的数据库的全局数据库名为UPS数据库。二.目的和作用将业务需求分析,系统设计中对信息的描述进一步分析并加以总计,抽象出数据集合(数据库表)。对数据集合做进一步分析,确定集合之间的关系并最终形成数据库物理模型,以便开发人员建立物理数据库。三.数据库设计1.系统主要业务分析UPS物流配送公司的主要业务是为用户配送货物;物流公司的组织结构分为转运中心和配送单位;转运中心主要负责车辆的维护、配送点、配送线路、配送价格的维护、权限的管理;配送点主要是接收客户订单,并联系转运中心将货物运送到目的地;配送点同时还负责货物的配送工作。按照业务及系统功能简

3、单总结数据对象:l 订单l 路线信息l 运输工具l 发件人l 收件人l 员工l 转运中心2.数据库结构设计根据系统的分布式部署设计,数据库将部署到一部独立的计算机中。根据前期的分析,由于此次作业中不涉及大量数据的存储。预留数据库空间3M,日增长约1M,日志空间2G,日增长10%。3.数据库逻辑设计3.1数据库表名汇总表名描述发件人用于存储发件人信息发件人_订单(关系表)发件人与订单之间的关系表收件人用于存储收件人信息收件人_订单(关系表)收件人与订单之间的关系表订单用于存储订单的详细信息客户表用于存储客户的基本信息情况员工登陆用于存储员工登录信息员工用于存储员工的基本情况货物用于存储货物的基本

4、情况智慧标签用于存储货物的基本情况运输器用于存储运送货物的运输器信息路线信息_运输器(关系表)路线信息和运输器生成的关系表路线信息_中转站(关系表)路线信息和中转站生成的关系表路线信息用于存储路线信息中转站用于存储中转站的基本信息智慧标签_中转站(关系表)智慧标签和中转站生成的关系表中转站_员工(关系表)中转站和员工生成的关系表智慧标签_员工(关系表)智慧标签和员工生成的关系表订单状态的信息用于存储订单状态的基本信息异常订单用于存储异常订单的信息总体关系表3.2数据库实体函数依赖与规范实体名函数依赖满足范式订单1. 订单号(主键)运单类型.始发地.目的地.费用.订单生成时间3NF发件人1. 发

5、件人姓名,发件人电话(主键)发件人地址.发件人邮编2. 发件人地址发件人邮编2NF收件人1. 收件人姓名,收件人电话(主键)收件人地址.收件人邮编2. 收件人地址收件人邮编2NF货物1. 订单号,标签ID(主键)类型.重量3NF员工1. 员工编号(主键)员工姓名.员工性别.员工年龄.员工联系电话.员工家庭住址.员工部门.员工职位2. 员工联系电话员工姓名.员工性别.员工年龄.员工家庭住址.员工部门.员工职位3. 员工联系电话员工部门员工职位3NF运输器1. 运输器编号(主键)运输器类型.出发地.目的地.装载时间.到达时间3NF路线信息1. 标签ID(主键)出发地.目的地.中转站1ID.中转站2

6、ID.中转站3ID.中转站4ID3NF智慧标签1. 标签ID,订单号(主键)二维码.尺寸.重量2. 二维码尺寸.重量2NF员工登陆1. 员工登录名,员工编号员工登陆密码3NF订单状态信息1. 订单号(主键)所在地.扫面时间.上一站.下一站.是否到达.是否正常3NF异常订单1. 订单号,标签ID(主键) 异常信息.异常时间.异常地点3NF中转站1. 中转站ID(主键) 中转站名.中转站地址.到达时间.出发时间2. 中转站地址中转站名2NF客户表3. 客户电话客户姓名.客户地址.客户邮编3NF3.3表结构设计l 订单l 客户l 智慧标签l 发件人l 收件人l 员工l 运输器l 货物l 员工登陆l

7、订单状态信息l 异常订单l 路线信息l 中转站l 收件人-订单l 发件人-订单l 运输器-员工l 智慧标签-员工l 智慧标签-中转站l 中转站-员工l 路线信息-中转站l 路线信息-运输器3.4数据库表设计:将ER图转化为数据表3.5实验要求1.员工登陆 proc(username ,password分开判断并给出提示信息)createprocyg_denglu(yonghumingchar(20),koulingchar(20)asifexists(select*from员工登陆where员工登陆名=yonghumingand员工登陆密码=kouling)print'登陆成功'

8、;elseifnotexists(select*from员工登陆where员工登陆名=yonghuming)print'员工登陆名不存在'elseifexists(select*from员工登陆where员工登陆名=yonghumingand员工登陆密码!=kouling)print'员工登陆密码错误'execyg_dengluyonghuming=luchenyang,kouling=123456execyg_dengluyonghuming='wanger002',kouling='002'execyg_dengluyongh

9、uming='zhaoyi001',kouling='123456'2.统计员工工作量 proc/view(全体员工和单个员工)统计全体员工工作量:createviewall_ygworkloadasselectcount(distinct订单号)as全体员工工作量from智慧标签_员工select*fromall_ygworkload查看单个员工工作量createviewevery_ygworkloadasselect员工编号,count(标签ID)as工作量from智慧标签_员工groupby员工编号select*fromevery_ygworkload3.

10、统计中转站的运送情况(正常包裹 AND 异常报告的数量等) 对于异常情况查看详情(交通,损坏,丢失)订单状态信息表异常订单表创建视图查询正常包裹数量createview正常包裹数量asselectcount(订单号)as正常包裹数量from订单状态信息where是否正常='是'创建视图查询异常报告数量createview异常包裹数量asselectcount(订单号)as异常包裹数量from订单状态信息where是否正常='否'创建视图查看异常订单详情createview异常订单详情asselect*from异常订单4.用户查看运送状态(列表显示时间、地点,员工

11、、中转站)订单状态信息表创建视图查看订单运送状态,时间,地点,员工,中转站createview查看订单状态信息asselect*from订单状态信息5.trigger运单一旦开始派送,则不允许修改运单号、发件人、收件人。由于数据库设计的原因,我们需要多个触发器完成这项工作对发件人表:createtriggerlimit_发件人on发件人forupdateasifexists(select*fromdeleted,发件人where发件人.发件人姓名=deleted.发件人姓名and发件人.发件人电话=deleted.发件人电话)beginrollbackprint'订单已生成,不能修改表

12、中任何信息'end对收件人表:createtriggerlimit_收件人on收件人forupdateasifexists(select*fromdeleted,收件人where收件人.收件人姓名=deleted.收件人姓名and收件人.收件人电话=deleted.收件人电话)beginrollbackprint'订单已生成,不能修改表中任何信息'end对订单号:createtriggerlimit_订单on订单forupdateasifexists(select*fromdeleted,订单where订单.订单号=deleted.订单号)beginrollbackpr

13、int'订单已生成,不能修改表中任何信息'end尝试修改发件人表中信息,提示“订单已生成,不能修改表中任何信息”尝试修改收件人表中信息,提示“订单已生成,不能修改表中任何信息”尝试修改订单表中信息,提示“订单已生成,不能修改表中信息”6.一旦新建运单,就判断发件人是否在用户之中,若是则转用户表,显示用户信息,如不是,自动增加用户。 triggercreatetriggeradd_useron发件人afterinsertasdeclare客户姓名varchar(30)declare客户电话varchar(20)declare客户地址varchar(40)declare客户邮编va

14、rchar(20)ifnotexists(select*frominserted,客户表whereinserted.发件人姓名=客户表.客户姓名andinserted.发件人电话=客户表.客户电话)beginselect客户姓名=inserted.发件人姓名,客户电话=inserted.发件人电话,客户地址=inserted.发件人地址,客户邮编=inserted.发件人邮编frominsertedinsertinto客户表(客户姓名,客户电话,客户地址,客户邮编)values(客户姓名,客户电话,客户地址,客户邮编)endelseifexists(select*frominserted,客户

15、表whereinserted.发件人姓名=客户表.客户姓名andinserted.发件人电话=客户表.客户电话)beginprint'客户信息:'select客户姓名,客户电话,客户地址,客户邮编from客户表,insertedwhereinserted.发件人姓名=客户表.客户姓名andinserted.发件人电话=客户表.客户电话end发件人表_订单客户表现在,我往发件人订单表中插入数据insertinto发件人values('王五','#39;,'湖南省常德市','642801')insert

16、into发件人_订单values('7492004','王五','#39;)插入后的客户表自动添加了“王五”的数据现在我要插一条数据客户表中有,发件人表和发件人_订单表中没有。客户表中先插入赵六的数据insertinto发件人values('赵六','#39;,'云南昆明','650500')insertinto发件人_订单values('7492005','赵六','#39;)可以看到,显示出了客户表中赵六的信息。四.实验小结即使是上了一学期的数据库课程,但这些都是针对数据库的一些基本操作,没有深入了解到数据库的内部世界。SQL Sever的操作和编程在本次项目中都让我得到了很好的锻炼。在当初定实体时,对每一个可能要实现功能的内容要进行详细的考虑,每一个实体之间的关系是一对一,还是多对一,还是多对多,实体这样定下之后,管理上会不会出现问题,信息存储会不会有冗余,考虑问

温馨提示

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

评论

0/150

提交评论