adatbázisok - mogi.bme.hu informatikai tÁrgyak... · 3 fajta input: lekérdezések ... műveletek...
TRANSCRIPT
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ákfel őket
Az adatok és információk közötti különbség nem strukturális, hanemfunkcioná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 metaadatoknaknevezzü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ázis-
kezelő
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 azadatbázisnak rendszerint figyelembe kell vennie. (Pl.: azattribútum-értékek előírt határértékek között vannak; azobjektumok közötti relációk nem lehetnek ellentétbenegymá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ésEgy számítógépen történik az adatok tárolása, feldolgozása
Kliens-szerver adatbázis architektúrákA szerveren hozzáférési jogokkal karbantartási műveletek valósíthatók meg.
Elosztott adatbázis rendszerekA 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 tulajdonságtípus
Géza 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ődhetpl: 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
Autók(Rendszám,Típus)
ABC- 123 VW
DEF- 456 Alfa
GHJ- 789 Opel
Lakások (Cím, Hrsz)
1111 Bp. Báb… Hrsz 12…
1211 Bp. Vas u… Hrsz 23…
1031 Bp. Gát u… Hrsz 45…
Egyedek
Emberek (Név, Szem.szám,Szakma)
Egyedhalmazok
Kapcsolatok
tulajdonos autó 1:N
tulajdonos lakás N:M
házastárs1 házastárs2 1:1
Tulajdonságértékek
Kapcsolat
előfordulás
Kapcsolat
előfordulások
Kapcsolat
előfordulások
Tulajdonságtípusok
Kis József 1 33… Mérnök,
közg.
Nagy Irén 2 33… Tanuló
Kovács István 1 33… -
Egyértékű
Többértékű
Egyszerű
Összetett
Kulcstulajdonság
Alaptulajdonság
Származtatott tulajdonság
Az egyed-kapcsolat modell(E-K) (Entity-Relationship) (SSADM Structured System Analysis and Design Method alapok)
Az EK modell tulajdonságaiminden egyednél egyetlen érték
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 + …)
név Az elemeket egyértelműen
azonosító egyértékű tul.Létezik más tulajdonságoktól
függetlenül
Egyéb tulajdonságokból
előállított életkor=fv(szül.dat)
Egyedhalmaz
21
A kapcsolatokat jellel jelöljük.
A kapcsolatoknak is vannak tulajdonságaik és típusuk.
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.
Az EK modell kapcsolatai1 N
Név
tul1 tul2
Emberek
Név Sz.szám
Autók
Típus
Rendszám
Lakások
Cím
Hrsz
házasság1 1
Sz.számF Sz.számN
Autótul.
1
N
RendszámSz.szám
Lak.TulN M
Sz.szám
Hrsz
SzakmIr.sz Város …
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
Példák E-K modellre
Megoldás
Lemez Szoftver
Gyártó
L_Kapacitás
L_Márka
LemezKód
Szoftverkód Szoftvernév
Gyártókód Gyártónév
Tartalom
LemezKód Szoftverkód
SZ_GYSzoftverkód Gyártókód
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
N M
1
N
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
Példák E-K modellre
Megoldás
Filmek Lemezek
Kölcsönzők
FilmcímFilmKód
Lemezkód Lemezár
Kölcs_kód
Kölcs_név
Tartalom
FilmKód Lemezkód
Kölcsönz
Elvitel Lemezkód
Kölcs_cím
Kölcs_kódvissza
• 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 M
1
N
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
9.évfolyam11.
évfolyam
10. évfolyam
12. évfolyam
Tanárok Dolgozók
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.
Azonosító Név Évfolyam Osztály
001 Kati 11 A
002 Tibi 12 B
Tulajdonságtípusok
Mezők
Rekordok
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.
Azonosító Név Évfolyam Osztály
001 Kati 11 A
002 Tibi 12 B
Számossága
kettő
Négyfokú reláció
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
3,66004 Feri 11 b 4
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.
TKod Oszt.
T01 matek
T02 fizika
T05 kémia
Kod Nev Evf. Oszt.
001 Balázs 12 a
005 Mari 11 b
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 neve2. A tábla attribútumai = tulajdonság nevek3. Az oszlopok értékkészlete = a tulajdonság értékkészlete4. 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
6. Ha nincs többértékű, akkor marad a kulcs, egyébkénttöbbelemű
Autók
Rendszám Típus
Lakások
Hrsz. Cím
Speciális adatértékek• NULL
• Alapértelmezett
Sz.szám
Emberek
Név Szakma
Anya GyerekNagyné Nagy Ede
Nagyné Nagy Éva
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.
Emberek
Sz.szám Név
Autók
Rendszám Típus Tulaj1:N
1:1Lakás tulajdonosok
Sz.szám Hrsz Lakások
Hrsz Cím
1:1
1:1
Házastársak
Férj Feleség1:1
N:M
Szakma
Sz.szám Szakma1:N
Példák E-K modell átírásáraLemezek- szoftverek számítógépes nyilvántartása
Lemez Szoftver
Gyártó
L_Kapacitás
L_Márka
LemezKód
Szoftverkód Szoftvernév
Gyártókód Gyártónév
Tartalom
LemezKód Szoftverkód
SZ_GYSzoftverkód Gyártókód
N M
1
N
49
Lemez
Lemezkód L_márka L_kapacitás
Szoftver
Szoftverkód Szoftvernév
Gyártó
Gyártó_kód Gyártó_név
Tartalom
Lemezkód Szoftverkód1:1 1:1
N:M
SZGY
Szoftverkód Gyártó_kód
1:1
1:1
1:N
Megoldás
Filmek Lemezek
Kölcsönzők
FilmcímFilmKód
Lemezkód Lemezár
Kölcs_kód
Kölcs_név
Tartalom
FilmKód Lemzkód
Kölcsönz
Elvitel Lemezkód
Kölcs_cím
Kölcs_kódvissza
DVD kölcsönző számítógépes nyilvántartása
N M
1
N
Példák E-K modell átírására
51
Megoldás
Filmek
Filmkód Filmcím
Lemezek
Lemezkód Lemezár
Kölcsönzők
Kölcs_kód Kölcs_név Kölcs_cím
Tartalom
Filmkód Lemezkód1:1 1:1
N:M
Kölcsönz
Lemezkód Kölcs_kód Elvitel Vissza
1:1
1:1
1:N
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
1233
1253
4433
6233
Alma
Dió
Mogyi
Bab
23
783
79
98.V.3
01.I.8
97.II.11
75.X.2
kód név ár dátum
Termék
1233 Alma 23 98.V.3
Termék
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ó
AUTÓ
rsz tipus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Suzuki pirosprojekció
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;
SELECT mlista FROM tábla;
Az mlista helyén * áll, ha minden mező kell
AUTÓ
rsz tipus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Suzuki pirosszelekció
feltétel: szín = 'piros' VAGY tipus = 'Mazda'
rsz tipus szín
r2 Opel kék
r4 Skoda kék
r6 Mazda piros
SELECT - szelekció
SELECT mlsita FROM tábla WHERE feltétel;
SELECT * FROM AUTO WHERE SZIN = ”KÉK” OR
TIPUS = ”MAZDA”;
AUTÓ
rsz tipus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Suzuki pirosprojekció
kijelölt mezõk = rsz
rsz
r6
r4
r9
szelekció
feltétel: szín='piros' VAGY
szín='kék' r2
Műveletek kombinálása
SELECT RSZ FROM AUTO WHERE SZIN = ”PIROS”
OR SZIN=”KEK”;
AUTÓ
EMBER
rsz tulaj
r1
r4
r6
3
1
4
id név
1
2
3
4
Laci
Ágota
János
Zoltán
összekapcsolás
rsz tulaj id név
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
1 Laci
1 Laci
1 Laci
2 Ágota
2 Ágota
2 Ágota
3 János
3 János
3 János
4 Zoltán
4 Zoltán
4 Zoltán
SELECT - join
SELECT mlista FROM tabla1, tabla2,.. WHERE feltétel;
Ha a feltétel elmarad
Descartes szorzatot
kapunk
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;
AUTÓ
rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
kiterjesztés
új mezõ: ár/100
ár rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
ár ár/100
12
9.3
8.7
15
14
SELECT - kifejezés megadása
SELECT kifejezés (mezőnév,... FROM …;
SELECT AR/100 UJAR FROM AUTO;
Az előállító kifejezés
SUM(mez.kif) AVG(mez.kif)
COUNT(mez.kif) MAX(mez.kif)
MIN(mez.kif)
AUTÓ
rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
árcsoportképzés
kifejezés:
kiírandó: COUNT()
r7 Opel 2570
r11 Fiat 850
r8 Opel 1000
Count()
8
SELECT COUNT(*) FROM AUTO;
SELECT - aggregáció megadása
SELECT aggregációs-lista FROM tábla;
AUTÓ
rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
árcsoportképzés
kifejezés: tipus
kiírandó: tipus, AVG(ár)
r7 Opel 2570
r11 Fiat 850
r8 Opel 1000
tipus
Fiat 1025
Opel
Mazda 870
Skoda 1500
Suzuki 1400
AVG(ár)
1500
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;
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:
Az összehasonlító operátorok precedenciája (végrehajtási sorrendje)
csökkenő sorrendben:
Logikai operátorok
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
2. Melyik gyártó termel 5-nél több vörös bort
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%”;
SELECT GYARTO FROM BOROK WHERE FAJTA = ”VOROS”
GROUP BY GYARTO HAVING COUNT(*) > 5;