港口货运统计与决策支持系统的设计与实现毕业论文.doc
《港口货运统计与决策支持系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《港口货运统计与决策支持系统的设计与实现毕业论文.doc(33页珍藏版)》请在三一办公上搜索。
1、 本科生毕业论文(设计)题 目: 港口货运统计与决策支持系统的 设计与实现 姓 名: 学 院: 信息科学技术学院 专 业: 计算机科学与技术 班 级: 计科92 学 号: 19209226 指导教师: 职称: 讲 师 2013 年 5月15日南京农业大学教务处制目 录摘要2关键词2Abstract2Key words2引言21 课题研究意义及内容21.1 课题研究的背景与意义31.2 课题研究的内容32 相关理论与技术基础32.1 ETL介绍 32.1.1 ETL增量更新32.1.2 ETL的数据质量42.2 kettle工具简介42.3 oracle语句的应用52.3.1 oracle分析函
2、数52.3.2 获得数据中的数字部分52.4 powerbuilder的特点63 港口货运统计与决策支持系统分析与设计73.1 需求分析73.1.1 港口物流操作流程73.1.2 系统目标73.2 数据库设计73.2.1 数据库分析83.2.2 数据库结构设计83.3 ETL设计103.3.1 ETL分析103.3.2 ETL 设计103.4 查询及统计功能设计213.4.1查询和统计模块213.4.2 登录模块214 港口货运统计与决策支持系统的实现224.1 ETL转换的实现224.1.1 建立视图224.1.2 kettle程序234.2 界面实现255 总结与展望30致谢31参考文献3
3、1港口货运统计与决策支持系统的设计与实现 摘要:如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。研究箱状态信息查询和相关数据统计以支持决策分析成为趋势。本文设计并实现了对连云港电子口岸诸多系统所涉及的数据进行抽取、转换、再造,建立一个数据底帐,在此底账的基础上对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。本文首先阐述了课题研究的背景、意义和内容,介绍了用到的主要理论知识,然后说明了数据库设计、ETL设计和界面设计。关键词:ETL;统计;集装箱Design and Implementati
4、on of Port Cargo Statistics and Decision Support System Abstract:Today, container transport has developed rapidly in the network environment.The information services of container transport no longer just transport information, but more and more focus on providing value-added information services.Thi
5、s subject transforms the raw data from the Lianyungang EDI Center to create a data ledger ,and then statistics import and export container volume and query state of container on the basis of this ledger.This paper first describes the background, significance and content of the research.Then this pap
6、er writes the main theoretical knowledge about this subject.And then this paper explains database design, ETL design and interface design.Key words: ETL;statistics;container 目前,在港口企业,一般都建立有运输配送系统、仓储管理系统等信息系统。这些系统为港口企业累计了海量的业务信息。但是,这些软件都较简单、技术含量低,不具备提取并加工所存储的信息的功能,导致不能对企业中高层的经营管理提供决策支持,无法满足日益规范化的货代行业
7、发展。如何使港口企业在日常生产经营过程中产生的大量经营业务数据为公司决策层在进行经营决策时发挥更大的作用,正是统计与决策支持系统所关注的问题。所以,建立一个统计与决策支持系统就成为目前港口企业信息化建设的工作之一。本课题便是研究港口货运统计与决策支持系统的设计与实现。1 课题研究意义及内容1.1 课题研究的背景与意义连云港电子口岸是以港航电子数据交换业务为主的公司。随着口岸业务数据的大规模增长,连云港电子口岸逐步建形成了网上订舱、电子提箱、电子装箱单、场站系统、理货入库单系统等诸多业务系统。在出口业务方面,已经逐步形成了一条从订舱到放行装船的完整系统链条。本课题研究便是基于连云港电子口岸诸多系
8、统所涉及的数据。如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。对已有信息进行分析加工,是所得到的新信息所具有的价值明显高于原有信息,这就是信息增值服务。这样,连云港电子口岸的仅以传送信息作为信息服务核心功能的系统就逐渐不能满足需求了。如何对信息进行进一步的提炼以便用于增值服务中变的至关重要。所以,研究“港口货运统计与决策支持系统的设计与实现”具有可行性和必要性。1.2 课题研究的内容首先,对各种历史数据进行抽取、转换、再造,整理出一些有辅助决策的数据来,主要用到的是kettle工具,数据库用的是oracle。即从各个系统里面,识别并
9、找出最原始的数据,将这部分数据抽取出来,建立一个数据底帐;然后针对这个底帐,再回溯关联各个系统,追踪各个系统的状态变化,延时分析同步到底帐上,丰富底帐数据。这样,底帐数据其实就是一个集装箱从录入系统、做各种业务、最后完结的一个完整周期。对与辅助决策、或者协调各个业务系统都是有很重要的意义的。一方面对整体的数据是一个新的认识,可以辅助决策,另一方面可以更好的协调当前运行的项目。其次,从对已整理出的底账数据进行查询、统计,界面的软件用的是powerbuilder。对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。一方面对整体的数据是一个新的认识,可以辅助
10、决策,另一方面可以更好的协调当前运行的项目。2 相关理论与技术基础2.1 ETL介绍ETL的三个字母分别代表的是extract、transform、load,即抽取、转换、加载1。数据抽取即是从数据源中抽取目的系统需要的数据;数据转换即是将数据抽取中获取的数据按系统需求转换,使其成为目的系统要求的形式,并对不一致、不需要的数据进行清洗和加工;数据加载即将转换后的数据载入目的系统数据源。 ETL的核心在于T这个过程,也就是转换,而抽取和装载一般可以作为转换的输入和输出或者作为一个单独的部件,其复杂度没有转换部件高。ETL过程一般都是批量操作,不是针对单条记录的insert、update和sele
11、ct等操作。ETL原本用于构建数据仓库2,负责将分布的、异构的数据源中的数据抽取到临时中间层中进行清洗、转换、集成,最后加载到数据仓库,成数为据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步3。2.1.1 ETL增量更新ETL过程可分为全量过程和增量过程,前者对应首次的数据集成,后者对应着数据的增量维护。增量更新按照数据种类的不同大概可以分成四种:只增加,不更新;只更新,不增加;即增加也更新;有删除,有增加,有更新。这四种增量更新的思路大致相同,使用的步骤可能略有不同。增量更新的核心问题在与如何找出自上次更新以后的数据。方法一是使用时间戳。在原数据库增加一个时间
12、戳,然后在转换之后的对应表保留这个时间戳,然后每次抽取数据的时候,先读取这个目标数据库表的时间戳的最大值,把这个值当作参数传给原数据库的相应表,根据这个时间戳来做限定条件来抽取数据,抽取之后同样要保留这个时间戳。方法二是使用触发器。分别对insert , update , delete 操作建立触发器,将源数据表中进行过这些操作的数据加入到新表,在进行ETL的过程的时候读这个新表,在读完之后将这个表里面的数据删除掉。方法三是定时执行增量更新。比如两个小时或每天或者一个星期进行一次更新,这个时候可以不需要在目标表中增加一个时间戳字段来判断ETL进行的最大时间,直接在取得原数据库的时间加上限定条件
13、。这个时候需要传一个参数,用get System Info 步骤来取得,而且你还可以控制时间的精度,比如到天还是到秒的时间。但这种方法,对某时段因为某种原因没有更新的情况处理比较麻烦,可能需要手工处理回来,如果失败的情况经常发生,那还是使用在目标数据库中增加一个时间字段取最大时间戳的方式比较通用。其他方法还有使用日志文件和使用全量数据等。2.1.2 ETL的数据质量ETL很难保证数据的百分百准确。数据不一定要求百分百准确,但要知道为什么不准确。首先在数据源方面,就可能存在影响数据质量的原因,如数据源中存在数据格式错误、数据不一致、数据录入不全等。在ETL过程要有处理这些质量有问题数据的保证。这
14、些问题数据,是丢弃还是处理,无法逃避。如果没有质量保证,那么在这个过程中,错误会逐渐放大,影响下一环节。ETL过程中也有对数据准确性产生重大影响的因素,可以分为下面几类:1、 规则描述错误。设计人员对数据源系统理解的不充分,导致规则理解错误,这是一方面。另一方面,是规则的描述,如果无二义性地描述规则也是要探求的一个课题。2、ETL开发错误。即时规则很明确,ETL开发的过程中也会发生一些错误,例如逻辑错误等。例如对同一数据可能存在增删改三种操作时,没有为三种操作排序,而是让其同时进行,导致可能出现数据已删除却又有对其修改得操作需要执行。3、人为处理错误。在整体ETL流程没有完成之前,通常会手工试
15、运行ETL过程,这可能导致误删了数据、重复装载数据等。如果在源头不能保证比较干净的数据,那么后面的分析功能的可信度也都成问题。2.2 kettle工具简介Kettle是一款国外开源的etl工具,纯java编写4,可以在Window、Linux、Unix上运行,绿色无需安装,可以运行于多个平台,数据抽取高效稳定。要运行KETTLE要求先安装JDK1.5或以上版本。Kettle中有两种脚本文件,其一是transformation即转换,后缀为.ktr,其二为job即作业, 后缀为.kjb。transformation完成针对数据的基础转换,好比工厂里的生产流水线,每个组件相当于一个员工;job则完
16、成整个工作流的控制,好比工厂里的管理。如果用记事本打开文件可发现转换和作业都是xml类型文件。作业分为分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执行前面的再执行后面的,每个步骤执行结果分两种:true(成功)/false(失败),根据返回结果可以控制流程走向。转换是一开始所有步骤同时运行,记录会从最前端的步骤向后传递,传递到相应步骤则该记录被该步骤作相应处理,处理完成再把记录往后传递,记录传递分复制和分发两种模式。Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。SPOON 允许你通过图形界面来
17、设计ETL转换。CHEF允许创建任务。PAN 允许你批量运行由Spoon设计的ETL转换,它是一个后台执行的程序,是一个数据转换引擎,没有图形界面。Kitchen可以运行利用XML或数据资源库描述的任务,也是一个后台运行的程序。Kettle提供了两种资源库的选择方式:数据库存放、本地文件存放。数据库存放是通过数据库连接直接在数据库里面创建kettle表,表里面记录着你所做的任何保存过的记录以及转换和任务。此方法是远程存放的方式,具有可多人共享一个资源库的优势,但是也存在资源库不稳定的缺点。2.3 oracle语句的应用2.3.1 oracle分析函数在日常的生产环境中,我们接触得比较多的是OL
18、TP系统即联机事务处理系统,与此不同的是OLAP系统即联机分析处理系统。OLAP系统一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系在一起。这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询、统计操作为主。如查找上一年度各个销售区域排名前10的员工或按区域查找上一年度订单总额占区域订单总额20%以上的客户或查找上一年度销售最好和最差的产品。这两个例子和一般的查询有些不同,表现在:1、 需要对同样的数据进行不同级别的聚合操作;2、 需要在表内将多条数据和同一条数据进行多次的比较;3、 需要在排序完的结果集上进行额外的过滤操作。这时,一般的selec
19、t语句中的order by和group by 便不能满足查询要求,需要用到分析函数。分析函数允许对一个数据集进排序和筛选,这是SQL不能实现的。分析函数通常用于计算数据累计值、数据移动值、数据中间值和输出集合报表。分析函数通过将行分组后,再计算这些分组的值。与聚合函数不同之处在于能够对每一分组返回多行值。分析函数根据分析子句将行分组,一个分组称为一个窗口,每一行都对应有一个在行上滑动的窗口。该窗口确定当前行的计算范围,窗口大小可以用多个物理行进行度量,也可以使用逻辑区间进行度量,如时间。分析函数是在查询中除order by 外最后执行的操作,所以分析函数只能用于选择列或 order by子句,
20、而不能用于where、group by和having子句中。分析函数的语法:FUNCTION_NAME(,.)OVER()如:sum(sal) over (partition by deptno order by ename) as new_alias。其中sum就是函数名,(sal)是分析函数的参数,每个函数有03个参数,参数可以是表达式,例如:sum(sal+comm);over 是一个关键字,用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数;partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区;
21、order by ename 是可选的order by 子句,有些函数需要它,有些则不需要,依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD时必须使用,而AVG则不需要。在使用了任何排序的开窗函数时,该子句是强制性的,,指定了在计算分析函数时一组内的数据是如何排序的。2.3.2 获得数据中的数字部分方法一是使用translate函数。translate函数语法为TRANSLATE(string, from_str,to_str)。此函数返回将from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 港口货运统计与决策支持系统的设计与实现 毕业论文 港口 货运 统计 决策 支持系统 设计 实现
链接地址:https://www.31ppt.com/p-3987509.html