Adatbázisok elmélete 11. előadás

Hasonló dokumentumok
Adatbázisok elmélete 12. előadás

Csima Judit október 24.

SQL DDL-2 (aktív elemek) triggerek

Adatbázisok elmélete 10. előadás

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete

SQL DDL-1: táblák és megszorítások

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

6. Gyakorlat. Relációs adatbázis normalizálása

Adatbázis tartalmának módosítása

Az SQL adatbázisnyelv: DML

Csima Judit november 15.

Relációsémák létrehozása SQL nyelvben

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Bevezetés: az SQL-be

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Csima Judit BME, VIK, november 9. és 16.

Adatbázisok elmélete 9. előadás

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Lekérdez nyelvek típusai, általános jellemz ik. Adatbázisok Az SQL nyelv. Példák relációs adatbáziskezel nyelvekre. A példákban használt relációs séma

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázisok elmélete 8. előadás

Nézetek és indexek. 8. fejezet Nézettáblák

Relációs adatbázisok tervezése ---1

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatmodellezés, alapfogalmak. Vassányi István

Adatbázisok elmélete 12. előadás

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

8.Előadás Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbáziskezelés. Indexek, normalizálás NZS 1

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázis rendszerek SQL nyomkövetés

Adatmodellezés. 1. Fogalmi modell

Tranzakciókezelés PL/SQL-ben


Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Adatbázis használat I. 5. gyakorlat

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

Adattípusok. Max. 2GByte

Függőségek felismerése és attribútum halmazok lezártja

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adattípusok. Max. 2GByte

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF. Adatbázisrendszerek előadás november 7.

Készítette: Szabóné Nacsa Rozália

8. Előadás tartalma. Funkcionális függőségek

Adatbázisok gyakorlat

Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Adatbázis-kezelés. Harmadik előadás

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

7. fejezet Kulcsok és idegen kulcsok

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Adatbázis Rendszerek II. 8. Gyakorló környezet

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

BEVEZETÉS Az objektum fogalma

Példa Többértékű függőségek, 4NF, 5NF

Tervezés: Funkcionális függıségek

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Egyed-kapcsolat modell

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Adatbázis rendszerek 2. előadás. Relációs algebra

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Relációs adatbázisok tervezése ---2

SQL parancsok feldolgozása

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Átírás:

