ADATBÁZIS RENDSZEREK (bevezetés)

Hasonló dokumentumok
Adatbázis-kezelés. alapfogalmak

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

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatmodellezés. 1. Fogalmi modell

1. előadás Alapfogalmak Modellezés, a Bachman-féle fogalomrendszer, adatmodell,

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

ADATBÁZIS-KEZELÉS Demetrovics Katalin

Adatbázis rendszerek. dr. Siki Zoltán

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

Adatmodellek. 2. rész

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

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

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

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

A relációs adatmodell

Adatbázisok - 1. előadás

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

Magas szintű adatmodellek Egyed/kapcsolat modell I.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

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

Csima Judit október 24.

Adatbázisok* tulajdonságai

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

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

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

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

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

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

ADATBÁZIS-KEZELÉS. 1. Alapfogalmak

Adatbázis, adatbázis-kezelő

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

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

ADATBÁZIS-KEZELÉS. Relációs modell

Adatbáziskezelés 1 / 12

ADATBÁZIS-KEZELÉS. Modellek

Informatikai alapismeretek Földtudományi BSC számára

Adatbázis rendszerek Definíciók:

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Bevezetés: az SQL-be

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

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

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

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

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

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

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

Normálformák Normalizálás ADATBÁZISKEZELÉS ÉS KÖNYVTÁRI RENDSZERSZERVEZÉS 1 / 2

A relációs adatbázis-tervezés alapjai

Adatbázisrendszerek BEVEZETÉS. A valós világban vannak dolgok, amelyek viselkednek, hatnak egymásra, kapcsolatban vannak. Ezek rendszert alkotnak.

Az adatbázis-kezelés alapjai

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: Relációs adatmodell

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

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

8. előadás. normálformák. Többértékű függés, kapcsolásfüggés, 4NF, 5NF. Adatbázisrendszerek előadás november 10.

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

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

T Adatbázisok-adatmodellezés

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

Adatbázisrendszerek 8. előadás: Az Enhanced Entity-Relationship modell március 27.

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

Bevezetés: Relációs adatmodell

1. előadás Alapfogalmak Kialakulás, modellezés, a Bachman-féle fogalomrendszer, adatmodell, adatbázis, tulajdonságok

Több felhasználó párhuzamosan olvashatja, bővítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása

Adatbázisok gyakorlat

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

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

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

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

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 gyakorlat

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

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

Az adatbázisrendszerek világa

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázismodellek. 1. ábra Hierarchikus modell

22. GRÁFOK ÁBRÁZOLÁSA

Adatbázisok. 1. gyakorlat. Adatmodellezés október október 1. Adatbázisok 1 / 42

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

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

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

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

Adatbázis rendszerek I

Adatszerkezetek 1. előadás

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

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

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

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

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

Adatbázisok 1. Az egyed-kapcsolat modell (E/K)

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 21.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

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

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

Adatbázis Rendszerek

BEVEZETÉS Az objektum fogalma

Átírás:

ADATBÁZIS RENDSZEREK (bevezetés) Dr. Fazekas Gábor egyetemi docens 1

ma már a csapból is adatbázis folyik : alapfogalmakat kell tisztázni! Adatbázis Adatbáziskezelő rendszer Adatbázis rendszer mert attól még. hogy egy törzsadatállományt nagyon sokáig megőrzünk, nem lesz belőle adatbázis! (Idézetek tőlem) 2

Adatbázis Munkadefiníció (Engles, 1972.): Egy vállalat működési adatainak strukturált módon tárolt együttese, amelyek a vállalat tevékenysége során keletkeznek és amelyeket a vállalat működéséhez felhasznál. o Vállalat (enterprise): itt gyűjtőfogalom, azaz közös elnevezése azoknak a szervezeteknek (rendszereknek), amelyek folyamatos / hosszú távú működése szorosan kötődik a napi működés során keletkező adatokhoz. Pl.: termelő vállalat, könyvtár, kórház, egyetem, polgármesteri hivatal, minisztérium, ország, stb. o Működési adat: a működést jellemző adat, pl. egy könyvtár esetén ilyen az olvasó adat, bibliográfiai adat, kölcsönzési adat, de nem tartozik ebbe a körbe a havi látogatottsági statisztika! A definíció korrekt, de számos kiegészítést igényel! Naiv felfogású emberek - sokszor fennhéjazva - akkor is adatbázist emlegetnek, ha nem arról van szó 3

