计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc

上传人:文****钱 文档编号:43797 上传时间:2018-05-10 格式:DOC 页数:33 大小:4.05MB
下载 相关 举报
计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc_第1页
第1页 / 共33页
计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc_第2页
第2页 / 共33页
计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc_第3页
第3页 / 共33页
计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc_第4页
第4页 / 共33页
计算机科学与技术专业毕业设计(论文)港口货运统计与决策支持系统的设计与实现.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、本科生毕业论文(设计)题目港口货运统计与决策支持系统的设计与实现姓名学院信息科学技术学院专业计算机科学与技术班级计科学号19209226指导教师职称讲师2013年5月15日南京农业大学教务处制1目录摘要2关键词2ABSTRACT2KEYWORDS2引言21课题研究意义及内容211课题研究的背景与意义312课题研究的内容32相关理论与技术基础321ETL介绍3211ETL增量更新3212ETL的数据质量422KETTLE工具简介423ORACLE语句的应用5231ORACLE分析函数5232获得数据中的数字部分524POWERBUILDER的特点63港口货运统计与决策支持系统分析与设计731需求

2、分析7311港口物流操作流程7312系统目标732数据库设计7321数据库分析8322数据库结构设计833ETL设计10331ETL分析10332ETL设计1034查询及统计功能设计21341查询和统计模块21342登录模块214港口货运统计与决策支持系统的实现2241ETL转换的实现22411建立视图22412KETTLE程序2342界面实现255总结与展望30致谢31参考文献312港口货运统计与决策支持系统的设计与实现计算机科学与技术专业学生高旻指导老师胡滨摘要如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。研究箱状态信息查询和相

3、关数据统计以支持决策分析成为趋势。本文设计并实现了对连云港电子口岸诸多系统所涉及的数据进行抽取、转换、再造,建立一个数据底帐,在此底账的基础上对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。本文首先阐述了课题研究的背景、意义和内容,介绍了用到的主要理论知识,然后说明了数据库设计、ETL设计和界面设计。关键词ETL;统计;集装箱DESIGNANDIMPLEMENTATIONOFPORTCARGOSTATISTICSANDDECISIONSUPPORTSYSTEMSTUDENTMAJORINGINCOMPUTERSCIENCEANDTECHNOLOGY

4、GAOMINTUTORHUBINABSTRACTTODAY,CONTAINERTRANSPORTHASDEVELOPEDRAPIDLYINTHENETWORKENVIRONMENTTHEINFORMATIONSERVICESOFCONTAINERTRANSPORTNOLONGERJUSTTRANSPORTINFORMATION,BUTMOREANDMOREFOCUSONPROVIDINGVALUEADDEDINFORMATIONSERVICESTHISSUBJECTTRANSFORMSTHERAWDATAFROMTHELIANYUNGANGEDICENTERTOCREATEADATALEDGE

5、R,ANDTHENSTATISTICSIMPORTANDEXPORTCONTAINERVOLUMEANDQUERYSTATEOFCONTAINERONTHEBASISOFTHISLEDGERTHISPAPERFIRSTDESCRIBESTHEBACKGROUND,SIGNIFICANCEANDCONTENTOFTHERESEARCHTHENTHISPAPERWRITESTHEMAINTHEORETICALKNOWLEDGEABOUTTHISSUBJECTANDTHENTHISPAPEREXPLAINSDATABASEDESIGN,ETLDESIGNANDINTERFACEDESIGNKEYWO

6、RDSETLSTATISTICSCONTAINER目前,在港口企业,一般都建立有运输配送系统、仓储管理系统等信息系统。这些系统为港口企业累计了海量的业务信息。但是,这些软件都较简单、技术含量低,不具备提取并加工所存储的信息的功能,导致不能对企业中高层的经营管理提供决策支持,无法满足日益规范化的货代行业发展。如何使港口企业在日常生产经营过程中产生的大量经营业务数据为公司决策层在进行经营决策时发挥更大的作用,正是统计与决策支持系统所关注的问题。所以,建立一个统计与决策支持系统就成为目前港口企业信息化建设的工作之一。本课题便是研究港口货运统计与决策支持系统的设计与实现。1课题研究意义及内容311课题

