




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档云南大学软件学院实 验 报 告课程:数据库原理与使用技术实验 任课教师:张璇 王伟 朱艳萍姓名:万贵兴 学号:20081120240 专业:软件工程 成绩: 姓名:李金亮 学号:20081120229 专业:软件工程 成绩: 实验10 数据库设计1. 引言1.1 编写目的这是为物流系统做物流数据库,用来在快递公司中处理快递邮件,提供货物的查询和物流公司对邮件的管理等。1.2 背景a. 开发数据库名称:ups物流系统数据库b. 提出者:教师 开发者:万贵兴、李金亮 用户:快递公司1.3 定义 目的邮递区号:这个是在对货物处理时重要的识别码,在通过DWS扫描时,可以根据目的邮递区号来把货物传送到正确的传送带,然后传入正确的货袋,进行装载和运输。邮件_分类:在ups中对货物的分类,可以从简单的重量和形状来区分,对邮件进行分类后可以加快货物的处理速度和处理数量,而且可以保护某些特殊和重要的货物在传输过程中不受损坏等。运单:里面包含有运输工具的内容,可以方便用户查询货物是通过什么运输工具运输的和什么时候运输、预计到达时间。智慧标签:这个是在ups的DWS系统扫描时的重要内容,智慧标签中包含了货物的基本信息,特别是目的邮递区号,而且其中的Maxicode二维标签和其他的标签有很大区别。1.4 参考资料Ups优比速快递短片,物流系统简介,网上查找的关于物流行业的介绍。2. 外部设计 2.1 标识符的状态 邮件编号:它是识别邮件最快也最有效的标识符,不同的邮件对应不同的邮件编号,而且是唯一的,如一个学生的学号一样。它可以唯一的确定一个邮件货物。目的邮递区号:它可以在ups的世界港中处理邮件时正确的将货物发送到正确的传送带,与货袋的目的邮递区号进行对别,从而将邮件装载入正确的货袋,送达正确的目的地,而在其中人为或以外的错误都可能导致邮件不能在规定的时限内正确的送达目的地。运单号:每一次的运输,运单号都是唯一的,它可以让客户,通过运单号或邮件号来查询邮件的运输信息,采用设那么工具运输,出发时间和预计到达时间等。收件人编号、发件人编号:这可以是可有可无的,这个在运输的途中不是很必须的,使用这两个是为了方便货物的处理,客户的查询等。发件人邮编和发件人地址、收件人邮编和收件人地址:用这样的组合作为主标识符,是为了消除在对数据库的更新或插入时出现异常,而且这样也是对表进行规范化。2.2 支持软件Power designer 主要用来建立概念模型、物理模型、定义数据表之间的关系,生成脚本创建数据库,也可以用来做建模和运用其中的反向工程:数据库物理模型概念模型ER图来生成ER图等。SQL sever 2005 用来使用power designer 生成的脚本语言创建数据库,并对数据库进行管理。3. 结构设计3.1 概念结构设计power designer 本可以先经过建立概念模型,然后转换为相应的物理模型,从而创建数据库,但在打开power designer 12.5时在new 菜单中可以直接创建物理模型:如下然后可以在工作区域直接进行模型建立和对各实体、表属性进行规范化。最后,通过脚本语言创建数据库,并在SQL sever 中对数据库建立相应的存储过程、试图、触发器,对数据库进行数据操作,测试数据库。3.2 详细设计 3.2.1 首先,先建立相应的物理模型:如下 下面两个分别是实体收件人和发件人的信息: 从中对其规范化以下可以得到: 对其中某些多值属性和复合属性进行设计: 如智慧标签在表中它是一个多值属性,那么要对它进行单独建表等。这样就可以满足2范式了,这样的设计可以在数据库中插入或更新数据时减少或消除异常。 3.2.2 在ups视频中我们注意到,在整个货物处理中,它都有一个很重要的标签智慧标签。它里面基本覆盖了货物的所有信息,通过它可以正确的得到货物要投递到的地址信息,其中起关键作用的“目的邮递区号”,它货物处理时可以准确的将货物传送到正确的货袋进行装运。现实中的智慧标签涵盖的内容或许更多远不止我们在实验中设计的那么简单,如下: 而其在货物通过DWS系统检测时,系统可以精确的扫描出货物的智慧标签、尺寸、重量等,进而将货物分类,在这次实验中我们是使用重量来对货物进行分类。 虽然在ups中它通过DWS扫描对货物进行分类,它可以通过重量和邮件形状来分类,但通过形状来分类总有写不太方便,所以通过重量和人工联合来分类会比较精确,但在这次实验中我们采用重量来分类。3.2.3 在power designer 中可以运用反向工程生成E-R图:即 数据库-物理模型-概念模型-E-R图 下面是我们运用power designer 反向工程使用脚本生成的E-R图: 实际中一般情况都是先进行ER图的设计和制作后,在通过ER图来进行数据库等的创建和管理,但在某些情况可以使用逆向工程来实现ER图的生成。4. 3.2.4 在这次实验中,我们为了能进行货物的分类,我们在智慧标签上做了触发器,当货物的重量符合某个条件时,会触发触发器对货物进行分类,将其分为:小件、包裹或特殊类货物,这样分类的好处是方便在货物处理中更快捷和安全的处理货物。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) where r.fkeyid = object_id(中转站) and = FK_中转站_REFERENCE_邮件)alter table 中转站 drop constraint FK_中转站_REFERENCE_邮件goif 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 = FK_发件人_REFERENCE_邮件)alter table 发件人 drop constraint FK_发件人_REFERENCE_邮件goif 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 = FK_发件人_地址_REFERENCE_发件人)alter table 发件人_地址 drop constraint FK_发件人_地址_REFERENCE_发件人goif 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 = FK_收件人_REFERENCE_邮件)alter table 收件人 drop constraint FK_收件人_REFERENCE_邮件goif 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 = FK_收件人_地址_REFERENCE_收件人)alter table 收件人_地址 drop constraint FK_收件人_地址_REFERENCE_收件人goif 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 = FK_智慧标签_REFERENCE_邮件)alter table 智慧标签 drop constraint FK_智慧标签_REFERENCE_邮件goif 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 = FK_运单_REFERENCE_邮件)alter table 运单 drop constraint FK_运单_REFERENCE_邮件goif 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 = FK_邮件_分类_REFERENCE_智慧标签)alter table 邮件_分类 drop constraint FK_邮件_分类_REFERENCE_智慧标签goif 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 = FK_邮件_处理_REFERENCE_智慧标签)alter table 邮件_处理 drop constraint FK_邮件_处理_REFERENCE_智慧标签goif 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 = FK_邮件_目的地址_REFERENCE_智慧标签)alter table 邮件_目的地址 drop constraint FK_邮件_目的地址_REFERENCE_智慧标签goif 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 = FK_邮件_邮费_REFERENCE_邮件)alter table 邮件_邮费 drop constraint FK_邮件_邮费_REFERENCE_邮件goif exists (select 1 from sysobjects where id = object_id(中转站) and type = U) drop table 中转站goif exists (select 1 from sysobjects where id = object_id(发件人) and type = U) drop table 发件人goif exists (select 1 from sysobjects where id = object_id(发件人_地址) and type = U) drop table 发件人_地址goif exists (select 1 from sysobjects where id = object_id(收件人) and type = U) drop table 收件人goif exists (select 1 from sysobjects where id = object_id(收件人_地址) and type = U) drop table 收件人_地址goif exists (select 1 from sysobjects where id = object_id(智慧标签) and type = U) drop table 智慧标签goif exists (select 1 from sysobjects where id = object_id(运单) and type = U) drop table 运单goif exists (select 1 from sysobjects where id = object_id(邮件) and type = U) drop table 邮件goif exists (select 1 from sysobjects where id = object_id(邮件_分类) and type = U) drop table 邮件_分类goif exists (select 1 from sysobjects where id = object_id(邮件_处理) and type = U) drop table 邮件_处理goif exists (select 1 from sysobjects where id = object_id(邮件_目的地址) and type = U) drop table 邮件_目的地址goif exists (select 1 from sysobjects where id = object_id(邮件_邮费) 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/*=*/* Table: 发件人 */*=*/create table 发件人 ( 发件人编号 varchar(30) not null, 邮件编号 varchar(30) null, 发件人姓名 varchar(30) null, 发件人地址 varchar(50) null, 发件人电话 integer null, constraint PK_发件人 primary key (发件人编号)go/*=*/* Table: 发件人_地址 */*=*/create table 发件人_地址 ( 发件人邮编 integer not null, 发件人编号 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 (收件人编号)go/*=*/* Table: 收件人_地址 */*=*/create table 收件人_地址 ( 收件人邮编 integer not null, 收件人编号 varchar(30) null, 收件人地址 varchar(50) null, constraint PK_收件人_地址 primary key (收件人邮编)go/*=*/* Table: 智慧标签 */*=*/create table 智慧标签 ( 邮件编号 varchar(30) not null, 识别码 varchar(30) null, 邮件_邮件编号 varchar(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 运单 ( 运单号 varchar(30) not null, 邮件编号 varchar(30) null, 运输工具 varchar(10) null, 运输工具编号 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, 发件数量 integer null, 发件时间 datetime 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/*=*/* Table: 邮件_处理 */*=*/create table 邮件_处理 ( 邮件编号 varchar(30) null, 目的邮递区号 varchar(30) null, 货袋 varchar(30) null)go/*=*/* Table: 邮件_目的地址 */*=*/create table 邮件_目的地址 ( 目的邮递区号 varchar(30) not null, 邮件编号 varchar(30) null, 国家 varchar(30) null, 地区 varchar(50) null, 街道 varchar(50) null, 门牌号 integer null, constraint PK_邮件_目的地址 primary key (目的邮递区号)go/*=*/* Table: 邮件_邮费 */*=*/create table 邮件_邮费 ( 邮件编号 varchar(30) not null, 邮件名称 varchar(30) null, 尺寸 varchar(30) null, 重量/磅 float null, 邮费 money null, constraint PK_邮件_邮费 primary key (邮件编号)goalter table 中转站 add constraint FK_中转站_REFERENCE_邮件 foreign key (邮件编号) references 邮件 (邮件编号)goalter table 发件人 add constraint FK_发件人_REFERENCE_邮件 foreign key (邮件编号) references 邮件 (邮件编号)goalter table 发件人_地址 add constraint FK_发件人_地址_REFERENCE_发件人 foreign key (发件人编号) references 发件人 (发件人编号)goalter table 收件人 add constraint FK_收件人_REFERENCE_邮件 foreign key (邮件编号) references 邮件 (邮件编号)goalter table 收件人_地址 add constraint FK_收件人_地址_REFERENCE_收件人 foreign key (收件人编号) references 收件人 (收件人编号)goalter table 智慧标签 add constraint FK_智慧标签_REFERENCE_邮件 foreign key (邮件_邮件编号) references 邮件 (邮件编号)goalter table 运单 add constraint FK_运单_REFERENCE_邮件 foreign key (邮件编号) references 邮件 (邮件编号)goalter table 邮件_分类 add constraint FK_邮件_分类_REFERENCE_智慧标签 foreign key (邮件编号) references 智慧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 等离子体辅助打印-洞察及研究
- 手指画菠萝课件
- 手指挤压砸伤安全培训课件
- 化肥厂成品保质期管理细则
- 江西省赣州市信丰县第四中学2024-2025学年八年级下学期3月月考生物试题(含答案)
- 第26章 反比例函数 单元测试(含答案)人教版数学九年级下册
- 2024-2025学年浙江省杭州市多校联考人教版三年级上册期中测试数学试卷(无答案)
- 脱水信号感知-洞察及研究
- 学生日常安全培训课件
- 学生心理安全健康培训课件
- 科技研发公司保密管理制度
- 激素与子宫内膜容受性-洞察及研究
- 医院科教相关管理制度
- 无锡信捷校招笔试题目及答案
- 2024第41届全国中学生物理竞赛预赛试题(含答案)
- 《慢性硬膜下血肿》课件
- PRP治疗注意事项
- 2025年泰和县工投建设集团有限公司及子公司招聘笔试参考题库含答案解析
- 企业事业部制信息化与数字化转型
- (新版)中国心理卫生协会心理咨询师考试复习题库(浓缩400题)
- 南昌大学 2018-2019学年第二学期期中考试大学英语试卷
评论
0/150
提交评论