Adatbázis: kiegészítések a fogalomhoz (i) Föltételezzük, hogy az adatbázis adatai közvetlen elérésű számítógépes háttértárban tárolódnak. o Ilyen pl. a merevlemez, de nem ilyen a mágnesszalag. (ii) Az adatbázis sok adatot tartalmaz. o Olyan sokat, hogy az adatok mennyisége miatt a kezelésükhöz speciális hozzáállás és módszerek szükségesek. o Pl. másképp kell az adatbevitelt megszervezni egy 300 bemenő adattal működő programban, mint egy 3 bemenő adatot igénylő programban! (iii) Az adatbázis rendszerint sok felhasználó adatait tartalmazza. (iv) A tárolt adatok sok felhasználási célt szolgálnak. (v) Az adattárolás módja (a tárolt adatok struktúrája) sokféle feldolgozási módot támogat. o (ii v)-re példa egy légiközlekedési helyfoglalást nyilvántartó rendszer (GABRIEL) (vi) A (iii),(iv),(v)-re együtt azt mondjuk, hogy az adatbázis integrált! 4

Adatbázis: kiegészítések a fogalomhoz (vii) Az adatbázis logikailag osztott. o A felhasználók (nem feltétlenül diszjunkt) csoportokra oszlanak. o Az adatbázisban tárolt adatok (nem feltétlenül diszjunkt) részstruktúrákat képeznek. o Minden egyes csoport és részstruktúra párra egyértelműen rögzítve vannak az illető csoport adatmanipulációs jogai az adott részstruktúrára nézve. o Adatmanipuláció: visszakeresés, bővítés, törlés, módosítás. o Ehhez szükséges az adatstruktúra és a részstruktúrák leírásainak, illetve a csoportoknak és adatmanipulációs jogaiknak megfelelően kódolt formában történő tárolása. Erre szolgál a metaadatbázis: az adatokat leíró adatok együttese. (viii) Metaadatbázis: az adatok szerkezetének és kezelési kompromisszumainak leírása, azaz az adatbázis információs tartalomjegyzéke, szemantikája. (ix) Adatbázis: adatok és metaadatok (adat és szemantika) együtt tárolása lényegi választóvonal a hagyományos adatfeldolgozás és az adatbáziskezelés között. o A hagyományos adatfeldolgozásban a szerkezetet és a kezelési kompromisszumokat az adatokat kezelő programok implementálták! 5

Adatbáziskezelő rendszer Szoftver (rendszer), amely professzionális támogatást nyújt az alábbi feladatok megoldásához: o az adatok szerkezetének és kezelési kompromisszumainak leírása (metaadatbázis létrehozása), o adatmanipuláció: visszakeresés, bővítés, törlés, módosítás, o egyéb: felhasználó-kezelés, folyamat/tranzakció kezelés, stb! (ez nem releváns!) A támogatás nyelvi megalapozása, nyelvi eszközök. o Adatdefiníciós nyelv (DDL ~ Data Definition Language). o Adatmanipulációs nyelv (DML ~ Data Manipulation Language). Egyéb: DCL, DMCL, stb! Implementáció: Önálló- és befogadó nyelvű rendszerek. SQL. 6

Adatbázis rendszer Adatbázis + Adatbáziskezelő rendszer + Absztrakt felhasználó/működtető környezet 7

Adatbázis szemlélet Működési adatok = erőforrás a vállalat számára Ugyanolyan tulajdonságokkal rendelkeznek, mint más erőforrások (nyersanyag, energia, munkaerő, stb.): o Biztosításuk időt és költséget igényel. o Nem állnak korlátlanul rendelkezésre (pl. elavul, elévül, elfogy). o Racionális felhasználásuk a vállalati működés eredményességét növeli ( jólértesültség, bennfenntesség ). o Példák. Következmény, probléma: versenyfutás az erőforrásokért (a vállalaton belül). Megoldás: központi erőforrás-gazdálkodásra van szükség! o Az adatokat integrálni kell! Adatbáziskezelés: az adattal, mint erőforrással történő gazdálkodás. Adatbáziskezelő rendszer: ezen erőforrás-gazdálkodás automatizált eszköze. 8