Adatbázisok elmélete 11. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>) intervallum megadása: <attribútum> BETWEEN <alsó határ> AND <felső határ>

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>) intervallum megadása: <attribútum> BETWEEN <alsó határ> AND <felső határ> De bármi állhat itt, ami WHERE után szerepelhet, akár alkérdés is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>) intervallum megadása: <attribútum> BETWEEN <alsó határ> AND <felső határ> De bármi állhat itt, ami WHERE után szerepelhet, akár alkérdés is. Például a vetít tábla létrehozásakor beírhatunk egy ilyen sort: CHECK (filmid IN (SELECT film.filmid FROM film))

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>) intervallum megadása: <attribútum> BETWEEN <alsó határ> AND <felső határ> De bármi állhat itt, ami WHERE után szerepelhet, akár alkérdés is. Például a vetít tábla létrehozásakor beírhatunk egy ilyen sort: CHECK (filmid IN (SELECT film.filmid FROM film)) Ebben az esetben a vetít tábla minden egyes változásakor leellenőrizzük, hogy létezik-e a megfelelő film a film táblában.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 1/15 Értékkészlet meghatározása Attribútum által felvehető értékek halmazát a CHECK kulcsszóval korlátozhatjuk. Szintaxis: attribútumra vonatkozó feltétel: <attribútum> <típus> CHECK (<feltétel>) sorra vonatkozó feltétel, relációdefinícióban: CHECK (<feltétel>) több relációra vonatkozó globális feltétel: CREATE ASSERTION <kényszernév> CHECK(<feltétel>) Tipikus attribútumra vonatkozó feltételek lehetnek: értékkészlet felsorolása: <attribútum> IN (<érték1>,..., <értékn>) intervallum megadása: <attribútum> BETWEEN <alsó határ> AND <felső határ> De bármi állhat itt, ami WHERE után szerepelhet, akár alkérdés is. Például a vetít tábla létrehozásakor beírhatunk egy ilyen sort: CHECK (filmid IN (SELECT film.filmid FROM film)) Ebben az esetben a vetít tábla minden egyes változásakor leellenőrizzük, hogy létezik-e a megfelelő film a film táblában. Baj ezzel: csak akkor ellenőrzi, ha a vetít táblával történik valami, azt simán hagyja, hogy a film táblából töröljek, pedig ilyenkor is elromolhat.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 2/15 Erre megoldás az ASSERTION: CREATE ASSERTION vetít-film CHECK ( vetít.filmid IN (SELECT film.filmid FROM film) )

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 2/15 Erre megoldás az ASSERTION: CREATE ASSERTION vetít-film CHECK ( vetít.filmid IN (SELECT film.filmid FROM film) ) Ezt a rendszer minden olyan alkalommal ellenőrzi, ha vagy a vetít vagy a film változik.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 2/15 Erre megoldás az ASSERTION: CREATE ASSERTION vetít-film CHECK ( vetít.filmid IN (SELECT film.filmid FROM film) ) Ezt a rendszer minden olyan alkalommal ellenőrzi, ha vagy a vetít vagy a film változik. Megjegyzések: a kényszerek a CONSTRAINT kulcsszó segítségével elnevezhetőek (a PRIMARY KEY, CHECK elé írva)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 2/15 Erre megoldás az ASSERTION: CREATE ASSERTION vetít-film CHECK ( vetít.filmid IN (SELECT film.filmid FROM film) ) Ezt a rendszer minden olyan alkalommal ellenőrzi, ha vagy a vetít vagy a film változik. Megjegyzések: a kényszerek a CONSTRAINT kulcsszó segítségével elnevezhetőek (a PRIMARY KEY, CHECK elé írva) új kényszer hozzáadására, meglévő törlésére az ALTER TABLE... {ADD DROP} CONSTRAINT ad lehetőséget.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 3/15 Példák kényszerekre A film és a vetít relációk kényszerekkel kiegészített létrehozása: CREATE TABLE film( filmid number(5) PRIMARY KEY, cím varchar(50) NOT NULL, rendező char(30) NOT NULL, év number(4) CHECK (év >= 1900), hossz number(3) DEFAULT 90 CHECK (hossz BETWEEN 1 AND 300), szinkronizált char(1) DEFAULT N CHECK (szinkronizált IN ( I, N )), UNIQUE(cím, rendező) )

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 3/15 Példák kényszerekre A film és a vetít relációk kényszerekkel kiegészített létrehozása: CREATE TABLE film( filmid number(5) PRIMARY KEY, cím varchar(50) NOT NULL, rendező char(30) NOT NULL, év number(4) CHECK (év >= 1900), hossz number(3) DEFAULT 90 CHECK (hossz BETWEEN 1 AND 300), szinkronizált char(1) DEFAULT N CHECK (szinkronizált IN ( I, N )), UNIQUE(cím, rendező) ) CREATE TABLE vetít( filmid number(5) REFERENCES film(filmid), moziid number(3) REFERENCES mozi(moziid), nap char(9), idő char(5) NOT NULL, CHECK (nap IN ( hétfő, kedd, szerda, csütörtök, péntek, szombat, vasárnap )) )

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 4/15 Triggerek

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 5/15 Triggerek SQL2: mindenféle, elég összetett CHECK feltételek, de a rendszerbe bele van építve, hogy mikor kell ellenőriznie valami feltételt

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 5/15 Triggerek SQL2: mindenféle, elég összetett CHECK feltételek, de a rendszerbe bele van építve, hogy mikor kell ellenőriznie valami feltételt SQL3-as szemlélet: lehetőség van arra, hogy mi mondjuk meg, mikor legyen ellenőrzés Trigger: Mikor legyen ellenőrzés (adott relációba való beszúráskor, törléskor, módosításkor, tranzakció végén)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 5/15 Triggerek SQL2: mindenféle, elég összetett CHECK feltételek, de a rendszerbe bele van építve, hogy mikor kell ellenőriznie valami feltételt SQL3-as szemlélet: lehetőség van arra, hogy mi mondjuk meg, mikor legyen ellenőrzés Trigger: Mikor legyen ellenőrzés (adott relációba való beszúráskor, törléskor, módosításkor, tranzakció végén) Mi legyen a feltétel, amit ekkor ellenőrzünk?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 5/15 Triggerek SQL2: mindenféle, elég összetett CHECK feltételek, de a rendszerbe bele van építve, hogy mikor kell ellenőriznie valami feltételt SQL3-as szemlélet: lehetőség van arra, hogy mi mondjuk meg, mikor legyen ellenőrzés Trigger: Mikor legyen ellenőrzés (adott relációba való beszúráskor, törléskor, módosításkor, tranzakció végén) Mi legyen a feltétel, amit ekkor ellenőrzünk? Ha a feltétel teljesül, akkor mit csináljunk? (akadályozzunk meg valamit, csináljunk vissza valamit, vagy bármi más)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 5/15 Triggerek SQL2: mindenféle, elég összetett CHECK feltételek, de a rendszerbe bele van építve, hogy mikor kell ellenőriznie valami feltételt SQL3-as szemlélet: lehetőség van arra, hogy mi mondjuk meg, mikor legyen ellenőrzés Trigger: Mikor legyen ellenőrzés (adott relációba való beszúráskor, törléskor, módosításkor, tranzakció végén) Mi legyen a feltétel, amit ekkor ellenőrzünk? Ha a feltétel teljesül, akkor mit csináljunk? (akadályozzunk meg valamit, csináljunk vissza valamit, vagy bármi más) Paraméternek adható meg, hogy a kiváltó esemény előtt/helyett/után történjen a cselekvés és még sok más is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 6/15 Példa triggerre Séma: GyártásIrányító(név, cím, azonosító, nettóbevétel)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 6/15 Példa triggerre Séma: GyártásIrányító(név, cím, azonosító, nettóbevétel) CREATE TRIGGER NetBevétTrigger AFTER UPDATE OF nettóbevétel ON GyártásIrányító REFERENCING OLD AS RégiSor NEW AS Újsor WHEN (RégiSor.nettóBevétel > Újsor.nettóBevétel) SET nettóbevétel=régisor.nettóbevétel WHERE azonosító=újsor.azonosító FOR EACH ROW

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 6/15 Példa triggerre Séma: GyártásIrányító(név, cím, azonosító, nettóbevétel) CREATE TRIGGER NetBevétTrigger AFTER UPDATE OF nettóbevétel ON GyártásIrányító REFERENCING OLD AS RégiSor NEW AS Újsor WHEN (RégiSor.nettóBevétel > Újsor.nettóBevétel) SET nettóbevétel=régisor.nettóbevétel WHERE azonosító=újsor.azonosító FOR EACH ROW = Ha valakinek csökkenne a bevétele, nem hagyjuk!

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés Lekérdezés és nem DDL (csak úgy kerül ide, hogy ez is SQL3)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés Lekérdezés és nem DDL (csak úgy kerül ide, hogy ez is SQL3) Példa: Van egy Járat(honnan, hova) táblánk, amiben azt tároljuk, hogy mely városokból hova mennek közvetlenül gépek. Határozzuk meg ennek a relációnak a tranzitív lezártját, azaz egy olyan Eljut(honnan, hova) relációt szeretnénk, amelyben két város akkor szerepel együtt, ha el lehet az egyikből a másikba jutni valahány átszállással.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés Lekérdezés és nem DDL (csak úgy kerül ide, hogy ez is SQL3) Példa: Van egy Járat(honnan, hova) táblánk, amiben azt tároljuk, hogy mely városokból hova mennek közvetlenül gépek. Határozzuk meg ennek a relációnak a tranzitív lezártját, azaz egy olyan Eljut(honnan, hova) relációt szeretnénk, amelyben két város akkor szerepel együtt, ha el lehet az egyikből a másikba jutni valahány átszállással. Ez relációs algebrában nem kifejezhető, de SQL3-ban igen.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés Lekérdezés és nem DDL (csak úgy kerül ide, hogy ez is SQL3) Példa: Van egy Járat(honnan, hova) táblánk, amiben azt tároljuk, hogy mely városokból hova mennek közvetlenül gépek. Határozzuk meg ennek a relációnak a tranzitív lezártját, azaz egy olyan Eljut(honnan, hova) relációt szeretnénk, amelyben két város akkor szerepel együtt, ha el lehet az egyikből a másikba jutni valahány átszállással. Ez relációs algebrában nem kifejezhető, de SQL3-ban igen. WITH RECURSIVE Eljut(honnan, hova) AS (SELECT honnan, hova FROM Járat) UNION (SELECT Eljut AS R1, Eljut AS R2 WHERE R1.hova = R2.honnan) SELECT * FROM Eljut

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 7/15 Rekurzió SQL3-as dolog, ideiglenes elképzelés Lekérdezés és nem DDL (csak úgy kerül ide, hogy ez is SQL3) Példa: Van egy Járat(honnan, hova) táblánk, amiben azt tároljuk, hogy mely városokból hova mennek közvetlenül gépek. Határozzuk meg ennek a relációnak a tranzitív lezártját, azaz egy olyan Eljut(honnan, hova) relációt szeretnénk, amelyben két város akkor szerepel együtt, ha el lehet az egyikből a másikba jutni valahány átszállással. Ez relációs algebrában nem kifejezhető, de SQL3-ban igen. WITH RECURSIVE Eljut(honnan, hova) AS (SELECT honnan, hova FROM Járat) UNION (SELECT Eljut AS R1, Eljut AS R2 WHERE R1.hova = R2.honnan) SELECT * FROM Eljut Nem lehet bármi a rekurzív definícióban, pl. negációval óvatosan = nem biztonságos kifejezés

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszőleges relációkat jókká?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszőleges relációkat jókká? Cél: El akarunk kerülni kellemetlen jelenségeket, anomáliákat:

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszőleges relációkat jókká? Cél: El akarunk kerülni kellemetlen jelenségeket, anomáliákat: Módosítási anomália: pl. ha a Termék(Termelő, Cím, Terméknév, Ár) reláció esetén egy termelő címe több sorban is előfordul, változáskor mindenhol át kell írni. Hiba esetén inkonzisztencia.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszőleges relációkat jókká? Cél: El akarunk kerülni kellemetlen jelenségeket, anomáliákat: Módosítási anomália: pl. ha a Termék(Termelő, Cím, Terméknév, Ár) reláció esetén egy termelő címe több sorban is előfordul, változáskor mindenhol át kell írni. Hiba esetén inkonzisztencia. Beszúrási anomália: Nem tudunk beszúrni adatot, ha az egyik attribútum hiányzik, mert nem ismerjük (és nem lehet NULL).

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 8/15 Relációs sémák tervezése Van elméleti alap = érv a relációs technika mellett (Objektumosnak nincs ilyen.) Kérdés: Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszőleges relációkat jókká? Cél: El akarunk kerülni kellemetlen jelenségeket, anomáliákat: Módosítási anomália: pl. ha a Termék(Termelő, Cím, Terméknév, Ár) reláció esetén egy termelő címe több sorban is előfordul, változáskor mindenhol át kell írni. Hiba esetén inkonzisztencia. Beszúrási anomália: Nem tudunk beszúrni adatot, ha az egyik attribútum hiányzik, mert nem ismerjük (és nem lehet NULL). Törlési anomália: Csak egész sorok törölhetők, így elveszhetnek hasznos adatok. Pl. ha egy termelő épp nem termel semmit, kitöröljük a címét is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 9/15 Relációs sémák tervezése A relációk, tárolás jósága attól függ, hogy milyen megkötések vannak az adatokon.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 9/15 Relációs sémák tervezése A relációk, tárolás jósága attól függ, hogy milyen megkötések vannak az adatokon. Megszorítások két osztálya: Értékfüggő: Pl. ÁR 0, ÉLETKOR egész 1000, NÉV karaktersor, CÍM NULL, (típusleírások)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 9/15 Relációs sémák tervezése A relációk, tárolás jósága attól függ, hogy milyen megkötések vannak az adatokon. Megszorítások két osztálya: Értékfüggő: Pl. ÁR 0, ÉLETKOR egész 1000, NÉV karaktersor, CÍM NULL, (típusleírások) Értékfüggetlen: TERMÉKNÉV, TERMELŐ kulcs; TERMELŐ-nek egy címe van, egy TERMELŐ azonos nevű termékéből csak egy árú van

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 9/15 Relációs sémák tervezése A relációk, tárolás jósága attól függ, hogy milyen megkötések vannak az adatokon. Megszorítások két osztálya: Értékfüggő: Pl. ÁR 0, ÉLETKOR egész 1000, NÉV karaktersor, CÍM NULL, (típusleírások) Értékfüggetlen: TERMÉKNÉV, TERMELŐ kulcs; TERMELŐ-nek egy címe van, egy TERMELŐ azonos nevű termékéből csak egy árú van Utóbbi: az attribútumok mennyire függenek egymástól = funkcionális függőség

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek. Pl. X =TERMELŐ, TERMÉKNÉV; Y=ÁR = X Y

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek. Pl. X =TERMELŐ, TERMÉKNÉV; Y=ÁR = X Y Megjegyzések: Azok az érdekes összefüggések, amik minden ilyen attribútumokkal rendelkező táblában fenn kell, hogy álljanak: axiómaszerű feltételek, az adatbázis bármely változása esetén is fennállnak = érdemi függés

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek. Pl. X =TERMELŐ, TERMÉKNÉV; Y=ÁR = X Y Megjegyzések: Azok az érdekes összefüggések, amik minden ilyen attribútumokkal rendelkező táblában fenn kell, hogy álljanak: axiómaszerű feltételek, az adatbázis bármely változása esetén is fennállnak = érdemi függés Azok, amik csak véletlenül, csak egy pillanatban állnak fenn = eseti függés (ezek nem érdekelnek, például lehetséges hogy egy adott pillanatban minden ár csak egyszer szerepel és ekkor úgy tűnik, mintha Ár Termék érvényes függés lenne)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek. Pl. X =TERMELŐ, TERMÉKNÉV; Y=ÁR = X Y Megjegyzések: Azok az érdekes összefüggések, amik minden ilyen attribútumokkal rendelkező táblában fenn kell, hogy álljanak: axiómaszerű feltételek, az adatbázis bármely változása esetén is fennállnak = érdemi függés Azok, amik csak véletlenül, csak egy pillanatban állnak fenn = eseti függés (ezek nem érdekelnek, például lehetséges hogy egy adott pillanatban minden ár csak egyszer szerepel és ekkor úgy tűnik, mintha Ár Termék érvényes függés lenne) Tehát az érdemi függések megadása modellezési kérdés: a séma megadásakor döntjük el, hogy milyen függéseket akarunk fenntartani mindenáron.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 10/15 Funkcionális függőségek Jelölés: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció. Y R funkcionálisan függ X R-től, (jelölés: X Y),ha R bármely két sorára igaz, hogy ha ők megegyeznek X-en, akkor Y-on is megegyeznek. Pl. X =TERMELŐ, TERMÉKNÉV; Y=ÁR = X Y Megjegyzések: Azok az érdekes összefüggések, amik minden ilyen attribútumokkal rendelkező táblában fenn kell, hogy álljanak: axiómaszerű feltételek, az adatbázis bármely változása esetén is fennállnak = érdemi függés Azok, amik csak véletlenül, csak egy pillanatban állnak fenn = eseti függés (ezek nem érdekelnek, például lehetséges hogy egy adott pillanatban minden ár csak egyszer szerepel és ekkor úgy tűnik, mintha Ár Termék érvényes függés lenne) Tehát az érdemi függések megadása modellezési kérdés: a séma megadásakor döntjük el, hogy milyen függéseket akarunk fenntartani mindenáron. Ezentúl a relációs sémának része lesz a függőségek halmaza F is = (R, F) Vagyis megadjuk, hogy mik a séma attribútumai és mik az érdemi függései.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitől.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitől. X Y teljesülhet úgy is, hogy az adott relációban nincs is két olyan sor, amik X-en megegyeznek.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitől. X Y teljesülhet úgy is, hogy az adott relációban nincs is két olyan sor, amik X-en megegyeznek. X-nek és Y-nak nem kell diszjunktaknak lenniük

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitől. X Y teljesülhet úgy is, hogy az adott relációban nincs is két olyan sor, amik X-en megegyeznek. X-nek és Y-nak nem kell diszjunktaknak lenniük A séma megadása csak a keretet jelenti, beleértve a függeseket is, ha ezt feltöltjük adatokkal, akkor kapunk egy a sémára illeszkedő relációt.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 11/15 R(TERMELŐ, TERMÉKNÉV, ÁR, CÍM) Funkcionális függőségek TERMELŐ, TERMÉKNÉV TERMELŐ, TERMÉKNÉV, ÁR, CÍM TERMELŐ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS NÉV, CÍM, VÁROS TELEFON Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitől. X Y teljesülhet úgy is, hogy az adott relációban nincs is két olyan sor, amik X-en megegyeznek. X-nek és Y-nak nem kell diszjunktaknak lenniük A séma megadása csak a keretet jelenti, beleértve a függeseket is, ha ezt feltöltjük adatokkal, akkor kapunk egy a sémára illeszkedő relációt. A r reláció akkor illeszkedik az (R, F) sémára ha az attribútumai az R-ben adottak és teljesülnek benne az F függések.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ. Azaz általánosabban: ha XY Z és Z W, akkor attól függetlenül, hogy mi a reláció és X, Y, Z, W, igaz lesz, hogy XY W.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ. Azaz általánosabban: ha XY Z és Z W, akkor attól függetlenül, hogy mi a reláció és X, Y, Z, W, igaz lesz, hogy XY W. Definíció. Adott (R, F). Az X Y függés logikai következménye (szemantikai következménye) F-nek, ha az X Y minden olyan r relációban teljesül, ahol F függései mind teljesülnek. Jelölése: F = X Y

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ. Azaz általánosabban: ha XY Z és Z W, akkor attól függetlenül, hogy mi a reláció és X, Y, Z, W, igaz lesz, hogy XY W. Definíció. Adott (R, F). Az X Y függés logikai következménye (szemantikai következménye) F-nek, ha az X Y minden olyan r relációban teljesül, ahol F függései mind teljesülnek. Jelölése: F = X Y Azaz ez a fogalom azt adja meg, hogy mely függéseknek kell szükségszerűen teljesülniük minden olyan sémában/relációban, ahol F függései fennállnak.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 12/15 Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ. Azaz általánosabban: ha XY Z és Z W, akkor attól függetlenül, hogy mi a reláció és X, Y, Z, W, igaz lesz, hogy XY W. Definíció. Adott (R, F). Az X Y függés logikai következménye (szemantikai következménye) F-nek, ha az X Y minden olyan r relációban teljesül, ahol F függései mind teljesülnek. Jelölése: F = X Y Azaz ez a fogalom azt adja meg, hogy mely függéseknek kell szükségszerűen teljesülniük minden olyan sémában/relációban, ahol F függései fennállnak. Hogyan lehetne ezeket meghatározni, illetve eldönteni, hogy egy függés ilyen-e?

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.)

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető. =: Igazság tétel, csak igaz dolgok vezethetők le.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető. =: Igazság tétel, csak igaz dolgok vezethetők le. Definíció. Egy X Y függőség akkor vezethető le egy adott F függőséghalmazból, ha az axiómák ismételt alkalmazásával F-ből megkapjuk X Y-t.Jele: F X Y.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető. =: Igazság tétel, csak igaz dolgok vezethetők le. Definíció. Egy X Y függőség akkor vezethető le egy adott F függőséghalmazból, ha az axiómák ismételt alkalmazásával F-ből megkapjuk X Y-t.Jele: F X Y. Armstrong-axiómák 1. Reflexivitás: Ha X, Y R és Y X, akkor X Y.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető. =: Igazság tétel, csak igaz dolgok vezethetők le. Definíció. Egy X Y függőség akkor vezethető le egy adott F függőséghalmazból, ha az axiómák ismételt alkalmazásával F-ből megkapjuk X Y-t.Jele: F X Y. Armstrong-axiómák 1. Reflexivitás: Ha X, Y R és Y X, akkor X Y. 2. Kiegészítési tulajdonság: Ha X, Y R és X Y, akkor XW YW igaz tetszőleges W R-re.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 13/15 Logikai következmény Felveszünk axiómákat, és azok segítségével próbáljuk levezetni. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F-ből, amik logikai következményei neki. Levezethetőség jele: F X Y Tehát bevezetünk axiómákat, levezethetőséget és belátjuk, hogy =. (Pl. logikában így van.) = : Teljességi tétel, ami igaz az levezethető. =: Igazság tétel, csak igaz dolgok vezethetők le. Definíció. Egy X Y függőség akkor vezethető le egy adott F függőséghalmazból, ha az axiómák ismételt alkalmazásával F-ből megkapjuk X Y-t.Jele: F X Y. Armstrong-axiómák 1. Reflexivitás: Ha X, Y R és Y X, akkor X Y. 2. Kiegészítési tulajdonság: Ha X, Y R és X Y, akkor XW YW igaz tetszőleges W R-re. 3. Tranzitivitás: Ha X, Y, Z R, X Y és Y Z, akkor X Z.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek,

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is. Ehhez elég azt belátni, hogy külön-külön, az egyes axiómák egyszeri használata ilyen függést ad.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is. Ehhez elég azt belátni, hogy külön-külön, az egyes axiómák egyszeri használata ilyen függést ad. 1. Reflexivitás: Azt kell belátni, hogy minden r relációban, minden Y X R attribútumhalmaz esetén X Y igaz, azaz ha r bármely két adott sora megegyezik X-en, akkor megegyeznek Y-on is. De mivel Y X, ezért nyilván megegyeznek Y-on, ha X-en megegyeztek.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is. Ehhez elég azt belátni, hogy külön-külön, az egyes axiómák egyszeri használata ilyen függést ad. 1. Reflexivitás: Azt kell belátni, hogy minden r relációban, minden Y X R attribútumhalmaz esetén X Y igaz, azaz ha r bármely két adott sora megegyezik X-en, akkor megegyeznek Y-on is. De mivel Y X, ezért nyilván megegyeznek Y-on, ha X-en megegyeztek. 2. Kiegészítési tulajdonság: Az kell, hogy ha egy R-re illeszkedő r relációban X Y igaz, akkor XW YW is igaz lesz. Vegyünk két sort r-ben, ami megegyezik XW-n. Ekkor ezek megegyeznek X-en és W-n is, külön-külön. Mivel X Y, így megegyeznek Y-n is, tehát YW-n is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 14/15 Igazságtétel bizonyítása Bizonyítás: (Igazság tétel) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethető F-ből a három axióma segítségével,akkor ez a függés logikai következménye is F-nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is. Ehhez elég azt belátni, hogy külön-külön, az egyes axiómák egyszeri használata ilyen függést ad. 1. Reflexivitás: Azt kell belátni, hogy minden r relációban, minden Y X R attribútumhalmaz esetén X Y igaz, azaz ha r bármely két adott sora megegyezik X-en, akkor megegyeznek Y-on is. De mivel Y X, ezért nyilván megegyeznek Y-on, ha X-en megegyeztek. 2. Kiegészítési tulajdonság: Az kell, hogy ha egy R-re illeszkedő r relációban X Y igaz, akkor XW YW is igaz lesz. Vegyünk két sort r-ben, ami megegyezik XW-n. Ekkor ezek megegyeznek X-en és W-n is, külön-külön. Mivel X Y, így megegyeznek Y-n is, tehát YW-n is. 3. Tranzitivitás: Az kell, hogy ha egy R-re illeszkedő r relációban X Y és Y Z igaz, akkor X Z is igaz lesz. Vegyünk két sort, ami megegyezik X-en. Mivel X Y, megegyeznek Y-n is. De mivel Y Z, megegyeznek Z-n is.

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 15/15 Példa Állítás. Ha R(Város, Utca, Irányítószám) és F = {VU I, I V}, akkor F IU VIU (és mivel =-t már láttuk, ezért F = IU VIU).

ADATBÁZISOK ELMÉLETE 11. ELŐADÁS 15/15 Példa Állítás. Ha R(Város, Utca, Irányítószám) és F = {VU I, I V}, akkor F IU VIU (és mivel =-t már láttuk, ezért F = IU VIU). Bizonyítás: i) I V: ez F-beli ii) IU VU: kiegészítve U-val iii) IU IVU: kiegészítve I-vel