7、研究的背景与意义连云港电子口岸是以港航电子数据交换业务为主的公司。随着口岸业务数据的大规模增长,连云港电子口岸逐步建形成了网上订舱、电子提箱、电子装箱单、场站系统、理货入库单系统等诸多业务系统。在出口业务方面,已经逐步形成了一条从订舱到放行装船的完整系统链条。本课题研究便是基于连云港电子口岸诸多系统所涉及的数据。如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。对已有信息进行分析加工,是所得到的新信息所具有的价值明显高于原有信息,这就是信息增值服务。这样,连云港电子口岸的仅以传送信息作为信息服务核心功能的系统就逐渐不能满足需求了。如何对

8、信息进行进一步的提炼以便用于增值服务中变的至关重要。所以,研究“港口货运统计与决策支持系统的设计与实现”具有可行性和必要性。12课题研究的内容首先,对各种历史数据进行抽取、转换、再造,整理出一些有辅助决策的数据来,主要用到的是KETTLE工具,数据库用的是ORACLE。即从各个系统里面,识别并找出最原始的数据,将这部分数据抽取出来,建立一个数据底帐;然后针对这个底帐,再回溯关联各个系统,追踪各个系统的状态变化,延时分析同步到底帐上,丰富底帐数据。这样,底帐数据其实就是一个集装箱从录入系统、做各种业务、最后完结的一个完整周期。对与辅助决策、或者协调各个业务系统都是有很重要的意义的。一方面对整体的

9、数据是一个新的认识,可以辅助决策,另一方面可以更好的协调当前运行的项目。其次,从对已整理出的底账数据进行查询、统计,界面的软件用的是POWERBUILDER。对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。一方面对整体的数据是一个新的认识,可以辅助决策,另一方面可以更好的协调当前运行的项目。2相关理论与技术基础21ETL介绍ETL的三个字母分别代表的是EXTRACT、TRANSFORM、LOAD,即抽取、转换、加载1。数据抽取即是从数据源中抽取目的系统需要的数据;数据转换即是将数据抽取中获取的数据按系统需求转换,使其成为目的系统要求的形式,并对不一

10、致、不需要的数据进行清洗和加工;数据加载即将转换后的数据载入目的系统数据源。ETL的核心在于T这个过程,也就是转换,而抽取和装载一般可以作为转换的输入和输出或者作为一个单独的部件,其复杂度没有转换部件高。ETL过程一般都是批量操作,不是针对单条记录的INSERT、UPDATE和SELECT等操作。ETL原本用于构建数据仓库2,负责将分布的、异构的数据源中的数据抽取到临时中间层中进行清洗、转换、集成,最后加载到数据仓库,成数为据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步3。211ETL增量更新ETL过程可分为全量过程和增量过程,前者对应首次的数据集成,后者对应

11、着数据的增量维护。增量更新按照数据种类的不同大概可以分成四种只增加,不更新;只更新,不增加;即增加也更新;有删除,有增加,有更新。这四种增量更新的思路大致相同,使用的步骤可能略有不同。增量更新的核心问题在与如何找出自上次更新以后的数据。方法一是使用时间戳。在原数据库增加一个时间戳,然后在转换之后的对应表保留4这个时间戳,然后每次抽取数据的时候,先读取这个目标数据库表的时间戳的最大值,把这个值当作参数传给原数据库的相应表,根据这个时间戳来做限定条件来抽取数据,抽取之后同样要保留这个时间戳。方法二是使用触发器。分别对INSERT,UPDATE,DELETE操作建立触发器,将源数据表中进行过这些操作

12、的数据加入到新表,在进行ETL的过程的时候读这个新表,在读完之后将这个表里面的数据删除掉。方法三是定时执行增量更新。比如两个小时或每天或者一个星期进行一次更新,这个时候可以不需要在目标表中增加一个时间戳字段来判断ETL进行的最大时间,直接在取得原数据库的时间加上限定条件。这个时候需要传一个参数,用GETSYSTEMINFO步骤来取得,而且你还可以控制时间的精度,比如到天还是到秒的时间。但这种方法,对某时段因为某种原因没有更新的情况处理比较麻烦,可能需要手工处理回来,如果失败的情况经常发生,那还是使用在目标数据库中增加一个时间字段取最大时间戳的方式比较通用。其他方法还有使用日志文件和使用全量数据

