adatbázis rendszerek ii

38
Adatbázis rendszerek II Aktív adatbázisok

Upload: tahir

Post on 24-Feb-2016

33 views

Category:

Documents


5 download

DESCRIPTION

Adatbázis rendszerek II. Aktív adatbázisok. TPC-A részlet. ÜGYFÉLSZÁMLA. ukod. név. részleg. összeg. BANKRÉSZLEG. bkod. cím. r_összeg. AUTOMATA. cím. a_összeg. NAPLÓ. időpont. ukod. d_összeg. mozgás. Működési feltételek: - minden objektum egyértelműen azonosítható legyen - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Adatbázis rendszerek II

Adatbázis rendszerek II

Aktív adatbázisok

Page 2: Adatbázis rendszerek II

ÜGYFÉLSZÁMLA

ukod név részleg összeg

BANKRÉSZLEG

bkod cím r_összeg

NAPLÓ

időpont ukod d_összeg mozgás

TPC-A részlet

cím a_összeg

AUTOMATA

Page 3: Adatbázis rendszerek II

Működési feltételek:

- minden objektum egyértelműen azonosítható legyen- r_összeg = ügyfel in részleg összeg- a legkisebb felvehető összeg 100 - minden mozgás jelenjen meg a naplóban- objektumok kapcsolata ábrázolható legyen- minden tranzakció fusson le 2 sec-on belül- a napló adatok nem törölhetők

Mit hogyan valósíthatunk meg?

Page 4: Adatbázis rendszerek II

DBMS alkalmazás

Adat tárolásStatikus integritásifeltételek

felhasználóikörnyezet

Működési logikaDinamikus int.feltételek

Működési szabályok

Cél : a feltételek mind nagyobb hányadát a DBMS-be integrálni

DBMS alkalmazás felhasználóikörnyezet

Page 5: Adatbázis rendszerek II

KL

DB

passzív DBMS aktív DBMS

alkalmazások

több feladat

+

AktívDBMSmodul

Számos alkalmazásnál előfordulnak ismétlődő, jól definiálhatóesetekben bekövetkező események

Page 6: Adatbázis rendszerek II

Aktív elemek az adatbázis kezelőknél

KL

Szabály: a DBMS aktív viselkedésének megadási módja

kiváltó esemény

szabály

válasz tevékenység

feltétel

UPDATE dolgozo SET fiz = 34;

fiz > 30

UPDATE dolgozo SET kat = 2;

Page 7: Adatbázis rendszerek II

Active Database Management Manifesto (1996)

Re-active vagy pre-active működés?

ECA működési modell (Event-Condition-Action)

Működési lépések: események detektálásaszabály aktiválások elindítása feltételek kiértékeléseválaszok aktiválásaválaszok ütemezéseválaszok végrehajtása

Det. Sign. Trig. Eval. Sche. Exec.

Page 8: Adatbázis rendszerek II

Aktív elemek az adatbázis kezelőknél

KL

Aktív elemek megvalósítása

DBMS

DBszabályok

szabálydefiníciósnyelv

szabály vezérlő

szabály végrehajtó

SQL motor

SQL

Page 9: Adatbázis rendszerek II

Active Database Management Manifesto

Kritériumok- A normál DBMS tulajdonságokat meg kell őrizni- ECA elven működjön, de lehet EA és CA típusú is- különböző eseménytípusokat lehessen definiálni

- elemi vagy összetett- időbeliség jelzése

- feltételeket lehessen definiálni- választevékenységeket lehessen definiálni- szabály menedzselő modult tartalmazzon

(változások, felfüggesztések,lekérdezések,...)- események automatikus detektálása- különböző szintekhez köthetőek legyenek az események

(set vagy instance)

Page 10: Adatbázis rendszerek II

Active Database Management Manifesto

Kritériumok (folyt.)- Különböző E-C-A kapcsolódási módokat támogasson

(közvetlen, késleltetett, szétcsatolt) - Összetett események kezelése (net-effect számítás)- Esemény naplózás biztosítása- Konfliktus kezelő mechanizmussal rendelkezzen (prioritás,állapot,..)- Rendelkezzen programozási környezettel

