adatbázis alapú rendszerek vizsgajegyzet

Upload: murancsik-sebestyen

Post on 13-Jul-2015

701 views

Category:

Documents


0 download

DESCRIPTION

Adatbázis alapú rendszerek vizsgajegyzet

TRANSCRIPT

Adatbzis alap rendszerekMurncsik Sebestyn 2011. m jus 21.

1

Tartalomjegyzk1. Az SSADM mdszertan szerkezete, a 7 szakasz ttekintse1.1. SSADM mdszertanok alapelvei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. A ht szakasz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Adatfolyam diagram . . . . . . . . . . . . . . 2.1.1. Elemei . . . . . . . . . . . . . . . . . . 2.1.2. Megengedett kapcsolatok . . . . . . . 2.2. Logikai adatmodell (egyedmodell) . . . . . . . 2.2.1. Elemek. . . . . . . . . . . . . . . . . . 2.2.2. Kapcsolat jellege . . . . . . . . . . . . 2.3. Relcis adatelemzs . . . . . . . . . . . . . . 2.3.1. Lpsei. . . . . . . . . . . . . . . . . . 2.3.2. rsmd. . . . . . . . . . . . . . . . . . 2.3.3. sszehasonlts a logikai adatmodellel 2.4. Egyed-esemny mtrix . . . . . . . . . . . . . 2.4.1. Bejegyzsei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

4 4

2. Az SSADM fontosabb techniki

4

4 5 5 5 5 6 6 6 6 6 6 6

3. Hatkony SQL lekrdezsek: keressek, rendezsek s tblk sszekapcsolsnak gyorstsa indexek s zikai nzettblk segtsgvel 73.1. 3.2. 3.3. 3.4. Keressek . . . . . Rendezsek . . . . Ideiglenes tblk . Fizikai nzettblk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 7 7 7

4. Indexek tpusai, indexelsi technikk: ISAM, B-fa4.1. ISAM . . . . . . . . . . . 4.1.1. Indexfjl felptse. 4.1.2. rtkels . . . . . 4.2. B-fa index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

77 8 8 8

5. Naplzsi mdszerek: semmissgi (undo), helyrehoz (redo) s semmissgi/helyrehoz (undo/redo) naplzs. Ellenrzpont-kpzs clja s lnyege 85.1. Helyrellts elve. . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Vltozatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1. Semmissgi naplzs (undo logging). . . . . . . . . . . 5.2.2. Helyrehoz naplzs (redo logging). . . . . . . . . . . 5.2.3. Semmissgi/helyrehoz naplzs (undo/redo logging). 6.1. 6.2. 6.3. 6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 9 9

6. Soros, sorbarendezhet s koniktus-sorbarendezhet temezsek, megelzsi grfSoros temezs (serial schedule) . . . . . . . . . . . . . . . . . . . . Sorba rendezhet temezs (serializable scedule) . . . . . . . . . . Koniktus-sorbarendezhet temezs (conict-serializable scedule) Megelzsi grf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

9 9 10 10

9

7. Konkurrenciavezrls zrakkal: ktfzis zrols, osztott, kizrlagos s mdostsi zrak

7.1. Ktfzis zrols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Osztott s kizrlagos zrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Mdostsi zrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. Oracle DBMS . . . . . . . . . . . . . . 8.2. Adatsztr . . . . . . . . . . . . . . . 8.2.1. Az adatsztr tartalma . . . . 8.2.2. Felhasznls . . . . . . . . . . . 8.2.3. Pldk adatsztr hasznlatra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1010 10 11

8. Oracle alapjai. Adatsztr (data dictionary) hasznlata

11

11 11 11 12 12

2

9. SQL*Plus kezeli fellet, helyettest s hozzrendelt vltozk hasznlata

9.1. Helyettest vltozk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2. Hozzrendelt vltozk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

12 13

10.Az Oracle PL/SQL nyelve: blokk felptse, %TYPE s %ROWTYPE alak tpusmegadsok, explicit s implicit kurzorok, kurzorfggvnyek, kivtelkezel szegmens 1410.1. Blokkok . . . . . . . . . . . . . . . . . . . . . 10.2. Tpus-hivatkozsok . . . . . . . . . . . . . . . 10.3. Kurzorok . . . . . . . . . . . . . . . . . . . . 10.3.1. Plda implicit kurzorra . . . . . . . . 10.3.2. Explicit kurzorok kezelse . . . . . . . 10.3.3. Paramterezett kurzorok . . . . . . . . 10.4. Kivtelkezel szegmens . . . . . . . . . . . . . 10.4.1. Nhny rendszer ltal denilt kivtel 10.4.2. Felhasznl ltal denilt kivtelek . . 11.1. Korltozsok . . . . . . . . . . 11.2. FOR EACH ROW utastsrsz 11.3. REFERENCING utastsrsz . 11.4. Engedlyezs, letilts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14 14 15 15 15 16 16 17 17 17 17 17 18

11.Sorszint s utastsszint triggerek

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

17

12.Az objektum-relcis adatmodell s megvalstsa Oracle-ben: CREATE TYPE, sorobjektumok s oszlopobjektumok, objektumtblk, begyazott tblk, hivatkozsok 1812.1. Felhasznli tpusok . . . . . . . . . . . . . . . 12.1.1. j adattpus deklarlsa . . . . . . . . . 12.1.2. Konstruktor . . . . . . . . . . . . . . . . 12.2. Objektumtblk . . . . . . . . . . . . . . . . . 12.2.1. Ltrehozs . . . . . . . . . . . . . . . . 12.2.2. Hasznlat . . . . . . . . . . . . . . . . . 12.3. Begyazott tblk (nested tables) . . . . . . . . 12.3.1. Beszrs konstruktorfggvnyekkel . . . 12.3.2. j lakcm felvtele TABLE fggvnnyel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 18 19 19 19 20 20 20

13.Adattrhzak s kezelsk SQL-ben14.1. OLTP (OnLine Transaction Processing) . . . . . . . . . . . 14.2. OLAP (OnLine Analytical Processing) . . . . . . . . . . . . 14.3. ROLAP (Relational OnLine Analytical Processing) . . . . . 14.4. MOLAP (Multidimensional OnLine Analytical Processing) 14.5. Adatkocka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2021 21 22 22 23

14.Adatkocka s multidimenzis adatmodell. OLTP, OLAP, ROLAP s MOLAP megkzeltsek 21

15.Drill-down (mgyre s), roll-up (felgrget), slicing (szeletel) s dicing (kockz) lekrdezsek ROLAP modellben 2415.1. Slicing (szeletels) . . . . . . . . . . . . . . . 15.1.1. Az adatkockbl egy szelet kivgsa s 15.1.2. Dicing (kockzs) . . . . . . . . . . . . 15.2. Drill-down (mlyre ss) . . . . . . . . . . . . 15.2.1. Drill-down id szerint . . . . . . . . . 15.3. Roll-up . . . . . . . . . . . . . . . . . . . . . . . . . . . sszegzse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24 24 24 25 25 26

