adatbázisok - mogi.bme.hu informatikai tÁrgyak... · 3 fajta input: lekérdezések ... műveletek...

72
Adatbázisok

Upload: others

Post on 03-Jan-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

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á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;