A hagyományos adatkezelés problémái A gondok forrása: Magán jelleg (Nincs vállalati szintű adatkezelési stratégia, szervezés. Egyéni megoldások, nincsenek szabványok.) Többszörös adattárolás (redundancia) és a következtében fellépő adatösszeférhetetlenség (inkonzisztencia). Rugalmas változtathatóság hiánya és a magas karbantartási igény: o Az adatok szerkezetét a programokon belül írták le, kapcsolataikat eljárási úton realizálták. A felhasználói logikából nem következő programozási többlet: o Adatfüggőség: az alkalmazói program függ az adatok szerkezetétől, tárolási és elérési módjától. Az adatvédelem kívánt szintje nem biztosítható. Egyéb gondok: Rendszertervezési módszerek elavultak. Emberi és gépi hatékonyság ellentmondása. 9

A modern adatbázis tervezés folyamata 10

Adatmodellezés Adatmodellezés: valamely rendszer (vállalat) működését jellemző adatok (típusok) feltárása és ennek valamilyen konvencionális jelölő rendszer segítségével történő rögzítése (tárolt adatmodell). Az adatmodellezés számítógéptől független. Jelölő rendszer: szöveges, szemigrafikus, formális, stb Modell = szemlélet, elképzelés (illúzió). Hitelesség? 11

Adatmodellezés A modellezés modellje (C.W. Bachman, 1969) Dimenziók: o Egyedek o Tulajdonságok o Kapcsolatok Típus és előfordulás o Absztrakt és konkrét jellemzés o Típus képzés = absztrakció (csoportosítás + névadás) I. Entities (objects, things) II. Attributes (characteristics, properties) III. Relationships between entities Types & Occurrences 12

Adatmodellezés CODASYL (Conference on Data Systems Languages, 1969. október.) DBTG (DataBase Task Group) DBTG report: 1971. április. Jelentősége: o Helyzetelemzés o Követelmény specifikáció o Útmutatás (módszertan) o letölthető(?): http://dl.acm.org/citation.cfm?id=1387569 13

Adatmodellezés A CODASYL modellezés alapfogalmai: Tulajdonos (owner) és tag (member) rekordtípusok o Adategyüttes (set) Set konstrukciós szabályok o Kezelési kopromisszumok (integritási megszorítások) Setek belső ábrázolása o Listák o Homogén állományok, homogenitás fontossága A több-több kapcsolat ábrázolása setek segítségével Codasyl rendszerek (IDMS, C-Tree, SÁMÁN) 14

Example: Közkönyvtár Entity types Occurrences associated to the type Book Virginia Woolf: Mrs Dalloway Oscar Wilde: De Profundis James Joyce: Dubliners Jane Austen: Persuasion Reader Smith Scott Black Jones Attribute types Occurrences associated to the type CODE B01 B02 B03 B04 ISBN 1 85326 191 2 1 84022 401 0 1 85326 048 7 1 85326 056 8 Author Virginia Woolf Oscar Wilde James Joyce Jane Austen Title Dalloway Profundis Dubliners Persuasion Publisher Wordsworth Ed. Ltd. Wordsworth Ed. Ltd. Wordsworth Ed. Ltd. Wordsworth Ed. Ltd. Publishing year 2003 1999 1993 1993 EUR_price 3,0 2,5 3,5 2,0 Attribute types Occurrences associated to the type CODE R01 R02 R03 R04 Name John Smith Robert Scott Jane Black Tom Jones Address Long str.3., London Small sqr. 2., Dover Wide str. 33., Eaton Old str. 39., Etteln Phone +48 234 5657322 +48 245 5657432 +48 255 5634522 +48 267 4647322 Relationship types 1: N Reader_borrows_book M:N Author_writes_book 1:1 Reader_has_ID-Card Occurrences associated to the type 15