3

1. Az SSADM mdszertan szerkezete, a 7 szakasz ttekintseAz SSADM (az angol Structured Systems Analysis and Design Method) Strukturlt Rendszerelemzsi s Tervezsi Mdszertan rvidtse.

1.1. SSADM mdszertanok alapelvei Elemzs fellrl lefel.Aalrendszerekre, funkcikra, folyamatokra bonts.

Tervezs alulrl felfel.Hierarchikus ptkezs alapelemekbl, pontos, rszletes terv.

Logikai s zikai vizsgkatok sztvlasztsa.Logikai vizsglatnak tekinthet a rendszer mkdsnek bels logikja, mg zikainak a tnyleges megvalsts adott eszkzn.

Fokozatossg.Egy j egyednl elszr csak a nevt s kapcsolatait hatrozzuk meg, az attribtumait csak ksbb adjuk meg.

1.2. A ht szakaszSSADM 5 modulbl ll, melyet 7 szakaszra bonthatunk sszesen. Csak a tnylegesen szksges feladatokat s technikkat alkalmazzuk.

Megvalsthatsg-elemzs (elhagyhat)

Megvalsthatsg eldntse Kvetelmny elemzs (elemzsi feladat)

Jelenleti helyzet vizsglata Rendszerszervezsi vltozat kivlasztsa Kvetelmny-specikci (elemzs s tervezs)

Kvetelmnyek meghatrozsa Logikai rendszerspecikci (tervezsi feladat)

Rendszertechnikai vltozat kivlasztsa Logikai rendszertervezs Fizikai rendszertervezs (tervezsi feladat)

Fizikai rendszertervezs

2. Az SSADM fontosabb techniki2.1. Adatfolyam diagramFolyamatmodellezs eszkze, angolul DFD (= Data Flow Diagram). Lnyegben egy specilis grf, ahol a szgpontok folyamatoknak, adattrnak, krnyezeti elemnek vagy anyagtrolnak felelnek meg, mg az lek az adat-, illetve anyagfolyamnak.

4

2.1.1. Elemei Folyamat.

Azonost (sorszm). Szervezeti egysg vagy beoszts neve. Folyamat megnevezse. Az AFD dntsi jelkpet nem tartalmaz, a dntst is folyamatnak tekintjk. Adatfolyam.

Az adat megnevezst tartalmazhatja, m ez elhagyhat. Adattr.

Tpusai. trzsadattr, tmeneti adattr.Karbantartst csak az adattr fel mutat nyllal jelljk (valjban az adatot elbb ki kell olvasni, majd mdostva visszarni). Az ttekinthetsg rdekben tbb pldnyban is szerepelhet, ezt a bal szln ketts vonal jelzi.

Azonost (bet+szm). Betk. M manulis, Ddigitlis, L logikai, T temporlis.

Megnevezs. Krnyezeti elem.A vizsglt rendszer hatrain kvl es objektum (adatforrs vagy adatignyl). Pldul partnervllalat, vllalat msik szervezeti egysge, adatszolgltatst ignyl hivatal. ttekinthetsg rdekben tbb pldnyban is szerepelhet, ezt ferde vonal jelzi.

Megnevezs. Azonost (szksg esetn). Anyagfolyam, anyagtrols

Megnevezs. 2.1.2. Megengedett kapcsolatokKrnyezeti elem Folyamat Adattr Anyagtrol Krnyezeti elem Csak kls adat- ill. anyagram IGEN NEM NEM Folyamat IGEN IGEN IGEN Csak anyagfolyam Adattr NEM IGEN NEM NEM Anyagtrol NEM Csak adatfolyam NEM NEM

2.2. Logikai adatmodell (egyedmodell)Az adatok bels logikai szerkezetnek lersa, fggetlenk a feldolgozsi kvetelmnyektl, troleszkzk lehetsgeirl stb.

2.2.1. Elemek. Egyed 1:1 kapcsolat (kt egyed kzt vonal) N:1 kapcsolat (csirkelb az N oldalon) N:M kapcsolat (mindkt oldalon csirkelb)Nincs sokg kapcsolat, valamint egy kapcsolatnak se lehet attribtuma, viszont ltrezik rekurzv kapcsolat. 5

2.2.2. Kapcsolat jellegeEgy egyed ktelezen vesz rszt a kapcsolatban, ha minden egyedpldny rszt vesz legalbb egy kapcsolatban (folytonos vonal). Ellenkez esetben az egyed esetlegesen vesz rszt a kapcsolatban (szaggatott vonal).

2.3. Relcis adatelemzsA funkcimeghatrozs utn, a fejlesztsnek abban a szakaszban vgezzk, amikor a tulajdonsgtpusokrl mr elg rszletes informcink van. A kt mdszer eredmnyt sszehasonltjuk, s addig nomtjuk az elemzseket, amg az eredmnyek meg nem egyeznek.

2.3.1. Lpsei. Tulajdonsgtpusok sszegyjtse. Relcismk felrsa a tulajdonsgtpusokbl(lehetnek normalizlatlanok, 1NF sem ktelez)

Normalizls 3NF-ig Konszolidls azonos kulcs smk sszevonsa 2.3.2. rsmd. Nv. Vastag bet. Attribtumok. egyms al. Kulcs. Alhzva. Kls kulcs. Csillaggal. Halmaz attribtum, ismtld csoport. Behzssal.

2.3.3. sszehasonlts a logikai adatmodellel1. mdszer. A relcis adatelemzs eredmnybl runk fel egyedmodellt. Relcinv egyed, kls kulcs kapcsolat A kapott egyedmodell sszehasonltsa a logikai adatmodellezsnl kapott egyedmodell. 2. mdszer. A logikai adatmodellezs eredmnybl runk fel relcis modellt. EK modell relcis adatbzis sma A kapott adatbzis sma sszehasonltsa a relcis adatelemzs eredmnyeivel.

2.4. Egyed-esemny mtrixFggleges. Az egyedek felsorolsa. Vzszintes. Az esemnyek felsorolsa. 2.4.1. Bejegyzsei L ltrehozs O olvass M mdosts T trls6

3. Hatkony SQL lekrdezsek: keressek, rendezsek s tblk sszekapcsolsnak gyorstsa indexek s zikai nzettblk segtsgvel3.1. KeressekGyorstshoz hasznlhat index:

CREATE INDEX indexnev ON Tbla(mez1 [, mez2 [, ...]])

3.2. RendezsekNagy tblk rendezshez nagy munkaterlet kell a memriban!

ORDER BY GROUP BY DISTINCT UNION

Gyorstsi szksg. Index ltrehozsa a megfelel oszlopokra. Az index ltrehozsa csak akkor clszer, ha azadott lekrdezsre gyakran szksg van.