(rule browser, designer, analyser, debugger,..)- Legyen hangolható, optimalizálható

Page 11: Adatbázis rendszerek II

KL

Szabályok feldolgozása

DBMSaktiv DBmodul SQL ….

különálló modulalkalmazásSQL ….

DBMSaktiv DBmodul

DBMS-be építettalkalmazásSQL ….

DBMSaktiv DBmodul

SQL ….alkalmazásba épített

alkalmazás

Page 12: Adatbázis rendszerek II

KL

Szabályok feldolgozása

Aktív DB modul struktúrája

értelmező

szabályvezérlő

aktív SQL

feltételellenőrző

kódgeneráló

parancsvégrehajtó

szabálykatalógus

SQL

Page 13: Adatbázis rendszerek II

ON esemény IF feltétel DO tevékenység

ECA modell

Esemény paraméterei

- esemény forrása- szemcsézettség- típus- összetétel képzési operátorok- feldolgozási, ütemezési elv- jelleg

a(x1,x2,…)

Page 14: Adatbázis rendszerek II

KL

- adatkezelő utasítások - adatlekérdező utasítások - időfigyelés - alkalmazás specifikus - tranzakció kezelés - kivételek

UPDATE dolgozo SET ...

SELECT fiz FROM ...

Time() > {12:00}

messagebox (23)

Esemény forrása:

ROLLBACK

raise(51)

Esemény szemcsézettsége

- egyed, rekord szintű- halmaz, tábla szintű

UPDATE dolgozo SET ..WHERE fiz > 100000

DELETE FROM dolgozo

Page 15: Adatbázis rendszerek II

Összetett események, operátorok:

first, reduction, negation, last, ..disjunction, conjuction, sequence, ..after, before, between, ..

Esemény típusa

- elemi- összetett

UPDATE dolgozo SET ..WHERE fiz > 100000

Sequence( DELETE FROM dolgozo, INSERT INTO nyugdijas)

Esemény jellege

- kötelező- opcionális- nem megengedett

ECA

ECA vagy CA

CA

Page 16: Adatbázis rendszerek II

Feldolgozás ütemezése

- legaktuálisabb- időbeli sorrend- folytonos- egyesítő

(e1’,e2)

sequence (E1, E2)e1 – e1’ – e2

(e1,e2)

(e1,e2) (e1’,e2)

((e1,e1’),e2)

a(x1,x2,…)kb. 300 esemény mód

Page 17: Adatbázis rendszerek II

ON esemény IF feltétel DO tevékenység

ECA modell

Feltétel paraméterei

- jellege- kiértékelési mód

Tevékenység paraméterei

- végrehajtási mód- szemcsézettség- összhatás- ciklikusság- ütemezés- hibakezelés

Page 18: Adatbázis rendszerek II

Feltétel jellege

- opcionális- nem megengedett

ECA vagy EA

EA

Feltétel kiértékelési mód

- közvetlen- tranzakción belül késleltetett- más tranzakcióba elkülönített

e1 – c1- e2 – c2 - co

e1 – e2- … - c1 – c2 - co

e1 – e2- co -… - e3 – c1 - co

Page 19: Adatbázis rendszerek II

- adatkezelő utasítások - adatlekérdező utasítások - alkalmazás specifikus - tranzakció kezelés

UPDATE dolgozo SET ...

SELECT fiz FROM ...

messagebox (23)

Válasz célhelye:

ROLLBACK

- közvetlen- tranzakción belül késleltetett- más tranzakcióba elkülönített- helyettesítő

Válasz csatlakozási módja:e1 – a1- e2 – a2 - co

e1 – e2- … - a1 – a2 - co

e1 – e2- co -… - e3 – a1 - co

a

Page 20: Adatbázis rendszerek II

- rekord (1:1) - halmaz (N:1)

e1 – a1- e2 – a2 -Válasz szemcsézettsége:

e1 – e1- e3 – a1 -