A Bachman-féle modellezési probléma megoldása a CODASYL hálós (NETWORK) modell segítségével Az entitás típusok leírhatók a rekord típusok segítségével (a hagyományos adatfeldolgozásból örökölt módon). Attribútum (típus) a rekord (típus) mezője (a hagyományos adatfeldol-gozásból örökölt módon). A kapcsolatok leírásához újabb modellezési eszközre (modelling primitive) SET van szükség! Egy SET típus két rekordtípus névvel ellátott(!) 1:N kapcsolata. A kapcsolatban részt vevő rekordtípusokat rendre gazdának (owner), illetve tagnak (member) nevezzük. Az owner rekordtípus minden egyes előfordulásához tartozhat a member rekordtípus változó számú előfordulása, míg a member rekordtípus minden egyes előfordulása pontosan egy owner előforduláshoz tartozhat. READER A rekord típusok jelölése: téglalap benne a típusnév. A rekordtípus előfordulásainak jelölése: köröcske (benne esetleg jellemző adatok): A03/ Scott A rekord előfordulások rendszerint rendelkeznek egy egyedi azonosítóval (kulcs). 16

Egy SET típus és előfordulásai az alábbi módon jelölhetők: OWNER_A A01/ Smith A02/ Jones A03/ Scott A04/ Black MEMBER_B SET A-B B02/ Book2 B01/ Book1 B03/ Book3 B05/ Book5 B09/ Book9 B08/ Book8 Egy SET-nek annyi előfordulása van, ahány előfordulása létezik az owner rekordtípusának! Egy SET lényegében egy csoportosítási/osztályozási elvet reprezentál a member rekord típus előfordulásainak halmazában! 17

SET-konstrukciós szabályok: I. Egyszerű hierarchia (Simple hierarchy) Example: Occurrences: OWNER_A CUSTOMER C01/ Smith C02/ Black MEMBER*_B SET A-B ORDER CUS_OR Or01/ Smith Or02/ Smith Or03/ Black MEMBER_C SET B-C ORDER_ITEM OR_DET I01/ Or01 I02/ Or01 I01/ Or02 I01/ Or03 I02/ Or03 Az egyszerű hierarchia előfordulásai egy erdő -gráfot képeznek. 18

SET-konstrukciós szabályok: II. Komplex hierarchia (Complex/compound hierarchy) Example: OWNER_A CUSTOMER SET A-B SET A-C CUS-ORD CUS-BL MEMBER_B MEMBER_C ORDER BILL Occurrences: C01/ Smith C02/ Black Or01/ Smith Or02/ Smith Bl03/ Smith Or03/ Black Bl01/ Black Bl01/ Smith Bl02/ Smith Bl02/ Black 19

SET-konstrukciós szabályok: III. Egyszerű hálós szerkezet (Simple network structure) Example: OWNER_A OWNER_B PRODUCT ORDER SET A-C SET SET B-C B-C PR_LIST OR_LIST MEMBER_C ORD_ITEM Occurrences: P1/ pen C01/ O01 P2/ mappe C01/ O02 C02/ O04 P3/ pencil C03/ O03 O01/ P1/10 O02/ P1/60 O01/ P2/70 O04/ P3/50 O03/ P3/45 O04/ P2/40 O02/ P3/90 O03/ P3/25 O02/ P2/80 O04/ P3/20 M:N kapcsolat reprezentációja (midig lehetséges)! 20

Integritási megszorítások SET-ekre: o Membership (tagság) kötelező és automatikus. ( A member előfordulásban található Set Item azonosítja az ownert.) Member előfordulás nem vihető be az ownerje(i) hiányában! Owner előfordulás nem törölhető, míg van memberje SET előfordulások implementációja (adatszerkezetek) o Láncolt lista (egy, vagy kétirányú). o A lista feje az owner előfordulásban van. o Minden member előfordulás tartalmaz egy pointert a következő előfordulásra. Előny: a homogén fájl tulajdonság így megőrizhető A hálós (network) modell és a hierarchikus (hierarchical) modellek. Adatmanipulácó = navigáció a hálózatban. 21

Az ER (egyed-kapcsolat) modell o Bevezető megjegyzés (modellezési szintek, szempontok): Külső szint (external level) az adatbázis adatait felhasználók nézőpontját tükrözi. Konceptuális szint (conceptual level) a teljes adatbázis logikai struktúráját írja le (az adatok szerkezete és kapcsolatai). Belső szint (internal level) megadja, rögzíti az adatbázis számítógépen történő fizikai tárolásával kapcsolatos részleteket. o Példa: (Telecom adatbázis) External view Billing officers view: System analysts view: Conceptual view Internal view struct { string CALL_ID; double sum; string CallersLastName; string CallersFirstName;... } Callers name Date_Time Duration Category Sum Date_Time Duration Category Location Callers name Sum Date_Time Duration Category Location 22