3.3. Ideiglenes tblkHasznlata. munkatblk, biztonsgi msolatok.Plda.

CREATE TABLE Knyv1 (konyvszam CHAR(3), cim CHAR(30)); INSERT INTO Knyv1 SELECT konyvszam, cim FROM Konyv WHERE szerzo = Jkai; hasznlat DROP TABLE Knyv1

3.4. Fizikai nzettblkCREATE ALGORITHM=TEMPTABLE VIEW Knyv1 AS SELECT konyvszam, cim FROM Konyv WHERE szerzo=Jokai; ... DROP VIEW Knyv1

4. Indexek tpusai, indexelsi technikk: ISAM, B-fa4.1. ISAMISAM fogalma. Indexed Sequential Access Method. Index-szekvencilis fjlszervezs. Rendezett fjl kiegsztseindexszel s tlcsordulsi lapokkal. Elsdleges ritka index(az adatok rendezettek). A legrgebbi trolsi md. Mai vltozatait gyakran ms nven emltik. Az adatstruktrt fokozatosan ptjk fel:

Egyszint index ltrehozsa Tbbszint index (fastruktra) Adatfjl kiegsztse tlcsorduls-lapokkal (ISAM)

7

4.1.1. Indexfjl felptse.(P0 ,K1 , P1 , ..., Kr , Pr )

Ki indexkulcs (i=1, ..., r) Pi adatfjl-lapra mutat pointer (i=0, ..., r) P0 ha a keressi kulcs < K1 Pi ha a keressi kulcs Ki s < Ki+1 (i=1, ..., r-1) Pr ha a keressi kulcs Kr 4.1.2. rtkels Rendezett listzs: gyors, fabejrssal Keress: jval gyorsabb, mint a binris keress Beszrs: keress, majd a lapon lev rekordok lptetse, szksg esetn tlcsordulsi lap. Trls: keress, hely resen hagysa

4.2. B-fa indexB = balanced. A fa mindig kiegyenslyozott, vagyis a keress mlysge brmely gon ugyanannyi. B+ fa. a B-fa egy vltozata.A fa egy szgpontja egy lemezblokk. Ha m index-bejegyzst tartalmaz, akkor a szgpontnak m leszrmazottja van. A fa mlysge ritkn nagyobb 3-4 szintnl. A B-fa rangja r, ha egy lapon legfeljebb 2r indexbejegyzs fr el. A kihasznltsg legalbb 50%-os. Msodlagos sr index. A legltalnosabban hasznlt, minden rendszer tmogatja.

5. Naplzsi mdszerek: semmissgi (undo), helyrehoz (redo) s semmissgi/helyrehoz (undo/redo) naplzs. Ellenrzpont-kpzs clja s lnyegeNapl(log). Naplbejegyzsek sorozata. Kizrlag bvtsre megnyitott fjl.

5.1. Helyrellts elve.A flksz tranzakcikat visszavonjuk, majd a lezrt tranzakcikat lemezre rjuk.

5.2. Vltozatok5.2.1. Semmissgi naplzs (undo logging).Flksz tranzakcikat visszavonjuk, a lezrtakkal nincs teend.

: a T tranzakci vgrehajtsnak kezdete. : T rendben befejezdtt, vglegests. : T visszavonsra kerlt. : T mdostotta az X adatbziselemet, melynek mdosts eltti rtke v volt.

Szablyok. U1 szably. A bejegyzs elbb kerljn lemezre, mint X j rtke. U2 szably. A bejegyzs csak akkor kerljn lemezre, ha a tranzakci valamennyi mdostsa mr lemezre kerlt. FLUSH LOG parancs. A naplbejegyzsek lemezre rsnak kiknyszertse.8

Helyrellts. esetn a T-re vonatkoz bejegyzseket a tovbbiakban nem kell gyelni. Egybknt minden esetn X visszalltand v-re. Ha ksz, minden visszavont tranzakcihoz bejegyzs kerl a naplba.

5.2.2. Helyrehoz naplzs (redo logging).Flksz tranzakcikkal nincs teend, a lezrtakat lemezre rjuk.

: a T tranzakci vgrehajtsnak kezdete. : T rendben befejezdtt, vglegests. : T visszavonsra kerlt. : T mdostotta az X adatbziselemet, melynek mdosts utni rtke v volt.

Szablyok.. R1 szably. A tranzakci valamennyi bejegyzse s a is elbb kerljnlemezre, mint a tranzakci brmely mdostsa.

Helyrellts.. Kigyjtjk a naplbl a COMMIT-tel lezrt tranzakcik azonostit. Ha T nem lezrt, akkor

gyelmen kvl hagyand. Egybknt alapjn X rtke v-re lltand. Minden nem lezrt tranzakcihoz bejegyzs kerl a naplba.

5.2.3. Semmissgi/helyrehoz naplzs (undo/redo logging).A flksz tranzakcikat visszavonjuk, a lezrtakat lemezre rjuk.

: a T tranzakci vgrehajtsnak kezdete. : T rendben befejezdtt, vglegests. : T visszavonsra kerlt. : T mdostotta az X adatbziselemet, melynek mdosts eltti rtke v, mdosts utni rtke w.

Szablyok.. UR1 szably. A bejegyzs elbb kerljn lemezre, mint az X j rtke. Helyrellts.. A legkorbbitl kezdve rjunk lemezre minden lezrt tranzakcit. A legutolstl kezdve vonjunkvissza minden be nem fejezett tranzakcit.

6. Soros, sorbarendezhet s koniktus-sorbarendezhet temezsek, megelzsi grftemezs. Tranzakcik lnyeges mveleteinek idsorba rendezse.

6.1. Soros temezs (serial schedule)Elszr a megkezdett tranazkci sszes mvelett vgrehajtjuk, s csak utna jn a kvetkez tranzakci. (v. egsz adatbzis zrolsa)

6.2. Sorba rendezhet temezs (serializable scedule)Ugyanolyan hatssal van az adatbzis llapotra, mint egy soros temezs.

9

6.3. Koniktus-sorbarendezhet temezs (conict-serializable scedule)Koniktus-ekvivalens valamely soros temezssel.

Ez elgsges felttel egy temezs sorbarendezhetsgre A DBMS-ek ltalban ezt alkalmazzk Adott tranzakcik esetn ennl gyengbb felttel is elegend lenne.

6.4. Megelzsi grfAdott egy T1 s T2 tranzakcinak egy S temezse. T1 megelzi T2 -t, ha van T1 -ben olyan M1 mvelet s T2 -ben M2 mvelet, hogy

M1 megelzi M2 -t M1 s M2 ugyanarra az adatbziselemre vonatkoznak M1 s M2 kzl legalbb az egyik rsM1 s M2 nem felcserlhet. Ha van S-sel koniktus-ekvivalens soros temezs, akkor abban T1 megelzi T2 -t.

