DM 9394 Tamara Milovanović

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 81

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА У


НОВОМ САДУ

Тамара Миловановић

АРХИТЕКТУРА И ETL ПОДРШКА СИСТЕМА ЗА


АНАЛИЗУ АВИОНСКИХ ЛЕТОВА НА ПОДРУЧЈУ
СЈЕДИЊЕНИХ АМЕРИЧКИХ ДРЖАВА

Mастер рад

Нови Сад, 2017


УНИВЕРЗИТЕТ У НОВОМ САДУ  ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА
21000 НОВИ СА Д, Трг Д оситеја Обрадови ћа 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:


Идентификациони број, ИБР:
Тип документације, ТД: Монографска документација
Тип записа, ТЗ: Текстуални штампани материјал
Врста рада, ВР: Мастер рад
Аутор, АУ: Тамара Миловановић
Ментор, МН: проф. др Иван Луковић
Наслов рада, НР: Архитектура и ЕТЛ подршка система за анализу авионских летова на
подручју Сједињених Америчких Држава

Језик публикације, ЈП: Српски / ћирилица


Језик извода, ЈИ: Српски
Земља публиковања, ЗП: Република Србија
Уже географско подручје, УГП: Војводина
Година, ГО: 2017.
Издавач, ИЗ: Ауторски репринт
Место и адреса, МА: Нови Сад, трг Доситеја Обрадовића 6
Физички опис рада, ФО: 10/81/0/53/47/0/4
(поглавља/страна/ цитата/табела/слика/графика/прилога)

Научна област, НО: Електротехника и рачунарство


Научна дисциплина, НД: Примењене рачунарске науке и информатика
Предметна одредница/Кључне речи, ПО: Системи складишта података, OLTP, OLAP, ETL процес

УДК
Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад

Важна напомена, ВН:

Извод, ИЗ: У овом раду презентован је систем складишта података чијом употребом је
могуће вршити анализе авионских летова на подручју Сједињених Aмеричких
Држава. У првом делу рада описани су извори података прикупљени из базе
података Америчког бироа за статистику у саобраћају. Неопходно је било
извршити експлоративну анализу прикупљених података и испројектовати OLTP
базу података у коју ће дати подаци бити смештени. За пројектовање димензија и
чињеница OLAP базе података било је потребно уочити пословне процесе који су
од значаја за анализу летова. У оквиру овог система развијен је ETL процес чијом
применом се реализује пуњење OLAP базе података. У другом делу рада
имплементирана је OLAP коцка за извршавање аналитичких функција и
комплексних упита над складиштем података. Извршавањем упита над
материјализованим погледима, реализована је извештајна функција која
омогућава генерисање одабраних извештаја. На крају, над развијеним
складиштем података имплементиране су data mining анализе и дат је визуелни
приказ добијених резултата.
Датум прихватања теме, ДП:
Датум одбране, ДО:
Чланови комисије, КО: Председник: др Соња Ристић, ванредни професор

Члан: др Славица Кордић, доцент Потпис ментора


Члан, ментор: др Иван Луковић, редовни професор
UNIVERSITY OF NOVI SAD  FACULTY OF TECHNICAL SCIENCES
21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO:


Identification number, INO:
Document type, DT: Monographic publication
Type of record, TR: Textual printed material
Contents code, CC: Master thesis
Author, AU: Tamara Milovanović
Mentor, MN: Ivan Luković, Ph.D.
Title, TI: An Architecture and ETL Support of a System for Airplane Flight Analysis at
the Level of United States of America

Language of text, LT: Serbian / Cyrillic


Language of abstract, LA: Serbian
Country of publication, CP: Republic of Serbia
Locality of publication, LP: Vojvodina
Publication year, PY: 2017
Publisher, PB: Author’s reprint
Publication place, PP: Novi Sad, Dositeja Obradovića sq. 6
Physical description, PD: 10/81/0/53/47/0/4
(chapters/pages/ref./tables/pictures/graphs/appendixes)

Scientific field, SF: Electrical and Computer Engineering


Scientific discipline, SD: Applied Computer Science and Informatics
Subject/Key words, S/KW: Data Warehouse Systems, OLTP, OLAP, ETL Process

UC
Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia

Note, N:

Abstract, AB: This paper presents a data warehousing system that enables its users to
analyze flights in the United States. The first part of this paper describes
variuos data sources collected from the United States Bureau of
Transportation Statistics. Based on explorative analysis of that data, we have
developed an OLTP database. The next step was to recognize a set of
crucial business processes which are used to develop dimensions and facts
of the data warehouse. In order to load data in the data warehouse, we have
implemented an ETL process. The second part of this paper presents an
OLAP cube used to execute analytical functions and complex queries on the
data warehouse. Finally, we have generated reports using the data from
implemented data warehouse and implemented data analysis procedures
using data mining techniques.

Accepted by the Scientific Board on, ASB:


Defended on, DE:
Defended Board, DB: President: Sonja Ristić, Assistent Professor, Ph.D.

Member: Slavica Kordić, Assistent Professor, Ph.D. Menthor's sign


Member, Mentor: Ivan Luković, Full Professor, Ph.D.
УНИВЕРЗИТЕТ У НОВОМ САДУ  ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА Датум:
2 1 0 0 0 Н О В И С А Д , Тр г Д о с и т е ј а О б р а д о в и ћ а 6

Лист/Листова:
ЗАДАТАК ЗА МАСТЕР РАД
4/81

(Податке уноси предметни наставник - ментор)

СТУДИЈСКИ Рачунарство и аутоматика


ПРОГРАМ:
РУКОВОДИЛАЦ Др Мирослав Поповић, ред. проф
СТУДИЈСКОГ
ПРОГРАМА:

Студент: Тамара Миловановић Број индекса: E2 22/2015


Област: Информациони системи

Ментор: Др Иван Луковић, ред. проф


НА ОСНОВУ ПОДНЕТЕ ПРИЈАВЕ, ПРИЛОЖЕНЕ ДОКУМЕНТАЦИЈЕ И ОДРЕДБИ СТАТУТА ФАКУЛТЕТА
ИЗДАЈЕ СЕ ЗАДАТАК ЗА МАСТЕР РАД, СА СЛЕДЕЋИМ ЕЛЕМЕНТИМА:
- проблем – тема рада;
- начин решавања проблема и начин практичне провере резултата рада, ако је таква провера
неопходна;

НАСЛОВ МАСТЕР РАДА:


АРХИТЕКТУРА И ETL ПОДРШКА СИСТЕМА ЗА АНАЛИЗУ АВИОНСКИХ ЛЕТОВА НА ПОДРУЧЈУ
СЈЕДИЊЕНИХ АМЕРИЧКИХ ДРЖАВА

- Проучити амерички авио систем и прикупити податке о летовима, аеродромима, авионима и


временским условима.
- На основу прикупљених података, моделовати шему OLTP базе података намењене за подршку
оперативног пословања авио компанија.
- Моделовати шему OLAP базе података која ће бити базирана на структури извора података, а чији
је циљ да обезбеди подршку за формирање извештаја и анализа који ће допринети откривању
узрока проблема великог броја одложених летова.
- Уз употребу Microsoft алата, имплементирати подршку за реализацију ETL процеса који ће
обезбедити пуњење складишта података подацима из OLTP базе података.
- Спровести анализе над складиштеним подацима применом R програмског језика и техника за
анализу великих количина података (енг. data mining) и добијене резултате приказати графички
употребом алата Shiny framework.
- Имплементирати скуп извештаја над посматраним складиштем података који имају за циљ приказ
резултата анализа података релевантних за решавање проблема честог одлагања летова.

Руководилац студијског програма: Ментор рада:


Др Мирослав Поповић, ред. проф. Др Иван Луковић, ред. проф.

Примерак за:  - Студента;  - Ментора


Садржај

1. УВПД ...................................................................................................................................................................... 6
1.1 МПТИВАЦИЈА РАДА ................................................................................................................................................. 6
1.2 ЦИЉ РАДА ............................................................................................................................................................ 7
1.3 ЗАДАЦИ РАДА ........................................................................................................................................................ 7
1.4 ПЧЕКИВАНИ РЕЗУЛТАТИ РАДА .................................................................................................................................... 7
1.5 СТРУКТУРА РАДА ..................................................................................................................................................... 8
2. ИЗВПРИ ППДАТАКА ............................................................................................................................................... 9
2.1 ППИС АТРИБУТА...................................................................................................................................................... 9
2.2 УЗРПЦИ КАШОЕОА И ПТКАЗА ЛЕТА........................................................................................................................... 11
3. АРХИТЕКТУРА СИСТЕМА ...................................................................................................................................... 12
3.1 КПРИШЋЕНЕ ТЕХНПЛПГИЈЕ ..................................................................................................................................... 13
3.1.1 Интеграциони сервиси .......................................................................................................................... 13
3.1.2 Сервиси за анализу................................................................................................................................. 13
3.1.3 Сервиси за извештавање ...................................................................................................................... 14
4. ШЕМА OLTP БАЗЕ ППДАТАКА............................................................................................................................... 15
4.1 ППИС ТАБЕЛА OLTP БАЗЕ ППДАТАКА ......................................................................................................................... 15
5. ШЕМА OLAP БАЗЕ ППДАТАКА .............................................................................................................................. 23
5.1 BUS MATRIX ......................................................................................................................................................... 23
5.2 ППИС ТАБЕЛА ДИМЕНЗИЈА ...................................................................................................................................... 25
5.3 ППИС ТАБЕЛА ЧИОЕНИЦА ....................................................................................................................................... 31
6. РАЗВПЈ ETL ПРПЦЕСА ........................................................................................................................................... 33
7. OLAP КПЦКА......................................................................................................................................................... 46
7.1 ХИЈЕРАРХИЈЕ ........................................................................................................................................................ 49
8. ИЗВЕШТАЈИ .......................................................................................................................................................... 51
9. DATA MINING ........................................................................................................................................................ 56
9.1 ЕКСПЛПРАТИВНА АНАЛИЗА ППДАТАКА ....................................................................................................................... 56
9.2 РАНГИРАОЕ АТРИБУТА ПРЕМА ЗНАЧАЈУ ...................................................................................................................... 60
9.3 АНАЛИЗА ЦИЉНПГ АТРИБУТА .................................................................................................................................. 61
9.4 ПРЕДВИЂАОЕ КАШОЕОА ЛЕТА ................................................................................................................................ 61
9.5 АНАЛИЗА ДПБИЈЕНИХ РЕЗУЛТАТА .............................................................................................................................. 67
10. ЗАКЉУЧАК ........................................................................................................................................................... 69
ЛИТЕРАТУРА .................................................................................................................................................................. 71
ПРИЛПГ А – СПИСАК КПРИШЋЕНИХ СКРАЋЕНИЦА ...................................................................................................... 73
ПРИЛПГ Б – ПРПЦЕДУРА ЗА ГЕНЕРИСАОЕ ДИМЕНЗИЈЕ ВРЕМЕНСКИХ УСЛПВА ......................................................... 74
ПРИЛПГ Ц – ПРПЦЕДУРА ЗА ГЕНЕРИСАОЕ ВРЕМЕНСКЕ ДИМЕНЗИЈЕ.......................................................................... 76
ПРИЛПГ Д – R ПРПГРАМСКИ КПД ЗА ИНТЕГРАЦИЈУ СА GOOGLE MAPS....................................................................... 80
БИПГРАФИЈА ................................................................................................................................................................. 81
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

1. УВОД

Услед интензивног развоја информатичке инфраструктуре, готово све веће


компаније чувају велике количине података о пословању, клијентима и
пословним кретањима у окружењу. Дневни унос података које велике компаније
складиште у своје базе података мери се терабајтима. Извори тих података су
различити и могу се односити на факторе који утичу на пословање компаније,
интерне процедуре, кориснике услуга компаније, пословање конкуренције или
пословну околину. Међутим, неструктурирани подаци различитих формата, нису
погодни за вршење анализа које пружају подршку у одлучивању. Податке је
најпре неопходно припремити, анализирати и на основу тога доћи до
информација – знања, које могу обезбедити постизање пословног успеха. Како се
ради о великој количини података, овакве анализе се врше употребом посебно
развијених система који обухватају скуп апликација за прикупљање и
трансформацију података, приступ подацима и експертску анализу у циљу
пружања подршке процесу одлучивања. Кључну улогу у овом процесу имају OLAP
(енг. On-line Analytical Processing) алати, технике за обраду великих количина
података и алати за генерисање извештаја. Њиховом применом, крајњим
корисницима без информатичког искуства омогућава се увид у податке, као основа
за доношење одлука које утичу на пословање.
У овом раду описан је поступак изградње једног дела система складишта
података над којим је могуће вршити истраживање и анализу података о
авионским летовима на подручју Сједињених Америчких Држава (САД). У
наставку су дати мотивација рада, као и циљеви и задаци рада и очекивани
резултати.

1.1 Мотивација рада

У савременим условима пословања, које карактерише изразит процес


глобализације, неизвесност, ризик и конкуренција, компаније морају свакодневно
да се боре за одржавање тржишног учешћа и остваривање бољих пословних
резултата. Модерно доба, константан развој нових технологија и начин живота
који водимо имају за последицу да време постаје све значајнији ресурс у
свакодневном пословању. Људи су све мање толерантни на кашњења или отказе у
системима, а компаније трпе велике губитке. Одложени или отказани летови
представљају озбиљан проблем у САД. Током 2007. године приближно сваки
четврти лет је стигао на своје одредиште са бар 15 минута закашњења, док је у
2015. години од укупно 5 714 008 летова, чак 1 063 439 било одложено [1]. Као
главни узрок кашњења трећине од укупног броја летова наводи се неспособност
ваздушних служби да координишу појачан авио саобраћај [2]. Забрињавајуће су
процене стручњака да ће до 2025. године проценат оваквих летова порасти за 30%,

6
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

што ће резултовати великим губицима, не само авио компанија, него и читаве


америчке привреде [2].

1.2 Циљ рада

Циљ овог рада је да се на основу прикупљених података о летовима


предвиде вероватноће кашњења летова на подручју САД и добију информације о
фреквенцији летова по савезним државама, промету на аеродромима,
заступљености авио компанија и узроцима кашњења и отказивања летова.
Добијене информације треба да допринесу решавању проблема великог броја
одложених или отказаних летова са којим се америчке авио службе суочавају.

1.3 Задаци рада

За постизање циља овог рада потребно је испројектовати систем складишта