13、等。212ETL的数据质量ETL很难保证数据的百分百准确。数据不一定要求百分百准确,但要知道为什么不准确。首先在数据源方面,就可能存在影响数据质量的原因,如数据源中存在数据格式错误、数据不一致、数据录入不全等。在ETL过程要有处理这些质量有问题数据的保证。这些问题数据,是丢弃还是处理,无法逃避。如果没有质量保证,那么在这个过程中,错误会逐渐放大,影响下一环节。ETL过程中也有对数据准确性产生重大影响的因素,可以分为下面几类1、规则描述错误。设计人员对数据源系统理解的不充分,导致规则理解错误,这是一方面。另一方面,是规则的描述,如果无二义性地描述规则也是要探求的一个课题。2、ETL开发错误。即时

14、规则很明确,ETL开发的过程中也会发生一些错误,例如逻辑错误等。例如对同一数据可能存在增删改三种操作时,没有为三种操作排序,而是让其同时进行,导致可能出现数据已删除却又有对其修改得操作需要执行。3、人为处理错误。在整体ETL流程没有完成之前,通常会手工试运行ETL过程,这可能导致误删了数据、重复装载数据等。如果在源头不能保证比较干净的数据,那么后面的分析功能的可信度也都成问题。22KETTLE工具简介KETTLE是一款国外开源的ETL工具,纯JAVA编写4,可以在WINDOW、LINUX、UNIX上运行,绿色无需安装,可以运行于多个平台,数据抽取高效稳定。要运行KETTLE要求先安装JDK15

15、或以上版本。KETTLE中有两种脚本文件,其一是TRANSFORMATION即转换,后缀为KTR,其二为JOB即作业,后缀为KJB。TRANSFORMATION完成针对数据的基础转换,好比工厂里的生产流水线,每个组件相当于一个员工;JOB则完成整个工作流的控制,好比工厂里的管理。如果用记事本打开文件可发现转换和作业都是XML类型文件。作业分为分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执行前面的再执行后面的,每个步骤执行结果分两种TRUE成功/FALSE失败,根据返回结果可以控制流程走向。转换是一开始所有步骤同时运行,记录会从

16、最前端的步骤向后传递,传递到相应步骤则该记录被该步骤作相应处理,处理完成再把记录往后传递,记录传递分复制和分发两种模式。KETTLE家族目前包括4个产品SPOON、PAN、CHEF、KITCHEN。SPOON允许你通过图形界面来设计ETL转换。CHEF允许创建任务。PAN允许你批量运行由SPOON设计的5ETL转换,它是一个后台执行的程序,是一个数据转换引擎,没有图形界面。KITCHEN可以运行利用XML或数据资源库描述的任务,也是一个后台运行的程序。KETTLE提供了两种资源库的选择方式数据库存放、本地文件存放。数据库存放是通过数据库连接直接在数据库里面创建KETTLE表,表里面记录着你所做

17、的任何保存过的记录以及转换和任务。此方法是远程存放的方式,具有可多人共享一个资源库的优势,但是也存在资源库不稳定的缺点。23ORACLE语句的应用231ORACLE分析函数在日常的生产环境中,我们接触得比较多的是OLTP系统即联机事务处理系统,与此不同的是OLAP系统即联机分析处理系统。OLAP系统一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系在一起。这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询、统计操作为主。如查找上一年度各个销售区域排名前10的员工或按区域查找上一年度订单总额占区域订单总额20以上的客户或查找上一年度销售最好和最差的产

18、品。这两个例子和一般的查询有些不同,表现在1、需要对同样的数据进行不同级别的聚合操作;2、需要在表内将多条数据和同一条数据进行多次的比较;3、需要在排序完的结果集上进行额外的过滤操作。这时,一般的SELECT语句中的ORDERBY和GROUPBY便不能满足查询要求,需要用到分析函数。分析函数允许对一个数据集进排序和筛选,这是SQL不能实现的。分析函数通常用于计算数据累计值、数据移动值、数据中间值和输出集合报表。分析函数通过将行分组后,再计算这些分组的值。与聚合函数不同之处在于能够对每一分组返回多行值。分析函数根据分析子句将行分组,一个分组称为一个窗口,每一行都对应有一个在行上滑动的窗口。该窗口

