Problematyka integracji danych w hurtowniach danych. Przykład

Transkrypt

Problematyka integracji danych w hurtowniach danych. Przykład
Problematyka integracji danych w hurtowniach danych.
Przykład rozwi zania opartego o produkty firmy ORACLE
oraz inne produkty niekomercyjne
Jarosław Gramacki, Artur Darulewski
Uniwersytet Zielonogórski
Instytut Informatyki i Elektroniki
ul. Podgórna 50, 65-246, Zielona Góra
e-mail: [email protected]
Abstrakt. W artykule zaprezentowano opracowany i wykonany system słu cy do integracji danych
pochodz cych z ró nych ródeł na potrzeby pó niejszego wykorzystania ich w hurtowniach danych. System
ten opiera si na produktach komercyjnych (baza danych firmy ORACLE) oraz niekomercyjnych (baza
danych MySQL, serwer internetowy APACHE oraz j zyki skryptowe PHP4 i JAVASCRIPT). System
obsługiwany jest z poziomu przegl darki internetowej. Pomimo tego, e stworzony system nie oferuje pełnej
funkcjonalno ci na poziomie pozwalaj cym zaliczy go do klasy OLAP, to jednak mo e on z powiedzeniem
słu y jako proste w obsłudze narz dzie integracyjne – w omawianym przypadku dla baz danych ORACLE
oraz MySQL.
1. Wst p
Popularno hurtowni danych nasiliła si dopiero w ci gu ostatnich kilku lat, ale pocz tków
samej idei tego rozwi zania mo na doszuka si ju w pracach MIT (Massachusetts Institute of
Technology – USA) z lat 70–tych ubiegłego stulecia, prowadzonych w zakresie optymalizacji
architektury komputerów. Wtedy to bowiem przetwarzanie danych zacz ło rozwija si w kierunku
wła ciwego zarz dzania informacj . Naukowcy z MIT jako pierwsi zacz li rozró nia systemy
realizuj ce przetwarzanie operacyjne (OLTP – ang. On-Line Transaction Processing), które odnosi
si do systemów obsługuj cych codzienn działalno przedsi biorstw od systemów analitycznych
(OLAP – ang. On-Line Analitycal Processing), które odnosz si do systemów dostarczaj cych
danych decyzyjnych. Celem podj tych prac było opracowanie podstawowych zalece
architektonicznych dla nowej generacji systemów informacyjnych, które cechował ostro
zarysowany podział przetwarzania operacji bie cych i przetwarzania analitycznego oraz
wykorzystanie oddzielnych składnic danych o radykalnie ró nych zasadach konstrukcyjnych.
Przedsi wzi cie zwi zane z budow hurtowni danych obejmuje wiele etapów, takich jak wybór
platformy sprz towej dla hurtowni danych (chodzi tu głównie o okre lenie mocy serwera), wybór
systemu operacyjnego, systemu zarz dzania baz danych i wreszcie wybór oprogramowania do
budowy i zarz dzania hurtowni danych. Bardzo cz sto decyduj c si na konkretny system
bazodanowy klient wybiera równie oprogramowanie do tworzenia hurtowni u tego samego
producenta. Nie musi to by jednak elazn reguł .
Kompleksowe rozwi zania komercyjne du ych firm informatycznych s niew tpliwie bardzo
dobre (flagowym produktem firmy Oracle słu cym do projektowania, generowania i zasilania
korporacyjnych hurtowni danych jest Oracle Warehouse Builder – patrz [14]). Jednak w przypadku
mniejszych przedsi wzi mo e okaza si , e koszt zakupu, wdro enia i pó niejszego utrzymania
systemów opartych o te rozwi zania mo e by , z ekonomicznego punktu widzenia, nie do
przyj cia. Istniej jednak na rynku niekomercyjne produkty, które w poł czeniu z tymi
komercyjnymi mog znacz co zmniejszy całkowity koszt przedsi wzi cia, zapewniaj c ci gle
wystarczaj c funkcjonalno finalnego systemu (systemów). Cz sto równie jest tak, e tworzenie
du ego, kompleksowego systemu hurtowni danych nie jest opłacalne lub, co cz ciej wyst puje
w praktyce, taki kompleksowy system nie jest u ytkownikowi po prostu potrzebny. U ytkownik
zadawala si systemem ta szym, o mniejszej funkcjonalno ci ale mimo to spełniaj cym, nie zawsze
przecie wygórowane, wymagania. Chce mie system, który pozwoli mu ogarn dane z kilku
mniejszych, niezale nie pracuj cych systemów, które same w sobie spełniaj zadanie, do którego
zostały przeznaczone, jednak z ró nych wzgl dów nie mog ze sob współpracowa (np.
wymienia swoje dane).
Aby ten stan osi gn
nale y dokona automatycznego, lub co bardziej prawdopodobne
w praktyce, półautomatycznego zintegrowania ze sob danych pochodz cych z kilku (lub wi cej)
ró nych ródeł. Etap ten zwany zasilaniem hurtowni danych jest bardzo istotny i w du ym stopniu
decyduje o jako ci docelowego systemu analitycznego hurtowni. Na tym etapie musi odby si
wst pne przetworzenie danych, ich oczyszczenie, swego rodzaju standaryzacja i w ko cu
„sklejenie” informacji z kilku (kilkunastu) ró nych ródeł w spójn i jednolit cało .
Wst pnie przygotowane dane w druj do wła ciwej hurtowni, gdzie podlegaj dalszej obróbce.
Na tym poziomie generowane s odpowiednie agregaty (podsumowania) danych, wykonywane s
stałe raporty i nast puje ko cowe „szlifowanie” danych, które odt d mo na uzna za wła ciwy
materiał analityczny. O wst pnej obróbce danych mo na powiedzie , e jest to proces
przekształcaj cy cał mas „suchych” faktów w przydatne dla analityka informacje.
W niniejszej pracy ograniczamy nasz problem do pierwszego etapu w całym zło onym procesie
tworzenia hurtowni danych a mianowicie do etapu integrowania danych pochodz cych z ró nych
ródeł.
Wi cej informacji na temat zagadnie dotycz cych hurtowni danych mo na znale w bardzo
wielu ksi kach, artykułach (równie tych o charakterze popularnonaukowym) oraz w ogromnej
ilo ci ródeł internetowych. Subiektywny wybór kilkunastu pozycji z tej dziedziny podano w spisie
literatury [2 – 16]. Pozycja [4] uznawana jest za klasyk gatunku, gdy w niej to autor po raz
pierwszy zdefiniował formalnie hurtowni danych oraz podał najwa niejsze zasady i zalecenia
stosowane przy jej projektowaniu.
2. Szczegóły projektu
2.1.
Cel i zakres projektu
Celem omawianego w artykule projektu [1] było opracowanie oraz wykonanie rodowiska
słu cego do integracji danych na potrzeby hurtowni danych w oparciu o popularne produkty
zarówno komercyjne, jak i niekomercyjene. Interfejs u ytkownika został oparty o przegl dark
WWW co pozwoliło na zdaln obsług aplikacji. Cało została oprogramowana za pomoc
JavaScript-u po stronie klienta i PHP4 po stronie serwera. Docelowa baza danych dla hurtowni
działa w systemie MySQL, natomiast dane ródłowe pobierane s z serwera Oracle. Rysunek 1
przedstawia struktur zaprojektowanego systemu.
2.2.
Podstawowe zało enia
W omawianym projekcie nale ało zaprojektowa prost aplikacj słu c do zasilania
przykładowej hurtowni danych. Jej zadaniem miała by przede wszystkim integracja danych
pochodz cych z ró nych i niezale nych od siebie ródeł. Aplikacja powinna mie mo liwo
swobodnego wyboru i ł czenia ze sob ródeł danych wraz z podgl dem ich zawarto ci (jednak bez
mo liwo ci ingerencji w ich struktur i zawarto ). Aplikacja powinna w mo liwie najbardziej
zautomatyzowany sposób wykonywa wszystkie niezb dne operacje maj ce na celu scalanie
danych. Nale
do nich: wst pna analiza danych (pod k tem struktury, typów, długo ci,
nazewnictwa itp.), wyłuskanie wspólnych danych mog cych dalej podlega wspólnej analizie (nie
wszystkie ródłowe bazy danych musz zawiera identyczny zestaw informacji), ewentualne
odrzucenie duplikatów uniemo liwiaj cych wiarygodn i rzeteln analiz danych w hurtowni.
Ostatecznym wynikiem działania aplikacji powinien by spójny obraz jak najwi kszej ilo ci
informacji dostarczonych z systemów ródłowych, który b dzie mógł słu y do dalszej analizy
z punktu widzenia hurtowni danych.
Aplikacja z zało enia działa ma na platformie WWW a dost p do wszystkich baz danych
realizowany ma by poprzez protokół TCP/IP. Dzi ki temu mo liwy stanie si zdalny dost p do
systemu a bazy danych u ywane przez system hurtowni b d mogły znajdowa si fizycznie
w ró nych miejscach. Cało
zaprojektowana zostanie w formie stron WWW dynamicznie
generowanych na serwerze za po rednictwem j zyka skryptowego PHP. J zyk PHP zapewnia du
elastyczno , zadowalaj c pr dko działania a tak e mo liwo współpracy z wieloma systemami
baz danych. Zalet takiego sposobu projektowania aplikacji jest brak konieczno ci u ywania
drogich, komercyjnych pakietów programistycznych a tak e naturalna integracja ze rodowiskiem
sieciowym.
Spełnienie powy szych zało e sprowadzało si w praktyce do zbudowania od podstaw całego
systemu przepływu danych: od ródeł danych wej ciowych, poprzez aplikacj integruj c do bazy
docelowej. Pokazano to na rysunku 2.
medium:
sie LAN / WAN
warstwa 2
APACHE
przegl darka WWW
serwer WWW
TCP/IP
javascript
http
PHP4
j zyk skryptowy
po stronie klienta
prezentacja dancyh
warstwa 1
TCP/IP
j zyk skryptowy
po stronie serwera
import danych,
obróbka danych
dane ródłowe
serwer www
udost pniaj cy aplikacj
oraz poł czenie z bazami
danych
warstwa 3
serwery danych
ródłowych
(oracle 8)
stacje klienckie
z uruchomion
przegl dark WWW
Rys. 1. Struktura systemu
3 ródłowe bazy
danych wej ciowych
docelowa baza danych
dane zintegrowane
dane ródłowe
aplikacja do integracji danych
Rys. 2. Elementy wchodz ce w skład projektowanego systemu
2.3.
ródła danych wej ciowych i ich struktury
ródłem danych wej ciowych, s trzy niezale ne, operacyjne (OLTP) bazy danych pracuj ce
w systemie Oracle 8i. S one uproszczon wersj rzeczywistych systemów działaj cych na wy szej
uczelni do prowadzenia ewidencji ocen zdobywanych przez studentów. Ka da z nich została
zapełniona du (po kilkadziesi t tysi cy rekordów w tabelach głównych) ilo ci przykładowych
danych. Pozwoliło to na przetestowanie finalnego produktu w warunkach zbli onych do
rzeczywistych.
Struktury baz ródłowych zostały przedstawione na rysunkach 3, 4 oraz 5.
Rys. 3. Struktura bazy ródłowej nr 1
Rys. 4. Struktura bazy ródłowej nr 2
Rys. 5. Struktura bazy ródłowej nr 3
Bazy te ró ni si wzajemnie pod wzgl dem struktury przechowywanych danych i sposobu
kodowania warto ci (inne długo ci pól lub typy danych). Ponadto ka da z tych baz zawiera tak e
pewne informacje, które nie mog zosta zintegrowane poniewa nie zawieraj ich pozostałe bazy.
Takie zró nicowanie zawarto ci i struktury ródłowych baz danych podyktowane jest przede
wszystkim konieczno ci stworzenia rzeczywistego obrazu sytuacji, z jak upora si musz
narz dzia do integracji danych.
Poza bazami danych wej ciowych system obejmuje te baz docelow (zbudowan w oparciu
o niekomercyjn baz danych MySQL), do której b d trafia dane zintegrowane. MySQL nie jest
wprawdzie typow korporacyjn , wysokowydajn baz danych, ale dzi ki swojej prostocie,
szybko ci działania i małym zapotrzebowaniu na przestrze dyskow wydaje si by dobrym
rozwi zaniem dla systemu takiego jak hurtownia danych. Wprawdzie wszystkie wspomniane zalety
platformy MySQL okupione s brakiem obsługi transakcji, jednak e w tym przypadku nie jest to
wad , poniewa hurtownia danych nie korzysta z mechanizmów transakcyjno ci. Wad MySQL–a
jest co prawda brak obsługi podzapyta , jednak e wi kszo potrzebnych zapyta mo na zbudowa
przy u yciu zł cze , wi c nie wpływa to znacz co na funkcjonalno samej bazy w zastosowaniach
analitycznych. Mo na si wi c spodziewa , e ogólna wydajno platformy MySQL b dzie
zadowalaj ca.
Baza docelowa, poza zintegrowanymi danymi, zawiera te b dzie tabele słownikowe,
w których przechowywane b d informacje niezb dne do integracji danych, tzw. metadane
i zmienne potrzebne do prawidłowego działania systemu. Metadane to nic innego, jak swego
rodzaju szczegółowy katalog dost pnych informacji.
Poniewa struktury danych docelowych tworzone b d dynamicznie podczas działania aplikacji,
to kolejnym podrozdziale opisana zostanie tylko stała struktura słownikowa systemu integracyjnego
znajduj ce si w bazie docelowej.
Baza ródłowa nr 1 stanowi typowy przykład architektury danych stosowanej w tradycyjnych
relacyjnych systemach baz danych. W odró nieniu od typowej struktury gwia dzistej (stosowanej
powszechnie w hurtowniach danych), wzajemne zale no ci mi dzy tabelami tworz bardziej
zło on hierarchi i nie s ju tak przejrzyste i logiczne dla osoby nie maj cej poj cia
o projektowaniu struktur bazodanowych. Taka znormalizowana struktura jest efektywniejsza przy
obsłudze działa operacyjnych i lepiej zoptymalizowana pod k tem ilo ci miejsca zajmowanego
przez dane w przestrzeni dyskowej. Ju na pierwszy rzut oka wida jednak, e jest to raczej model
nastawiony na operacyjne składowanie danych ni na potrzeby analitycznych systemów klasy
OLAP.
Pozostałe struktury baz ródłowych s celowo zdenormalizowane, aby jeszcze bardziej
zwi kszy wzajemne ró nice i uwypukli podstawowe problemy pojawiaj ce si podczas integracji
danych z ró nych ródeł.
2.4.
Struktura systemu integracji danych
Struktura słownikowa systemu integracji danych znajduje si w tej samej bazie co gromadzone
dane. Struktura ta, przedstawiona na rysunku 6, obejmuje trzy nie poł czone wzajemnymi
zale no ciami tabele.
META_DAT
ID
S_USR_NAME
S_TBL_NAME
S_COL_NAME
S_COL_TYPE
S_COL_SIZE
S_KEY
T_DBS_NAME
T_TBL_NAME
T_COL_NAME
R_TBL_NAME
R_COL_NAME
MERGE_ID
STATUS
DUPLICATES
<pk> INT
CHAR(20)
CHAR(20)
CHAR(20)
CHAR(10)
CHAR(15)
CHAR(1)
CHAR(20)
CHAR(20)
CHAR(20)
CHAR(20)
CHAR(20)
INT
CHAR(1)
CHAR(1)
USER_PREFIX
PFX
USR
<pk>
INT
CHAR(20)
VARS_DAT
MERGE_ID
INT
Rys. 6. Struktura słownikowa systemu integracji danych
W zasadzie główn tabel jest tu META_DAT zawieraj ca dane potrzebne do przeprowadzenia
procesu integracji. Pozostałe dwie tabele zostały wydzielone w celu unikni cia niepotrzebnej
redundancji niektórych informacji.
Ka dy rekord w tabeli META_DAT odpowiada pojedynczej kolumnie danych z systemu
ródłowego. Zawiera on informacje na temat ródła pochodzenia danej kolumny, jej parametrów,
ewentualnych referencji je li jest kluczem obcym oraz dane potrzebne do integracji.
Zapis danych do tabeli META_DAT odbywa si dwufazowo. Najpierw wprowadzane s dane
identyfikacyjne kolumny ródłowej dotycz ce pochodzenia i formatu danych. Jest to swego rodzaju
rejestracja danej kolumny w systemie. Cz sto bowiem mo e si zdarzy , e w procesie integracji
z danej tabeli pobiera si pocz tkowo tylko jedn czy dwie kolumny danych a pozostałe dane nie s
wykorzystywane. Z czasem jednak mo e zaistnie potrzeba wykorzystania dodatkowych kolumn
z tej tabel, a dzi ki jednorazowemu wprowadzeniu kompletnej metryki tabeli do systemu
integracyjnego mo liwe jest analizowanie zale no ci danych bez fizycznego odwoływania si do
ródła.
W projektowanym systemie wygl da to w ten sposób, e przy pierwszym poł czeniu si ze
ródłow baz danych nale y wprowadzi metryki wszystkich jej tabel do tabeli META_DAT. W
takim przypadku nawet po rozł czeniu ze ródłem danych u ytkownik mo e opracowa wzorzec
integracji danych (jest to druga faza wprowadzania danych do META_DAT), stworzy tabele
docelowe w bazie MySQL a samego procesu przeniesienia danych z systemu ORACLE dokona
w innym dowolnym czasie.
Znaczenie kolumn w META_DAT podano w tabeli 1:
Tabela 1. Opis tabeli META_DAT. Kolumny zaznaczone kursyw modyfikowane s w procesie integracji
danych natomiast pozostałe zapisywane s przy wst pnej rejestracji ródeł danych
Kolumna
Opis
id
identyfikator kolumny ródłowej (unikalny)
s_usr_name
nazwa u ytkownika systemu ORACLE, poprzez którego udost pniona jest tabela
zawieraj ca kolumn ródłow
s_tbl_name
nazwa tabeli zawieraj cej kolumn
s_col_name
nazwa kolumny ródłowej
s_col_type
typ danych w kolumnie ródłowej
s_col_size
rozmiar danych ródłowych
s_key
kolumna ta zawiera informacje o tym, czy kolumna
(głównym lub obcym) w swojej tabeli
r_tbl_name
je li kolumna ródłowa jest kluczem obcym, to pole to zawiera nazw tabeli w bazie
ródłowej, do której odwołuje si ten klucz obcy
r_col_name
je li kolumna ródłowa jest kluczem obcym, to pole to zawiera nazw kolumny
(b d cej kluczem głównym) w tabeli okre lonej przez r_tbl_name, do której
odwołuje si ten klucz obcy
t_dbs_name
nazwa docelowej bazy MySQL
t_tbl_name
nazwa tabeli docelowej
t_col_name
nazwa kolumny docelowej
Merge_id
kolumna wspólna dla całej tabeli ródłowej, słu ca do kolejkowania procesu
przenoszenia danych (domy lnie jej warto ustawiona jest na 0 – nie bierze udziału
w procesie przepisywania danych)
Status
kolumna zawieraj ca informacje czy dane z kolumny
przepisane do bazy docelowej (domy lna warto 'N' – nie)
Duplicates
atrybut okre laj cy, czy dane w kolumnie docelowej mog si powtarza (domy lna
warto 'Y' – tak)
ródłow
ródłowa jest kluczem
ródłowej zostały ju
W praktyce powinny si tu jeszcze pojawi takie kolumny jak opis słowny danych wprowadzany
bezpo rednio przez u ytkownika czy nazwa serwera danych ródłowych. Jednak e z uwagi na do
du y stopie skomplikowania procesu integracji, obsługa i wykorzystanie tych danych b d
zrealizowane w dalszej kolejno ci, w ramach rozbudowy systemu.
Tabela USER_PREFIX przechowuje warto ci dodawane do kluczy głównych (inne dla ka dego
u ytkownika – s_usr_name) wszystkich tabel ródłowych podczas przepisywania danych. Jest to
operacja niezb dna poniewa bez tego mogłoby doj do niemo no ci zapisania informacji.
Sytuacja taka zilustrowana jest na rysunku 7a.
Dzi ki wprowadzeniu tabeli prefiksów system nie dopuszcza do gubienia informacji, które nie
mogłyby by zapisane z racji naruszenia ogranicze nało onych przez klucz główny w tabeli
docelowej (rysunek 7b). Oczywi cie nale y odpowiednio okre li warto faktycznie dodawan do
klucza, poniewa w przypadku pokazanym na rysunku 7 system sprawdziłby si tylko wówczas,
gdyby tabele ródłowe miały nie wi cej ni 10 rekordów. W projektowanym systemie prefiks
mno ony jest przez liczb 10.000.000, co pozwala na bezpieczn integracj danych z tabel
o długo ci kilku milionów rekordów. Naturalnie po zako czeniu procesu przepisywania danych
mo na zabra si za doprowadzenie warto ci kluczy głównych do bardziej rozs dnych warto ci,
niemniej jednak jest to prosta i efektywna metoda na omini cie problemu identycznych kluczy
w ró nych tabelach. Ten prosty przykład przedstawia zaledwie jeden z całej masy problemów,
z jakimi upora si musz narz dzia do integracji danych.
Ostatnia z tabel systemu – VARS_DAT została przewidziana troch „na wyrost” do
przechowywania pojedynczych zmiennych jakie potrzebne byłyby do działania procesu integracji
danych. Poniewa ze wzgl du na ogromn czasochłonno projektu nie udało si jak do tej pory
zrealizowa wszystkich zaplanowanych funkcji, to tabela ta zawiera tylko jedn zmienn
okre laj c numer ostatniego procesu importu danych (zwi kszany po ka dym zapisie modelu
integracji kolejnych danych do tabeli META_DAT). Jak wspomniano wcze niej, w celu utrzymania
prawidłowego funkcjonowania systemu integracji danych (na obecnym etapie rozwoju) mo na by
usun tabele USER_PREFIX oraz VARS_DAT i dane w nich zawarte przepisa do dwóch kolumn
dodanych w tabeli META_DAT. Spowodowałoby to jednak niepotrzebne dublowanie si danych
wobec czego struktura systemu nie została zmieniona.
ORACLE
MySQL
a)
usr1:WYDZIAŁY
wydział_id
1
2
nazwa
Wydz. Budownictwa
Wydz. Mechaniczny
usr2:WYDZIAŁY
wydział_id
1
2
nazwa
Wydz. Elektroniki
Wydz. Architektury
W YDZIAŁY
wydział_id
1
2
nazwa
????
????
b)
usr1:WYDZIAŁY
wydział_id
1
2
nazwa
Wydz. Budownictwa
Wydz. Mechaniczny
usr2:WYDZIAŁY
wydział_id
1
2
nazwa
Wydz. Elektroniki
Wydz. Architektury
W YDZIAŁY
wydział_id
11
12
21
22
nazwa
Wydz. Budownictwa
Wydz. Mechaniczny
Wydz. Elektroniki
Wydz. Architektury
USER_PREFIX
pfx
1
2
usr
usr1
usr2
Rys. 7. Ilustracja zastosowania tabeli prefiksów w systemie
Pomimo tego, e uko czony system nie oferuje pełnej funkcjonalno ci na poziomie
pozwalaj cym zaliczy go do klasy OLAP, to jednak spełnia wszystkie zało enia projektowe
i z powodzeniem mo e słu y za przykład prostej integracji i przenoszenia danych z systemu
ORACLE na grunt bazy MySQL (lub w praktyce ka dej innej bazy danych).
3. Aplikacja w rodowisku WWW
W rozdziale poprzednim omówiona została struktura całego projektowanego systemu ze
szczególnym uwzgl dnieniem zastosowanych struktur danych. Niniejszy rozdział dotyczy samej
aplikacji, która stanowi ostatni i najwa niejsz cz
projektu. Dzi ki niej bowiem mo liwe jest
współdziałanie opisanych w poprzednim rozdziale dwóch odmiennych systemów bazodanowych.
Z uwagi na specyficzne rodowisko pracy jakim jest przegl darka WWW przez aplikacj w tym
przypadku nale y rozumie szereg plików skryptowych uruchamianych zarówno na serwerze jak
i na komputerze klienta. Warstwa graficznego interfejsu u ytkownika oparta jest o technologie
HTML, CSS, JavaScript i zaawansowane rozszerzenia DHTML zaimplementowane w przegl darce
Internet Explorer. Dzi ki zastosowaniu wielu funkcji DOM (ang. Document Object Model),
umo liwiaj cych obiektow analiz oraz modyfikacje wy wietlanego w przegl darce dokumentu,
cz
funkcji integracyjnych wykonywanych jest na komputerze klienta. Generalnie jednak
przegl darka wraz z zawarto ci stanowi tylko konsol do zdalnego sterowania procesami
zachodz cymi mi dzy ródłow i docelow baz danych. Mo na powiedzie , e „wła ciwym”
miejscem działania aplikacji jest serwer, na którym uruchamiane s skrypty napisane w j zyku
PHP4. To wła nie warstwa j zyka PHP stanowi serce aplikacji pełni c tak e rol pomostu mi dzy
u ytkownikiem i bazami danych.
Na rysunku 8 przedstawiona jest szczegółowo struktura projektowanej aplikacji. Zarysowane s
tu te granice pomi dzy aplikacj i systemami bazodanowymi (ORACLE i MySQL) oraz granica
mi dzy cz ci aplikacji działaj ca po stronie klienta i jej drug cz ci działaj c na serwerze.
W praktyce ka dy z komponentów całego systemu mo e znajdowa si gdzie indziej, jednak e
podczas pracy nad projektem serwer HTTP (wykonuj cy skrypty PHP) i serwer MySQL znajdowały
na tej samej maszynie. Bazy danych ródłowych testowano na kilku zewn trznych serwerach, jak
i na maszynie lokalnej razem z serwerami MySQL i HTTP.
aplikacja
klient
serwer
okno przegl darki
menu aplikacji
ramka HTML
lista otwartych
baz danych
ramka HTML
główne okno aplikacji
dynamicznie generowane
ramki HTML zawieraj ce
aktualnie wczytane
dokumenty
skrypty PHP
MySQL
ukryte elementy HTML umo liwiaj ce komunikacj pomi dzy
poszczególnymi cz ciami aplikacji w sposób niewidoczny dla
u ytkownika
ORACLE
ORACLE
ORACLE
bazy danych
Rys. 8. Struktura projektowanej aplikacji
Zawarto elementów znajduj cych si w oknie przegl darki dokładnie zostanie omówiona
w dalszej cz ci tego rozdziału, jednak e w tym miejscu na uwag zasługuj ukryte elementy
HTML umo liwiaj ce komunikacj pomi dzy poszczególnymi cz ciami aplikacji w sposób
niewidoczny dla u ytkownika. Nale y wyra nie podkre li , e to co u ytkownik widzi na ekranie
przegl darki to tylko i wył cznie znaczniki HTML i tre pomi dzy nimi. Zastosowanie wszelkiego
rodzaju j zyków skryptowych pozwala jedynie na modyfikacje zawarto ci kodu HTML. Tak wi c
ogólnie przyj ło si , e HTML stanowi warstw wizualn dokumentu a skrypty warstw
funkcjonaln .
W strukturze projektowanej aplikacji zastosowano wiele niekonwencjonalnych rozwi za do
rozwi zania problemów w komunikacji mi dzy jej cz ciami składowymi. Sam protokół HTTP
słu cy w sieci do przesyłania stron WWW jest protokołem bezstanowym. W zwi zku z tym
teoretycznie nie istnieje mo liwo zostawienia przez dokument informacji w przegl darce na
potrzeby innego nowo załadowanego. W praktyce wymian danych pomi dzy stronami realizuje si
za pomoc przesyłania danych w adresie URL Mo na te stosowa formularze lub zapisywa dane
na dysku u ytkownika w tzw. cookies. adne z tych rozwi za nie było wystarczaj co dobre do
wykorzystania w projektowanej aplikacji. Zastosowanie formularze i przekazywanie informacji
w adresie dokumentu sprawdza si je li dane maj by wymieniane mi dzy dwoma ładowanymi po
sobie dokumentami. Co za jednak zrobi gdy zajdzie potrzeba zostawienia pewnej informacji
w charakterze zmiennej globalnej, która mo e przyda si za jaki czas ?
Przekazywanie danych mi dzy dwoma otwartymi jednocze nie dokumentami za pomoc
zmiennych globalnych JavaScriptu nie jest mo liwe poniewa ka dy dokument traktowany jest
przez przegl dark jako oddzielny proces (co jest nawiasem mówi c własno ci konieczn do
poprawnego wy wietlania kilku otwartych na raz stron). Tak wi c jedynym prostym i efektywnym
rozwi zaniem okazało si zastosowanie kilku ramek w dokumencie głównym i przekazywanie
danych poprzez elementy HTML. Ka da z ramek traktowana jest jak samodzielny dokument
w zwi zku z czym przekazywanie danych wprost przez JavaScript nie jest mo liwe bez
przeładowania strony (a przeładowanie w przypadku tej aplikacji oznacza mo e utrat danych
wprowadzonych przez u ytkownika). Dzi ki funkcjom obiektowego modelu dokumentu (DOM)
mo liwe jest swobodne odwoływanie do dowolnego elementu znajduj cego si w oknie
przegl darki. Poniewa ramki tak e s elementami HTML to bez problemu mo na sprawdzi
zawarto pola formularza znajduj cego si w ramce A z poziomu ramki B. Bior c pod uwag fakt,
e ramki w oknie głównym aplikacji tworzone s i usuwane na bie co, to jedynym rozwi zaniem
okazało si umieszczenie kilku ukrytych (za pomoc atrybutów CSS) elementów w dokumencie
głównym aplikacji. S to trzy tekstowe pola formularzowe i trzy niewidoczne ramki, do których
ładowane s na przykład wywołania skryptów PHP.
Przedstawione tu rozwi zanie dotycz ce przekazywania danych jest niezwykle istotne dla
działania aplikacji i dlatego zostało bli ej omówione. Jest ono niespotykane w innych tego typu
rozwi zaniach, gdzie na przykład edycja danych z tabeli wymaga przej cia do osobnej strony (php
MySQL Admin).
Problemem w wielodokumentowych aplikacjach WWW jest te przekazywanie zło onych
danych pomi dzy skryptami działaj cymi na komputerze klienta (w przegl darce) i skryptami
działaj cymi na serwerze. Przez dane zło one nale y w tym wypadku rozumie tablice i inne
wielowymiarowe struktury, które najpierw nale ałoby podda tzw. serializacji (przekształceniu na
jednowymiarowy ci g znaków) a po odebraniu z powrotem zamieni na posta wej ciow .
Rozwi zanie takie wprowadza jednak konieczno przesyłania dodatkowych danych mi dzy
klientem a serwerem.
Problem ten został rozwi zany poprzez dynamiczne generowanie funkcji JavaScript wewn trz
skryptu PHP. Dzi ki temu na podstawie informacji uzyskanych z bazy danych PHP wysyła do
przegl darki nie tylko czysty kod HTML ale tak e kod JavaScript, który modyfikuje odpowiednie
elementy dokumentu załadowanego wcze niej w innej ramce. Wad takiego rozwi zania jest
w zasadzie tylko mniejsza przejrzysto kodu ródłowego, poniewa kod PHP jest przeplatany jest
wielokrotnie z kodem JavaScript.
Z uwagi na specyfik działania wielodokumentowych aplikacji WWW ich projektowanie jest
nieco bardziej pracochłonne ni w przygotowywanie analogicznych aplikacji przy pomocy narz dzi
wizualnych takich jak np. Borland Delphi. Nale y jednak podkre li , e w wielu zastosowaniach
aplikacje WWW nie wymagaj ce skomplikowanych i czasochłonnych algorytmów obliczeniowych
mog konkurowa z programami wykonanymi w „tradycyjnej” technologii.
3.1.
Graficzny interfejs u ytkownika
Wspomniane wcze niej ograniczenie si do pracy tylko z przegl dark Internet Explorer
podyktowane zostało przede wszystkim jej mo liwo ciami w zakresie obsługi zawansowanych
funkcji GUI .W zaprojektowanej aplikacji zastosowano mi dzy innymi technologi drag&drop do
wizualnej integracji danych i obsług menu kontekstowych w celu umo liwienia intuicyjnej
i wygodnej obsługi całego systemu. Układ podstawowych elementów GUI w aplikacji pokazany
jest na rysunku 9.
Cały interfejs graficzny podzielony został na trzy zasadnicze cz ci. Na samej górze znajduje si
belka rozwijanego menu głównego, po lewej stronie znajduje umieszczono panel DataBrowser.
Panel ten słu y poruszania si po zawarto ci dost pnych baz. Jego zawarto wy wietlana jest w
formie tradycyjnego drzewa katalogów, gdzie głównymi elementami hierarchii s aktualnie
podł czone bazy danych a elementami podrz dnymi tabele zawarte w tych bazach. Dzi ki u yciu
własnego menu kontekstowego pod prawym przyciskiem myszy udost pniono funkcje operowania
na bazach i tabelach. Funkcje te s oczywi cie zró nicowane dla baz ródłowych i docelowych (nie
ma np. mo liwo ci skasowania tabeli w bazie ródłowej). Najwi kszym elementem w interfejsie
aplikacji jest robocze okno aplikacji, w którym wy wietlana jest zawarto tabel, interfejs słu cy
do integracji danych i inne okna pomocnicze.
Struktura taka nie jest niczym nowym i celowo została dobrana tak, aby u ytkownik obeznany
z obsług typowych aplikacji okienkowych nie miał problemów z jej u ywaniem. W konsekwencji
cała aplikacja nie sprawia wra enia strony WWW, ale zwykłego skompilowanego „pod system”
programu u ytkowego – zarówno w warstwie wizualnej jak i funkcjonalnej.
Dzi ki gł bokiej integracji Internet Explorer-a z systemem Windows cały interfejs aplikacji
działa płynnie i bez zarzutów. Nie ma problemów nawet z od wie aniem generowanych
w DHTML-u okien a bezwładno wszystkich elementów jest nieporównywalnie mniejsza ni
w przypadku aplikacji napisanych w j zyku Java (działaj cych de facto na wirtualnej maszynie
Javy a nie bezpo rednio systemie), które od pewnego czasu stanowi standardowe oprogramowanie
klienckie serwerów ORACLE. Dodatkowym atutem Internet Explorer-a pracuj cego w systemie
Windows jest mo liwo obsługi tzw. HTML Aplications.
W praktyce polega to na wstawieniu odpowiednich znaczników w kod HTML, zmianie
rozszerzenia pliku głównego na *.hta i cało uruchamia si w systemie na prawach samodzielnej
aplikacji. Daje to mo liwo otwarcia dokumentu HTML w samodzielnym systemowym oknie
(a nie w typowym oknie przegl darki) i zablokowanie standardowych systemowych skrótów
klawiszowych, takich jak np. klawisz F5 słu cy do od wie ania okna. Funkcja ta mo e by
przydatna poniewa przypadkowe od wie enie okna zawieraj cego dokument HTML powoduje
jego przeładowanie z serwera co w przypadku dynamicznie generowanych stron mo e grozi utrat
wprowadzonej informacji. Generalnie rzecz ujmuj c, u ytkownik uruchamiaj c plik hta
z systemowego pulpitu mo e si nawet nie zorientowa , e uruchomiona aplikacja jest
w rzeczywisto ci zwykł stron WWW.
Tak wi c oparcie praktycznej cz ci projektu na przegl darce Internet Explorer ma swoje
uzasadnienie praktyczne a bior c pod uwag popularno systemu Windows w rodowisku aplikacji
bazodanowych nie wydaje pomysłem chybionym. Poza tym obsługa wielu funkcji w j zyku
JavaScript ( który u ywany jest równie w procesie edycji i integracji danych po stronie klienta )
i tak musiałaby zosta zrealizowana oddzielnie dla ka dej wspieranej przegl darki a to
spowodowałoby niepotrzebne wydłu enie czasu pracy nad projektem.
Opracowanie podobnej aplikacji, tak aby działała pod innymi przegl darkami i na innych
systemach jest oczywi cie mo liwe, istniej np. pakiety do administracji serwerami Oracle
i MySQL oparte na poł czeniu technologii HTML, JAVASCRIPT i PHP, jednak e tak rozbudowany
i wygodny interfejs obsługi oferuje jak na razie tylko Internet Explorer.
Przykładowe zrzuty ekranów działaj cej aplikacji pokazano na rysunkach 9 i 10.
Rys. 9. Przykładowy ekran działaj cej aplikacji
Rys. 10. Efekt uzyskany po automatycznym generowaniu modelu
4. Podsumowanie
W pracy podj to prób zilustrowania zagadnienia integracji danych o zró nicowanej strukturze
pochodz cych z ró nych ródeł. Proces integracji danych jest szczególnie ciekawy ze wzgl du na
fakt, e mo e on dotyczy tak e szerszego kr gu aplikacji – nie tylko hurtowni danych. Cz sto
bowiem zachodzi potrzeba zespolenia ró nego rodzaju danych w jedn cało a typowe narz dzia
słu ce do migracji danych nie zawsze wystarczaj do rozwi zania tego problemu. Integracja
danych jest procesem zło onym a przedstawiony projekt, ze wzgl du na okre lone ramy czasowe
i zaanga owane „siły ludzkie”, z zało enia nie mógł osi gn
funkcjonalno ci na poziomie
dost pnych na rynku rozwi za komercyjnych.
Zaprojektowana struktura systemu w pełni odzwierciedla cie k przepływu danych w typowym
przedsi biorstwie (bazy operacyjne – system integracji – baza docelowa hurtowni danych). Nale y
w tym miejscu podkre li du zło ono projektu, która obejmuje w praktyce zarz dzanie dwoma
systemami baz danych, zaprojektowanie trzech oddzielnych struktur ródłowych (i wypełnienie ich
du ilo ci przykładowych danych), opracowanie zasad integracji danych oraz aplikacji spinaj cej
mi dzy sob poszczególne elementy systemu.
Stworzona aplikacja, zbudowana tylko w oparciu o j zyki skryptowe, spełnia wszystkie stawiane
zało enia dodatkowo oferuj c wygod obsługi niespotykan w innych narz dziach zrealizowanych
w tej technologii. Zaawansowany interfejs graficzny ogranicza co prawda mo liwo ci u ytkowania
aplikacji tylko do przegl darki Internet Explorer, jednak bior c pod uwag mo liwo ci jakie ona
oferuje, nie powinno stanowi to znacz cej niedogodno ci. Ponadto stanowi doskonały przykład
mo liwo ci projektowania zło onych systemów w oparciu o technologie niekomercyjne (przy
realizacji projektu nie u yto adnych komercyjnych kompilatorów ani narz dzi wspomagaj cych
projektowanie).
Bibliografia
1.
Darulewski A.: Problematyka integracji danych w hurtowniach danych. Projekt systemu integracji danych
opartego o produkty niekomercyjne. Praca magisterska, Uniwersytet Zielonogórski, Wydział
Elektrotechniki, Informatyki i Telekomunikacji, 2002
2.
Głowi ski C.: Sztuka wysokiego składowania, PCkurier, 12/2000
3.
Grochowski, T.: Od SAS-a do SAP-a, PCkurier 9/2001
4.
Inmon W. H.: Building the Data Warehouse, Wiley, wydanie 3, ISBN: 0-471-08130-2, 2002
5.
Kujawski M.: Technologie przechowywania danych w systemach OLAP, Software, kwiecie 1999
6.
Łakomy M.: Hurtownie danych dla przyszło ci, Computerworld, 1 pa dziernika 2000
7.
Oracle Corporation, Oracle Warehouse Builder User’s Guide, Release 3i, June 15 2002, Part No.
A90361-01
8.
Poe V., Klauer P., Brobst S.: Tworzenie Hurtowni Danych, WNT, Warszawa, 2000
9.
Rzewuski M.: Obieg inteligencji, PCkurier 2/2001
10. Słowikowski P.: Nowe wyzwania dla hurtowni danych, PCkurier 24/2001
11. Wiecka A., Czarnota J.: Hurtownie danych w Polsce - jakie problemy rozwi zuj i komu słu
2.0, stycze 2000
12. http://www.billinmon.com
13. http://www.sas.com/technologies/data_warehouse/index.HTML
14. http://www.oracle.com
15. http://www-3.ibm.com/software/data/informix/redbrick/
16. http://www.its.state.ms.us/et/datawarehouse/et_dwh.htm
?, Software