података који ће омогућити прикупљање података о летовима и њихову
трансформацију у облик који је погодан за спровођење анализа над тим подацима
и добијање информација које ће допринети решавању проблема.
Поступак изградње система складишта података састоји се из неколико
задатака. Најпре је неопходно испројектовати шему OLTP (енг. On-line
Transactional Processing) базе података у коју ће бити смештени подаци о
летовима из различитих фајлова преузетих из базе података Америчког бироа за
статистику у саобраћају. На основу шеме OLTP базе података потребно је
испројектовати OLAP базу података. У оквиру овог задатка неопходно је развити
ETL (енг. Extract-Transform-Load) процес чијом применом се подаци из OLTP базе
података складиште у OLAP базу података. Над OLAP базом података потребно је
имплементирати OLAP коцку за извршавање аналитичких функција и упита над
складиштем података. На крају, над развијеним складиштем података потребно је
реализовати извештајну функцију и имплементирати data mining анализе, чији
резултати ће аналитичарима омогућити добијање информација које ће допринети
решавању проблема великог броја одложених или отказаних летова, откривањем
њихових најчешћих узрока.

1.4 Очекивани резултати рада

Резултати анализа извршених над подацима из складишта података треба


да пруже одговоре на следећа питања:
 Који је најбољи дан за полетање?
 За који период дана је најмања вероватноћа да ће лет каснити?
 Који су најчешћи узроци одлагања лета?
 Који типови авиона најчешће касне?
 Које су најфреквентније руте?
 На којим аеродромима је највећи промет?

7
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

1.5 Структура рада

Поред увода, рад се састоји од 9 поглавља. У другом поглављу, под називом


Извори података дат је опис података и значење атрибута прикупљених из базе
података Америчког бироа за статистику [1].
У трећем поглављу под називом Архитектура система, представљене су
компоненте од којих се састоји развијени систем.
Подаци описани у другом поглављу уписани су у OLTP базу података, чија
имплементациона шема је описана у четвртом поглављу.
У петом поглављу представљена је шема OLAP базе података, пројектована
на основу шеме OLTP базе података, тако да омогући извршавање упита над
подацима чији резултати доприносе доношењу пословних одлука.
Шесто поглавље под називом Развој ETL процеса, садржи опис ETL процеса
чијим извршавањем се подаци из OLTP базе података пречишћавају,
трансформишу и уписују у OLAP базу података.
У седмом поглављу приказана је OLAP коцка, као и примери извршавања
аналитичких функција над овом структуром.
У осмом поглављу приказани су примери извештаја који су генерисани на
основу података из OLAP базе података.
У деветом поглављу приказани су резултати примене техника за анализу
великих количина података (енг. data mining) над подацима из OLAP базе
података. На основу добијених резултата могуће је препознати главне узроке
кашњења летова и предвидети кашњење будућих летова.
Десето поглавље садржи кратку анализу постигнутих резултата и предлоге
за даљи развој система.
На крају рада налазе се списак коришћене литературе и, затим, прилози.
Прилог А садржи списак скраћеница коришћених у раду, док је у прилозима Б и
Ц дат пример програмског кода за подршку генерисању шеме OLAP базе
података. Пример програмског кода за визуални приказ резултата добијених
применом техника за анализу великих количина података дат је у прилогу Д.

8
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

2. ИЗВОРИ ПОДАТАКА

У овом поглављу описани су извори података који су коришћени за


откривање и анализу узрока кашњења летова на територији САД. Подаци о
авионима, летовима, аеродромима, временским условима и превозу путника и
робе преузети су у CSV (енг. Comma-Separated Values) формату из базе података
Бироа за статистику који се налази у саставу Америчког департмана за транспорт
[1]. За потребе класификације авиона према типовима и детаљније информације о
авио превозницима, коришћени су подаци са сајта Аirfleets.net [3].

2.1 Опис атрибута

За анализу и истраживање употребљени су подаци прикупљени током 2016.


године. Скуп података подељен je у фајлове по месецима и у наставку је дат опис
појединачних атрибута.

Р.бр. Назив атрибута Значење атрибута


1 year Година у којој је лет извршен
2 quarter Квартал у којем је лет извршен
3 month Месец у којем је лет извршен
4 day of month Редни број дана у месецу када је лет извршен
5 day of week Редни број дана у недељи када је лет извршен
6 flight date Датум лета
7 airline id Идентификациони број авио компаније додељен
од стране Америчког департмана за саобраћај
(DOT, енг. Department of Transportation)
8 carrier code Код авио компаније додељен од стране
Међународне асоцијације за авио саобраћај
(IATA, енг. International Air Transport Association)
9 carrier name Назив авио компаније
10 tail number Кодна ознака авиона
11 aircraft type Тип авиона
12 number of seats Број места
13 production year Година производње авиона
14 flight number Број лета
15 origin airport id Идентификациони број полазног аеродрома
додељен од стране DOT

9
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

16 origin airport code Трословна кодна ознака полазног аеродрома


додељена од стране IATA
17 origin airport name Назив полазног аеродрома
18 origin airport latitude Географска ширина на којој се налази полазни
аеродром
19 origin airport longitude Географска дужина на којој се налази полазни
аеродром
20 origin city Град у ком се налази полазни аеродром
21 origin state Савезна држава у којој се налази полазни
аеродром
22 destination airport id Идентификациони број одредишног аеродрома
додељен од стране DOT
23 destination airport code Трословна кодна ознака одредишног аеродрома
додељена од стране IATA
24 destination airport Назив одредишног аеродрома
name
25 destination airport Географска ширина на којој се налази одредишни
latitude аеродром
26 destination airport Географска дужина на којој се налази одредишни
longitude аеродром
27 destination city Град у ком се налази одредишни аеродром
28 destination state Савезна држава у којој се налази одредишни
аеродром
29 scheduled departure Време полетања по распореду
time
30 actual departure time Стварно време полетања
31 scheduled arrival time Време слетања по распореду
32 actual arrival time Стварно време слетања
33 cancelled Индикатор да ли је лет отказан (1) или не (0)
34 air time Трајање лета у минутима
35 distance Дужина лета у миљама
36 distance group Група којој лет припада према дужини у миљама
37 carrier delay Индикатор кашњења за који је одговорна авио
компанија
38 weather delay Индикатор кашњења чији је узрок временски
услови
39 NAS delay Индикатор кашњења за који је одговоран
национални систем за авио саобраћај, односно
контрола лета

10
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

40 security delay Индикатор кашњења проузрокован сигурносним


контролама на аеродрому
41 late aircraft delay Индикатор кашњења које је настало као
последица касног слетања авиона
42 temperature Температура ваздуха у фаренхајтима
43 precipitation Количина падавина изражена у инч/миља
44 wind Брзина ветра изражена у миља/час
45 visibility Видљивост изражена у миљама
46 passengers Број превезених путника
47 freight Количина превезеног пртљага
48 mail Количина превезене поште

2.2 Узроци кашњења и отказа лета

Од 2003. године, авио компаније које имају више од 1% удела у америчком


цивилном авио саобраћају, обавезне су да пријављују узроке кашњења или отказа
лета. Постоји 5 унапред дефинисаних категорија [5]:
 кашњење за које је одговорна сама авио компанија (чишћење и
припрема авиона, проблем са посадом, утовар пртљага, сипање
горива),
 кашњење проузроковано тренутним или прогнозираним екстремним
временским условима,
 кашњење настало услед појачаног авио саобраћаја или промета на
аеродрому,
 кашњење настало из сигурносних разлога (контроле на аеродрому,
евакуација терминала, поновно укрцавање)
 кашњење проузроковано касним слетањем авиона којим се врши
наредни лет.
Прве четири наведене категорије се такође односе и на узроке отказа лета.

11
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

3. АРХИТЕКТУРА СИСТЕМА

У овом поглављу описани су архитектура система за анализу и откривање


узрока кашњења летова и технологије које су коришћене за пројектовање.
Архитектура система за подршку у одлучивању је вишеслојна. На слици 3.1
приказани су слојеви система за анализу и откривање узрока кашњења летова.

Слика 3.1 - Слојеви архитектуре система за анализу и откривање узрока кашњења летова

Први слој чине извори података који могу бити интерни или екстерни.
Интерне изворе података представљају подаци из OLTP базе података и чине их
подаци који настају у оперативном пословању авио компанија. Екстерне изворе
података представљају подаци дефинисани од стране међународне организације
за авио саобраћај [6] и налазе се у CSV фајловима.
Други слој чини складиште података које представља основни извор
података за даљу анализу. У овом слоју се подаци из извора података складиште у
OLAP базу података. Подаци у стварном свету могу бити некомплетни,
непрецизни или неконзистентни (нпр. неслагање у именима или
идентификационим ознакама). Из овог разлога неопходно је пре почетка пуњења
OLAP базе података извршити пречишћавање и трансформацију изворних
података, тако да одговарају структурама и захтевима OLAP базе података.
Процес који врши преузимање, пречишћавање и трансформисање изворних
података и пуњење OLAP базе података назива се ETL (енг. Extract-Transform-
Load) процес. Развој ETL процеса је детаљно описан у шестом поглављу.

12
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Трећи слој чине OLAP алати, чијом применом се врши анализа података из
OLAP базе података. OLAP представља приступ организацији система базе
података којим се омогућава вршење вишедимензионалних анализа и креирање
различитих извештаја над подацима из OLAP базе података. Подаци су
представљени и агрегирани на начин да обезбеде перспективу
вишедимензионалног погледа на податке. Основна идеја димензионалног
моделовања је да пословни подаци могу да буду представљени у виду коцке, чије
ћелије садрже параметре пословања који се прате, а ивице коцке дефинишу
контекст података. Имплементацијом OLAP коцке омогућава се аналитичка
обрада података.
Четврти слој чине алати за приступ подацима из складишта података и
OLAP структура и њихов визуални приказ. Најчешће коришћени алати су: алати
за извештавање, алати за анализу OLAP коцке, алати за ad hoc упите и алати за
предиктивну анализу и откривање узрочно-последичних веза међу подацима.

3.1 Коришћене технологије

Развој система за анализу и откривање узрока кашњења летова подразумевао


је избор, проучавање и употребу различитих технологија за пројектовање система
складишта података који ће пружити подршку одлучивању. У наставку су
описане коришћене технологије.

3.1.1 Интеграциони сервиси

Интеграциони сервиси (енг. Microsoft SQL Server Integration Services (SSIS))


[10] представљају платформу за пројектовање и имплементацију софтверских
решења која се примењују за интеграцију и трансформацију података.
Интеграциони сервиси реагују на промене у изворима података копирањем или
преузимањем фајлова, слањем електронских обавештења као одговора на
догађаје, ажурирањем складишта података, пречишћавањем и анализом
података, управљањем објектима и подацима у оквиру SQL Servera.
Интеграциони сервиси могу да врше екстракцију података из широког спектра
извора, као што су различити типови фајлова или релационе базе података, и
затим учитавају податке у складиште података.

3.1.2 Сервиси за анализу

Сервиси за анализу (енг. Microsoft SQL Server Analysis Services (SSAS)) [11]
представљају скуп програма за истраживање и анализу података складиштених у
OLAP бази података. Њиховом применом омогућава се дизајнирање, креирање и
управљање вишедимензионалним структурама које садрже агрегиране податке из
различитих извора. Подржане технике укључују класификацију, регресију,
кластеризацију и проналажење сличних серија података.

13
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

3.1.3Сервиси за извештавање

Сервиси за извештавање (енг. Microsoft SQL Server Reporting Services


(SSRS)) [12] представљају платформу за генерисање интерактивних извештаја. За
израду извештаја користи се RDL (енг. Report Definition Language) језик.
Извештаји дефинисани у RDL-у могу бити у различитим форматима: CSV, PDF,
XML и други. Сервиси за извештавање подржавају и ad hoc извештаје, при чему
се кориснику пружа могућност да изабере релевантна поља података и сам
генерише извештај.

14
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

4. ШЕМА OLTP БАЗЕ ПОДАТАКА

Ово поглавље садржи опис шеме OLTP базе података, испројектоване на


основу података преузетих из базе података Америчког бироа за статистику у
саобраћају. Шема приказана на слици 4.1 обухвата следеће класе реалних
ентитета: авио компанија, авион, тип авиона, лет, статус лета, узрок кашњења
или отказа лета, датум, распоред, рута, аеродром, град и држава.

Слика 4.1 – Шема OLTP базе података

4.1 Опис табела OLTP базе података

У наставку је дат опис свих табела и њихових атрибута.

Табела AvioKompanija

Табела AvioKompanija садржи податке о авио компанијама које обављају


летове на подручју Сједињених Америчких Држава и пријављују податке Бироу
за статистику [1].

15
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификатор авио
1 idAvioKomp integer не
компаније
2 nazAvioKomp nvarchar(40) не Naziv авио компаније
3 kodAvioKomp nvarchar(3) не Кодна ознака авио компаније
4 sedisteAvioKomp nvarchar(50) да Седиште авио компаније
Година оснивања авио
5 godOsnivanja integer да
компаније

Примарни кључ у табели


Назив примарног кључа Колоне
AvioKompanija_PK idAvioKomp

Табела TipAviona

Табела TipAviona садржи податке о типовима авиона којима се обављају


летови, као и њиховим произвођачима.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idTipaAviona integer не Идентификатор типа авиона
2 nazTipaAviona nvarchar(30) не Naziv типа авиона
3 proizvodjac nvarchar(50) да Произвођач авиона

Примарни кључ у табели


Назив примарног кључа Колоне
TipAviona_PK idTipaAviona

Табела Avion

Табела Avion садржи податке о авионима којима се обављају летови и


идентификатор авио компаније у чијем власништву се авион налази.

16
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 kodAviona nvarchar(10) не Кодна ознака авиона
Идентификатор авио
2 idAvioKomp integer не
компаније
3 idTipaAviona integer не Идентификатор типа авиона
4 godProizvodnje integer да Година производње авиона
5 brSedista integer да Број седишта

Примарни кључ у табели


Назив примарног кључа Колоне
Avion_PK kodAviona + idAvioKomp

Страни кључеви у табели


Назив страног кључа Колоне Референцирана Референциране
табела колоне
Avion_AvioKompanijа_FK idAvioKomp AvioKompanija idAvioKomp
Avion_TipAviona_FK idTipaAviona TipAviona idTipaAviona

Табела Drzava

Табела Drzava садржи податке о савезним државама које су у саставу САД.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 oznDrzave nvarchar(3) не Кодна ознака савезне државе
2 nazDrzave nvarchar(30) не Назив савезне државе