19、确定当前行的计算范围,窗口大小可以用多个物理行进行度量,也可以使用逻辑区间进行度量,如时间。分析函数是在查询中除ORDERBY外最后执行的操作,所以分析函数只能用于选择列或ORDERBY子句,而不能用于WHERE、GROUPBY和HAVING子句中。分析函数的语法FUNCTION_NAME,OVER如SUMSALOVERPARTITIONBYDEPTNOORDERBYENAMEASNEW_ALIAS。其中SUM就是函数名,SAL是分析函数的参数,每个函数有03个参数,参数可以是表达式,例如SUMSALCOMM;OVER是一个关键字,用于标识分析函数,否则查询分析器不能区别SUM聚集函数和SUM

20、分析函数;PARTITIONBYDEPTNO是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区;ORDERBYENAME是可选的ORDERBY子句,有些函数需要它,有些则不需要,依靠已排序数据的那些函数,如用于访问结果集中前一行和后一行的LAG和LEAD时必须使用,而AVG则不需要。在使用了任何排序的开窗函数时,该子句是强制性的,,指定了在计算分析函数时一组内的数据是如何排序的。232获得数据中的数字部分方法一是使用TRANSLATE函数。TRANSLATE函数语法为TRANSLATESTRING,FROM_STR,TO_STR。此函数返回将FROM_STR中的每个字

21、符替换为TO_STR中的相应字符以后的STRING。TRANSLATE是REPLACE所提供的功能的一个超集。如果FROM_STR比6TO_STR长,那么在FROM_STR中而不在TO_STR中的额外字符将从STRING中被删除,因为它们没有相应的替换字符。TO_STR不能为空。ORACLE将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。将TRANSLATE函数用于得数据中的数字部分的例子SELECTTRANSLATE23456中国300,45,0123456789|23456中国300,45,0123456789FROMDUAL,其结果为23

22、45630045。方法二是自定义函数。可以自定义一函数来获取数据中的数字部分,如CREATEORREPLACEFUNCTIONF_FILTER_STRVAR_STRVARCHARRETURNVARCHARISVAR_STR_NEWVARCHAR22000BEGINFORIIN1LENGTHVAR_STRLOOPIFASCIISUBSTRVAR_STR,I,148ANDASCIISUBSTRVAR_STR,I,1SYSDATE01先抽取比当前系统时间少01天的数据,然后每隔2小时从视图中抽取数据。这样就可以达到定时更新的效果。但这种方法也有个弊端,即只能向底账插入数据和更新底账数据,当源表中某条

23、数据删除时,底账中的相应数据无法删除,导致数据不准确。选择用触发器还是用视图,就是在衡量是数据准确重要,还是保持不修改源表重要21的原则重要。在开发底账时,要尽量小的造成源表的修改,即对生产环境要做到零影响,也就是对源表做到只读。这是条很重要的原则,所以我牺牲了数据准确性,选择用创建视图的定时执行增量更新方法来处理剩余信息的ETL增量更新问题。34查询及统计功能设计341查询和统计模块货代、船代一线跑业务的人员平时在办理业务时,最关新的就是自己负责的提单或箱进行到何种状态了,有没有问题。而码头、船公司等的高层则关心的是每个月、每个季度或每年的进出口箱量、中转箱量等问题。所以,设计功能模块如图3

24、8。图38功能模块设计图功能模块的说明(1)查询箱状态输入箱号,查询到的内容包括箱基本信息、网上订舱信息、场站进出门信息、装卸船信息、箱信息回执信息。(2)查询提单状态输入提单号,显示提单所含的箱的所有状态、电子提箱状态、报检状态、提单回执信息。(3)进出口箱量统计输入年份,统计出新东方场站和东泰场站分别在该年份中每季度及一年的进口和出口箱量,并统计两场站每季度及一年的进口和出口箱量总和。(4)统计中转箱量统计输入年份,统计该年份每一季度和一年的进口中转箱和出口中转箱,并统计进出口中转量总和以及出口占总和的比率。(5)出口装箱单统计一是按年份统计该年份每个月的TEU箱数和自然箱箱数,二是按年份

25、时间段统计这几个年份的年TEU箱数和自然箱数做比较,三是统计某年或某年某月各个货代的TEU箱数和自然箱箱数。342登录模块登录信息表JM_USER包含三列,分别是用户名、密码和类型。类型决定这用户是只能使用查询模块,还是查询模块和统计模块都能使用,流程图如图39。查询箱状态查询提单状态进出口箱量统计中转箱量统计出口装箱单统计统计与决策支持系统查询模块统计模块登录用户名、密码正确22图39登录模块流程图4港口货运统计与决策支持系统的实现41ETL转换的实现ETL是通过建立视图和使用KETTLE工具实现的。其中进口舱单信息、船代报检信息在本系统中并没有使用到,但为了使底账完整,对这两部分数据也进行

