SQL nyelv részei DDL (Data Definition Language – Adat Definiáló Nyelv) relációs séma séma kezelő utasítások: adatbázisok, táblák létrehozása, módosítása és törlése (CREATE, ALTER, DROP) DML (Data Manipulation Language – Adat Manipuláló nyelv) adat kezelő utasítások: adatok rögzítése, módosítása, törlése és lekérdezése (INSERT, UPDATE, DELETE, SELECT)
Adatmodellek Hálós Hierarchikus Relációs (Ted Codd) – (IBM) Tiszta objektumos
Hálós (történelmi jelentőség) Több megelőző, több rákövetkező Pl: Dolgozók nem csak közvetlen feletesüktől kaphatnak információt, hanem másoktól is Hátrány: csak azok tudják használni, akik jól ismerik az adatbázis szerkezetét Jelölésrendszer:gráf
Hierarchikus (XML) Egy megelőző, több rákövetkező (fa) Pl: vállalat személyi felépítése Hierarchia bármely elemét logikailag csak egy úton lehet elérni Jelölésrendszer:faszerkezet (csúcsok – adatok, élek - kapcsolatok)
Relációs modell jelölésrendszer: mátrix (=tábla =reláció) műveletek: SQL nyelv
Adatmodellek alapelemei Egyed Tulajdonság Kapcsolat
Egyed Minden olyan dolog, ami más dolgoktól megkülönböztethető Az egyed egy konkrét értéke: előfordulás
Tulajdonság Az egyed belső szerkezete Az egyedeket tulajdonságokkal (attribútumokkal) írjuk le A tulajdonság értékeivel egy adott egyed konkrét értékét határozzuk meg Kulcs => Amennyiben egy vagy több tulajdonság egyértelműen meghatározza, az egyed melyik értékéről van szó
Kapcsolat Az egyed külső szerkezete A kapcsolat az egyedek közti viszony A konkrét értékek a kapcsolat előfordulásai
Kapcsolatok fajtája 1:1 1:N N:M
Definíciók Adatmodell: véges sok egyednek, azok véges számú tulajdonságainak és kapcsolatainak halmaza Adatbázis: véges sok egyed előfordulásának, azok véges sok tulajdonságértékének és kapcsolat-előfordulásának az adatmodell szerint szervezett együttese.
Relációs adatmodell Tábla=reláció Minden táblát egyedi neve alapján azonosítunk. táblák oszlopokból (vagy más néven attribútumokból vagy mezőkből) sorokból (vagy más néven rekordokból) állnak. Minden oszlopnak táblán belül egyedi neve és meghatározott típusa van.
Relációs adatmodell Ne legyenek teljesen megegyező tartalmú sorok vagy oszlopok A sorok és az oszlopok sorrendje ne hordozzon információt
Relációs adatmodell Minden cellában (azaz sor-oszlop metszetben) egy elemi érték szerepelhet (Speciális érték a NULL érték ) Általában létezik az oszlopoknak egy olyan kombinációja amely egyértelműen meghatározza bármelyik sort, ezt a kombinációt nevezzük kulcsnak.
Relációs adatmodell: összefoglalás Egyed: táblázattal adjuk meg Táblázat oszlopai : tulajdonságok Reláció:a tulajdonsághalmazok Descartes-szorzatának részhalmaza Minden tulajdonság halmaz Azok Descartes-szorzatának részhalmaza táblázat Reláció: matematikából kapta a nevét (pl: könyv. 20o.)
Jelölések Reláció: R Relációs adatbázis: R{A1,A2…An} Személy{név,szül,lakhely}
Reláció kulcsa Az A attributum egy K részhalmaza kulcs, ha: A K értékei az R reláció mindegyik sorát egyértelműen meghatározzák De ha egyetlen attributumot is elhagyunk K-ból, az előző már nem teljesül
Jelölés Kulcsot aláhúzással jelöljük R{A1,A2…An) Személy{személyszám,név,szül}
Külső/idegen kulcs Az a tulajdonság (vagy több tulajdonság együttese), amely egy másik relációnak a kulcsa Lehet kulcsszerepű, de másodlagos tulajdonság is A kapcsolat hordozója
Kulcsok csoportosítása Egyszerű kulcs Egyetlen attribútumból áll Összetett kulcs Egyébként Kulcsszerű attribútum a kulcsnak része Másodlagos attrivútum (leíró) egyébként
Kulcsok Két tábla csak akkor áll kapcsolatban, ha az egyik külső kulcsként tartalmazza a másik kulcsát
Kapcsolatban álló relációk ábrázolása Kulcsszerű tulajdonságok EGYED1 Másodlagos Kulcsszerű tulajdonságok EGYED1 Másodlagos
Kapcsolatban álló relációk ábrázolása azonosító DOLGOZÓ név fizetés azonosító dátum PRÉMIUM összeg Példák: 26-dik oldaltól
Funkcionális függőség Téma: Reláció tulajdonságai között fennálló függőségek, majd ezekből újakat származtatunk Adatok redundáns tárolás
Def: Funkcionális függőség Legyen R{A1,A2…An} egy reláció és P, Q az A attribútumhalmaz részhalmazai. Azt mondjuk, hogy P funkcionálisan meghatározza Q-t (Q funkcionálisan függ P-től), ha abból, hogy a reláció valamely két sora megegyezik a P halmazon, következik, hogy a két sor értékei megegyeznek a Q halmazon is. Jel: P->Q
Funkcionális függőség : Példa RENDELÉS {rendszám, vkód, vevőnév, vevőcím,kelt, határidő,cikkszám, cikknév, egységár, rendmenny,összérték}
Funkcionális függőség : Példa P= {rendszám} Q= {vkód, kelt, határidő, összérték} P->Q teljesül {rendszám}-> {vkód,kelt,határidő,összérték}
Funkcionális függőség : Példa {rendszám}-> {vkód,kelt,határidő,összérték} {vkód}->{vevőnév,vevőcím} {cikkszám}->{cikknév, egységár} {rendszám,cikkszám}-> {rendmenny}
Következtetések Kulcs funkcionálisan meghatározza: Kulcson kívűli attribútumhalmazt
Funkcionális függőségi család Egy adatbázisban lehet több olyan (P,Q) pár is, melyekre P->Q Ezek halmazát az adatbázis funkcionális függőségi családjának hívjuk, F-fel jelöljük
Összefüggések Funkcionális függőségi szabályokból levezethetők új függőségek {rendszám}->{vevőcím} ???
Összefüggések {rendszám}-> {vkód,kelt,határidő,összérték} {vkód}->{vevőnév,vevőcím} {cikkszám}->{cikknév, egységár} {rendszám,cikkszám}-> {rendmenny} {rendszám}->{vevőkód}->{vevőcím} => {rendszám}->{vevőcím}
Relációk felbontása Relációk szétbontás: lényeg: veszteségmentes legyen CÉL: redundancia megszüntetése
Speciális funkcionális függőségek Teljes: jó Részleges: rossz Tranzitív: rossz
Teljes függőség P -> Q Q funkcionálisan teljesen függ P-től, ha Q a P egyetlen részhalmazától sem függ Részlegesen függ: ellenkező esetben Q tranzitíven függ P-től, ha létezik olyan S, hogy P -> S, S -> Q, de visszafelé nem igazak a függőségek
Normalizálás Normálformák: redundancia megszüntetésének algoritmizáló lépéseit Normálformák egymásra épülnek n-dik normálformában van => (n-1)-dikben is
Normálformák – 0NF 0NF – 0. normálforma Ha létezik olyan másodlagos attributum, amely a kulcstól funkcionálisan független (táblázat ismétlődő ismeretet tartalmaz)
0NF Nagy Zsolt gépészmérnök közgazdász 1952.11.12. Kiss Pál lakatos NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Nagy Zsolt gépészmérnök közgazdász 1952.11.12. Kiss Pál lakatos 1967.03.05.
Normálformák – 1NF 1NF – 1. normálforma Ha minden másodlagos tulajdonság, funkcionálisan függ a kulcstól (csak elemi értékeket tartalmaz)
1NF Nagy Zsolt gépészmérnök 1952.11.12. közgazdász Kiss Pál lakatos NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Nagy Zsolt gépészmérnök 1952.11.12. közgazdász Kiss Pál lakatos 1967.03.05.
Normálformák – 2NF 2NF – 2. normálforma Ha 1NF és minden másodlagos attribútuma a reláció bármely kulcsától teljesen függ (nincs benne részleges függés)
2NF Nagy Zsolt gépészmérnök 1952.11.12. közgazdász Kiss Pál lakatos NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Nagy Zsolt gépészmérnök 1952.11.12. közgazdász Kiss Pál lakatos 1967.03.05.
2NF - nem 2000 3000 1000 4000 NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM munkakör fizetés Nagy Zsolt gépészmérnök 1952.11.12. tervezés 2000 közgazdász elemzés 3000 Vár Péter technikus 1976.05.06. szerelés 1000 Tóth Pista 1955.07.07 könyvelés 4000 Kiss Pál lakatos 1967.03.05.
2NF NÉV SZÜLETÉSI DÁTUM Nagy Zsolt 1952.11.12. Vár Péter 1976.05.06. Tóth Pista 1955.07.07 Kiss Pál 1967.03.05. NÉV SZAKKÉPZETTSÉG munkakör fizetés Nagy Zsolt gépészmérnök tervezés 2000 közgazdász elemzés 3000 Vár Péter technikus szerelés 1000 Tóth Pista könyvelés 4000 Kiss Pál lakatos
Normálformák – 3NF 3NF – 3. normálforma Ha 2NF és És egyetlen másodlagos attribútuma sem függ tranzitíven valamely kulcstól (nincs benne tranzitív függés)
3NF - nem NÉV SZÜLETÉSI DÁTUM Nagy Zsolt 1952.11.12. Vár Péter 1976.05.06. Tóth Pista 1955.07.07 Kiss Pál 1967.03.05. NÉV SZAKKÉPZETTSÉG munkakör fizetés Nagy Zsolt gépészmérnök tervezés 2000 közgazdász elemzés 3000 Vár Péter technikus szerelés 1000 Tóth Pista könyvelés 4000 Kiss Pál lakatos
3NF munkakör fizetés tervezés 2000 elemzés 3000 könyvelés 4000 szerelés 1000 NÉV SZAKKÉPZETTSÉG munkakör Nagy Zsolt gépészmérnök tervezés közgazdász elemzés Vár Péter technikus szerelés Tóth Pista könyvelés Kiss Pál lakatos
Normalizálás 1NF 2NF 3NF Függőségek felírása Táblák felírása Részleges függőségek megszüntetése 3NF Kulcstól való tranzitív függőségek megszüntetése Függőségek felírása Táblák felírása
Példa RENDELÉS {rendszám, vkód, vevőnév, vevőcím,kelt, határidő,cikkszám, cikknév, egységár, rendmenny,összérték}
Példa 2 dologozó {név, osztály, munkakör, munkaköri fizetés, jutalék, főnök, telephely-cím} Egy osztály egy telephelyhez tartozik A név és az osztály együtt határozza meg az egyént
Házi Adatok(cím, lakásszám, közösképviselő, tulajdonos, szobaszám, ár) Minden háztömbben 1-essel kezdődik a lakások számozása Egy háztömbnek 1 közös képviselője van Az árat a lakás mérete határozza meg
Kiadó: Aula Kiadási hely: Budapest Kiadott könyvek: 5 Szerző : Jókai Mór nemzetiség: magyar Cím: Arany Ember Példányszám: 3 Rkatári szám Kiadás éve de32425 2002 s345234 d23425523 1999 Szabó Magda Abigél 2 f32425 2001 f345234
Megszorítások Def: logikai értékű fv-ek, amelyektől elvárjuk, hogy igazak legyenek. Az olyan módosításokat, amelyek a megszorításokat megsértik, a rendszer visszautasítja. Hivatkozási integritás Beszúrás, törlés, módosítás
Megszorítások Kulcsok megadása Elsődleges és egyedi Idegen Tulajdonság-értékére vonatkozó korlátozás Önálló megszorítások
Megszorítások NULL érték -> not NULL Alapértelmezett érték -> DEFAULT Mező érték -> =<> stb