Adatb zis rendszerek ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 38

Adatbázis rendszerek II PowerPoint PPT Presentation


  • 45 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Adatb zis rendszerek ii

Adatbázis rendszerek II

Aktív adatbázisok


Adatb zis rendszerek ii

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


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?


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


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


Adatb zis rendszerek ii

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


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)


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ó


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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,…)


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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 -


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

PL/SQL nyelv

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

adattípus

kezdőérték

DECLARE

nevCHAR(10);

kor NUMBER(5,1) := 12;

tip CONSTANT CHAR(2) := ‘AL’;

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

Triggerek

trigger

DB művelet

DML

DQL

DB művelet

PL/SQL blokk

feltétel

BEFORE ROW

BEFORE

AFTER ROW

UPDATE ….

AFTER

KL


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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.RUNfuttatás

DBMS_JOB.NEXT_DATEkövetkező indulás ideje

KL


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


Adatb zis rendszerek ii

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


  • Login