26、了ETL转换,加入到了集装箱进出口信息底账表K_ETL_MAINSTATU中。411建立视图为了达到对数据源只读的效果,也为了方便ETL增量更新的实现,建立视图帮助数据抽取。例如抽取装箱单信息的视图为CREATEORREPLACEVIEWV_T_COSTCOASSELECT装箱单OASSTATU,BLNO,CTNNO,MSGTIMEASBLNOSTATUTIME,CTNTYPE,REAL_NAMEASCARGOAGENTFROMSELECTEBLNO,CCTNNO,EMSGTIME,ROW_NUMBEROVERPARTITIONBYEBLNO,CCTNNOORDERBYEMSGTIMEDESC

27、ASRN,BCTNTYPE,FREAL_NAMEFROMSERVSITEL_COSTCO_BLNOA,MSGCOSTCO_CARGOINFOD,SERVSITEL_COSTCO_CTNB,MSGCOSTCO_PARTPLCONINFOC,MSGCOSTCO_BLNOE,SERVSITELOGINFWHEREABLNOEBLNOANDBCTNNOCCTNNOANDFCOMP_CODEACODECARGOAGENTANDCCARGOIDDCARGOIDANDDBLIDEBLIDANDTO_DATEEMSGTIME,YYYYMMDDHH24MISSSYSDATE01AAWHERERN1其中SELEC

28、T后的列为需要抽取的字段。最外面一层的FROM中嵌套的SELECT语句用到了分析函数,这是按提单号、箱号分组并在组内按录入时间倒排序,即排在第一个的是这个提单、箱号的最新数据,在最后WHERERN1便是只选择了最新一条数据,将其他旧的无用信息排除,不抽取。TO_DATEEMSGTIME,YYYYMMDDHH24MISSSYSDATE01这句,便是选择了录入时间大于电脑系统时间减去24小时所得时间的数据。最里层的FROM的表便是设计的数据源的表。最终共建视图17个。23412KETTLE程序4121转换TRANSFORMATION场站进出门信息、箱信息回执信息、提单回执信息、进口舱单信息、装卸船

29、的转换如图41和图42。这五个信息是使用时间戳作为ETL增量更新的方法的,所以第一步要在底账中获取最大ID即时间戳,以提单信息回执为例,此步骤代码为SELECTDECODEMAXID,NULL,0,MAXIDASMAXIDFROMSELECTMAXCCRESPON_BLNO_INFO_IDASMAXIDFROMK_ETL_CCBLNORESPONSE。第二部根据第一步传入的最大ID从视图中抽取信息,以提单信息回执为例,此步骤代码为SELECTFROMV_K_CCBLNORESPONSEWHERECCRESPON_BLNO_INFO_ID,问号即上一步传来的参数。第三部将第二部抽取的数据载入底账

30、表,这里分两种情况,一种像提单信息回执和箱信息回执这种只插入不跟新的情况,另一种是像进出门信息和进口舱单信息这种不仅要能插入而且要能更新的情况。第一种直接用表输出组件即可;第二种需要用到插入/更新组件,以装卸船为例,组件需要填写的信息如图43。图41使用时间戳(1)图42使用时间戳(2)24图43插入/更新组件填写的信息使用定时执行增量更新的信息,转换分为两步,如图44和图45。第一步,从视图抽取数据。第二部将数据载入底账数据库。图44使用定时执行增量更新(1)图45使用定时执行增量更新(2)4122作业JOBJOB启动转换,若转换失败则写错误日志,并将日志发送至邮箱,这样就可从邮箱监控错误消

31、息,如图46。由于之前将视图的抽取条件设置为大于当前系统时间减去2425小时,所以JOB的循环执行时间必须小于24小时,因此定位2小时,即每两小时执行一次。图46JOB流程4123连接数据库转换中的每一步都需要连接其用到的数据库。新建数据库连接如图47。表输入和表输出连接的数据库是不同的。图47连接数据库步骤图42界面实现(1)登录界面登录见面如图48。图48登录界面(2)主界面登录后进入主界面,如图49。主界面一种是菜单栏里有查询和统计两项,还有一种没有统计选项。点击查询或统计会有会有下拉菜单,可以点击菜单中的项进入页面,26也可以用快捷方式打开。图49主界面(3)箱状态查询界面点击查询中的