7. Konkurrenciavezrls zrakkal: ktfzis zrols, osztott, kizrlagos s mdostsi zrakJellsek. L1 (X) esetn T1 (X) tranzakci zrolja az X adatbziselemet, mg U1 (X) esetn T1 (X) tranzakci feloldja az X adatbziselem zrolst. Alapszablyok.. A tranzakci csak akkor olvashat vagy rhat egy elemet, ha elzleg zrolta azt. Ha egy tranzakci zrol egy elemet, akkor ksbb azt fel kell szabadtania. Egy tranzakci csak akkor zrolhat egy egy elemet, ha azt pillanatnyilag ms tranzakci nem tartja zrolva.

7.1. Ktfzis zrolsMinden tranzakciban minden zrolsi mvelet megelzi az sszes zrfelolfsi mveletet. Els fzisban csak zrolsokat, mg a msodikban csak zrfeloldsokat adunk ki. llts. 2FZ tranzakcik brmley temezse koniktus-sorbarendezhet. Megjegyzs. A 2FZ tranzakcik valamely temezsvel koniktus-ekvivalens soros temezsben tranzakcik els zrfeloldsaik sorrendjben hajtdnak vgre. Megjegyzs. Piaci rendszerek gy is biztostjk a 2FZ felttelt, hogy a zrols mindig a tranzakci vgig tart.

7.2. Osztott s kizrlagos zrakProblmafelvets az, hogy olvassra is zrolni kell az adatforrst. Ennek megoldsra ktfle zrat alkalmazunk:

Osztott zr (sL(A))Olvasshoz, egyidejleg tbb lehet rvnyben.

Kizrlagos zr (xL(A))rshoz, egyidejleg csak egy lehet rvnyben

10

Szablyok. Nem rhatunk kizrlagos zr fenntartsa nlkl. Nem olvashatunk valamilyen zr fenntartsa nlkl. Minden zrolst kell hogy kvessen felold mvelet. Egy elemet vagy egy tranzakci zrol kizrlagosan, vagy tbb is zrolhatja osztottan, de a kett egyszerre nem lehet. 2FZ szably. A tranzakciban minden zrolsi mvelet megelzi az sszes zrfelolfsi mveletet.

7.3. Mdostsi zrakA mdostsi zr csak olvassra ad jogot, de ksbb felminsthet kizrlagos zrr. Az osztott zr nem minsthet fel. Mdostsi zr ltrehozhat mr osztott mdon zrolt elemre. Ha A-n mr van mdostsi zr, akkor r semmilyen j zr nem hozhat ltre. Megjegyzs. A mdostsi zr osztottknt viselkedik, amikor krjk, d kizrlagosknt viselkedik, amikor mr megvan.

8. Oracle alapjai. Adatsztr (data dictionary) hasznlata8.1. Oracle DBMSAz Oracle pldny a DBMS kernel egy fut pldnya. Egy Oracle pldny egy adatbzist kezel. Ezrt a pldny indtst s lelltst egyben az adatbzis indtsnek s lelltsnak is nevezik. Egy felhasznli folyamat kliensknt kapcsoldik a szerverhez. Egy Oracle pldnyhoz tbb kliens folyamat kapcsoldhat. Tblaterletnek nevezzk az adatbzis-objektumok zikai trolst meghatroz logikai egysget. Smnak adatbzis-objektumok egyttest nevezzk. Sma-objektum lehet tbla, nzettbla, index, trigger, trolt eljrs stb. Minden adatbzis-objektumnak van tulajdonosa, aki ltrehozta a CREATE paranccsal, illetva ha a rendszergazda hozta ltre az adott felhasznl rszre.

8.2. AdatsztrAz adatsztr (data dictionary) az Oracle adatbzis egyik legfontosabb rszt kpezi. A kzponti, csak olvashat referencia tblk s nzetek tartoznak hozz. A SYSTEM tablespaceben troljuk, ami mindig online, ezrt ezek az informcik mindig elrhetek.

Felptse.. AlaptblkAz adatbzisrl tartalmaznak informcikat. Csak az Oracle adatbzis rhatja s olvashatja ket. Az adatokat titkostott formban troljk.

Felhasznli nzetekNzetek, melyek sszegzik s a felhasznlk szmra emszthet formban megjelentik az Alap tblkban trolt informcikat. A legtbb felhasznl ezekhez a nzetekhez frhet hozz.

8.2.1. Az adatsztr tartalma Felhasznlk nevei s jogosultsgai Smaobjektumok nevei s adatai (tblk, nzetek, indexek, trolt eljrsok stb.) Integritsi felttelek Alloklt s tnylegesen foglalt hely az egyes adatbzis-elemek szmra Auditlsi informci. Ki mikor milyen objektumot mdostott.11

8.2.2. Felhasznls Az adatbzis lekrdez informcikat felhasznlkrl, sma objektumokrl s trolsi struktrkrl Az adatbzis mdostja az adatsztrt minden DDL utasts vgrehajtsa esetn Brmely felhasznl lekrdezhet informcikat az adatbzisrl

8.2.3. Pldk adatsztr hasznlatra Felhasznlk listja

SELECT * FROM all_users; A felhasznl sajt tblinak nevei

SELECT table_name FROM user_tables; A felhasznl ltal elrhet sszes objektum listja

SELECT owner, object_name, object_type FROM all_objects; Nagy tblk esetn a sorok szma lekrdezhet

SELECT count(*) FROM all_objects; Felhasznl tblinak struktri

SELECT table_name, column_name, data_type FROM cols; Dolgoz tbla struktrjnak listzsa

SELECT column_name, data_type, data_length FROM cols WHERE table_name = 'DOLGOZO';

9. SQL*Plus kezeli fellet, helyettest s hozzrendelt vltozk hasznlataSQL alap, parancssoros fellet. Kliensknt lehet vele kapcsoldni az Oracle-szerverhez.

Az albbi utaststpusok hasznlhatk.. Oracle SQL-utastsok .sql parancsfjl PL/SQL blokk SQL*Plus parancsok a kezeli fellethez szlnak.Az SQL parancsbuer mindig az utoljra begpelt SQL-utastst tartalmazza. SQL parancsot pontosvesszvel vagy trtvonallal, majd enterrel kell zrni. A parancsszavaknl a kis- s nagybet egyenrtk. Tbbsgk rvidthet, valamint a fontosabb parancsok menbl is elrhetek.

9.1. Helyettest vltozkHelyettest vagy felhasznli vltoz. Adatbevitelre szolgl.

12

Deklarci rtkadssal..DEF[INE] = DEF[INE] proba = alma

Helyettest vltoz rtknek lekrdezse.DEF[INE] proba

sszes denilt helyettest vltoz listja:.DEF[INE]

Helyettest vltoz trlse.UNDEF[INE]

Felhasznli rtkads.ACCEPT PROMPT A szveget kirja a kpernyre, a vlaszknt begpelt rtket kapja a vltoz. Ha a vltoz nincs denilva, automatikusan denildik.