Примарни кључ у табели


Назив примарног кључа Колоне
Drzava_PK oznDrzave

Табела Grad
Табела Grad садржи податке о градовима из којих се обављају летови.

17
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификациона ознака
1 idGrada integer не
града
2 oznDrzave nvarchar(3) не Кодна ознака савезне државе
3 nazGrada nvarchar(30) не Назив града

Примарни кључ у табели


Назив примарног кључа Колоне
Grad_PK idGrada + oznDrzave

Страни кључеви у табели


Назив страног кључа Колоне Референцирана Референциране
табела колоне
Grad_Drzava_FK oznDrzave Drzava oznDrzave

Табела Aerodrom

Табела Aerodrom садржи податке о аеродромима са којих се обављају


летови.
Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idAdr integer не Идентификатор аеродрома
Идентификациона ознака
2 idGrada integer не
града
3 oznDrzave nvarchar(3) не Кодна ознака савезне државе
4 kodAdr nvarchar(3) не Кодна ознака аеродрома
5 nazAdr nvarchar(50) не Назив аеродрома
Географска ширина на којој
6 geoSirina nvarchar(10) не
се налази аеродром
Географска дужина на којој
7 geoDuzina nvarchar(10) не
се налази аеродром

Примарни кључ у табели


Назив примарног кључа Колоне
Aerodrom_PK idAdr + idGrada + oznDrzave

18
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Страни кључеви у табели


Назив страног Колоне Референцирана Референциране
кључа табела колоне
Aerodrom_Grad_FK idGrada + oznDrzave Grad idGrada + oznDrzave

Табела Uzrok

Табела Uzrok садржи податке о могућим узроцима одлагања или отказа


лета.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификатор узрока
1 idUzroka integer не
кашњења или отказа лета
Назив узрока кашњења или
2 nazUzroka nvarchar(40) не
отказа лета

Примарни кључ у табели


Назив примарног кључа Колоне
Uzrok_PK idUzroka

Табела Status

Табела Status садржи податке о могућим статусима лета који може имати
једну од следеће 3 вредности: на време, одложен или отказан, уз узрок датог
статуса.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idStatusa integer не Идентификатор статуса лета
2 nazStatusa nvarchar(20) не Назив статуса лета
Идентификатор узрока
3 idUzroka integer не
кашњења или отказа лета

Примарни кључ у табели


Назив примарног кључа Колоне
Status_PK idStatusa

19
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Страни кључеви у табели


Назив страног Колоне Референцирана Референциране
кључа табела колоне
Status_Uzrok_FK idUzroka Uzrok idUzroka

Табела Datum

Табела Datum садржи податке о датумима летова из скупа података.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 datum date не Датум

Примарни кључ у табели


Назив примарног кључа Колоне
Datum_PK datum

Табела Ruta

Табела Ruta садржи податке о могућим рутама с информацијама о


аеродромима полетања и крајње дестинације.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idRute integer не Идентификатор руте
Идентификациона ознака
2 idAdrPol integer не
полазног аеродрома
Идентификациона ознака
3 idGradaPol integer не
полазног града
Кодна ознака полазне
4 oznDrzavePol nvarchar(3) не
савезне државе
Идентификациона ознака
5 idAdrDol integer не
одредишног аеродрома
Идентификациона ознака
6 idGradaDol integer не
одредишног града
Кодна ознака савезне државе
7 oznDrzaveDol nvarchar(3) не
одредишта

20
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Примарни кључ у табели


Назив примарног кључа Колоне
Ruta_PK idRute

Страни кључеви у табели


Назив страног Колоне Референцирана Референциране
кључа табела колоне
idAdrPol +
Ruta_AerodromPol_ idAdr + idGrada +
idGradaPol + Aerodrom
FK oznDrzave
oznDrzavePol
idAdrDol +
Ruta_AerodromDol_ idAdr + idGrada +
idGradaDol + Aerodrom
FK oznDrzave
oznDrzaveDol

Табела Raspored

Табела Raspored садржи податке о планираном времену полетања и


слетања авиона на свакој рути за одређени датум.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idRasporeda integer не Идентификатор распореда
2 vremePolRasp integer не Време полетања по распореду
3 vremeDolRasp integer не Време слетања по распореду
4 idRute integer не Идентификатор руте
5 datum date не Датум лета

Примарни кључ у табели


Назив примарног кључа Колоне
Raspored_PK idRasporeda

Страни кључеви у табели


Назив страног Колоне Референцирана Референциране
кључа табела колоне
Raspored_Ruta_FK idRute Ruta idRute
Raspored_Datum_FK datum Datum datum

21
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Табела Let

Табела Let садржи податке о летовима уз тачно време полетања и слетања,


пређени пут, укупно трајање лета и временске услове приликом полетања.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 idLeta integer не Идентификатор лета
2 oznLeta nvarchar(8) не Кодна ознака лета
3 kodAviona nvarchar(10) не Кодна ознака авиона
Идентификатор авио
4 idAvioKomp integer не
компаније
5 idStatusa integer не Идентификатор статуса лета
6 idRasporeda integer не Идентификатор распореда
7 vremePolStv integer да Стварно време полетања
8 vremeDolStv integer да Стварно време слетања
9 milje integer не Дужина лета у миљама
10 trajanje integer не Трајање лета у минутима
Температура ваздуха
11 temp integer не
приликом полетања
Видљивост приликом
12 vidljivost decimal(2,1) не
полетања
Количина падавина
13 kolPadavina decimal(3,1) не
приликом полетања
Брзина ветра приликом
14 brzVetra integer не
полетања

Примарни кључ у табели


Назив примарног кључа Колоне
Let_PK idLeta

Страни кључеви у табели


Назив страног Колоне Референцирана Референциране
кључа табела колоне
kodAviona + kodAviona +
Let_Avion_FK Avion
idAvioKomp idAvioKomp
Let_Status_FK idStatusa Status idStatusa
Let_Raspored_FK idRasporeda Raspored idRasporeda

22
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

5. ШЕМА OLAP БАЗЕ ПОДАТАКА

У овом поглављу дат је опис bus matrix [8] у којој су приказани пословни
процеси значајни за анализу летова. Анализом уочених пословних процеса и на
основу података из OLTP базе података описане у претходном поглављу,
испројектована је шема OLAP базе података, чији је детаљни опис дат у наставку
овог поглавља.

5.1 Bus Matrix

Идентификација пословних захтева је предуслов за успех приликом


пројектовања складишта података. Следећи корак након упознавања са системом
за који се врши пројектовање складишта података је пресликавање тих захтева на
пословне процесе који ће идентификовати изворе података потребне за испуњење
пословних захтева. Важну улогу у овом процесу има bus matrix – матрица у којој
сваки ред представља један пословни процес, док колоне представљају димензије
по којима се прате дати пословни процеси.
На слици 5.1 приказан је bus matrix који омогућава да се процес планирања
складишта података декомпонује на мање јединице којима се лакше управља,
при чему се фокус ставља на кључне пословне процесе у организацији. Након
упознавања са системом за анализу летова, уочени су следећи пословни процеси:
„праћење лета“, „промет на аеродрому“ и „ангажовање авио компанија“. Пословни
процес „праћење лета“ прати се по димензијама време, дестинација, авион, авио
компанија, временски услови, статус лета и раздаљина. Пословни процес „промет
на аеродрому“ прати се по две димензије – време и дестинација. Пословни процес
„ангажовање авио компанија“ прати се по димензијама: време, дестинација, авион
и авио компанија.
Димензије
Временск услови
Авио компанија
Дестинација

Статус лета

Раздаљина

Пословни процеси
Авион
Време

Праћење лета x x x x x х х

Промет на аеродрому x x

Ангажовање авио компанија x x x х


Слика 5.1 – Bus Matrix

23
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

На слици 5.2 приказана је шема OLAP базе података пројектована


праћењем принципа пројектовања база података описаних у [7]. Циљ
пројектовања шеме OLAP базе података је да се подаци из извора података
обједине и структурирају у облик погодан за доношење стратешких одлука. Над
овако пројектованом шемом могуће је реализовати извештајну функцију и
применити технике за истраживање и анализу великих количина података, с
циљем добијања информација о фреквенцији летова по савезним државама,
промету на аеродромима, заступљености авио компанија, узроцима кашњења и
отказивања летова.

Слика 5.2 - Шема OLAP базе података

Шема OLAP базе података која је предмет овог рада је типа сазвежђа,
односно постоји више чињеничних табела које деле заједничке табеле димензија.
Табела чињеница садржи мере, квантитативне и агрегиране податке, о пословним
процесима које корисници анализирају. Мере представљају нумеричке вредности,
количине и просеке значајне за доношење пословних одлука. Димензиона табела
представља пословни ентитет и садржи атрибуте који обезбеђују контекст за
податке складиштене у табели чињеница. Димензије представљају различите

24
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

погледе корисника на податке у OLAP бази података. Приказују податке


организоване у хијерархије, које омогућавају корисницима преглед података на
различитим нивоима детаљности.
Шема OLAP базе података састоји се од 8 табела димензија и 2 табеле
чињенице, које су детаљно описане у наставку. Све димензије су
денормализоване, јер се исти подаци чувају на више места како би се избегла
потреба за спајањем више табела димензија и на тај начин побољшале
перформансе приликом извршавања упита. Осим приказаних табела димензија,
постоји и додатна табела димензије DimAudit намењена за праћење промена у
OLAP бази података, која је ради прегледности изостављена са слике. Свака од
приказаних табела димензија и чињеница као страни кључ садржи поља
insertAuditKey и updateAuditKey, која референцирају кључ табеле димензије
DimAudit и служе за вођење евиденције о променама у табели OLAP базе
података. Атрибут insertAuditKey представља вредност кључа табеле димензије
DimAudit у тренутку уписа новог реда у табелу OLAP базе података, док се помоћу
атрибута updateAuditKey води евиденција о ажурирању редова у табели OLAP
базе података.

5.2 Опис табела димензија

Димензионе табеле представљају пословне ентитете који дају контекст


подацима складиштеним у табелама чињеница. У даљем тексту дат је опис
димензионих табела у овом пројекту.

Табела димензије DimAvioKompanija

Табела димензије DimAvioKompanija садржи податке о авио компанијама


које обављају летове на подручју Сједињених Америчких Држава. Примарни
кључ табеле димензије је преузет из извора података, јер је идентификатор сваке
авио компаније на свету јединствен и додељен од стране IATA [6].

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификатор авио
1 avKompId integer не
компаније
2 avKompKod nvarchar(3) не Кодна ознака авио компаније
3 avKompNaziv nvarchar(50) не Назив авио компаније

Примарни кључ у табели


Назив примарног кључа Колоне
DimAvioKompanija_PK avKompId

25
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Табела димензије DimAvion

Табела димензије DimAvion садржи податке о авионима којима се обављају


летови. Ова табела димензије као страни кључ поседује идентификатор авио
компаније, потребан за јединствено идентификовање авиона.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 avKod nvarchar(8) не Кодна ознака авиона
2 avTipId integer не Идентификатор типа авиона
3 avTipNaziv nvarchar(30) не Назив типа авиона
4 avGodProizv integer да Година производње авиона
Идентификатор авио
5 avKompId integer не
компаније

Примарни кључ у табели


Назив примарног кључа Колоне
DimAvion_PK avKod + avKompId

Страни кључеви у табели


Назив страног кључа Колоне Референцирана Референциране
табела колоне
DimAvion_DimAvioKompan
idAvioKomp DimAvioKompanija idAvioKomp
ija_FK

Табела димензије DimVremenskiUslovi

Интервална димензија (енг. bracketing dimension) DimVremenskiUslovi


дефинише класификацију чињеничних података о летовима према дефинисаним
интервалним вредностима атрибута о временским условима датих у овој табели
димензије.

26
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Колоне у табели

Р.бр. Назив колоне Тип податка Nullable Опис колоне


Идентификациона ознака
1 vuId integer не
временских услова
Опис интервала за
2 vuTemp nvarchar(15) не
температуру
Опис интервала за количину
3 vuKolPadavina nvarchar(15) не
падавина
4 vuVetar nvarchar(15) не Опис интервала за ветар
Опис интервала за
5 vuVidljivost nvarchar(15) не
видљивост

Примарни кључ у табели


Назив примарног кључа Колоне
DimVremenskiUslovi_PK vuId

Табела димензије DimRazdaljinaGrupa

Табела димензије DimRazdaljinaGrupa садржи податке о групама зависно


од дужине лета у миљама. На сваких 500 миља формира се нова група, почевши
од мање од 500 миља па све до 8500 миља. Ова димензија такође представља
интервалну димензију.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификациона ознака
1 razdGrupa integer не
групе
Опис интервала у који спада
2 razdGrupaOpis nvarchar(30) не
раздаљина

Примарни кључ у табели


Назив примарног кључа Колоне
DimRazdaljinaGrupa_PK razdGrupa

27
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Табела димензије DimStatusLeta

Табела димензије DimStatusLeta садржи податке о могућим статусима лета:


на време, одложен или отказан, као и о узроцима у случају одлагања или отказа.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 stId integer не Идентификатор статуса лета
2 stNazivStatus nvarchar(15) не Назив статуса лета
Идентификатор узрока
3 stUzrokId integer да
одлагања или отказа лета
Назив узрока одлагања или
4 stUzrokNaziv nvarchar(40) да
отказа лета

Примарни кључ у табели


Назив примарног кључа Колоне
DimStatusLeta_PK stId

Табела димензије DimVreme

Табела димензије DimVreme садржи податке о времену извршавања лета.


За имплементацију временске димензије је одабран нижи ниво грануларности у
односу на изворе података, јер тачно време полетања није од великог значаја па је
трансформисано у атрибут доба дана, који представља интервал у коме је авион
полетео.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 datum date не Датум лета
Датум лета у формату
2 standardDatum nvarchar(10) да
мм/дд/гггг
Доба дана у ком авион
3 dobaDana nvarchar(60) не
полеће
4 dan integer не Редни број дана у месецу
Назив дана у недељи када
5 danNedelja nvarchar(9) не
авион полеће

28
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Редни број одређеног дана у


6 danMesec integer не
месецу
7 danGodina integer не Редни број дана у години
8 nedeljaMesec integer не Редни број недеље у месецу
9 nedeljaGodina integer не Редни број недеље у години
10 mesec integer не Редни број месеца у години
11 kvartal integer не Редни број квартала у години
Година у којој је полетео
12 godina integer не
авион
13 nazPraznik nvarchar(50) да Назив празника у САД-у