32、箱状态查询进入此界面,界面如图410。图410箱信息查询界面由于箱号对于每种操作并不是唯一的,所以根据箱号选择的基本信息时日期最近的一次的,其他状态信息则是根据基本信息中的提单号和箱号同时匹配查询到的,因为同一提单中箱号是唯一的。例如网上订舱的查询语句为“SELECTCASEBLNOSTATUSOURCEWHEN0THEN初始WHEN1THEN船方确认WHEN2THEN船方删除WHEN3THEN修改状态WHEN4THEN正式报文生成ELSE货代提交撤单申请ENDASA,CODECARGO,CODESHIPPER,CTNNOSTATUTIMEFROMK_ETL_MAINSTATUTWHERE27

33、CTNNOSTATU网上订舱ANDCTNNO“M“ANDBLNO“SLE_2TEXT“。其中M为输入的箱号,SLE_2TEXT即基本信息中的提单号。(4)提单状态查询界面点击提单状态查询进入此界面,如图。白色的数据框显示了这个提单中所含箱的信息。图411提单状态查询界面(5)中转箱量统计点击统计目录下的中转箱量统计进入界面,如图。图412中转箱量统计界面进口TEU统计语句为STR_SQL“SELECTDISTINCT第1季度AS时间,DECODESUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20,NULL,0,SUMTRANSLATECTN

34、TYPE,0123456789|CTNTYPE,0123456789/20AS进口28TEUFROMK_T_ZZTWHEREIOSIGNIANDCODEDELIVERYCNLYGANDSUBSTRCTNNOSTATUTIME,5,2IN01,02,03ANDSUBSTRCTNNOSTATUTIME,1,4“M“STR_SQLSTR_SQL“UNIONSELECTDISTINCT第2季度AS时间,DECODESUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20,NULL,0,SUMTRANSLATECTNTYPE,0123456789|CTNT

35、YPE,0123456789/20AS进口TEUFROMK_T_ZZTWHEREIOSIGNIANDCODEDELIVERYCNLYGANDSUBSTRCTNNOSTATUTIME,5,2IN04,05,06ANDSUBSTRCTNNOSTATUTIME,1,4“M“STR_SQLSTR_SQL“UNIONSELECTDISTINCT第3季度AS时间,DECODESUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20,NULL,0,SUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20AS进口T

36、EUFROMK_T_ZZTWHEREIOSIGNIANDCODEDELIVERYCNLYGANDSUBSTRCTNNOSTATUTIME,5,2IN07,08,09ANDSUBSTRCTNNOSTATUTIME,1,4“M“STR_SQLSTR_SQL“UNIONSELECTDISTINCT第4季度AS时间,DECODESUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20,NULL,0,SUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20AS进口TEUFROMK_T_ZZTWHEREIOSI

37、GNIANDCODEDELIVERYCNLYGANDSUBSTRCTNNOSTATUTIME,5,2IN10,11,12ANDSUBSTRCTNNOSTATUTIME,1,4“M“STR_SQLSTR_SQL“UNIONSELECTDISTINCT总计AS时间,DECODESUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20,NULL,0,SUMTRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789/20AS进口TEUFROMK_T_ZZTWHEREIOSIGNIANDCODEDELIVERYCNLYGA

38、NDSUBSTRCTNNOSTATUTIME,1,4“M“其中M是输入的年份。最终的STR_SQL就是进口TEU统计语句。由于箱型这个属性中箱大小和箱类型是放在一起的,但箱大小是数字40或20,而箱类型是字母代码,所以获得箱大小只要提取其中数字部分即TRANSLATECTNTYPE,0123456789|CTNTYPE,0123456789。集装箱的大小有20的小箱和40的大箱。TEU箱量将40的大箱记做两个箱子,20的小箱几座一个;自然箱箱量是实际有几个箱子就算几个。所以在算TEU箱量时先把所有箱大小值相加再除以20。(6)出口装箱单统计界面点击统计目录下的出口装箱单统计进入界面,如图413

