1 / 38

Adatbázis rendszerek II

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

tahir
Download Presentation

Adatbázis rendszerek II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatbázis rendszerek II Aktív adatbázisok

  2. 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

  3. 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?

  4. DBMS alkalmazás felhasználói környezet Működési logika Dinamikus int. feltételek Működési szabályok Adat tárolás Statikus integritási feltételek Cél : a feltételek mind nagyobb hányadát a DBMS-be integrálni DBMS alkalmazás felhasználói környezet

  5. Számos alkalmazásnál előfordulnak ismétlődő, jól definiálható esetekben bekövetkező események alkalmazások több feladat Aktív DBMS modul + passzív DBMS DB aktív DBMS KL

  6. Aktív elemek az adatbázis kezelőknél Szabály: a DBMS aktív viselkedésének megadási módja szabály kiváltó esemény válasz tevékenység feltétel UPDATE dolgozo SET fiz = 34; UPDATE dolgozo SET kat = 2; fiz > 30 KL

  7. 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ása szabály aktiválások elindítása feltételek kiértékelése válaszok aktiválása válaszok ütemezése válaszok végrehajtása Det. Sign. Trig. Eval. Sche. Exec.

  8. Aktív elemek az adatbázis kezelőknél Aktív elemek megvalósítása szabály vezérlő DBMS szabály definíciós nyelv szabály végrehajtó SQL DB SQL motor szabályok KL

  9. 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)

  10. 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ó

  11. Szabályok feldolgozása alkalmazás aktiv DB modul DBMS különálló modul SQL …. SQL …. alkalmazás DBMS aktiv DB modul DBMS-be épített SQL …. DBMS alkalmazás alkalmazásba épített aktiv DB modul SQL …. KL

  12. Szabályok feldolgozása Aktív DB modul struktúrája szabály vezérlő SQL értelmező feltétel ellenőrző kód generáló parancs végrehajtó aktív SQL szabály katalógus KL

  13. ECA modell ON esemény IF feltétel DO tevékenység 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,…)

  14. Esemény forrása: UPDATE dolgozo SET ... - adatkezelő utasítások - adatlekérdező utasítások - időfigyelés - alkalmazás specifikus - tranzakció kezelés - kivételek SELECT fiz FROM ... Time() > {12:00} messagebox (23) ROLLBACK raise(51) Esemény szemcsézettsége UPDATE dolgozo SET .. WHERE fiz > 100000 • egyed, rekord szintű • halmaz, tábla szintű DELETE FROM dolgozo KL

  15. Esemény típusa UPDATE dolgozo SET .. WHERE fiz > 100000 • elemi • összetett Sequence( DELETE FROM dolgozo, INSERT INTO nyugdijas ) Összetett események, operátorok: first, reduction, negation, last, .. disjunction, conjuction, sequence, .. after, before, between, .. Esemény jellege ECA • kötelező • opcionális • - nem megengedett ECA vagy CA CA

  16. Feldolgozás ütemezése sequence (E1, E2) e1 – e1’ – e2 • legaktuálisabb • időbeli sorrend • folytonos • - egyesítő (e1’,e2) (e1,e2) (e1,e2) (e1’,e2) ((e1,e1’),e2) a(x1,x2,…) kb. 300 esemény mód

  17. ECA modell ON esemény IF feltétel DO tevékenység Feltétel paraméterei Tevékenység paraméterei • jellege • kiértékelési mód • végrehajtási mód • szemcsézettség • összhatás • ciklikusság • ütemezés • hibakezelés

  18. Feltétel jellege ECA vagy EA • opcionális • - nem megengedett EA Feltétel kiértékelési mód e1 – c1- e2 – c2 - co • közvetlen • tranzakción belül késleltetett • más tranzakcióba elkülönített e1 – e2- … - c1 – c2 - co e1 – e2- co -… - e3 – c1 - co

  19. Válasz célhelye: UPDATE dolgozo SET ... - adatkezelő utasítások - adatlekérdező utasítások - alkalmazás specifikus - tranzakció kezelés SELECT fiz FROM ... messagebox (23) ROLLBACK Válasz csatlakozási módja: e1 – a1- e2 – a2 - co • - közvetlen • tranzakción belül késleltetett • más tranzakcióba elkülönített • helyettesítő e1 – e2- … - a1 – a2 - co e1 – e2- co -… - e3 – a1 - co a

  20. Válasz szemcsézettsége: e1 – a1- e2 – a2 - - rekord (1:1) - halmaz (N:1) e1 – e1- e3 – a1 - Válasz összhatása: e1 – a1- e2 – a2 - - egyedi - összevont (e1 – e1- e3)= e4 – a4 - Válasz egymásrahatása: e1 – a1- e2 – a2 - - iteratív - rekurzív e1 – a1- e2 – a 2 – a1 -

  21. Válaszok ütemezése: e1 – a1- e2 – a2 - - prioritás - időbélyeg - véletlen (e1 – e1- e3)= e4 – a4 - CA modell +: állapot orientált megközelítés kevesebb programozói feladat -: bonyolultabb kezelés költségesebb

  22. Aktív elemek az adatbázis kezelőknél Választevékenység megadása: - SQL - beágyazott SQL DBMS saját programozási nyelv SQL + procedurális elemek PL/SQL Tárolt eljárások Szabályok - korlátozott nyelv - szoros kapcsolat a DB-vel KL

  23. PL/SQL nyelv A PL/SQL végrehajtási egysége a blokk nincs név, más objektumokba foglalt DECLARE deklarációs rész változók megadása BEGIN műveleti, törzs rész vezérlési és SQL utasítások EXCEPTION hibakezelő rész fellépő hibák lekezelése END; blokk KL

  24. PL/SQL nyelv A deklarációs rész felépítése adattípus kezdőérték DECLARE nev CHAR(10); kor NUMBER(5,1) := 12; tip CONSTANT CHAR(2) := ‘AL’; ig EMBER.IGSZ%TYPE; auto AUTO%ROWTYPE; konstans érték DB tábla megadott mezőjének típusát veszi fel rekord típus, DB tábla rekordtípusát veszi fel változó neve KL KL

  25. PL/SQL nyelv értékadás A törzs rész felépítése BEGIN nev := ‘mars’; IF x > 4 THEN .. ELSE .. END IF; UPDATE auto SET ar = x WHERE …; SELECT ar,ig,.. INTO x, y.. FROM .. feltételes végrehajtás SQL parancsok gazdanyelvi változó Egy rekord lekérdezése gazdanyelvi változóba KL KL

  26. PL/SQL nyelv alapciklus A törzs rész felépítése BEGIN LOOP .. EXIT [WHEN felt]; END LOOP; WHILE x < 2 LOOP .. END LOOP; FOR x IN [REVERSE] … LOOP .. END LOOP; kilépés [feltétel esetén] feltételes ciklus léptetéses ciklus Egy halmaz elemeire KL KL

  27. PL/SQL nyelv Kurzor szerkezet, több rekord beolvasása a DB-ből 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ás rekord olvasás kilépés a ciklusból lezárás DBMS PL/SQL blokk kurzor KL KL

  28. PL/SQL nyelv Hibakezelés saját hibakód deklarálás DECLARE hnev EXCEPTION; hiba explicit generálása BEGIN RAISE hnev ; EXCEPTION WHEN hiba THEN ….. WHEN OTHERS THEN …. hiba azonosítása hibakezelő rutin egyéb hibák kezelése KL KL

  29. Triggerek trigger DB művelet DML DQL DB művelet PL/SQL blokk feltétel BEFORE ROW BEFORE AFTER ROW UPDATE …. AFTER KL

  30. Triggerek CREATE TRIGGER tnev AFTER | BEFORE Insert or Update or Delete ON tábla FOR EACH ROW WHEN feltétel BEGIN PL/SQL END; :OLD :NEW ROW szintű rekordnál el lehet érni az érintett rekordot CREATE TRIGGER t1 AFTER UPDATE ON d FOR EACH ROW BEGIN :NEW.mezo = :OLD.mezo; END; KL

  31. Tárolt eljárás CREATE PROCEDURE pnev (p1 IN | OUT tipus,…) IS BEGIN …. END; CREATE FUNCTION pnev (p1 IN | OUT tipus,…) RETURN tip IS BEGIN …. END; DB PL/SQL KL

  32. Munkaköteg JOB: időponthoz kötött indulású tárolt eljárások DB 12 PL/SQL 9 3 6 DBMS_JOB.SUBMIT átadás a várakozósorba DBMS_JOB.RUN futtatás DBMS_JOB.NEXT_DATE következő indulás ideje … KL

  33. Riasztás ALERT : alkalmazásokhoz kötött szinkronizációs eszköz alkalmazás1 alkalmazás2 feliratkozás várakozás riasztás értesülés, tovább futás DBMS DBMS_ALERT.REGISTER DBMS_ALERT.SIGNAL DBMS_ALERT.WAITONE … KL

  34. Szabályok feldolgozása Kijelölési háló: a szabályok által érintett objektumok dinamikus nyilvá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ény A változás hatását vezeti végig a gráfon KL

  35. Szabályok feldolgozása when dogozo.kor > 30 and uzem.lsz < 20 and gyar.varos = Dorog and uzem.kod = dolgozo.uzem and gyar.kod = uzem.gyar dolgozo kor > 30 uzem lsz < 20 gyar varos = Dorog szelektált dolgozók szelektált üzemek szelektált gyárak uzem.kod = dolgozo.uzem gyar.kod = uzem.gyar KL

  36. Szabályok feldolgozása Aktualizálás algoritmusa INSERT INTO DOLGOZO VALUES (…); dolgozo kor > 30 uzem lsz < 20 gyar varos = Dorog + szelektált dolgozók szelektált üzemek szelektált gyárak + + uzem.kod = dolgozo.uzem gyar.kod = uzem.gyar KL

  37. 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 szabály katalógus aktiv DB modul kód generáló SQL …. 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 KL

  38. Szabályok feldolgozása ON SELECT fiz FROM Dolgozo WHERE nev =P DO INSTEAD SELECT 3*fiz FROM Dolgozo WHERE nev=L SELECT fiz, nev FROM dolgozo WHERE kor < 23 aktiv DB modul SELECT fiz,nev FROM dolgozo WHERE kor < 23 AND nev<>P UNION SELECT fiz,nev FROM dolgozo WHERE kor < 23 AND nev=P SELECT ….. UNION SELECT 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,..) KL

More Related