Documente Academic
Documente Profesional
Documente Cultură
Curs 6
Curs 6
Cursul 6
date. Fiind un mediu specializat, SGBD satisface cerinele informaionale
ale utilizatorului ntr-un mod optim. Astfel, el asigur minimizarea costului
de prelucrare a datelor, reduce timpul de rspuns (timp util), asigur o mai
buna flexibilitate i deschidere a aplicaiei, asigur protecie ridicat a
datelor.
Cele mai utilizate SGBD-uri sunt:
ORACLE realizat de firma Oracle Corporation USA, produs complet
relaional, robust, bazat pe SQL standard extins, ajuns la versiunea 10G,
extensie orientat obiect, arhitectura client/server, lucrul distribuit, BD
Internet, optimizator de regsire;
DB2 - realizat de firma IBM, bazat pe SQL, optimizator de regsire,
respect teoria relaional, lucrul distribuit, robust;
INFORMIX realizat de firma Informix, respect teoria relaional,
lucru distribuit, robust;
PROGRESS realizat de firma Progress Software, are limbaj propriu
(Progress 4GL), suport SQL, ruleaz pe o gam larg de calculatoare sub
diferite sisteme de operare;
SQLServer realizat de firma Microsoft, bazat pe SQL, ruleaz n
arhitectura client/server;
INGRES II realizat de firma Computer Associates, este un SGBDR
complet, implementeaz dou limbaje relaionale (nti Quel i apoi SQL),
este suportat de diferite sisteme de operare (Windows, VMS, UNIX),
lucreaz distribuit n arhitectura client/server, extensie cu faciliti orientate
obiect, permite aplicaii tip Internet, protecia ridicat a datelor, organizarea
fizic a tabelelor se face prin sistemul de operare, are numeroase
componente;
VISUAL FOXPRO - realizat de firma Microsoft, are un limbaj
procedural propriu foarte puternic, extensie orientat obiect, programare
vizual, nucleu extins de SQL, rapid;
ACCESS realizat de firma Microsoft, bazat pe SQL, are limbajul
procedural gazd (Basic Access), are generatoare puternice;
PARADOX - realizat de firma Borland, are limbaj procedural propriu
(PAL) i suport SQL.
117
Cursul 6
3.2.1 Oracle Discoverer
Instrumentele oferite de Oracle Discoverer cuprind: elemente de
analiz multidimensional a datelor care implementeaz operaiile specifice
(navigare n cadrul ierarhiilor, rotaii, seciuni) i funcii de analiz (de
previziune, de construire a scenariilor ce se ntmpl dac?); elemente de
vizualizare a datelor prin construirea de rapoarte i grafice flexibile i uor
de modificat de ctre utilizatorul final.
Oracle Discoverer 9.0.4. este alctuit din dou componente majore
(figura 3.1):
un mediu pentru definirea structurilor de date i a metadatelor
utilizate n analiz Oracle Discoverer Administrator;
mai multe medii pentru construirea i prezentarea rapoartelor i
analizelor OracleAS Discoverer Plus, OracleAS Discoverer
Viewer, Oracle Discoverer Desktop [NET05].
Arhitectura Oracle Discoverer este compus din trei niveluri
distincte: nivelul datelor, nivelul End User Layer (EUL V5 pentru
versiunea Oracle Discoverer 9.0.4) care conine metadatele i structurile
specifice utilizate n analiz i nivelul interfeei cu utilizatorul.
Accesul la date se realizeaz prin intermediul nivelului EUL i este
un acces direct, fr construirea unui depozit de date suplimentar. Structurile
multidimensionale de tipul dimensiunilor i a tabelelor de fapte sunt
transformate automat din sursele relaionale n obiecte de tipul Folder i
grupate i ncrcate n obiectele de tipul Business Area ale nivelului EUL.
Din acest motiv, pe baza de date relaional trebuie construite mai nti o
serie de view-uri care s faciliteze maparea datelor pe obiectele din Oracle
Discoverer.
Pentru construirea unei aplicaii de analiz de tipul Business
Intelligence sunt necesare dou etape:
definirea obiectelor n Oracle Discoverer Administrator i
construirea prezentrilor n Oracle Discoverer Desktop sau
Oracle Discoverer Plus sau Viewer.
118
Cursul 6
DISCOVERER
ADMINISTRATOR
(WINDOWS)
ADMINISTRARE
VIZUALIZAR
E
D
E
F
I
N
I
R
E
DISCOVERER
DESKTOP
(WINDOWS)
EUL V5
EXTRAGERE
DISCOVERER PLUS
(WEB)
ORACLE
DATABASE
DISCOVERER
VIEWER
(WEB)
Cursul 6
ntregul ciclu de dezvoltare a depozitelor de date. Acesta permite i migrarea
datelor obinute n alte medii cum ar fi OLAP Analytic Workspace Manager
sau Oracle Discoverer sau chiar versiunile anterioare de Oracle Express.
Spre deosebire de Oracle Discoverer n care se realiza un depozit
virtual, n Warehouse Buider datele sunt stocate fizic ntr-un repository
special construit pe baza de date.
Principalele obiecte cu care lucreaz Warehouse Builder sunt
prezentate n continuare:
coleciile (collections) reprezint un mecanism generic de grupare.
Ele sunt o cale de acces mai uoar la definiiile obiectelor folosit
pentru a realiza activiti la nivel de grup, de exemplu validarea
sau generarea de cod;
bazele de date (databases) reprezint maparea unor date din baze
de date Oracle sau non-Oracle. Se introduc noiunile de modul i
locaie;
Modulul reprezint un mod logic de grupare a definiiilor de
obiecte. De exemplu, un modul de baz de date Oracle reprezint o
grupare logic de obiecte care aparin unei baze de date (scheme)
Oracle. Att bazele de date (databases), fiierele (files), aplicaiile
(applications), ct i fluxurile de procese (process Flows) sunt
grupate din punct de vedere logic n module.
Locaia definete informaii referitoare la schema bazei de date sau
la instrumente destinaie. Locaiile sunt specifice tipurilor de
module: baze de date Oracle, baze de date non-Oracle, SAP sau
fiiere. Atunci cnd se creeaz o locaie, se memoreaz o definiie
logic ce conine tipul de locaie i versiunea.
fiierele (files). Un modul de fiiere definete o legtur ctre un
director ce conine un numr de fiiere text. Putem folosi un
wizard pentru a importa aceste fiiere, ele putnd conine tipuri
multiple de nregistrri, nregistrri separate prin caractere etc.;
aplicaiile (applications) conin definiii ale pachetelor de aplicaii.
Oracle Warehouse Builder asigur un instrument de integrare
pentru sistemele SAP;
fluxul de date (process flow) conine definiii ale fluxurilor de
procese. Acestea sunt coninute n module, iar n cadrul modulului
sunt coninute n pachetele de fluxuri de date. Codul pe care
Warehouse Builder-ul l genereaz pentru a reprezenta definiiile
fluxurilor de date respect standardul XML Process Definition
Language(XPDL);
120
Cursul 6
transformrile publice (public transformations) reprezint
transformri ce pot fi folosite n cadrul proiectului. Acestea sunt
divizate n transformri obinuite i transformri predefinite. Cele
obinuite pot fi definite sau importate de ctre utilizator, n timp
ce, cele predefinite sunt legate de instalarea Warehouse Builder.
Toate acestea sunt disponibile n schema
destinaie.
Transformrile publice sunt divizate n urmtoarele categorii:
Administration - de exemplu: activarea/anularea restriciilor,
analizare tabela/schem,etc;
Character- de exemplu CHR, CONCAT, LDAP,LTRIM,etc;
Conversion - pentru realizarea conversiilor dintre tipurile de
date;
Date - asigur un numr de transformri specifice pentru datele
de tip date ;
Numeric - de exemplu ABS, SIN,FLOOR, etc;
OLAP - asigur accesul la procedurile de ncrcare a cubului i
dimensiunilor
Other - inclusiv transformri NVL;
XML - pentru a expune transformrile de ncrcare XML;
conexiunea la Runtime Repository (Runtime Repository
Connections) conine specificaiile de conectare la depozitul
central de rulare (runtime repository).
Datele provenite din surse multiple, att din fiiere, ct i din baze de
date de diferite generaii i productori, sunt preluate i ncrcate ntr-un
modul centralizat, numit modul surs i apoi acestuia i se aplic procesul de
extragere, transformare i ncrcare (ETL) ntr-un modul destinaie, din care
vor fi utilizate pentru analiz. Iat, pe scurt, obiectele acestor dou module:
1) Modulul surs se definete pe baza tabelelor din sistemelor
tranzacionale existente n cadrul instituiei. Pentru simplificarea procesului
de extragere i ncrcare a datelor n depozit se pot construi view-uri sau
tabele suplimentare care s prezinte datele ntr-o form asemntoare celor
din dimensiuni i fapte. Datele pot proveni fie din diverse fiiere, fie din
tabelele aplicaiilor operaionale pe diferite platforme ca Oracle, Microsoft,
SAP, Informix, Hyperion etc. Ele sunt centralizate i integrate n acest
modul pe care se va aplica procesul ETL.
2) Modulul destinaie va conine dimensiunile, tabelele de fapte,
cuburile i maprile necesare depozitului de date. n cadrul acestui modul se
pot defini urmtoarele elemente:
dimensiunile - Warehouse Builder permite proiectarea dimensional
(acesta reprezint un avantaj fa de cei mai importani concureni).
121
Cursul 6
Cursul 6
Dup realizarea procesului de ncrcare n modulul destinaie,
Warehouse Builder valideaz obiectele i genereaz urmtoarele tipuri de
script-uri:
script-uri DDL pentru crearea i tergerea obiectelor de tipul
dimensiunilor, tabelelor de fapte, ierarhiilor;
fiiere de control SQL*Loader pentru extragerea i transportul
datelor pornind de la fiierul surs;
script-uri TCL pentru programarea i conducerea job-urilor
Enterprise Manager.
Prin intermediul utilitarului de transfer, Warehouse Builder Transfer
Wizard se permite exportul metadatelor ctre urmtoarele tipuri de
destinaie: un fiier n conformitate cu standardul OMG CWM, Oracle
Discoverer, Oracle Express i OLAP Server.
Datorit facilitilor sale, a posibilitilor de integrare a datelor din
surse multiple i diferite, dar i a mediului integrat de dezvoltare oferit, se
poate spune c Oracle Warehouse Builder 10g este cel mai potrivit
instrument de realizare a unui depozit de date.
3.2.3. Microsoft SQL Server 2005 Business Intelligence
Prin instrumentele Analysis Services, Microsoft SQL Server 2005
integreaz soluii avansate pentru depozite de date i Business Intelligence.
n prezentarea oficial a produsului, compania Microsoft [NET01]
precizeaz c Analysis Services ofer instrumente pentru realizarea unor
analize complexe asupra informaiilor stocate n baze de date de mari
dimensiuni.
Componenta Online Analytical Processing (OLAP) integrat n
cadrul acestei soluii, ofer posibiliti avansate de realizarea a analizelor
multidimensionale asupra datelor. Suplimentar, OLAP permite realizarea
analizei pe baza unor surse eterogene de informaie, componenta OLE DB
oferind posibilitatea de conectare la diverse alte sisteme de gestiune a
bazelor de date.
OLAP Actions, o nou facilitate din cadrul Analysis Services,
permite declanarea diverselor aciuni pe baza rezultatelor analizelor.
Analizele realizate prin intermediul instrumentelor OLAP pot deveni
accesibile prin intermediul Web-ului, fiind asigurat n acest mod un nivel
deosebit de mobilitate n accesarea informaiilor.
123
Cursul 6
SQL Server dispune de doi algoritmi (Microsoft Decision Trees i
Microsoft Clustering) care permit realizarea unor analize complexe prin data
mining.
Pentru realizarea analizelor i exploatarea avantajelor oferite de
Analysis Services este posibil integrarea cu diverse aplicaii. Instrumentele
Pivot Table i Pivot Chart, accesibile n cadrul suitei Microsoft Office, pot fi
utilizate pentru sintetizarea datelor rezultate n urma analizelor OLAP sau
data mining. Microsoft Data Analyzer este un instrument specializat dedicat
managerilor, care permite realizarea simpl a unor rapoarte i grafice pe
baza datelor furnizate de Analysis Services.
SQL Server 2005 Reporting Services este un instrument destinat
realizrii de rapoarte clasice i automate, disponibile la cerere sau generate
periodic ntr-o multitudine de formate de raportare (HTML, PDF, Excel).
Pentru o analiz comparativ prezentm n continuare un tabel cu
cteva soluii i instrumente existente de realizare i prelucrare a datelor
multidimensionale.
Dup cum se poate observa, instrumentele oferite de Oracle acoper
ntreaga gam a posibilitilor de stocare i prelucrare a unui depozit de
date, iar prin facilitile de transfer i comunicare ntre aceste instrumente se
poate dezvolta o soluie complex de depozit de date n funcie de
necesitile de realizare.
Opiuni de
Baza de date
procesare multirelaional
dimensional
Motorul server
Oracle Express
Multi(ROLAP mode)
dimensional
Oracle AWM
Oracle Warehouse
Builder
Crystal Holos (ROLAP
mode)
IBM DB2 OLAP Server
CA EUREKA:Strategy
Longview Khalix
Informix MetaCube
Speedware Media/MR
Microsoft Analysis
Services
124
Baza de date
multidimensional
Oracle Express
Oracle Warehouse
Builder
SAS CFO Vision
Crystal Holos
Comshare Decision
Hyperion Essbase
Gentia
Speedware Media/M
Microsoft Analysis
Services
PowerPlay Enterprise
Server
Pilot Analysis Server
Fiiere
Oracle
Warehouse
Builder
Cursul 6
Pilot Analysis Server
Sagent
Applix iTM1
WhiteLight
Applix iTM1
Oracle Discoverer
Informix MetaCube
Comshare FDC
Dimensional Insight
Hyperion Enterprise
Hyperion Pillar
PwC CLIME
Motorul client
Multidimensional
Oracle Personal
Express
Brio.Enterprise
BusinessObjects
Cognos
PowerPlay
iTM1
Perspectives
Cursul 6
baza de date destinaie nu are suport nativ pentru pachete). Pe lng
diferenele de sintax, software-ul trebuie s rezolve problemele legate de
cuvinte rezervate i de conflicte de identificatori. Dac se schimb numele
unei tabele sau unei coloane, modificarea trebuie reflectat automat n toate
funciile sau tabelele care refer acea tabel sau coloan. Software-ul de
migrare trebuie s cunoasc particularitile fiecrei baze de date. Spre
exemplu, MySQL impune definirea de indeci pe coloanele care sunt
folosite ca i chei externe pentru alte tabele. Dac aceste cerine nu sunt
ndeplinite i se convertesc doar datele, restul de obiecte trebuiesc convertite
manual sau cu un alt asistent de migrare.
2. S ofere o soluie flexibil pentru definirea regulilor globale
Structura bazei de date nu trebuie modificat prea mult n timpul conversiei,
deoarece ar trebui rescrise aplicaiile, ceea ce ar face migrarea foarte
scump. Exist cazuri n care trebuie schimbatmodul implicit de conversie
ntre dou tipuri de date sau modul de redenumire a
coloanelor/tabelelor/funciilor care n noua baz de date sunt nume
rezervate. Implicit, aceste nume sunt puse ntre ghilimele sau apostroafe, dar
pentru muli dezvoltatori acest lucru poate fi un inconvenient, deoarece vor
trebui s fie folosite ghilimelele de fiecare dat cnd este referit
tabela/coloana respectiv. Toate aceste reguli trebuie s poat fi definite
global i s fie aplicate pentru toate obiectele.
3. S faciliteze migrarea aplicaiilor
Dup migrarea bazei de date, aplicaiile sunt de obicei modificate, fr a
afecta ns structura bazei de date. Aceste modificri vor conduce la
schimbarea sintaxei comenzilor SQL n cazul n care acest lucru este impus
de noul SGBD,dar i rezolvarea de incompatibiliti de interfa. Aplicaiile
scrise doar n SQL sunt n general uor de migrat. E mai dificil n cazul unei
aplicaii scrise, spre exemplu n Visual C+, care apeleaz o baz de date
Oracle printr-un ODBC. Sunt imposibil de migrat aplicaiile scrise ntr-un
mediu proprietar (spre exemplu Orace Developer Suite). Pentru ca acest
lucru s se desfoare ct mai uor asistentul, trebuie s raporteze
modificrile realizate n structura bazei de date n timpul conversiei ct i
posibilele incompatibiliti de interfa ntre aplicaii i noua baz de date.
4. S ofere performane ridicate
Deoarece bazele de date stocheaz volume mari de date, migrarea
trebuie s se realizeze n cel mai rapid mod posibil. Comenzile LOAD DATA
INFILE din MySQL i IMP din Oracle sunt de 20 de ori mai rapide dect
importul folosind INSERT din SQL. Asistentul de migrare trebuie s
126
Cursul 6
foloseasc aceste faciliti i s recurg la INSERT din SQL prin interfaa
ODBC doar dac nu exist alt alternativ mai rapid. Este necesar ns i
exportul structurii tabelelor n scripturi SQL i a datelor n formate ASCII
(CSV, Tab Delimited, SQL Insert).
5. S ofere posibiliti de personalizare
Se dorete ca migrarea s fie automatizat n procent de 100%, dar asistenii
de migrare existeni pot oferi o automatizare de pn la 95%. Dar, chiar i
numai 5% de obiecte care nu au fost migrate automat pot genera mari
probleme. De aceea, este foarte important ca productorul asistentului s
ofere servicii de personalizare pentru fiecare proiect n parte, pentru a
micora la minim conversia manual.
6. S ofere posibiliti de migrare ntre ct mai multe sisteme de baze
de date, inclusiv pentru bazele de date distribuite.
Fiecare productor de SGBD pune la dispoziie un asistent pentru preluarea
de date din alte baze de date. Exist ns i asisteni mai generali, care
suport mai multe baze de date ca surs i ca destinaie.
3.3.1. Oracle Migration Workbench
Acest utilitar asigur migrarea datelor i procedurilor stocate n
Oracle din alte baze de date. Cea mai recent versiune aprut este 10.1.0.4.
Obiectul
MS SQL
Server & MS Access
Sybase
Informix
Tabele
Viziuni
D
(Interogari)
Indexes
Groupuri/Roluri
Utilizatori
Restrictii
D
(Reguli)
Drepturi
Tipuri de date
definite de
utilizator
N/A
Proceduri
127
Cursul 6
stocate
Declanatori
Embedded SQL
ESQL/C
Pro*C
N/A
Obiectele
schemei
migrate n
obiecte
utilizator
Alte opiuni
N/A
Relaii,
tabele
de Tipuri de
legtur,
date
Support
reutilizarea
colecie, ENUM
codului
secvene.
aplicaiei.
Cursul 6
2.
3.
4.
129
Cursul 6
5.
6.
Cursul 6
b.
c.
d.
e.
f.
131
Cursul 6
Cursul 6
A treia seciune este opional i poate conine datele efectiv
de ncrcat. Sintaxa fiierului de control este liber,
comenzile putndu-se extinde pe mai multe linii i nu se face
diferena ntre literele mari i cele mici (case insensitive), cu
excepia irurilor de caractere aflate ntre ghilimele, care sunt
luate ca atare. Cuvintele CONSTANT i ZONE au o
semnificaie aparte pentru SQL*Loader i de aceea nu se
recomand folosirea acestor denumiri pentru tabele sau
coloane.
Fiierele de date de intrare. SQL*Loader citete datele din unul sau
mai multe fiiere specificate n fiierul de control. Din punctul lui de vedere,
datele din fiierele de intrare sunt organizate n nregistrri. O nregistrare
poate fi n format fix, variabil sau stream. Formatul nregistrrilor este
specificat n fiierul de control, mai exact prin parametrul INFILE. Dac nu
este specificat nici un format, implicit se folosete tipul delimitat (stream).
a. Un fiier este n format fix cnd toate nregistrrile au aceeai
lungime. Dei acest format este cel mai puin flexibil, este n
schimb cel mai performant. Se specific faptul c fiierul de date
este n format fix astfel: INFILE 'nume_fiier_date ' "fix n", unde n
este lungimea n octei a fiecrei nregistrri.
Fiierul de date din urmtorul exemplu conine cinci nregistrri,
prima nregistrare [001, cd,] avnd 11 octei considerndu-se c
fiecare caracter ocup un octet, iar delimitatorul de rnd nc un
octet.
Ldr.sql
load data
infile 'example.dat' "fix 11"
into table example
fields terminated by ',' optionally enclosed by '"'
(col1, col2)
example.dat:
001, cd, 0002,fghi,
00003,lmn,
1, "pqrs",
0005,uvwx,
Cursul 6
performan fa de cel de tip stream. Spre exemplu, se poate
specifica ca un fiier de date s fie interpretat n format variabil
astfel: INFILE 'nume_fiier_date' "var n", unde n reprezint
numrul de octei ai fiecrui cmp de specificare a lungimii
nregistrrii. Dac n nu este specificat, i se atribuie valoarea
implicit 5, iar dac i este atribuit o valoare mai mare de 40 va
rezulta o eroare.
n exemplul urmtor, fiierul de control spune SQL*Loader-ului
s caute datele n fiierul example.dat i se ateapt un format
variabil, n care cmpurile au maxim 3 octei. Fiierul de date
example.dat conine trei nregistrri. Prima nregistrare este de
009 octei, a doua este de 010 octei (include i caracterul de rnd
nou), iar a treia de 012 octei (de asemenea, e inclus caracterul de
rnd nou).
load data
infile 'example.dat' "var 3"
into table example
fields terminated by ',' optionally enclosed by '"'
(col1 char(5),
col2 char(7))
example.dat:
009salut,cd,010carte,im,
012my,name is,
Cursul 6
Dac setul de caractere nu este specificat prin parametrul
NLS_LANG, iar setul de caractere a sesiunii curente este diferit fa
de cel din fiierul de date, caracterele sunt convertite n setul de
caractere a acestuia. Aceast conversie se realizeaz nainte de
cutarea terminatorului de nregistrare. Pe platformele Unix, dac nu
este specificat nici un terminator, cel implicit este '\n'. Pe o platform
Windows, dac nu este specificat terminatorul, SQL*Loader
folosete \n sau \r\n, mai exact pe care l gsete primul. Dac
terminatorul dorit este \r\n i \n se afl mai nainte, trebuie specificat
explicit terminatorul. n exemplul urmtor este specificat
terminatorul '|\n'.
load data
infile 'example.dat' "str '|\n'"
into table example
fields terminated by ',' optionally enclosed by '"'
(col1 char(5),
col2 char(7))
example.dat:
hello,world,|
ileana,alina,|
Cursul 6
valorii parametrului COLUMNARRAYROWS (reducnd numrul de rnduri
ntr-un vector de coloane).
Se poate folosi i CONTINUEIF, dac numrul de nregistrri fizice
ce trebuie combinate variaz. Clauza CONTINUEIF este urmat de o
condiie, care va fi evaluat pentru fiecare nregistrare fizic, n timp ce este
citit. Spre exemplu, dou nregistrri pot fi combinate dac semnul diez (#)
se afl pe poziia 80 a primei nregistrri. Dac la aceast poziie se afl
orice alt caracter, a doua nregistrare nu este concatenat cu prima. Poziiile
specificate n clauz se refer la poziia din fiecare nregistrare fizic,
aceasta fiind singura situaie n care sunt referite poziii din nregistrrile
fizice. Orice alte referine au n vedere nregistrrile logice. Pentru
CONTINUEIF THIS i CONTINUEIF LAST, dac parametrul PRESERVE
nu este specificat, cmpul de continuare este ters din toate rndurile fizice
unde nregistrarea logic este asamblat. Spre exemplu, dac se specific
CONTINUEIF THIS(3:5)='***' este specificat, atunci poziiile de la 3 la 5
sunt terse din toate nregistrrile, chiar dac pe aceste poziii se afl
caracterele de continuare (***). n cazul CONTINUEIF THIS i
CONTINUEIF LAST, dac este specificat parametrul PRESERVE, cmpul
de continuare este meninut.
Exemplu (CONTINUEIF THIS fr parametrul PRESERVE)
Se presupune cazul unor nregistrri fizice de 14 octei, n care
punctul reprezint un spaiu:
%%aaaaaaaa....
%%bbbbbbbb....
..cccccccc....
%%dddddddddd..
%%eeeeeeeeee..
..ffffffffff..
136
Cursul 6
Dac clauza CONTINUEIF THIS folosete parametrului
PRESERVE, caracterele de continuare '%%' sunt meninute i dup
concatenare:
CONTINUEIF THIS PRESERVE (1:2) = '%%'
n acest caz, nregistrrile logice sunt asamblate astfel:
%%aaaaaaaa....%%bbbbbbbb......cccccccc....
%%dddddddddd..%%eeeeeeeeee....ffffffffff..
137
Cursul 6
VARCHARC(4,2000) arat c primii patru octei (caractere) trebuie
s fie interpretai ca lungimea fiierului (spre exemplu, 0501 arat ca fiierul
LOB conine 501 de caractere, iar 0000 arat c fiierul LOB nu conine
date) i c dimensiunea maxim a cmpului este de 2000 de caractere.
Conversia datelor. n timpul unei ncrcri obinuite, cmpurile din
fiiere sunt copiate i convertite n coloanele din baza de date. Conversia se
face n doi pai:
SQL*Loader folosete specificaiile cmpurilor din fiierul de
control pentru a interpreta formatul fiierului de date, pentru a analiza
fiierele de intrare i pentru a popula vectorii ce corespund unei comenzi
INSERT.
Baza de date accept datele i execut comenzile INSERT.
Baza de date folosete tipul de dat a coloanei pentru a converti
datele n formatul n care vor fi stocate. Trebuie inut cont de faptul c exist
o diferen ntre tipurile de date ale cmpurilor definite n fiierul de control
al SQL*Loader-ului i cele ale coloanelor din baza de date.
nregistrrile cu erori. nregistrrile citite din fiierele de date pot s
nu fie inserate n baza de date, ele regsindu-se ntr-un fiier cu nregistrri
eronate (bad file) sau ntr-un fiier cu nregistrri ignorate (rejected file).
Fiierul cu nregistrri eronate conine nregistrrile care au fost respinse fie
de Loader, fie de baza de date. Fiierele de date sunt respinse de
SQL*Loader cnd formatul de intrare este eronat. Spre exemplu, dac nu
exist un caracter delimitator, sau dac un cmp este mai mare dect
dimensiunea maxim. Un fiier de date procesat de SQL*Loader este trimis
bazei de date pentru a fi inserat ntr-o tabel ca o nregistrare. Dac baza de
date determin c nregistrarea este valid, ea este introdus n tabel, iar
dac nu, ea este respins i SQL*Loader-ul o introduce n fiierul cu date
eronate. O nregistrare poate fi invalid deoarece: o cheie nu este unic, un
cmp obligatoriu este NULL sau nu este ndeplinit alt condiie de
integritate, datele sunt invalide pentru tipul de dat al coloanei din baza de
date, etc. SQL*Loader poate crea, la cerere, un fiier cu datele ignorate.
Aceste date sunt cele care nu au trecut de filtrare pentru c nu au corespuns
nici unui criteriu de selecie specificat n fiierul de control. Se poate
specifica numrul maxim de nregistrri care s fie inserate n acest fiier.
Fiierul de log. Cnd SQL*Loader ncepe execuia, el creeaz un
fiier de log care va conine detalii despre ncrcarea datelor i despre erorile
aprute. Dac acest fiier nu poate fi creat, execuia nu se mai desfoar.
Acest fiier este creat implicit n acelai director cu fiierul de control.
138
Cursul 6
3.3.3. Ispirer SQLWays
Este un asistent de migrare foarte bun pentru importul datelor n
MySQL, el suportnd numeroase baze de date, att ca surs (DB2, Oracle,
SQL Server, SyBase, SAP, Access, Lotus Notes, Foxpro, Dbase), ct i ca
destinaie (DB2, SqlServer, Oracle, SyBase, Pervasive SQL). Cea mai
recent versiune aprut este 3.9 i suport ca surs i destinaie cele mai
recente versiuni ale SGBD-urilor (DB/2 8.2, Oracle 10g, MySql 5.x, MS
SQL Server 2005, .a.). Acest utilitar d posibilitatea administratorului de
baz de date s intervin n convertirea implicit a tipurilor de date prin
definire unor reguli globale.
SQLWays rezolv situaiile aprute datorit conflictelor de
identificatori sau datorit unei denumiri de obiect din baza de date surs care
este cuvnt rezervat n baza de date destinaie. Cnd se redenumete un
astfel de obiect, asistentul realizeaz modificrile necesare n toate obiectele
care l refereau. SQLWays poate exporta baza de date surs n script SQL,
ceea faciliteaz folosirea altor utilitare sau limbaje de script (Perl spre
exemplu). SQLWays realizeaz rapoarte despre modificrile suferite n
timpul conversiei i faciliteaz conversia aplicaiilor. Ca i utilitarele pentru
migrare oferite de Oracle sau IBM pentru propriile lor baze de date,
SQLWays realizeaz exportul i importul n modul cel mai rapid disponibil.
3.3.4. Embarcadero DT/Studio
Este optimizat pentru folosirea n cazul depozitelor de date i este
orientat mai ales pe transferul i transformarea de date. Suport, de
asemenea, modelarea datelor i ingineria invers (pentru a converti i
schema bazei de date) poate converti i schema bazei de date. DT/Studio
este recomandat n cazul cnd este necesar o reproiectare important a
bazei de date, deoarece pune la dispoziie numeroase funcii i faciliti de
transformare.
DT/Studio
nu
suport
conversia
funciilor/procedurilor/pachetelor stocate n baza de date.
3.3.5. Microsoft DTS
i acest utilitar se concentreaz pe transferul de date i pune la
dispoziie scripturi, Visual Basic pentru transformri de date. Se pot redefini
tipurile de date pentru fiecare tabel i se pot schimba denumirile de tabele
sau de coloane, dar este necesar o intervenie important din partea
utilizatorului pentru ca migrarea s se fac complet. DTS ofer faciliti
139
Cursul 6
limitate de conversie a schemei bazei de date, nesuportnd chei primare,
unice sau externe, valori implicite sau comentarii.
140
Cursul 6
<DATA>01-JAN-06</DATA>
<TIP>L</TIP>
<DEN>Anul nou</DEN>
</SARBATORI>
<SARBATORI>
<DATA>02-JAN-06</DATA>
<TIP>L</TIP>
<DEN>Anul nou</DEN>
</SARBATORI>
<SARBATORI>
<DATA>24-APR-06</DATA>
<TIP>R</TIP>
<DEN> Prima zi de Paste</DEN>
</SARBATORI>
<SARBATORI>
<DATA>25-DEC-06</DATA>
<TIP>R</TIP>
<DEN>Craciun</DEN>
</SARBATORI>
<SARBATORI>
<DATA>26-DEC-06</DATA>
<TIP>R</TIP>
<DEN>Craciun</DEN>
</SARBATORI>
</ROWSET>
Cursul 6
secunde pe un calculator Barton 2500+ cu 1GB RAM, obinndu-se un
singur document XML.
Name
Type
Comments
--------------------- ---------------------- ----------------------PRENUME_CD VARCHAR2(40)
Prenume cu diacritice
ID_PRENUME NUMBER(8)
Id prenume
PRENUME_FD VARCHAR2(40)
Prenume fr diacritice
142
Cursul 6
AS deptxml
FROM departamente d');
dbms_xmlgen.setMaxRows(qryCtx, 5);
LOOP
result := dbms_xmlgen.getxml(qryCtx);
INSERT INTO temp_clob_tab VALUES(result);
IF result IS NULL THEN
EXIT;
END IF;
END LOOP;
END;
Cursul 6
144
Cursul 6
CAPITOLUL 3.
ANALIZA COMPARATIVA A DIFERITELOR
INSTRUMENTE UTILIZATE PENTRU INTEGRAREA DATELOR.....116
3.1. Sisteme de gestiune a bazelor de date..............................................116
3.2. Sisteme pentru gestiunea depozitelor de date..................................117
3.2.1 Oracle Discoverer......................................................................117
3.2.2 Oracle Warehouse Builder.........................................................119
3.2.3. Microsoft SQL Server 2005 Business Intelligence..................123
3.3. Instrumente utilizate pentru migrarea datelor..................................125
3.3.1. Oracle Migration Workbench...................................................127
3.3.2. Utilitarele SQL*Loader i Import/Export.................................128
3.3.3. Ispirer SQLWays.......................................................................139
3.3.4. Embarcadero DT/Studio...........................................................139
3.3.5. Microsoft DTS..........................................................................139
3.4. Testarea instrumentelor....................................................................140
3.4.1. Migrarea din Oracle folosind XML..........................................140
3.4.2. Migrarea folosind Ispirer SQLWays 3.8...................................143
145