Helyettest vltoz hasznlata. &vltoz rtke stringknt helyettestdik. Ha nincs denilva, a rendszer bekri rtkt, de helyettests utnnem rzi meg.

&&vltoz mint az elz, de helyettests utn rtke megrzdik.

9.2. Hozzrendelt vltozkHozzrendelt (bind) vltoz, eredmnyek letrolsra szolgl.

Deklarci.VAR[IABLE] variable proba number

Deklarlt hozzrendelt vltozk listzsa.VAR[IABLE]

rtkads hozzrendelt vltoznak PL/SQL-ben.: := ;

Hozzrendelt vltoz rtknek kirsa.PRINT vltoznv

Pldaprogram.DEFINE bemenet=21 VARIABLE kimenet NUMBER DECLARE valtozo NUMBER; BEGIN valtozo := &bemenet + 100; :kimenet := valtozo + 200; END; PRINT kimenet13

10. Az Oracle PL/SQL nyelve: blokk felptse, %TYPE s %ROWTYPE alak tpusmegadsok, explicit s implicit kurzorok, kurzorfggvnyek, kivtelkezel szegmensPL/SQL (Procedural Language extension to SQL) az Oracle 6-os verzija utn jelent meg, ami begyazott SQL technikkkal kiterjesztett algoritmikus SQL nyelv.

A nyelv elemei.. AdattpusokVltozk, konstansok, strukturlt adatok

Algoritmikus eszkzkrtkad utasts, feltteles utasts, ciklus

BlokkszerkezetNvtelen blokk, nvvel elltott blokk, alprogram (eljrsok, fggvnyek)

KivtelkezelsKivtelkezel szegmens, trigger, alkalmazs-trigger

Beptett fggvnyek CsomagNvvel rendelkez PL/SQL modul, amely sszetartoz eljrsokbl, fggvnyekbl, vltozkbl s kurzorokbl ll.

10.1. BlokkokEgy PL/SQL program egy vagy tbb blokkbl ll. A blokkok egymsba gyazhatk a szoksos lthatsgi szablyokkal. A blokk lehet nvtelen, nvvel elltott blokk vagy alprogram. Az alprogram paramterezhet, lehet eljrs vagy fggvny.

Blokk felptse.[ ] [ DECLARE deklarcis szegmens ] BEGIN vgrehajt szegmens [ EXCEPTION kivtelkezel szegmens ] END [ blokknv ]; /

10.2. Tpus-hivatkozsokNem adunk meg kzvetlenl tpust, hanem egy tbla egy mezjnek tpusra hivatkozunk.

-- tbla.mez%TYPE nevmezo dolgozo.nev%TYPESor tpus vltozt is deklarlhatunk, ebben az esetben rekordknt fog mkdni a vltoz, ahol

14

vltoznv.attribtummdon lehet hivatkozni az egyes oszlopokra.

-- tbla%ROWTYPE dolgozo_rekord dolgozo%ROWTYPE; dolgozo_rekord.fizetes := 150000;

10.3. KurzorokAdattbla soronknti feldolgozsra szolgl. Az Oracle munkaterletet hoz ltre a memriban, ahol a kurzorhoz tartoz tblt trolja.

Explicit kurzorA kurzorhoz tartoz tbla SELECT utastssal denilt, a kurzor OPEN, CLOSE, FETCH utastsokkal kezelhet.

Implicit kurzorMinden INSERT, UPDATE, DELETE s explicit kurzorral nem rendelkez SELECT utastshoz ltrejn egy implicit kurzor. Kurzorfggvnyek

%FOUND igaz, ha a legutbbi SQL-utasts legalbb egy sort feldolgozott. %NOTFOUND igaz, ha a legutbbi SQL-utasts egyetlen sort sem dolgozott fel. %ROWCOUNT a kurzorral sszesen feldolgozott sorok szma. %ISOPEN igaz, ha a kurzor meg van nyitva.Explicit kurzor esetn a fggvny a kurzor neve utn rand, pl.

kurzornv%FOUNDImplicit kurzorra SQL eltaggal hivatkozhatunk, pl.

SQL%FOUND

10.3.1. Plda implicit kurzorraA Knyv(kszm, szerz, cm, v) tblbl adott kiadsi vnl rgebbi knyvek trlse

VARIABLE sortorol VARCHAR2(30) DECLARE evszam konyv.ev%TYPE := 1960; BEGIN DELETE FROM konyv WHERE ev < evszam; :sortorol := (SQL%ROWCOUNT || ' sort kitrltnk'); END; / PRINT sortorol

10.3.2. Explicit kurzorok kezelse Deklarci.CURSOR IS ;

15

Megnyits.OPEN Megnyitskor vgrehajtdik a kurzorhoz tartoz lekrdezs, s a kurzor az eredmnytbla els sorra ll.

Lptets.FETCH INTO ;Hatsra az aktulis sor adatai tkerlnek a vltozkba, majd a kurzor elrelp.

Lezrs.CLOSE ;Lezrt kurzor deklarcija tovbbra is rvnyben marad, ksbb jra megnyithat.

10.3.3. Paramterezett kurzorokA kurzor dencija paramterkeet tartalmazhat, ezek aktulis rtkeit megnyitskor adjuk t a kurzornak. Ha tbbszr nyitjuk meg, mindig ms-ms paramterrel futtathatjuk.

Deklarci.CURSOR (paramternv1 adattpus1 [, paramternv2 adattpus2, [ ..] ] ) IS lekrdezs;

10.4. Kivtelkezel szegmensKivtelnek neveznk egy azonostval elltott esemnyt, amelynek hatsra a blokk vgrehajtsa megszakad. Ha egy kivtel bekvetkezik, a blokk vgrehajtsa megszakad, s a vezrls a kivtelkezel rszre addik. Ha ott szerepel a kitel, akkor az ottani utastsok hajtdnak vgre, majd a blokkot kvet els vgrehajt utastssal folytatdika program. Ha ott nem szerepel a kivtel, akkor azt a WHEN OTHERS g kezeli le. Ha WHEN OTHERS g sincs, akkor flbeszakad a blokk mkdse s a klivtel tovbbaddik a begyaz blokkra, vagy a krnyezetnek. Ha itt sem kezeljk a kivtelt, futsi idej hibval a futs megszakad.

Kivtelek tpusai. felhasznl ltal denilt rendszer ltal denilt

Felpts.EXCEPTION WHEN kivtel [ OR kivtel .. ] utastsok [ WHEN kivtel [ OR kivtel .. ] utastsok ] ... [ WHEN OTHERS utastsok ]A WHEN OTHERS rsz a fel nem sorolt kivtelek elfogadsra szolgl.

16

