《2022年ups物流数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年ups物流数据库 .pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、云南大学软件学院实验报告课程:数据库原理与使用技术实验任课教师:张璇王伟 朱艳萍姓名:万贵兴学号:20081120240 专业:软件工程成绩:姓名:李金亮学号:20081120229 专业:软件工程成绩:实验 10 数据库设计1.引言1.1 编写目的这是为物流系统做物流数据库,用来在快递公司中处理快递邮件,提供货物的查询和物流公司对邮件的管理等。1.2 背景a.开发数据库名称:ups物流系统数据库b.提出者:教师开发者:万贵兴、李金亮用户:快递公司1.3 定义目的邮递区号:这个是在对货物处理时重要的识别码,在通过DWS 扫描时,可以根据目的邮递区号来把货物传送到正确的传送带,然后传入正确的货袋
2、,进行装载和运输。邮件_分类:在 ups 中对货物的分类,可以从简单的重量和形状来区分,对邮件进行分类后可以加快货物的处理速度和处理数量,而名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 34 页 -且可以保护某些特殊和重要的货物在传输过程中不受损坏等。运单:里面包含有运输工具的内容,可以方便用户查询货物是通过什么运输工具运输的和什么时候运输、预计到达时间。智慧标签:这个是在ups的 DWS 系统扫描时的重要内容,智慧标签中包含了货物的基本信息,特别是目的邮递区号,而且其中的Maxicode 二维标签和其他的标签有很大区别。1.4 参考资料Ups 优比速快递短片,物流系统简介,网
3、上查找的关于物流行业的介绍。2.外部设计2.1 标识符的状态邮件编号:它是识别邮件最快也最有效的标识符,不同的邮件对应不同的邮件编号,而且是唯一的,如一个学生的学号一样。它可以唯一的确定一个邮件货物。目的邮递区号:它可以在 ups的世界港中处理邮件时正确的将货物发送到正确的传送带,与货袋的目的邮递区号进行对别,从而将邮件装载入正确的货袋,送达正确的目的地,而在其中人为或以外的错误都可能导致邮件不能在规定的时限内正确的送达目的地。运单号:每一次的运输,运单号都是唯一的,它可以让客户,通过运单号或邮件号来查询邮件的运输信息,采用设那么工具运输,出名师资料总结-精品资料欢迎下载-名师精心整理-第 2
4、 页,共 34 页 -发时间和预计到达时间等。收件人编号、发件人编号:这可以是可有可无的,这个在运输的途中不是很必须的,使用这两个是为了方便货物的处理,客户的查询等。发件人邮编和发件人地址、收件人邮编和收件人地址:用这样的组合作为主标识符,是为了消除在对数据库的更新或插入时出现异常,而且这样也是对表进行规范化。2.2 支持软件Power designer 主要用来建立概念模型、物理模型、定义数据表之间的关系,生成脚本创建数据库,也可以用来做建模和运用其中的反向工程:数据库物理模型概念模型ER 图来生成 ER 图等。SQL sever 2005 用来使用 power designer 生成的脚本
5、语言创建数据库,并对数据库进行管理。3.结构设计3.1 概念结构设计power designer 本可以先经过建立概念模型,然后转换为相应的物理模型,从而创建数据库,但在打开power designer 12.5时在 new 菜单中可以直接创建物理模型:如下名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 34 页 -然后可以在工作区域直接进行模型建立和对各实体、表属性进行规范化。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 34 页 -最后,通过脚本语言创建数据库,并在 SQL sever 中对数据库建立相应的存储过程、试图、触发器,对数据库进行数据操作,测试数据
6、库。3.2 详细设计3.2.1 首先,先建立相应的物理模型:如下下面两个分别是实体收件人和发件人的信息:从中对其规范化以下可以得到:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 34 页 -对其中某些多值属性和复合属性进行设计:如智慧标签在表中它是一个多值属性,那么要对它进行单独建表等。这样就可以满足2 范式了,这样的设计可以在数据库中插入或更新数据时减少或消除异常。3.2.2 在 ups 视频中我们注意到,在整个货物处理中,它都有一个很重要的标签智慧标签。它里面基本覆盖了货物的所有信息,通过它可以正确的得到货物要投递到的地址信息,其中起关键作用的“目的邮递区号”,它货物处理时
7、可以准确的将货物传送到正确的货袋进行装运。现实中的智慧标签涵盖的内容或许更多远不止我们在实名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 34 页 -验中设计的那么简单,如下:而其在货物通过DWS 系统检测时,系统可以精确的扫描出货物的智慧标签、尺寸、重量等,进而将货物分类,在这次实验中我们是使用重量来对货物进行分类。虽然在 ups中它通过 DWS 扫描对货物进行分类,它可以通过重量和邮件形状来分类,但通过形状来分类总有写不太方便,所以通过重量和人工联合来分类会比较精确,但在这次实验中我们采用重量来分类。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 34 页 -3
8、.2.3 在 power designer 中可以运用反向工程生成E-R 图:即数据库-物理模型-概念模型-E-R 图下面是我们运用 power designer 反向工程使用脚本生成的E-R图:实际中一般情况都是先进行ER 图的设计和制作后,在通过ER 图来进行数据库等的创建和管理,但在某些情况可以使用逆向工程来实现 ER 图的生成。4.3.2.4 在这次实验中,我们为了能进行货物的分类,我们在智慧标签上做了触发器,当货物的重量符合某个条件时,会触发触发器对货物进行分类,将其分为:小件、包裹或特殊类货物,这样分类的好处是方便在货物处理中更快捷和安全的处理货物。名师资料总结-精品资料欢迎下载-
9、名师精心整理-第 8 页,共 34 页 -3.2.5 使用 power designer 12.5生成的脚本语言来创建数据库:脚本语言 SQl 语句:/*=*/*DBMS name:Microsoft SQL Server 2005*/*Created on:2010/6/6 21:02:50*/*=*/if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 34 页 -where r.fkeyi
10、d=object_id(中转站)and o.name=FK_中转站_REFERENCE_邮件)alter table 中转站drop constraint FK_中转站_REFERENCE_邮件go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(发件人)and o.name=FK_发件人_REFERENCE_邮件)alter table 发件人drop constraint FK_发件人_REFER
11、ENCE_邮件go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(发件人_地址)and o.name=FK_发件人_地址_REFERENCE_发件人)alter table 发件人 _地址drop constraint FK_发件人_地址_REFERENCE_发件人名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 34 页 -go if exists(select 1 from sys
12、.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(收件人)and o.name=FK_收件人_REFERENCE_邮件)alter table 收件人drop constraint FK_收件人_REFERENCE_邮件go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=objec
13、t_id(收件人_地址)and o.name=FK_收件人_地址_REFERENCE_收件人)alter table 收件人 _地址drop constraint FK_收件人_地址_REFERENCE_收件人go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 34 页 -o.type=F)where r.fkeyid=object_id(智慧标签)and o.name=FK_ 智慧标签_REFEREN
14、CE_邮件)alter table 智慧标签drop constraint FK_智慧标签 _REFERENCE_邮件go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(运 单)and o.name=FK_ 运 单_REFERENCE_邮件)alter table 运单drop constraint FK_运单_REFERENCE_邮件go if exists(select 1 from sys.s
15、ysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(邮件_分类)and o.name=FK_邮件_分类_REFERENCE_智慧标签)alter table 邮件_分类名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 34 页 -drop constraint FK_邮件_分类_REFERENCE_智慧标签go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(
16、o.id=r.constid and o.type=F)where r.fkeyid=object_id(邮件_处理)and o.name=FK_邮件_处理_REFERENCE_智慧标签)alter table 邮件_处理drop constraint FK_邮件_处理_REFERENCE_智慧标签go if exists(select 1 from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(邮件_目的地址)and o.name=FK_邮件_
17、目的地址 _REFERENCE_智慧标签)alter table 邮件_目的地址drop constraint FK_邮件_目的地址 _REFERENCE_智慧标签go if exists(select 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 34 页 -from sys.sysreferences r join sys.sysobjects o on(o.id=r.constid and o.type=F)where r.fkeyid=object_id(邮件_邮费)and o.name=FK_邮件_邮费_REFERENCE_邮件)alter table 邮件_邮
18、费drop constraint FK_邮件_邮费_REFERENCE_邮件go if exists(select 1 from sysobjects where id=object_id(中转站)and type=U)drop table 中转站go if exists(select 1 from sysobjects where id=object_id(发件人)and type=U)drop table 发件人go 名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 34 页 -if exists(select 1 from sysobjects where id=objec
19、t_id(发件人 _地址)and type=U)drop table 发件人_地址go if exists(select 1 from sysobjects where id=object_id(收件人)and type=U)drop table 收件人go if exists(select 1 from sysobjects where id=object_id(收件人 _地址)and type=U)drop table 收件人_地址go if exists(select 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 34 页 -from sysobjects wher
20、e id=object_id(智慧标签)and type=U)drop table 智慧标签go if exists(select 1 from sysobjects where id=object_id(运单)and type=U)drop table 运单go if exists(select 1 from sysobjects where id=object_id(邮件)and type=U)drop table 邮件go if exists(select 1 from sysobjects 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 34 页 -where id=o
21、bject_id(邮件_分类)and type=U)drop table 邮件_分类go if exists(select 1 from sysobjects where id=object_id(邮件_处理)and type=U)drop table 邮件_处理go if exists(select 1 from sysobjects where id=object_id(邮件_目的地址)and type=U)drop table 邮件_目的地址go if exists(select 1 from sysobjects where id=object_id(邮件_邮费)名师资料总结-精品资料
22、欢迎下载-名师精心整理-第 17 页,共 34 页 -and type=U)drop table 邮件_邮费go/*=*/*Table:中转站*/*=*/create table 中转站(邮件编号varchar(30)not null,中转站名字varchar(50)null,中转站电话integer null,运输工具varchar(10)null,运输工具编号varchar(30)null,到达时间datetime null,离开时间datetime null,constraint PK_中转站 primary key(邮件编号)go 名师资料总结-精品资料欢迎下载-名师精心整理-第 18
23、 页,共 34 页 -/*=*/*Table:发件人*/*=*/create table 发件人(发件人编号varchar(30)not null,邮件编号varchar(30)null,发件人姓名varchar(30)null,发件人地址varchar(50)null,发件人电话integer null,constraint PK_发件人 primary key(发件人编号)go/*=*/*Table:发件人_地址*/*=*/名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 34 页 -create table 发件人 _地址(发件人邮编integer not null,发件人
24、编号varchar(30)null,发件人地址varchar(50)null,constraint PK_发件人_地址 primary key(发件人邮编)go/*=*/*Table:收件人*/*=*/create table 收件人(收件人编号varchar(30)not null,邮件编号varchar(30)null,收件人姓名varchar(30)null,收件人地址varchar(50)null,收件人电话integer null,签收时间datetime null,constraint PK_收件人 primary key(收件人编号)名师资料总结-精品资料欢迎下载-名师精心整理-
25、第 20 页,共 34 页 -)go/*=*/*Table:收件人_地址*/*=*/create table 收件人 _地址(收件人邮编integer not null,收件人编号varchar(30)null,收件人地址varchar(50)null,constraint PK_收件人_地址 primary key(收件人邮编)go/*=*/*Table:智慧标签*/*=名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 34 页 -=*/create table 智慧标签(邮件编号varchar(30)not null,识别码varchar(30)null,邮件_邮件编号var
26、char(30)null,Maxicode 二维条码varchar(30)null,邮件类型varchar(5)null,尺寸varchar(30)null,重量/磅 float null,发送时间datetime null,时限datetime null,constraint PK_智慧标签primary key(邮件编号)go/*=*/*Table:运单*/*=*/create table 运单(名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 34 页 -运单号varchar(30)not null,邮件编号varchar(30)null,运输工具varchar(10)nu
27、ll,运输工具编号varchar(10)null,起发时间datetime null,到达时间datetime null,constraint PK_运单 primary key(运单号)go/*=*/*Table:邮件*/*=*/create table 邮件(邮件编号varchar(30)not null,邮件名称varchar(50)null,智慧标签varchar(30)null,发件人姓名varchar(30)null,收件人姓名varchar(30)null,名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 34 页 -发件数量integer null,发件时间dat
28、etime null,constraint PK_邮件 primary key(邮件编号)go/*=*/*Table:邮件_分类*/*=*/create table 邮件_分类(邮件编号varchar(30)not null,尺寸varchar(30)null,重量/磅 float null,类型varchar(5)null,constraint PK_邮件_分类 primary key(邮件编号)go/*=名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 34 页 -=*/*Table:邮件_处理*/*=*/create table 邮件_处理(邮件编号varchar(30)n
29、ull,目的邮递区号varchar(30)null,货袋varchar(30)null)go/*=*/*Table:邮件_目的地址*/*=*/create table 邮件_目的地址(目的邮递区号varchar(30)not null,邮件编号varchar(30)null,国家varchar(30)null,名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 34 页 -地区varchar(50)null,街道varchar(50)null,门牌号integer null,constraint PK_邮件_目的地址 primary key(目的邮递区号)go/*=*/*Table
30、:邮件_邮费*/*=*/create table 邮件_邮费(邮件编号varchar(30)not null,邮件名称varchar(30)null,尺寸varchar(30)null,重量/磅 float null,邮费money null,constraint PK_邮件_邮费 primary key(邮件编号)go 名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 34 页 -alter table 中转站add constraint FK_中转站 _REFERENCE_邮件 foreign key(邮件编号)references 邮件(邮件编号)go alter tabl
31、e 发件人add constraint FK_发件人 _REFERENCE_邮件 foreign key(邮件编号)references 邮件(邮件编号)go alter table 发件人 _地址add constraint FK_发件人_地址_REFERENCE_发件人 foreign key(发件人编号)references 发件人(发件人编号)go alter table 收件人add constraint FK_收件人 _REFERENCE_邮件 foreign key(邮件编号)名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 34 页 -references 邮件(
32、邮件编号)go alter table 收件人 _地址add constraint FK_收件人_地址_REFERENCE_收件人 foreign key(收件人编号)references 收件人(收件人编号)go alter table 智慧标签add constraint FK_智慧标签 _REFERENCE_邮件 foreign key(邮件_邮件编号)references 邮件(邮件编号)go alter table 运单add constraint FK_运单_REFERENCE_邮件 foreign key(邮件编号)references 邮件(邮件编号)go alter tabl
33、e 邮件_分类名师资料总结-精品资料欢迎下载-名师精心整理-第 28 页,共 34 页 -add constraint FK_邮件_分类_REFERENCE_智慧标签foreign key(邮件编号)references 智慧标签(邮件编号)go alter table 邮件_处理add constraint FK_邮件_处理_REFERENCE_智慧标签foreign key(邮件编号)references 智慧标签(邮件编号)go alter table 邮件_目的地址add constraint FK_ 邮 件 _目 的 地 址 _REFERENCE_智 慧 标 签foreign key
34、(邮件编号)references 智慧标签(邮件编号)go alter table 邮件_邮费add constraint FK_邮件_邮费_REFERENCE_邮件 foreign key(邮件编号)references 邮件(邮件编号)go 名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 34 页 -创建的数据库如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 34 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 31 页,共 34 页 -3.2.6 到目前为止,我们已经成功创建了数据库。4.数据分析4.1 我们在“智慧标签”这张表中创建了触发器
35、,可以根据我们所插入的邮件重量来对邮件进行分类;如:我们在第二行中插入数据,而在类型中并没有插入数据,在我们插入数据时触发触发器自动给邮件进行分类。在“邮件”这个表中我们也创建了触发器,即在插入或更新数据时,返回插入或更新的信息,方便对比查看:名师资料总结-精品资料欢迎下载-名师精心整理-第 32 页,共 34 页 -5.实验分析和总结万贵兴:在这次实验中完成了数据物理模型,ER 图,数据库的创建和测试等内容。通过实验发现在对于大的数据库设计时在分析需求上有很多缺陷,不够全面,甚至遗落很多重要的信息,而且在实名师资料总结-精品资料欢迎下载-名师精心整理-第 33 页,共 34 页 -现上,对于
36、数据库之间的关系上有很多模糊的地方,在规范化时不是很清晰,在逻辑上还有很多不足。通过这次实验提高了我们自己分析设计和完成实验报告等的能力,但缺陷不足的地方还有待进行改过。这次实验中我认为比较好是对货物的分类,虽然不是很符合实际操作。而且在使用 power designer 时,不一定要先建立概念模型再转换为物理模型,在power designer 中新建时可以直接选择创建物理模型,可省去概念模型创建步骤。李金亮:在本次试验中,首先是加深了对ER 图的深刻理解,通过看视频也领悟了物流系统是怎样工作的。其次,是将存储过程,触发器等的理解也加深了,特别是对于触发器,理解了通过对触发器的应用能够在具体的物流系统中对邮件的分类起到了重要作用。另外就是通过本次试验加深了我们自己对理论联系实际方面能力的应用。名师资料总结-精品资料欢迎下载-名师精心整理-第 34 页,共 34 页 -