- egyedi - összevont

e1 – a1- e2 – a2 -Válasz összhatása:

(e1 – e1- e3)= e4 – a4 -

- iteratív - rekurzív

e1 – a1- e2 – a2 -Válasz egymásrahatása:

e1 – a1- e2 – a 2 – a1 -

Page 21: Adatbázis rendszerek II

- prioritás - időbélyeg - véletlen

e1 – a1- e2 – a2 -Válaszok ütemezése:

(e1 – e1- e3)= e4 – a4 -

CA modell

+: állapot orientált megközelítés kevesebb programozói feladat

-: bonyolultabb kezelés költségesebb

Page 22: Adatbázis rendszerek II

Aktív elemek az adatbázis kezelőknél

KL

Választevékenység megadása: - SQL- beágyazott SQL

DBMS

Tárolt eljárásokSzabályok

SQL +procedurális elemek

PL/SQL

- korlátozott nyelv - szoros kapcsolat a DB-vel

saját programozási nyelv

Page 23: Adatbázis rendszerek II

PL/SQL nyelv

KL

A PL/SQL végrehajtási egysége a blokk

blokkEND;

DECLAREdeklarációs rész

BEGINműveleti, törzs rész

EXCEPTIONhibakezelő rész

változók megadása

vezérlési és SQL utasítások

fellépő hibáklekezelése

nincs név, más objektumokba foglalt

Page 24: Adatbázis rendszerek II

KLKL

PL/SQL nyelv

DECLARE nev CHAR(10); kor NUMBER(5,1) := 12; tip CONSTANT CHAR(2) := ‘AL’;

ig EMBER.IGSZ%TYPE; auto AUTO%ROWTYPE;

A deklarációs rész felépítése

változó neve

adattípus

kezdőérték

konstans érték

DB tábla megadottmezőjének típusát veszi fel

rekord típus, DB táblarekordtípusát veszi fel

Page 25: Adatbázis rendszerek II

KLKL

PL/SQL nyelv

BEGIN nev := ‘mars’; IF x > 4 THEN

.. ELSE

.. END IF;

UPDATE auto SET ar = x WHERE …;

SELECT ar,ig,.. INTO x, y.. FROM ..

A törzs rész felépítése értékadás

feltételes végrehajtás

gazdanyelvi változó

SQL parancsok

Egy rekord lekérdezése gazdanyelviváltozóba

Page 26: Adatbázis rendszerek II

KLKL

PL/SQL nyelv

BEGIN LOOP ..

EXIT [WHEN felt]; END LOOP; WHILE x < 2 LOOP

.. END LOOP;

FOR x IN [REVERSE] … LOOP..

END LOOP;

A törzs rész felépítése alapciklus

kilépés [feltétel esetén]

feltételes ciklus

léptetéses ciklusEgy halmaz elemeire

Page 27: Adatbázis rendszerek II

KLKL

PL/SQL nyelvKurzor szerkezet, több rekord beolvasása a DB-ből

DBMSPL/SQL

blokkkurzor

DECLARE CURSOR cnev(param) IS SELECT ..;BEGIN OPEN cnev(aparam); LOOP FETCH cnev INTO vlista; EXIT WHEN cnev%NOTFOUND; END LOOP; CLOSE cnev;

deklaráció,paraméterrel

nyitásrekord olvasás

kilépés a ciklusbóllezárás

Page 28: Adatbázis rendszerek II

KLKL

PL/SQL nyelv

Hibakezelés

EXCEPTIONWHEN hiba THEN …..

WHEN OTHERS THEN ….

hibakezelő rutin

hiba azonosítása

egyéb hibák kezelése

BEGIN RAISE hnev ;

DECLARE hnev EXCEPTION;

saját hibakód deklarálás

hiba explicit generálása

Page 29: Adatbázis rendszerek II

KL

Triggerek

DB műveletDMLDQL

trigger

DB műveletPL/SQL blokk

feltétel

UPDATE ….

BEFORE

AFTER

BEFORE ROW

AFTER ROW