10.4.1. Nhny rendszer ltal denilt kivtel DUP_VAL_ON_INDEX INSERT vagy UPDATE utastssal egyedi indexben mr meglv rtk beszrsa. TIMEOUT_ON_RESOURCE idtllps trtnt, mikrben az Oravle egy erforrsra vrakozott. NO_DATA_FOUND SELECT utasts nem ad vissza sort. TOO_MANY_ROWS egy SELECT utasts, amelynek egy sort kellett volna visszaadnia, tbb sort adottvissza.

INVALID_NUMBER karakterlnc sikerteln konvertlsa szmm 10.4.2. Felhasznl ltal denilt kivtelekDeklarcis szakaszban kell denilni.

EXCEPTIONA kivtel RAISE utastssal vlthat ki a vgrehajt szegmensben.

11. Sorszint s utastsszint triggerekCREATE [ OR REPLACE ] TRIGGER { BEFORE | AFTER | INSTEAD OF } { DELETE | INSERT | UPDATE [ OF oszlopok ] } [ OR { DELETE | INSERT | UPDATE [ OF oszlopok ] } ] ON tbla [ REFERENCING [ OLD AS rgi ] [ NEW as j ] [ FOR EACH ROW ] [ WHEN (felttel) ] PL/SQL blokk;

11.1. Korltozsok BEFORE s AFTER triggerek nem hasznlhatak nzettblra. INSTEAD OF trigger csak nzettblra hasznlat.

11.2. FOR EACH ROW utastsrsz Ha megadjuk, akkor a triggerben megadott programblokk a tbla minden egyes sorra lefut, amelyet az aktualizlsi mvelet rint (sor szint trigger). Ha nem adjuk meg, akkor egy aktualizlsi mvelet esetn csak egyszer fut le a trigger (utasts szint trigger).

11.3. REFERENCING utastsrszA mdosts eltti (OLD) s utni (NEW) llapot elnevezsre szolgl.

Csak sor szint triggernl hasznlhat. OLD s NEW az alapterlmezett nevek. REFERENCING csak akkor kell, ha ms nevet akarunk. WHEN rszben OLD s NEW, a PL/SQL blokkban :OLD s :NEW hasznland.

17

Hasznlati szablyok.. INSERT esetn csak NEW UPDATE esetn OLD s NEW DELETE esetn csak OLD Mdostani csak :NEW rtket lehet s csak BEFORE trigger esetn.

11.4. Engedlyezs, letiltsALTER TRIGGER { ENABLE | DISABLE };

12. Az objektum-relcis adatmodell s megvalstsa Oracle-ben: CREATE TYPE, sorobjektumok s oszlopobjektumok, objektumtblk, begyazott tblk, hivatkozsok12.1. Felhasznli tpusokADT = Abstract Data Type = UDT = User Dened Type (Felhasznl ltal denilt j obejtumtpus).

12.1.1. j adattpus deklarlsaCREATE TYPE AS OBJECT ( attribtumok metdusok );

Plda. Olvas (olvszm, nv, lakcm (itszm, helysg, utca, hsz) )CREATE TYPE CmTpus AS OBJECT ( iszm NUMBER, helysg CHAR(20), utca CHAR(20), hzszm NUMBER ); CREATE TABLE Olvas ( olvasszm NUMBER, nv CHAR(30), lakcm CmTpus );

12.1.2. Konstruktor Implicit denildik minden objektumtpushoz Neve megegyezik az objektumtpusval Paramterei megegyeznek az attribtumokkal Visszaadott rtke az j objektum.18

Beszrs konstruktor metdussal.INSERT INTO Olvas VALUES ( 123, 'Nagy Pter', CmTpus(6720, 'Szeged', 'K u.', 3) );

Lekrdezs.SELECT Olv.nv FROM Olvas Olv WHERE Olv.lakcm.helysg = 'Pcs';

Index ltrehozsa.CREATE INDEX HelysgInd ON Olvas (lakcm.helysg)

12.2. ObjektumtblkSorobjektumok (ADT-k) halmaza. Az objektumtblt kezelhetjk egyoszlopos tblaknt, valamint tbboszloposknt, mintha relcis tbla lenne.

12.2.1. LtrehozsCREATE TYPE AS OBJECT (); CREATE TABLE OF ;

Plda.CREATE TYPE OlvasT AS OBJECT ( olvasszm NUMBER, nv CHAR(30), lakcm CHAR(50) ); CREATE TABLE Olvas OF OlvasT;

12.2.2. Hasznlat Beszrs egyoszlopos tblaknt, konstruktorral.INSERT INTO Olvas VALUES ( OlvasT ( 112,'Kiss','8423 Gyr F u.123' ) );

Beszrs tbboszlopos tblaknt.INSERT INTO Olvas VALUES ( 112,'Kiss','8423 Gyr F u.123' );

Lekrdezs egyoszlopos tblaknt.SELECT VALUE(Olv) FROM Olvas Olv WHERE Olv.olvasszm=112;19

Lekrdezs tbboszlopos tblaknt.SELECT nv, lakcm FROM Olvas WHERE olvasszm=112;

12.3. Begyazott tblk (nested tables)Objektumtpus denilsa.CREATE TYPE AS OBJECT ();

Tblatpus denilsa.CREATE TYPE AS TABLE OF ;

Plda.. Olvas (olvszm, nv, Lakcm(irszm, helysg, utca, hsz) )CREATE TYPE CmT AS OBJECT ( irszm NUMBER, helysg CHAR(20), utca CHAR(20), hzszm NUMBER ); CREATE TYPE CmekT AS TABLE OF CmT; CREATE TABLE Olvas ( olvasszm NUMBER, nv CHAR(30), lakcm CmekT ) NESTED TABLE lakcm STORE AS lakcmTbla;

12.3.1. Beszrs konstruktorfggvnyekkelINSERT INTO Olvas VALUES (612, 'Nagy va', CmekT( CmT(6721,'Szeged','Virg u.',10), CmT(7581,'Pcs','K u.',7) ));

12.3.2. j lakcm felvtele TABLE fggvnnyelINSERT INTO TABLE( SELECT lakcm FROM Olvas WHERE olvasszm=612 ) VALUES ( CmT(1111,'Budapest','Hrfa u.',19) );

13. Adattrhzak s kezelsk SQL-benAz adattrhzak olyan adatbzisok, melyeket inkbb lekrdezsek s elemzsek vgrehajtsra terveztek, mint a tranzakcik feldolgozsra. Ez legfkpp tranzakcis adatokbl nyert hisztorikus adatok feldolgozst foglalja magba, de ezek az adatok gyakran szrmazhatnak ms forrsbl. Klnvlasztja az elemzsi munkatemet a tranzakcis munkatemtl, s lehetv teszi a szervezetek szmra, hogy a tbb forrsbl szrmaz adatokat egyestse. A trhz ugyangy kezelend, mint brmely ms adatbzis, de rtelemszeren csak olvashat. 20

Jellemzk. trgyorientlt integrlt nem illkony idben vltoz

Trhz aktualizlsnak mdjai. Idnknt teljes jragenerls.Ez a leggyakrabban hasznlt mdszer. Idignyes, generls alatt a rendszert le kell lltani.

Idnknti frissts.Csak a vltozsokat tltjk fel. Gyorsabb, de jval bonyolultabb eljrs. Igen nagy trhzaknl alkalmazzk.

Azonnali mdosts.lland kommunikcit ignyel a forrsadatbzissal. Csak lassan vltoz forrsokbl feptett, kis mret trhzaknl alkalmazhat.

14. Adatkocka s multidimenzis adatmodell. OLTP, OLAP, ROLAP s MOLAP megkzeltsek14.1. OLTP (OnLine Transaction Processing)Az on-line operatv adatbzisrendszerek f feladata, hogy vgrehajtsk az online tranzakcikat s feldolgozzk a lekrdezseket. Ezek lefedik egy szervezet legtbb naponta hasznlt mvelett. Az OLTP rendszer gyflorientlt, s az gyintzk, kliensek, illetve informcitechnolgiai szakemberek hasznljk a tranzakcik s a lekrdezsek feldolgozsi cljra. Az OLTP rendszer napraksz adatokat kezel, amelyek jellemzen tl rszletesek ahhoz, hogy a dntshozsban knnyen hasznlhatak legyenek. ltalban Egyed-Kapcsolat (ER Entity Realationship) adatmodellt s alkalmazsorientlt adatbzis-szerkezetet hasznl. Fleg a vllalaton vagy rszlegen belli aktulis adatokra koncentrl, trtneti adatokra, vagy ms szervezetek adataira val utals nlkl. Az OLTP rendszerekhez val hozzfrs fleg rvid, egyszer tranzakcik jelentik. Egy ilyen rendszer konkurenciavezrl s helyrellt mechanizmusokat ignyel.

Alkalmazsi pldk. Bank Npessg-nyilvntarts Tanulmnyi rendszer

14.2. OLAP (OnLine Analytical Processing)Az adattrhzak a felhasznlkat, a szakrtket az adatelemzs s dntshozs feladatban segtik. Ezek a rendszerek eltr felhasznli ignyeknek megfelelen sokfle formban kpesek rendszerezni s bemutatni az adatokat. Az OLAP rendszerek piacorientlt, s szakrtk, elemzk, vezetk hasznljk adatelemzs cljbl. Az OLAP rendszer nagy mennyisg trtneti adatot kezel, lehetsget nyjt az sszefoglalsra s az sszestsre, s az informcikat klnbz nomsgi szinteken trolja s kezeli. Ezek a jellemzk megknnytik, hogy az adatokat krltekint dntshozatal sorn hasznljk. Jellemzen csillag vagy a hpehely adatmodellt s tmaorientlt adatbzis-szerkezetet alkalmaz. Gyakran tvel az adatbzissma tbb verzijn is. Olyan informcikkal dolgoznak, amelyek tbb klnbz forrsbl szrmaznak, egyestve az informcikat. Az OLAP adatokat hatalmas mennyisgk miatt gyakran tbb adathordozn troljk. Az OLAP rendszerekhez val hozzfrseket zmben csak olvas (read-only) mveletek jelentik (mivel a legtbb adattrhz inkbb trtneti, mint napraksz informcikat trol), br ezek kztt sok sszetett lekrdezs is elfordulhat. 21

Alkalmazsi pldk. Kereskedelmi hlzatok (mely termk irnt n ill. cskken a kereslet) Hitelkrtya kibocsjt cg (krtyaignylk hitelkpessgt vizsglja) Krhz (betegek adatai alapjn a kezelssel jr kockzatot vizsglja)

Jellegzetessg Orientci Funkci Adatbzissma Adatok Elrs Fkusz Elrt rekordok Felhasznlk szma Adatbzis mrete Teljestmny mrtke

OLTPOperatv feldolgozs Tranzakci Napi mveletek ER alap, alkalmazsorientlt Aaktulis, legfrissebbek Olvass/rs Adatok begyjtse Tzes nagysgrend Ezres nagysgrend GB-os nagysgrend Tranzakcis teljestmny

OLAPInformci feldolgozs Elemzs Hossz tv informcis rendszerek, dntstmogats Csillag/hpehely/galaxis, tmaorientlt Trtneti, folyamatos pontosts Fleg olvass Informci kiadsa Millis nagysgrend Szzas nagysgrend 100GB TB -ig Lekrdezs vgrehajtsnak hatkonysga, vlaszid

14.3. ROLAP (Relational OnLine Analytical Processing)ROLAP (Relational OLAP) architektra esetn adatainkat relcis adatbzisban troljuk. A ROLAP kockt nem egy tbbdimenzis tmb valstja meg , mint MOLAP esetn, hanem elre meghatrozott smk alapjn sszekapcsold relcis tblk (dimenzi- s tnytblk) egyttese alkotja. A tny- illetve dimenzitblk hromfle struktrba rendezdhetnek, azaz egy ROLAP rendszer felptst tekintve hromfle lehet:

csillag (Star)Egy tnytbla van s ahhoz kzvetlenl kapcsoldnak a dimenzitblk.

hpehely (Snowake)egy tnytbla van, de van olyan dimenzitbla, ami egy msik dimenzitblhoz kapcsoldik.

csillagkp (Galaxy)tbb tnytbla van s a dimenzitblk egyszerre tbb tnytblhoz tnytblhoz kapcsoldhatnak. A ROLAP architektrban az adatok feldolgozshoz s lekrdezshez hagyomnyos relcis adatbzis technikkat hasznlhatunk (mint pldul indexelsek s sszekapcsolsok). A ROLAP hatkony lehet nagy adatmennyisgek esetn, hiszen a tblknak csak azokat az adatkocka cellkat kell tartalmazniuk, melyek tnylegesen tartalmaznak adatot. gy a trkapacits kihasznltsga optimlisabb, mint a MOLAP esetn.

14.4. MOLAP (Multidimensional OnLine Analytical Processing)MOLAP architektra esetn adatainkat tbbdimenzis adatbzisban troljuk. Az adatok ilyenkor specilis dimenzis struktrban troldnak, mely arra irnyul, hogy a lekrdezseket minl gyorsabban vgre tudjuk hajtani. A MOLAP architektrban egy olyan adatkocka szerkezeteket kezelnk, melyet gy kpzelhetnk el, mint egy tbbdimenzis tmbt. Ez a szerkezeti megolds sokszor gyorsabb, mint ms megkzeltsek, mert lehetsg van arra, hogy kzvetlen indexelssel rjk el az adatkocka struktrban lv adatokat. Egy MOLAP architektrban a dimenzik hierarchiba rendezst gy lehet megoldani, hogy a dimenzielemek kz felvesszk a hierarchia fentebbi csompontjait s sszestett adatokat rendelnk hozzjuk. A specilis indexelsnek ksznheten az sszetett kalkulcik esetn is gyorsan megkaphatjuk egy lekrdezs eredmnyt. Viszont, ha hatalmas adatmennyisggel dolgozunk, s rengeteg dimenzit hasznlunk, akkor a MOLAP megoldsok nem mindig a leghatkonyabbak. A dimenzik szmnak nagymrtk nvekedsvel sok olyan cella rtke res lehet, melyek tbb specikus attribtum-kombincihoz tartoz rtket reprezentlnnak. Ez nha elfogadhatatlan szintig megnvelheti a trhely ignyeket, s a teljestmnyt is visszaveti. 22

Adatbzis tpusa ptelemek Adatok szemcszettsge Trhelyigny Mveletek

ROLAP Relcis Tnytblk, dimenzitblk Jellemzen aggreglt, de lehet elemi is Kisebb SQL mveletek: csoportfggvnyek, analitikus fggvnyek

MOLAP Multidimenzionlis Adatkockk, dimenzik Jellemzen csak aggreglt Nagyobb Lefrs, felgrgets, szeletels, rszkocka kpzse

14.5. AdatkockaAz adattrhzak s az OLAP eszkzk tbbdimenzis adatmodellt vesznek alapul, amely az adatot adatkockknak tekinti. Az adatkocka lehetv teszi, hogy az adatot tbb dimenziban modellezzk, s tbb dimenziban tekintsnk r. Habr a kockra ltalban, mint hromdimenzis geometriai struktrra szoks tekinteni, az adattrhzak esetben az adatkocka n-dimenzis lehet, gy nem szortjk az adatokat hrom dimenziba. Az adatkockt dimenzik s tnyek deniljk. A tnyek azokat az rtkeket hatrozzk meg, amelyeket az elemzs szempontjbl az adatkockk adatcelliban trolunk. Ezeket a tnyeket tmaorientltan troljuk az adatkockkban, melyek ltalban valamilyen kzponti tma kr szervezdnek. A dimenzik azokat a nzpontokat reprezentljk, melyek szerint adatainkat elemezni szeretnnk. A dimenzikat feloszthatjuk dimenzielemekre. Pldul a cm dimenzit fel tudjuk bontani Hajdszoboszl, Debrecen, Szombathely, s Srvr dimenzielemekre. Tovbb ltre tudunk hozni hierarchikat, melyek a dimenzielemek kztti kapcsolatokat rjk le. Ez azt jelenti, hogy a dimenzikhoz klnbz dimenzielem halmazokat tudunk rendelni, mely halmazok egymssal hierarchikus viszonyban vannak. Teht egy dimenzielemet egy msik dimenzielem halmazzal tovbb tudunk bontani, s ez ltal klnbz rszletessg lekrdezseket hajthatunk vgre. gy pldul a cm dimenzit a vros alapjn trtn dimenzielemeken kvl tekinthetjk a megyk alapjn is (Hajd-Bihar megye, Vas megye). A dimenzielemek rendelkezhetnek tulajdonsgokkal, amik olyan plusz informcikat hordoz adatok, melyek nem minslnek csoportostsi szempontnak az elemzseket tekintve. Ilyen tulajdonsg lehet pldul egy termk csomagolsa vagy szne. A lekrdezsek sorn lehetsgnk van arra, hogy bizonyos dimenzielemek kzl csak azokat vlasszuk ki, melyek megfelelnek egy adott tulajdonsgnak.

23

15. Drill-down (mgyre s), roll-up (felgrget), slicing (szeletel) s dicing (kockz) lekrdezsek ROLAP modellben15.1. Slicing (szeletels)A szeletels mvelet egy kivlasztst hajt vgre az adott kocka egyik dimenzijn, s ennek eredmnye egy alkocka lesz.

15.1.1. Az adatkockbl egy szelet kivgsa s sszegzse Szeletels id szerint..SELECT SUM(darab) FROM Elads WHERE dtum BETWEEN 06.01.01 AND 06.04.30;

Szeletels hely szerint..SELECT SUM(darab) FROM Elads, Hely WHERE Elads.helyId = Hely.helyID AND vros ='Budapest';

15.1.2. Dicing (kockzs)A kockzs mvelet kett vagy tbb dimenzin hajt vgre kivlasztst, amelynek az eredmnye szintn egy alkocka.

sszests venknt s vrosonknt.SELECT YEAR(dtum), vros, SUM(darab) FROM Elads, Hely WHERE Elads.helyID = Hely.helyID GROUP BY YEAR(dtum), vros;24

SELECT v, vros, SUM(darab) FROM Elads, Id, Hely WHERE Elads.dtum = Id.dtum AND Elads.helyID = Hely.helyID GROUP BY v, vros;

15.2. Drill-down (mlyre ss)A lefrs a felgrgets ellenkezje: a kevsb rszletes adatoktl a mg rszletesebb adatokig halad. A lefrst vagy egy adott dimenzi fogalmi hierarchijn val lefel haladssal, vagy j dimenzik bevezetsvel hajtjuk vgre. Pldul az id dimenzin a negyedv szintjrl a rszletesebb hnap szintre lphetnk. Az eredmnyl kapott adatkocka az sszes eladst negyedvek helyett hnapokra bontja le. Mivel a lefrs tbb rszletet ad hozz az adatokhoz, ez gy is elrhet, ha j dimenzikat vesznk fel az adatkockba.

sszests orszgonknt.SELECT orszg, SUM(darab) FROM Elads, Hely WHERE Elads.helyID = Hely.helyID GROUP BY orszg;

sszests vrosonknt.SELECT vros, SUM(darab) FROM Elads, Hely WHERE Elads.helyID = Hely.helyID AND orszg = 'Ausztria' GROUP BY vros;

15.2.1. Drill-down id szerint sszests venknt.SELECT v, SUM(darab) FROM Elads, Id WHERE Elads.dtum = Id.dtum GROUP BY v;

25

sszests hnaponknt.SELECT hnap, SUM(darab) FROM Elads, Id WHERE Elads.dtum = Id.dtum AND v = 2005 GROUP BY hnap

15.3. Roll-upA felgrgets mvelet az sszestst egy adott dimenzi fogalmi hierarchijn val felfel haladssal vagy dimenzicskkentssel hajtja vgre. Pldul a cm dimenzihoz hozz tartozhat az (utca, vros, megye, orszg) hierarchia. Ezen a hierarchin az utctl az orszg fel haladva sszestst vgezhetnk. Amikor a felgrgetst dimenzicskkenssel hajtjuk vgre, akkor egy vagy tbb dimenzit tvoltunk el az adatkockbl. Ha pldul az rtkestsi adatokat csak cm s rucikk dimenzik szerint szeretnnk vizsglni, akkor felgrgetssel eltvolthatjuk az id dimenzit.

sszests termkenknt.SELECT termkID, SUM(darab) FROM Elads GROUP BY termkID

26