39、。29图413进出口箱单统计界面出口装箱单统计界面不仅将新东方场站和东泰场站的出口装箱量和进口卸箱量分别做了对比,而且各场站自己的进出口箱量也做了对比,整个连云港的进出口对比也很清楚。(7)出口装箱单统计界面点击统计目录下的出口装箱单统计进入界面,如图414。界面中的统计图有三种显示选择,即柱状图、线图、带图,缺省为柱状图。图414出口装箱单月箱量统计界面点击年箱量统计,如图415。30图415出口装箱单年箱量统计界面点击货代箱量,如图416。图416出口装箱单货代箱量统计界面货代箱量中可以按年统计,则填写年份并且不写月份;若要按月统计则出入年份和月份;若只输入月份没有输入年份则会提示“请输入

40、年份”;若都没有输入就按确定则会提示“请输入”。5总结与展望本文在连云港电子口岸网上订舱、电子提箱、电子装箱单、场站系统、理货入库单系统等诸多业务系统产生的数据的基础上,通过对船代、货代等系统使用方的需求的分31析,针对ETL转换技术进行研究,形成了底账数据库,设计实现了港口货运统计与决策支持系统。具体来说,本文具体工作及其特色主要体现在以下几个方面(1)设计底账数据库,用以查询和统计。(2)设计ETL转换。根据需求确定要提取的字段,根据字段确定涉及的表,再关联表作为数据源以便抽取需要的数据。根据抽取字段的特点设计ETL增量更新。(3)在底账基础上建立联合查询和箱量统计。通过分析以及对数据库查

41、询语句的研究,成功应用ORACLE作为数据库,基于WINDOWS平台和POWERBUILDER实现了港口货运统计与决策支持系统实例。通过本文的研究,对形成数据底账和ETL有了深入的了解,有利于今后研究数据仓库和数据挖掘。但由于多方面的原因,本课题的研究还有很多不足之处,需要改进的地方体现在以下一些方面(1)在因为在设计ETL增量更新时部分信息采用定时执行增量更新来插入数据,所以要在视图中设置一个限定时间,目前是当前系统减24小时。又根据这个时间限制把JOB的循环时间设置为了两小时。这对统计没有影响,但对于有实时要求的查询来说就有影响了,有信息延迟的问题。这个虽然可以通过减少设定的时间差来解决,

42、但这样JOB就要频繁执行。所以希望找到其他方法解决。(2)POWERBUILDER设计的界面有些简陋,可以设计的更美观些。(3)统计数据方面对百分比、平均值等运用的较少。致谢本论文最终能顺利完成,首先应感谢我的导师胡滨老师自始至终给予的关心和指导。无论是在论文选题、开题、写作阶段还是在项目的实践过程中,胡老师都加以悉心的指导。导师严谨的治学作风和求实的工作态度都深深地影响着我。忠心感谢各位老师,在我读本科生的时间里,在物质和精神上给我提供的巨大支持,使我顺利完成了学业。在论文的写作过程中,很多同学为我提供了很多帮助,值此机会向他们表示诚挚的谢意。本论文的写作参考、引用了很多书籍及文献,在此向这

43、些文章的作者表示深深的谢意。感谢我的父母和亲人,正是有了他们的关心和支持,我的学业才得以顺利完成。最后,再次感谢所有关心和爱护过我的老师、亲人、同学和朋友参考文献1何涛使用ETL工具KETTLE实现图书馆联盟信息系统数据集成J科学咨询,2009,2347482陈园园,陶飞社保信息系统中数据迁移的实现J苏州市职业大学学报,2011,222283宋鹏,廉继红ETL技术在复杂数据迁移项目中的应用J西安工程大学学报,2008,22444944马盈盈,杨晓牧,刘华ETLKETTLE技术在交通流量调查中的应用研究J中国交通信息化,2012,101355陈桂友POWERBUILDER数据库开发技术M2版机械

44、工业出版社,200910116程永强,李茜,詹红霞POWERBUILDER数据库开发经典实例精解M1版机械工业出版社,200737WILLIAMGREENPOWERBUILDERADVANCEDCLIENT/SERVERDEVELOPMENTSAMSPUBLISHING,200310118管鸿,钟秋海,程春ORACLE数据库管理系统在POWERBUILDER下的实现J计算机工程,2005,31187329HATFIELDBDEVELOPINGPOWERBUILDER5APPLICATIONFOURTHEDITIONSAMS,19960910张翠肖,樊金生POWERBUILDER105实用教程M1版科学出版社,20096

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。