Примарни кључ у табели


Назив примарног кључа Колоне
DimVreme_PK datum + dobaDana

Табела димензије DimVremeMesec

Табела димензије DimVremeMesec представља агрегирану димензију, јер су


у њој издвојени атрибути из претходне табеле димензије с циљем избегавања
агрегације података извршавањем вишеструких SQL наредби и постизањем
бржих упита.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 mesec integer не Редни број месеца у години
2 kvartal integer не Редни број квартала у години
3 godina integer не Година
4 mesecNaziv nvarchar(15) не Назив месеца

Примарни кључ у табели


Назив примарног кључа Колоне
DimVremeMesec_PK mesec + kvartal + godina

29
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Табела димензије DimDestinacija

Табела димензије DimDestinacija представља димензију са двоструком


улогом (енг. role playing) – постоје две везе према табели чињенице. У једном
случају представља полазни аеродром, а у другом случају крајњу дестинацију.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификатор града у ком
1 gradId integer не
се налази аеродром
Код града у ком се налази
2 gradKod nvarchar(4) да
аеродром
Назив града у ком се налази
3 gradNaziv nvarchar(30) не
аеродром
Идентификациона ознака
4 savDrzId integer да
савезне државе
5 savDrzKod nvarchar(3) да Кодна ознака савезне државе
6 savDrzNaziv nvarchar(40) да Назив савезне државе
7 drzKod nvarchar(3) не Кодна ознака државе
8 drzNaziv nvarchar(40) не Назив државе
9 regId integer не Идентификатор региона
10 regNaziv nvarchar(40) не Назив региона
11 kontId integer не Идентификатор континента
12 kontNaziv nvarchar(20) не Назив континента
Идентификациона ознака
13 adrId integer не
аеродрома
14 adrKod nvarchar(3) не Кодна ознака аеродрома
15 adrNaziv nvarchar(50) не Назив аеродрома
Географска дужина на којој
16 geoDuzina real да
се налази аеродром
Географска ширина на којој
17 geoSirina real да
се налази аеродром

Примарни кључ у табели


Назив примарног кључа Колоне
DimDestinacija_PK adrId + gradId + drzKod

30
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

5.3 Опис табела чињеница

Табеле чињеница садрже квантитативне и агрегиране податке, који описују


неки пословни процес и изказују меру достизања постављеног циља. Динамичког
су карактера, јер зависе од дневних промена у изворима података. Сваки ред у
табели чињенице је идентификован јединственом комбинацијом примарних
кључева табела димензија. У наставку дат је детаљан опис табела чињеница у
овом пројекту.

Табела чињенице CinjLet

Табела чињенице CinjLet садржи примарне кључеве свих табела димензија


и додатне мере које су релевантне за анализу летова.
Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
1 oznLeta nvarchar(8) не Ознака лета
2 datum date не Датум полетања
3 dobaDana nvarchar(60) не Доба дана када авион полеће
4 avKod nvarchar(8) не Кодна ознака авиона
Идентификациона ознака
5 avKompId integer не
авио компаније
Идентификатор полазног
6 adrIdPol integer не
аеродрома
Идентификатор града у ком
7 gradIdPol integer не
се налази полазни аеродром
Кодна ознака државе у којој
8 drzKodPol nvarchar(3) не
се налази полазни аеродром
Идентификатор одредишног
9 adrIdDol integer не
аеродрома
Идентификатор града у ком се
10 gradIdDol integer не
налази одредишни аеродром
Кодна ознака државе у којој се
11 drzKodDol nvarchar(3) не
налази одредишни аеродром
12 stId integer не Идентификатор статуса лета
Идентификатор временских
13 vuId integer не
услова
Група којој лет припрада
14 razdGrupa integer не
према дужини у миљама

31
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

15 kasnjenjePol integer да Кашњење при полетању


16 kasnjenjeDol integer да Кашњење при слетању
17 kasnjenjeTotal integer да Укупно кашњење лета
18 trajanje integer да Укупно трајање лета

Табела чињенице CinjPromet

Табела чињенице CinjPromet садржи податке о превезеном броју путника и


робе у одређеном временском периоду и на одређеној рути, који су авио компаније
дужне да пријаве.

Колоне у табели
Р.бр. Назив колоне Тип податка Nullable Опис колоне
Идентификациона ознака
1 avKompId integer не
авио компаније
Идентификатор полазног
2 adrIdPol integer не
аеродрома
Идентификатор града у ком
3 gradIdPol integer не
се налази полазни аеродром
Кодна ознака државе у којој
4 drzKodPol nvarchar(3) не
се налази полазни аеродром
Идентификатор одредишног
5 adrIdDol integer не
аеродрома
Идентификатор града у ком се
6 gradIdDol integer не
налази одредишни аеродром
Кодна ознака државе у којој се
7 drzKodDol nvarchar(3) не
налази одредишни аеродром
Укупан број превезених
8 brPutnika integer да
путника
Укупна количина превезене
9 kolRobe integer да
робе
10 razdaljinaTotal integer не Пређена раздаљина
Месец за који се пријављују
11 mesec integer не
подаци
Квартал за који се
12 kvartal integer не
пријављују подаци
Година за коју се пријављују
13 godina integer не
подаци

32
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

6. РАЗВОЈ ETL ПРОЦЕСА

У циљу добијања стратешких информација у облику који је погодан за


доношење одлука, потребно је спровести већи број различитих типова процедура
над подацима у одговарајућем редоследу. Типови функција и редослед у коме се
оне извршавају дефинисан је софтверским процесом који је у литератури познат
под називом ETL процес (енг. Еxtract-Тransform-Load process) [8]. Овим процесом
преузимају се подаци из изворних система, затим трансформишу у облик који је
погодан за анализу и доношење стратешких одлука, и на крају учитавају у
одговарајуће складиште података. Пре самог развоја потребно је најпре одредити
технологије које ће бити коришћене за екстракцију, дефинисати доказ да је
трансформација података успешна и одредити начин исправљања евентуалних
грешака. Такође потребно је направити ETL план, у ком је дата спецификација
трансформација за сваки одредишни атрибут у складишту података и извршена
анализа недостајућих вредности.
ETL процеси сматрају се најсложенијим, али и најзначајнијим у читавом
процесу развоја система складишта података. Начин на који је пројектован и
имплементиран овај процес у великој мери утиче на квалитет добијених
стратешких информација, а самим тим и на употребљивост, односно успех система
складишта података.
ETL процес описан у овом раду реализован је применом алата Microsoft SQL
Business Intelligence Development Studio [10]. Основни елементи су пакети који се
дефинишу за сваку димензију и чињеницу. У њима се имплементира контролни
ток (енг. Control Flow), који дефинише редослед и задатаке који треба да буду
извршени и ток података (енг. Data Flow), којим се дефинише процес
трансформације података. Сви задаци у контролном току, као и током процеса
трансформације података у току података, извршавају се секвенцијално.
Табела 6.1 садржи приказ и кратак опис свих пакета коришћених у
пројекту, док је детаљан опис процеса пуњења табела димензија и чињеница дат у
наставку.

Пакет Опис
MASTERPackage Аутоматски покреће извршавање свих пакета
DimAvioKompanija Пуњење табеле димензије DimAvioKompanija
DimAvion Пуњење табеле димензије DimAvion
DimRazdaljinaGrupa Пуњење табеле димензије DimRazdaljinaGrupa
DimVremenskiUslovi Пуњење табеле димензије DimVremenskiUslovi

33
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

DimStatusLeta Пуњење табеле димензије DimStatusLeta


DimVremeMesec Пуњење табеле димензије DimVremeMesec
DimVreme Пуњење табеле димензије DimVreme
DimDestinacija Пуњење табеле димензије DimDestinacija
CinjPromet Пуњење табеле чињенице CinjPromet
CinjLet Пуњење табеле чињенице CinjLet
Табела 6.1 – Приказ свих пакета у ETL процесу

На слици 6.1 приказан је контролни ток, у којем је дефинисана секвенца


задатака који се извршавају покретањем једног пакета у оквиру ETL процеса.
Најчешће коришћени типови задатака су: Execute SQL, за извршавање SQL
наредби, Execute Package, за извршавање одређеног пакета, Data Flow, у ком се
врши учитавање података из дефинисаних извора, њихова трансформација и
пуњење складишта података, и Script, који омогућава имплементацију
кориснички дефинисаних функција у различитим програмским језицима.
Контролни ток је исти за све пакете, осим за тзв. мастер пакет (MASTERPackage),
који служи за покретање извршавања свих осталих пакета, као и за пакете
DimVreme и DimVremenskiUslovi, чијим извршавањем се покрећу TSQL
(процедурални језик у алату Microsoft SQL Server) процедуре за пуњење табела
димензија DimVreme и DimVremenskiUslovi. За наведене пакете дат је посебан
опис контролног тока, док је за све остале пакете у наставку описан само ток
података, који дефинише поступак пуњења табела димензија и чињеница и
садржи логику трансформације података.

Слика 6.1 – Контролни ток пакета (осим мастер пакета, DimVreme и DimVremenskiUslovi)

34
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Први корак након покретања пакета је пребројавање редова у табели.


Након тога врши се брисање свих редова (овај корак се извршава само током
развоја система), бележи се тренутна вредност атрибута AuditKey који служи за
евиденцију уписа и модификација у табели. Затим следи учитавање података и,
уколико је потребно, извршавање одређених трансформација над њима. Последња
два корака су поновно пребројавање редова у табели и ажурирање AuditKey.

Пакет MASTERPackage

На слици 6.2 приказан је контролни ток пакета који је задужен за


управљање извршавањем свих осталих пакета. Најпре се бележи AuditKey, након
чега се покрећу сви остали пакети и на крају се ажурира одговарајући ред у
табели димензије DimAudit, намењеној за евиденцију уписа и модификације
података у осталим табелама.

Слика 6.2 - Контролни ток мастер пакета

Пакет DimAvioKompanija

Као основни извор података за пуњење табеле димензије DimAvioKompanija


користи се табела AvioKompanija из OLTP базе података. На слици 6.3 приказан
је процес пуњења табеле димензије DimAvioKompanija.

35
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.3 – Ток података пакета DimAvioKompanija

Компонента која описује мета-податке (енг. Row Metadata) приликом сваког


уписа служи за евиденцију (аудитинг) атрибута AuditKey, чија вредност се
додељује атрибутима insertAuditKey и updateAuditKey, о којима је било речи у
поглављу 5. Након тога следи пребројавање торки за упис. Следећи корак је упис
торки у табелу димензије DimAvioKompanija, при чему се врши упис свих торки у
оквиру једне наредбе (енг. Bulk Load). У оквиру ове компоненте потребно је
пресликати колоне из табеле OLTP базе података на колоне у табели OLAP базе
података. На слици 6.4 приказано је пресликавање колона табеле AvioKompanija
из OLTP базе података на колоне табеле димензије DimAvioKompanija из OLAP
базе података.

Слика 6.4 - Мапирање колона табеле AvioKompanija на колоне табеле димензије


DimAvioKompanija
36
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Уколико дође до грешке приликом уписа у оквиру једне наредбе, прелази


се на упис ред-по-ред. После тога се врши пребројавање торки код којих је дошло
до грешке приликом уписа и оне се прослеђују у посебан фајл намењен за
евиденцију грешака.

Пакет DimAvion

На слици 6.5 приказан је поступак пуњења табеле димензије DimAvion. Као


извори података користе се табеле Avion и TipAviona из OLTP базе података.

Слика 6.5 – Ток података пакета DimAvion

За пуњење табеле димензије DimAvion неопходно је извршити спајање


наведених табела из OLTP базе података, јер је табела димензије DimAvion
денормализована. У њој се чувају подаци о авионима и њиховим типовима, како
би се приликом упита над подацима из OLAP базе података избегла потреба за
додатним спајањем и на тај начин побољшале перформансе извршавања упита.
Алгоритам који врши спајање захтева да извори података буду сортирани према
атрибуту по којем се врши спајање, јер редослед вредности атрибута значајно
утиче на перформансе алгоритма. Овај поступак је могуће урадити приликом
учитавања изворних података помоћу одговарајуће SQL наредбе или као што је у
овом случају урађено, користити посебну компоненту која је задужена за
сортирање.
Након учитавања и сортирања табела DimAvion и DimTipAviona из OLTP
базе података следи спајање ових табела које су сортиране према идентификатору
типа авиона. На слици 6.6 приказане су могућности које нуди ова компонента:
избор типа спајања и атрибута који се преносе у даљи ток података, као и промена
назива атрибута. Да би спајање уопште било могуће, неопходно је означити бар
један атрибут по којем ће оно бити извршено.

37
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.6 - Спајање табела Avion и TipAviona према атрибуту idTipaAviona

Преостали кораци су слични као код претходног пакета: додају се колоне за


вођење евиденције о променама у табели димензије, након чега се врши
пребројавање торки за упис. Приликом уписа, прво се извршава упис свих торки у
оквиру једне наредбе, а у случају грешке прелази се на упис ред-по-ред, после чега
се пребројавају торке код којих је дошло до грешке и након уписа ред-по-ред, и оне
се прослеђују у посебан фајл намењен за евиденцију грешака.

Пакет DimRazdaljinaGrupa

За разлику од претходно описаних пакета где изворне податке представљају


табеле OLTP базе података, за пуњење табеле димензије DimRazdaljinaGrupa
користи се Excel фајл. Овај фајл представља екстерни извор података, јер је
дефинисан од стране Америчког департмана за транспорт и садржи ознаку групе
која дефинише раздаљину и интервал у миљама за сваку групу. На слици 6.7
приказан је ток података овог пакета.

Слика 6.7 – Ток података пакета DimRazdaljinaGrupa

Након учитавања података из фајла потребно је одстранити недостајуће


вредности, јер алат за учитавање података третира празне редове након података
у Excel фајлу као недостајуће вредности. Затим се извршава компонента Row
Metadata која служи за аудитинг. Следи пребројавање торки за упис, након чега

38
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

се прелази на упис торки у табелу димензије и пребројавање и бележење


евентуалних грешака. Овај процес је исти као код претходних пакета, па се
детаљан опис на овом месту изоставља.

Пакет DimVremenskiUslovi

Пакет DimVremenskiUslovi не садржи ток података, јер не постоје изворни


