You are on page 1of 13

Hijerarhijska strukura

podataka

Ciljevi
Poslije kompletiranja ove lekcije trebalo bi
se moi:
Shvatiti koncept hijerarhijskog upita
Kreirati izvjetaj sa strukturom drveta
Formirati hijerarhijske podatke
Vriti selekciju grana u strukturi drveta

Podaci u tabeli employees


EMPLOYEE_ID
----------zaposlenik 100
145
146
ef
147
148
149
157
158
170
171
175
176
178
179
186
187
...

LAST_NAME
------------------------King
Russell
Partners
Errazuriz
Cambrault
Zlotkey
Sully
McEwen
Fox
Smith
Hutton
Taylor
Grant
Johnson
Dellinger
Cabrio

JOB_ID
MANAGER_ID
---------- ---------AD_PRES
SA_MAN
100
SA_MAN
100
SA_MAN
100
SA_MAN
100
SA_MAN
100
SA_REP
146
SA_REP
146
SA_REP
148
SA_REP
148
SA_REP
149
SA_REP
149
SA_REP
149
SA_REP
149
SH_CLERK
121
SH_CLERK
121

Strukura drveta

Kreiranje kroz drvo


Definisanje poetne pozicije za kreiranje
drveta:

Potrebno je definisati poetnu taku od koje e se


drvo poeti kreirati
Prihvatljiv je bilo koji korektno definisan ulov
START WITH column1 = value

Npr. kreiranje startne pozicije za tabelu


employees sa imenom = Kochhar
...START WITH last_name = 'Kochhar'

Kretanje kroz drvo


CONNECT BY PRIOR column1 = column2

Kretanje od vrha ka dnu drveta koritenjem


tabele employees
... CONNECT BY PRIOR employee_id = manager_id

Pravaci kretanja kroz drvo:


TOP DOWN

column1
column2

=
=

Parent Key (roditelj)


Child Key (dijete)

BOTTON UP

column1
column2

=
=

Child Key (dijete)


Parent Key (roditelj)

BOTTOM UP (od dna ka navie)


SQL>
2
3
4

SELECT employee_id, last_name, job_id, manager_id


FROM
employees
START WITH employee_id = 105
CONNECT BY PRIOR manager_id = employee_id ;

EMPLOYEE_ID
----------105
103
102
100

LAST_NAME
------------------------Austin
Hunold
De Haan
King

JOB_ID
MANAGER_ID
---------- ---------IT_PROG
103
IT_PROG
102
AD_VP
100
AD_PRES

TOP DOWN (od vrha ka dnu)


SQL>
2
3
4
5

SELECT
PRIOR
FROM
START
CONNECT

last_name||' reports to '||


last_name "Top Down"
employees
WITH last_name = 'King'
BY PRIOR employee_id = manager_id ;

Top Down
---------------------------King reports to
Hartstein reports to King
Fay reports to Hartstein
Kochhar reports to King
Whalen reports to Kochhar
Mavris reports to Kochhar
Baer reports to Kochhar
Higgins reports to Kochhar
...
108 rows selected.

LEVEL pseudokolona

Prikaz hijerarhijske strukture


LEVEL i LPAD

Kreiraj izvjetaj koji e prikazati strukturu


upravljanja kompanije sa poetkom od
najvieg nivoa
SQL>
2
3
4
5

SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2,'_')


AS org_chart
FROM
employees
START WITH last_name='King'
CONNECT BY PRIOR employee_id=manager_id;

ORG_CHART
--------------------------King
King
__Hartstein
____Fay
...

Odbacivanje grana
Koritenjem WHERE klauzule
eleminiu se vorovi

Koritenjem CONNECT BY
eleminiu se grane

Kratak pregled
Koritenjem hijerarhijskih upita mogu se
dobiti hijerarhijski odnosi izmeu redova
tabele
Moe se odrediti pravac i startna taka upita
Moe se eliminisati vor ili grana drveta

Hijerarhijska strukura
podataka

You might also like