Page 30: Adatbázis rendszerek II

KL

CREATE TRIGGER tnev AFTER | BEFORE Insert or Update orDelete ON tábla FOR EACH ROW WHEN feltétel BEGIN PL/SQL END;

Triggerek

:OLD :NEW

ROW szintű rekordnál el lehet érni az érintett rekordot

CREATE TRIGGER t1 AFTER UPDATE ON d FOR EACH ROWBEGIN :NEW.mezo = :OLD.mezo;END;

Page 31: Adatbázis rendszerek II

KL

Tárolt eljárás

CREATE PROCEDURE pnev (p1 IN | OUT tipus,…) ISBEGIN ….END;CREATE FUNCTION pnev (p1 IN | OUT tipus,…) RETURN tip ISBEGIN ….END;

PL/SQL

DB

Page 32: Adatbázis rendszerek II

KL

JOB: időponthoz kötött indulású tárolt eljárások

Munkaköteg

PL/SQL

DB12

6

39

DBMS_JOB.SUBMIT átadás a várakozósorbaDBMS_JOB.RUN futtatásDBMS_JOB.NEXT_DATE következő indulás ideje…

Page 33: Adatbázis rendszerek II

KL

ALERT : alkalmazásokhoz kötött szinkronizációs eszköz

Riasztás

DBMS

alkalmazás1 alkalmazás2feliratkozásvárakozás

riasztás értesülés,tovább futás

DBMS_ALERT.REGISTERDBMS_ALERT.SIGNALDBMS_ALERT.WAITONE…

Page 34: Adatbázis rendszerek II

KL

Szabályok feldolgozása

Kijelölési háló: a szabályok által érintett objektumok dinamikusnyilvántartási gráfja

Elemei: gyökér csomópont select csomópont alfa-csomópont P csomópont

szelekció egy táblára

eredmény

join eredményA változás hatását

vezeti végig a gráfon

Page 35: Adatbázis rendszerek II

KL

Szabályok feldolgozása

dolgozokor > 30

szelektáltdolgozók

szelektáltüzemek

uzem.kod =dolgozo.uzem

uzemlsz < 20

gyarvaros = Dorog

when dogozo.kor > 30 anduzem.lsz < 20 and gyar.varos = Dorog anduzem.kod = dolgozo.uzem andgyar.kod = uzem.gyar

szelektáltgyárak

gyar.kod =uzem.gyar

Page 36: Adatbázis rendszerek II

KL

Szabályok feldolgozása

szelektáltdolgozók

szelektáltüzemek

uzem.kod =dolgozo.uzem

uzemlsz < 20

gyarvaros = Dorog

INSERT INTO DOLGOZOVALUES (…);

szelektáltgyárak

gyar.kod =uzem.gyar

dolgozokor > 30

+

++

Aktualizálás algoritmusa

Page 37: Adatbázis rendszerek II

KL

Szabályok feldolgozása

Parancsátírási módszer: a bejövő SQL parancs módosítása az aktív szabályoknak megfelelően

SQL ….aktiv DB

modulkód

generáló

szabálykatalógus

módosított SQL ….

feldolgozás lépései:- SQL felbontása érintett és nem érintett részek uniójára- új kifejezés meghatározása- az érintett rész helyettesítése a join művelettel

Page 38: Adatbázis rendszerek II

KL

Szabályok feldolgozása

ON SELECT fiz FROMDolgozo WHERE nev =P

DO INSTEADSELECT 3*fiz FROM

Dolgozo WHERE nev=L

aktiv DBmodul

SELECT fiz, nev FROM dolgozo WHERE kor < 23

SELECT fiz,nev FROM dolgozo WHERE kor < 23 AND nev<>PUNIONSELECT fiz,nev FROM dolgozo WHERE kor < 23 AND nev=P

SELECT ….. UNIONSELECT 3*b.fiz,a.nev FROM dolgozo a, dolgozo b WHERE a.kor < 23 AND a.nev=P AND b.nev = L

A join több problémát is jelenthet (NULL, többszörözés,..)