подаци за ову димензију, већ се они генеришу помоћу TSQL процедуре, чије
извршавање се покреће директно из контролног тока приказаног на слици 6.8.
Задатак процедуре је да генерише комбинације интервалних атрибута који
представљају температуру, количину падавина, брзину ветра и видљивост на
аеродрому. Пример програмског кода ове процедуре дат је у прилогу Б.

Слика 6.8 – Контролни ток пакета DimVremenskiUslovi

Пакет DimStatusLeta

На слици 6.9 приказан је ток података пакета DimStatusLeta. За пуњење


табеле димензије DimStatusLeta користе се табеле Status и Uzrok из OLTP базе
података. За спајање података из ових извора користи се компонента (енг. Merge
Join), која као предуслов захтева да редови у изворним подацима буду сортирани
по атрибуту према ком се врши спајање, јер редослед вредности атрибута значајно
утиче на перформансе алгоритма. Остале компоненте су описане у ранијем тексту.

39
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.9 – Ток података пакета DimStatusLeta

Пакет DimVremeMesec

За пуњење табеле димензије DimVremeMesec користи се Excel фајл који


садржи податке о месецу, кварталу и години. На слици 6.10 приказан је процес
пуњења табеле димензије који је идентичан као код пакета DimRazdaljinaGrupa
па се детаљан опис изоставља.

Слика 6.10 – Ток података пакета DimVremeMesec

Пакет DimVreme

Пакет DimVreme садржи само контролни ток приказан на слици 6.11.


Пуњење ове табеле димензије врши се позивом TSQL процедуре, јер временска
димензија садржи податке који су зависни од географског подручја за који се
складиште података развија, као нпр. формат датума, дан који означава почетак
седмице или празници у току године. Позив се врши у оквиру компоненте с
називом Execute procedure to generate dimension DimVreme. У прилогу Ц дат је
пример програмског кода ове процедуре.

40
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.11 – Контролни ток пакета DimVreme

Пакет DimDestinacija

На слици 6.12 приказан је ток података пакета DimDestinacija. Као извори


података користе се три табеле из OLTP базе података: Aerodrom, Grad и Drzava.

Слика 6.12 – Ток података пакета DimDestinacija

Најпре се врши учитавање података из наведених табела, при чему се у


оквиру компоненте с називом OLE DB Source – Grad join Drzava одмах врши
спајање табела Grad и Drzava по атрибуту oznDrzave извршавањем SQL наредбе.
На овај начин избегава се вишеструка употреба компоненти за сортирање и
спајање. Затим се врши сортирање података према атрибутима idGrada и
oznDrzave и спајање са табелом Aerodrom. На слици 6.13 приказано је спајање са
табелом Aerodrom.

41
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.13 – Спајање табеле Aerodrom са већ спојеним табелама Grad и Drzava

Пре почетка уписа торки у табелу димензије DimDestinacija, позива се


скрипта написана у програмском језику C#, која садржи функцију за додавање
назива региона Сједињених Америчких Држава у зависности од савезне државе.
Скрипта је написана у програмском језику C#, јер се информације додају
приликом трансформације података, што није било могуће имплементирати
помоћу механизама које нуди коришћени систем за управљање базама података.
Подручје Сједињених Америчких Држава може се поделити на 5 региона:
западни, јужни, средње-западни, северно-источни и пацифички.

Пакет CinjPromet

За пуњење табеле чињенице CinjPromet користи се Excel фајл који садржи


податке о промету робе и путника на аеродромима у одређеном временском
интервалу, које су авио компаније дужне да пријаве служби за авио саобраћај. На
слици 6.14 приказан је ток података пакета CinjPromet.

42
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 6.14 – Ток података пакета CinjPromet

Након учитавања података из фајла и одстрањивања недостајућих


вредности, следи конверзија типа идентификатора аеродрома у тип који одговара
типу идентификатора аеродрома у табели CinjPromet у OLAP бази података.
Затим је неопходно извршити агрегацију података по авио компанији, аеродрому
и времену, јер је грануларност података из фајла на нивоу месеца. На слици 6.15
приказана је компонента за агрегацију података (енг. Aggregate) где се врши
избор атрибута по којима се врши груписање.

Слика 6.15 – Избор атрибута за агрегацију података

Над агрегираним подацима израчунава се укупна количина превезене робе


у тонама, као збир количине пртљага и поште односно пакета. Овај поступак се
врши у оквиру компоненте (енг. Derived Column) која омогућава измену вредности
у колони. Како је резултат овог прорачуна децимални број, врши се конверзија у
целобројну вредност у оквиру компоненте за конверзију података (енг. Data
Conversion). Затим следи пребројавање торки за упис, упис торки у табелу
чињенице CinjPromet и пребројавање и евиденција грешака.

43
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Пакет CinjLet

За пуњење табеле чињенице CinjLet потребно је извршити спајање са


табелама свих димензијама. На слици 6.16 приказан је ток података пакета чијим
извршавањем се пуни табела чињенице CinjLet.

Слика 6.16 – Ток података пакета CinjLet

Након учитавања података из табеле Let у OLTP бази података,


пребројавања торки за упис и евидентирања вредности атрибута AuditKey, следи
најпре спајање са табелом димензије DimAvion, која садржи информације о
авионима, типовима авиона и авио компанијама. На слици 6.17 приказано је
спајање табеле Let са табелом димензије DimAvion. Торке код којих спајање није
било успешно биће уписане у фајлове намењене за евиденцију грешака, како би
касније могла бити вршена њихова анализа.

Слика 6.17 – Спајање табеле Let и димензије DimAvion

44
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Затим се извршава компонента која врши спајање (енг. Lookup) табела


Raspored и Ruta из OLTP базе података, после чега је потребно извршити спајање
са димензијом DimDestinacija. Овај корак се извршава два пута, једном за полазни
аеродром, а други пут за одредишни аеродром. Након тога се врши спој са табелом
димензије DimStatusLeta. Компонента с називом Calculate dobaDana
имплементира функцију написану у програмском језику C# која врши
трансформацију тачног времена полетања, датог као целобројни тип податка, у
одговарајући интервал који представља период у току дана. Након ове
трансформације следи спајање са димензијом DimVreme. Затим се функцијом
написаном у програмском језику C# временски услови трансформишу у
одговарајући интервал и врши се спајање са димензијом DimVremenskiUslovi.
Компонента с називом Transform Distance into Groups позива функцију, написану
у програмском језику C#, за смештање раздаљине дате у миљама у одговарајућу
групу раздаљине и на крају се врши спајање са димензијом DimRazdaljinaGrupa.
Последњи кораци пре уписа података у табелу чињенице CinjLet су израчунавање
кашњења при полетању и слетању, као и укупног кашњења. Ова израчунавања се
врше у оквиру компоненти с називом Calculate Delays Total и Delay Calculation.
Укупно кашњење се добија сабирањем кашњења при полетању и слетању. За
израчунавање кашњења при полетању и слетању потребно је узети у обзир и
могућност да лет буде одложен тако да се изводи наредног дана у односу на време
према распореду, нпр. лет је требао да се изведе у 23 часа, али је одложен и
полетање ће бити извршено у 00:30 часова. У наставку је дата формула која
обухвата и овакве случајеве:

((vremePolStv - vremePolRasp) < -100) ? (vremePolStv + 2400 – vremePolRasp) :


(vremePolStv - vremePolRasp)

45
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

7. OLAP КОЦКА

У овом поглављу описана је OLAP коцка имплементирана над OLAP базом


података. Сврха OLAP коцке је приказ података битних за пословање, њихово
филтрирање, вршење вишедимензионалних анализа и креирање различитих
извештаја. Њеним пројектовањем омогућава се менаџерима и аналитичарима да
самостално и без знања програмирања, у реалном времену обављају
вишедимензионалну анализу података која ће им помоћи у доношењу пословних
одлука.
Над OLAP базом података могуће је имплементирати једну или више OLAP
коцки, дизајнираних да подрже различите анализе података и извештајну
функцију. Захваљујући коришћењу вишедимензионалних структура обезбеђен је
брз приступ подацима за анализу. OLAP коцка омогућава корисницима да стекну
увид у податке кроз конзистентан и интерактиван приступ различитим погледима
на податке. Имплементирана је применом алата Microsoft SQL Server Analysis
Services [11] који поседује посебан језик за задавање упита и израчунавања, с
називом MDX (енг. Multidimensional Expressions). Овај језик представља
проширење SQL програмског језика, чијом применом је могуће вршити упите над
вишедимензионалним подацима. Поред тога, могуће је формирати хијерархије,
логичке структуре у које су организовани неки чланови димензије, ради
напреднијих операција и анализа над димензијом.
На слици 7.1 дат је пример OLAP коцке са подацима о броју кашњења.
Једна димензија је аеродром за који се посматра кашњење, друга димензија је
авио компанија, док трећа димензија представља временски период за који се
посматра кашњење.

Слика 7.1 - Пример OLAP коцке

46
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

За имплементацију OLAP коцке потребни су: извори података, погледи на


изворе података и димензије. Извори података служе за успостављање везе са
OLAP базом података. Табелама из OLAP базе података приступа се преко
погледа извора података. Поступак за пројектовање OLAP коцке састоји се из 3
корака. Први корак је избор погледа на OLAP базу податаку и табеле чињенице из
те базе података. Поглед извора података представља логички модел извора
података, односно приказује његове мета-податке. Може да се изгради над једним
или више извора података и омогућава:
 приказ само потребног подскупа података из OLAP базе података,
 креирање логичких веза између табела из OLAP базе података,
 дефинисање примарних и страних кључева, уколико не постоје у изворној
шеми.
Други корак је избор атрибута које желимо да посматрамо из одабране
табеле чињенице. На слици 7.2 приказан је дијалог у којем је могуће изабрати
атрибуте из табеле чињенице који ће представљати мере OLAP коцке.

Слика 7.2 – Избор мера OLAP коцке

Трећи корак је избор димензија које ће бити укључене у коцку. Приликом


пројектовања OLAP коцке подржане су и нормализоване и денормализоване
димензије. Мана код димензија са двоструком улогом (енг. role playing) је што не
могу да се преименују атрибути димензије за различите улоге, као што је случај
код димензије DimDestinacija. Овај недостатак може се превазићи формирањем
редундантних димензија, при чему би једна димензија представљала полазну, а
друга крајњу дестинацију лета, али се на тај начин заузимају додатни меморијски
ресурси. Приликом избора димензије потребно је одабрати колоне које ће постати
атрибути димензије. Постоје 3 опције за сваку колону из погледа на изворе
података:
 потпуно функционална колона – дозвољене су све операције: приказ
података из једне димензије (енг. slice) или из више димензија (енг. dice),

47
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ротирање димензија коцке (енг. pivot), агрегирање података у димензији


(енг. roll-up) и спуштање на виши ниво детаљности (енг. drill-down),
 колона само за приказ,
 не укључити колону у OLAP димензију.
Већи број колона са којима су дозвољене све операције значи слабије
перформансе. Димензији је могуће доделити посебну пословну логику помоћу
типова. То може бити нпр. временски тип, који омогућава коришћење операција
специфичних за временску димензију, или тип који омогућава операције
специфичне за финансије.
На слици 7.3 приказана је структура OLAP коцке коришћене у овом пројекту.

Слика 7.3 – Структура OLAP коцке

Слично bus matrix-у, Dimension Usage таб приказан на слици 7.4 омогућава
дефинисање грануларности димензија за дату чињеницу. На овај начин је за
сваку меру OLAP коцке могуће дефинисати различите нивое грануларности
димензија за које се дата мера посматра.

48
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 7.4 - Dimension Usage таб за дефинисање грануларности димензија

7.1 Хијерархије

Хијерархије представљају логичке структуре стабла у које су организовани


чланови димензије. Члан димензије је ставка у хијерархији која представља једно
појављивање података или више њих. Сваки члан хијерархије има један
надређени члан и ниједан или више подређених чланова. Унутар хијерархије
подаци могу бити организовани у више и ниже нивое детаља, као што су нивои
година, квартал, месец, недеља и дан у хијерархији временске димензије.
Хијерархије омогућавају напредне операције и анализе над димензијом,
лакшу навигацију кроз димензију и убрзавају упите. Везе у хијерархији
дефинишу 1:N везе између чланова хијерархије и убрзавају операције
агрегирањем података по нивоима детаља. Постоји 2 типа веза:
 rigid – веза између чланова се не сме мењати током времена,
 flexible – веза између чланова се сме мењати током времена.
На слици 7.5 приказана је хијерархија димензије DimDestinacija. На
највишем нивоу грануларности налази се аеродром, затим град, савезна држава,
држава, регион и на крају континент. Сваки члан хијерархије садржи и додатне
атрибуте, специфичне за датог члана.

Слика 7.5 - Хијерархијски приказ димензије DimDestinacija

На слици 7.6 приказана је хијерархија димензије DimVreme. На највишем


нивоу грануларности налази се доба дана, затим датум, дан, недеља, месец
квартал и на крају година.

49
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 7.6 – Хијерархијски приказ димензије DimVreme

Након успешног креирања OLAP коцке кориснику се нуди могућност избора


димензија и њихових атрибута на основу којих се прате вредности мере. На слици
7.7 приказано је укупно кашњење посматрано на аеродромима груписаним по
савезним државама. Кашњење је израчунато на недељном нивоу за сваку авио
компанију. За приказ назива аеродрома и кода савезне државе уместо
идентификационих ознака, потребно је извршити мапирање идентификационе
ознаке аеродрома на атрибут који представља назив аеродрома, као и мапирање
идентификационе ознаке савезне државе на атрибут који предтавља код савезне
државе. Уколико се мапирање не учини, уместо назива ће бити приказане
вредности примарног кључа димензије.

Слика 7.7 - Преглед података OLAP коцке по изабраним атрибутима

50
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

8. ИЗВЕШТАЈИ

У овом поглављу описани су извештаји генерисани над подацима из OLAP


