Adatbázisok
Adat vs. Információ Adatok: Nyers tények Feldolgozatlan információ Az információ építőelemei Tárgyak, események és környezetük tulajdonságait reprezentálják Megfigyelések eredményeként jönnek létre. Addig azonban nem használhatók fel, amíg nincsenek használható (azaz releváns) formában Információ: Feldolgozott adat Információs rendszerek hozzák létre, tárolják, keresik vissza, továbbá dolgozzák fel őket Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.
Elvárások az adatok kezelésével kapcsolatosan A legalapvetőbb feladatok megoldása (bevitel, módosítás, törlés, lekérdezés) Redundancia-mentes tárolás (nincs adatismétlődés) Adatintegritás megőrzése (az adatok érvényesek és ellentmondás-mentesek) Program és adatfüggetlenség (az adattárolás módja és a kezelő program teljesen elkülöníthető)
Az adatbázis fogalma Hétköznapi értelemben rendezett, valamilyen szempont szerint tárolt adatok összessége. Az adatbázisban az adatok között meghatározott kapcsolatok vannak. Nemcsak az adatok rendezett tárolását, hanem azok kezelését is lehetővé teszi, mert a kapcsolatok nélkül az adatok eltérően értelmezhetők. Az eltárolt adatokat, azok jellemzőit metaadatoknak nevezzük Az adatbázis adott célból összeállított adatok rendezett szerkezete, mely lehetővé teszi adatok és segédinformációk tárolását és visszanyerését. Az eltárolt adatok struktúrája és a kezelő rendszer együttese.
Adatbázisok Adatbázis: adatok gyűjteménye, amelyeket az adatbázis-kezelő rendszer (DBMS Database Management System) kezel. Kezelt adatrendszer: adatbázis Kezelő programrendszer: adatbáziskezelő
Adatbázis-kezelő rendszer jellemzői Óriási adatmennyiséget tárolhat Rendszerezett és hatékony adatkinyerés elengedhetetlen Alapfunkciók: Létrehozás, elemek definiálása Adatok mentése, tárolása, megnyitása Lekérdezések Adatvédelem, kódolás, hozzáférési jogok
Adatbázis-kezelő rendszer fogalma Olyan speciális szoftverrendszer, amellyel lehetséges az adatbázisokban tárolt adatok definiálása kezelése karbantartása felügyelete
Az adatbázis-kezelő rendszerrel szembeni elvárások Új adatbázisok létrehozása adatdefiníciós nyelv segítségével. (DDL) Meglévő adatok lekérdezése, módosítása lekérdező vagy adatmanipulációs nyelv segítségével. (SQL) Támogassa az adatok hosszú időn át történő biztonságos tárolását. Felügyelje a több felhasználó egy időben történő adathozzáférését
Adatbázis-kezelő rendszerekkel szemben támasztott követelmények Adatintegritás (az adatok és kapcsolatok helyessége, érvényessége és ellentmondás-mentessége) Rugalmasság (az adatok egyszerű módosíthatósága) Hatékonyság (gyors keresés és módosítás) Adatfüggetlenség (hardver és szoftverfüggetlenség) Adatbiztonság (védelem hardver és szoftverhibákkal szemben) Adatvédelem (illetéktelen felhasználókkal szemben) Osztott hozzáférés (több felhasználó egyidejű hozzáférésének biztosítása)
Adatbázis-kezelő rendszerek segédprogramjai Adatbázis adminisztrátor (a rendszer működéséhez szükséges paraméterek beállítása) Adatbázis-kezelő segédprogramok (adattáblák, eljárások, indexelések kezelése) Archiváló, biztonsági mentést szolgáló segédprogramok Alkalmazásfejlesztés eszközei SQL alapú kliensprogramok (más adatbázis-kezelők adatainak lekérdezése SQL utasítások segítségével)
Adatbáziskezelő rendszerek felépítése 3 fajta input: Lekérdezések az adatokra vonatkozó kérések Módosítások adatok módosítása Sémamódosítások az adatbázis szerkezetét lehet megváltoztatni Tárkezelő a kért információ beolvasása a tárolóhelyről Lekérdezés-feldolgozó a lekérdezéseket egyszerű utasítások sorozatává alakítja Tranzakciókezelő a tranzakciók hibátlan futásának a biztosítása
Az adatbiztonság Integritási kényszerek Az integritási kényszerek azon szabályok, amelyeket az adatbázisnak rendszerint figyelembe kell vennie. (Pl.: az attribútum-értékek előírt határértékek között vannak; az objektumok közötti relációk nem lehetnek ellentétben egymással; hivatkozási integritás, stb.) Tranzakciók Minden, a felhasználó által meghatározott változtatás és újradefiniálás mindaddig ideiglenes, míg nincs ellenőrizve. Az adatbázis csak a tranzakció végével változtatható meg. Zárolás Naplózás
Adatbázis architektúrák Centralizált adatkezelés Egy számítógépen történik az adatok tárolása, feldolgozása Kliens-szerver adatbázis architektúrák A szerveren hozzáférési jogokkal karbantartási műveletek valósíthatók meg. Elosztott adatbázis rendszerek A logikailag egységes, fizikailag azonban különböző - egymással összekapcsolt - számítógép rendszereken megvalósított adatbázist osztott adatbázisnak nevezünk (a távolság nem számít). A feladatok megosztása a nagygép tehermentesítése céljából történik.
Adatmodellezés Az adatmodellezés segítséget nyújt a környező világ megértésében és leképezésében, a lényeges jellemzők kiemelésében. Az adatmodell az adatok és az azok közötti összefüggések leírására szolgál. A modell olyan mesterséges rendszer, amely felépítésében és viselkedésében megegyezik a vizsgált létező rendszerrel Adatmodellnek nevezzük az adatok struktúrájának (felépítésének) leírására szolgáló modelleket.
Egyed-tulajdonság-kapcsolat Az adatmodell a fenti három fogalom együttese Egyednek nevezzük az információs rendszert felépítő személyeket, tárgyakat, eseményeket Az egyedeket a tulajdonságaik jellemzik A tulajdonság egy érték, amelynek tulajdonságtípusa van. pl: név Géza tulajdonságtípus tulajdonság
Egyed-tulajdonság-kapcsolat A tulajdonság lehet: Azonosító, mely minden egyednél különböző értéket vesz fel, az egyedek közt nem ismétlődhet pl: személyi szám (1 780520 2452) Leíró tulajdonság, mely az egyed egy jellemzőjét írja le, több egyednél is előfordulhat pl: név (Szabó Géza) Gyengén jellemző tulajdonság, mely az előzőhöz hasonló, de nem kötelező megadni (üres is lehet) pl: kedvenc sportága (autóverseny) Kapcsoló tulajdonság, mely egyik egyedben leíró, a másikban azonosító funkciót tölt be pl: születési hely (Debrecen)
Egyed-tulajdonság-kapcsolat Egy rendszerben az egyedek nem elszigetelten vannak jelen, hanem kapcsolatban állnak más egyedekkel és objektumokkal. A kapcsolatrendszer többszintű, bonyolult struktúra, melyben több rendszer is kapcsolatban állhat egymással. Az ETK (egyed- tulajdonság- kapcsolat) modellben két egyedtípus egyedei közötti viszonyt kapcsolatnak nevezzük
Kapcsolatok típusai egy-az-egyhez (1-1) egy egyedtípus egy egyedéhez egy másik egyedtípus csak egyetlen egyede kapcsolódhat és fordítva is igaz (osztály-osztályfőnök) egy-a-többhöz (1-N) egy egyedtípus egy egyedéhez egy másik egyedtípus több egyede is kapcsolódhat de fordítva nem igaz (osztály-tanuló) több-a-többhöz (N-M) egy egyedtípus egy egyedéhez egy másik egyedtípus több egyede is kapcsolódhat de fordítva is igaz (osztály-tanár) Az adatbázis fogalma a kapcsolatok alapján: Az adatbázis véges számú egyedek, azok egyenként is véges számú tulajdonságainak és kapcsolatainak adatmodell szerinti szervezett együttese.
Egy példa Kapcsolatok Tulajdonságtípusok Emberek (Név, Szem.szám,Szakma) Tulajdonságértékek Kapcsolat előfordulás Kis József 1 33 Mérnök, közg. Nagy Irén 2 33 Tanuló Kapcsolat előfordulások Autók(Rendszám,Típus) Kovács István 1 33 - ABC- 123 VW tulajdonos autó 1:N tulajdonos lakás N:M házastárs1 házastárs2 1:1 Egyedek Kapcsolat előfordulások Lakások (Cím, Hrsz) DEF- 456 GHJ- 789 Alfa Opel 1111 Bp. Báb Hrsz 12 1211 Bp. Vas u Hrsz 23 1031 Bp. Gát u Hrsz 45 Egyedhalmazok
Az egyed-kapcsolat modell (E-K) (Entity-Relationship) (SSADM Structured System Analysis and Design Method alapok) Egyedhalmaz Az EK modell tulajdonságai Egyértékű minden egyednél egyetlen érték Többértékű Egyszerű Összetett Kulcstulajdonság Alaptulajdonság név több értéket is felvehet (pl. egy anya gyerekei) nem bontható további tulajdonságokra további tulajdonságokra bontható (pl. lakcím = irszám + város + ) Az elemeket egyértelműen azonosító egyértékű tul. Létezik más tulajdonságoktól függetlenül Származtatott tulajdonság Egyéb tulajdonságokból előállított életkor=fv(szül.dat)
Az EK modell kapcsolatai 1 N A kapcsolatokat Név A kapcsolatoknak tulajdonságaik tul1 tul2 A kapcsolatban résztvevők száma alapján beszélünk a kapcsolat fokáról Unáris, vagy rekurzív Bináris, vagy két résztvevős Trináris: háromrésztvevős. jellel jelöljük. is vannak és típusuk. Sz.számF Sz.számN 1 1 házasság Hrsz Cím Ir.sz Város Lakások Sz.szám N Lak.Tul M 1 Név Emberek Sz.szám Szakm Hrsz Autótul. N Autók Típus Rendszám Sz.szám Rendszám 21
Példák E-K modellre Lemezek- szoftverek számítógépes nyilvántartása A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójuk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Adatok Lemezkód Lemezmárka Lemez kapacitás Szoftverkód Szoftvernév Gyártókód Gyártónév
Megoldás LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver LemezKód L_Kapacitás L_Márka Szoftverkód N SZ_GY 1 Gyártókód Gyártó A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójuk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Gyártókód Gyártónév Adatok Lemezkód Lemezmárka Lemez kapacitás Szoftverkód Szoftvernév Gyártókód Gyártónév
Példák E-K modellre DVD kölcsönző számítógépes nyilvántartása A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal
Megoldás FilmKód Lemezkód Lemezkód Lemezár FilmKód Filmek Filmcím Tartalom A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal N Elvitel vissza M Kölcs_név Lemezek N Kölcsönz 1 Kölcsönzők Kölcs_kód Kölcs_cím Lemezkód Kölcs_kód
Adatbázis-szerkezetek Adatbázisok kialakításánál olyan szerkezetet kell kialakítani, amelyben a leghatékonyabban dolgozhatjuk fel az adatokat. A leggyakoribb adatszerkezetek: Hierarchikus Hálós Relációs
Hierarchikus adatbázismodell A hierarchikus modellen alapuló adatbázisokban az adatokat aláfölérendeltségi viszonnyal meghatározott szerkezettel írjuk le. Csak egy a többhöz (1:N) típusú kapcsolatok képezhetők le. Az adatok csak a tárolt hierarchiának megfelelő sorrendben érhetők el. Fastruktúrával szemléltethető. Iskola Tanulók Tanárok Dolgozók 9.évfolyam 10. évfolyam 11. évfolyam 12. évfolyam
Hálós adatbázismodell Az egyes adategységek közötti kapcsolat gráffal írható le. A gráfban csomópontok találhatók, melyeket élek kötnek össze. Két csomópont között akkor van kapcsolat, ha őket él köti össze. Egy csomópontból tetszőleges számú él indulhat, de egy él csak két csomópontot köthet össze. Ezzel a modellel egy a többhöz (1:N) és több a többhöz (N:M) kapcsolatok is leírhatók Csak a tárolt kapcsolatok mentén bejárható. Géza Zoltán Kati Tibi Orvos Könyvtár Autó
Relációs adatbázismodell Az adatok tárolása táblázatos formában, a táblázat soraiban és oszlopaiban valósul meg. Nincsenek előre meghatározott kapcsolatok, a kapcsolatok létrehozásához szükséges adatokat tároljuk és használjuk fel. A relációs adatmodell jellemzői: Egyszerűen értelmezhető, átlátható. Rugalmas, könnyen kezelhető. A relációk kezelése matematikai műveletekkel leírható. (Relációs algebra)
Relációs adatbázismodell A reláció egy adattábla,(táblázat), a soraiban tárolt adatokkal együtt. A reláció sorait rekordoknak, oszlopait attribútumoknak (tulajdonságtípusoknak), egy sor és egy oszlop metszéspontjában található adatot tartalmazó elemet mezőnek nevezzük. Tulajdonságtípusok Rekordok Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B Mezők
Relációk (táblák) jellemzői A relációk rekordjaiban tároljuk a logikailag összetartozó adatokat A relációban tárolt rekordok számát a reláció számosságának nevezzük. A relációk oszlopaiban (attribútumaiban) az azonos tulajdonságokra vonatkozó adatok jelennek meg. Egy tábla nem tartalmazhat két azonos nevű oszlopot. Az oszlopok (attribútumok) számát a reláció fokának nevezzük. Négyfokú reláció Számossága kettő Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B
Relációk (táblák) jellemzői Egy relációra vonatkozó követelmények: Minden rekordja különböző Nem tartalmazhat két azonos attribútumot Minden rekord mezőszerkezete azonos A rekordok és attribútumok sorrendje tetszőleges lehet Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B 003 Zoli 10 C
Relációs adatbázisok kezelése A relációkon végzett műveletek két csoportra oszthatók: 1. Adatkezelő műveletek Adatbevitel Törlés Adatmódosítás 2. Adatlekérdező műveletek A relációs algebra műveleteivel végezzük A lekérdezés eredményeként mindig egy újabb relációt kapunk, mely része az adatbázisnak.
A relációs algebra műveletei A műveletek két csoportra oszthatók aszerint, hogy egy, vagy több reláción hajthatók végre. Egy reláción végrehajtható (egyoperandusú) műveletek: Szelekció Projekció Kiterjesztés Csoportosítás
A relációs algebra műveletei Több reláción végrehajtható (többoperandusú) műveletek: Descartes-szorzat Összekapcsolás Unió Metszet Különbség
A szelekció (kiválasztás) művelet (egy reláción végzett művelet) A szelekció (kiválasztás) művelete egy relációból csak egy adott feltételnek megfelelő sorokat jeleníti meg az eredmény relációban. Az eredmény számossága 0 és N között lesz, az eredmény reláció számossága nem változik. A TANULO relációból a VAROS mező értéke = Siófok Kod Nev Varos Evf. Oszt. 001 Balázs Budapest 12 a 002 Zoli Siófok 11 b 003 Kati Siófok 9 c 004 Mari Győr 11 b Kod Nev Varos Evf. Oszt. 002 Zoli Siófok 11 b 003 Kati Siófok 9 c
A projekció (vetítés) művelet (egy reláción végzett művelet) A művelet során egy reláció oszlopai közül csak bizonyosakat őrzünk meg az eredmény relációban. Az eredmény attribútumok (oszlopok) száma 1 és a műveletben résztvevő reláció attribútumai között változhat. Kod Nev Varos Evf. Oszt. 001 Balázs Érd 12 a 002 Zoli Siófok 11 b 003 Kati Siófok 9 c 004 Mari Győr 11 b Kod Nev Varos 001 Balázs Érd 002 Zoli Siófok 003 Kati Siófok 004 Mari Győr
Kiterjesztés (egy reláción végzett művelet) A lekérdezésben nem egyes konkrét mezőértékeket, hanem az azokból matematikai műveletekkel képzett eredményeket jelenítünk meg. Az eredmény relációban újabb mezőt képezünk a kiinduló reláció mezőivel végzett műveletek eredményének megjelenítésére. Kod Nev Elmelet Gyakorlat 001 Balázs 20 12 002 Zoli 23 11 003 Kati 10 9 004 Mari 19 11 Kod Nev Elmelet Gyakorlat Osszpont 001 Balázs 20 12 32 002 Zoli 23 11 34 003 Kati 10 9 19 004 Mari 19 11 30
Csoportosítás (egy reláción végzett művelet) A relációk rekordjait valamely attribútumok alapján meghatározott csoportokba foglaljuk, majd a csoportokhoz különböző függvényekkel meghatározott értéket rendelünk. (Pl: összeg, átlag, min, max, elemszám, szórás,) Kod Nev Evf. Oszt. Matekjegy 001 Balázs 12 a 2 002 Zoli 11 b 4 003 Kati 9 c 3 004 Feri 11 b 4 005 Mari 11 b 3 Kod Nev Evf. Oszt. Matekjegy Atlag 002 Zoli 11 b 4 004 Feri 11 b 4 3,66 005 Mari 11 b 3
Descartes-szorzat (két reláción végzett művelet) Két reláció sorait minden variációban egymás mellé teszi az eredmény relációban. Kod Nev Evf. Oszt. 001 Balázs 12 a 005 Mari 11 b TKod T01 T02 T05 Oszt. matek fizika kémia Kod Nev Evf. Oszt. TKod Oszt. 001 Balázs 12 a T01 matek 001 Balázs 12 a T02 fizika 001 Balázs 12 a T03 kémia 002 Mari 11 b T01 matek 002 Mari 11 b T02 fizika 002 Mari 11 b T03 kémia
Összekapcsolás (két reláción végzett művelet) Két relációt kapcsol össze egy-egy attribútumuk alapján. Az eredmény relációba azok a rekordok kerülnek, amelyhez található adott feltételt kielégítő sor a második relációban. Kod Nev Hobbykod 001 Balázs 1 002 Mari 2 003 Misi 4 004 Dani 1 HobbyKod Tevekenyseg 1 Sport 2 Olvasás 3 Mozi Kod Nev Hobbykod HobbyKod Tevekenyseg 001 Balázs 1 1 Sport 002 Mari 2 2 Olvasás 004 Dani 1 1 Sport
Relációkon végezhető halmazműveletek A halmazműveleteket csak azonos szerkezetű relációk között lehet elvégezni. Azonos szerkezetű két reláció, ha oszlopaik száma és a tárolt adatok típusa megegyezik. UNIÓ: Az eredmény reláció tartalmazni fogja azokat a rekordokat, amelyek legalább az egyik relációban szerepelnek. Azonos rekordok az eredmény relációban csak egyszer szerepelnek.
Relációkon végezhető halmazműveletek METSZET Az eredmény reláció csak azokat a rekordokat tartalmazza, amely a két reláció mindegyikében szerepel. Ha a metszet reláció üres, akkor a műveletben szereplő relációkban nincsenek azonos rekordok. A relációk sorrendje felcserélhető
Relációkon végezhető halmazműveletek KÜLÖNBSÉG Az eredmény reláció csak azokat a sorokat tartalmazza, amelyek az első relációban megtalálhatók, de a másodikban nem. Csak két, azonos szerkezetű relációra végezhető el. A műveletben szereplő relációk sorrendje nem cserélhető fel.
Azonosítás - kulcsokkal Kulcs: egyértelműen azonosítja az egyedet az egyedhalmazon belül. Pl. Cím+Év a Film egyedhalmaznál Ha a kulcs egyetlen attribútumból áll, akkor egyszerű kulcs, egyébként összetett kulcs. Egy reláció esetén megadható több kulcs is, ezek közül azt, amire egy adatfeldolgozási feladat végrehajtásakor szükségünk van és felhasználjuk, elsődleges kulcsnak mondjuk. Az elsődleges kulcson kívül minden egyéb kulcsot másodlagos kulcsnak nevezünk Idegen kulcs: egy reláció attributuma(i), amely(ek) egy másik relációban elsődleges kulcs(ok).
Egyedhalmazok a relációs modellben Az átírás szabályai 1. Tábla név = az egyedhalmaz neve 2. A tábla attribútumai = tulajdonság nevek 3. Az oszlopok értékkészlete = a tulajdonság értékkészlete 4. Tábla sorok = egyedhalmaz elemek 5. Probléma a többértékű tulajdonságok kezelése Minden tulajdonságértéket új sorba írunk, azonos atomi értékekkel Nagyné Anya Gyerek Nagyné 6. Ha nincs többértékű, akkor marad a kulcs, egyébként többelemű Nagy Ede Nagy Éva Emberek Autók Lakások Sz.szám Név Szakma Rendszám Típus Hrsz. Cím Speciális adatértékek NULL Alapértelmezett
Kapcsolatok ábrázolása Az egyik reláció bővítése a másik előfordulását azonosító oszlopokkal. (Idegen kulcs) 1:1 esetén bármelyik táblázatba a másik elsődleges kulcsa 1:N esetén csak az egyikbe (N oldal) a másik elsődleges kulcsa N:M esetén új tábla az elsődleges kulcsokkal és a kapcsolatot jellemző tulajdonságokkal. Autók Rendszám Típus Tulaj Lakás tulajdonosok 1:N Emberek Sz.szám Sz.szám Hrsz Lakások N:M 1:1 1:1 Hrsz Cím Név 1:1 1:1 1:N Házastársak Férj Szakma Sz.szám Feleség Szakma
Példák E-K modell átírására Lemezek- szoftverek számítógépes nyilvántartása LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver 1 LemezKód L_Kapacitás L_Márka Szoftverkód SZ_GY N Gyártókód Gyártó Gyártókód Gyártónév
Megoldás Lemez Lemezkód L_márka L_kapacitás Tartalom 1:1 Lemezkód Szoftverkód 1:1 Szoftver Szoftverkód Szoftvernév N:M 1:1 SZGY Szoftverkód Gyártó_kód 1:N 1:1 Gyártó Gyártó_kód Gyártó_név 49
Példák E-K modell átírására DVD kölcsönző számítógépes nyilvántartása FilmKód Lemzkód Lemezkód Lemezár FilmKód Filmek N Filmcím Tartalom Elvitel vissza M Lemezek N Kölcsönz 1 Lemezkód Kölcs_kód Kölcsönzők Kölcs_név Kölcs_kód Kölcs_cím
Megoldás Filmek Filmkód Filmcím Tartalom 1:1 1:1 Filmkód Lemezkód Lemezek Lemezkód Lemezár N:M 1:N 1:1 Kölcsönz Lemezkód Kölcs_kód Elvitel Vissza 1:1 Kölcsönzők Kölcs_kód Kölcs_név Kölcs_cím 51
SQL Structured Query Language strukturált lekérdezőnyelv a relációs algebrára épül kiterjed az adatkezelő tevékenységekre: adatdefiniáló (DDL) adatkezelő (DML) lekérdező (DQL) vezérlő (DCL)
SQL műveleti sorrend - objektumok, táblák létrehozása - adatok felvitele - adatok lekérdezése - adatok módosítása - szerkezetek módosítása - működési környezet beállítása Termék Termék kód név ár dátum 1233 Alma 23 98.V.3 1253 Dió 783 01.I.8 4433 Mogyi 97.II.11 1233 Alma 23 98.V.3 6233 Bab 79 75.X.2
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 Módosítás: DML: - rekord felvitel INSERT - rekord törlés DELETE - rekord módosítás UPDATE Lekérdezés: DQL: - lekérdezés SELECT Vezérlés DCL: - védelem GRANT,.. - tranzakció kezelés COMMIT,..
Definíció Objektum létrehozása: CREATE TABLE tnév (mnev1 tipus1 intfelt1,,intfelt)... ; CHAR(n) NUMBER(n,m) DATE PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY, AR NUMBER(9) NOT NULL, IDO DATE);
Definíció Objektum megszüntetése: DROP TABLE tnév ; Objektum séma módosítás: ALTER TABLE tnév ADD MODIFY (mnev tip intfelt intfelt);
Módosítás Rekord felvitele: INSERT INTO tabla VALUES (mezo=ertek, ); Az érték lehet NULL is. Nem maradhat ki mező. Fontos a mezősorrend INSERT INTO AUTO VALUES ( bju564,234, FIAT ); INSERT INTO AUTO VALUES ( bju564,234,null); INSERT INTO AUTO VALUES (RSZ= bju564,...);
Módosítás Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltételnek eleget tevő rekordok törlődnek Ha elmarad a WHERE tag, minden rekord törlődik DELETE FROM AUTO WHERE AR<1200000; Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel; A feltételnek eleget tevő rekordok módosulnak Ha elmarad a WHERE tag, minden rekord módosul UPDATE AUTO SET AR = AR * 1.2 WHERE AR<1200000;
Lekérdezés Adatok lekérdezése: SELECT mezőlista FROM tabla1,tabla2,... JOIN... WHERE feltétel GROUP BY cskif csoportosítás HAVING feltétel ha a csoportra további megszorítást akarunk adni ORDER BY rendezés Pl: SELECT kód, név, jegy FROM hallgató, tanult tárgyak WHERE tanszék= menedzser GROUP BY név HAVING szülév<1984;
SELECT - projekció SELECT mlista FROM tábla; AUTÓ rsz tipus szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Suzuki piros projekció kijelölt mezõk = tipus, rsz tipus Fiat Opel Mazda Skoda Suzuki szín zöld kék piros kék piros SELECT TIPUS, SZIN FROM AUTO; Az mlista helyén * áll, ha minden mező kell
SELECT - szelekció SELECT mlsita FROM tábla WHERE feltétel; AUTÓ rsz tipus szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Suzuki piros rsz tipus szín r2 Opel kék r4 Skoda kék r6 Mazda piros szelekció feltétel: szín = 'piros' VAGY tipus = 'Mazda' SELECT * FROM AUTO WHERE SZIN = KÉK OR TIPUS = MAZDA ;
Műveletek kombinálása AUTÓ rsz tipus szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Suzuki piros szelekció feltétel: szín='piros' VAGY szín='kék' projekció kijelölt mezõk = rsz rsz r2 r6 r4 r9 SELECT RSZ FROM AUTO WHERE SZIN = PIROS OR SZIN= KEK ;
SELECT - join SELECT mlista FROM tabla1, tabla2,.. WHERE feltétel; AUTÓ rsz tulaj r1 3 r4 1 r6 4 összekapcsolás rsz tulaj id név r1 r4 r6 3 1 4 1 1 1 Laci Laci Laci r1 r4 3 1 2 2 Ágota Ágota Ha a feltétel elmarad Descartes szorzatot kapunk EMBER id név 1 Laci 2 Ágota 3 János 4 Zoltán r6 r1 r4 r6 r1 r4 r6 4 3 1 4 3 1 4 2 Ágota 3 János 3 János 3 János 4 Zoltán 4 Zoltán 4 Zoltán Kettőnél több tábla is összekapcsolható
Szelekciós join SELECT * FROM AUTO, EMBER WHERE TULAJ = IGSZ; Ha több táblában is azonos elnevezésű mező van, akkor a kibővített mezőnevet használjuk: tábla.mező SELECT * FROM AUTO, EMBER WHERE AUTO.TULAJ = EMBER.IGSZ; Ha hosszú a táblanév alias nevet használhatunk: tábla alias SELECT * FROM AUTO A, EMBER E WHERE A.TULAJ = E.IGSZ;
SELECT - kifejezés megadása SELECT kifejezés (mezőnév,... FROM ; Az előállító kifejezés AUTÓ rsz tipus ár kiterjesztés rsz tipus ár r1 Fiat 1200 új mezõ: ár/100 r1 Fiat 1200 r2 Opel 930 r2 Opel 930 r6 Mazda 870 r6 Mazda 870 r4 Skoda 1500 r4 Skoda 1500 r9 Suzuki 1400 r9 Suzuki 1400 ár/100 12 9.3 8.7 15 14 SELECT AR/100 UJAR FROM AUTO;
SELECT - aggregáció megadása SELECT aggregációs-lista FROM tábla; SUM(mez.kif) AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif) MIN(mez.kif) AUTÓ rsz tipus ár r1 Fiat 1200 r2 Opel 930 r6 Mazda 870 r4 Skoda 1500 r9 Suzuki 1400 r7 Opel 2570 r11 Fiat 850 r8 Opel 1000 csoportképzés kifejezés: Count() 8 kiírandó: COUNT() SELECT COUNT(*) FROM AUTO;
SELECT - aggregáció és csoportképzés megadása SELECT aggregációs-lista FROM tábla GROUP BY csopképzkif; SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS; AUTÓ rsz tipus ár r1 Fiat 1200 r2 Opel 930 r6 Mazda 870 r4 Skoda 1500 r9 Suzuki 1400 r7 Opel 2570 r11 Fiat 850 r8 Opel 1000 csoportképzés kifejezés: tipus kiírandó: tipus, AVG(ár) tipus Fiat AVG(ár) 1025 Opel Mazda 1500 870 Skoda 1500 Suzuki 1400
SELECT - eredmény rekordok rendezése SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2...; ASC DESC A második mező szerinti szempont csak az első egyezősége esetén lényeges SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY AR DESC, TIPUS; Lehet sorszámmal is hivatkozni a mezőkre SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY 3 DESC, 2;
A keresési feltételben megadható összehasonlító operátorok numerikus, karakteres és dátum típusú adatokra halmazokra
A keresési feltételben szereplő szöveges minta megadása A LIKE operátort karakteres mezők összehasonlítására alkalmazhatjuk. Két speciális karakter adható meg: % jel tetszőleges hosszúságú karakter sorozatot helyettesít, _ aláhúzás karakter pedig egy tetszőleges karaktert. Például:
Logikai operátorok Az összehasonlító operátorok precedenciája (végrehajtási sorrendje) csökkenő sorrendben:
Példák BOROK(kod, nev, gyarto, fajta, ar) VEVO(vkod, nev, cim) RENDELES(vevo, bor, mennyiseg,datum) 1. azon vevők, akik rendeltek Bikavért SELECT V.NEV FROM VEVO V, RENDELES R, BOROK B WHERE V.VKOD = R.VEVO AND R.BOR = B.KOD AND B.NEV LIKE BIKAVER% ; 2. Melyik gyártó termel 5-nél több vörös bort SELECT GYARTO FROM BOROK WHERE FAJTA = VOROS GROUP BY GYARTO HAVING COUNT(*) > 5;