Történet & fő forrás: PETER PIN-SHAN CHEN (MIT, Massachusetts Institute of Technology): The Entity-Relationship Model-Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, No. 1. March 1976, Pages 9-36. ( letölthető: http://www.inf.unibz.it/~nutt/idbs1011/idbpapers/chen-er-tods-76.pdf ) Definícó: Az ER (egyed-kapcsolat) modell (Entity-Relationship (ER) model) egy magas szintű, grafikus adatmodell, amely jól alkalmazható adatbázisok konceptuális tervezésénél. Az ER modell alapfogalmai: o Egy egyed (entity, entitás) egy önmagában értelmezhető/létező dolog, vagy fogalom. Az egyed összes lehetséges előfordulásainak halmaza az egyed típus (entity type, entitás típus). o ER diagram jelölés a student (Hallgato) egyed típus esetén: 23

o Egy attribútum (attribute, tulajdonság) az egyed olyan jellemzője, ami az egyed előfordulását más egyedektől megkülönbözteti. Az attribútum összes lehetséges értékeinek a halmaza az attribútum tartomány (attribute domain). Null egy speciális attribútum érték, amely az ismeretlen/hiányzó adatot helyettesíti. 24

o Egyszerű attribútum (simple attribute), amelynek csak egy komponense van (atomikus). o Összetett attribútum (composite attribute) több komponenssel rendelkezik. o Ha egy egyed valamely attribútuma az egyed minden egyes előfordulása esetén egy értéket vehet fel, akkor egyértékű (single-valued) attribútumról beszélünk, egyébként az attribútum o többértékű (multi-valued attribute); jele: 25

o Származtatott attribútum (derived attribute) értéke meghatározható más attribútumok értékeiből. Jele: Szaggatott vonal. o Egy attribútum (,vagy attribútumok halmaza), amelynek értéke(i) egyértelműen meghatároznak egy egyed előfordulást az egyed kulcsa (key). o Összetett kulcs (composite key) egynél több attribútum alkotja. o Jele: aláhúzás 26

o A kapcsolat típus (relationship type) egyed típusok közötti viszony. (pl. könyv ~ személy : írta, olvasta, árulta, stb.) o A kapcsolat (relationship), vagy kapcsolat példány (relationship instance) rendezett pár adott egyed előfordulásokból képezve. o A kapcsolat típus foka (degree) a résztvevő egyedtípusok száma o Ha ez kettő, akkor a kapcsolat típus bináris (binary). o A szerep név (a kapcsolattípus neve, role name) megadja az egyedek szerepét (a kapcsolat tartalmát). o A kapcsolat típus megszorítások (constraints) a résztvevő egyedek száma, minimális elemszám. 27

o Egy kapcsolat(típus)-hoz szintén tartozhatnak attribútumok. o Példa: order összekapcsolja a chemical és supplier egyedtípusokat. 28

o Gyenge egyedtípus (weak entity): csak valamely más egyedtípussal együtt létezik. Pl. személyi igazolvány, forgalmi engedély, fizetés lista, átutalás, stb. o Nincs saját kulcsa, azonosító kapcsolat szükséges. o Jele: kettős vonal. 29

A relációs adatmodell Történet & fő forrás: Edgar Frank Codd: "A Relational Model of Data for Large Shared Data Banks," Communications of the ACM(Vol. 13, No. 6, June 1970, pp. 377-87). Korábban: IBM research report RJ599, August 19th, 1969. letölthető: (pl.) http://www.cs.nott.ac.uk/~psznza/g51dbs/codd.pdf Relációs adatmodell: Az a felhasználói szemlélet, amely szerint a felhasználó az adatbázist időfüggő, normalizált táblázatok együttesének tekinti. o időfüggő: a táblázatok változhatnak a beszúrás, törlés, módosítás során o normalizált: teljesülnek bizonyos formai/tartalmi követelmények (l.:később) Előnyei: o A táblázat az emberek számára az egyik legfontosabb rendező eszköz. o A relációk elmélete egy matematikailag megalapozott deduktív elmélet, az állítások bizonyíthatók! 30

Reláció definíció 1.: Legyenek D 1, D 2,, D n nem üres (attribútumérték) halmazok (D i egyben az i-edik attribútum neve)! Egy D 1, D 2,, D n fölötti R reláció alatt az R D 1 x D 2 x x D n halmazt értjük. R elemei rendezett n-esek. D 1, D 2,, D n a reláció értelmezési tartományai, n az R reláció foka, R(D 1, D 2,, D n ) a reláció sémája. Reláció definíció 2.: Legyen Ω = {D 1, D 2,, D n }! Ω-n értelmezett függvények egy R halmazát Ω fölötti relációnak nevezzük. Feltesszük, hogy ha f R, akkor f(d i ) D i, minden i=1,2,, n-re. Megjegyzések: A két definíció ekvivalens! Ha R véges, mindkettőnél egy táblázattal adható meg. R egy táblázata az R (sémájának megfelelő) példány/előfordulás. Példák reláció sémákra: NEV(Vezeteknev, Keresztnev); DATUM(Ev,Honap,nap); IDOPONT(Ora,Perc,Masodperc,Zona); CÍM(Ir_szam,Varos,Utca,Hazszam); TAG(NEV,CÍM,DATUM); VIZSGA(NEVa,NEVb,TARGY,DATUM,JEGY) 31

Normalizált táblázat (Első normálforma, 1NF) Az R reláció (táblázata) normalizált (1NF), ha o Nincs két azonos sor. o A sorok sorrendje lényegtelen. (Nem informatív!) o Az oszlopok sorrendje lényegtelen. o Minden táblaelem elemi (atomikus). Megjegyzés: egy táblázat normalizálható. 32

A relációs adatmodellezés folyamata Ősreláció (séma): Ha egy vállalat működési adatait feltárjuk és felsoroljuk, automatikusan egy reláció sémát hozunk létre. Példa: Közkönyvtár kölcsönzési rendszere ősreláció sémája BIBL(OLV_ID,OLV_NEV,OLV_CIM,OLV_TEL,OLV_FOGL,, K_ID, K_SZERZ, K_CIM, K_RAKT,, DATUM, MEGJ) Problémák (anomáliák) o Ha BIBL séma 1NF, akkor sok redundanciát tartalmaz. (pl. olvasó adatai ismétlődhetnek). o Bővítési anomália: hogyan vigyünk fel egy új könyvet/olvasót. (NULL adat!!!) o Módosítási anomália: megváltozik egy olvasó címe. (példa: Német IR-sz). o Törlési anomália: fürdővízzel a gyereket! ; adatvesztés! o Az anomáliák közös háttere: valamilyen önmagában érdekes dolgot kapcsolatain keresztül ábrázoltunk. o Kézenfekvő megoldás:bontsuk fel az őstáblázatot célszerűen kisebb táblázatokra úgy hogy minden információ megmaradjon, amit az őstáblázat tartalmazott: OLV(OLV_ID,OLV_NEV,OLV_CIM,OLV_TEL,OLV_FOGL, ) KONYV(K_ID, K_SZERZ, K_CIM, K_RAKT, ) KOLCS(OLV_ID, K_RAKT, DATUM, MEGJ) 33

Funkcionális függőségek Legyen R(D 1, D 2,, D n ) = R(Ω) egy reláció séma és legyen A,B Ω. Azt mondjuk, hogy az R sémában B funkcionálisan függ az A-tól (jele: A B), ha tetszőleges f,g R esetén abból, hogy f(x)=g(x) minden x A-ra, következik, hogy f(x)=g(x) minden x B-re. Ez azt jelenti, hogy az R táblázataiban minden egyes sor A-beli (oszlop-) értékei egyértelműen meghatározzák a sor B-beli (oszlop-) értékeit. Funkcionális (=függvényszerű), egyértelmű kapcsolat van az A-beli és B-beli értékek között. 34

A funkcionális függőségek tulajdonságai Legyen R(D 1, D 2,, D n ) = R(Ω) egy reláció séma és legyen X,Y,Z,V Ω. 1. Reflexivitás: Ha Y X, akkor X Y. 2. Augmentivitás: Ha X Y, akkor XUZ YUZ. 3. Tranzitivitás: Ha X Y és Y Z, akkor X Z. 4. Dekompozíció: Ha X YUZ, akkor X Y. 5. Additivitás: Ha X Y és X Z, akkor X YUZ. 6. Pszeudotranzitivitás: Ha X Y és VY Z, akkor VX Z. 1.-6.: bebizonyítható tételek. Amstrong axiómák: 1-6 ból bármely funkcionális függőség levezethető! Megfordítás problémája! Függetlenség problémája! A funkcionális függőség, mint az adatmodellező eszköze: az adatok tulajdonságai és kapcsolatai a funkcionális függőségek nyelvén fogalmazódnak meg. 35

Normálformák Alapvető definíciók: Legyen R(D 1, D 2,, D n ) = R(Ω) egy reláció séma és legyen X,Y,Z,V Ω. X-től teljesen funkcionálisan függ az Y R-ben, ha X Y és Y nem függ X egyetlen valódi részhalmazától sem. Ha X Ω, akkor X kulcsjelölt R-ben. Ha az X Ω függés teljes, akkor X kulcs R-ben. X elsődleges kulcs R-ben, ha az adatmodellező annak nyilvánítja! R egy D i attribútuma elsődleges, ha eleme R valamely kulcsának, egyébként az attribútum másodlagos. Megjegyzés: o ha egy reláció 1NF, akkor van benne kulcsjelölt / kulcs. o Kívánatos, hogy az elsődleges kulcs kulcs legyen! Pl. {nev, anyja_neve} A funkcionális függés és a redundancia kapcsolata. 36

Normálformák Egy 1NF R reláció második normálformájú (2NF), ha minden másodlagos attribútum teljesen funkcionálisan függ R minden kulcsától. o Gyengítés: minden kulcs helyett elsődleges kulcs! o Példa: BIBL(OLV_ID,OLV_NEV,OLV_CIM,OLV_TEL,OLV_FOGL,, K_ID, K_SZERZ, K_CIM, K_RAKT,, DATUM, MEGJ) 1NF, de nem 2NF! Tranzitív függés: Egy Z attribútumhalmaz tranzitívan függ az X-től R-ben, ha van olyan Y, hogy X Y Z, de nem teljesül X Y Z. Egy 2NF R reláció harmadik normálformájú (3NF), ha egyetlen másodlagos attribútumhalmaz sem függ egy másik másodlagos attribútumhalmazon keresztül tranzitív módon valamely kucstól. Megjegyzés: o Vannak további (erősebb) normálformák is. o A gyakorlatban addig normalizálunk, míg 3NF táblázatokhoz nem jutunk. o Követelmény: Ha egy táblázatot több másikkal helyettesítünk, nem veszíthetünk információt! 37

Ajánlott forrás: http://www.inf.unideb.hu/kmitt/konvkmitt/fejezetek_az_adatbazisrends zerek_elmeletebol/book.xml.html 38

A relációs modell és az adatmanipuláció Alapvetés: o a reláció halmaz! o az adatmanipuláció során halmazokból újabb halmaz(oka)t származtatunk! Technikák: o Kalkulus: megadjuk a származtatni kívánt halmaz elemeinek jellemző tulajdonságát (ítélet, predikátum). o Algebra: megadunk egy kifejezést, amely leírja, milyen műveletek eredményeként adódik a származtatni kívánt halmaz ismert halmazokból. Példa: o A = { szőke lányok }, B = {barna szemű lányok } o Kalkulus: {szőke és barna szemű lányok } o Algebra: A B 39

A reláció algebra Műveletek: o Hagyományos halmazalgebrai műveletek. unió (U), metszet ( ), kivonás (\), Descartes-szorzat (X), Kapcsolatuk az adatmanipulációval, unió-kompatibilitás. o Reláció táblákon értelmezett speciális műveletek. projekció (oszlopok kiválasztása), szelekció (sorok kiválasztása), összekapcsolás (Join, Descartes-szorzaton alkalmazott szelekció) osztás (join inverz -e) 40

A relációs modell és az SQL SQL DDL: o CREATE SQL DML o SELECT o INSERT o DELETE o UPDATE SQL DCL: o 41