базе података. За формирање извештаја коришћен је алат Microsoft SQL Server
Reporting Services (SSRS) [12] и упити над материјализованим погледима.
Материјализовани поглед представља посебну врсту базне табеле, која се формира
и ажурира преузимањем или агрегирањем података из једне или више табела
OLAP базе података [13]. Предност материјализованих погледа је што се
аутоматски ажурирају приликом ажурирања табела и оптимизатор упита их
самостално пронађе и користи. Предуслови за употребу материјализованих
погледа су да поглед сме да референцира само табеле, не и друге погледе. Све
референциране табеле морају бити у истој бази података као и поглед и морају
имати истог власника. Материјализовани поглед мора бити креиран са опцијом
која повезује поглед са шемом којој припадају табеле (енг. schemabinding).
Поступак за генерисање извештаја састоји се из 3 корака. Први корак
представља дефинисање извора података на основу којих ће извештај бити
генерисан. Други корак је избор једног од 3 могућа типа извештаја: табеларни,
матрични или извештај типа листе. Табеларни извештај се користи за приказ
детаља или за груписање података по редовима. Матрични извештај приказује
агрегиране податке груписане у редове и колоне. Помоћу извештаја типа листе
кориснику се даје могућност да сам дефинише изглед извештаја. Трећи корак је
пресликавање атрибута из извора података за извештај на одговарајуће елементе
одабраног типа извештаја.
У наставку је уз сваки извештај дат кратак опис.

Дневно кашњење по авио компанијама и савезним државама

На слици 8.1 приказан је матрични извештај у ком је сумирано кашњење


летова у минутима за сваку авио компанију на дневном нивоу.

Слика 8.1 – Извештај о кашњењу авио компанија по савезним државама

51
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Кашњење је груписано по савезним државама, при чему је за сваку савезну


државу могуће видети све аеродроме на којима је дата авио компанија имала
одложене летове.
На слици се уочава да је авио компанија American Airlines 16. фебруара
2016. године имала већи број одложених летова у односу на авио компаније Delta
Air Lines и United Airlines. Међутим, убедљиво највеће кашњење, чак 1027
минута, имао је лет авио компаније Delta Air Lines који је изведен са аеродрома
Hartsfield-Jackson Atlanta International Airport у савезној држави Џорџија.

Процентуални удео одложених или отказаних летова према узроцима

На слици 8.2 приказан је табеларни и графички извештај о броју одложених


или отказаних летова и процентуални удео према узроцима одлагања или отказа.

Слика 8.2 - Извештај о одложеним летовима зависно од узрока

На основу приказаних резултата може се закључити да су најчешћи разлози


кашњења или отказа летова појачан авио саобраћај и промет на аеродрому. Од
укупног броја летова, 36% је било одложено или отказано из наведеног разлога.
Осим тога, за 29% кашњења и отказа одговорна је авио компанија, услед
проблема са посадом, чишћења и припреме авиона или утовара пртљага.
Најмањи број летова је одложен и отказан као последица неповољних временских
услова или проблема приликом сигурносних контрола.

52
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Kaшњење летова по периодима у току дана

На слици 8.3 приказан је табеларни извештај о кашњењу летова у


завосности од периода дана када авион полеће.

Слика 8.3 - Извештај о кашњењу летова у зависности од периода дана

Убедљиво највеће кашњење, укупно 15290 минута, забележено је у периоду


између 12 и 16 часова (колона „Kasnjenje”). Међутим, када се узме у обзир да је у
том периоду извршено и највише летова, 152, просечно кашњење износи 100
минута.
На основу просечног кашњења у последњој колони табеле са слике 8.3,
закључује се да летови планирани за период између 7 и 9 часова ујутру, у случају
одлагања, имају највеће кашњење. Ипак, у овом периоду је одлагање летова
ретко.
Најбољи период за полетање је између поноћи и 3 часа ноћу, у коме је само
6 летова било одложено, просечно за 58 минута.

Промет путника на аеродромима на годишњем нивоу

На слици 8.4 приказан је табеларни и графички извештај о 10


најпрометнијих аеродрома по броју путника у 2016. години.

53
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 8.4 - Извештај о промету путника на аеродромима

Највећи број путника, 43 383 154, забележен је на међународном аеродрому


Hartsfield-Jackson у Атланти. Осим овог аеродрома, преко 2 милиона путника у
2016. години забележено је и на међународним аеродромима у Чикагу, Денверу,
Лос Анђелесу и Даласу.

Промет робе на аеродромима на годишњем нивоу


На слици 8.5 приказан је табеларни и графички извештај о 10
најпрометнијих аеродрома по количини превезене робе у тонама у 2016. години.

54
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 8.5 - Извештај о промету робе на аеродромима

Највећа количина робе, 232 371 222 тоне, превезена је са међународног


аеродрома у Лос Анђелесу, у савезној држави Калифорнија. Осим овог аеродрома,
са преко 100 милиона тона превезене робе, истичу се и међународни аеродроми
Hartsfield-Jackson у Џорџији, Хонолулу на Хавајима и аеродром у Сан Франциску,
у Калифорнији.

55
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

9. DATA MINING

Рударење података (енг. data mining) је мултидисциплинарно подручје које


обухвата базе података, теорију информација, статистику, математику, логику и
читав низ других области. Може се дефинисати као процес проналажења
скривених законитости и веза међу подацима.
Као софистицирани систем за подршку одлучивању, data mining користи
најсавременије статистичке и математичке моделе за анализу података о
пословању, како би било могуће открити потенцијалне проблеме и шансе. Data
mining се разликује од класичних статистичких метода по томе што се не одвија по
унапред утврђеним правилима, већ се приликом анализа примењују различити
алгоритми и на тај начин могу да се открију нова, неочекивана правила.
Током израде овог пројекта, најпре је извршена експлоративна анализа,
којом је могуће открити карактеристике скупа података и испитати односе међу
атрибутима. Затим су примењени алгоритми типа стабла одлучивања за
класификацију података, вишеструка и логистичка регресија и асоцијативна
правила. На крају је извршена оцена и визуелни приказ добијених резултата. Све
анализе извршене су у програмском окружењу R Studio [14], помоћу програмског
језика R, док је за визуелни приказ резултата коришћен Shiny Framework [15].

9.1 Експлоративна анализа података

У фази припреме података извршена је експлоративна анализа скупа


података. Овај приступ користи се у циљу откривања карактеристика скупа
података, смањења количине података који ће бити употребљени за изградњу
предиктивних модела, као и за повећање квалитета анализе података. Сврха ове
анализе је да се испитају односи између атрибута, како би се спречила доминација
појединих атрибута приликом примене алгоритама. Доминантни атрибути су
атрибути од којих у великој мери зависе резултати добијени применом одређеног
алгоритма и због тога их је неопходно избацити из скупа улазних података.
Добијени резултати се најчешће представљају графички уз примену различитих
техника визуализације.
На слици 9.1 приказан је хистограм са расподелом летова за сваки период у
току дана добијен применом функције barplot [14] у програмском језику R. Као
улазни подаци коришћени су атрибути dobaDana и kasnjenje. На основу вредности
атрибута kasnjenje, летови су најпре сврстани у две категорије: летови који касне
или су отказани и летови који су изведени на време. Плавом бојом приказани су
летови на којима није било кашњења, док су црвеном бојом представљени
одложени летови. На хоризонталној оси хистограма са слике 9.1 дати су периоди
дана у којима се летови одвијају, док је на вертикалној оси представљен број
летова за сваки период дана. Према добијеним резултатима, летови су се
56
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

најчешће одвијали у периоду између 12 и 16 часова, када је забележено и највише


кашњења. Убедљиво најмање кашњења, али и најмање летова забележено је на
летовима између поноћи и 3 часа.

Слика 9.1 - Расподела одложених и летова на време по периодима дана

Табела 9.1 садржи укупан број одложених летова и летова на којима није
било кашњења за сваки период дана.

Doba dana Na vreme Odloženi

1 - Early Morning (03:00 - 6:59) 225 19


2 - AM Peak (07:00 - 8:59) 459 33
3 - Late Morning (09:00 - 11:59) 613 94
4 - Afternoon (12:00 - 15:59) 840 154
5 - PM Peak (16:00 - 17:59) 405 83
6 - Evening (18:00 - 23:59) 619 140
7 - Late Night (00:00 - 2:59) 68 6
Табела 9.1 - Број одложених и летова на време

На слици 9.2 графички су приказани резултати анализе летова по данима у


току недеље. Закључује се да се највише летова одвија понедељком, при чему је
тада забележено и највеће кашњење. Са слике се може уочити да се убедљиво
најмањи број летова одвија суботом, али је кашњење чешће него осталим данима,
пропорционално броју летова. Расподела летова по осталим данима је
равномерна.

57
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.2 - Расподела летова по данима у недељи

На слици 9.3 приказани су резултати анализе 10 најчешћих авионских


рута. Утврђено је да је најпрометнији Hartsfield-Jackson међународни аеродром у
Атланти, Џорџија. Као најчешћа рута, са 388 летова, издваја се лет са претходно
наведеног аеродрома до аеродрома Fort Lauderdale-Hollywood Intl у савезној
држави Флорида.

Слика 9.3 - 10 најфреквентнијих рута

На слици 9.4 приказано је 10 најпрометнијих аеродрома. На левој страни су


представљени аеродроми који су најчешће били крајња дестинација, док су са
десне стране приказани аеродроми са којих је извршено полетање.

58
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.4 - Најпрометнији аеродроми

Као најпрометнији аеродром издваја се Hartsfield-Jackson Atlanta


International Airport у савезној држави Џорџија, са којег је извршено чак 948
полетања и 553 слетања. По броју полетања истичу се још и међународни
аеродроми у Денверу, Колорадо (574), Енкориџу, Аљаска (527) и Чикагу, Илиноис
(495), док је највише слетања обављено на аеродромима у Сијетлу, Вашингтон
(397), аеродрому Fort Lauderdale-Hollywood на Флориди (388) и међународном
аеродрому у Вашингтону (366).
За графички приказ анализираних података коришћен је R пакет ggmap и
функција get_map која омогућава интеграцију са Google Maps. Пример
програмског кода за приказ најпрометнијих аеродрома дат је у прилогу Д.
На слици 9.5 приказани су резултати анализе кашњења према типовима
авиона. Бојама су представљене вредности категоријалне променљиве
„kasnjenjeKat“ која може имати једну од следеће 3 вредности: „malo” – мало
кашњење од 15 до 30 минута, „srednje” – средње кашњење од 31 до 100 минута и
„veliko” – велико кашњење од преко 100 минута.

59
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.5 - Расподела кашњења према типовима авиона

На основу добијеног графика закључује се да авион са идентификационим бројем


типа 22 - Canadair Regional Jet убедљиво најчешће касни са чак 45 великих
кашњења преко 100 минута. Осим овог типа авиона, велики број кашњења се
јавља и на летовима који се одвијају типовима авиона са идентификационим
бројевима 15 - Boeing 737 Next Gen, 14 - Boeing 737 и 35 - McDonnell Douglas MD-
80/90. Најмање одложених летова се јавља код типова авиона са
идентификатором 3 - Airbus A319, 13 – Boeing 717 и 17 - Boeing 757.

9.2 Рангирање атрибута према значају

Избор правих атрибута из скупа података може значајно утицати на време


потребно за обучавање модела и његове перформансе. Пакет Caret [15] у
програмском језику R пружа функције за рангирање атрибута према њиховом
значају. Значај атрибута може бити процењен изградњом модела над датим
скупом података. Неки алгоритми, попут стабла одлучивања, већ имају уграђену
ову функционалност, док се у осталим случајевима на сваки атрибут примењује
ROC (Receiver Operating Characteristic) [18] анализа. На слици 9.7 графички је
представљено 9 најзначајнијих атрибута из скупа података коришћеног у овом
пројекту, међу којима се посебно издвајају период дана за који је лет заказан
dobaDanaId и трајање лета.

60
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.6 - Најзначајнији атрибути из скупа података

9.3 Анализа циљног атрибута

Атрибут kasnjenjeInd представља циљни атрибут, категоричког је типа и


може узети једну од следеће две вредности: 1 за летове који су били одложени или
отказани, односно чије кашњење износи најмање 15 минута, и 0 за летове који су
били изведени на време. На слици 9.8 приказан је однос одложених и летова
изведених на време.

Слика 9.7 - Расподела вредности циљног атрибута

Од укупног броја летова, 19,7% је било одложено, док на 80,3% летова није
било кашњења већег од 15 минута.

9.4 Предвиђање кашњења лета

За предвиђање кашњења летова примењен је алгоритам класификације


имплементиран као бинарно стабло одлучивања [18]. Стабло одлучивања је граф
који представља могуће исходе неке одлуке. Чворови стабла представљају избор,

61
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

односно одлуке, док гране репрезентују правила одлучивања или услове. За


изградњу стабла алгоритам тражи променљиву на основу које се најбоље може
извршити подела података у две групе. Овај корак се понавља за сваку
променљиву дату као улаз у алгоритам. Улазне податке представљају 5
најзначајнијих атрибута приказаних на слици 9.7: период дана за који је лет
заказан (dobaDanaId), трајање лета у минутима (trajanje), раздаљина између
аеродрома (razdaljina) и идентификациона ознака временских услова на
аеродрому у тренутку полетања (vuId). На слици 9.9 приказано је стабло
одлучивања добијено применом функције ctree [19] у програмском језику R над
тренинг скупом података, који представља 70% укупног броја летова.

Слика 9.8 - Стабло одлучивања за предвиђање кашњења

Анализом добијеног модела, закључено је да су најмање шансе да ће лет


каснити уколико је заказан за јутарње сате, односно ако се одвија између 3 и 9
часова (табела 9.1). Насупрот томе, летови који су касније заказани, чије трајање
је веће од 191 минута и раздаљина између аеродрома износи мање од 1709 миља
имају највећу тенденцију да касне. Вероватноћа кашњења оваквих летова износи
50%.
Тестирање добијеног модела извршено је над преосталих 30% летова.
Перформансе модела добијене су рачунањем мере прецизности, која се добија као
количник збира добро класификованих летова на оне који касне или не касне и
укупног збира свих летова. Прецизност износи 79,7%.
Предвиђање кашњења урађено је помоћу још једног алгоритма
класификације у виду стабла одлучивања (енг. Random Forest) [20]. Разлика у
односу на стабло одлучивања описано у претходном тексту, је што се приликом
сваке поделе стабла, уместо читавог скупа улазних атрибута, користи само мали
подскуп изабран на случајан начин из којег се даље бира атрибут који обезбеђује
најбољу поделу чвора. Понављајући овај процес, алгоритам изграђује више
стабала, а на крају се за агрегирање резултата користи просечна вредност или она
која се најчешће појављује. Овај алгоритам искоришћен је с циљем да се

62
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

одложени летови класификују на оне који мало, умерено и пуно касне. Као улаз
задати су период дана у којем се лет одвија, трајање лета, раздаљина између
аеродрома, трајање лета и идентификациона ознака аеродрома који је крајња
дестинација, док је зависна променљива категорија кашњења. Приликом
формирања модела изграђено је 500 стабала, при чему су приликом сваке поделе
на случајан начин селектована 2 атрибута. На слици 9.10 приказана је матрица
добијених резултата на обучавајућем скупу података, као и грешка
класификације за сваку категорију.

Слика 9.9 - Добијени резултати применом Random Forest алгоритма

Резултати са слике 9.10 показују да алгоритам најбоље класификује летове


са малим кашњењем, док је грешка приликом класификације на средње и велико
кашњење велика.
На слици 9.11 приказана је матрица класификованих летова која је
резултат тестирања добијеног модела над преосталих 30% летова. Са слике се
закључује да перформансе алгоритма нису добре, што показује и мера
прецизности која износи само 43,3%.

Слика 9.10 - Добијени резултати над тест скупом података

За предвиђање кашњења летова примењена је и вишеструка регресија, која


представља проширење алгоритма линеарне регресије са две променљиве. Спада
у надгледано учење и користи се за апроксимацију односа променљивих, тј. за
предикцију вредности зависне променљиве на основу вредности осталих
независних променљивих. Као улазни подаци коришћени су следећи атрибути:
доба дана за које је лет заказан (dobaDanaId), месец у ком се лет одвија (mesec),
раздаљина између аеродрома са ког се врши полетање и крајње дестинације лета
(razdaljina), идентификатор типа авиона којим се врши лет (avTipId),
идентификациона ознака авио компаније која изводи лет (avKompId) и
идентификатор временских услова (vuId) – на основу идентификатора временских
услова могуће је утврдити вредности параметара који описују температуру,
количину падавина, брзину ветра и видљивост. Као зависна променљива
коришћен је атрибут који означава кашњење лета (kasnjenjeTotal).
На слици 9.12 приказани су резултати добијени формирањем регресионог
модела у програмском језику R над тренинг скупом података.

63
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.11 - Резултати регресионог модела

Број звездица поред сваке променљиве на слици 9.12 означава степен


важности дате променљиве за формирање регресионог модела. Утвђено је да
раздаљина, тип авиона, авио компанија и временски услови нису од значаја за
предвиђање кашњења летова употребом алгоритма вишеструке регресије, па ови
атрибути нису узети у обзир за формирање регресионог модела. Међутим,
поновним формирањем модела са смањеним скупом атрибута добијена је
приближно иста вредност коефицијента детерминације (енг. R-squared).
Коефицијент детерминације описује у којој мери се вредност зависне променљиве
може одредити помоћу независних променљивих.
Перформансе регресионог модела добијеног применом вишеструке регресије
тестиране су рачунањем коефицијента детерминације (енг. R-squared) и
поправљеног коефицијента детерминације (енг. Adjusted R-squared). У наставку је
дата формула за рачунање коефицијента детерминације:
R2 = 1 – SSE / SST
SSE представља суму квадрата резидуала. Резидуал је разлика између
процењене и стварне вредности зависне променљиве. SST је укупна сума
квадрата и рачуна се сабирањем квадрата разлике између стварне и средње
вредности зависне променљиве. Тестирањем регресионог модела на тест скупу
података, добијена вредност коефицијента детерминације износи 0,01869, што
показује да перформансе модела нису добре. Регресиони модел се сматра добрим
уколико је вредност коефицијента детерминације блиска 1.
Вредност коефицијента детерминације увек расте додавањем променљивих,
па у случају вишеструке регресије није добра мера успешности регресионог
модела. Због тога се уводи поправљени коефицијент детерминације који у обзир
узима и значај променљивих. Овај коефицијент се такође повећава додавањем
нових променљивих, али уколико променљива није значајна, онда се смањује.
Вредност поправљеног коефицијента детерминације за тест скуп података износи
0,01712.
Како би се ипак могла извршити процена да ли ће лет бити одложен или не,
примењена је логистичка регресија – алгоритам код кога је зависна променљива
категоријалног типа. За потребе формирања модела уведен је додатни атрибут,
64
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

који је категоријалног типа и има вредност 1 уколико је лет одложен, односно 0,


ако није било кашњења. Општа математичка формула је:
y = 1 / (1 + e-(a + b1x1 + b2x2 + b3x3 + ...))
при чему y представља зависну променљиву, xi је независна променљива, а a и bi
су коефицијенти, односно нумеричке константе. За формирање регресионог
модела коришћени су исти атрибути наведени код алгоритма вишеструке
регресије. Позивом одговарајуће функције за формирање регресионог модела
применом алгоритма логистичке регресије у програмском језику R, добијена је
следећа регресиона једначина:
y = 1 / (1 + e-(-2.588 + 0.19x1 + 0.2486x2))
при чему y представља зависну променљиву – индикатор кашњења, x1 доба дана
када се лет одвија, а x2 месец у коме се лет одвија.
На слици 9.13 приказана је табела девијације, добијена применом функције
anova [21] након формирања регресионог модела. Табела девијације показује у
којој мери је вредност зависне променљиве удаљена од аритметичке средине.

Слика 9.12 - Табела девијације

На слици 9.13 уочавају се две девијације: NULL и резидуал девијација. Разлика


између NULL и резидуал девијације исказује колико је добијени модел добар у
односу на NULL модел. NULL модел је модел који садржи само зависну
променљиву. Што је већа разлика између ове две вредности, то су перформансе
модела боље. Даљом анализом табеле на слици 9.13 види се да девијација
значајно опада додавањем променљиве, што значи да оне доприносе побољшању
регресионог модела.
Перформансе модела добијеног применом алгоритма логистичке регресије
измерене су рачунањем прецизности, која износи 80,2%, чиме се овај модел може
окарактерисати као добар. Употребом програмског језика R могуће је добијене
резултате логистичке регресије представити помоћу ROC криве [17]. ROC крива
представља статистичку технику за утврђивање граничне вредности у којој
постоји најбољи однос две променљиве. Циљ ове анализе је испитати да ли ова
крива статистички значајно одступа од референтне линије, тј. оне која пролази
средином графикона. На слици 9.14 приказана је ROC крива чијим исцртавањем
се може израчунати површина испод криве (енг. Area Under Curve (AUC)), која
представља суму тачности теста и износи 0,58. Перформансе предиктивног модела
се сматрају добрим уколико је ова вредност ближа вредности 1 (идеалан модел),
него 0,5.

65
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.13 - ROC крива

Још једна метода која се може применити за предвиђање кашњења летова


су асоцијативна правила (енг. association rules). Асоцијативна правила
представљају поступак при којем се идентификују елементи који се појављују
заједно у неком догађају. Употреба ове методе заснива се на проласку кроз базу
података примењујући логичке функције над атрибутима и рачунајући
вероватноћу појаве вредности неког атрибута или комбинација атрибута. Како би
се дошло до скривених информација потребно је проћи кроз што више могућих
међусобних комбинација атрибута.
На слици 9.15 приказано је 10 асоцијативних правила добијених применом
функције apriori [22] у програмском језику R. На основу добијених правила,
сваком комбинацијом атрибута може се закључити када лет неће каснити,
међутим ниједно правило не указује да ће лет бити одложен.

Слика 9.14 - Асоцијативна правила за предвиђање кашњења лета

Асоцијативна правила је могуће приказати и употребом графова. На слици


9.16 приказан је граф за 10 асоцијативних правила добијених применом функције
apriori. Чворови графа представљају вредности одређених атрибута, док гране
указују на везе које постоје између атрибута у оквиру правила.

66
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

Слика 9.15 - Граф асоцијативних правила

9.5 Анализа добијених резултата

У претходном тексту описани су резултати анализе авионских летова у


Сједињеним Америчким Државама с циљем да се откривањем узрока великог
броја одложених летова омогући проналажење решења овог проблема. Од укупног
броја летова из датог скупа података, скоро 20% чине одложени или отказани
летови, што је скоро 1,5% више у односу на 2015. годину. Као главни узрок истиче
се појачан авио саобраћај и промет на аеродрому.
Поступак експлоративне анализе је искоришћен за истраживање података
и према добијеним резултатима закључује се да је највећа вероватноћа да ће лет
каснити уколико се одвија понедељком и време полетања је између 12 и 16 часова.
Најбољи дан за полетање је субота, јер је тада забележено најмање кашњења.
За формирање модела за предвиђање кашњења летова употребљени су
алгоритми класификацијe - бинарно стабло одлучивања и алгоритам Random
Forest, вишеструка и логистичка регресија и асоцијативна правила. Најбољи
резултати постигнути су применом алгоритма бинарног стабла одлучивања и
логистичке регресије код којих мера прецизности добијених модела износи 80% и у
оба случаја је доба дана када се врши полетање фактор који има највећи утицај на
кашњење лета. Такође, на кашњење лета велики утицај имају и трајање лета,
односно раздаљина између аеродрома. Летови који трају дуже од 191 минута и код
којих је раздаљина између аеродрома са ког се врши полетање и аеродрома који је
одредишна дестинација мања од 1709 миља имају највећу вероватноћу кашњења.
На основу предиктивних модела добијених применом осталих алгоритама
не може се прецизно предвидети кашњење летова. Код алгоритма вишеструке
регресије није било могуће пронаћи регресиону једначину која се добро уклапа у
податке из обучавајућег скупа. Како су се за формирање регресионог модела само
две променљиве – доба дана и месец у којем се лет одвија, показале као значајне,

67
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

разлог лоших резултата добијених применом алгоритма вишеструке регресије


може бити скуп података ограничен на 2016. годину.
Иако поједине анализе и примењени алгоритми нису дали задовољавајуће
резултате, добијени резултати могу се искористити за даљи развој пројекта у којем
ће скуп података бити ограничен на савезне државе и аеродроме где је проблем
кашњења летова најизраженији. Овим би се смањио скуп података над којим ће
бити вршене анализе, али би се фокус ставио на главне изворе проблема.

68
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

10. ЗАКЉУЧАК

Константан раст одложених или отказаних летова представља све већи


проблем с којим се суочавају америчке службе за цивилно ваздухопловство, а то се
одражава и на привреду која трпи све веће губитке. Постоји много радова у којима
су се научници бавили овом темом, међутим они се претежно базирају на
алгоритмима за истраживање и анализу података.
У овом раду представљен је један део система складишта података, над
којим је могуће вршити анализе чији резултати би могли довести до откривања
главних узрока кашњења летова. За израду софтверског решења, неопходно је
било прикупити податке из различитих извора и упознати се са значењем
атрибута. Прикупљени подаци су затим, применом ETL процеса пречишћени,
трансформисани и ускладиштени у OLAP базу података, с циљем добијања
стратешких информација у облику који је погодан за доношење пословних одлука.
Над OLAP базом података имплементирана је OLAP коцка која омогућава
корисницима, најчешће аналитичарима и менаџерима, да стекну увид у податке
кроз интерактиван приступ различитим погледима на податке. За приказ
података из OLAP базе података, који су битни за анализу података о летовима,
имплементирана је извештајна функција. Применом техника за истраживање и
обраду великих количина података извршена је анализа података из OLAP базе
података у програмском језику R. Добијени резултати су визуално приказани
употребом различитих типова дијаграма.
На основу резултата добијених анализом података из OLAP базе података,
закључује се да је скоро 20% летова у 2016. години било одложено за бар 15
минута. Најчешћи разлог био је појачан авио саобраћај и промет на аеродрому.
Највише кашњења јавља се на летовима понедељком, док је субота дан када има
најмање одлагања летова. Летови који су се одвијали између поноћи и 3 часа
ноћу, имали су најмање кашњења. Највећи број летова забележен је између 12 и
16 часова и тада најчешће долази и до одлагања летова.
Даљи развој овог пројекта подразумева проширење скупа података о
летовима и примену алгоритма кластеризације. Применом алгоритма
кластеризације могуће је авионе груписати према учесталости кашњења на оне
који ретко, умерено и често касне. На овако добијеним кластерима, могуће је
применити алгоритам временских серија (енг. Time Series Algorithm) [23] и
вршити предвиђање кашњења летова на основу претходне историје кашњења
авиона, чиме се може утврдити да ли постоје периоди у којима одређени авиони
типично касне.
Са технолошког аспекта, следећи корак у развоју овог пројекта представља
имплементација система складишта података у оквиру платформе Microsoft Azure
[24] и примена алата за анализу података и генерисање извештаја које ова

69
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

платформа пружа. Предност овог решења је дистрибуирани систем који омогућава


паралелну обраду података. Осим тога, ова платформа такође има уграђене све
алате и сервисе коришћене у овом пројекту.

70
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ЛИТЕРАТУРА

[1] Bureau of Transportation Statistics, преузето са адресе


http://www.transtats.bts.gov
[2] Airline On-Time Statistics and Delay Causes, преузето са адресе
https://www.transtats.bts.gov/OT_Delay/OT_DelayCause1.asp
[3] Airfleets.net, преузето са адресе http://www.airfleets.net/home/
[4] ETL Process, преузето са адресе
https://en.wikipedia.org/wiki/Extract,_transform,_load
[5] Understanding the Reporting of Causes of Flight Delays and Cancellations,
преузето са адресе
https://www.rita.dot.gov/bts/help/aviation/html/understanding.html
[6] Међународна организација за авио саобраћај, преузето са адресе
http://www.iata.org/Pages/default.aspx
[7] Могин П., Луковић И., Говедарица М., „Принципи пројектовања база
података“, II издање, Универзитет у Новом Саду, Факултет техничких
наука, Нови Сад, 2004
[8] R. Kimball, M. Ross, The Data Warehouse Toolkit, 3rd Edition, Wiley, 2013
[9] J. Mundy, W. Thorntwaite, R. Kimball, The Microsoft Data Warehouse
Toolkit, 2nd Edition, Wiley, 2011
[10] Microsoft SQL Business Intelligence Development Studio, преузето са адресе
https://msdn.microsoft.com/en-us/library/ms173767(v=sql.105).aspx
[11] Microsoft SQL Server Analysis Services (SSAS), преузето са адресе
https://www.mssqltips.com/sqlservertutorial/2000/sql-server-analysis-services-
ssas-tutorial/
[12] Microsoft SQL Server Reporting Services (SSRS), преузето са адресе
https://docs.microsoft.com/en-us/sql/reporting-services/create-deploy-and-
manage-mobile-and-paginated-reports
[13] Луковић И., Материјали за предмет Системи складишта података,
преузето са адресе
http://www.acs.uns.ac.rs/sites/default/files/5_BPA_DW_AgregacijaPodataka.pd
f
[14] Програмски језик R, преузето са адресе http://www.tutorialspoint.com/r/
[15] Shiny Framework, преузето са адресе https://shiny.rstudio.com/tutorial/
[16] Пакет caret, преузето са адресе
https://machinelearningmastery.com/feature-selection-with-the-caret-r-
package/
[17] ROC крива, преузето са адресе
https://en.wikipedia.org/wiki/Receiver_operating_characteristic

71
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

[18] Алгоритам стабла одлучивања, преузето са адресе


https://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Classification/De
cision_Trees
[19] Функција ctree, преузето са адресе
https://www.rdocumentation.org/packages/partykit/versions/1.1-1/topics/ctree
[20] Алгоритам Random Forest, преузето са адресе
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#ooberr
[21] Anova функција, преузето са адресе
https://www.rdocumentation.org/packages/car/versions/2.1-5/topics/Anova
[22] Apriori функција, преузето са адресе
https://www.rdocumentation.org/packages/arules/versions/1.5-3/topics/apriori
[23] Time Series алгоритам, преузето са адресе
https://docs.microsoft.com/en-us/sql/analysis-services/data-mining/microsoft-
time-series-algorithm
[24] Microsoft Azure, преузето са адресе https://azure.microsoft.com/en-us/

72
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ПРИЛОГ А – СПИСАК КОРИШЋЕНИХ СКРАЋЕНИЦА

Скраћеница Пун назив


On-line Transactional Processing (трансакционо процесирање
OLTP
података)
On-line Analytical Processing (аналитичко процесирање
OLAP
података)
Extract, Transform, Load (екстракција, трансформисање,
ETL
пуњење)
International Air Transport Association (међународна
IATA
организација за авио саобраћај)
DOT Department of Transportation (департман за саобраћај)

NAS National Airspace System (национални авио систем)

73
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ПРИЛОГ Б – ПРОЦЕДУРА ЗА ГЕНЕРИСАЊЕ ДИМЕНЗИЈЕ


ВРЕМЕНСКИХ УСЛОВА

У овом поглављу приложен је TSQL код процедуре којом су генерисани


подаци димензије DimVremenskiUslovi у оквиру пројектованог складишта
података.
Процедура чији је код дат у наставку, као улазни податак прима тачну
вредност температуре, количину падавина, брзину ветра и видљивост на
аеродрому у моменту полетања, и дате вредности смешта у одговарајући
интервал.

CREATE PROCEDURE WeatherConditionsProcedure


-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

DECLARE @VisibilityCnt int,


@WindCnt int,
@PrecipitationCnt int,
@TempCnt int,
@InsAk int,
@UpdAk int

SELECT @VisibilityCnt = 0,
@WindCnt = 0,
@PrecipitationCnt = 0,
@TempCnt = 0,
@InsAk = 0,
@UpdAk = 0

SELECT @InsAk = MAX(AuditKey) FROM [dbo].DimAudit WHERE TableName =


'DimVremenskiUslovi'
SELECT @UpdAk = MAX(AuditKey) FROM [dbo].DimAudit WHERE TableName =
'DimVremenskiUslovi'

WHILE @TempCnt < 5


BEGIN
WHILE @PrecipitationCnt < 4
BEGIN
WHILE @WindCnt < 4
BEGIN
WHILE @VisibilityCnt < 5
BEGIN
INSERT INTO DimVremenskiUslovi
(
[vuTemp],
[vuKolPadavina],
[vuVetar],
[vuVidljivost],
[insertAuditKey],
[updateAuditKey]
)

74
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

SELECT CASE @TempCnt


WHEN 0 THEN '<14'
WHEN 1 THEN '14-32'
WHEN 2 THEN '32-50'
WHEN 3 THEN '50-77'
WHEN 4 THEN '>77'
END AS [vuTemp]
, CASE @PrecipitationCnt
WHEN 0 THEN '<1'
WHEN 1 THEN '1-4'
WHEN 2 THEN '4-10'
WHEN 3 THEN '>10'
END AS [vuKolPadavina]
, CASE @WindCnt
WHEN 0 THEN '<4'
WHEN 1 THEN '4-15'
WHEN 2 THEN '15-30'
WHEN 3 THEN '>30'
END AS [vuVetar]
, CASE @VisibilityCnt
WHEN 0 THEN '<0.2'
WHEN 1 THEN '0.2-0.5'
WHEN 2 THEN '0.5-1'
WHEN 3 THEN '1-2'
WHEN 4 THEN '>2'
END AS [vuVidljivost]
, @InsAk
, @UpdAk
SELECT @VisibilityCnt = @VisibilityCnt + 1
END --VISIBILITY
SELECT @VisibilityCnt = 0
SELECT @WindCnt = @WindCnt + 1
END --WIND
SELECT @WindCnt = 0
SELECT @PrecipitationCnt = @PrecipitationCnt + 1
END --PERTICIPITATION
SELECT @PrecipitationCnt = 0
SELECT @TempCnt = @TempCnt + 1
END --TEMPERATURE
END
GO

75
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ПРИЛОГ Ц – ПРОЦЕДУРА ЗА ГЕНЕРИСАЊЕ ВРЕМЕНСКЕ


ДИМЕНЗИЈЕ

Ово поглавље садржи TSQL код процедуре чији је задатак да генерише


вредности којима се врши пуњење димензије DimVreme у оквиру складишта
података.
У оквиру процедуре потребно је задати почетни и крајњи датум за који се
врши генерисање. Поред стандардних атрибута који одређују временску
димензију, задатак процедуре је и да генерише све празнике у току године у
Сједињеним Америчким Државама.

CREATE PROCEDURE DateTimeProcedure


-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

DECLARE @tmpDOW TABLE (DOW INT, Cntr INT)--Table for counting DOW
occurance in a month
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(1,0)--Used in the loop below
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(2,0)
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(3,0)
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(4,0)
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(5,0)
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(6,0)
INSERT INTO @tmpDOW(DOW, Cntr) VALUES(7,0)

DECLARE @StartDate datetime


, @EndDate datetime
, @Date datetime
, @WDofMonth INT
, @CurrentMonth INT
, @Counter INT
, @InsAk int
, @UpdAk int

SELECT @StartDate = '1/1/2016'


, @EndDate = '3/31/2017'--Non inclusive. Stops on the day before this.
, @CurrentMonth = 1 --Counter used in loop below.
, @Counter = 1
, @InsAk = 0
, @UpdAk = 0

SELECT @InsAk = MAX(AuditKey) FROM [dbo].DimAudit WHERE TableName='DimVreme'


SELECT @UpdAk = MAX(AuditKey) FROM [dbo].DimAudit WHERE TableName='DimVreme'

SELECT @Date = @StartDate

WHILE @Date < @EndDate


BEGIN

76
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

IF DATEPART(MONTH,@Date) <> @CurrentMonth


BEGIN
SELECT @CurrentMonth = DATEPART(MONTH,@Date)
UPDATE @tmpDOW SET Cntr = 0
END

UPDATE @tmpDOW
SET Cntr = Cntr + 1
WHERE DOW = DATEPART(DW,@DATE)

SELECT @WDofMonth = Cntr


FROM @tmpDOW
WHERE DOW = DATEPART(DW,@DATE)

--ADDED FOR PART OF THE DAY GENERATION

WHILE @Counter < 8


BEGIN

INSERT INTO dbo.DimVreme


(
[datum]
, [dobaDana]
, [dan]
, [danNedelja]
, [danMesec]
, [danGodina]
, [nedeljaGodina]
, [nedeljaMesec]
, [mesec]
, [kvartal]
, [godina]
, [insertAuditKey]
, [updateAuditKey]
)
SELECT @Date [datum]
--ADDED FOR PART OF THE DAY GENERATION
, CASE @Counter
WHEN 1 THEN 'Late Night (00:00AM - 2:59AM)'
WHEN 2 THEN 'Early Morning (03:00AM - 6:59AM)'
WHEN 3 THEN 'AM Peak (07:00AM - 8:59AM)'
WHEN 4 THEN 'Late Morning (09:00AM - 11:59AM)'
WHEN 5 THEN 'Afternoon (12:00PM - 15:59PM)'
WHEN 6 THEN 'PM Peak (16:00PM - 17:59PM)'
WHEN 7 THEN 'Evening (18:00PM - 23:59PM)'
END AS [dobaDana]
, DATEPART(DAY,@DATE) [dan]
, CASE DATEPART(DW, @DATE)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
END AS [danNedelja]
, @WDofMonth [danMesec]--Occurance of this day in this month.
If Third Monday then 3 and DOW would be Monday.
, DATEPART(dy,@Date) [danGodina]--Day of the year. 0 - 365/366
, DATEPART(ww,@Date) [nedeljaGodina]--0-52/53
, DATEPART(ww,@Date) + 1 -
DATEPART(ww,CAST(DATEPART(mm,@Date) AS VARCHAR)+ '/1/' +
CAST(DATEPART(yy,@Date) AS VARCHAR)) [nedeljaMesec]

77
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

, DATEPART(MONTH,@DATE) [mesec]
, DATEPART(qq,@DATE) [kvartal]--Calendar quarter
, DATEPART(YEAR,@Date) [godina]
, @InsAk
, @UpdAk

--END OF COUNTER WHILE


SELECT @Counter = @Counter + 1
END

SELECT @Counter = 1

SELECT @Date = DATEADD(dd,1,@Date)


END

UPDATE dbo.DimVreme
SET standardDatum = CAST([mesec] as varchar) + '/' + CAST([dan] as varchar)
+ '/' + CAST([godina] as varchar)

--Add HOLIDAYS -----------------------------------------------------------


--THANKSGIVING -----------------------------------------------------------
--Fourth THURSDAY in November.
UPDATE dbo.DimVreme
SET nazPraznik = 'Thanksgiving Day'
WHERE [mesec] = 11
AND [danNedelja] = 'Thursday'
AND [danMesec] = 4

--CHRISTMAS ---------------------------------------------------------------
UPDATE dbo.DimVreme
SET nazPraznik = 'Christmas Day'
WHERE [mesec] = 12 AND [dan] = 25

--4th of July -------------------------------------------------------------


UPDATE dbo.DimVreme
SET nazPraznik = 'Independance Day'
WHERE [mesec] = 7 AND [dan] = 4

-- New Years Day ----------------------------------------------------------


UPDATE dbo.DimVreme
SET nazPraznik = 'New Year''s Day'
WHERE [mesec] = 1 AND [dan] = 1

--Memorial Day ------------------------------------------------------------


--Last Monday in May
UPDATE dbo.DimVreme
SET nazPraznik = 'Memorial Day'
FROM dbo.DimVreme
WHERE CONVERT(VARCHAR,[datum],112) IN (
SELECT DISTINCT MAX(CONVERT(VARCHAR,[datum],112))
FROM dbo.DimVreme
WHERE [mesec] = 5
AND [danNedelja] = 'Monday'
GROUP BY [godina], [mesec]
)
--Labor Day --------------------------------------------------------------
--First Monday in September
UPDATE dbo.DimVreme
SET nazPraznik = 'Labor Day'
FROM DimVreme
WHERE CONVERT(VARCHAR,[datum],112) IN (
SELECT MIN(CONVERT(VARCHAR,[datum],112))
FROM dbo.DimVreme

78
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

WHERE [mesec] = 9
AND [danNedelja] = 'Monday'
GROUP BY [godina], [mesec]
)

-- Valentine's Day --------------------------------------------------------


UPDATE dbo.DimVreme
SET nazPraznik = 'Valentine''s Day'
WHERE [mesec] = 2 AND [dan] = 14

-- Saint Patrick's Day ----------------------------------------------------


UPDATE dbo.DimVreme
SET nazPraznik = 'Saint Patrick''s Day'
WHERE [mesec] = 3 AND [dan] = 17

--Martin Luthor King Day --------------------------------------------------


--Third Monday in January starting in 1983
UPDATE dbo.DimVreme
SET nazPraznik = 'Martin Luthor King Jr Day'
WHERE [mesec] = 1--January
AND [danNedelja] = 'Monday'
AND [godina] >= 1983--When holiday was official
AND [danMesec] = 3--Third X day of current month.

--President's Day ---------------------------------------------------------


--Third Monday in February.
UPDATE dbo.DimVreme
SET nazPraznik = 'President''s Day'--select * from DimDateTime
WHERE [mesec] = 2--February
AND [danNedelja] = 'Monday'
AND [danMesec] = 3--Third occurance of a monday in this month.

--Mother's Day ------------------------------------------------------------


--Second Sunday of May
UPDATE dbo.DimVreme
SET nazPraznik = 'Mother''s Day'--select * from DimDateTime
WHERE [mesec] = 5--May
AND [danNedelja] = 'Sunday'
AND [danMesec] = 2--Second occurance of a monday in this month.

--Father's Day ------------------------------------------------------------


--Third Sunday of June
UPDATE dbo.DimVreme
SET nazPraznik = 'Father''s Day'--select * from DimDateTime
WHERE [mesec] = 6--June
AND [danNedelja] = 'Sunday'
AND [danMesec] = 3--Third occurance of a monday in this month.

--Halloween 10/31 ---------------------------------------------------------


UPDATE dbo.DimVreme
SET nazPraznik = 'Halloween'
WHERE [mesec] = 10 AND [dan] = 31
END
GO

79
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

ПРИЛОГ Д – R ПРОГРАМСКИ КОД ЗА ИНТЕГРАЦИЈУ СА


GOOGLE MAPS
У овом прилогу је дат програмски код у R окружењу који омогућава приказ
најпрометнијих аеродрома на мапи. Најпре је потребно инсталирати пакете који
омогућавају конекцију са базом података и позив функције за исцртавање мапе, а
затим се добављање података о полазним и одредишним аеродромима из базе и
на крају се исцртавају координате на мапи.

80
Архитектура и ЕТЛ подршка система за анализу авионских летова на подручју Сједињених Америчких Држава

БИОГРАФИЈА

Тамара Миловановић рођена је 16. децембра 1992. године у Новом Саду,


Република Србија, где је и завршила гимназију „Јован Јовановић Змај“ 2011.
године. Исте године уписала се на Факултет техничких наука у Новом Саду, одсек
Електротехника и рачунарство, смер Рачунарство и аутоматика, усмерење
Примењене рачунарске науке и информатика. Основне академске студије
завршила је 2015. године. Школске 2015/2016 године уписује мастер студије на
смеру Примењене рачунарске науке и информатика. Положила је све испите
прописане планом и програмом.

81

You might also like