118
1 Adatb Adatb Adatb Adatbázis rendszerek I zis rendszerek I zis rendszerek I zis rendszerek I Adatkezel Adatkezel Adatkezel Adatkezelés s s s és adatb s adatb s adatb s adatbázis zis zis zis kezel kezel kezel kezelés alapfogalmai s alapfogalmai s alapfogalmai s alapfogalmai Dr. Kov Dr. Kov Dr. Kov Dr. Kovács L cs L cs L cs Lászl szl szl szló ME ME ME ME- GEIAL GEIAL GEIAL GEIAL Inform Inform Inform Informáci ci ci ciós rendszerek s rendszerek s rendszerek s rendszerek bankszektor bankszektor bankszektor bankszektor NSA telekommunik NSA telekommunik NSA telekommunik NSA telekommunikáci ci ci ció kereskedelem kereskedelem kereskedelem kereskedelem kutat kutat kutat kutatás Adatok minden Adatok minden Adatok minden Adatok mindenütt tt tt tt GEIAL Kovács László

AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

AdatkezelAdatkezelAdatkezelAdatkezeléééés s s s éééés adatbs adatbs adatbs adatbáááázis zis zis zis kezelkezelkezelkezeléééés alapfogalmais alapfogalmais alapfogalmais alapfogalmai

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

InformInformInformInformáááácicicicióóóós rendszereks rendszereks rendszereks rendszerek

bankszektorbankszektorbankszektorbankszektorNSA telekommunikNSA telekommunikNSA telekommunikNSA telekommunikáááácicicicióóóó

kereskedelemkereskedelemkereskedelemkereskedelem kutatkutatkutatkutatáááássss

Adatok mindenAdatok mindenAdatok mindenAdatok mindenüüüütttttttt

GEIAL Kovács László

Page 2: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

InformInformInformInformáááácicicicióóóós rendszereks rendszereks rendszereks rendszerekAdatkezelAdatkezelAdatkezelAdatkezeléééés szerepes szerepes szerepes szerepe

kliensekkliensekkliensekkliensek

WebWebWebWebszerverszerverszerverszerver

adatbadatbadatbadatbáááázis zis zis zis szerverszerverszerverszerver

alkalmazalkalmazalkalmazalkalmazáááássssszerverszerverszerverszerver

GEIAL Kovács László

Hatalmas Hatalmas Hatalmas Hatalmas üüüüzlet rejlik az zlet rejlik az zlet rejlik az zlet rejlik az adatbadatbadatbadatbááááziskezelziskezelziskezelziskezeléééésbensbensbensben

OracleOracleOracleOraclefolyamatos folyamatos folyamatos folyamatos áááállllllllááááskskskskíííínnnnáááálatlatlatlat

InformInformInformInformáááácicicicióóóós rendszereks rendszereks rendszereks rendszerek

VIRVIRVIRVIRGEIAL Kovács László

Page 3: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

AdatkezelAdatkezelAdatkezelAdatkezeléééés alapjais alapjais alapjais alapjai

SzintekSzintekSzintekSzintek

áááállomllomllomllomáááánykezelnykezelnykezelnykezelőőőő

ttttááááblblblbláááázat kezelzat kezelzat kezelzat kezelőőőő

desktopdesktopdesktopdesktop adatbadatbadatbadatbááááziszisziszis

multiusermultiusermultiusermultiuser adatbadatbadatbadatbááááziszisziszis

elosztott adatbelosztott adatbelosztott adatbelosztott adatbáááázisokzisokzisokzisok

adattadattadattadattáááárhrhrhrháááázakzakzakzak

funkcifunkcifunkcifunkcióóóókkkk APIAPIAPIAPI rugalmassrugalmassrugalmassrugalmassáááággggGEIAL Kovács László

AdatokAdatokAdatokAdatok

FFFFőőőőmenmenmenmenüüüü

Excel adatkezelExcel adatkezelExcel adatkezelExcel adatkezeléééés alapjais alapjais alapjais alapjai

Adatok tAdatok tAdatok tAdatok táááárolrolrolroláááása:sa:sa:sa:

TTTTááááblblblbláááázat szerkezete:zat szerkezete:zat szerkezete:zat szerkezete:

soroksoroksoroksorok

oszlopokoszlopokoszlopokoszlopok

cella c(s,o)cella c(s,o)cella c(s,o)cella c(s,o)

KKKKöööözvetlen mzvetlen mzvetlen mzvetlen műűűűveletek:veletek:veletek:veletek:

sorba rendezsorba rendezsorba rendezsorba rendezééééssss

szszszszűűűűrrrrőőőő (szelekci(szelekci(szelekci(szelekcióóóó))))

ÉÉÉÉrtrtrtrtéééékellenkellenkellenkellenőőőőrzrzrzrzéééés:s:s:s:

cella adattcella adattcella adattcella adattíííípuspuspuspus

megszormegszormegszormegszorííííttttáááások (sok (sok (sok (éééérvrvrvrvéééényesnyesnyesnyesííííttttéééés)s)s)s)

ttttááááblblblbláááázatokzatokzatokzatok

Sorba rendezSorba rendezSorba rendezSorba rendezééééssss

SzSzSzSzűűűűrrrrőőőő

aggregaggregaggregaggregáááálllláááássss

RRRRéééészszszszöööösszegeksszegeksszegeksszegek

ÉÉÉÉrvrvrvrvéééényesnyesnyesnyesííííttttééééssss

GEIAL Kovács László

Page 4: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

Excel adatkezelExcel adatkezelExcel adatkezelExcel adatkezeléééés alapjais alapjais alapjais alapjai

SzelekciSzelekciSzelekciSzelekcióóóó megadmegadmegadmegadáááásasasasa

<érték

=érték>érték

mező3mező2mező1 soron belsoron belsoron belsoron belüüüül AND kapcsolatl AND kapcsolatl AND kapcsolatl AND kapcsolatsorok ksorok ksorok ksorok köööözzzzöööött OR kapcsolattt OR kapcsolattt OR kapcsolattt OR kapcsolat

A mezA mezA mezA mezőőőőhivatkozhivatkozhivatkozhivatkozáááás a ks a ks a ks a kéééépletbe pletbe pletbe pletbe kerkerkerkerüüüül (=l (=l (=l (=oszlopcimkeoszlopcimkeoszlopcimkeoszlopcimke))))

>30.0=fiat

>30.0=opel

artipustipus

36,00opelr2

38,00skodar5

39,00skodar11

artipusrsz

=C2 > 24=C2 > 24=C2 > 24=C2 > 24

kkkküüüüllllöööön tn tn tn tááááblblblbláááázatbanzatbanzatbanzatbanelemi(QBE)elemi(QBE)elemi(QBE)elemi(QBE)

formulaformulaformulaformula

GEIAL Kovács László

Excel adatkezelExcel adatkezelExcel adatkezelExcel adatkezeléééés alapjais alapjais alapjais alapjai

öööösszetett msszetett msszetett msszetett műűűűveletekveletekveletekveletek makro programozmakro programozmakro programozmakro programozáááássss VBVBVBVB

makro megmakro megmakro megmakro megíííírrrráááásasasasa

EszkEszkEszkEszköööözzzzöööökkkk

FFFFőőőőmenmenmenmenüüüü

MakrMakrMakrMakróóóó

MakrMakrMakrMakróóóókkkk

LLLLéééétrehoztrehoztrehoztrehozáááássssSzerkesztSzerkesztSzerkesztSzerkesztééééssss

indindindindííííttttóóóó nyomnyomnyomnyomóóóógombgombgombgomb

NNNNéééézetzetzetzet

FFFFőőőőmenmenmenmenüüüü

EszkEszkEszkEszkööööztztztztáááárakrakrakrak

ŰŰŰŰrlapokrlapokrlapokrlapok

NyomNyomNyomNyomóóóógombgombgombgomb

GEIAL Kovács László

Page 5: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

Excel adatkezelExcel adatkezelExcel adatkezelExcel adatkezeléééés alapjais alapjais alapjais alapjai

Makro mintaprogram: a rendszMakro mintaprogram: a rendszMakro mintaprogram: a rendszMakro mintaprogram: a rendszáááám egyedism egyedism egyedism egyedisééééggggéééének ellennek ellennek ellennek ellenőőőőrzrzrzrzéééésesesese

Sub ellen1()Sub ellen1()Sub ellen1()Sub ellen1()ss1 = 0ss1 = 0ss1 = 0ss1 = 0For i = 3 To 10For i = 3 To 10For i = 3 To 10For i = 3 To 10

k1 = Sheets(1).Cells(i, 1)k1 = Sheets(1).Cells(i, 1)k1 = Sheets(1).Cells(i, 1)k1 = Sheets(1).Cells(i, 1)s1 = 0s1 = 0s1 = 0s1 = 0For j = i + 1 To 10For j = i + 1 To 10For j = i + 1 To 10For j = i + 1 To 10

k2 = Sheets(1).Cells(j, 1)k2 = Sheets(1).Cells(j, 1)k2 = Sheets(1).Cells(j, 1)k2 = Sheets(1).Cells(j, 1)If k1 = k2 ThenIf k1 = k2 ThenIf k1 = k2 ThenIf k1 = k2 Then

s1 = 1s1 = 1s1 = 1s1 = 1End IfEnd IfEnd IfEnd If

Next jNext jNext jNext jIf s1 = 1 ThenIf s1 = 1 ThenIf s1 = 1 ThenIf s1 = 1 Then

ss1 = 1ss1 = 1ss1 = 1ss1 = 1MsgBoxMsgBoxMsgBoxMsgBox (k1 & " (k1 & " (k1 & " (k1 & " nemnemnemnem egyediegyediegyediegyedi")")")")

End IfEnd IfEnd IfEnd IfNext iNext iNext iNext iIf ss1 = 0 ThenIf ss1 = 0 ThenIf ss1 = 0 ThenIf ss1 = 0 Then

MsgBoxMsgBoxMsgBoxMsgBox ("("("("egyedisegegyedisegegyedisegegyediseg rendbenrendbenrendbenrendben")")")")End IfEnd IfEnd IfEnd If

End SubEnd SubEnd SubEnd Sub

dinamikus vdinamikus vdinamikus vdinamikus vááááltozltozltozltozóóóókkkk

ciklusciklusciklusciklus

cella hivatkozcella hivatkozcella hivatkozcella hivatkozáááássss

eleleleláááágazgazgazgazáááássss

üüüüzenet kizenet kizenet kizenet kiíííírrrráááássss

pozpozpozpozíííícicicicióóóók bebetonozk bebetonozk bebetonozk bebetonozáááásasasasa

GEIAL Kovács László

AdatkezelAdatkezelAdatkezelAdatkezeléééés ks ks ks köööövetelmvetelmvetelmvetelméééényeinyeinyeinyei

Az Excel adatkezelAz Excel adatkezelAz Excel adatkezelAz Excel adatkezeléééése nem tse nem tse nem tse nem táááámogatja az almogatja az almogatja az almogatja az aláááábbi funkcibbi funkcibbi funkcibbi funkcióóóókat: kat: kat: kat:

Nagy adatmennyisNagy adatmennyisNagy adatmennyisNagy adatmennyiséééég kezelg kezelg kezelg kezeléééésesesese

Dinamikus adatmennyisDinamikus adatmennyisDinamikus adatmennyisDinamikus adatmennyiséééégggg

Kapcsolatok nyilvKapcsolatok nyilvKapcsolatok nyilvKapcsolatok nyilváááántartntartntartntartáááásasasasa

MegszorMegszorMegszorMegszorííííttttáááások kezelsok kezelsok kezelsok kezeléééésesesese

AdatvAdatvAdatvAdatvéééédelemdelemdelemdelem

HatHatHatHatéééékony lekkony lekkony lekkony lekéééérdezrdezrdezrdezééééssss

NyNyNyNyíííílt kapcsollt kapcsollt kapcsollt kapcsolóóóóddddáááási felsi felsi felsi felüüüületletletlet

PPPPáááárhuzamos hozzrhuzamos hozzrhuzamos hozzrhuzamos hozzááááfffféééérrrrééééssssGEIAL Kovács László

Page 6: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

AdatbAdatbAdatbAdatbáááázis fogalmazis fogalmazis fogalmazis fogalma

Az adatbAz adatbAz adatbAz adatbáááázis egy zis egy zis egy zis egy integrintegrintegrintegráááált adatrendszerlt adatrendszerlt adatrendszerlt adatrendszer, , , , mely tmely tmely tmely tööööbb bb bb bb kkkküüüüllllöööönbnbnbnböööözzzzőőőő egyed elegyed elegyed elegyed előőőőfordulfordulfordulforduláááásainak adatait sainak adatait sainak adatait sainak adatait adatmodelladatmodelladatmodelladatmodell szerinti struktszerinti struktszerinti struktszerinti struktúúúúrrrráááában,ban,ban,ban,perzisztensperzisztensperzisztensperzisztens mmmmóóóódon tdon tdon tdon táááárolja rolja rolja rolja a a a a kapcsolatkapcsolatkapcsolatkapcsolat leleleleíííírrrróóóó elemek mellettelemek mellettelemek mellettelemek melletta a a a metaadatokkametaadatokkametaadatokkametaadatokkallll egyegyegyegyüüüütt, melyek a hattt, melyek a hattt, melyek a hattt, melyek a hatéééékonyskonyskonyskonysáááág, g, g, g, integritintegritintegritintegritáááássssőőőőrzrzrzrzéééés, az adatvs, az adatvs, az adatvs, az adatvéééédelem biztosdelem biztosdelem biztosdelem biztosííííttttáááássssáááát szolgt szolgt szolgt szolgááááljljljljáááák.k.k.k.

DB

adatokadatokadatokadatok

jogosultsjogosultsjogosultsjogosultsáááágggg

szerkezetszerkezetszerkezetszerkezet

naplnaplnaplnaplóóóó

Olyan adatkezelOlyan adatkezelOlyan adatkezelOlyan adatkezelőőőő kell, ami minden igkell, ami minden igkell, ami minden igkell, ami minden igéééényelt funkcinyelt funkcinyelt funkcinyelt funkcióóóót biztost biztost biztost biztosíííítttt

kapcsolatokkapcsolatokkapcsolatokkapcsolatok

megkmegkmegkmegkööööttttééééseksekseksek

GEIAL Kovács László

AdatbAdatbAdatbAdatbááááziskezelziskezelziskezelziskezelőőőő fogalmafogalmafogalmafogalma

Az adatbAz adatbAz adatbAz adatbáááázis kezelzis kezelzis kezelzis kezelőőőő rendszer olyan rendszer olyan rendszer olyan rendszer olyan programrendszerprogramrendszerprogramrendszerprogramrendszer, , , , Amelynek feladata az adatbAmelynek feladata az adatbAmelynek feladata az adatbAmelynek feladata az adatbáááázishoz tzishoz tzishoz tzishoz töööörtrtrtrtéééénnnnőőőőszabszabszabszabáááályozott hozzlyozott hozzlyozott hozzlyozott hozzááááfffféééérrrrééééssss biztosbiztosbiztosbiztosííííttttáááása sa sa sa éééés s s s az adatbaz adatbaz adatbaz adatbáááázis zis zis zis belsbelsbelsbelsőőőő karbantartkarbantartkarbantartkarbantartáááási msi msi msi műűűűveleteinekveleteinekveleteinekveleteinek vvvvéééégrehajtgrehajtgrehajtgrehajtáááása.sa.sa.sa.

A DB csak a A DB csak a A DB csak a A DB csak a DBMSDBMSDBMSDBMS----enenenen keresztkeresztkeresztkeresztüüüül l l l éééérhetrhetrhetrhetőőőő el legel legel legel legáááálisanlisanlisanlisan

ppppáááárhuzamos hozzrhuzamos hozzrhuzamos hozzrhuzamos hozzááááfffféééérrrréééés ellens ellens ellens ellenőőőőrzrzrzrzééééssss

vvvvéééédelemdelemdelemdelem

optimalizoptimalizoptimalizoptimalizáááálllláááássss

integritintegritintegritintegritáááás ellens ellens ellens ellenőőőőrzrzrzrzééééssss

naplnaplnaplnaplóóóózzzzáááássss

Az adatrendszer megfelelAz adatrendszer megfelelAz adatrendszer megfelelAz adatrendszer megfelelőőőő eleleleléééérrrréééésssséééérrrrőőőől is gondoskodni kelll is gondoskodni kelll is gondoskodni kelll is gondoskodni kell

DBMSDBMSDBMSDBMS

mmmműűűűvelet vvelet vvelet vvelet véééégrehajtgrehajtgrehajtgrehajtáááássss

GEIAL Kovács László

Page 7: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

AdatbAdatbAdatbAdatbáááázisrendszerzisrendszerzisrendszerzisrendszer fogalmafogalmafogalmafogalma

Az adatbAz adatbAz adatbAz adatbáááázis kezelzis kezelzis kezelzis kezelőőőő, az adatb, az adatb, az adatb, az adatbáááázis zis zis zis éééés az alkalmazs az alkalmazs az alkalmazs az alkalmazóóóói programoki programoki programoki programokegyegyegyegyüüüüttesttesttestteséééét adatbt adatbt adatbt adatbááááziszisziszis----rendszernek nevezikrendszernek nevezikrendszernek nevezikrendszernek nevezik

klienskliensklienskliens

SQL/...SQL/...SQL/...SQL/...

adatbadatbadatbadatbááááziszisziszis----kezelkezelkezelkezelőőőő

adatbadatbadatbadatbááááziszisziszisGEIAL Kovács László

ANSI SPARC modellANSI SPARC modellANSI SPARC modellANSI SPARC modell

KKKKüüüülslslslsőőőő szint szint szint szint

Fogalmi szintFogalmi szintFogalmi szintFogalmi szint

Fizikai szintFizikai szintFizikai szintFizikai szint

FFFFüüüüggetlensggetlensggetlensggetlenséééégi szintek:gi szintek:gi szintek:gi szintek:---- logikai : a klogikai : a klogikai : a klogikai : a küüüülslslslsőőőő szint szint szint szint éééés a globs a globs a globs a globáááális szint klis szint klis szint klis szint köööözzzzöööötttttttt---- fizikai : a globfizikai : a globfizikai : a globfizikai : a globáááális szint lis szint lis szint lis szint éééés a fizikai szint ks a fizikai szint ks a fizikai szint ks a fizikai szint köööözzzzöööötttttttt---- hhhháááállllóóóózati : fizikai szinten belzati : fizikai szinten belzati : fizikai szinten belzati : fizikai szinten belüüüüllll

Felh1Felh1Felh1Felh1 Felh2Felh2Felh2Felh2 Felh9Felh9Felh9Felh9

GlobGlobGlobGlobáááális slis slis slis séééémamamama

Fizikai szerkezetFizikai szerkezetFizikai szerkezetFizikai szerkezet

Az adatbAz adatbAz adatbAz adatbáááázis logikai felzis logikai felzis logikai felzis logikai felééééppppííííttttéééése, referencia modellje se, referencia modellje se, referencia modellje se, referencia modellje

felhasznfelhasznfelhasznfelhasznáááállllóóóó

terveztervezterveztervezőőőő

programozprogramozprogramozprogramozóóóó

egyedegyedegyedegyed

ttttááááblablablabla

Index, Index, Index, Index, rekord rekord rekord rekord

GEIAL Kovács László

Page 8: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

DBMSDBMSDBMSDBMS funkcifunkcifunkcifunkcióóóó struktstruktstruktstruktúúúúrrrráááájajajaja

SQLSQLSQLSQL

KommunikKommunikKommunikKommunikáááácicicicióóóós rs rs rs réééétegtegtegteg

UtasUtasUtasUtasííííttttáááás s s s éééértelmezrtelmezrtelmezrtelmezőőőő

HozzHozzHozzHozzááááfffféééérrrréééés ellens ellens ellens ellenőőőőrzrzrzrzééééssss

AktAktAktAktíííív szabv szabv szabv szabáááály ellenly ellenly ellenly ellenőőőőrzrzrzrzőőőő

OptimalizOptimalizOptimalizOptimalizáááállllóóóó

VVVVéééégrehajtgrehajtgrehajtgrehajtóóóó

TranzakciTranzakciTranzakciTranzakcióóóó vezvezvezvezéééérlrlrlrlőőőő

IO rendszerIO rendszerIO rendszerIO rendszer

NaplNaplNaplNaplóóóózzzzóóóó modulmodulmodulmodul

SELECT *SELECT *SELECT *SELECT *FROM AUTOFROM AUTOFROM AUTOFROM AUTOORDER BY RSZORDER BY RSZORDER BY RSZORDER BY RSZ

readreadreadread(), (), (), (), writewritewritewrite()()()()

CFG grCFG grCFG grCFG grááááffff

DAC mDAC mDAC mDAC máááátrixtrixtrixtrix

ECA modulECA modulECA modulECA modul

QOG grQOG grQOG grQOG grááááffff

TM modul, zTM modul, zTM modul, zTM modul, záááárolrolrolroláááássss

RecoveryRecoveryRecoveryRecovery modulmodulmodulmodul

QEP grQEP grQEP grQEP grááááffff

GEIAL Kovács László

101010108888 lap, 5 km hosszlap, 5 km hosszlap, 5 km hosszlap, 5 km hosszúúúú polc > 400 polc > 400 polc > 400 polc > 400 éééévvvv

Nagy adatmennyisNagy adatmennyisNagy adatmennyisNagy adatmennyiséééég kezelg kezelg kezelg kezeléééésesesese

2005: EMC 2005: EMC 2005: EMC 2005: EMC CorpCorpCorpCorp. : 100 . : 100 . : 100 . : 100 TbyteTbyteTbyteTbyte DB, DB, DB, DB, StandfordStandfordStandfordStandford : 500 : 500 : 500 : 500 TByteTByteTByteTByte DBDBDBDB

VLDB (VLDB (VLDB (VLDB (www.vldb.orgwww.vldb.orgwww.vldb.orgwww.vldb.org) : 400 GB <) : 400 GB <) : 400 GB <) : 400 GB <

kkkkíííínai telefontnai telefontnai telefontnai telefontáááársasrsasrsasrsasáááág: 1TBg: 1TBg: 1TBg: 1TB----os tos tos tos tááááblablablabla

Mit jelent a nagy adatmennyisMit jelent a nagy adatmennyisMit jelent a nagy adatmennyisMit jelent a nagy adatmennyiséééég?g?g?g?

GEIAL Kovács László

Page 9: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

A fA fA fA főőőő problproblproblproblééééma a hatma a hatma a hatma a hatéééékony kereskony kereskony kereskony keresééééssss

www.tpc.orgwww.tpc.orgwww.tpc.orgwww.tpc.org

Nagy adatmennyisNagy adatmennyisNagy adatmennyisNagy adatmennyiséééég kezelg kezelg kezelg kezeléééésesesese

KKKKíííívvvváááánalmak idnalmak idnalmak idnalmak időőőőben:ben:ben:ben:optimoptimoptimoptimáááális vlis vlis vlis váááálaszidlaszidlaszidlaszidőőőő: < 2 s: < 2 s: < 2 s: < 2 s

megtmegtmegtmegtűűűűrt vrt vrt vrt váááálaszidlaszidlaszidlaszidőőőő: < 20 s: < 20 s: < 20 s: < 20 s

ElvElvElvElváááárrrráááások hellyel:sok hellyel:sok hellyel:sok hellyel:

minimminimminimminimáááális redundancialis redundancialis redundancialis redundancia

szabszabszabszabáááályozott redundancialyozott redundancialyozott redundancialyozott redundancia

GEIAL Kovács László

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

KeresKeresKeresKereséééés gyorss gyorss gyorss gyorsííííttttáááásasasasa

SzekvenciSzekvenciSzekvenciSzekvenciáááális kereslis kereslis kereslis kereséééés O(N) nem hats O(N) nem hats O(N) nem hats O(N) nem hatéééékonykonykonykony

Rendezett Rendezett Rendezett Rendezett áááállomllomllomllomáááányban keresnyban keresnyban keresnyban kereséééés: O(s: O(s: O(s: O(loglogloglog(N))(N))(N))(N))

O(g) = {f | O(g) = {f | O(g) = {f | O(g) = {f | ∃∃∃∃ m,x0 : m,x0 : m,x0 : m,x0 : ∀∀∀∀x > x > x > x > x0x0x0x0: |f(x)| < m |g(x)| : |f(x)| < m |g(x)| : |f(x)| < m |g(x)| : |f(x)| < m |g(x)| }}}}

ProblProblProblProblééééma:ma:ma:ma: Lemezes Lemezes Lemezes Lemezes áááállomllomllomllomáááányok esetnyok esetnyok esetnyok esetéééén majdnem minden elemn majdnem minden elemn majdnem minden elemn majdnem minden elemOlvasOlvasOlvasOlvasáááás ks ks ks küüüüllllöööön blokkolvasn blokkolvasn blokkolvasn blokkolvasáááássss

Index: (Index: (Index: (Index: (éééértrtrtrtéééék, pointer) bejegyzk, pointer) bejegyzk, pointer) bejegyzk, pointer) bejegyzéééések rendezett listsek rendezett listsek rendezett listsek rendezett listáááájajajaja

3333 7777 1111 6666 11111111 2222 4444 55559999

1111 2222 3333 4444 5555 6666 7777 9999

GEIAL Kovács László

Page 10: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

BBBB----fa index szerkezetfa index szerkezetfa index szerkezetfa index szerkezet

A blokkolvasA blokkolvasA blokkolvasA blokkolvasáááások darabszsok darabszsok darabszsok darabszáááámmmmáááát optimalizt optimalizt optimalizt optimalizáááállllóóóó indexindexindexindex

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

Indexet kIndexet kIndexet kIndexet kéééészszszszííííttttüüüünk az indexhez (hierarchikus index)nk az indexhez (hierarchikus index)nk az indexhez (hierarchikus index)nk az indexhez (hierarchikus index)

kereskereskereskeresőőőő fa , egy csomfa , egy csomfa , egy csomfa , egy csomóóóópontban M elem pontban M elem pontban M elem pontban M elem éééés M+1 pointers M+1 pointers M+1 pointers M+1 pointer

jjjjóóóó helykihasznhelykihasznhelykihasznhelykihasznááááltsltsltsltsáááág (min 50%)g (min 50%)g (min 50%)g (min 50%)

csomcsomcsomcsomóóóóponton belponton belponton belponton belüüüül rendezettl rendezettl rendezettl rendezett

logMlogMlogMlogM(N) szint, O((N) szint, O((N) szint, O((N) szint, O(loglogloglog(N)) keres(N)) keres(N)) keres(N)) keresééééssss

10101010

3333

40404040

5555

60606060

7777

100100100100

8888 12121212 23232323

GEIAL Kovács László

BBBB----fa bfa bfa bfa bőőőővvvvííííttttéééés algoritmusas algoritmusas algoritmusas algoritmusa

alulralulralulralulróóóól felfell felfell felfell felfeléééé ééééppppíííítkeziktkeziktkeziktkezik

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

Algoritmus elve:Algoritmus elve:Algoritmus elve:Algoritmus elve:

ha megtelt egy csomha megtelt egy csomha megtelt egy csomha megtelt egy csomóóóópont,lpont,lpont,lpont,léééétrehoz egy trehoz egy trehoz egy trehoz egy úúúúj szj szj szj szüüüüllllőőőőtttt

Algoritmus lAlgoritmus lAlgoritmus lAlgoritmus lééééppppéééései:sei:sei:sei:

levlevlevlevéééél megkeresl megkeresl megkeresl megkereséééése, elem beszse, elem beszse, elem beszse, elem beszúúúúrrrráááása a rendezett listsa a rendezett listsa a rendezett listsa a rendezett listáááábabababa

kkkköööözzzzéééépspspspsőőőő elem a szelem a szelem a szelem a szüüüüllllőőőőbebebebe

testvtestvtestvtestvéééér generr generr generr generáááálllláááássss

elemek szelemek szelemek szelemek széééétoszttoszttoszttosztáááásasasasa

pointerek kiigazpointerek kiigazpointerek kiigazpointerek kiigazííííttttáááásasasasa

Ha megtelt a levHa megtelt a levHa megtelt a levHa megtelt a levéééél, akkorl, akkorl, akkorl, akkor

kkkköööözzzzéééépspspspsőőőő elem meghatelem meghatelem meghatelem meghatáááározrozrozrozáááásasasasa

GEIAL Kovács László

Page 11: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

BBBB----fa bfa bfa bfa bőőőővvvvííííttttéééés algoritmusas algoritmusas algoritmusas algoritmusa

AAAA

FFFF

UUUU

DDDD

HHHH

BBBB

CCCC

OOOO

GGGG

RRRR

GEIAL Kovács László

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

Hash Hash Hash Hash algoritmusalgoritmusalgoritmusalgoritmus alapjaialapjaialapjaialapjai

Algoritmus elve:Algoritmus elve:Algoritmus elve:Algoritmus elve:

A rekord helye kA rekord helye kA rekord helye kA rekord helye köööözvetlenzvetlenzvetlenzvetlenüüüül a kulcsl a kulcsl a kulcsl a kulcséééértrtrtrtéééékbkbkbkbőőőől hatl hatl hatl hatáááározrozrozrozóóóódik megdik megdik megdik meg

A tA tA tA táááárolrolrolrolóóóó terterterterüüüület blokkokra osztott, M darab blokklet blokkokra osztott, M darab blokklet blokkokra osztott, M darab blokklet blokkokra osztott, M darab blokk

A A A A hashhashhashhash ffffüüüüggvggvggvggvéééény adja meg a blokk sorszny adja meg a blokk sorszny adja meg a blokk sorszny adja meg a blokk sorszáááámmmmáááát, h(x)=x t, h(x)=x t, h(x)=x t, h(x)=x modmodmodmod MMMM

A mA mA mA móóóódszer jellemzdszer jellemzdszer jellemzdszer jellemzőőőői:i:i:i:

Elvi keresElvi keresElvi keresElvi kereséééési ksi ksi ksi kööööltsltsltsltséééég: O(1)g: O(1)g: O(1)g: O(1)

A A A A ttttúúúúlcsordulllcsordulllcsordulllcsordulláááássss jelentjelentjelentjelentőőőős ts ts ts tööööbbletkbbletkbbletkbbletkööööltsltsltsltsééééget adhatget adhatget adhatget adhat

Nem stabil a kNem stabil a kNem stabil a kNem stabil a kööööltsltsltsltséééég, a statikus adatokra optimg, a statikus adatokra optimg, a statikus adatokra optimg, a statikus adatokra optimáááálislislislis

GEIAL Kovács László

Page 12: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

12

11111111

Adatrekord elAdatrekord elAdatrekord elAdatrekord eléééérrrréééési msi msi msi móóóódszerekdszerekdszerekdszerek

Hash Hash Hash Hash algoritmusalgoritmusalgoritmusalgoritmus alapjaialapjaialapjaialapjai

21212121

7777

13131313

4444

16161616

8888

14141414

9999

10101010

M=3M=3M=3M=3

kapacitkapacitkapacitkapacitáááás=2s=2s=2s=2

h(x) = x h(x) = x h(x) = x h(x) = x modmodmodmod 3333

GEIAL Kovács László

KKKKööööszszszszöööönnnnööööm a figyelmet!m a figyelmet!m a figyelmet!m a figyelmet!

Page 13: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

SzemantikaiSzemantikaiSzemantikaiSzemantikai adatmodelladatmodelladatmodelladatmodellekekekek

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

kkkkóóóódddd dolgdolgdolgdolg termtermtermterméééékkkk

FeladatFeladatFeladatFeladat

kkkkóóóódddd nnnnéééévvvv beosztbeosztbeosztbeosztáááássss

DolgozDolgozDolgozDolgozóóóó

kkkkóóóódddd earearearear megnevezmegnevezmegnevezmegnevezééééssss

TermTermTermTerméééékkkk

ProblProblProblProbléééémakmakmakmaköööör modellezr modellezr modellezr modellezéééése adatbse adatbse adatbse adatbáááázis struktzis struktzis struktzis struktúúúúrrrráááávalvalvalval

ModellezModellezModellezModellezéééés szerepes szerepes szerepes szerepe

GEIAL Kovács László

Page 14: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

AdatbAdatbAdatbAdatbáááázis tervezzis tervezzis tervezzis tervezéééés fs fs fs főőőőbb lbb lbb lbb lééééppppééééseiseiseisei

kkkköööövetelmvetelmvetelmvetelméééény analny analny analny analííííziszisziszis

szemantikai leszemantikai leszemantikai leszemantikai leíííírrrráááássss

adatmodell leadatmodell leadatmodell leadatmodell leíííírrrráááássss

parancs kparancs kparancs kparancs kóóóódoldoldoldoláááássss

normaliznormaliznormaliznormalizáááálllláááássss

‘‘‘‘autautautautóóóók k k k éééés tulajdonosoks tulajdonosoks tulajdonosoks tulajdonosok’’’’

AAAATTTT

createcreatecreatecreate tabletabletabletable A A A A createcreatecreatecreate tabletabletabletable T T T T

mmmműűűűveletekveletekveletekveletek eredmeredmeredmeredméééényeknyeknyeknyek

TervezTervezTervezTervezéééési piramissi piramissi piramissi piramis

GEIAL Kovács László

AdatbAdatbAdatbAdatbáááázis zis zis zis adatadatadatadatmodellmodellmodellmodell

Adatmodell : azon formalizmus, melynek segAdatmodell : azon formalizmus, melynek segAdatmodell : azon formalizmus, melynek segAdatmodell : azon formalizmus, melynek segíííítstststsééééggggéééével megadhatvel megadhatvel megadhatvel megadhatóóóókkkka vizsga vizsga vizsga vizsgáááált probllt probllt probllt probléééémakmakmakmaköööör adatelemeinek szerkezete, viselkedr adatelemeinek szerkezete, viselkedr adatelemeinek szerkezete, viselkedr adatelemeinek szerkezete, viselkedéééése.se.se.se.

SSSSééééma: az adatmodell felhasznma: az adatmodell felhasznma: az adatmodell felhasznma: az adatmodell felhasznáááálllláááássssáááával lval lval lval léééétrehozott adatszerkezettrehozott adatszerkezettrehozott adatszerkezettrehozott adatszerkezet

ElElElElőőőőfordulfordulfordulforduláááás: a ss: a ss: a ss: a sééééma ma ma ma éééértrtrtrtéééékekkel kitkekkel kitkekkel kitkekkel kitööööltltltltöööött ptt ptt ptt pééééldldldldáááánya nya nya nya

Adatmodell elemeiAdatmodell elemeiAdatmodell elemeiAdatmodell elemei

struktstruktstruktstruktúúúúra lera lera lera leíííírrrróóóóééééppppííííttttőőőő elemek elemek elemek elemek definidefinidefinidefiniáááálllláááásasasasa

mmmműűűűvelet levelet levelet levelet leíííírrrróóóóelvelvelvelvéééégezhetgezhetgezhetgezhetőőőőoperoperoperoperáááácicicicióóóókkkk

integritintegritintegritintegritáááási feltsi feltsi feltsi feltéééételektelektelektelekstatikus vagy statikus vagy statikus vagy statikus vagy aktivaktivaktivaktiv szabszabszabszabáááályoklyoklyoklyok

GEIAL Kovács László

Page 15: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

AdatbAdatbAdatbAdatbáááázis zis zis zis adatadatadatadatmodellek tmodellek tmodellek tmodellek tíííípusaipusaipusaipusai

ididididőőőő1970 1980 1990 20001960

szemantikai adatmodellszemantikai adatmodellszemantikai adatmodellszemantikai adatmodell

adatbadatbadatbadatbáááázis modell zis modell zis modell zis modell

AT

emberkemberkemberkemberköööözeli, lzeli, lzeli, lzeli, léééényeget emelik ki, pontatlannyeget emelik ki, pontatlannyeget emelik ki, pontatlannyeget emelik ki, pontatlan

ggggéééépkpkpkpköööözeli, megadja a rzeli, megadja a rzeli, megadja a rzeli, megadja a réééészleteket, teljesszleteket, teljesszleteket, teljesszleteket, teljes

ER EER ODMG UML

HDM NDM RDM ORDM MDDM

GEIAL Kovács László

EgyedEgyedEgyedEgyed----kapcsolat modellkapcsolat modellkapcsolat modellkapcsolat modell

AT

egyszeregyszeregyszeregyszerűűűűssssíííített szemantikai adatmodell, jele: ER (tett szemantikai adatmodell, jele: ER (tett szemantikai adatmodell, jele: ER (tett szemantikai adatmodell, jele: ER (ChenChenChenChen))))

a fogalmak szintja fogalmak szintja fogalmak szintja fogalmak szintjéééén n n n éééértelmezettrtelmezettrtelmezettrtelmezett

csak strukturcsak strukturcsak strukturcsak strukturáááális lis lis lis éééés elemi integrits elemi integrits elemi integrits elemi integritáááási rsi rsi rsi réééészt tartalmazszt tartalmazszt tartalmazszt tartalmaz

egyszeregyszeregyszeregyszerűűűű grafikus jelgrafikus jelgrafikus jelgrafikus jelöööölllléééés rendszert tartalmazs rendszert tartalmazs rendszert tartalmazs rendszert tartalmaz

nem teljes adatmodell, de egyszernem teljes adatmodell, de egyszernem teljes adatmodell, de egyszernem teljes adatmodell, de egyszerűűűűsssséééége rge rge rge réééévvvvéééén elterjedtn elterjedtn elterjedtn elterjedt

terveztervezterveztervezéééési segsi segsi segsi segéééédeszkdeszkdeszkdeszkööööz a relz a relz a relz a reláááácicicicióóóós adatbs adatbs adatbs adatbáááázis tervezzis tervezzis tervezzis tervezééééssssééééhezhezhezhez

3 f3 f3 f3 főőőő komponense vankomponense vankomponense vankomponense van

egyedegyedegyedegyed

kapcsolatkapcsolatkapcsolatkapcsolat

tulajdonstulajdonstulajdonstulajdonsáááágokgokgokgok

GEIAL Kovács László

Page 16: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

Egyed: egy objektum tEgyed: egy objektum tEgyed: egy objektum tEgyed: egy objektum tíííípus, egy a kpus, egy a kpus, egy a kpus, egy a küüüülvillvillvillviláááág tg tg tg tööööbbi rbbi rbbi rbbi réééészszszszééééttttőőőől l l l egyegyegyegyéééértelmrtelmrtelmrtelműűűűen megken megken megken megküüüüllllöööönbnbnbnbööööztetett dologztetett dologztetett dologztetett dolog---- öööönnnnáááállllllllóóóó llllééééttel bttel bttel bttel bíííírrrr---- amikramikramikramikrőőőől az informl az informl az informl az informáááácicicicióóóókat tkat tkat tkat táááárolni rolni rolni rolni kivkivkivkiváááánjuknjuknjuknjuk

TTTTíííípusai:pusai:pusai:pusai:---- normnormnormnormáááál egyed (l egyed (l egyed (l egyed (öööönmagnmagnmagnmagáááában azonosban azonosban azonosban azonosííííthatthatthatthatóóóó): ): ): ): dolgozdolgozdolgozdolgozóóóó---- gyenge egyed (mgyenge egyed (mgyenge egyed (mgyenge egyed (máááás egyedhez vals egyedhez vals egyedhez vals egyedhez valóóóó kapcsolatkapcsolatkapcsolatkapcsolatáááán n n n

keresztkeresztkeresztkeresztüüüül azonosl azonosl azonosl azonosíííított): tott): tott): tott): dolgozdolgozdolgozdolgozóóóó felesfelesfelesfeleséééégegegege

egyed neveegyed neveegyed neveegyed neve egyed neveegyed neveegyed neveegyed neve

normnormnormnormáááál egyedl egyedl egyedl egyed gyenge egyedgyenge egyedgyenge egyedgyenge egyed

Q: mire vonatkozQ: mire vonatkozQ: mire vonatkozQ: mire vonatkozóóóó informinforminforminformáááácicicicióóóókat tkat tkat tkat táááároljunk a rendszerben?roljunk a rendszerben?roljunk a rendszerben?roljunk a rendszerben?

GEIAL Kovács László

Kapcsolat: az egyedek kKapcsolat: az egyedek kKapcsolat: az egyedek kKapcsolat: az egyedek köööözzzzöööött fenntt fenntt fenntt fennáááállllllllóóóó ideiglenes vagy ideiglenes vagy ideiglenes vagy ideiglenes vagy tarttarttarttartóóóós asszocis asszocis asszocis asszociáááácicicicióóóó

---- csak az elscsak az elscsak az elscsak az elsőőőődleges kapcsolatokat adjuk megdleges kapcsolatokat adjuk megdleges kapcsolatokat adjuk megdleges kapcsolatokat adjuk meg

KKKKööööteleztelezteleztelezőőőő jelleg szerinti tjelleg szerinti tjelleg szerinti tjelleg szerinti tíííípusokpusokpusokpusok---- opcionopcionopcionopcionáááális: llis: llis: llis: léééétezhet olyan tezhet olyan tezhet olyan tezhet olyan egyedelegyedelegyedelegyedelőőőőfordulfordulfordulforduláááássss, melyhez , melyhez , melyhez , melyhez

nem kapcsolnem kapcsolnem kapcsolnem kapcsolóóóódik dik dik dik egyedelegyedelegyedelegyedelőőőőfordulfordulfordulforduláááássss a kapcsolatbana kapcsolatbana kapcsolatbana kapcsolatban---- kkkkööööteleztelezteleztelezőőőő: minden : minden : minden : minden egyedelegyedelegyedelegyedelőőőőfordulfordulfordulfordulááááshozshozshozshoz kell kell kell kell

kapcsolkapcsolkapcsolkapcsolóóóódnia dnia dnia dnia egyedelegyedelegyedelegyedelőőőőfordulfordulfordulforduláááásnaksnaksnaksnak a kapcsolatbana kapcsolatbana kapcsolatbana kapcsolatban

opcionopcionopcionopcionáááálislislislis

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

Q: milyen kapcsolatban Q: milyen kapcsolatban Q: milyen kapcsolatban Q: milyen kapcsolatban áááállnak az egyes egyedek egymllnak az egyes egyedek egymllnak az egyes egyedek egymllnak az egyes egyedek egymáááással? ssal? ssal? ssal?

A B

kkkkööööteleztelezteleztelezőőőő az A oldalonaz A oldalonaz A oldalonaz A oldalon

GEIAL Kovács László

Page 17: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

SzSzSzSzáááámossmossmossmossáááág jelleg szerinti kapcsolat tg jelleg szerinti kapcsolat tg jelleg szerinti kapcsolat tg jelleg szerinti kapcsolat tíííípusok:pusok:pusok:pusok:---- 1:1 egy 1:1 egy 1:1 egy 1:1 egy egyedelegyedelegyedelegyedelőőőőfordulfordulfordulfordulááááshozshozshozshoz maximum egy egyedmaximum egy egyedmaximum egy egyedmaximum egy egyed

ttttáááársul a kapcsolatban, mindkrsul a kapcsolatban, mindkrsul a kapcsolatban, mindkrsul a kapcsolatban, mindkéééét viszonylatbant viszonylatbant viszonylatbant viszonylatban---- 1:N (egy1:N (egy1:N (egy1:N (egy----ttttööööbb) egy bb) egy bb) egy bb) egy egyedelegyedelegyedelegyedelőőőőfordulfordulfordulfordulááááshozshozshozshoz ttttööööbb egyed bb egyed bb egyed bb egyed

ttttáááársulhat, de a mrsulhat, de a mrsulhat, de a mrsulhat, de a máááásik irsik irsik irsik iráááányban csak egy nyban csak egy nyban csak egy nyban csak egy kapcsolkapcsolkapcsolkapcsolóóóóddddóóóó egyedelegyedelegyedelegyedelőőőőfordulfordulfordulforduláááássss lllléééétezhettezhettezhettezhet

---- N:M (tN:M (tN:M (tN:M (tööööbbbbbbbb----ttttööööbb) mindkbb) mindkbb) mindkbb) mindkéééét irt irt irt iráááányban tnyban tnyban tnyban tööööbb kapcsolbb kapcsolbb kapcsolbb kapcsolóóóóddddóóóóelelelelőőőőfordulfordulfordulforduláááás ls ls ls léééétezhettezhettezhettezhet

1:11:11:11:1

orszorszorszorszáááág g g g ---- ffffőőőővvvváááárosrosrosros

A B

tulaj tulaj tulaj tulaj ---- autautautautóóóó

1:N1:N1:N1:N

N:MN:MN:MN:M

szszszszíííínnnnéééész sz sz sz ---- szszszszííííndarabndarabndarabndarab

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

GEIAL Kovács László

TulajdonsTulajdonsTulajdonsTulajdonsáááág: az egyedeket, kapcsolatokat jellemzg: az egyedeket, kapcsolatokat jellemzg: az egyedeket, kapcsolatokat jellemzg: az egyedeket, kapcsolatokat jellemzőőőő mennyismennyismennyismennyiséééégggg---- a leta leta leta letáááárolandrolandrolandrolandóóóó informinforminforminformááááccccóóóóelemekelemekelemekelemek tartalmazzatartalmazzatartalmazzatartalmazza

TTTTíííípusai:pusai:pusai:pusai:---- normnormnormnormáááál: egyl: egyl: egyl: egyéééértrtrtrtéééékkkkűűűű ember.szember.szember.szember.szüüüülidlidlidlidőőőő---- kulcs: azonoskulcs: azonoskulcs: azonoskulcs: azonosííííttttóóóó szerepszerepszerepszerepűűűű ember.TAJszember.TAJszember.TAJszember.TAJszáááámmmm---- öööösszetett: tsszetett: tsszetett: tsszetett: tööööbb tagbbb tagbbb tagbbb tagbóóóól l l l ááááll ll ll ll lakcimlakcimlakcimlakcim((((irszirszirszirsz, varos), varos), varos), varos)---- ttttööööbbbbbbbbéééértrtrtrtéééékkkkűűűű: t: t: t: tööööbb bb bb bb éééértrtrtrtééééke is lehet ke is lehet ke is lehet ke is lehet ember.hobbyember.hobbyember.hobbyember.hobby---- szszszszáááármaztatott: rmaztatott: rmaztatott: rmaztatott: éééértrtrtrtééééke kiszke kiszke kiszke kiszáááámmmmííííthatthatthatthatóóóó ember.ember.ember.ember.ééééletkorletkorletkorletkor

t

normnormnormnormáááállll

t

kulcskulcskulcskulcs

t

öööösszetettsszetettsszetettsszetett

t

t

t

ttttööööbbbbbbbbéééértrtrtrtéééékkkkűűűű

t

szszszszáááármaztatottrmaztatottrmaztatottrmaztatott

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

Q: milyen informQ: milyen informQ: milyen informQ: milyen informáááácicicicióóóókat tkat tkat tkat táááároljunk az egyedekre vonatkozroljunk az egyedekre vonatkozroljunk az egyedekre vonatkozroljunk az egyedekre vonatkozóóóólag?lag?lag?lag?

GEIAL Kovács László

Page 18: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

24th November 1998 Sample Powerpoint Presentation 3

Main Entities and Relationships

Employee Department

Project

works-

on

works-

for

manages

controls

super-

vises

hours

startdate

1 N

1

1

1N

NN

M

1

sup

erv

isor

superv

isee

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

mintapmintapmintapmintapééééldaldaldalda

GEIAL Kovács László

Az ER modell elemeiAz ER modell elemeiAz ER modell elemeiAz ER modell elemei

mintapmintapmintapmintapééééldaldaldalda

GEIAL Kovács László

Page 19: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

ModellezModellezModellezModellezéééés az ERs az ERs az ERs az ER----benbenbenben

KKKKöööövetelmvetelmvetelmvetelméééények nyek nyek nyek öööösszegysszegysszegysszegyüüüüjtjtjtjtéééésesesese

Egyedek meghatEgyedek meghatEgyedek meghatEgyedek meghatáááározrozrozrozáááásasasasa

Kapcsolatok meghatKapcsolatok meghatKapcsolatok meghatKapcsolatok meghatáááározrozrozrozáááásasasasa

TulajdonsTulajdonsTulajdonsTulajdonsáááágok meghatgok meghatgok meghatgok meghatáááározrozrozrozáááásasasasa

KKKKöööövetelmvetelmvetelmvetelméééények ellennyek ellennyek ellennyek ellenőőőőrzrzrzrzéééésesesese

GEIAL Kovács László

MintapMintapMintapMintapéééélda: lda: lda: lda: éééétterem konyhatterem konyhatterem konyhatterem konyha

éééételektelektelektelek

hozzhozzhozzhozzáááávalvalvalvalóóóókkkk

Rendelt adagokRendelt adagokRendelt adagokRendelt adagok

raktraktraktraktáááárkrkrkrkéééészletszletszletszlet

receptekreceptekreceptekreceptek BeszBeszBeszBeszáááállllllllííííttttóóóó cimcimcimcim

éééételektelektelektelek

BeszBeszBeszBeszáááállitllitllitllitóóóó nnnnéééévvvv

áááárakrakrakrak

…………

A pA pA pA péééélda feladat egy lda feladat egy lda feladat egy lda feladat egy ééééttermi nyilvttermi nyilvttermi nyilvttermi nyilváááántartntartntartntartáááás: s: s: s: éééételek, hozztelek, hozztelek, hozztelek, hozzáááávalvalvalvalóóóók, k, k, k, nyersanyagok, raktnyersanyagok, raktnyersanyagok, raktnyersanyagok, raktáááárkrkrkrkéééészlet, rendelszlet, rendelszlet, rendelszlet, rendeléééések, beszsek, beszsek, beszsek, beszáááállllllllííííttttóóóók (egy k (egy k (egy k (egy nyersanyagot csak egy besznyersanyagot csak egy besznyersanyagot csak egy besznyersanyagot csak egy beszáááállllllllííííttttóóóó hozhat)hozhat)hozhat)hozhat)

GEIAL Kovács László

Page 20: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

A kapcsolathoz is rendelhetA kapcsolathoz is rendelhetA kapcsolathoz is rendelhetA kapcsolathoz is rendelhetőőőő tulajdonstulajdonstulajdonstulajdonsáááágggg

MintapMintapMintapMintapéééélda: lda: lda: lda: éééétterem konyhatterem konyhatterem konyhatterem konyha

GEIAL Kovács László

DIA rendszerDIA rendszerDIA rendszerDIA rendszer

http://http://http://http://www.gnome.org/projects/diawww.gnome.org/projects/diawww.gnome.org/projects/diawww.gnome.org/projects/dia////

ingyenes diagramm rajzolingyenes diagramm rajzolingyenes diagramm rajzolingyenes diagramm rajzolóóóó program (MS program (MS program (MS program (MS VisioVisioVisioVisio----hozhozhozhoz hasonlhasonlhasonlhasonlóóóó))))

GEIAL Kovács László

Page 21: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

DIA rendszerDIA rendszerDIA rendszerDIA rendszer

Minta sMinta sMinta sMinta séééémamamama

GEIAL Kovács László

ModellezModellezModellezModellezéééés az ERs az ERs az ERs az ER----benbenbenben

Az ER modellben ugyanazt a objektum mAz ER modellben ugyanazt a objektum mAz ER modellben ugyanazt a objektum mAz ER modellben ugyanazt a objektum máááássss----mmmmáááás ms ms ms móóóódon is don is don is don is áááábrbrbrbráááázolhatzolhatzolhatzolhatóóóó aszerint, hogy a tervezaszerint, hogy a tervezaszerint, hogy a tervezaszerint, hogy a tervezőőőő mit mit mit mit kivkivkivkiváááánnnn hangshangshangshangsúúúúlyoznilyoznilyoznilyozni

Egy objektum lehet egyed Egy objektum lehet egyed Egy objektum lehet egyed Egy objektum lehet egyed éééés tulajdonss tulajdonss tulajdonss tulajdonsáááág isg isg isg is---- egyed : egyed : egyed : egyed : öööönnnnáááállllllllóóóó lllléééét, fontosst, fontosst, fontosst, fontossáááág kiemelg kiemelg kiemelg kiemeléééésesesese---- tulajdonstulajdonstulajdonstulajdonsáááág : kapcsolat mg : kapcsolat mg : kapcsolat mg : kapcsolat máááár egyedekhezr egyedekhezr egyedekhezr egyedekhez

üüüügyosztgyosztgyosztgyosztáááály: ly: ly: ly: egyed egy vegyed egy vegyed egy vegyed egy váááállalati struktllalati struktllalati struktllalati struktúúúúrrrráááában, deban, deban, deban, detulajdonstulajdonstulajdonstulajdonsáááág is lehet az olvasg is lehet az olvasg is lehet az olvasg is lehet az olvasóóóó egyednegyednegyednegyednééééllll

dolgozóügyosztály projekt

tagja részt vesz

dolgozó könyv

kölcsönöz

ügyosztálynév

telefon

GEIAL Kovács László

Page 22: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

Egy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkéééént nt nt nt éééés egyedks egyedks egyedks egyedkéééént isnt isnt isnt is

hhhháááázasszasszasszassáááág: g: g: g: egyed egy anyakegyed egy anyakegyed egy anyakegyed egy anyaköööönyvi hivatalban denyvi hivatalban denyvi hivatalban denyvi hivatalban dekapcsolat is lehet az egyedek kkapcsolat is lehet az egyedek kkapcsolat is lehet az egyedek kkapcsolat is lehet az egyedek köööözzzzöööötttttttt

házasság polgár

idõpont

férj

feleség

polgár

házasság

adószám

Egy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkEgy objektum megjelenhet kapcsolatkéééént nt nt nt ééééssss tulajdonstulajdonstulajdonstulajdonsáááágkgkgkgkéééént isnt isnt isnt is

tulajdonos: tulajdonos: tulajdonos: tulajdonos: kapcsolat egy adkapcsolat egy adkapcsolat egy adkapcsolat egy adóóóó hivatalban dehivatalban dehivatalban dehivatalban detulajdonstulajdonstulajdonstulajdonsáááág is lehet egy autg is lehet egy autg is lehet egy autg is lehet egy autóóóótelepen telepen telepen telepen

autó polgár

sz.számrendszám

tulaj

autó

rendszám

tulaj

ModellezModellezModellezModellezéééés az ERs az ERs az ERs az ER----benbenbenben

GEIAL Kovács László

A rugalmassA rugalmassA rugalmassA rugalmassáááág elleng elleng elleng ellenéééére, szre, szre, szre, száááámos esetben nem lehet egzaktul mos esetben nem lehet egzaktul mos esetben nem lehet egzaktul mos esetben nem lehet egzaktul megoldani az adatrendszer lemegoldani az adatrendszer lemegoldani az adatrendszer lemegoldani az adatrendszer leíííírrrráááássssáááátttt

ProblProblProblProbléééémmmmáááát jelent a t jelent a t jelent a t jelent a specializspecializspecializspecializáááácicicicióóóókkkk, , , , ááááltalltalltalltaláááánosnosnosnosííííttttáááások, sok, sok, sok, tartalmaztartalmaztartalmaztartalmazáááási relsi relsi relsi reláááácicicicióóóók k k k áááábrbrbrbráááázolzolzolzoláááása, hiszen az ER csak az sa, hiszen az ER csak az sa, hiszen az ER csak az sa, hiszen az ER csak az asszociasszociasszociasszociáááácicicicióóóót ismerit ismerit ismerit ismeri

autautautautóóóó

emberemberemberember jjjjáááármrmrmrműűűű

motormotormotormotor

ideiglenesideiglenesideiglenesideiglenesszimmetrikusszimmetrikusszimmetrikusszimmetrikuslazalazalazalaza

szoros kapcsolatszoros kapcsolatszoros kapcsolatszoros kapcsolatnem szimmetrikusnem szimmetrikusnem szimmetrikusnem szimmetrikusáááállandllandllandllandóóóósultsultsultsult

áááállandllandllandllandóóóósultsultsultsultnem szimmetrikusnem szimmetrikusnem szimmetrikusnem szimmetrikusfogalmi szintfogalmi szintfogalmi szintfogalmi szintűűűű

Az egyfajta jelAz egyfajta jelAz egyfajta jelAz egyfajta jelöööölllléééési msi msi msi móóóóddddelmossa a kelmossa a kelmossa a kelmossa a küüüüllllöööönbsnbsnbsnbséééégeketgeketgeketgeket

ModellezModellezModellezModellezéééés az ERs az ERs az ERs az ER----benbenbenben

AsszociAsszociAsszociAsszociááááccccóóóó

TartalmazTartalmazTartalmazTartalmazáááássss

SpecializSpecializSpecializSpecializáááácicicicióóóó

GEIAL Kovács László

Page 23: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

Az ER modell kibAz ER modell kibAz ER modell kibAz ER modell kibőőőővvvvííííttttéééése a se a se a se a specializspecializspecializspecializáááácicicicióóóó éééés a tartalmazs a tartalmazs a tartalmazs a tartalmazáááás s s s Kapcsolat elemekkel. Jele: EERKapcsolat elemekkel. Jele: EERKapcsolat elemekkel. Jele: EERKapcsolat elemekkel. Jele: EER

autautautautóóóó

emberemberemberember jjjjáááármrmrmrműűűű

motormotormotormotor

HAS_AHAS_AHAS_AHAS_A

IS_AIS_AIS_AIS_A

A tartalmi kA tartalmi kA tartalmi kA tartalmi küüüüllllöööönbsnbsnbsnbsééééggggmegmutatkozik a formmegmutatkozik a formmegmutatkozik a formmegmutatkozik a formáááában isban isban isban is

Az EER adatmodellAz EER adatmodellAz EER adatmodellAz EER adatmodell

AsszociAsszociAsszociAsszociááááccccóóóó

TartalmazTartalmazTartalmazTartalmazáááássss

SpecializSpecializSpecializSpecializáááácicicicióóóó

GEIAL Kovács László

Az IFO Az IFO Az IFO Az IFO szemantikai szemantikai szemantikai szemantikai modellmodellmodellmodell

ElemeiElemeiElemeiElemei

elemi

obejktum

absztrakt

objektum

származtatott

objektumobjektumokobjektumokobjektumokobjektumok

A B

c

asszociasszociasszociasszociáááácicicicióóóó

ÚÚÚÚjfajta fogalom orientjfajta fogalom orientjfajta fogalom orientjfajta fogalom orientáááált szemantikai modelllt szemantikai modelllt szemantikai modelllt szemantikai modell

FunkcionFunkcionFunkcionFunkcionáááális modellek csallis modellek csallis modellek csallis modellek csaláááádjdjdjdjáááába tartozikba tartozikba tartozikba tartozik

A struktA struktA struktA struktúúúúra orientra orientra orientra orientááááltsltsltsltsáááág helyett a hozzg helyett a hozzg helyett a hozzg helyett a hozzáááárendelrendelrendelrendeléééésen alapsziksen alapsziksen alapsziksen alapszik

EgyenrangEgyenrangEgyenrangEgyenrangúúúú objektumokat tartalmazobjektumokat tartalmazobjektumokat tartalmazobjektumokat tartalmaz

Gazdag struktGazdag struktGazdag struktGazdag struktúúúúra ra ra ra éééés kapcsolat ks kapcsolat ks kapcsolat ks kapcsolat kéééészletszletszletszlet

GEIAL Kovács László

Page 24: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

12

aggregaggregaggregaggregáááácicicicióóóó

csoportkcsoportkcsoportkcsoportkéééépzpzpzpzééééssss

A Bspecializspecializspecializspecializáááácicicicióóóó

A

X Y

ááááltalltalltalltaláááánosnosnosnosííííttttáááássss

Az IFO Az IFO Az IFO Az IFO szemantikai szemantikai szemantikai szemantikai modellmodellmodellmodell

ElemeiElemeiElemeiElemei

struktstruktstruktstruktúúúúrrrráááákkkk

GEIAL Kovács László

utakutakutakutak

MintapMintapMintapMintapéééélda: utazlda: utazlda: utazlda: utazáááási irodasi irodasi irodasi iroda

idegenvezetidegenvezetidegenvezetidegenvezetőőőő

nyelvismeretnyelvismeretnyelvismeretnyelvismeret

alkalmazottakalkalmazottakalkalmazottakalkalmazottak

turistturistturistturistáááákkkk

ididididőőőőpontpontpontpont

lakclakclakclakcíííímmmm

Az IFO Az IFO Az IFO Az IFO szemantikai szemantikai szemantikai szemantikai modellmodellmodellmodell

GEIAL Kovács László

Page 25: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

13

személy

út

név

túrista

idegenvezetõ

nyelv

szint

kategória

résztvevõ

alkalmazott

id

varosÚt,hsz

Az IFO Az IFO Az IFO Az IFO szemantikai szemantikai szemantikai szemantikai modellmodellmodellmodell

MintapMintapMintapMintapéééélda: utazlda: utazlda: utazlda: utazáááási irodasi irodasi irodasi iroda

GEIAL Kovács László

Page 26: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

HHHHáááállllóóóós adatmodells adatmodells adatmodells adatmodell

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

Fizikai adatmodellekFizikai adatmodellekFizikai adatmodellekFizikai adatmodellek

Az igAz igAz igAz igéééények nyek nyek nyek éééés lehets lehets lehets lehetőőőősssséééégek kompromisszumagek kompromisszumagek kompromisszumagek kompromisszuma

A modellek vA modellek vA modellek vA modellek vááááltoznak a koncepciltoznak a koncepciltoznak a koncepciltoznak a koncepcióóóók k k k éééés a technols a technols a technols a technolóóóógia fejlgia fejlgia fejlgia fejlőőőőddddéééésssséééévelvelvelvel

MegkMegkMegkMegköööözelzelzelzelííííttttőőőőleg 10 leg 10 leg 10 leg 10 éééévenkvenkvenkvenkéééént nt nt nt úúúúj adatmodell jelent megj adatmodell jelent megj adatmodell jelent megj adatmodell jelent meg

Page 27: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

HHHHáááállllóóóós adatmodells adatmodells adatmodells adatmodell

IdIdIdIdőőőőszak: 1960szak: 1960szak: 1960szak: 1960----as as as as éééévek kvek kvek kvek köööözepezepezepezepe

Fizikai keretfeltFizikai keretfeltFizikai keretfeltFizikai keretfeltéééételek:telek:telek:telek:---- diszklemezes tdiszklemezes tdiszklemezes tdiszklemezes táááárolrolrolroláááás s s s ---- osztott memosztott memosztott memosztott memóóóóriariariaria---- multiprocesszoros OSmultiprocesszoros OSmultiprocesszoros OSmultiprocesszoros OS

KialakulKialakulKialakulKialakuláááása: sa: sa: sa: ---- 1961 : MIACS (1961 : MIACS (1961 : MIACS (1961 : MIACS (BachmanBachmanBachmanBachman, GE), GE), GE), GE)---- 1965 : 1965 : 1965 : 1965 : HoneywellHoneywellHoneywellHoneywell (IDS)(IDS)(IDS)(IDS)---- 1971 : CODASYL1971 : CODASYL1971 : CODASYL1971 : CODASYL

ElElElElőőőőnyei:nyei:nyei:nyei:---- hathathathatéééékonyskonyskonyskonysáááágggg---- funkcionalitfunkcionalitfunkcionalitfunkcionalitáááássss---- API felAPI felAPI felAPI felüüüületletletlet

HHHHáááátrtrtrtráááányai:nyai:nyai:nyai:---- alacsony szintalacsony szintalacsony szintalacsony szintűűűű kezelkezelkezelkezelééééssss---- procedurprocedurprocedurproceduráááálislislislis kezelkezelkezelkezelőőőő felfelfelfelüüüület let let let ---- rugalmatlan struktrugalmatlan struktrugalmatlan struktrugalmatlan struktúúúúrararara

rekordrekordrekordrekord

SETSETSETSET

mezmezmezmezőőőő

HHHHáááállllóóóós adatmodells adatmodells adatmodells adatmodell

Adatmodell elemeiAdatmodell elemeiAdatmodell elemeiAdatmodell elemei

mezmezmezmezőőőő

rekordrekordrekordrekord

rekordkrekordkrekordkrekordkéééészletszletszletszlet

PCRPCRPCRPCR

SETSETSETSET

adatbadatbadatbadatbááááziszisziszis

PCRPCRPCRPCR

adatbadatbadatbadatbááááziszisziszis

Page 28: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

---- AdatkezelAdatkezelAdatkezelAdatkezelőőőő éééés leks leks leks lekéééérdezrdezrdezrdezőőőő nyelv (DML,DQL)nyelv (DML,DQL)nyelv (DML,DQL)nyelv (DML,DQL)---- Gazdanyelvbe Gazdanyelvbe Gazdanyelvbe Gazdanyelvbe áááágyazott, rekordorientgyazott, rekordorientgyazott, rekordorientgyazott, rekordorientáááált kezellt kezellt kezellt kezelőőőő felfelfelfelüüüületletletlet---- DB rekordstruktDB rekordstruktDB rekordstruktDB rekordstruktúúúúrrrráááával azonos felval azonos felval azonos felval azonos felééééppppííííttttééééssssűűűű kapcsolati vkapcsolati vkapcsolati vkapcsolati vááááltozltozltozltozóóóókkkk

osztott osztott osztott osztott memmemmemmemóóóóriariariaria

vauto

DBDBDBDB

auto

HHHHáááállllóóóós adatmodells adatmodells adatmodells adatmodell

AdatbAdatbAdatbAdatbáááázis tartalom kezelzis tartalom kezelzis tartalom kezelzis tartalom kezeléééése gazdanyelvi programbse gazdanyelvi programbse gazdanyelvi programbse gazdanyelvi programbóóóól tl tl tl töööörtrtrtrtéééénik nik nik nik

alkalmazalkalmazalkalmazalkalmazáááássss

x

y

z

DBMSDBMSDBMSDBMS

ids_x1

ids_x2

AdatkezelAdatkezelAdatkezelAdatkezelőőőő felfelfelfelüüüületletletlet

könyv

ISBN

C(11)

szerző

C(50)

*

dátum

D

kiadás *

ár

N

A hA hA hA háááállllóóóós modell elemeis modell elemeis modell elemeis modell elemei

MEZMEZMEZMEZŐŐŐŐ : le: le: le: leíííírrrróóóó tulajdonstulajdonstulajdonstulajdonsáááág tg tg tg táááárolrolrolroláááássssáááára szolgra szolgra szolgra szolgáááállll

a legkisebb na legkisebb na legkisebb na legkisebb néééévvel azonosvvel azonosvvel azonosvvel azonosíííított ttott ttott ttott táááárolrolrolroláááási egyssi egyssi egyssi egyséééégggg

lehet lehet lehet lehet öööösszetett issszetett issszetett issszetett is---- vektor: tvektor: tvektor: tvektor: tööööbbbbbbbbéééértrtrtrtéééékkkkűűűű struktstruktstruktstruktúúúúrararara---- csoport: csoport: csoport: csoport: öööösszetett egy vagy tsszetett egy vagy tsszetett egy vagy tsszetett egy vagy tööööbbbbbbbbéééértrtrtrtéééékkkkűűűű struktstruktstruktstruktúúúúrararara

lehet normlehet normlehet normlehet normáááál vagy kulcsl vagy kulcsl vagy kulcsl vagy kulcs

elnevezelnevezelnevezelnevezéééés, ts, ts, ts, tíííípus jellemzipus jellemzipus jellemzipus jellemzi

Page 29: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

A hA hA hA háááállllóóóós modell elemeis modell elemeis modell elemeis modell elemei

rekordrekordrekordrekord----elelelelőőőőfordulfordulfordulforduláááássss

IS12IS12IS12IS12 Nagy BNagy BNagy BNagy B

kkkköööönyvnyvnyvnyv

ISBNISBNISBNISBN szerzszerzszerzszerzőőőő

rekordsrekordsrekordsrekordséééémamamama

REKORD : egysREKORD : egysREKORD : egysREKORD : egyséééégkgkgkgkéééént tnt tnt tnt táááárolt mezrolt mezrolt mezrolt mezőőőők egyk egyk egyk együüüüttesettesettesettese

Az ER egyed fogalmAz ER egyed fogalmAz ER egyed fogalmAz ER egyed fogalmáááához hasonlhoz hasonlhoz hasonlhoz hasonlóóóó egysegysegysegyséééégggg

szerkezet (sszerkezet (sszerkezet (sszerkezet (sééééma) jellemzima) jellemzima) jellemzima) jellemzi

rrrröööögzgzgzgzíííített meztett meztett meztett mezőőőősorrendsorrendsorrendsorrend

REKORDKREKORDKREKORDKREKORDKÉÉÉÉSZLET : az egy sSZLET : az egy sSZLET : az egy sSZLET : az egy séééémmmmáááához tartozhoz tartozhoz tartozhoz tartozóóóórekordrekordrekordrekord----elelelelőőőőfordulfordulfordulforduláááások egysok egysok egysok együüüüttese ttese ttese ttese

RekordkRekordkRekordkRekordkéééészletszletszletszlet

szülő rekord

gyerek rekord

ember

autó

ország

város

A hA hA hA háááállllóóóós modell elemeis modell elemeis modell elemeis modell elemei

PCR kapcsolat : kPCR kapcsolat : kPCR kapcsolat : kPCR kapcsolat : kéééét rekord kt rekord kt rekord kt rekord köööözzzzöööötti 1:N kapcsolattti 1:N kapcsolattti 1:N kapcsolattti 1:N kapcsolat

egy szegy szegy szegy szüüüüllllőőőő éééés egy gyerek rekord alkotja, nincs azonoss egy gyerek rekord alkotja, nincs azonoss egy gyerek rekord alkotja, nincs azonoss egy gyerek rekord alkotja, nincs azonosííííttttóóóó neveneveneveneve

a sza sza sza szüüüüllllőőőő rekord minden elrekord minden elrekord minden elrekord minden előőőőfordulfordulfordulforduláááássssáááához thoz thoz thoz tööööbb gyerekbb gyerekbb gyerekbb gyerekRekordRekordRekordRekord----elelelelőőőőfordulfordulfordulforduláááás tartozhats tartozhats tartozhats tartozhat

egy gyerek elegy gyerek elegy gyerek elegy gyerek előőőőfordulfordulfordulfordulááááshoz egy szshoz egy szshoz egy szshoz egy szüüüüllllőőőőrekordrekordrekordrekord----elelelelőőőőfordulfordulfordulforduláááás tartoziks tartoziks tartoziks tartozik

Page 30: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

szülő

gyerek1 gyerek2

...

setnsetnsetnsetnéééévvvv

kkkköööönyvtnyvtnyvtnyvtáááárrrr

kkkköööönyvnyvnyvnyv olvasolvasolvasolvasóóóó

KKKKöööönyvtnyvtnyvtnyvtáááárrrr

A hA hA hA háááállllóóóós modell elemeis modell elemeis modell elemeis modell elemei

SET: kapcsolatelem, azonos rekordbSET: kapcsolatelem, azonos rekordbSET: kapcsolatelem, azonos rekordbSET: kapcsolatelem, azonos rekordbóóóól kiindull kiindull kiindull kiindulóóóó PCRPCRPCRPCR----ekekekek egyegyegyegyüüüüttesettesettesettese

egyszintegyszintegyszintegyszintűűűű fa struktfa struktfa struktfa struktúúúúrararara

a gya gya gya gyöööökkkkéééér rekordtr rekordtr rekordtr rekordtíííípus lesz a pus lesz a pus lesz a pus lesz a setsetsetset tulajdonosatulajdonosatulajdonosatulajdonosa

a gyermek rekordta gyermek rekordta gyermek rekordta gyermek rekordtíííípusok a pusok a pusok a pusok a setsetsetset tagjaitagjaitagjaitagjai

A A A A setsetsetset----neknekneknek van azonosvan azonosvan azonosvan azonosííííttttóóóó neveneveneveneve

egy rekordtegy rekordtegy rekordtegy rekordtíííípus tpus tpus tpus tööööbb bb bb bb SETSETSETSET----benbenbenben is szerepelhet (CODASYL)is szerepelhet (CODASYL)is szerepelhet (CODASYL)is szerepelhet (CODASYL)

SpeciSpeciSpeciSpeciáááális lis lis lis SETSETSETSET----ekekekek: szingul: szingul: szingul: szingulááááris SET, rekurzris SET, rekurzris SET, rekurzris SET, rekurzíííív SETv SETv SETv SET

az adatbaz adatbaz adatbaz adatbáááázis tetszzis tetszzis tetszzis tetszőőőőleges szleges szleges szleges száááámmmmúúúú setsetsetset----ttttíííípustpustpustpust tartalmazhattartalmazhattartalmazhattartalmazhatminden minden minden minden setneksetneksetneksetnek van neve van neve van neve van neve éééés egy tulajdonosas egy tulajdonosas egy tulajdonosas egy tulajdonosaminden minden minden minden setbensetbensetbensetben van egy vagy tvan egy vagy tvan egy vagy tvan egy vagy tööööbb tag rekordtbb tag rekordtbb tag rekordtbb tag rekordtíííípus pus pus pus minden minden minden minden sethezsethezsethezsethez tartozik egy tagrekord ttartozik egy tagrekord ttartozik egy tagrekord ttartozik egy tagrekord táááárolrolrolroláááási sorrendsi sorrendsi sorrendsi sorrendbbbbáááármely egyedtrmely egyedtrmely egyedtrmely egyedtíííípus megadhatpus megadhatpus megadhatpus megadhatóóóó egy vagy tegy vagy tegy vagy tegy vagy tööööbb bb bb bb setsetsetset tagjaktagjaktagjaktagjakééééntntntntbbbbáááármely egyedtrmely egyedtrmely egyedtrmely egyedtíííípus csak egy pus csak egy pus csak egy pus csak egy setbensetbensetbensetben lehet tulajdonoslehet tulajdonoslehet tulajdonoslehet tulajdonosegy tulajdonos rekord elegy tulajdonos rekord elegy tulajdonos rekord elegy tulajdonos rekord előőőőfordulfordulfordulforduláááás ls ls ls léééétrehoz egy trehoz egy trehoz egy trehoz egy

setsetsetset elelelelőőőőfordulfordulfordulfordulááááststststegy egy egy egy setbensetbensetbensetben egy rekordtegy rekordtegy rekordtegy rekordtíííípus bpus bpus bpus báááármely elrmely elrmely elrmely előőőőfordulfordulfordulforduláááása sa sa sa

maximum csak egyszer szerepelhet, s nem tmaximum csak egyszer szerepelhet, s nem tmaximum csak egyszer szerepelhet, s nem tmaximum csak egyszer szerepelhet, s nem tööööbbszbbszbbszbbszöööörrrregy egy egy egy setsetsetset elelelelőőőőfordulfordulfordulforduláááásban a tagrekordnak tetszsban a tagrekordnak tetszsban a tagrekordnak tetszsban a tagrekordnak tetszőőőőleges sok leges sok leges sok leges sok

elelelelőőőőfordulfordulfordulforduláááása szerepelhetsa szerepelhetsa szerepelhetsa szerepelhet

CODASYL szabCODASYL szabCODASYL szabCODASYL szabáááályoklyoklyoklyok

A hA hA hA háááállllóóóó adatmodell formai leadatmodell formai leadatmodell formai leadatmodell formai leíííírrrráááása (1971)sa (1971)sa (1971)sa (1971)

HonvHonvHonvHonvééééd K.d K.d K.d K.

AbigAbigAbigAbigééééllll TanodaTanodaTanodaTanoda

SETSETSETSET----ppppééééldldldldáááánynynynySETSETSETSET----sssséééémamamama

kkkköööönyvtnyvtnyvtnyvtáááárrrr

kkkköööönyvnyvnyvnyv olvasolvasolvasolvasóóóó

kiadkiadkiadkiadóóóó

Page 31: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

A hA hA hA háááállllóóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása hsa hsa hsa háááállllóóóós modellre s modellre s modellre s modellre

egyedegyedegyedegyed →→→→ rekordtrekordtrekordtrekordtíííípuspuspuspus

éééételtelteltel nyersanyagnyersanyagnyersanyagnyersanyag

szszszszáááállllllllííííttttóóóó

elemi tulajdonselemi tulajdonselemi tulajdonselemi tulajdonsáááágggg →→→→ mezmezmezmezőőőő

nevnevnevnev cimcimcimcim

kulcs tulajdonskulcs tulajdonskulcs tulajdonskulcs tulajdonsáááágggg →→→→ kulcskulcskulcskulcs mezmezmezmezőőőő

A hA hA hA háááállllóóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása hsa hsa hsa háááállllóóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

öööösszetett tulajdonssszetett tulajdonssszetett tulajdonssszetett tulajdonsáááág g g g →→→→ csoport mezcsoport mezcsoport mezcsoport mezőőőő

ttttööööbbbbbbbbéééértrtrtrtéééékkkkűűűű tulajdonstulajdonstulajdonstulajdonsáááág g g g →→→→ vektor mezvektor mezvektor mezvektor mezőőőő

nnnnéééévvvv

éééételtelteltel

RendelRendelRendelRendeléééés*s*s*s*

ddddáááátumtumtumtum menny.menny.menny.menny.

Page 32: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

A hA hA hA háááállllóóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása hsa hsa hsa háááállllóóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

1:1 kapcsolat 1:1 kapcsolat 1:1 kapcsolat 1:1 kapcsolat →→→→ PCRPCRPCRPCR

1:N kapcsolat 1:N kapcsolat 1:N kapcsolat 1:N kapcsolat →→→→ PCRPCRPCRPCR

szszszszáááállllllllííííttttóóóó

nyersanyagnyersanyagnyersanyagnyersanyag

A hA hA hA háááállllóóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása hsa hsa hsa háááállllóóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

N:M kapcsolat N:M kapcsolat N:M kapcsolat N:M kapcsolat →→→→

kapcsolkapcsolkapcsolkapcsolóóóó rekord + 2*PCRrekord + 2*PCRrekord + 2*PCRrekord + 2*PCR

belevalbelevalbelevalbelevalóóóókkkk

éééételtelteltel

nyersanyagnyersanyagnyersanyagnyersanyag

éééételtelteltel nyersanyagnyersanyagnyersanyagnyersanyag

Page 33: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

Fizikai tFizikai tFizikai tFizikai táááárolrolrolroláááási struktsi struktsi struktsi struktúúúúrararara

A hA hA hA háááállllóóóós modell els modell els modell els modell előőőőfordulfordulfordulforduláááássss----kezelkezelkezelkezeléééésesesese

emberemberemberember

idididid nnnnéééévvvv

autautautautóóóó

rszrszrszrsz tipustipustipustipus

sssséééémamamama

1111 PetiPetiPetiPeti

3333 TomiTomiTomiTomi

r4r4r4r4 OpelOpelOpelOpel

2222 LaciLaciLaciLaci

r3r3r3r3 OpelOpelOpelOpel

r1r1r1r1 AudiAudiAudiAudi

1111 PetiPetiPetiPeti

2222 LaciLaciLaciLaci

3333 TomiTomiTomiTomi

r3r3r3r3 OpelOpelOpelOpel

r4r4r4r4 OpelOpelOpelOpel

r1r1r1r1 AudiAudiAudiAudi

elelelelőőőőfordulfordulfordulforduláááásoksoksoksoklogikai szintenlogikai szintenlogikai szintenlogikai szinten

elelelelőőőőfordulfordulfordulforduláááásoksoksoksokfizikai szintenfizikai szintenfizikai szintenfizikai szinten

Fizikai tFizikai tFizikai tFizikai táááárolrolrolroláááási struktsi struktsi struktsi struktúúúúrararara

KiadoKiadoKiadoKiado SETSETSETSET KKKKöööönyvtnyvtnyvtnyvtáááár SETr SETr SETr SET

A hA hA hA háááállllóóóós modell els modell els modell els modell előőőőfordulfordulfordulforduláááássss----kezelkezelkezelkezeléééésesesese

A PCR, SET pointer lA PCR, SET pointer lA PCR, SET pointer lA PCR, SET pointer lááááncokkal kerncokkal kerncokkal kerncokkal kerüüüül nyilvl nyilvl nyilvl nyilváááántartntartntartntartáááásrasrasrasra

kkkköööönyvtnyvtnyvtnyvtáááárrrr

kkkköööönyvnyvnyvnyv

olvasolvasolvasolvasóóóó

kiadkiadkiadkiadóóóó

logikai szintlogikai szintlogikai szintlogikai szint

ki1ki1ki1ki1

kkkköööö1111 kkkköööö2222ki2ki2ki2ki2

kkkköööö3333 kkkköööö4444 kkkköööö5555

kt1kt1kt1kt1

ol1ol1ol1ol1 ol2ol2ol2ol2 ol3ol3ol3ol3

kt2kt2kt2kt2

fizikai szintfizikai szintfizikai szintfizikai szint

Page 34: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

Az adatkezelAz adatkezelAz adatkezelAz adatkezeléééés navigs navigs navigs navigáááácicicicióóóós ms ms ms műűűűveleteken alapszikveleteken alapszikveleteken alapszikveleteken alapszik

A hA hA hA háááállllóóóós modell ms modell ms modell ms modell műűűűveleteiveleteiveleteiveletei

ki1ki1ki1ki1

kkkköööö3333

ol1ol1ol1ol1

kt1kt1kt1kt1

osztott osztott osztott osztott memmemmemmemóóóóriariariaria

A navigA navigA navigA navigáááácicicicióóóó a pointerla pointerla pointerla pointerláááánc nc nc nc mentmentmentmentéééén tn tn tn töööörtrtrtrtéééénik, nik, nik, nik, úúúúj AR leszj AR leszj AR leszj AR lesz

ki1ki1ki1ki1

kkkköööö1111 kkkköööö2222ki2ki2ki2ki2

kkkköööö3333 kkkköööö4444 kkkköööö5555

kt1kt1kt1kt1

ol1ol1ol1ol1 ol2ol2ol2ol2 ol3ol3ol3ol3

kt2kt2kt2kt2

adatbadatbadatbadatbááááziszisziszis

Adattartalom az osztott memAdattartalom az osztott memAdattartalom az osztott memAdattartalom az osztott memóóóóririririáááán n n n keresztkeresztkeresztkeresztüüüül l l l éééérhetrhetrhetrhetőőőő elelelel

Minden rekordtMinden rekordtMinden rekordtMinden rekordtíííípushoz sajpushoz sajpushoz sajpushoz sajáááát t t t memmemmemmemóóóóriariariaria----vvvvááááltozltozltozltozóóóó (MV)(MV)(MV)(MV)

Az aktuAz aktuAz aktuAz aktuáááális rekordlis rekordlis rekordlis rekord----elelelelőőőőfordulfordulfordulforduláááás s s s (AR) (AR) (AR) (AR) éééérhetrhetrhetrhetőőőő el az el az el az el az MVMVMVMV----benbenbenben

KKKKöööövetkezvetkezvetkezvetkezőőőő elem: elem: elem: elem: mmmmnnnnfeltfeltfeltfeltéééételtelteltel((((setsetsetset,rekord),rekord),rekord),rekord)

Az adatkezelAz adatkezelAz adatkezelAz adatkezeléééés navigs navigs navigs navigáááácicicicióóóós ms ms ms műűűűveleteiveleteiveleteiveletei

A hA hA hA háááállllóóóós modell ms modell ms modell ms modell műűűűveleteiveleteiveleteiveletei

1111 PetiPetiPetiPeti

2222 LaciLaciLaciLaci

3333 TomiTomiTomiTomi

r3r3r3r3 OpelOpelOpelOpel

r4r4r4r4 OpelOpelOpelOpel

r1r1r1r1 AudiAudiAudiAudi

MozgMozgMozgMozgáááás a s a s a s a szingurszingurszingurszinguráááálislislislis SET mentSET mentSET mentSET mentéééénnnn

elselselselsőőőő elelelelőőőőfordulfordulfordulforduláááás: ps: ps: ps: p1111feltfeltfeltfeltéééételtelteltel(rekord)(rekord)(rekord)(rekord)

kkkköööövetkezvetkezvetkezvetkezőőőő elem: elem: elem: elem: ppppnnnnfeltfeltfeltfeltéééételtelteltel(rekord)(rekord)(rekord)(rekord)

MozgMozgMozgMozgáááás a szs a szs a szs a szüüüüllllőőőőhhhhöööözzzz

szszszszüüüüllllőőőő kivkivkivkiváááálasztlasztlasztlasztáááása: osa: osa: osa: o ((((setsetsetset,rekord),rekord),rekord),rekord)

MozgMozgMozgMozgáááás a tagokhozs a tagokhozs a tagokhozs a tagokhoz

elselselselsőőőő elem: melem: melem: melem: m1111feltfeltfeltfeltéééételtelteltel((((setsetsetset,rekord),rekord),rekord),rekord)

Page 35: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

Az adatkezelAz adatkezelAz adatkezelAz adatkezeléééés navigs navigs navigs navigáááácicicicióóóós ms ms ms műűűűveleteiveleteiveleteiveletei

A hA hA hA háááállllóóóós modell ms modell ms modell ms modell műűűűveleteiveleteiveleteiveletei

1111 PetiPetiPetiPeti

2222 LaciLaciLaciLaci

3333 TomiTomiTomiTomi

r3r3r3r3 OpelOpelOpelOpel

r4r4r4r4 OpelOpelOpelOpel

r1r1r1r1 AudiAudiAudiAudi

Feladat: Az Opel nevFeladat: Az Opel nevFeladat: Az Opel nevFeladat: Az Opel nevűűűű autautautautóóóó tulajdonosainak neveitulajdonosainak neveitulajdonosainak neveitulajdonosainak nevei

PPPP1111tipus=tipus=tipus=tipus=‘‘‘‘OpelOpelOpelOpel’’’’((((autoautoautoauto))))whilewhilewhilewhile (status==OK) {(status==OK) {(status==OK) {(status==OK) {

o(ember_o(ember_o(ember_o(ember_setsetsetset, , , , autoautoautoauto))))printprintprintprint ‘‘‘‘nevnevnevnev====‘‘‘‘ + v_ember+ v_ember+ v_ember+ v_emberppppnnnntipustipustipustipus====‘‘‘‘OpelOpelOpelOpel’’’’((((autoautoautoauto))))

}}}}

Page 36: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

RelRelRelReláááácicicicióóóós adatmodells adatmodells adatmodells adatmodell

sssstrukturtrukturtrukturtrukturáááálislislislis éééés integrits integrits integrits integritáááási rsi rsi rsi réééészszszsz

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

RelRelRelReláááácicicicióóóós modell kialakuls modell kialakuls modell kialakuls modell kialakuláááásasasasa

hardver technolhardver technolhardver technolhardver technolóóóógia robbangia robbangia robbangia robbanáááásszersszersszersszerűűűű fejlfejlfejlfejlőőőőddddééééseseseseMooreMooreMooreMoore----megfigyelmegfigyelmegfigyelmegfigyeléééésesesese: : : : éééévente duplvente duplvente duplvente dupláááázzzzóóóódik a teljesdik a teljesdik a teljesdik a teljesíííítmtmtmtméééény ny ny ny

- ma már két év a periódus- még kb. 15 évig érvényes

GEIAL Kovács László

Page 37: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

GEIAL Kovács László

RelRelRelReláááácicicicióóóós modell kialakuls modell kialakuls modell kialakuls modell kialakuláááásasasasa

számítógépek elterjedése

1970: pár tízezer1978: pár százezer1981: ötmillió1985: harmincötmillió1989: százmillió1996: háromszázmillió2004: egy milliárd2007: kétmilliárd

E.F. Codd (1932-2003)1970: A Relational Model of Data for Large Shared Data Banks

Az Az Az Az úúúúj adatmodell kialakj adatmodell kialakj adatmodell kialakj adatmodell kialakííííttttáááássssáááának hnak hnak hnak hááááttere:ttere:ttere:ttere:

PC, PC, PC, PC, minigminigminigminigéééépekpekpekpek elterjedelterjedelterjedelterjedéééésesesese

igigigigéééény az egyszerny az egyszerny az egyszerny az egyszerűűűűbb kezelbb kezelbb kezelbb kezeléééésresresresre

igigigigéééény a rugalmasabb megvalny a rugalmasabb megvalny a rugalmasabb megvalny a rugalmasabb megvalóóóóssssííííttttáááásrasrasrasra

igigigigéééény a kis erny a kis erny a kis erny a kis erőőőőforrforrforrforráááás melletti megolds melletti megolds melletti megolds melletti megoldáááásokrasokrasokrasokra

GEIAL Kovács László

Page 38: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

RelRelRelReláááácicicicióóóós modell kialakuls modell kialakuls modell kialakuls modell kialakuláááásasasasa

1970

2000

1980

1990

CoddCoddCoddCodd javaslata(IBM)javaslata(IBM)javaslata(IBM)javaslata(IBM)

SystemSystemSystemSystem----RRRR

OracleOracleOracleOracle

SequelSequelSequelSequel

InformixInformixInformixInformix dBasedBasedBasedBaseDB2DB2DB2DB2 RDBRDBRDBRDB

SybaseSybaseSybaseSybasePostgresPostgresPostgresPostgres

IngresIngresIngresIngres

mySQLmySQLmySQLmySQL

ClipperClipperClipperClipper

SQLServerSQLServerSQLServerSQLServer

SQL86SQL86SQL86SQL86

SQL89SQL89SQL89SQL89

SQL92SQL92SQL92SQL92

SQL1999SQL1999SQL1999SQL1999SQL2003SQL2003SQL2003SQL2003

ODBCODBCODBCODBC

EEEE----SQLSQLSQLSQL

VFPVFPVFPVFP

RelRelRelReláááácicicicióóóóssss modell idmodell idmodell idmodell időőőőrendi fejlrendi fejlrendi fejlrendi fejlőőőőddddéééésesesese

mySQLmySQLmySQLmySQL JDBCJDBCJDBCJDBCADOADOADOADOOracleOracleOracleOracle DB2 DB2 DB2 DB2 SQLServerSQLServerSQLServerSQLServerGEIAL Kovács László

mezmezmezmezőőőőrekord srekord srekord srekord séééémamamama

RelRelRelReláááácicicicióóóós adatmodells adatmodells adatmodells adatmodell

Az adatmodell elemeiAz adatmodell elemeiAz adatmodell elemeiAz adatmodell elemei

mező

rekord

rekord-halmaz (reláció)

adatbázis

adatbadatbadatbadatbááááziszisziszis

egyszerű szerkezet

GEIAL Kovács László

Page 39: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

kód név beosztás

Dolgozó1

2

3

Zoli

Anna

Feri

főnök

titkár

portás

RelRelRelReláááácicicicióóóós adatmodells adatmodells adatmodells adatmodell

Az adatmodell elemeiAz adatmodell elemeiAz adatmodell elemeiAz adatmodell elemei

sémarekord előfordulásoklogikailag

Rekord előfordulásokfizikai szintje

rsz tulaj tipus

Auto

r1

r2

r3

1

1

Fiat

Opel

Fiat

3

1111 ZoliZoliZoliZoli

2222 AnnaAnnaAnnaAnna

3333 FeriFeriFeriFeri

r3r3r3r3 FiatFiatFiatFiat

r2r2r2r2 OpelOpelOpelOpel

r1r1r1r1 FiatFiatFiatFiat

GEIAL Kovács László

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

elnevezelnevezelnevezelnevezéééés, ts, ts, ts, tíííípus jellemzipus jellemzipus jellemzipus jellemzi

könyv

szerző

C(50)

kodN

árN

mezmezmezmezőőőő : a le: a le: a le: a leíííírrrróóóó tulajdonstulajdonstulajdonstulajdonsáááág tg tg tg táááárolrolrolroláááássssáááára szolgra szolgra szolgra szolgáááállll

a legkisebb na legkisebb na legkisebb na legkisebb néééévvel azonosvvel azonosvvel azonosvvel azonosíííított ttott ttott ttott táááárolrolrolroláááási egyssi egyssi egyssi egyséééégggg

csak elemi csak elemi csak elemi csak elemi éééértrtrtrtéééékkkkűűűű lehetlehetlehetlehet

REKORD : egysREKORD : egysREKORD : egysREKORD : egyséééégkgkgkgkéééént tnt tnt tnt táááárolt mezrolt mezrolt mezrolt mezőőőők egyk egyk egyk együüüüttesettesettesettese

Az ER egyed fogalmAz ER egyed fogalmAz ER egyed fogalmAz ER egyed fogalmáááához hasonlhoz hasonlhoz hasonlhoz hasonlóóóó egysegysegysegyséééégggg

Lehet normLehet normLehet normLehet normáááál vagy kulcs mezl vagy kulcs mezl vagy kulcs mezl vagy kulcs mezőőőő

GEIAL Kovács László

Page 40: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

rendszerint trendszerint trendszerint trendszerint tááááblblblbláááázattal zattal zattal zattal áááábrbrbrbráááázoljuk (de ez mzoljuk (de ez mzoljuk (de ez mzoljuk (de ez máááár tr tr tr tööööbb bb bb bb mint halmaz)mint halmaz)mint halmaz)mint halmaz)

1233

1253

4433

6233

Alma

Dió

Mogyi

Bab

23

783

79

98.V.3

01.I.8

97.II.11

75.X.2

NyersanyagNyersanyagNyersanyagNyersanyag

RELRELRELRELÁÁÁÁCICICICIÓÓÓÓ : az azonos t: az azonos t: az azonos t: az azonos tíííípuspuspuspusúúúú rekordrekordrekordrekord----elelelelőőőőfordulfordulfordulforduláááások halmazasok halmazasok halmazasok halmaza

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

elnevezelnevezelnevezelnevezéééés, ts, ts, ts, tíííípus jellemzipus jellemzipus jellemzipus jellemzi

nincs sorrendisnincs sorrendisnincs sorrendisnincs sorrendiséééég a rekordok kg a rekordok kg a rekordok kg a rekordok köööözzzzöööötttttttt

nincs rekordpoznincs rekordpoznincs rekordpoznincs rekordpozíííícicicicióóóó

nem lehet ismnem lehet ismnem lehet ismnem lehet isméééétltltltlőőőőddddéééés a rekordok ks a rekordok ks a rekordok ks a rekordok köööözzzzöööötttttttt

GEIAL Kovács László

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

A kapcsolat nyilvA kapcsolat nyilvA kapcsolat nyilvA kapcsolat nyilváááántartntartntartntartáááás jelleges jelleges jelleges jellege

nincs struktnincs struktnincs struktnincs struktúúúúrrrráááába ba ba ba ééééppppíííített kapcsolattett kapcsolattett kapcsolattett kapcsolat

asszociatasszociatasszociatasszociatíííív, v, v, v, éééértrtrtrtéééékalapkalapkalapkalapúúúú kapcsolatteremtkapcsolatteremtkapcsolatteremtkapcsolatteremtééééssss

az kapcsolat kaz kapcsolat kaz kapcsolat kaz kapcsolat kéééét mezt mezt mezt mezőőőő éééértrtrtrtéééékegyezkegyezkegyezkegyezőőőőssssééééggggéééén alapszik:n alapszik:n alapszik:n alapszik:---- kulcs mezkulcs mezkulcs mezkulcs mezőőőő---- idegen kulcsidegen kulcsidegen kulcsidegen kulcs

A

B

key

f_key

sssséééémamamama ppppééééldldldldáááánynynyny

NyersanyagNyersanyagNyersanyagNyersanyag RendelRendelRendelRendelééééssss

aru

4433

1253

ID

783

datum

01.I.8

01.03.281

kod

1253

4433

nev

Dió

Mogyi

GEIAL Kovács László

Page 41: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

Az idegen kulcs csak arra az oldalra kerAz idegen kulcs csak arra az oldalra kerAz idegen kulcs csak arra az oldalra kerAz idegen kulcs csak arra az oldalra kerüüüülhet, melyhez lhet, melyhez lhet, melyhez lhet, melyhez

maximum egy elmaximum egy elmaximum egy elmaximum egy előőőőfordulfordulfordulforduláááás kapcsols kapcsols kapcsols kapcsolóóóódik a mdik a mdik a mdik a máááásik oldalonsik oldalonsik oldalonsik oldalon

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

A kapcsolat nyilvA kapcsolat nyilvA kapcsolat nyilvA kapcsolat nyilváááántartntartntartntartáááás jelleges jelleges jelleges jellege

DolgozokDolgozokDolgozokDolgozok

főnök

81

12

ID

783

nev

Gabor

Antal81

Idegen kulcs: Idegen kulcs: Idegen kulcs: Idegen kulcs: éééértrtrtrtééééke megegyezik egy (mke megegyezik egy (mke megegyezik egy (mke megegyezik egy (máááásik) tsik) tsik) tsik) táááábla bla bla bla valamely rekordjvalamely rekordjvalamely rekordjvalamely rekordjáááának kulcsnak kulcsnak kulcsnak kulcséééértrtrtrtéééékkkkéééével vel vel vel

KijelKijelKijelKijelööööl l l l éééértrtrtrtééééken keresztken keresztken keresztken keresztüüüül egy rekord ell egy rekord ell egy rekord ell egy rekord előőőőfordulfordulfordulforduláááást st st st

Idegen kulcs mutathat a sajIdegen kulcs mutathat a sajIdegen kulcs mutathat a sajIdegen kulcs mutathat a sajáááát tt tt tt tááááblblblbláááájjjjáááára isra isra isra is

GEIAL Kovács László

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

A relA relA relA reláááácicicicióóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása relsa relsa relsa reláááácicicicióóóós modellre s modellre s modellre s modellre

egyedegyedegyedegyed →→→→ rekordtrekordtrekordtrekordtíííípuspuspuspus

éééételtelteltel nyersanyagnyersanyagnyersanyagnyersanyag

szszszszáááállllllllííííttttóóóó

elemi tulajdonselemi tulajdonselemi tulajdonselemi tulajdonsáááágggg →→→→ mezmezmezmezőőőő

nevnevnevnev cimcimcimcim

kulcs tulajdonskulcs tulajdonskulcs tulajdonskulcs tulajdonsáááágggg →→→→ kulcskulcskulcskulcs mezmezmezmezőőőő

GEIAL Kovács László

Page 42: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

A relA relA relA reláááácicicicióóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása relsa relsa relsa reláááácicicicióóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

1:1 kapcsolat 1:1 kapcsolat 1:1 kapcsolat 1:1 kapcsolat →→→→ idegen kulcsidegen kulcsidegen kulcsidegen kulcs

1:N kapcsolat 1:N kapcsolat 1:N kapcsolat 1:N kapcsolat →→→→ idegen kulcsidegen kulcsidegen kulcsidegen kulcs

szszszszáááállllllllííííttttóóóó

nev cim

nyersanyagnyersanyagnyersanyagnyersanyag

azonosito ear szallito

GEIAL Kovács László

A relA relA relA reláááácicicicióóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása relsa relsa relsa reláááácicicicióóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

N:M kapcsolat N:M kapcsolat N:M kapcsolat N:M kapcsolat →→→→

kapcsolkapcsolkapcsolkapcsolóóóó rekord + 2*idegen kulcsrekord + 2*idegen kulcsrekord + 2*idegen kulcsrekord + 2*idegen kulcsnyersanyagnyersanyagnyersanyagnyersanyag

azonosito ear szallito

eteleteleteletel

nev recept

belevalobelevalobelevalobelevalo

etel alapanyag darab

GEIAL Kovács László

Page 43: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

A relA relA relA reláááácicicicióóóós modell tervezs modell tervezs modell tervezs modell tervezéééésesesese

ER modell konvertER modell konvertER modell konvertER modell konvertáááálllláááása relsa relsa relsa reláááácicicicióóóós modellre s modellre s modellre s modellre

étel

nyersanyag

készletazonosító

bennemennyiség

rendelés

dátum

mennyiség

név

recept

szállítószállít

név

cím

ear

összár

öööösszetett tulajdonssszetett tulajdonssszetett tulajdonssszetett tulajdonsáááág g g g →→→→ tagmeztagmeztagmeztagmezőőőőkkkk

ttttööööbbbbbbbbéééértrtrtrtéééékkkkűűűű tulajdonstulajdonstulajdonstulajdonsáááág g g g →→→→ úúúúj relj relj relj reláááácicicicióóóó

RendelRendelRendelRendelééééssss

ddddáááátumtumtumtum menny.menny.menny.menny.eteleteleteletel

nev recepteteleteleteletel

GEIAL Kovács László

TTTTíííípusai:pusai:pusai:pusai:- Statikus : a felvehetStatikus : a felvehetStatikus : a felvehetStatikus : a felvehetőőőő adatadatadatadatéééértrtrtrtéééékek kkek kkek kkek köööörrrréééét korlt korlt korlt korláááátozzatozzatozzatozza- Dinamikus : az elvDinamikus : az elvDinamikus : az elvDinamikus : az elvéééégezhetgezhetgezhetgezhetőőőő mmmműűűűveletek kveletek kveletek kveletek köööörrrréééét korlt korlt korlt korláááátozzatozzatozzatozza

RelRelRelReláááácicicicióóóós adatmodell megszors adatmodell megszors adatmodell megszors adatmodell megszorííííttttáááásoksoksoksok

AdatbAdatbAdatbAdatbáááázis tartalom ellenzis tartalom ellenzis tartalom ellenzis tartalom ellenőőőőrzrzrzrzéééésssséééére integritre integritre integritre integritáááási feltsi feltsi feltsi feltéééételek, telek, telek, telek, megszormegszormegszormegszorííííttttáááások hozhatsok hozhatsok hozhatsok hozhatóóóók lk lk lk léééétretretretre

A nem megfelelA nem megfelelA nem megfelelA nem megfelelőőőő mmmműűűűveletek, veletek, veletek, veletek, éééértrtrtrtéééékek visszautaskek visszautaskek visszautaskek visszautasííííttttáááásra kersra kersra kersra kerüüüülnek lnek lnek lnek

NyersanyagNyersanyagNyersanyagNyersanyag RendelRendelRendelRendelééééssss

aru

4433

1221

ID

783

datum

01.I.8

01.03.281

kod

1253

4433

nev

Dió

Mogyi

HibHibHibHibáááás adatok haszns adatok haszns adatok haszns adatok hasznáááálhatatlannlhatatlannlhatatlannlhatatlannáááá teszik az adatbteszik az adatbteszik az adatbteszik az adatbáááázistzistzistzist

GEIAL Kovács László

Page 44: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

MegszorMegszorMegszorMegszorííííttttáááási elemeksi elemeksi elemeksi elemek

CHECK feltCHECK feltCHECK feltCHECK feltéééételtelteltel éééértrtrtrtéééékellenkellenkellenkellenőőőőrzrzrzrzééééssssNOT NULLNOT NULLNOT NULLNOT NULL nem maradhat nem maradhat nem maradhat nem maradhat üüüüresresresres

CHECK feltCHECK feltCHECK feltCHECK feltéééételtelteltel éééértrtrtrtéééékellenkellenkellenkellenőőőőrzrzrzrzééééssss

PRIMARY KEYPRIMARY KEYPRIMARY KEYPRIMARY KEY kulcskulcskulcskulcsUNIQUEUNIQUEUNIQUEUNIQUE egyedisegyedisegyedisegyediséééégggg

FOREIGN KEYFOREIGN KEYFOREIGN KEYFOREIGN KEY idegen kulcsidegen kulcsidegen kulcsidegen kulcsASSERTION feltASSERTION feltASSERTION feltASSERTION feltéééételtelteltel öööösszetett sszetett sszetett sszetett éééértrtrtrtéééékkkk

ellenellenellenellenőőőőrzrzrzrzééééssss

HatHatHatHatáááásksksksköööör szerinti csoportosr szerinti csoportosr szerinti csoportosr szerinti csoportosííííttttáááássss

domaindomaindomaindomain szintszintszintszintűűűű

mezmezmezmezőőőő szintszintszintszintűűűű

rekord szintrekord szintrekord szintrekord szintűűűű

relrelrelreláááácicicicióóóó szintszintszintszintűűűű

adatbadatbadatbadatbáááázis szintzis szintzis szintzis szintűűűű

CHECK feltCHECK feltCHECK feltCHECK feltéééételtelteltel éééértrtrtrtéééékellenkellenkellenkellenőőőőrzrzrzrzééééssss

GEIAL Kovács László

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

A sA sA sA sééééma szma szma szma szööööveges megadveges megadveges megadveges megadáááása sa sa sa

relrelrelreláááácicicicióóóónnnnéééév (mezv (mezv (mezv (mezőőőőnnnnéééév adattv adattv adattv adattíííípus integritpus integritpus integritpus integritáááási felt.,..)si felt.,..)si felt.,..)si felt.,..)

C(n) : szC(n) : szC(n) : szC(n) : szöööövegesvegesvegesvegesN(n,m) : numerikusN(n,m) : numerikusN(n,m) : numerikusN(n,m) : numerikusD : dD : dD : dD : dáááátumtumtumtum

IntegerIntegerIntegerIntegerFloatFloatFloatFloatDoubleDoubleDoubleDoubleLogicalLogicalLogicalLogicalDateTimeDateTimeDateTimeDateTimeTimeTimeTimeTimeIntervallIntervallIntervallIntervallCLOBCLOBCLOBCLOBBLOBBLOBBLOBBLOB…………

PK: kulcsPK: kulcsPK: kulcsPK: kulcsREF relREF relREF relREF reláááácicicicióóóó : idegen kulcs: idegen kulcs: idegen kulcs: idegen kulcsNN : nem NN : nem NN : nem NN : nem üüüüresresresresUN : egyediUN : egyediUN : egyediUN : egyediC feltC feltC feltC feltéééétel : tel : tel : tel : éééértrtrtrtéééékellenkellenkellenkellenőőőőrzrzrzrzééééssss

RESZLEG(kod C(4) PK, nev C(15) NN,letszam N(3) C letszam > 5)

DOLGOZO(kod N(3) PK, nev C(25) NN,csoport N(4) REF reszleg)

GEIAL Kovács László

Page 45: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

A relA relA relA reláááácicicicióóóó formformformformáááális fellis fellis fellis felíííírrrráááásasasasa

RelRelRelReláááácicicicióóóó éééértelmezrtelmezrtelmezrtelmezééééseiseiseisei

ffffüüüüggvggvggvggvéééények halmazanyek halmazanyek halmazanyek halmaza

U: attribU: attribU: attribU: attribúúúútumok halmaza, A tumok halmaza, A tumok halmaza, A tumok halmaza, A ∈∈∈∈ U : attribU : attribU : attribU : attribúúúútumtumtumtum

r(R) r(R) r(R) r(R) ⊆⊆⊆⊆ domdomdomdom(A(A(A(A1111) ) ) ) ×××× domdomdomdom(A(A(A(A2222) ) ) ) ×××× ………… ×××× domdomdomdom((((AAAAnnnn) ) ) )

domdomdomdom(A) : az A attrib(A) : az A attrib(A) : az A attrib(A) : az A attribúúúútum tum tum tum éééértrtrtrtéééékeinek halmaza, keinek halmaza, keinek halmaza, keinek halmaza, domaindomaindomaindomain

R R R R ⊆⊆⊆⊆ U : relU : relU : relU : reláááácicicicióóóó sssséééémamamama

r(R) : relr(R) : relr(R) : relr(R) : reláááácicicicióóóó az R saz R saz R saz R séééémmmmááááhozhozhozhoz

t t t t ∈∈∈∈ r(R) : egy rekordr(R) : egy rekordr(R) : egy rekordr(R) : egy rekord

t ∈∈∈∈ domdomdomdom(A(A(A(A1111) ) ) ) ×××× domdomdomdom(A(A(A(A2222) ) ) ) ×××× ………… ×××× domdomdomdom((((AAAAnnnn) : ) : ) : ) : AAAAiiii ∈∈∈∈ R R R R

listalistalistalista

halmazhalmazhalmazhalmaz

Descartes szorzatDescartes szorzatDescartes szorzatDescartes szorzat

GEIAL Kovács László

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

A relA relA relA reláááácicicicióóóó formformformformáááális fellis fellis fellis felíííírrrráááásasasasa

RelRelRelReláááácicicicióóóó éééértelmezrtelmezrtelmezrtelmezééééseiseiseisei

ffffüüüüggvggvggvggvéééények halmazanyek halmazanyek halmazanyek halmaza

listalistalistalista

halmazhalmazhalmazhalmaz

Descartes szorzatDescartes szorzatDescartes szorzatDescartes szorzat

t : R t : R t : R t : R ⇒⇒⇒⇒ ∪∪∪∪ domdomdomdom((((AAAAiiii ∈∈∈∈ RRRR ) : ) : ) : ) : ∀∀∀∀ AAAAiiii : t(: t(: t(: t(AAAAiiii) ) ) ) ∈∈∈∈ domdomdomdom((((AAAAiiii))))

r(R) = {r(R) = {r(R) = {r(R) = {t : R t : R t : R t : R ⇒⇒⇒⇒ ∪∪∪∪ domdomdomdom((((AAAAiiii ∈∈∈∈ RRRR ) : ) : ) : ) : ∀∀∀∀ AAAAiiii : t(: t(: t(: t(AAAAiiii) ) ) ) ∈∈∈∈ domdomdomdom((((AAAAiiii)})})})}

r(r(r(r(RRRR) ) ) ) = = = = {r | r (R) {r | r (R) {r | r (R) {r | r (R) ∧∧∧∧ ∀∀∀∀bbbb∈∈∈∈BBBB: : : : bbbb(r(r(r(r)))) = 1= 1= 1= 1 }}}}

bbbbKKKK(r(R)) = 1, ha (r(R)) = 1, ha (r(R)) = 1, ha (r(R)) = 1, ha K K K K ⊆⊆⊆⊆ R R R R ∧∧∧∧ ∀∀∀∀t1,t2t1,t2t1,t2t1,t2∈∈∈∈r(R): t1r(R): t1r(R): t1r(R): t1≠≠≠≠t2 t2 t2 t2 ⇒⇒⇒⇒ t1(K) t1(K) t1(K) t1(K) ≠≠≠≠t2(K)t2(K)t2(K)t2(K)

= 0 k= 0 k= 0 k= 0 küüüüllllöööönbennbennbennben

GEIAL Kovács László

Page 46: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

A relA relA relA reláááácicicicióóóós modell elemeis modell elemeis modell elemeis modell elemei

gyenge egyed konverzigyenge egyed konverzigyenge egyed konverzigyenge egyed konverzióóóójajajaja

SpeciSpeciSpeciSpeciáááális elemek lis elemek lis elemek lis elemek

kkkkööööteleztelezteleztelezőőőő kapcsolat konverzikapcsolat konverzikapcsolat konverzikapcsolat konverzióóóójajajaja

kapcsolatok tulajdonskapcsolatok tulajdonskapcsolatok tulajdonskapcsolatok tulajdonsáááágainak konverzigainak konverzigainak konverzigainak konverzióóóójajajaja

NNNN----es kapcsolat konverzies kapcsolat konverzies kapcsolat konverzies kapcsolat konverzióóóójajajaja

GYEREK(nev C(25), kor N(4), szulo REF DOLG, PK(nev, szulo))

BEFIZETES(kod N(25) PK, utas N(4) REF UTAS NN, datum D)

SZEREPEL(darab REF DARAB,szinesz REF SZINESZ, szerep C(25))

SZALLIT(aru REF ARU, vevo REF VEVO, szallito REF SZALLITO)

GEIAL Kovács László

Page 47: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

RelRelRelReláááácicicicióóóós adatmodells adatmodells adatmodells adatmodell

mmmműűűűveleti rveleti rveleti rveleti réééész (relsz (relsz (relsz (reláááácicicicióóóós algebra)s algebra)s algebra)s algebra)

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

RelRelRelReláááácicicicióóóós adatmodells adatmodells adatmodells adatmodell

adatmodell

ttttáááárolrolrolroláááási struktsi struktsi struktsi struktúúúúrararara

ssssééééma R(m1,m2,ma R(m1,m2,ma R(m1,m2,ma R(m1,m2,…………))))

éééértrtrtrtéééék korlk korlk korlk korláááátoztoztoztozáááássss

PK, REF, NN, C, UNPK, REF, NN, C, UNPK, REF, NN, C, UNPK, REF, NN, C, UN

igigigigéééényelt adatelem nyelt adatelem nyelt adatelem nyelt adatelem kinyerkinyerkinyerkinyeréééésesesese

relrelrelreláááácicicicióóóós algebras algebras algebras algebra

relrelrelreláááácicicicióóóós kalkuluss kalkuluss kalkuluss kalkulus

integritintegritintegritintegritáááási rsi rsi rsi réééészszszsz

strukturstrukturstrukturstrukturáááális rlis rlis rlis réééészszszsz

mmmműűűűveletveletveletveletorientorientorientorientááááltltltlt

tulajdonstulajdonstulajdonstulajdonsáááággggorientorientorientorientááááltltltlt

mmmműűűűveleti rveleti rveleti rveleti réééészszszsz

GEIAL Kovács László

Page 48: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

kod

1253

4433

6233

nev

Dió

Mogyi

Bab

ar

783

79

lejarat

01.I.8

97.II.11

75.X.2

NyersanyagNyersanyagNyersanyagNyersanyag

A relA relA relA reláááácicicicióóóós algebra alaptulajdonss algebra alaptulajdonss algebra alaptulajdonss algebra alaptulajdonsáááágaigaigaigai

ZZZZáááárt a relrt a relrt a relrt a reláááácicicicióóóók halmazk halmazk halmazk halmazáááárararara

RelRelRelReláááácicicicióóóókat relkat relkat relkat reláááácicicicióóóóba kba kba kba kéééépezpezpezpez

A mA mA mA műűűűveletek lveletek lveletek lveletek lááááncolhatncolhatncolhatncolhatóóóókkkk

ImperatImperatImperatImperatíííív szemlv szemlv szemlv szemlééééletletletletűűűű

A relA relA relA reláááácicicicióóóók egyes rk egyes rk egyes rk egyes réééészeit emeli kiszeit emeli kiszeit emeli kiszeit emeli ki

Egy vagy Egy vagy Egy vagy Egy vagy kkkkéééétoperandustoperandustoperandustoperandusúúúú operoperoperoperáááátorai vannaktorai vannaktorai vannaktorai vannak

Az SQL nyelv alapjAz SQL nyelv alapjAz SQL nyelv alapjAz SQL nyelv alapjáááát kt kt kt kéééépezipezipezipezi

EredmEredmEredmEredméééénynynyny

kod

1253

4433

nev

Dió

Mogyi

GEIAL Kovács László

{egy egy egy egy operandusoperandusoperandusoperandusúúúú

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A relA relA relA reláááácicicicióóóós algebrai ms algebrai ms algebrai ms algebrai műűűűveletek veletek veletek veletek ááááttekintttekintttekintttekintéééésesesese

szelekciszelekciszelekciszelekcióóóó

projekciprojekciprojekciprojekcióóóó

kiterjesztkiterjesztkiterjesztkiterjesztééééssss

aggregaggregaggregaggregáááácicicicióóóó

csoportkcsoportkcsoportkcsoportkéééépzpzpzpzééééssss

{kkkkéééét t t t operandusoperandusoperandusoperandusúúúú

joinjoinjoinjoin

metszetmetszetmetszetmetszet

uniuniuniunióóóó

osztosztosztosztáááássss

kkkküüüüllllöööönbsnbsnbsnbséééégggg

GEIAL Kovács László

Page 49: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

SzelekciSzelekciSzelekciSzelekcióóóó: a megadott felt: a megadott felt: a megadott felt: a megadott feltéééételnek eleget ttelnek eleget ttelnek eleget ttelnek eleget téééévvvvőőőő rekordok rekordok rekordok rekordok kerkerkerkerüüüülnek lnek lnek lnek áááát az eredmt az eredmt az eredmt az eredméééény relny relny relny reláááácicicicióóóóbabababa

jele: σfelt

(r)

σX ΘY

(r) = { t ∈ r | t(X) Θ t(Y)}

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 tipus = 'Mazda'

rsz tipus szín

r2 Opel kék

r4 Skoda kék

r6 Mazda piros

σσσσszinszinszinszin====‘‘‘‘kkkkéééékkkk’’’’ OR OR OR OR tipustipustipustipus====‘‘‘‘MazdaMazdaMazdaMazda’’’’ (AUTO) (AUTO) (AUTO) (AUTO)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A szelekciA szelekciA szelekciA szelekcióóóó mmmműűűűveleteveleteveletevelete

GEIAL Kovács László

ProjekciProjekciProjekciProjekcióóóó: a kijel: a kijel: a kijel: a kijelöööölt mezlt mezlt mezlt mezőőőők kerk kerk kerk kerüüüülnek csak lnek csak lnek csak lnek csak áááát az t az t az t az eredmeredmeredmeredméééény relny relny relny reláááácicicicióóóóbabababa

jele: Πmlista

(r)

ΠX

(r) = {t(X) ∈ r | t ∈ r}

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Πtipustipustipustipus, , , , rszrszrszrsz (AUTO)(AUTO)(AUTO)(AUTO)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A projekciA projekciA projekciA projekcióóóó mmmműűűűveleteveleteveletevelete

GEIAL Kovács László

Page 50: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A mA mA mA műűűűveletek kombinveletek kombinveletek kombinveletek kombináááálllláááásasasasa

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 = rsz

rsz

r6

r4

r9

szelekció

feltétel: szín='piros' VAGY

szín='kék' r2

ΠΠΠΠ rszrszrszrsz ((((σσσσszinszinszinszin====‘‘‘‘kkkkéééékkkk’’’’ OR OR OR OR szinszinszinszin====‘‘‘‘pirospirospirospiros’’’’ (AUTO) )(AUTO) )(AUTO) )(AUTO) )

Az eredmény reláció bemenete lehet egy újabb műveletnek

GEIAL Kovács László

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A joinjoinjoinjoin mmmműűűűveletveletveletvelet

Alap Alap Alap Alap JoinJoinJoinJoin: k: k: k: kéééét relt relt relt reláááácicicicióóóó rekordjainak prekordjainak prekordjainak prekordjainak páááárosairosairosairosai

jele: r1>< r

2

DescartesDescartesDescartesDescartes----szorzat szorzat szorzat szorzat rrrr1111 ><><><>< rrrr2222 = {(t,s) | t = {(t,s) | t = {(t,s) | t = {(t,s) | t ∈∈∈∈ rrrr1111 , s , s , s , s ∈∈∈∈ rrrr2222}}}}

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ánAUTO AUTO AUTO AUTO ><><><>< EMBEREMBEREMBEREMBER

GEIAL Kovács László

Page 51: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A joinjoinjoinjoin mmmműűűűveletveletveletvelet

SzelekciSzelekciSzelekciSzelekcióóóós s s s JoinJoinJoinJoin: a k: a k: a k: a kéééét relt relt relt reláááácicicicióóóó rekordprekordprekordprekordpáááárosaibrosaibrosaibrosaibóóóól a feltl a feltl a feltl a feltéééételnek telnek telnek telnek eleget teleget teleget teleget téééévvvvőőőő ppppáááárosokat adja eredmrosokat adja eredmrosokat adja eredmrosokat adja eredméééényknyknyknykééééntntntnt

jele: r1><

feltr2

rrrr1111 ><><><>< feltfeltfeltfelt rrrr2222 = = = = σσσσfeltfeltfeltfelt(r(r(r(r1111 ><><><>< rrrr2222 ))))

NaturalNaturalNaturalNatural JoinJoinJoinJoin: olyan szelekci: olyan szelekci: olyan szelekci: olyan szelekcióóóós s s s joinjoinjoinjoin, mely az azonos , mely az azonos , mely az azonos , mely az azonos elnevezelnevezelnevezelnevezééééssssűűűű mezmezmezmezőőőők k k k éééértrtrtrtéééékegyezkegyezkegyezkegyezőőőőssssééééggggéééén alapszikn alapszikn alapszikn alapszik

jele: r1><

=r2

rrrr1111 ><><><>< ==== rrrr2222 = = = = ΠΠΠΠ ((((R1 U R2) R1 U R2) R1 U R2) R1 U R2) ((((σσσσr1.X = r2.X r1.X = r2.X r1.X = r2.X r1.X = r2.X (r(r(r(r1111 ><><><>< rrrr2222 ))))))))

GEIAL Kovács László

OuterOuterOuterOuter JoinJoinJoinJoin: olyan szelekci: olyan szelekci: olyan szelekci: olyan szelekcióóóós s s s joinjoinjoinjoin, melyben az illeszked, melyben az illeszked, melyben az illeszked, melyben az illeszkedőőőő ppppáááár r r r nnnnéééélklklklküüüülililili rekodokrekodokrekodokrekodok is bekeris bekeris bekeris bekerüüüülnek az eredmlnek az eredmlnek az eredmlnek az eredméééény halmazba ny halmazba ny halmazba ny halmazba ((((üüüüres res res res ééééttttéééékekkelkekkelkekkelkekkel kiegkiegkiegkiegéééészszszszíííítve)tve)tve)tve)

tipusaitipusaitipusaitipusai::::---- leftleftleftleft outerouterouterouter joinjoinjoinjoin---- rightrightrightright outerouterouterouter joinjoinjoinjoin---- fullfullfullfull outerouterouterouter joinjoinjoinjoin

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A joinjoinjoinjoin mmmműűűűveletveletveletvelet

AzAzAzAz üüüüres res res res éééértrtrtrtéééék szimbk szimbk szimbk szimbóóóóluma: NULLluma: NULLluma: NULLluma: NULL

jele: r1

+><felt

r2

jele: r1><+

feltr2

jele: r1

+><+felt

r2

GEIAL Kovács László

Page 52: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

KiadKiadKiadKiadóóóó

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A joinjoinjoinjoin mmmműűűűveletveletveletvelet

KKKKöööönyvnyvnyvnyv

RighrRighrRighrRighr outerouterouterouter joinjoinjoinjoin vvvvéééégrehajtgrehajtgrehajtgrehajtáááásasasasa

ID

1253

4433

nev

K1

K2

4463 K3

kod

32

46

cim

c1

c2

kiadó

1253

4463

KKKKöööönyvnyvnyvnyv ><><><><+ + + + kiadokiadokiadokiado=ID=ID=ID=ID KiadKiadKiadKiadóóóó

kod cim kiadó ID nev

32 c1 1253 1253 K1

46 c2 4463 4463 K3

NULL NULL NULL 4433 K2

GEIAL Kovács László

SemiSemiSemiSemi JoinJoinJoinJoin: olyan szelekci: olyan szelekci: olyan szelekci: olyan szelekcióóóós s s s joinjoinjoinjoin, melyben az illeszked, melyben az illeszked, melyben az illeszked, melyben az illeszkedőőőőppppáááárokbrokbrokbrokbóóóól csak a megadott oldal mezl csak a megadott oldal mezl csak a megadott oldal mezl csak a megadott oldal mezőőőői szerepelneki szerepelneki szerepelneki szerepelnek

jele: r1

><felt

r2

tipusaitipusaitipusaitipusai::::---- leftleftleftleft semisemisemisemi joinjoinjoinjoin---- rightrightrightright semisemisemisemi joinjoinjoinjoin

rrrr1111 >>>><<<<feltfeltfeltfelt rrrr2 2 2 2 = = = = ΠΠΠΠ R2R2R2R2(r(r(r(r1111 ><><><><feltfeltfeltfelt rrrr2222))))

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A joinjoinjoinjoin mmmműűűűveletveletveletvelet

Az illeszkedAz illeszkedAz illeszkedAz illeszkedőőőő ppppáááárral rendelkezrral rendelkezrral rendelkezrral rendelkezőőőő rekordokat adja visszarekordokat adja visszarekordokat adja visszarekordokat adja vissza

GEIAL Kovács László

Page 53: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

KiterjesztKiterjesztKiterjesztKiterjesztéééés: a rels: a rels: a rels: a reláááácicicicióóóó kibkibkibkibőőőővvvvííííttttéééése szse szse szse száááármaztatott mezrmaztatott mezrmaztatott mezrmaztatott mezőőőőkkelkkelkkelkkel

jele: εmlista

(r)

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

Az mezAz mezAz mezAz mezőőőő éééértrtrtrtéééékkkkéééének a tnek a tnek a tnek a tööööbbi mezbbi mezbbi mezbbi mezőőőő éééértrtrtrtéééékkkkéééébbbbőőőől kell meghatl kell meghatl kell meghatl kell meghatáááározrozrozrozóóóódniadniadniadnia

εεεεarararar/100/100/100/100(AUTO)(AUTO)(AUTO)(AUTO)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A A A A kiterjeskiterjeskiterjeskiterjeszzzzttttééééssss mmmműűűűveletveletveletvelet

GEIAL Kovács László

UniUniUniUnióóóó: azonos s: azonos s: azonos s: azonos séééémmmmáááájjjjúúúú relrelrelreláááácicicicióóóók rekordhalmazk rekordhalmazk rekordhalmazk rekordhalmazáááának egyesnak egyesnak egyesnak egyesííííttttéééésesesese

jele: r1

∪ r2

Metszet: azonos sMetszet: azonos sMetszet: azonos sMetszet: azonos séééémmmmáááájjjjúúúú relrelrelreláááácicicicióóóók rekordhalmazk rekordhalmazk rekordhalmazk rekordhalmazáááának metszetenak metszetenak metszetenak metszete

jele: r1

∩ r2

KKKKüüüüllllöööönbsnbsnbsnbséééég: azonos sg: azonos sg: azonos sg: azonos séééémmmmáááájjjjúúúú relrelrelreláááácicicicióóóók rekordhalmazk rekordhalmazk rekordhalmazk rekordhalmazáááának knak knak knak küüüüllllöööönbsnbsnbsnbséééégegegege

jele: r1

\ r2

VERSENYZÕK

id név

21

2

4

3

Erika

Tibor

Zoltán

Éva

különbség

FIÚK

id név

1

2

3

4

Laci

Tibor

János

Zoltán id név

1

3

Laci

János

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A halmaz mA halmaz mA halmaz mA halmaz műűűűveletekveletekveletekveletek

FIUK FIUK FIUK FIUK \\\\ VERSENYZOKVERSENYZOKVERSENYZOKVERSENYZOK

GEIAL Kovács László

Page 54: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

OsztOsztOsztOsztáááás: a Descartes szorzat inverze, azon legnagyobb rels: a Descartes szorzat inverze, azon legnagyobb rels: a Descartes szorzat inverze, azon legnagyobb rels: a Descartes szorzat inverze, azon legnagyobb reláááácicicicióóóó, , , , melynek Descartes szorzata r2melynek Descartes szorzata r2melynek Descartes szorzata r2melynek Descartes szorzata r2----vel benne van r1vel benne van r1vel benne van r1vel benne van r1----benbenbenben

jele: r1

÷ r2

osztás

HOBBY

hobby név

Laci

Tibor

János

Zoltán

név

Laci

Zoltán

foci

foci

tenisz

futás

futás Laci

foci Zoltán

tenisz Gábor

SPORTÁG

hobby

foci

futás

HOBBY HOBBY HOBBY HOBBY ÷÷÷÷ SPORTAGSPORTAGSPORTAGSPORTAG

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

Az osztAz osztAz osztAz osztáááás ms ms ms műűűűveleteveleteveletevelete

GEIAL Kovács László

rrrr1111 ÷÷÷÷ rrrr2222 = = = = ΠΠΠΠR1R1R1R1\\\\R2 R2 R2 R2 (r(r(r(r1111) ) ) ) \\\\ ΠΠΠΠR1R1R1R1\\\\R2R2R2R2( (( (( (( (ΠΠΠΠR1R1R1R1\\\\R2R2R2R2(r(r(r(r1111) ) ) ) ><><><>< rrrr2222))))\\\\r1)r1)r1)r1)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

Az osztAz osztAz osztAz osztáááás ms ms ms műűűűveleteveleteveletevelete

OsztOsztOsztOsztáááás levezets levezets levezets levezetéééése az alapmse az alapmse az alapmse az alapműűűűveletekbveletekbveletekbveletekbőőőől:l:l:l:

rrrr1111 ÷÷÷÷ rrrr2222 = {t | t = {t | t = {t | t = {t | t ∈∈∈∈ ΠΠΠΠR1R1R1R1\\\\R2R2R2R2(r(r(r(r1111) , t ) , t ) , t ) , t ><><><>< rrrr2222 ⊂⊂⊂⊂ rrrr1111}}}}

a a a a ‘‘‘‘mindenmindenmindenminden’’’’ kvantorhoz kapcsolkvantorhoz kapcsolkvantorhoz kapcsolkvantorhoz kapcsolóóóódik a jelentdik a jelentdik a jelentdik a jelentéééésesesese

Az eredmAz eredmAz eredmAz eredméééény levezetny levezetny levezetny levezetéééése:se:se:se:

JelJelJelJelööööltek: ltek: ltek: ltek: ΠΠΠΠR1R1R1R1\\\\R2R2R2R2 (r(r(r(r1111))))

A jA jA jA jóóóó jeljeljeljelööööltek szorzata benne van r1ltek szorzata benne van r1ltek szorzata benne van r1ltek szorzata benne van r1----ben: ben: ben: ben: ΠΠΠΠR1R1R1R1\\\\R2R2R2R2(r(r(r(r1111) ) ) ) ><><><>< rrrr2222

A rossz jelA rossz jelA rossz jelA rossz jelööööltek: ltek: ltek: ltek: ΠΠΠΠR1R1R1R1\\\\R2R2R2R2( (( (( (( (ΠΠΠΠR1R1R1R1\\\\R2R2R2R2(r(r(r(r1111) ) ) ) ><><><>< rrrr2222))))\\\\rrrr1111

GEIAL Kovács László

Page 55: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

AggregAggregAggregAggregáááácicicicióóóó: a rel: a rel: a rel: a reláááácicicicióóóóbbbbóóóól l l l öööösszessszessszessszesííííttttőőőő rekordot rekordot rekordot rekordot áááállllllllíííít elt elt elt előőőő

jele: Γaggregációs-lista (r)

aggregaggregaggregaggregáááácicicicióóóóssss ffffüüüüggvggvggvggvéééények:nyek:nyek:nyek:SUM(SUM(SUM(SUM(mez.kifmez.kifmez.kifmez.kif)))) AVG(AVG(AVG(AVG(mez.kifmez.kifmez.kifmez.kif))))COUNT(COUNT(COUNT(COUNT(mez.kifmez.kifmez.kifmez.kif)))) MAX(MAX(MAX(MAX(mez.kifmez.kifmez.kifmez.kif))))MIN(MIN(MIN(MIN(mez.kifmez.kifmez.kifmez.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

ΓΓΓΓcountcountcountcount(*) (*) (*) (*) (AUTO)(AUTO)(AUTO)(AUTO)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

Az Az Az Az aggregaggregaggregaggregáááácicicicióóóó mmmműűűűveleteveleteveletevelete

GEIAL Kovács László

CsoportkCsoportkCsoportkCsoportkéééépzpzpzpzéééés s s s éééés s s s aggregaggregaggregaggregáááácicicicióóóó: a rel: a rel: a rel: a reláááácicicicióóóó rekodjaitrekodjaitrekodjaitrekodjait csoportokbacsoportokbacsoportokbacsoportokbarendezi, s minden csoportra egy rendezi, s minden csoportra egy rendezi, s minden csoportra egy rendezi, s minden csoportra egy öööösszessszessszessszesííííttttőőőő rekordot rekordot rekordot rekordot áááállllllllíííít elt elt elt előőőő

jele: Γcsoport képzési kifejezés

aggregációs-lista (r)

Azon rekordok kerAzon rekordok kerAzon rekordok kerAzon rekordok kerüüüülnek egy csoportba, melyekre a csoportlnek egy csoportba, melyekre a csoportlnek egy csoportba, melyekre a csoportlnek egy csoportba, melyekre a csoportkkkkéééépzpzpzpzéééési kifejezsi kifejezsi kifejezsi kifejezéééés azonos s azonos s azonos s azonos éééértrtrtrtéééékkkkűűűű

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

ΓΓΓΓtipostipostipostipostipustipustipustipus,,,, countcountcountcount(*) (*) (*) (*) (AUTO)(AUTO)(AUTO)(AUTO)

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

A csoportkA csoportkA csoportkA csoportkéééépzpzpzpzééééses ses ses ses aggregaggregaggregaggregáááácicicicióóóó mmmműűűűveleteveleteveletevelete

GEIAL Kovács László

Page 56: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

SpeciSpeciSpeciSpeciáááális szelekcilis szelekcilis szelekcilis szelekcióóóós opers opers opers operáááátoroktoroktoroktorok

Halmaz Halmaz Halmaz Halmaz éééés logikai opers logikai opers logikai opers logikai operáááátorok is torok is torok is torok is éééélnek:lnek:lnek:lnek:

∈∈∈∈ : tartalmaz: tartalmaz: tartalmaz: tartalmaz

∉∉∉∉ : nem tartalmaz: nem tartalmaz: nem tartalmaz: nem tartalmaz

∀∀∀∀ : minden kvantor: minden kvantor: minden kvantor: minden kvantor

∃∃∃∃ : l: l: l: léééétezik kvantortezik kvantortezik kvantortezik kvantor

AlAlAlAl----szelekciszelekciszelekciszelekcióóóókkkk: A szelekci: A szelekci: A szelekci: A szelekcióóóós felts felts felts feltéééételben is szerepelhet telben is szerepelhet telben is szerepelhet telben is szerepelhet relrelrelreláááácicicicióóóós algebrai kifejezs algebrai kifejezs algebrai kifejezs algebrai kifejezéééés s s s

Γcount(*)(σfiz>

(DOLG))(Γavg(fiz)(DOLG))

GEIAL Kovács László

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

KifejezKifejezKifejezKifejezéééés fels fels fels felééééppppííííttttéééésssséééének lnek lnek lnek lééééppppééééseiseiseisei

1. Mely rel1. Mely rel1. Mely rel1. Mely reláááácicicicióóóókbkbkbkbóóóól emelhetl emelhetl emelhetl emelhetőőőők ki az igk ki az igk ki az igk ki az igéééényel informnyel informnyel informnyel informáááácicicicióóóók? k? k? k?

2. Milyen az illeszt2. Milyen az illeszt2. Milyen az illeszt2. Milyen az illesztéééési feltsi feltsi feltsi feltéééétel a tel a tel a tel a joinjoinjoinjoin esetesetesetesetéééén? n? n? n?

3. Milyen sz3. Milyen sz3. Milyen sz3. Milyen szűűűűkkkkííííttttéééések vannak az alaprelsek vannak az alaprelsek vannak az alaprelsek vannak az alapreláááácicicicióóóókon?kon?kon?kon?

5. Sz5. Sz5. Sz5. Szüüüükskskskséééég vang vang vang van----e csoportke csoportke csoportke csoportkéééépzpzpzpzéééésre sre sre sre éééés ha igen, mi alapjs ha igen, mi alapjs ha igen, mi alapjs ha igen, mi alapjáááán? n? n? n?

4. Sz4. Sz4. Sz4. Szüüüükskskskséééég vang vang vang van----e e e e alalalal----szelekciszelekciszelekciszelekcióóóókrakrakrakra? ? ? ?

6. Milyen 6. Milyen 6. Milyen 6. Milyen aggregaggregaggregaggregáááácicicicióóóóssss kifejezkifejezkifejezkifejezéééést kell szerepeltetni? st kell szerepeltetni? st kell szerepeltetni? st kell szerepeltetni?

7. Milyen mez7. Milyen mez7. Milyen mez7. Milyen mezőőőők szerepeljenek az eredmk szerepeljenek az eredmk szerepeljenek az eredmk szerepeljenek az eredméééény relny relny relny reláááácicicicióóóóban?ban?ban?ban?

GEIAL Kovács László

Page 57: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

BOROK(BOROK(BOROK(BOROK(kodkodkodkod, , , , nevnevnevnev, , , , gyartogyartogyartogyarto, fajta, , fajta, , fajta, , fajta, arararar))))VEVO(VEVO(VEVO(VEVO(vkodvkodvkodvkod, , , , nevnevnevnev, , , , cimcimcimcim))))RENDELES(RENDELES(RENDELES(RENDELES(vevovevovevovevo, bor, , bor, , bor, , bor, mennyisegmennyisegmennyisegmennyiseg,,,,datumdatumdatumdatum))))

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

MintapMintapMintapMintapééééldaldaldalda

SSSSééééma:ma:ma:ma:

1. Az 50001. Az 50001. Az 50001. Az 5000----nnnnéééél drl drl drl dráááággggáááább borok neveibb borok neveibb borok neveibb borok nevei

Πmev

(σar>5000

(BOROK))

2. A vev2. A vev2. A vev2. A vevőőőők neve k neve k neve k neve éééés rendels rendels rendels rendeléééésssséééének nek nek nek öööösszmennyissszmennyissszmennyissszmennyiséééégegegege

Γnev

nev, sum(mennyiseg)(RENDELES ><rendeles.vevo = vevo.vkod

VEVO)

GEIAL Kovács László

Γcount(*)(σar>

(BOROK))(Γavg(ar)(BOROK))

RelRelRelReláááácicicicióóóós algebras algebras algebras algebra

MintapMintapMintapMintapééééldaldaldalda

3. Az 3. Az 3. Az 3. Az áááátlagntlagntlagntlagnáááál drl drl drl dráááággggáááább borok darabszbb borok darabszbb borok darabszbb borok darabszáááámamamama

1. azon vev1. azon vev1. azon vev1. azon vevőőőők, akik rendeltek Bikavk, akik rendeltek Bikavk, akik rendeltek Bikavk, akik rendeltek Bikavéééértrtrtrt

Πnev

(σborok.kod = rendeles.bor AND rendeles.vevo = vevo.vkod AND borok.fajta = ‘Bikaver’

(BOROK >< RENDELES >< VEVO))

2. Melyik gy2. Melyik gy2. Melyik gy2. Melyik gyáááártrtrtrtóóóó termel 5termel 5termel 5termel 5----nnnnéééél tl tl tl tööööbb vbb vbb vbb vöööörrrröööös borts borts borts bort

Πgyarto

(σcount(*)>5

(Γgyarto

gyarto,count(*)(σfajta=‘voros’

(BOROK))))

GEIAL Kovács László

Page 58: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Az SQL nyelv alapjaiAz SQL nyelv alapjaiAz SQL nyelv alapjaiAz SQL nyelv alapjai

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

1974 : 1974 : 1974 : 1974 : SystemSystemSystemSystem/R (IBM) /R (IBM) /R (IBM) /R (IBM) ÚÚÚÚj parancsnyelv kidolgozj parancsnyelv kidolgozj parancsnyelv kidolgozj parancsnyelv kidolgozáááásasasasa

FIND KIADO FIRST FOR C=„H”DO WHILE STATUS_OK

IF L> 100SET l = l –10STORE KIADO

ENDIFFIND KIADO NEXT

ENDDDO

meglmeglmeglmegléééévvvvőőőő rekord orientrekord orientrekord orientrekord orientááááltltltlt

?

SQL SQL SQL SQL nyelvnyelvnyelvnyelv kialkulkialkulkialkulkialkuláááásasasasa

ProcedurProcedurProcedurProceduráááálislislislis nyelv: knyelv: knyelv: knyelv: kööööltsltsltsltsééééges fejleszteni, mges fejleszteni, mges fejleszteni, mges fejleszteni, móóóódosdosdosdosíííítanitanitanitani

igigigigéééények:nyek:nyek:nyek:

relrelrelreláááácicicicióóóós algebrs algebrs algebrs algebráááán alapuljonn alapuljonn alapuljonn alapuljon

egyszeregyszeregyszeregyszerűűűűsssséééégggg

hathathathatéééékony implementkony implementkony implementkony implementáááácicicicióóóó

GEIAL Kovács László

Page 59: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

1975: SEQUEL 1975: SEQUEL 1975: SEQUEL 1975: SEQUEL StructuredStructuredStructuredStructured English English English English QueryQueryQueryQuery LanguageLanguageLanguageLanguage

FIND KIADO FIRST FOR C=„H”DO WHILE STATUS_OK

IF L> 100SET l = l –10STORE KIADO

ENDIFFIND KIADO NEXT

ENDDDO

UPDATE KIADO SET L = L-10 WHERE C = „H”

A KIADO táblában legyen L = L-10, ahol C = „H”

SQL SQL SQL SQL nyelvnyelvnyelvnyelv kialakulkialakulkialakulkialakuláááásasasasa

magas szintmagas szintmagas szintmagas szintűűűű mmmműűűűveletekveletekveletekveletek

egymegymegymegymáááásba sba sba sba áááágyazhatgyazhatgyazhatgyazhatóóóó mmmműűűűveletekveletekveletekveletek

termtermtermterméééészetes nyelvhez kszetes nyelvhez kszetes nyelvhez kszetes nyelvhez köööözelzelzelzelíííítttt

imperatimperatimperatimperatíííív nyelvv nyelvv nyelvv nyelv

nem programoznem programoznem programoznem programozáááási nyelvsi nyelvsi nyelvsi nyelv

bbbbőőőővvvvííííthetthetthetthetőőőő nyelvnyelvnyelvnyelv

relrelrelreláááácicicicióóóós modellen alapsziks modellen alapsziks modellen alapsziks modellen alapszik

szabvszabvszabvszabváááánynynyny

GEIAL Kovács László

1986: ANSI SQL1986: ANSI SQL1986: ANSI SQL1986: ANSI SQL1987: ISO SQL1987: ISO SQL1987: ISO SQL1987: ISO SQL1989: ANSI891989: ANSI891989: ANSI891989: ANSI891992: SQL921992: SQL921992: SQL921992: SQL921999: SQL19991999: SQL19991999: SQL19991999: SQL19992003: SQL20032003: SQL20032003: SQL20032003: SQL2003

1975: SEQUEL1975: SEQUEL1975: SEQUEL1975: SEQUEL1977: SEQUEL/2 (SQL)1977: SEQUEL/2 (SQL)1977: SEQUEL/2 (SQL)1977: SEQUEL/2 (SQL)1979: 1979: 1979: 1979: systemsystemsystemsystem/38 SQL/38 SQL/38 SQL/38 SQL1979: 1979: 1979: 1979: OracleOracleOracleOracle SQLSQLSQLSQL1983: DB2 SQL1983: DB2 SQL1983: DB2 SQL1983: DB2 SQL

IngresIngresIngresIngresOracleOracleOracleOracleIBM DB2IBM DB2IBM DB2IBM DB2SybaseSybaseSybaseSybaseInformixInformixInformixInformixMS MS MS MS SQLServerSQLServerSQLServerSQLServerPostgresSQLPostgresSQLPostgresSQLPostgresSQLmySQLmySQLmySQLmySQLAccessAccessAccessAccess

termtermtermterméééékekkekkekkek

szabvszabvszabvszabváááányoknyoknyoknyok

igigigigéééényeknyeknyeknyek

RelRelRelReláááácicicicióóóós, akts, akts, akts, aktíííív elemek, OO, OLAP, ..v elemek, OO, OLAP, ..v elemek, OO, OLAP, ..v elemek, OO, OLAP, ..

TTTTööööbbbbbbbb----rrrréééésztvevsztvevsztvevsztvevőőőős folyamat a fejls folyamat a fejls folyamat a fejls folyamat a fejlőőőőddddéééésesesese

SQL SQL SQL SQL nyelvnyelvnyelvnyelv kialakulkialakulkialakulkialakuláááásasasasa

SQLSQLSQLSQL

GEIAL Kovács László

Page 60: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

SQL SQL SQL SQL nyelvnyelvnyelvnyelv elemeielemeielemeielemei

adatdefiniadatdefiniadatdefiniadatdefiniáááállllóóóó ((((DDLDDLDDLDDL))))

adatkezeladatkezeladatkezeladatkezelőőőő ((((DMLDMLDMLDML))))

leklekleklekéééérdezrdezrdezrdezőőőő ((((DQLDQLDQLDQL))))

vezvezvezvezéééérlrlrlrlőőőő ((((DCLDCLDCLDCL))))

struktstruktstruktstruktúúúúra lra lra lra léééétrehoztrehoztrehoztrehozáááás (CREATE)s (CREATE)s (CREATE)s (CREATE)

struktstruktstruktstruktúúúúra mra mra mra móóóódosdosdosdosííííttttáááás (ALTER)s (ALTER)s (ALTER)s (ALTER)

struktstruktstruktstruktúúúúra megszra megszra megszra megszüüüüntetntetntetntetéééés (DROP)s (DROP)s (DROP)s (DROP)

adat felvitel (INSERT)adat felvitel (INSERT)adat felvitel (INSERT)adat felvitel (INSERT)

adat madat madat madat móóóódosdosdosdosííííttttáááás (UPDATE)s (UPDATE)s (UPDATE)s (UPDATE)

adat tadat tadat tadat töööörlrlrlrléééés (DELETE)s (DELETE)s (DELETE)s (DELETE)

adat kiolvasadat kiolvasadat kiolvasadat kiolvasáááása (SELECT)sa (SELECT)sa (SELECT)sa (SELECT)

vvvvéééédelem, tranzakcidelem, tranzakcidelem, tranzakcidelem, tranzakcióóóókkkkGEIAL Kovács László

DDL: A tDDL: A tDDL: A tDDL: A tááááblblblbláááák, objektumok struktk, objektumok struktk, objektumok struktk, objektumok struktúúúúrrrráááájjjjáááának kezelnak kezelnak kezelnak kezeléééésssséééére szolgre szolgre szolgre szolgáááál l l l

Igényelt információk:

Hozz létre egy KÖNYV nevű táblát, melynek van egy cím nevű20 hosszú szöveges, és egy ár nevű numerikus mezője!

CREATE TABLE KCREATE TABLE KCREATE TABLE KCREATE TABLE KÖÖÖÖNYV (cNYV (cNYV (cNYV (cíííím CHAR(20), m CHAR(20), m CHAR(20), m CHAR(20), áááár INTEGER);r INTEGER);r INTEGER);r INTEGER);

létrehozás: CREATE TABLE név paraméterek;tábla megszüntetés: DROP TABLE név;szerkezet módosítás: ALTER TABLE név paraméterek;

DDL utasDDL utasDDL utasDDL utasííííttttáááásoksoksoksok

Milyen szerkezete legyen?Milyen szerkezete legyen?Milyen szerkezete legyen?Milyen szerkezete legyen?

Minek nevezzMinek nevezzMinek nevezzMinek nevezzüüüük el?k el?k el?k el?

Milyen megkMilyen megkMilyen megkMilyen megkööööttttééééseket tegyseket tegyseket tegyseket tegyüüüünk?nk?nk?nk?

GEIAL Kovács László

Page 61: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE tntntntnéééévvvv (mnev1 tipus1 intfelt1, (mnev1 tipus1 intfelt1, (mnev1 tipus1 intfelt1, (mnev1 tipus1 intfelt1, …………,,,,intfeltintfeltintfeltintfelt) ) ) ) ………… ;;;;

CHAR(n)CHAR(n)CHAR(n)CHAR(n)NUMBER(n,m)NUMBER(n,m)NUMBER(n,m)NUMBER(n,m)DATEDATEDATEDATE

PRIMARY KEYPRIMARY KEYPRIMARY KEYPRIMARY KEYNOT NULLNOT NULLNOT NULLNOT NULLUNIQUEUNIQUEUNIQUEUNIQUECHECK feltCHECK feltCHECK feltCHECK feltREFERENCING REFERENCING REFERENCING REFERENCING tablatablatablatabla

PRIMARY KEY(m1,m2)PRIMARY KEY(m1,m2)PRIMARY KEY(m1,m2)PRIMARY KEY(m1,m2)FOREIGN KEY(m1,m2) REFERENCING FOREIGN KEY(m1,m2) REFERENCING FOREIGN KEY(m1,m2) REFERENCING FOREIGN KEY(m1,m2) REFERENCING tablatablatablatablaCHECK feltCHECK feltCHECK feltCHECK felt

CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY,AR NUMBER(9) NOT NULL, IDO DATE);

DDL utasDDL utasDDL utasDDL utasííííttttáááásoksoksoksok

Objektum lObjektum lObjektum lObjektum léééétrehoztrehoztrehoztrehozáááása:sa:sa:sa:

CREATE objektumtCREATE objektumtCREATE objektumtCREATE objektumtíííípus azonospus azonospus azonospus azonosííííttttóóóó paramparamparamparamééééterek;terek;terek;terek;

TTTTáááábla lbla lbla lbla léééétrehoztrehoztrehoztrehozáááása:sa:sa:sa:

GEIAL Kovács László

DROP TABLE AUTO;ALTER TABLE AUTO ADD (TULAJ REFERENCING EMBER);

A mA mA mA műűűűveletek nem tranzakciveletek nem tranzakciveletek nem tranzakciveletek nem tranzakcióóóó hathathathatáááásksksksköööörben futnak le!rben futnak le!rben futnak le!rben futnak le!

DDL utasDDL utasDDL utasDDL utasííííttttáááásoksoksoksok

Objektum megszObjektum megszObjektum megszObjektum megszüüüüntetntetntetntetéééése:se:se:se:

DROP objektumtDROP objektumtDROP objektumtDROP objektumtíííípus azonospus azonospus azonospus azonosííííttttóóóó;;;;

DROP TABLE DROP TABLE DROP TABLE DROP TABLE tntntntnéééévvvv;;;;

TTTTáááábla megszbla megszbla megszbla megszüüüüntetntetntetntetéééése:se:se:se:

Objektum szerkezet mObjektum szerkezet mObjektum szerkezet mObjektum szerkezet móóóódosdosdosdosííííttttáááás:s:s:s:

ALTER objektumtALTER objektumtALTER objektumtALTER objektumtíííípus azonospus azonospus azonospus azonosííííttttóóóó paramparamparamparamééééterek;terek;terek;terek;

ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE tntntntnéééévvvv ADD ADD ADD ADD | MODIFY (| MODIFY (| MODIFY (| MODIFY (mnevmnevmnevmnev tip tip tip tip intfeltintfeltintfeltintfelt))));;;;

TTTTáááábla szerkezet mbla szerkezet mbla szerkezet mbla szerkezet móóóódosdosdosdosííííttttáááás:s:s:s:

GEIAL Kovács László

Page 62: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

DDL utasDDL utasDDL utasDDL utasííííttttáááásoksoksoksok

TTTTáááábla bla bla bla áááátneveztneveztneveztnevezéééése:se:se:se:

ALTER TABLE nev1 RENAME TO nev2;ALTER TABLE nev1 RENAME TO nev2;ALTER TABLE nev1 RENAME TO nev2;ALTER TABLE nev1 RENAME TO nev2;

MezMezMezMezőőőő hozzhozzhozzhozzááááadadadadáááása:sa:sa:sa:

ALTER TABLE nev1 ADD (ALTER TABLE nev1 ADD (ALTER TABLE nev1 ADD (ALTER TABLE nev1 ADD (mnevmnevmnevmnev szerkezet);szerkezet);szerkezet);szerkezet);

MezMezMezMezőőőő mmmmóóóódosdosdosdosííííttttáááása:sa:sa:sa:

ALTER TABLE nev1 MODIFY (ALTER TABLE nev1 MODIFY (ALTER TABLE nev1 MODIFY (ALTER TABLE nev1 MODIFY (mnevmnevmnevmnev szerkezet);szerkezet);szerkezet);szerkezet);

MezMezMezMezőőőő megszmegszmegszmegszüüüüntetntetntetntetéééése:se:se:se:

ALTER TABLE nev1 DROP COLUMN ALTER TABLE nev1 DROP COLUMN ALTER TABLE nev1 DROP COLUMN ALTER TABLE nev1 DROP COLUMN mnevmnevmnevmnev;;;;

MezMezMezMezőőőő áááátneveztneveztneveztnevezéééése:se:se:se:

ALTER TABLE nev1 RENAME COLUMN mnev1 TO mnev2;ALTER TABLE nev1 RENAME COLUMN mnev1 TO mnev2;ALTER TABLE nev1 RENAME COLUMN mnev1 TO mnev2;ALTER TABLE nev1 RENAME COLUMN mnev1 TO mnev2;GEIAL Kovács László

rekord felvitele: rekord felvitele: rekord felvitele: rekord felvitele: INSERT INTO nINSERT INTO nINSERT INTO nINSERT INTO néééév (v (v (v (éééértrtrtrtéééékek);kek);kek);kek);rekord trekord trekord trekord töööörlrlrlrléééése: se: se: se: DELETE FROM nDELETE FROM nDELETE FROM nDELETE FROM néééév WHERE feltv WHERE feltv WHERE feltv WHERE feltéééétel;tel;tel;tel;rekordrekordrekordrekordéééértrtrtrtéééék mk mk mk móóóódosdosdosdosííííttttáááása: sa: sa: sa: UPDATE nUPDATE nUPDATE nUPDATE néééév SET v SET v SET v SET éééértrtrtrtéééékadkadkadkadáááás s s s

WHERE feltWHERE feltWHERE feltWHERE feltéééétel ; tel ; tel ; tel ;

DDDDMMMML utasL utasL utasL utasííííttttáááásoksoksoksok

DDL: A tDDL: A tDDL: A tDDL: A tááááblblblbláááák, objektumok k, objektumok k, objektumok k, objektumok tartaltartaltartaltartalmmmmáááának kezelnak kezelnak kezelnak kezeléééésssséééére szolgre szolgre szolgre szolgáááál l l l

Igényelt információk:

Mely objektumot mMely objektumot mMely objektumot mMely objektumot móóóódosdosdosdosíííítjuk?tjuk?tjuk?tjuk?

Mely adatelem mMely adatelem mMely adatelem mMely adatelem móóóódosul?dosul?dosul?dosul?

Mi lesz az Mi lesz az Mi lesz az Mi lesz az úúúúj j j j éééértrtrtrtéééék?k?k?k?

Hozz létre egy új KÖNYV rekordot, melynek van a címe Lepkefogó és az ára 2340 Ft.

INSERT INTO KINSERT INTO KINSERT INTO KINSERT INTO KÖÖÖÖNYV (NYV (NYV (NYV (‘‘‘‘LepkefogLepkefogLepkefogLepkefogó’ó’ó’ó’, 2340);, 2340);, 2340);, 2340);

GEIAL Kovács László

Page 63: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

Minden szMinden szMinden szMinden szüüüüksksksksééééges mezges mezges mezges mezőőőő kapjon kapjon kapjon kapjon éééértrtrtrtééééket ket ket ket

INSERT INTO AUTO VALUES (‘bju564’,234,’FIAT’);

A mA mA mA műűűűveletek tranzakciveletek tranzakciveletek tranzakciveletek tranzakcióóóó hathathathatáááásksksksköööörben futnak le!rben futnak le!rben futnak le!rben futnak le!

INSERT INTO AUTO (rsz, tipus) VALUES (‘bju564’,’FIAT’);

INSERT INTO AUTO VALUES (RSZ=‘bju564’,...);

DDDDMMMML utasL utasL utasL utasííííttttáááásoksoksoksok

Rekord felvitele:Rekord felvitele:Rekord felvitele:Rekord felvitele:

INSERT INTO INSERT INTO INSERT INTO INSERT INTO tablatablatablatabla VALUES (ert1, ert2, VALUES (ert1, ert2, VALUES (ert1, ert2, VALUES (ert1, ert2, …………,,,,ertnertnertnertn););););

INSERT INTO INSERT INTO INSERT INTO INSERT INTO tablatablatablatabla (mezo1,..) VALUES (ert1,..);(mezo1,..) VALUES (ert1,..);(mezo1,..) VALUES (ert1,..);(mezo1,..) VALUES (ert1,..);

INSERT INTO INSERT INTO INSERT INTO INSERT INTO tablatablatablatabla VALUES (VALUES (VALUES (VALUES (mezomezomezomezo====ertekertekertekertek,,,,…………););););

INSERT INTO INSERT INTO INSERT INTO INSERT INTO tablatablatablatabla SELECT SELECT SELECT SELECT …………;;;;

Fontos a mezFontos a mezFontos a mezFontos a mezőőőősorrendsorrendsorrendsorrend

GEIAL Kovács László

Rekord tRekord tRekord tRekord töööörlrlrlrléééése:se:se:se:

A feltA feltA feltA feltéééétel rtel rtel rtel réééész rsz rsz rsz réééészletesen a szletesen a szletesen a szletesen a SELECTSELECTSELECTSELECT----nnnnééééllll jjjjöööönnnn

DELETE FROM AUTO WHERE AR<1200000;

A mA mA mA műűűűveletek tranzakciveletek tranzakciveletek tranzakciveletek tranzakcióóóó hathathathatáááásksksksköööörben futnak le!rben futnak le!rben futnak le!rben futnak le!

DELETE FROM AUTO;

DELETE FROM AUTO WHERE (SELECT … ) ;

DDDDMMMML utasL utasL utasL utasííííttttáááásoksoksoksok

DELETE FROM DELETE FROM DELETE FROM DELETE FROM tablatablatablatabla WHERE feltWHERE feltWHERE feltWHERE feltéééétel;tel;tel;tel;

A feltA feltA feltA feltéééételnek eleget tevtelnek eleget tevtelnek eleget tevtelnek eleget tevőőőő rekordok trekordok trekordok trekordok töööörlrlrlrlőőőődnekdnekdnekdnek

Ha elmarad a WHERE tag, minden rekord tHa elmarad a WHERE tag, minden rekord tHa elmarad a WHERE tag, minden rekord tHa elmarad a WHERE tag, minden rekord töööörlrlrlrlőőőődikdikdikdik

GEIAL Kovács László

Page 64: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

Rekord mRekord mRekord mRekord móóóódosdosdosdosííííttttáááása:sa:sa:sa:

Ha elmarad a WHERE tag, minden rekord mHa elmarad a WHERE tag, minden rekord mHa elmarad a WHERE tag, minden rekord mHa elmarad a WHERE tag, minden rekord móóóódosuldosuldosuldosul

UPDATE AUTO SET AR = AR * 1.2 WHERE AR<1200000;

A mA mA mA műűűűveletek tranzakciveletek tranzakciveletek tranzakciveletek tranzakcióóóó hathathathatáááásksksksköööörben futnak le!rben futnak le!rben futnak le!rben futnak le!

UPDATE DOLGOZO SET KOR = KOR + 1, FIZ = 10000;

DDDDMMMML utasL utasL utasL utasííííttttáááásoksoksoksok

UPDATE UPDATE UPDATE UPDATE tablatablatablatabla SET SET SET SET mezomezomezomezo= = = = éééértrtrtrtéééék,... WHERE feltk,... WHERE feltk,... WHERE feltk,... WHERE feltéééétel;tel;tel;tel;

A feltA feltA feltA feltéééételnek eleget tevtelnek eleget tevtelnek eleget tevtelnek eleget tevőőőő rekordok mrekordok mrekordok mrekordok móóóódosulnakdosulnakdosulnakdosulnak

GEIAL Kovács László

DDDDáááátumok felvitele konverzitumok felvitele konverzitumok felvitele konverzitumok felvitele konverzióóóós fs fs fs füüüüggvggvggvggvéééénnyel tnnyel tnnyel tnnyel töööörtrtrtrtééééniknikniknik

INSERT INTO AUTO(DATUM,..) VALUES(TO_DATE(‘2002.02.12’,’YYYY.MM.DD’),…);

DML utasDML utasDML utasDML utasííííttttáááásoksoksoksok

SpeciSpeciSpeciSpeciáááális lis lis lis éééértrtrtrtéééékek kezelkek kezelkek kezelkek kezeléééésesesese

ÜÜÜÜres, nem ismert res, nem ismert res, nem ismert res, nem ismert éééértrtrtrtéééék jelk jelk jelk jelöööölllléééése: NULLse: NULLse: NULLse: NULL

INSERT INTO AUTO VALUES(12,’ALMA’, NULL,..);

A DEFAULT A DEFAULT A DEFAULT A DEFAULT éééértrtrtrtéééék kerk kerk kerk kerüüüül letl letl letl letáááárolrolrolroláááásrasrasrasra

A A A A ”””” jel: jel: jel: jel: azonosazonosazonosazonosííííttttóóóónnnnéééévvvv hathathathatáááárolrolrolroláááásasasasaA A A A ‘‘‘‘ jel: jel: jel: jel: szszszszöööövegkonstansvegkonstansvegkonstansvegkonstans hathathathatáááárolrolrolroláááásasasasa

INSERT INTO AUTO(”SZUL. HELY”,..) VALUES(‘OZD’,..);

GEIAL Kovács László

Page 65: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

SELECT SELECT SELECT SELECT cimcimcimcim FROM kFROM kFROM kFROM köööönyvek WHERE nyvek WHERE nyvek WHERE nyvek WHERE áááár > 3300;r > 3300;r > 3300;r > 3300;

rekordok lekérdezése: SELECT mezőlista FROM táblalista

DQL: A tDQL: A tDQL: A tDQL: A tááááblblblbláááák, objektumok k, objektumok k, objektumok k, objektumok tartaltartaltartaltartalmmmmáááának leknak leknak leknak lekéééérdezrdezrdezrdezéééése se se se

Igényelt információk:

Mely táblákból vesszük az adatokat?

Mely rekordokat vegyük figyelembe?

Milyen számításokat végezzünk?

SELECT * FROM kSELECT * FROM kSELECT * FROM kSELECT * FROM köööönyvek INNER JOIN kiadok ON nyvek INNER JOIN kiadok ON nyvek INNER JOIN kiadok ON nyvek INNER JOIN kiadok ON kodkodkodkod = = = = pubpubpubpub;;;;

GEIAL Kovács László

SELECT m_kif1,SELECT m_kif1,SELECT m_kif1,SELECT m_kif1,…………FROM t_FROM t_FROM t_FROM t_kifkifkifkifWHERE feltWHERE feltWHERE feltWHERE feltéééételtelteltelGROUP BY GROUP BY GROUP BY GROUP BY cskifcskifcskifcskifHAVING feltHAVING feltHAVING feltHAVING feltéééételtelteltel

UNION | INTERSECT | MINUSUNION | INTERSECT | MINUSUNION | INTERSECT | MINUSUNION | INTERSECT | MINUSSELECT SELECT SELECT SELECT …………

ORDER BY ORDER BY ORDER BY ORDER BY rkifrkifrkifrkif; ; ; ;

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

ÁÁÁÁllandllandllandllandóóóóan ban ban ban bőőőővvvvüüüül, az SQL kl, az SQL kl, az SQL kl, az SQL köööözponti elemezponti elemezponti elemezponti eleme

A lekA lekA lekA lekéééérdezrdezrdezrdezéééés alapjais alapjais alapjais alapjai

A relA relA relA reláááácicicicióóóós algebrs algebrs algebrs algebráááán alapszikn alapszikn alapszikn alapszik

Tartalmaz nem relTartalmaz nem relTartalmaz nem relTartalmaz nem reláááácicicicióóóós elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)

projekció, kiterjesztés

join

szelekció

csoportképzés

aggregáció

csoport szelekció

halmazműveletek

rendezés

GEIAL Kovács László

Page 66: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

A projekciA projekciA projekciA projekcióóóó megadmegadmegadmegadáááásasasasa

ΠΠΠΠmlistamlistamlistamlista(t(t(t(táááábla)bla)bla)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 RSZ, TIPUS FROM AUTO;

SELECT SELECT SELECT SELECT mlistamlistamlistamlista FROM tFROM tFROM tFROM táááábla;bla;bla;bla;

Az Az Az Az mlistamlistamlistamlista helyhelyhelyhelyéééén * n * n * n * ááááll, ha minden mezll, ha minden mezll, ha minden mezll, ha minden mezőőőő kellkellkellkell

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

SELECT * FROM AUTO;GEIAL Kovács László

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

σσσσfeltfeltfeltfeltéééételtelteltel(t(t(t(táááábla)bla)bla)bla)

A szelekciA szelekciA szelekciA szelekcióóóó megadmegadmegadmegadáááásasasasa

SELECT SELECT SELECT SELECT mlsitamlsitamlsitamlsita FROM tFROM tFROM tFROM táááábla WHERE feltbla WHERE feltbla WHERE feltbla WHERE feltéééétel;tel;tel;tel;

SELECT * FROM AUTO WHERE SZIN = ‘PIROS’ OR TIPUS = ‘MAZDA’;

GEIAL Kovács László

Page 67: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

SELECT SELECT SELECT SELECT kifkifkifkif nnnnéééév,... FROM tv,... FROM tv,... FROM tv,... FROM táááábla;bla;bla;bla;εεεεkifkifkifkif nevnevnevnev(t(t(t(táááábla)bla)bla)bla)

A kiterjesztA kiterjesztA kiterjesztA kiterjesztéééés megads megads megads megadáááásasasasa

SELECT AR/100 UJAR FROM AUTO;

A mezA mezA mezA mezőőőőkhkhkhkhööööz z z z úúúúj nevet is rendelhetj nevet is rendelhetj nevet is rendelhetj nevet is rendelhetüüüünknknknkAz elAz elAz elAz előőőőáááállllllllííííttttóóóó kifejezkifejezkifejezkifejezééééssss

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

SELECT SAL FIZETES, AGE KOR FROM EMP;

GEIAL Kovács László

SQL felSQL felSQL felSQL felüüüületekletekletekletek

Mily mMily mMily mMily móóóódon adhatdon adhatdon adhatdon adhatóóóók k k k áááát a t a t a t a DBMSDBMSDBMSDBMS----neknekneknek az SQL utasaz SQL utasaz SQL utasaz SQL utasííííttttáááások?sok?sok?sok?Hogyan Hogyan Hogyan Hogyan éééérhetrhetrhetrhetőőőők el az eredmk el az eredmk el az eredmk el az eredméééénytnytnytnytáááábla adatai?bla adatai?bla adatai?bla adatai?

DBMSDBMSDBMSDBMS

parancsértelmező

DB segédprogram

alkalmazói program

ESQL

CLI / ODBC

JDBC / ADO

4GLGEIAL Kovács László

Page 68: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

OracleOracleOracleOracle SQLPlusSQLPlusSQLPlusSQLPlus

Gyakorlati eszkGyakorlati eszkGyakorlati eszkGyakorlati eszkööööz: z: z: z: OracleOracleOracleOracle RDBMSRDBMSRDBMSRDBMS

FelFelFelFelüüüület: interaktlet: interaktlet: interaktlet: interaktíííív SQL: v SQL: v SQL: v SQL: sqlplussqlplussqlplussqlplus ((((SunSunSunSun ggggéééépek, 105pek, 105pek, 105pek, 105----öööös s s s lablablablab.).).).)WEBWEBWEBWEB----eseseses SQL felSQL felSQL felSQL felüüüület: let: let: let: ISqlplusISqlplusISqlplusISqlplus

regisztregisztregisztregisztáááácicicicióóóó: : : : httpshttpshttpshttps://://://://wwwwwwwwwwww----db.iit.unidb.iit.unidb.iit.unidb.iit.uni----miskolc.humiskolc.humiskolc.humiskolc.hu////dbregdbregdbregdbreg////

sqlplussqlplussqlplussqlplus: : : : sunsunsunsun> > > > export ORACLE_HOME=/opt/OraHome1export ORACLE_HOME=/opt/OraHome1export ORACLE_HOME=/opt/OraHome1export ORACLE_HOME=/opt/OraHome1sunsunsunsun> > > > export PATH=${PATH}:${ORACLE_HOME}/binexport PATH=${PATH}:${ORACLE_HOME}/binexport PATH=${PATH}:${ORACLE_HOME}/binexport PATH=${PATH}:${ORACLE_HOME}/binsunsunsunsun> > > > sqlplussqlplussqlplussqlplus nnnnéééév@v@v@v@infoinfoinfoinfo

isqlplusisqlplusisqlplusisqlplus::::httphttphttphttp://://://://arrakis.iit.uniarrakis.iit.uniarrakis.iit.uniarrakis.iit.uni----miskolc.humiskolc.humiskolc.humiskolc.hu:5560/:5560/:5560/:5560/isqlplusisqlplusisqlplusisqlplus

GEIAL Kovács László

Page 69: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Az SQL nyelv tovAz SQL nyelv tovAz SQL nyelv tovAz SQL nyelv továááábbi elemeibbi elemeibbi elemeibbi elemei

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

adatdefiniadatdefiniadatdefiniadatdefiniáááállllóóóó ((((DDLDDLDDLDDL))))

adatkezeladatkezeladatkezeladatkezelőőőő ((((DMLDMLDMLDML))))

leklekleklekéééérdezrdezrdezrdezőőőő ((((DQLDQLDQLDQL))))

vezvezvezvezéééérlrlrlrlőőőő ((((DCLDCLDCLDCL))))

struktstruktstruktstruktúúúúra lra lra lra léééétrehoztrehoztrehoztrehozáááás (CREATE)s (CREATE)s (CREATE)s (CREATE)

struktstruktstruktstruktúúúúra mra mra mra móóóódosdosdosdosííííttttáááás (ALTER)s (ALTER)s (ALTER)s (ALTER)

struktstruktstruktstruktúúúúra megszra megszra megszra megszüüüüntetntetntetntetéééés (DROP)s (DROP)s (DROP)s (DROP)

adat felvitel (INSERT)adat felvitel (INSERT)adat felvitel (INSERT)adat felvitel (INSERT)

adat madat madat madat móóóódosdosdosdosííííttttáááás (UPDATE)s (UPDATE)s (UPDATE)s (UPDATE)

adat tadat tadat tadat töööörlrlrlrléééés (DELETE)s (DELETE)s (DELETE)s (DELETE)

adat kiolvasadat kiolvasadat kiolvasadat kiolvasáááása (SELECT)sa (SELECT)sa (SELECT)sa (SELECT)

vvvvéééédelem, tranzakcidelem, tranzakcidelem, tranzakcidelem, tranzakcióóóókkkkGEIAL Kovács László

√√√√

√√√√

√√√√

√√√√

√√√√

√√√√

SQL SQL SQL SQL nyelvnyelvnyelvnyelv elemeielemeielemeielemei

Page 70: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

DQL utasDQL utasDQL utasDQL utasííííttttáááásoksoksoksok

ÁÁÁÁllandllandllandllandóóóóan ban ban ban bőőőővvvvüüüül, az SQL kl, az SQL kl, az SQL kl, az SQL köööözponti elemezponti elemezponti elemezponti eleme

A lekA lekA lekA lekéééérdezrdezrdezrdezéééés alapjais alapjais alapjais alapjai

A relA relA relA reláááácicicicióóóós algebrs algebrs algebrs algebráááán alapszikn alapszikn alapszikn alapszik

Tartalmaz nem relTartalmaz nem relTartalmaz nem relTartalmaz nem reláááácicicicióóóós elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)s elemeket is (pl. ORDER BY)

SELECT m_kif1,SELECT m_kif1,SELECT m_kif1,SELECT m_kif1,…………FROM t_FROM t_FROM t_FROM t_kifkifkifkifWHERE feltWHERE feltWHERE feltWHERE feltéééételtelteltelGROUP BY GROUP BY GROUP BY GROUP BY cskifcskifcskifcskifHAVING feltHAVING feltHAVING feltHAVING feltéééételtelteltel

UNION | INTERSECT | MINUSUNION | INTERSECT | MINUSUNION | INTERSECT | MINUSUNION | INTERSECT | MINUSSELECT SELECT SELECT SELECT …………

ORDER BY ORDER BY ORDER BY ORDER BY rkifrkifrkifrkif; ; ; ;

projekció, kiterjesztés

join

szelekció

csoportképzés

aggregáció

csoport szelekció

halmazműveletek

rendezés

GEIAL Kovács László

√√√√

√√√√

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

rrrr1111 ><><><>< rrrr2222

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

TTTTááááblblblbláááák k k k öööösszekapcsolsszekapcsolsszekapcsolsszekapcsoláááása, Descartessa, Descartessa, Descartessa, Descartes----szorzat szorzat szorzat szorzat

SELECT SELECT SELECT SELECT mlistamlistamlistamlista FROM r1, r2 ... ;FROM r1, r2 ... ;FROM r1, r2 ... ;FROM r1, r2 ... ;

KettKettKettKettőőőőnnnnéééél tl tl tl tööööbb tbb tbb tbb táááábla is bla is bla is bla is öööösszekapcsolhatsszekapcsolhatsszekapcsolhatsszekapcsolhatóóóó

ÜÜÜÜgyelni kell a mgyelni kell a mgyelni kell a mgyelni kell a mééééretproblretproblretproblretprobléééémmmmáááákrakrakrakra

GEIAL Kovács László

Page 71: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

TTTTááááblblblbláááák k k k öööösszekapcsolsszekapcsolsszekapcsolsszekapcsoláááása, szelekcisa, szelekcisa, szelekcisa, szelekcióóóós s s s joinjoinjoinjoin

SELECT SELECT SELECT SELECT ………… FROM r1 INNER JOIN r2 ON feltFROM r1 INNER JOIN r2 ON feltFROM r1 INNER JOIN r2 ON feltFROM r1 INNER JOIN r2 ON feltéééétel tel tel tel …………;;;;

TTTTáááábla szerepkbla szerepkbla szerepkbla szerepköööört is alias nrt is alias nrt is alias nrt is alias néééévvel jelvvel jelvvel jelvvel jelööööljljljljüüüükkkk

DOLGOZO (DOLGOZO (DOLGOZO (DOLGOZO (kodkodkodkod PK, PK, PK, PK, nevnevnevnev, , , , beosztasbeosztasbeosztasbeosztas, fonok REF DOLGOZO, , fonok REF DOLGOZO, , fonok REF DOLGOZO, , fonok REF DOLGOZO, fizetesfizetesfizetesfizetes))))

SELECT SELECT SELECT SELECT f.nevf.nevf.nevf.nev, , , , d.nevd.nevd.nevd.nev FROM FROM FROM FROM dolgozodolgozodolgozodolgozo f INNER JOIN f INNER JOIN f INNER JOIN f INNER JOIN dolgozodolgozodolgozodolgozo ddddON ON ON ON f.kodf.kodf.kodf.kod = d.fonok WHERE = d.fonok WHERE = d.fonok WHERE = d.fonok WHERE d.beosztasd.beosztasd.beosztasd.beosztas = = = = ‘‘‘‘raktraktraktraktáááárosrosrosros’’’’

rrrr1111 ><><><><feltfeltfeltfeltéééételtelteltel rrrr2222

Ha tHa tHa tHa tööööbb tbb tbb tbb tááááblblblbláááában is azonos elnevezban is azonos elnevezban is azonos elnevezban is azonos elnevezééééssssűűűű mezmezmezmezőőőő van, akkor a van, akkor a van, akkor a van, akkor a kibkibkibkibőőőővitettvitettvitettvitett mezmezmezmezőőőőnevet hasznnevet hasznnevet hasznnevet hasznááááljuk:ljuk:ljuk:ljuk: ttttáááábla.mezbla.mezbla.mezbla.mezőőőő

A tA tA tA tááááblanblanblanblanéééévhez alias nevet rendelhetvhez alias nevet rendelhetvhez alias nevet rendelhetvhez alias nevet rendelhetüüüünk: tnk: tnk: tnk: táááábla aliasbla aliasbla aliasbla alias

VisszavezethetVisszavezethetVisszavezethetVisszavezethetőőőő Descartes szorzatra Descartes szorzatra Descartes szorzatra Descartes szorzatra éééés szelekcis szelekcis szelekcis szelekcióóóórararara

GEIAL Kovács László

AAAA BBBB

1111

2222

3333

CCCC

GGGG

UUUU

AAAA CCCC

3333

1111

5555

LLLL

TTTT

PPPP

T1T1T1T1 ++++><><><><T1.A = T2.AT1.A = T2.AT1.A = T2.AT1.A = T2.A T2T2T2T2T1T1T1T1 T2T2T2T2

AAAA CCCC

1111

3333

TTTT

LLLL

AAAA BBBB

1111

2222

3333

CCCC

GGGG

UUUU

Az Az Az Az outerouterouterouter----joinjoinjoinjoin megadmegadmegadmegadáááásasasasa

SELECT SELECT SELECT SELECT mlistamlistamlistamlista FROM r1 LEFT | RIGTH FROM r1 LEFT | RIGTH FROM r1 LEFT | RIGTH FROM r1 LEFT | RIGTH |||| FULL OUTER JOIN FULL OUTER JOIN FULL OUTER JOIN FULL OUTER JOIN r2 ON feltr2 ON feltr2 ON feltr2 ON feltéééétel WHERE felt tel WHERE felt tel WHERE felt tel WHERE felt …………; ; ; ;

SELECT * FROM AUTO A RIGHT OUTER JOIN EMBER ESELECT * FROM AUTO A RIGHT OUTER JOIN EMBER ESELECT * FROM AUTO A RIGHT OUTER JOIN EMBER ESELECT * FROM AUTO A RIGHT OUTER JOIN EMBER EON A.TULAJ = E.IGSZ WHERE A.AR > 6000000;ON A.TULAJ = E.IGSZ WHERE A.AR > 6000000;ON A.TULAJ = E.IGSZ WHERE A.AR > 6000000;ON A.TULAJ = E.IGSZ WHERE A.AR > 6000000;

rrrr1111 ++++><><><><feltfeltfeltfeltéééétel tel tel tel ++++ rrrr2222

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

extra rekordGEIAL Kovács László

Page 72: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

ΓΓΓΓaggregaggregaggregaggregáááácicicicióóóóssss----listalistalistalista (r)(r)(r)(r)

SUM(SUM(SUM(SUM(mez.kifmez.kifmez.kifmez.kif)))) AVG(AVG(AVG(AVG(mez.kifmez.kifmez.kifmez.kif))))COUNT(COUNT(COUNT(COUNT(mez.kifmez.kifmez.kifmez.kif)))) MAX(MAX(MAX(MAX(mez.kifmez.kifmez.kifmez.kif))))MIN(MIN(MIN(MIN(mez.kifmez.kifmez.kifmez.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 COUNT(*) FROM AUTO;SELECT COUNT(*) FROM AUTO;SELECT COUNT(*) FROM AUTO;

Az Az Az Az aggregaggregaggregaggregáááácicicicióóóó megadmegadmegadmegadáááásasasasa

SELECT SELECT SELECT SELECT aggregaggregaggregaggregáááácicicicióóóóssss----listalistalistalista FROM r;FROM r;FROM r;FROM r;

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

AggregAggregAggregAggregááááltltltlt éééés rs rs rs réééészletezszletezszletezszletezőőőő kifejezkifejezkifejezkifejezéééések nem keveredhetnek sek nem keveredhetnek sek nem keveredhetnek sek nem keveredhetnek

GEIAL Kovács László

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

ΓΓΓΓcsopkcsopkcsopkcsopkéééépkifpkifpkifpkifaggregaggregaggregaggregáááácicicicióóóóssss----listalistalistalista (r)(r)(r)(r)

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

Az Az Az Az aggregaggregaggregaggregáááácicicicióóóó éééés csoportks csoportks csoportks csoportkéééépzpzpzpzéééés megads megads megads megadáááásasasasa

SELECT SELECT SELECT SELECT aggregaggregaggregaggregáááácicicicióóóóssss----listalistalistalista FROM r GROUP BY FROM r GROUP BY FROM r GROUP BY FROM r GROUP BY csopkcsopkcsopkcsopkéééépkifpkifpkifpkif;;;;

SELECT TIPUS, AVG(AR) FROM AUTO SELECT TIPUS, AVG(AR) FROM AUTO SELECT TIPUS, AVG(AR) FROM AUTO SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS;GROUP BY TIPUS;GROUP BY TIPUS;GROUP BY TIPUS;

A A A A csopkcsopkcsopkcsopkéééépkifpkifpkifpkif szerepelhet az eredmszerepelhet az eredmszerepelhet az eredmszerepelhet az eredméééény mezny mezny mezny mezőőőőlistlistlistlistáááájjjjáááábanbanbanban

GEIAL Kovács László

Page 73: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

SzSzSzSzűűűűrrrréééés az elks az elks az elks az elkéééészszszszüüüült csoportokblt csoportokblt csoportokblt csoportokbóóóóllll

SELECT aggSELECT aggSELECT aggSELECT agg----lista FROM tlista FROM tlista FROM tlista FROM táááábla GROUP BY bla GROUP BY bla GROUP BY bla GROUP BY cskifcskifcskifcskif HAVING feltHAVING feltHAVING feltHAVING feltéééétel;tel;tel;tel;

SELECT TIPUS FROM AUTO GROUP BY TIPUS SELECT TIPUS FROM AUTO GROUP BY TIPUS SELECT TIPUS FROM AUTO GROUP BY TIPUS SELECT TIPUS FROM AUTO GROUP BY TIPUS HAVING AVG(AR) > 10000000;HAVING AVG(AR) > 10000000;HAVING AVG(AR) > 10000000;HAVING AVG(AR) > 10000000;

A csoportkA csoportkA csoportkA csoportkéééépzpzpzpzéééés els els els előőőőtti tti tti tti éééés uts uts uts utááááni szelekcini szelekcini szelekcini szelekcióóóó egyegyegyegyüüüüttesen is ttesen is ttesen is ttesen is szerepelhetszerepelhetszerepelhetszerepelhet

SELECT TIPUS FROM AUTO WHERE SZIN=SELECT TIPUS FROM AUTO WHERE SZIN=SELECT TIPUS FROM AUTO WHERE SZIN=SELECT TIPUS FROM AUTO WHERE SZIN=””””PIROSPIROSPIROSPIROS””””GROUP BY TIPUS HAVING AVG(AR) > 10000000;GROUP BY TIPUS HAVING AVG(AR) > 10000000;GROUP BY TIPUS HAVING AVG(AR) > 10000000;GROUP BY TIPUS HAVING AVG(AR) > 10000000;

WHERE WHERE WHERE WHERE HAVINGHAVINGHAVINGHAVING

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

σσσσfeltfeltfeltfeltéééételtelteltel((((ΓΓΓΓcskifcskifcskifcskifaggaggaggagg----listalistalistalista (r))(r))(r))(r))

GEIAL Kovács László

Az eredmAz eredmAz eredmAz eredméééény rekordok rendezny rekordok rendezny rekordok rendezny rekordok rendezéééésesesese

SELECT SELECT SELECT SELECT mlistamlistamlistamlista FROM tFROM tFROM tFROM táááábla ORDER BY mezo1 mod1, mezo2 ...;bla ORDER BY mezo1 mod1, mezo2 ...;bla ORDER BY mezo1 mod1, mezo2 ...;bla ORDER BY mezo1 mod1, mezo2 ...;

ASC vagy DESCASC vagy DESCASC vagy DESCASC vagy DESC

Nem rNem rNem rNem réééésze a relsze a relsze a relsze a reláááácicicicióóóós algebrs algebrs algebrs algebráááánaknaknaknak

A mA mA mA máááásodik mezsodik mezsodik mezsodik mezőőőő szerinti szempont csak az elsszerinti szempont csak az elsszerinti szempont csak az elsszerinti szempont csak az elsőőőő egyezegyezegyezegyezőőőősssséééége ge ge ge esetesetesetesetéééén ln ln ln léééényegesnyegesnyegesnyeges

SELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BYAR DESC, TIPUS;AR DESC, TIPUS;AR DESC, TIPUS;AR DESC, TIPUS;

Lehet sorszLehet sorszLehet sorszLehet sorszáááámmal is hivatkozni a mezmmal is hivatkozni a mezmmal is hivatkozni a mezmmal is hivatkozni a mezőőőőkrekrekrekre

SELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BYSELECT RSZ, TIPUS, AR FROM AUTO ORDER BY3 DESC, 2;3 DESC, 2;3 DESC, 2;3 DESC, 2;

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

GEIAL Kovács László

Page 74: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

TTTTááááblblblbláááák halmaz mk halmaz mk halmaz mk halmaz műűűűveleteiveleteiveleteiveletei

rrrr1111 ∪∪∪∪ rrrr2222 , r, r, r, r1111 ∩∩∩∩ rrrr2222 , r, r, r, r1111 \\\\ rrrr2222

SELECT SELECT SELECT SELECT ………… FROM r1 FROM r1 FROM r1 FROM r1 ………… UNION SELECT UNION SELECT UNION SELECT UNION SELECT ………… FROM r2 FROM r2 FROM r2 FROM r2 …………;;;;SELECT SELECT SELECT SELECT ………… FROM r1 FROM r1 FROM r1 FROM r1 ………… UNION ALL SELECT UNION ALL SELECT UNION ALL SELECT UNION ALL SELECT ………… FROM r2 FROM r2 FROM r2 FROM r2 …………;;;;SELECT SELECT SELECT SELECT ………… FROM r1 FROM r1 FROM r1 FROM r1 ………… INTERSECT SELECT INTERSECT SELECT INTERSECT SELECT INTERSECT SELECT ………… FROM r2 FROM r2 FROM r2 FROM r2 …………;;;;SELECT SELECT SELECT SELECT ………… FROM r1 FROM r1 FROM r1 FROM r1 ………… MINUS SELECT MINUS SELECT MINUS SELECT MINUS SELECT ………… FROM r2 FROM r2 FROM r2 FROM r2 …………;;;;

A rendezA rendezA rendezA rendezéééés csak a legvs csak a legvs csak a legvs csak a legvééééggggéééén szerepelhet egyszern szerepelhet egyszern szerepelhet egyszern szerepelhet egyszer

SELECT SELECT SELECT SELECT nevnevnevnev FROM OKTATOK WHERE varos = FROM OKTATOK WHERE varos = FROM OKTATOK WHERE varos = FROM OKTATOK WHERE varos = ‘‘‘‘EGEREGEREGEREGER’’’’ UNION ALLUNION ALLUNION ALLUNION ALLSELECT SELECT SELECT SELECT nevnevnevnev FROM HALLGATOK WHERE varos = FROM HALLGATOK WHERE varos = FROM HALLGATOK WHERE varos = FROM HALLGATOK WHERE varos = ‘‘‘‘EGEREGEREGEREGER’’’’ORDER BY 1;ORDER BY 1;ORDER BY 1;ORDER BY 1;

Csak kompatCsak kompatCsak kompatCsak kompatííííbilis szerkezetbilis szerkezetbilis szerkezetbilis szerkezetűűűű ttttááááblblblbláááák vonhatk vonhatk vonhatk vonhatóóóók k k k öööösszesszesszessze

GEIAL Kovács László

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

AlAlAlAl----SELECTSELECTSELECTSELECT hasznhasznhasznhasznáááálatalatalatalata

A szA szA szA száááámmmmíííított tott tott tott éééértrtrtrtééééket az elket az elket az elket az előőőőáááállllllllííííttttóóóó SELECT paranccsal adjuk megSELECT paranccsal adjuk megSELECT paranccsal adjuk megSELECT paranccsal adjuk meg

SELECT SELECT SELECT SELECT ………… FROM FROM FROM FROM ………… WHERE WHERE WHERE WHERE ………… (SELECT (SELECT (SELECT (SELECT …………) GROUP BY ) GROUP BY ) GROUP BY ) GROUP BY ………… HAVING (SELECTHAVING (SELECTHAVING (SELECTHAVING (SELECT…………))))

A SELECT kifejezA SELECT kifejezA SELECT kifejezA SELECT kifejezéééések tsek tsek tsek tööööbbszbbszbbszbbszöööörrrröööösen egymsen egymsen egymsen egymáááásba sba sba sba áááágyazhatgyazhatgyazhatgyazhatóóóók k k k

SELECT COUNT(*) FROM BOROK WHERE SELECT COUNT(*) FROM BOROK WHERE SELECT COUNT(*) FROM BOROK WHERE SELECT COUNT(*) FROM BOROK WHERE arararar > > > > (SELECT AVG((SELECT AVG((SELECT AVG((SELECT AVG(arararar) FROM BOROK); ) FROM BOROK); ) FROM BOROK); ) FROM BOROK);

A szelekciA szelekciA szelekciA szelekcióóóós felts felts felts feltéééételben sztelben sztelben sztelben száááámmmmíííított tott tott tott éééértrtrtrtéééék is szerepelhetk is szerepelhetk is szerepelhetk is szerepelhet

Γcount(*)(σar>

(BOROK))(Γavg(ar)(BOROK))

GEIAL Kovács László

Page 75: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

SpeciSpeciSpeciSpeciáááális szelekcilis szelekcilis szelekcilis szelekcióóóós opers opers opers operáááátoroktoroktoroktorok

kifkifkifkif LIKE minta LIKE minta LIKE minta LIKE minta sztringsztringsztringsztring illeszkedilleszkedilleszkedilleszkedéééése egy mintse egy mintse egy mintse egy mintáááára (%,_)ra (%,_)ra (%,_)ra (%,_)

kifkifkifkif IS [NOT] NULLIS [NOT] NULLIS [NOT] NULLIS [NOT] NULL üüüüresresresres----e a kifejeze a kifejeze a kifejeze a kifejezééééssss

kifkifkifkif BETWEEN kif2 AND kif3BETWEEN kif2 AND kif3BETWEEN kif2 AND kif3BETWEEN kif2 AND kif3 kkkkööööztes ztes ztes ztes éééértrtrtrtéééék vizsgk vizsgk vizsgk vizsgáááálat lat lat lat

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

EXISTS (EXISTS (EXISTS (EXISTS (alalalal_SELECT)_SELECT)_SELECT)_SELECT) eredmeredmeredmeredméééénytnytnytnytáááábla lbla lbla lbla lééééteztezteztezéééésesesese

kifkifkifkif IN lista | (IN lista | (IN lista | (IN lista | (alalalal_SELECT)_SELECT)_SELECT)_SELECT) tartalmaztartalmaztartalmaztartalmazáááássss

kifkifkifkif opopopop ALL lista | (ALL lista | (ALL lista | (ALL lista | (alalalal_SELECT)_SELECT)_SELECT)_SELECT) minden kvantorminden kvantorminden kvantorminden kvantor

kifkifkifkif opopopop ANY lista | (ANY lista | (ANY lista | (ANY lista | (alalalal_SELECT)_SELECT)_SELECT)_SELECT) llllééééteztezteztezéééés kvantors kvantors kvantors kvantor

SELECT d1.kod FROM dolgozok d1 WHERE NOT EXISTS (SELECT SELECT d1.kod FROM dolgozok d1 WHERE NOT EXISTS (SELECT SELECT d1.kod FROM dolgozok d1 WHERE NOT EXISTS (SELECT SELECT d1.kod FROM dolgozok d1 WHERE NOT EXISTS (SELECT d2.kod FROM dolgozok d2 WHERE d1.beosztas = d2.beosztas d2.kod FROM dolgozok d2 WHERE d1.beosztas = d2.beosztas d2.kod FROM dolgozok d2 WHERE d1.beosztas = d2.beosztas d2.kod FROM dolgozok d2 WHERE d1.beosztas = d2.beosztas AND d1.fizetes < d2.fizetes AND d2.telep LIKE AND d1.fizetes < d2.fizetes AND d2.telep LIKE AND d1.fizetes < d2.fizetes AND d2.telep LIKE AND d1.fizetes < d2.fizetes AND d2.telep LIKE ‘‘‘‘Budapest%Budapest%Budapest%Budapest%’’’’))))

GEIAL Kovács László

SpeciSpeciSpeciSpeciáááális szelekcilis szelekcilis szelekcilis szelekcióóóós opers opers opers operáááátoroktoroktoroktorok

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

Az alap lekAz alap lekAz alap lekAz alap lekéééérdezrdezrdezrdezéééés, szelekcis, szelekcis, szelekcis, szelekcióóóó eredmeredmeredmeredméééénye nem halmazknye nem halmazknye nem halmazknye nem halmazkééééntntntntmmmműűűűkkkköööödik, tartalmazhat ismdik, tartalmazhat ismdik, tartalmazhat ismdik, tartalmazhat isméééétltltltlőőőőddddéééést st st st

Van lehetVan lehetVan lehetVan lehetőőőősssséééég az ismg az ismg az ismg az isméééétltltltlőőőőddddéééés megszs megszs megszs megszűűűűrrrréééésssséééére: DISTINCT re: DISTINCT re: DISTINCT re: DISTINCT

SELECT DISTINCT SELECT DISTINCT SELECT DISTINCT SELECT DISTINCT mlistamlistamlistamlista FROM FROM FROM FROM …………SELECT SELECT SELECT SELECT aggraggraggraggr____fvfvfvfv(DISTINCT (DISTINCT (DISTINCT (DISTINCT kifkifkifkif) FROM ) FROM ) FROM ) FROM …………

SELECT COUNT(DISTINCT varos) FROM kiadok INNER JOIN konyvek ON kiadok.kod = konyvek.kiado WHERE konyv.ar > 10000

A SELECT DISTINCT biztosA SELECT DISTINCT biztosA SELECT DISTINCT biztosA SELECT DISTINCT biztosíííítja az algebrai tja az algebrai tja az algebrai tja az algebrai projeciprojeciprojeciprojecióóóótttt

GEIAL Kovács László

Page 76: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

SpeciSpeciSpeciSpeciáááális szelekcilis szelekcilis szelekcilis szelekcióóóós opers opers opers operáááátoroktoroktoroktorok

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

Az Az Az Az innerinnerinnerinner joinjoinjoinjoin esetesetesetesetéééében is tben is tben is tben is tööööbb tbb tbb tbb táááábla kapcsolhatbla kapcsolhatbla kapcsolhatbla kapcsolhatóóóó öööösszesszesszessze

select * from select * from select * from select * from konyvkonyvkonyvkonyv kokokokoinner join inner join inner join inner join kiadokiadokiadokiado kikikiki on on on on ko.kiadoko.kiadoko.kiadoko.kiado====ki.kodki.kodki.kodki.kodinner join inner join inner join inner join vallalatvallalatvallalatvallalat v on v on v on v on ki.kiadoki.kiadoki.kiadoki.kiado = = = = v.kodv.kodv.kodv.kodwherewherewherewhere ko.arko.arko.arko.ar > 3000> 3000> 3000> 3000

A mA mA mA máááásodik sodik sodik sodik joinjoinjoinjoin elselselselsőőőő argumentuma az elsargumentuma az elsargumentuma az elsargumentuma az elsőőőő joinjoinjoinjoin leszleszleszlesz

TTTTáááámogatott a mogatott a mogatott a mogatott a naturalnaturalnaturalnatural joinjoinjoinjoin isisisis

SELECT SELECT SELECT SELECT ………… FROM r1 NATURAL JOIN r2FROM r1 NATURAL JOIN r2FROM r1 NATURAL JOIN r2FROM r1 NATURAL JOIN r2rrrr1111 ><><><><feltfeltfeltfeltéééételtelteltel rrrr2222

SELECT * FROM kiado NATURAL JOIN konyv

GEIAL Kovács László

SpeciSpeciSpeciSpeciáááális szelekcilis szelekcilis szelekcilis szelekcióóóós opers opers opers operáááátoroktoroktoroktorok

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

SztringSztringSztringSztring mintmintmintmintáááára valra valra valra valóóóó illesztillesztillesztillesztéééés tovs tovs tovs továááábbi lehetbbi lehetbbi lehetbbi lehetőőőősssséééégeigeigeigei

Foglalt karaktereket tartalmazFoglalt karaktereket tartalmazFoglalt karaktereket tartalmazFoglalt karaktereket tartalmazóóóó minta keresminta keresminta keresminta kereséééése:se:se:se:

kifkifkifkif LIKE minta ESCAPE LIKE minta ESCAPE LIKE minta ESCAPE LIKE minta ESCAPE ‘‘‘‘karakterkarakterkarakterkarakter’’’’

SELECT kod FROM aru WHERE nev LIKE ‘_A#_B’ ESCAPE ‘#’

GEIAL Kovács László

RegulRegulRegulRegulááááris kifejezris kifejezris kifejezris kifejezéééésen alapulsen alapulsen alapulsen alapulóóóó minta keresminta keresminta keresminta kereséééés:s:s:s:

kifkifkifkif SIMILAR TO minta ESCAPE SIMILAR TO minta ESCAPE SIMILAR TO minta ESCAPE SIMILAR TO minta ESCAPE ‘‘‘‘karakterkarakterkarakterkarakter’’’’

xxxxxxxx SIMILAR TO SIMILAR TO SIMILAR TO SIMILAR TO ‘‘‘‘(sz(sz(sz(szööööveg1) | (szveg1) | (szveg1) | (szveg1) | (szööööveg2)veg2)veg2)veg2)’’’’

xxxxxxxx SIMILAR TO SIMILAR TO SIMILAR TO SIMILAR TO ‘‘‘‘szszszszööööveg[abc]veg[abc]veg[abc]veg[abc]’’’’

xxxxxxxx SIMILAR TO SIMILAR TO SIMILAR TO SIMILAR TO ‘‘‘‘szszszszööööveg[abc]*szveg[abc]*szveg[abc]*szveg[abc]*szööööveg[abc2]+veg[abc2]+veg[abc2]+veg[abc2]+’’’’

Page 77: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

GyGyGyGyáááári fri fri fri füüüüggvggvggvggvéééényeknyeknyeknyek

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

Az adatAz adatAz adatAz adatéééértrtrtrtéééékek feldolgozkek feldolgozkek feldolgozkek feldolgozáááássssáááát gyt gyt gyt gyáááári fri fri fri füüüüggvggvggvggvéééények tnyek tnyek tnyek táááámogatjmogatjmogatjmogatjáááákkkk

karakterkezelkarakterkezelkarakterkezelkarakterkezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

szszszszáááámkezelmkezelmkezelmkezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

ddddáááátumkezeltumkezeltumkezeltumkezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

konverzikonverzikonverzikonverzióóóós fs fs fs füüüüggvggvggvggvéééényeknyeknyeknyek

Nincs szabvNincs szabvNincs szabvNincs szabváááány a fny a fny a fny a füüüüggvggvggvggvéééények knyek knyek knyek köööörrrréééére re re re éééés alakjs alakjs alakjs alakjáááárararara

SELECT SUBSTR(nev,1,INSTR (nev, ‘né’, 1)) FROM dolgozok

GEIAL Kovács László

GyGyGyGyáááári fri fri fri füüüüggvggvggvggvéééényeknyeknyeknyek

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

Karakter kezelKarakter kezelKarakter kezelKarakter kezelőőőő ffffüüüüggvggvggvggvéééények (nyek (nyek (nyek (OracleOracleOracleOracle):):):):

INSTR(kar1, kar2, INSTR(kar1, kar2, INSTR(kar1, kar2, INSTR(kar1, kar2, kpozkpozkpozkpoz, , , , eszamleszamleszamleszaml) : ) : ) : ) : rrrréééészszszsz----sztringsztringsztringsztring pozpozpozpozíííícicicicióóóó

SUBSTR(kar1, SUBSTR(kar1, SUBSTR(kar1, SUBSTR(kar1, kpozkpozkpozkpoz, hossz) : , hossz) : , hossz) : , hossz) : rrrréééészszszsz----sztringsztringsztringsztring kiemelkiemelkiemelkiemelééééssss

LENGTH(kar) : LENGTH(kar) : LENGTH(kar) : LENGTH(kar) : sztringsztringsztringsztring hosszahosszahosszahossza

INSTR(kar1, kar2, INSTR(kar1, kar2, INSTR(kar1, kar2, INSTR(kar1, kar2, kpozkpozkpozkpoz, , , , eszamleszamleszamleszaml) : ) : ) : ) : rrrréééészszszsz----sztringsztringsztringsztring pozpozpozpozíííícicicicióóóó

RTRIM(kar1) : jobboldali szRTRIM(kar1) : jobboldali szRTRIM(kar1) : jobboldali szRTRIM(kar1) : jobboldali szóóóóvvvvéééégi szgi szgi szgi szóóóókkkköööözzzzöööök levk levk levk leváááággggáááása sa sa sa

RPAD(kar1,n,jel) : jobboldali szRPAD(kar1,n,jel) : jobboldali szRPAD(kar1,n,jel) : jobboldali szRPAD(kar1,n,jel) : jobboldali szóóóóvvvvéééég g g g kigkigkigkigéééészszszszííííttttéééésesesese a jellel,a jellel,a jellel,a jellel,hogy a teljes hossz n legyenhogy a teljes hossz n legyenhogy a teljes hossz n legyenhogy a teljes hossz n legyen

INITCAP(kar1) :INITCAP(kar1) :INITCAP(kar1) :INITCAP(kar1) :negynegynegynegy kezdkezdkezdkezdőőőőbetbetbetbetűűűű, t, t, t, tööööbbi kisbetbbi kisbetbbi kisbetbbi kisbetűűűű

CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : sztringeksztringeksztringeksztringek öööösszefsszefsszefsszefűűűűzzzzéééése se se se GEIAL Kovács László

Page 78: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

GyGyGyGyáááári fri fri fri füüüüggvggvggvggvéééényeknyeknyeknyek

SQL SELECT funkciSQL SELECT funkciSQL SELECT funkciSQL SELECT funkcióóóóiiii

KonverziKonverziKonverziKonverzióóóós fs fs fs füüüüggvggvggvggvéééények (nyek (nyek (nyek (OracleOracleOracleOracle):):):):

TO_CHAR(TO_CHAR(TO_CHAR(TO_CHAR(szamszamszamszam) : sz) : sz) : sz) : száááám szm szm szm szööööveg tveg tveg tveg tíííípuspuspuspusúúúúra alakra alakra alakra alakííííttttáááásasasasa

TO_CHAR(dTO_CHAR(dTO_CHAR(dTO_CHAR(dáááátum, formtum, formtum, formtum, formáááátum) : dtum) : dtum) : dtum) : dáááátum sztum sztum sztum szööööveg tveg tveg tveg tíííípuspuspuspusúúúúra alakra alakra alakra alakííííttttáááásasasasa

TO_NUMBER(szTO_NUMBER(szTO_NUMBER(szTO_NUMBER(szööööveg, formveg, formveg, formveg, formáááátum) : sztum) : sztum) : sztum) : szööööveg szveg szveg szveg száááám tm tm tm tíííípusra alakpusra alakpusra alakpusra alakííííttttáááásasasasa

TO_DATE(szTO_DATE(szTO_DATE(szTO_DATE(szööööveg, formveg, formveg, formveg, formáááátum) : sztum) : sztum) : sztum) : szööööveg dveg dveg dveg dáááátum ttum ttum ttum tíííípusra alakpusra alakpusra alakpusra alakííííttttáááásasasasa

CAST(CAST(CAST(CAST(kifkifkifkif AS AS AS AS tipustipustipustipus) : tetsz) : tetsz) : tetsz) : tetszőőőőleges irleges irleges irleges iráááánynynynyúúúú konverzikonverzikonverzikonverzióóóó

CONVERT (szCONVERT (szCONVERT (szCONVERT (szööööveg, kveg, kveg, kveg, kóóóód1, kd1, kd1, kd1, kóóóód2) : kd2) : kd2) : kd2) : kóóóódkdkdkdkéééészletek kszletek kszletek kszletek köööözzzzöööötti tti tti tti konverzikonverzikonverzikonverzióóóó

DECODE (kif1, k2,k3,..) : kif1 DECODE (kif1, k2,k3,..) : kif1 DECODE (kif1, k2,k3,..) : kif1 DECODE (kif1, k2,k3,..) : kif1 éééértrtrtrtéééék konvertk konvertk konvertk konvertáááálllláááásasasasa

TRANSLATE(szTRANSLATE(szTRANSLATE(szTRANSLATE(szööööveg,k1,k2) : k1 cserveg,k1,k2) : k1 cserveg,k1,k2) : k1 cserveg,k1,k2) : k1 cserééééje k2je k2je k2je k2----re a szre a szre a szre a szöööövegben vegben vegben vegben GEIAL Kovács László

SQL hasznSQL hasznSQL hasznSQL hasznáááálatalatalatalata

Az SQL szabvAz SQL szabvAz SQL szabvAz SQL szabváááány ny ny ny éééés az egyes SQL implements az egyes SQL implements az egyes SQL implements az egyes SQL implementáááácicicicióóóókkkkszoros kszoros kszoros kszoros köööölcslcslcslcsöööönhatnhatnhatnhatáááásban sban sban sban áááállnak egymllnak egymllnak egymllnak egymáááássalssalssalssal

---- ismerni kell a szabvismerni kell a szabvismerni kell a szabvismerni kell a szabváááánytnytnytnyt---- ismerni kell a konkrismerni kell a konkrismerni kell a konkrismerni kell a konkréééét SQL felt SQL felt SQL felt SQL felüüüületetletetletetletet

- egyedi objektumokegyedi objektumokegyedi objektumokegyedi objektumok- egyedi operegyedi operegyedi operegyedi operáááátoroktoroktoroktorok- egyedi fegyedi fegyedi fegyedi füüüüggvggvggvggvéééényeknyeknyeknyek- egyedi kapcsolegyedi kapcsolegyedi kapcsolegyedi kapcsolóóóókkkk- egyedi paramegyedi paramegyedi paramegyedi paramééééterekterekterekterek- egyedi adattegyedi adattegyedi adattegyedi adattíííípusokpusokpusokpusok- elteltelteltéééérrrrőőőő operoperoperoperáááátoroktoroktoroktorok- hihihihiáááányznyznyznyzóóóó operoperoperoperáááátoroktoroktoroktorok- …………

FROM T1 OUTER JOIN T2 ON fFROM T1 = (+) T2 WHERE f

WHERE CTOD(‘2003.02.10’)…WHERE TO_DATE(‘2003.02.10’,…)WHERE CONVERT(‘2003.02.10’,…)WHERE {2003.02.0}…

ANSI SQL kompatibilitANSI SQL kompatibilitANSI SQL kompatibilitANSI SQL kompatibilitáááássss

A kA kA kA küüüüllllöööönbnbnbnböööözzzzőőőő RDBMSRDBMSRDBMSRDBMS----ekekekek egyedi SQL elemekkel is rendelkeznekegyedi SQL elemekkel is rendelkeznekegyedi SQL elemekkel is rendelkeznekegyedi SQL elemekkel is rendelkeznek

GEIAL Kovács László

Page 79: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

SQL jelentSQL jelentSQL jelentSQL jelentőőőősssséééégegegege

Az SQL ez egyik legfontosabb alaptechnolAz SQL ez egyik legfontosabb alaptechnolAz SQL ez egyik legfontosabb alaptechnolAz SQL ez egyik legfontosabb alaptechnolóóóógia az gia az gia az gia az informatikinformatikinformatikinformatikáááá----banbanbanban. Az SQL fejl. Az SQL fejl. Az SQL fejl. Az SQL fejlőőőőddddéééése sorse sorse sorse soráááán egyre tn egyre tn egyre tn egyre tööööbb funkcibb funkcibb funkcibb funkcióóóót integrt integrt integrt integráááál l l l magmagmagmagáááába, globba, globba, globba, globáááális adatkezellis adatkezellis adatkezellis adatkezeléééés fels fels fels feléééé halad.halad.halad.halad.

(Vikram Vaswani)

A legkeresettebb ismeretek egyike az IT A legkeresettebb ismeretek egyike az IT A legkeresettebb ismeretek egyike az IT A legkeresettebb ismeretek egyike az IT áááállllllllááááshirdetshirdetshirdetshirdetéééésekben sekben sekben sekben az SQL,amely stabilan tartja magaz SQL,amely stabilan tartja magaz SQL,amely stabilan tartja magaz SQL,amely stabilan tartja magáááát (mellette t (mellette t (mellette t (mellette a C++, Java, PHP, UNIX va C++, Java, PHP, UNIX va C++, Java, PHP, UNIX va C++, Java, PHP, UNIX vááááltakoznak)ltakoznak)ltakoznak)ltakoznak)

(CWJobs.UK)

Kb. Kb. Kb. Kb. éééévi 10%vi 10%vi 10%vi 10%----os piacnos piacnos piacnos piacnöööövekedvekedvekedvekedéééés s s s az az az az adatbadatbadatbadatbááááziskezelziskezelziskezelziskezelőőőőknknknknééééllll, , , , kb. 8 billikb. 8 billikb. 8 billikb. 8 billióóóó $ 2005$ 2005$ 2005$ 2005----benbenbenben

(Gartner Group)

SzSzSzSzáááámos feladat specifikus SQL DBMSmos feladat specifikus SQL DBMSmos feladat specifikus SQL DBMSmos feladat specifikus SQL DBMSlllléééétezik a piacontezik a piacontezik a piacontezik a piacon

GEIAL Kovács László

Page 80: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

Az SQL nyelv speciAz SQL nyelv speciAz SQL nyelv speciAz SQL nyelv speciáááális elemeilis elemeilis elemeilis elemei

KovKovKovKováááács Lcs Lcs Lcs Láááászlszlszlszlóóóó

SQL szabvSQL szabvSQL szabvSQL szabváááányoknyoknyoknyok

1986: ANSI SQL1986: ANSI SQL1986: ANSI SQL1986: ANSI SQL1987: ISO SQL1987: ISO SQL1987: ISO SQL1987: ISO SQL1989: ANSI891989: ANSI891989: ANSI891989: ANSI891992: SQL921992: SQL921992: SQL921992: SQL921999: SQL19991999: SQL19991999: SQL19991999: SQL19992003: SQL20032003: SQL20032003: SQL20032003: SQL20032007: ?2007: ?2007: ?2007: ?

TTTTööööbbbbbbbb----lllléééépcspcspcspcsőőőős folyamat a fejls folyamat a fejls folyamat a fejls folyamat a fejlőőőőddddéééésesesese

alap DDL, DML, DQL, alap DDL, DML, DQL, alap DDL, DML, DQL, alap DDL, DML, DQL, tranzakcitranzakcitranzakcitranzakcióóóó,INDEX,INDEX,INDEX,INDEX

integritintegritintegritintegritáááási elemek,si elemek,si elemek,si elemek,vvvvéééédelem,VIEWdelem,VIEWdelem,VIEWdelem,VIEW

DOMAIN, CONSTRAINTS,DOMAIN, CONSTRAINTS,DOMAIN, CONSTRAINTS,DOMAIN, CONSTRAINTS,specspecspecspec. t. t. t. tááááblblblbláááák, k, k, k, SELECTSELECTSELECTSELECT----éééértrtrtrtéééékkkk

OO elemek, aktOO elemek, aktOO elemek, aktOO elemek, aktíííív v v v elemek,kezelelemek,kezelelemek,kezelelemek,kezelőőőő fv.fv.fv.fv.----ekekekek, , , , programozprogramozprogramozprogramozáááás,s,s,s,úúúúj adattj adattj adattj adattíííípuspuspuspus

OLAP, XML,OLAP, XML,OLAP, XML,OLAP, XML,úúúúj adattj adattj adattj adattíííípus pus pus pus SQLSQLSQLSQL

Page 81: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

SQL szabvSQL szabvSQL szabvSQL szabváááányainyainyainyai

Az SQL szabvAz SQL szabvAz SQL szabvAz SQL szabváááány tny tny tny tööööbb, mint az alap DDL, DML, DQL.bb, mint az alap DDL, DML, DQL.bb, mint az alap DDL, DML, DQL.bb, mint az alap DDL, DML, DQL.

modulokmodulokmodulokmodulok

SQL/SQL/SQL/SQL/FrameworkFrameworkFrameworkFramework :fogalmi keretek:fogalmi keretek:fogalmi keretek:fogalmi keretekSQL/SQL/SQL/SQL/FoundationFoundationFoundationFoundation :alap utas:alap utas:alap utas:alap utasííííttttáááásoksoksoksokSQL/SQL/SQL/SQL/BindingsBindingsBindingsBindings :be:be:be:beáááágyazott SQLgyazott SQLgyazott SQLgyazott SQLSQL/CLISQL/CLISQL/CLISQL/CLI :ODBC:ODBC:ODBC:ODBCSQL/PSMSQL/PSMSQL/PSMSQL/PSM :t:t:t:táááárolt eljrolt eljrolt eljrolt eljáááárrrráááásoksoksoksokSQL/OLAPSQL/OLAPSQL/OLAPSQL/OLAP :elemz:elemz:elemz:elemzéééési funkcisi funkcisi funkcisi funkcióóóók k k k SQL/SQL/SQL/SQL/TransactionTransactionTransactionTransaction :tranzakci:tranzakci:tranzakci:tranzakcióóóó menedzsermenedzsermenedzsermenedzserSQL/SQL/SQL/SQL/TemporalTemporalTemporalTemporal :ideiglenes adatok:ideiglenes adatok:ideiglenes adatok:ideiglenes adatokSQL/SQL/SQL/SQL/ObjectsObjectsObjectsObjects :OO elvek:OO elvek:OO elvek:OO elvekSQL/MEDSQL/MEDSQL/MEDSQL/MED :k:k:k:küüüülslslslsőőőő áááállomllomllomllomáááányoknyoknyoknyokSQL/OLBSQL/OLBSQL/OLBSQL/OLB :be:be:be:beáááágyazott JSQLgyazott JSQLgyazott JSQLgyazott JSQLSQL/SQL/SQL/SQL/SchemataSchemataSchemataSchemata :s:s:s:sééééma kezelma kezelma kezelma kezelééééssssSQL/JRTSQL/JRTSQL/JRTSQL/JRT :Java fel:Java fel:Java fel:Java felüüüületletletletSQL/XMLSQL/XMLSQL/XMLSQL/XML :XML fel:XML fel:XML fel:XML felüüüületletletletSQL/MMSQL/MMSQL/MMSQL/MM :multim:multim:multim:multiméééédia kezeldia kezeldia kezeldia kezelééééssss

SQL89: 300SQL89: 300SQL89: 300SQL89: 300SQL92: 1100SQL92: 1100SQL92: 1100SQL92: 1100SQL99: 2000SQL99: 2000SQL99: 2000SQL99: 2000SQL03: 3600SQL03: 3600SQL03: 3600SQL03: 3600

terjedelemterjedelemterjedelemterjedelem

SQL hasznSQL hasznSQL hasznSQL hasznáááálatalatalatalata

Az SQL tAz SQL tAz SQL tAz SQL tööööbb, mint a SELECT parancsbb, mint a SELECT parancsbb, mint a SELECT parancsbb, mint a SELECT parancs

---- ttttááááblablablabla---- viewviewviewview---- domaindomaindomaindomain---- snapshotsnapshotsnapshotsnapshot---- triggertriggertriggertrigger---- jobjobjobjob---- ttttáááárolt eljrolt eljrolt eljrolt eljáááárrrráááássss---- ttttáááárolt frolt frolt frolt füüüüggvggvggvggvéééénynynyny---- felhasznfelhasznfelhasznfelhasznáááállllóóóó---- profileprofileprofileprofile---- rolerolerolerole---- schemaschemaschemaschema---- databasedatabasedatabasedatabase linklinklinklink---- replicationreplicationreplicationreplication---- clusterclusterclustercluster---- locklocklocklock............

interaktinteraktinteraktinteraktíííívvvv programprogramprogramprogram

CLICLICLICLI----SQLSQLSQLSQLEEEE----SQLSQLSQLSQL

SQLSQLSQLSQL

PLPLPLPL----SQLSQLSQLSQLTTTT----SQLSQLSQLSQL

OracleOracleOracleOracle SQL referencia: SQL referencia: SQL referencia: SQL referencia: wwwwwwwwwwww----db.iit.unidb.iit.unidb.iit.unidb.iit.uni----miskolc.humiskolc.humiskolc.humiskolc.hu////…………

Page 82: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

Az adatok tAz adatok tAz adatok tAz adatok táááárolrolrolroláááása eltsa eltsa eltsa eltéééérrrrőőőő mmmmóóóódokon, eltdokon, eltdokon, eltdokon, eltéééérrrrőőőő ccccééééllal tllal tllal tllal töööörtrtrtrtéééénhetnhetnhetnhet

ttttááááblablablabla

alaptalaptalaptalaptááááblablablablannnnéééézetizetizetizeti

CREATE VIEWCREATE VIEWCREATE VIEWCREATE VIEWszszszszáááármaztatottrmaztatottrmaztatottrmaztatottCREATE SNAPSHOTCREATE SNAPSHOTCREATE SNAPSHOTCREATE SNAPSHOT

perzisztensperzisztensperzisztensperzisztensCREATE TABLECREATE TABLECREATE TABLECREATE TABLE

globglobglobglobáááálisan ideigleneslisan ideigleneslisan ideigleneslisan ideiglenesCREATE GLOBAL TEMPORARY TABLECREATE GLOBAL TEMPORARY TABLECREATE GLOBAL TEMPORARY TABLECREATE GLOBAL TEMPORARY TABLE

loklokloklokááááisanisanisanisan ideiglenesideiglenesideiglenesideiglenesCREATE LOCAL TEMPORARY TABLECREATE LOCAL TEMPORARY TABLECREATE LOCAL TEMPORARY TABLECREATE LOCAL TEMPORARY TABLE

deklardeklardeklardeklarááááltltltlt

SQL tSQL tSQL tSQL tááááblatblatblatblatíííípusokpusokpusokpusok

SQL VIEW objektumSQL VIEW objektumSQL VIEW objektumSQL VIEW objektum

SzSzSzSzáááármaztatott trmaztatott trmaztatott trmaztatott tááááblblblbláááák haszna:k haszna:k haszna:k haszna:---- parancs egyszerparancs egyszerparancs egyszerparancs egyszerűűűűssssííííttttééééssss---- egyszeregyszeregyszeregyszerűűűűbb vbb vbb vbb véééégrehajtgrehajtgrehajtgrehajtáááássss---- vvvvéééédelemvdelemvdelemvdelemv

CREATE VIEW CREATE VIEW CREATE VIEW CREATE VIEW vnvnvnvnéééévvvv (mn(mn(mn(mnéééév1, v1, v1, v1, …………) AS SELECT ) AS SELECT ) AS SELECT ) AS SELECT ………… ;;;;

CREATE VIEW BETEGSZAB AS SELECT CREATE VIEW BETEGSZAB AS SELECT CREATE VIEW BETEGSZAB AS SELECT CREATE VIEW BETEGSZAB AS SELECT nevnevnevnev, , , , beosztasbeosztasbeosztasbeosztas, , , , reszlegreszlegreszlegreszlegFROM dolgozok WHERE status = 2;FROM dolgozok WHERE status = 2;FROM dolgozok WHERE status = 2;FROM dolgozok WHERE status = 2;

Csak az elCsak az elCsak az elCsak az előőőőáááállllllllííííttttóóóó SQL parancs tSQL parancs tSQL parancs tSQL parancs táááárolrolrolrolóóóódik, az adattdik, az adattdik, az adattdik, az adattáááábla nem bla nem bla nem bla nem

HivatkozHivatkozHivatkozHivatkozááááskor skor skor skor ááááll elll elll elll előőőő a tartaloma tartaloma tartaloma tartalom---- aktuaktuaktuaktuáááálislislislis---- lasslasslasslassúúúú lehetlehetlehetlehet

Page 83: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

SQL VIEW objektumSQL VIEW objektumSQL VIEW objektumSQL VIEW objektum

VIEW mVIEW mVIEW mVIEW móóóódosdosdosdosííííttttáááásrasrasrasra

Page 84: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

SQL SQL SQL SQL snapshotsnapshotsnapshotsnapshot

SQL hatSQL hatSQL hatSQL hatéééékonyskonyskonyskonysáááági elemeigi elemeigi elemeigi elemei

HozzHozzHozzHozzááááfffféééérrrréééés hats hats hats hatéééékonyskonyskonyskonysáááágagagaga

ttttááááblablablabla

SELECT ..SELECT ..SELECT ..SELECT ..

UPDATE ..UPDATE ..UPDATE ..UPDATE ..

CREATE TABLE t1 (m1 CREATE TABLE t1 (m1 CREATE TABLE t1 (m1 CREATE TABLE t1 (m1 NumberNumberNumberNumber(3) PRIMARY KEY, m2(3) PRIMARY KEY, m2(3) PRIMARY KEY, m2(3) PRIMARY KEY, m2………… ))))CREATE INDEX i1 ON t1(m2 ASC|DESC) CREATE INDEX i1 ON t1(m2 ASC|DESC) CREATE INDEX i1 ON t1(m2 ASC|DESC) CREATE INDEX i1 ON t1(m2 ASC|DESC)

CREATE INDEX NEVEK ON DOLGOZOK(NEV)CREATE INDEX NEVEK ON DOLGOZOK(NEV)CREATE INDEX NEVEK ON DOLGOZOK(NEV)CREATE INDEX NEVEK ON DOLGOZOK(NEV)

indexindexindexindex lehet explicit lehet explicit lehet explicit lehet explicit éééés implicit s implicit s implicit s implicit index lindex lindex lindex léééétrehoztrehoztrehoztrehozáááássss

Page 85: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

INDEX INDEX INDEX INDEX

ExplicitExplicitExplicitExplicit

implicitimplicitimplicitimplicit

SQL vSQL vSQL vSQL véééédelmi elemeidelmi elemeidelmi elemeidelmi elemei

Adat hozzAdat hozzAdat hozzAdat hozzááááfffféééérrrréééés vs vs vs véééédelemdelemdelemdelem

objektumobjektumobjektumobjektum

SELECT ..SELECT ..SELECT ..SELECT ..

UPDATE ..UPDATE ..UPDATE ..UPDATE ..

jog adomjog adomjog adomjog adomáááányoznyoznyoznyozáááása: GRANT jog ON objektum TO felhasznsa: GRANT jog ON objektum TO felhasznsa: GRANT jog ON objektum TO felhasznsa: GRANT jog ON objektum TO felhasznáááállllóóóójog visszavonjog visszavonjog visszavonjog visszavonáááása: REVOKE jog ON objektum FROM felhasznsa: REVOKE jog ON objektum FROM felhasznsa: REVOKE jog ON objektum FROM felhasznsa: REVOKE jog ON objektum FROM felhasznáááállllóóóó

Page 86: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

SQL vSQL vSQL vSQL véééédelmi elemeidelmi elemeidelmi elemeidelmi elemei

HozzHozzHozzHozzááááfffféééérrrréééés vs vs vs véééédelmi utasdelmi utasdelmi utasdelmi utasííííttttáááásoksoksoksok

egy objektum (objektum jog): egy objektum (objektum jog): egy objektum (objektum jog): egy objektum (objektum jog): GRANT SELECT|INSERT|UPDATE|DELETE ON objektum TO GRANT SELECT|INSERT|UPDATE|DELETE ON objektum TO GRANT SELECT|INSERT|UPDATE|DELETE ON objektum TO GRANT SELECT|INSERT|UPDATE|DELETE ON objektum TO felhfelhfelhfelh

tetsztetsztetsztetszőőőőleges objektum (privilleges objektum (privilleges objektum (privilleges objektum (priviléééégium):gium):gium):gium):GRANT mGRANT mGRANT mGRANT műűűűvelet TO velet TO velet TO velet TO felhfelhfelhfelh

mindenkinek engedmindenkinek engedmindenkinek engedmindenkinek engedéééélyezve:lyezve:lyezve:lyezve:GRANT mGRANT mGRANT mGRANT műűűűvelet ON velet ON velet ON velet ON ………… TO PUBLICTO PUBLICTO PUBLICTO PUBLIC

a kapott jog tova kapott jog tova kapott jog tova kapott jog továááábbadhatbbadhatbbadhatbbadhatóóóó::::GRANT GRANT GRANT GRANT ………… TO TO TO TO ………… WITH GRANT OPTION | ADMIN OPTIONWITH GRANT OPTION | ADMIN OPTIONWITH GRANT OPTION | ADMIN OPTIONWITH GRANT OPTION | ADMIN OPTION

adott jog visszavonadott jog visszavonadott jog visszavonadott jog visszavonáááása:sa:sa:sa:REVOKE REVOKE REVOKE REVOKE ………… FROM FROM FROM FROM …………

SQL sSQL sSQL sSQL sééééma elemeima elemeima elemeima elemei

Objektum azonosObjektum azonosObjektum azonosObjektum azonosííííttttáááásasasasa

objektumobjektumobjektumobjektum

SELECT ..SELECT ..SELECT ..SELECT ..

UPDATE ..UPDATE ..UPDATE ..UPDATE ..

teljes azonosteljes azonosteljes azonosteljes azonosííííttttáááás: adatbs: adatbs: adatbs: adatbáááázis.katalzis.katalzis.katalzis.katalóóóógus.sgus.sgus.sgus.sééééma.objektum1ma.objektum1ma.objektum1ma.objektum1…………

ORA1.INFO.TEREMF.ORAK.KEZDESORA1.INFO.TEREMF.ORAK.KEZDESORA1.INFO.TEREMF.ORAK.KEZDESORA1.INFO.TEREMF.ORAK.KEZDES

sssséééémamamama

katalkatalkatalkatalóóóógusgusgusgus

adatbadatbadatbadatbááááziszisziszis

Page 87: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

SQL sSQL sSQL sSQL sééééma elemeima elemeima elemeima elemei

SSSSééééma: objektumok logikai tma: objektumok logikai tma: objektumok logikai tma: objektumok logikai táááárolrolrolrolóóóó egysegysegysegyséééége (egy tulajdonosa van)ge (egy tulajdonosa van)ge (egy tulajdonosa van)ge (egy tulajdonosa van)

CREATE SCHEMA CREATE SCHEMA CREATE SCHEMA CREATE SCHEMA snsnsnsnéééévvvv paramparamparamparamééééterekterekterekterekDROP SCHEMA DROP SCHEMA DROP SCHEMA DROP SCHEMA snsnsnsnéééévvvv CASCADECASCADECASCADECASCADE

egy felhasznegy felhasznegy felhasznegy felhasznáááállllóóóónak tnak tnak tnak tööööbb sbb sbb sbb séééémmmmáááája is lehetja is lehetja is lehetja is lehet

KatalKatalKatalKatalóóóógus: sgus: sgus: sgus: séééémmmmáááák adminisztrk adminisztrk adminisztrk adminisztráááácicicicióóóós egyss egyss egyss egyséééégegegege

tartalmaz egy defintartalmaz egy defintartalmaz egy defintartalmaz egy definíííícicicicióóóós s s s éééés egy informs egy informs egy informs egy informáááácicicicióóóós ss ss ss séééémmmmáááátttt

DEFINITION_SCHEMA: leDEFINITION_SCHEMA: leDEFINITION_SCHEMA: leDEFINITION_SCHEMA: leíííírrrróóóó bbbbáááázistzistzistzistááááblblblbláááák (pl. USERS, SCHEMATA,k (pl. USERS, SCHEMATA,k (pl. USERS, SCHEMATA,k (pl. USERS, SCHEMATA,TABLES, VIEWS, TABLE_PRIVILEGES,TABLES, VIEWS, TABLE_PRIVILEGES,TABLES, VIEWS, TABLE_PRIVILEGES,TABLES, VIEWS, TABLE_PRIVILEGES,…………))))

a rendszernek sza rendszernek sza rendszernek sza rendszernek szóóóól l l l

INFORMATION_SCHEMA: informINFORMATION_SCHEMA: informINFORMATION_SCHEMA: informINFORMATION_SCHEMA: informáááácicicicióóóós ns ns ns néééézetek (pl. TABLES, VIEWS,zetek (pl. TABLES, VIEWS,zetek (pl. TABLES, VIEWS,zetek (pl. TABLES, VIEWS,COLUMNS,TABLE_CONSTRAINTS,COLUMNS,TABLE_CONSTRAINTS,COLUMNS,TABLE_CONSTRAINTS,COLUMNS,TABLE_CONSTRAINTS,…………) ) ) )

a felhaszna felhaszna felhaszna felhasznáááállllóóóóknak szknak szknak szknak szóóóóllll

SQL sSQL sSQL sSQL sééééma elemeima elemeima elemeima elemei

CATALOGCATALOGCATALOGCATALOG

DEFINITION_SCHEMADEFINITION_SCHEMADEFINITION_SCHEMADEFINITION_SCHEMASchemaSchemaSchemaSchema AAAA

INFORMATION_SCHEMAINFORMATION_SCHEMAINFORMATION_SCHEMAINFORMATION_SCHEMA

T:ARUKT:ARUKT:ARUKT:ARUKT:TABLEST:TABLEST:TABLEST:TABLES V:TABLESV:TABLESV:TABLESV:TABLES

USER:UUSER:UUSER:UUSER:U

T:VIEWST:VIEWST:VIEWST:VIEWS V:VIEWSV:VIEWSV:VIEWSV:VIEWS

SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEMA.TABLES

Page 88: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

SQL elemeiSQL elemeiSQL elemeiSQL elemei

DOMAIN: egyedi, megkDOMAIN: egyedi, megkDOMAIN: egyedi, megkDOMAIN: egyedi, megküüüüllllöööönbnbnbnbööööztetztetztetztetőőőő adattadattadattadattíííípuspuspuspusttttáááábla mezbla mezbla mezbla mezőőőőjjjjééééhez rendelhethez rendelhethez rendelhethez rendelhetőőőő ttttíííípuskpuskpuskpuskéééént nt nt nt

Az SQL kAz SQL kAz SQL kAz SQL köööözelzelzelzelíííít az ert az ert az ert az erőőőősen tsen tsen tsen tíííípusos nyelvekhezpusos nyelvekhezpusos nyelvekhezpusos nyelvekhez

CREATE DOMAIN CREATE DOMAIN CREATE DOMAIN CREATE DOMAIN dndndndnéééévvvv AS tAS tAS tAS tíííípus CHECK megkpus CHECK megkpus CHECK megkpus CHECK megkööööttttééééssss

elelelelőőőőnyei:nyei:nyei:nyei:---- automatikus megkautomatikus megkautomatikus megkautomatikus megkööööttttééééseksekseksek---- jelentjelentjelentjelentéééésksksksköööözelizelizelizeli nevek nevek nevek nevek

CREATE DOMAIN CREATE DOMAIN CREATE DOMAIN CREATE DOMAIN eletkoreletkoreletkoreletkor AS INTEGER CHECK AS INTEGER CHECK AS INTEGER CHECK AS INTEGER CHECK (VALUE BETWEEN 18 AND 120);(VALUE BETWEEN 18 AND 120);(VALUE BETWEEN 18 AND 120);(VALUE BETWEEN 18 AND 120);

CREATE TABLE DOLGOZO (CREATE TABLE DOLGOZO (CREATE TABLE DOLGOZO (CREATE TABLE DOLGOZO (kodkodkodkod INTEGER PRIMARY KEY,INTEGER PRIMARY KEY,INTEGER PRIMARY KEY,INTEGER PRIMARY KEY,.., kor .., kor .., kor .., kor eletkoreletkoreletkoreletkor,..),..),..),..)

Az OO elemek bevonAz OO elemek bevonAz OO elemek bevonAz OO elemek bevonáááássssáááával jelentval jelentval jelentval jelentőőőősssséééége csge csge csge csöööökkentkkentkkentkkent

SQL elemeiSQL elemeiSQL elemeiSQL elemei

ASSERTION: Az ASSERTION: Az ASSERTION: Az ASSERTION: Az öööösszetett, tsszetett, tsszetett, tsszetett, tööööbbbbbbbb----ttttááááblblblbláááás integrits integrits integrits integritáááási feltsi feltsi feltsi feltéééételek telek telek telek deklaratdeklaratdeklaratdeklaratíííív megadv megadv megadv megadáááási msi msi msi móóóódjadjadjadja

ididididőőőőigigigigéééényes vnyes vnyes vnyes véééégrehajtgrehajtgrehajtgrehajtáááás:s:s:s:---- minden SQL DML parancs utminden SQL DML parancs utminden SQL DML parancs utminden SQL DML parancs utáááánnnn---- csak az csak az csak az csak az éééérintett trintett trintett trintett tááááblblblbláááák DML parancsai utk DML parancsai utk DML parancsai utk DML parancsai utáááánnnn

CREATE ASSERTION nCREATE ASSERTION nCREATE ASSERTION nCREATE ASSERTION néééév CHECK (feltv CHECK (feltv CHECK (feltv CHECK (feltéééétel)tel)tel)tel)

a pa pa pa péééénztnztnztnztáááárankrankrankrankéééénti knti knti knti kéééészletvszletvszletvszletvááááltozltozltozltozáááássssegyezzen meg a forgalommalegyezzen meg a forgalommalegyezzen meg a forgalommalegyezzen meg a forgalommalCREATE VIEW V1 AS SELECT kCREATE VIEW V1 AS SELECT kCREATE VIEW V1 AS SELECT kCREATE VIEW V1 AS SELECT kóóóód, d, d, d, SUM(COALESCE(F.SUM(COALESCE(F.SUM(COALESCE(F.SUM(COALESCE(F.éééértrtrtrtéééék,0)) osszk,0)) osszk,0)) osszk,0)) osszFROM forgalom F RIGTH OUTER JOIN pFROM forgalom F RIGTH OUTER JOIN pFROM forgalom F RIGTH OUTER JOIN pFROM forgalom F RIGTH OUTER JOIN péééénztnztnztnztáááárrrrP ON P.kP ON P.kP ON P.kP ON P.kóóóód = d = d = d = F.ptF.ptF.ptF.ptáááárrrr GROUP BY kGROUP BY kGROUP BY kGROUP BY kóóóód;d;d;d;

CREATE ASSERTION A1 CHECK ( NOT EXISTSCREATE ASSERTION A1 CHECK ( NOT EXISTSCREATE ASSERTION A1 CHECK ( NOT EXISTSCREATE ASSERTION A1 CHECK ( NOT EXISTS(SELECT P.k(SELECT P.k(SELECT P.k(SELECT P.kóóóód FROM pd FROM pd FROM pd FROM péééénztnztnztnztáááár P INNER r P INNER r P INNER r P INNER JOIN V1 ON V1.kJOIN V1 ON V1.kJOIN V1 ON V1.kJOIN V1 ON V1.kóóóód = P.kd = P.kd = P.kd = P.kóóóód WHERE d WHERE d WHERE d WHERE (P.z(P.z(P.z(P.záááárrrróóóó----P.nyitP.nyitP.nyitP.nyitóóóó) <> v1.k) <> v1.k) <> v1.k) <> v1.kóóóód))d))d))d))

forgalomforgalomforgalomforgalom

ppppéééénztnztnztnztáááárrrr

ptptptptáááárrrr éééértrtrtrtéééékkkk UidUidUidUid

kkkkóóóódddd nyitnyitnyitnyitóóóó zzzzáááárrrróóóó

Page 89: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

SQL tranzakciSQL tranzakciSQL tranzakciSQL tranzakcióóóó elemeielemeielemeielemei

TranzakciTranzakciTranzakciTranzakcióóóó elemeielemeielemeielemei

A konzisztens A konzisztens A konzisztens A konzisztens áááállapot elllapot elllapot elllapot eléééérrrréééésssséééére tre tre tre tööööbb mbb mbb mbb műűűűveletnek egyveletnek egyveletnek egyveletnek együüüüttesenttesenttesenttesenkell lefutniakell lefutniakell lefutniakell lefutniatranzakcitranzakcitranzakcitranzakcióóóó: adatb: adatb: adatb: adatbáááázis mzis mzis mzis műűűűveletek egysveletek egysveletek egysveletek egyséééégkgkgkgkéééént kezelt sorant kezelt sorant kezelt sorant kezelt sora

tranzakcitranzakcitranzakcitranzakcióóóó

elfogadelfogadelfogadelfogad elvetelvetelvetelvet

COMMITCOMMITCOMMITCOMMIT ROLLBACKROLLBACKROLLBACKROLLBACK

INSERT INTO INSERT INTO INSERT INTO INSERT INTO dolgozodolgozodolgozodolgozo VALUES(1,VALUES(1,VALUES(1,VALUES(1,…………););););UPDATE UPDATE UPDATE UPDATE dolgozodolgozodolgozodolgozo SET fiz = 0;SET fiz = 0;SET fiz = 0;SET fiz = 0;ROLLBACK;ROLLBACK;ROLLBACK;ROLLBACK;

egyes megyes megyes megyes műűűűveletek (pl. DDL) veletek (pl. DDL) veletek (pl. DDL) veletek (pl. DDL) rrrröööögtgtgtgtöööön vn vn vn véééégrehajtgrehajtgrehajtgrehajtóóóódnakdnakdnakdnak

SQL lekSQL lekSQL lekSQL lekéééérdezrdezrdezrdezéééés elemeis elemeis elemeis elemei

A feltA feltA feltA feltéééételes megjelenteles megjelenteles megjelenteles megjelenííííttttéééésre is igsre is igsre is igsre is igéééény jelentkezik, ezny jelentkezik, ezny jelentkezik, ezny jelentkezik, ezéééért rt rt rt ppppóóóótolttolttolttoltáááák ezt a hik ezt a hik ezt a hik ezt a hiáááányossnyossnyossnyossáááágot:got:got:got:

CASE CASE CASE CASE WHEN feltWHEN feltWHEN feltWHEN feltéééétel1 THEN kif1;tel1 THEN kif1;tel1 THEN kif1;tel1 THEN kif1;WHEN feltWHEN feltWHEN feltWHEN feltéééétel2 THEN kif2;tel2 THEN kif2;tel2 THEN kif2;tel2 THEN kif2;…………ELSE ELSE ELSE ELSE kifkifkifkif;;;;

ENDENDENDEND

A SELECT parancs projekciA SELECT parancs projekciA SELECT parancs projekciA SELECT parancs projekcióóóós rs rs rs réééészszszszéééében hasznben hasznben hasznben hasznáááálhatlhatlhatlhatóóóó

SELECT nSELECT nSELECT nSELECT néééév, fiz * (CASE WHEN fiz<1000 THEN 0.1; v, fiz * (CASE WHEN fiz<1000 THEN 0.1; v, fiz * (CASE WHEN fiz<1000 THEN 0.1; v, fiz * (CASE WHEN fiz<1000 THEN 0.1; WHEN fiz BETWEEN 1000 AND 5000 THEN 0.2; ELSE 0.3; WHEN fiz BETWEEN 1000 AND 5000 THEN 0.2; ELSE 0.3; WHEN fiz BETWEEN 1000 AND 5000 THEN 0.2; ELSE 0.3; WHEN fiz BETWEEN 1000 AND 5000 THEN 0.2; ELSE 0.3; END) adEND) adEND) adEND) adóóóó FROM dolgozok; FROM dolgozok; FROM dolgozok; FROM dolgozok;

A NULL A NULL A NULL A NULL éééértrtrtrtéééék kezelk kezelk kezelk kezeléééésssséééére:re:re:re:

COALESCE(kif1,kif2,kif3,COALESCE(kif1,kif2,kif3,COALESCE(kif1,kif2,kif3,COALESCE(kif1,kif2,kif3,…………))))

Az elsAz elsAz elsAz elsőőőő nem NULL nem NULL nem NULL nem NULL éééértrtrtrtééééket adja visszaket adja visszaket adja visszaket adja vissza

Page 90: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

11

NULL NULL NULL NULL éééértrtrtrtéééék kezelk kezelk kezelk kezeléééésesesese

NULL NULL NULL NULL éééértrtrtrtéééék NVLk NVLk NVLk NVL

Page 91: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

KovKovKovKováááács Lcs Lcs Lcs Láááászlszlszlszlóóóó

ME GEIALME GEIALME GEIALME GEIAL ddddr r r r KovKovKovKováááács cs cs cs LLLLáááászlszlszlszlóóóó

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

A szoftver az egyik legA szoftver az egyik legA szoftver az egyik legA szoftver az egyik legöööösszetettebb sszetettebb sszetettebb sszetettebb éééés legmegbs legmegbs legmegbs legmegbíííízhatatlanabbzhatatlanabbzhatatlanabbzhatatlanabbipari termipari termipari termipari terméééék k k k

SzSzSzSzáááámmmmííííttttáááási hibsi hibsi hibsi hibáááákkkkMars Mars Mars Mars ClimateClimateClimateClimate OrbiterOrbiterOrbiterOrbiter (1999)(1999)(1999)(1999)ArianeArianeArianeAriane 5 rak5 rak5 rak5 rakééééta (1996)ta (1996)ta (1996)ta (1996)

VVVVéééédelmi hidelmi hidelmi hidelmi hiáááányossnyossnyossnyossáááágokgokgokgokILOVEYOU (2000), $10 billiILOVEYOU (2000), $10 billiILOVEYOU (2000), $10 billiILOVEYOU (2000), $10 billióóóóSQLslammerSQLslammerSQLslammerSQLslammer (2003)(2003)(2003)(2003)

AdatkezelAdatkezelAdatkezelAdatkezelééééssssY2000 Y2000 Y2000 Y2000 éééés Y2038 s Y2038 s Y2038 s Y2038

KezelKezelKezelKezelőőőő felfelfelfelüüüület hilet hilet hilet hiáááányossnyossnyossnyossáááágaigaigaigai…………

GEIAL Kovács László

Page 92: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

A tervezA tervezA tervezA tervezééééssel eltssel eltssel eltssel eltööööltltltltöööött idtt idtt idtt időőőő sohasem elvesztegetett idsohasem elvesztegetett idsohasem elvesztegetett idsohasem elvesztegetett időőőő

AdatbAdatbAdatbAdatbáááázisoknzisoknzisoknzisoknáááál a javl a javl a javl a javííííttttáááás ks ks ks kööööltsltsltsltséééége a tervezge a tervezge a tervezge a tervezéééési hisi hisi hisi hiáááányossnyossnyossnyossáááágokngokngokngoknáááállllegy nagysegy nagysegy nagysegy nagysáááágrenddel nagyobb mint a tgrenddel nagyobb mint a tgrenddel nagyobb mint a tgrenddel nagyobb mint a tööööbbi hiba esetbbi hiba esetbbi hiba esetbbi hiba esetéééébenbenbenben

FailureFailureFailureFailure is is is is notnotnotnot anananan optionoptionoptionoption. . . . ItItItIt is a is a is a is a keykeykeykey part part part part ofofofof a software.a software.a software.a software.

Mire kell Mire kell Mire kell Mire kell üüüügyelni?gyelni?gyelni?gyelni?

- minden informminden informminden informminden informáááácicicicióóóóelem meglegyenelem meglegyenelem meglegyenelem meglegyen- beszbeszbeszbeszéééédes elnevezdes elnevezdes elnevezdes elnevezééééseksekseksek- éééérvrvrvrvéééényes adattnyes adattnyes adattnyes adattíííípusokpusokpusokpusok- éééérvrvrvrvéééényes kapcsolatoknyes kapcsolatoknyes kapcsolatoknyes kapcsolatok- éééérvrvrvrvéééényes integritnyes integritnyes integritnyes integritáááási elemeksi elemeksi elemeksi elemek- kezelkezelkezelkezeléééés biztonss biztonss biztonss biztonsáááágagagaga- hathathathatéééékonyskonyskonyskonysáááágggg- vvvvéééédelemdelemdelemdelem- …………

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

Az adatbAz adatbAz adatbAz adatbáááázis tervezzis tervezzis tervezzis tervezéééésnsnsnsnéééél, az egyik jl, az egyik jl, az egyik jl, az egyik jóóóól formalizl formalizl formalizl formalizáááálhatlhatlhatlhatóóóó elemelemelemelema redundancia kezela redundancia kezela redundancia kezela redundancia kezeléééése se se se

redundancia: informredundancia: informredundancia: informredundancia: informáááácicicicióóóó ismismismisméééétltltltlőőőőddddéééésesesese

hhhháááátrtrtrtráááányai:nyai:nyai:nyai:---- beszbeszbeszbeszúúúúrrrráááási anomsi anomsi anomsi anomáááálialialialia---- mmmmóóóódosdosdosdosííííttttáááási anomsi anomsi anomsi anomáááálialialialia---- ttttöööörlrlrlrléééési anomsi anomsi anomsi anomáááálialialialia

---- helyfoglalhelyfoglalhelyfoglalhelyfoglaláááássss

dkod uticél dcím befizetesdnév

1

3

1

Eger

Eger

Ózd Peter

Antal

Peter Miskolc

Baja

Miskolc 2

5

3

elelelelőőőőnyei:nyei:nyei:nyei:---- eleleleléééérrrréééési gyorsassi gyorsassi gyorsassi gyorsasáááágggg---- hibathibathibathibatűűűűrrrrééééssss

ccccéééél: szabl: szabl: szabl: szabáááályozott, minimlyozott, minimlyozott, minimlyozott, minimáááális redundancialis redundancialis redundancialis redundancia

GEIAL Kovács László

Page 93: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

redundancia oka: mezredundancia oka: mezredundancia oka: mezredundancia oka: mezőőőők kk kk kk köööözzzzöööötti tti tti tti éééértrtrtrtéééékkkk----ffffüüüüggggggggőőőősssséééég g g g

dkod uticél dcím befizetesdnév

1

3

1

Eger

Eger

Ózd Peter

Antal

Peter Miskolc

Baja

Miskolc 2

5

3

ffffüüüüggggggggőőőősssséééég jele: FD A Bg jele: FD A Bg jele: FD A Bg jele: FD A B

ffffüüüüggggggggőőőősssséééég g g g éééértelmezrtelmezrtelmezrtelmezéééése: minden A se: minden A se: minden A se: minden A éééértrtrtrtéééékhez maximum egy B khez maximum egy B khez maximum egy B khez maximum egy B éééértrtrtrtéééék tartozikk tartozikk tartozikk tartozik

Az FD eltAz FD eltAz FD eltAz FD eltáááávolvolvolvolííííttttáááása megszsa megszsa megszsa megszüüüünteti a redundancinteti a redundancinteti a redundancinteti a redundanciáááátttt

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

NormalizNormalizNormalizNormalizáááálllláááás: redundancia megszs: redundancia megszs: redundancia megszs: redundancia megszüüüüntetntetntetntetéééése az FDse az FDse az FDse az FD----k elimink elimink elimink elimináááálllláááássssáááávalvalvalval

de nem mindegyik FDde nem mindegyik FDde nem mindegyik FDde nem mindegyik FD----t kell eldobni!t kell eldobni!t kell eldobni!t kell eldobni!

dkod uticél dcím befizetesdnév

1

3

1

Eger

Eger

Ózd Peter

Antal

Peter Miskolc

Baja

Miskolc 2

5

3

Az ismAz ismAz ismAz isméééétltltltlőőőőddddőőőő éééértrtrtrtéééékkkkűűűű mezmezmezmezőőőőkbkbkbkbőőőől kiindull kiindull kiindull kiindulóóóó FDFDFDFD----ketketketket kell elvetnikell elvetnikell elvetnikell elvetni

A kulcsbA kulcsbA kulcsbA kulcsbóóóól kiindull kiindull kiindull kiindulóóóó FDFDFDFD----k nem okoznak redundancik nem okoznak redundancik nem okoznak redundancik nem okoznak redundanciáááátttt

GEIAL Kovács László

Page 94: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

A A A A nemknemknemknemkíííívvvváááántntntnt FD megszFD megszFD megszFD megszüüüüntetntetntetntetéééése a tartalmazse a tartalmazse a tartalmazse a tartalmazóóóó relrelrelreláááácicicicióóóófelbontfelbontfelbontfelbontáááássssáááával tval tval tval töööörtrtrtrtéééénik (nik (nik (nik (dekompozdekompozdekompozdekompozíííícicicicióóóó))))

dkod uticél dcím befizetesdnév

1 Eger Peter Miskolc 3

dkod uticél befizetes

1 Eger 3

dkod dcímdnév

1 Peter Miskolc

A felbontA felbontA felbontA felbontáááásnak vesztessnak vesztessnak vesztessnak veszteséééégmentesnek kell lenniegmentesnek kell lenniegmentesnek kell lenniegmentesnek kell lennieAz eredeti relAz eredeti relAz eredeti relAz eredeti reláááácicicicióóóókat elkat elkat elkat előőőő kell tudni kell tudni kell tudni kell tudni áááállllllllíííítani a rtani a rtani a rtani a réééészekbszekbszekbszekbőőőőllll

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

MezMezMezMezőőőő elnevezelnevezelnevezelnevezééééshez kapcsolshez kapcsolshez kapcsolshez kapcsolóóóóddddóóóó hibhibhibhibáááákkkk

DOLGOZO(DOLGOZO(DOLGOZO(DOLGOZO(nevnevnevnev,c12,fonok,f_,c12,fonok,f_,c12,fonok,f_,c12,fonok,f_cimcimcimcim,,,,fizetesfizetesfizetesfizetes,telephely),telephely),telephely),telephely)OSZTALY(OSZTALY(OSZTALY(OSZTALY(nevnevnevnev,telephely,,telephely,,telephely,,telephely,vezetovezetovezetovezeto,v_,v_,v_,v_cimcimcimcim,,,,fizetesfizetesfizetesfizetes))))PROJEKT(PROJEKT(PROJEKT(PROJEKT(nevnevnevnev,d_,d_,d_,d_nevnevnevnev,,,,megrendelomegrendelomegrendelomegrendelo,,,,fizetesfizetesfizetesfizetes,,,,mcimmcimmcimmcim))))

szinonimaszinonimaszinonimaszinonima

TILOS!TILOS!TILOS!TILOS!

technikai homonimatechnikai homonimatechnikai homonimatechnikai homonimanyiltnyiltnyiltnyilt logikai logikai logikai logikai áááátfedtfedtfedtfedééééssss

homonimahomonimahomonimahomonima

nem besznem besznem besznem beszéééédes elnevezdes elnevezdes elnevezdes elnevezééééssss

GEIAL Kovács László

Page 95: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

FD fogalma: A FD fogalma: A FD fogalma: A FD fogalma: A →→→→ B az R(A,B,C) sB az R(A,B,C) sB az R(A,B,C) sB az R(A,B,C) séééémmmmáááában, ha minden t1,t2ban, ha minden t1,t2ban, ha minden t1,t2ban, ha minden t1,t2r(R)r(R)r(R)r(R)----belibelibelibeli rekordra, ha t1(A) = t2(A), akkor rekordra, ha t1(A) = t2(A), akkor rekordra, ha t1(A) = t2(A), akkor rekordra, ha t1(A) = t2(A), akkor t1(B) = t2(B) is teljest1(B) = t2(B) is teljest1(B) = t2(B) is teljest1(B) = t2(B) is teljesüüüül l l l

a defina defina defina definíííícicicicióóóó r(R) fr(R) fr(R) fr(R) füüüüggggggggőőőő

eseti feseti feseti feseti füüüüggggggggőőőősssséééég (ng (ng (ng (nééééhhhháááány rny rny rny r----re)re)re)re) ⇔⇔⇔⇔ éééérdemi frdemi frdemi frdemi füüüüggggggggőőőősssséééég (minden rg (minden rg (minden rg (minden r----re) re) re) re)

egy adott r(R)egy adott r(R)egy adott r(R)egy adott r(R)----bbbbőőőőllll nem lehet knem lehet knem lehet knem lehet köööövetkeztetni az FD vetkeztetni az FD vetkeztetni az FD vetkeztetni az FD éééérdemisrdemisrdemisrdemisééééggggéééére,re,re,re,de lehet kde lehet kde lehet kde lehet köööövetkeztetni az vetkeztetni az vetkeztetni az vetkeztetni az esetisesetisesetisesetisééééggggéééérererere

minden R sminden R sminden R sminden R séééémmmmáááához tartozik egy hoz tartozik egy hoz tartozik egy hoz tartozik egy éééérdemi FD halmazrdemi FD halmazrdemi FD halmazrdemi FD halmaz

dkod uticél dcím befizetesdnév

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

dkod uticél dcím befizetesdnév

CCCCéééél: l: l: l: ááááttekinthetttekinthetttekinthetttekinthetőőőősssséééég, egyszerg, egyszerg, egyszerg, egyszerűűűűsssséééégggg

felesleges FDfelesleges FDfelesleges FDfelesleges FD----k jelennek megk jelennek megk jelennek megk jelennek megaz FDaz FDaz FDaz FD----k kk kk kk köööözzzzöööött is redundancia jelenhet megtt is redundancia jelenhet megtt is redundancia jelenhet megtt is redundancia jelenhet meg

ArmstrongArmstrongArmstrongArmstrong axiaxiaxiaxióóóómmmmáááák:k:k:k:ha B ha B ha B ha B ⊆⊆⊆⊆ A A A A ⇒⇒⇒⇒ A A A A →→→→ B (triviB (triviB (triviB (triviáááális FD)lis FD)lis FD)lis FD)A A A A →→→→ B B B B ⇒⇒⇒⇒ AC AC AC AC →→→→ BCBCBCBCA A A A →→→→ B, B, B, B, B B B B →→→→ C C C C ⇒⇒⇒⇒ A A A A →→→→ CCCC

kkkköööövetkezmvetkezmvetkezmvetkezméééények: A nyek: A nyek: A nyek: A →→→→ B, B, B, B, C C C C →→→→ D D D D ⇒⇒⇒⇒ AC AC AC AC →→→→ BDBDBDBD

GEIAL Kovács László

Page 96: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

X+

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Egy FDEgy FDEgy FDEgy FD----halmaz kibhalmaz kibhalmaz kibhalmaz kibőőőővvvvííííthetthetthetthetőőőő a sza sza sza száááármaztatott FDrmaztatott FDrmaztatott FDrmaztatott FD----kelkelkelkelAz X FDAz X FDAz X FDAz X FD----halmaz lezhalmaz lezhalmaz lezhalmaz lezáááártja: Xrtja: Xrtja: Xrtja: X++++

XXXX++++ : {B | X : {B | X : {B | X : {B | X ⇒⇒⇒⇒ BBBB}}}}

Egy FDEgy FDEgy FDEgy FD----halmaz egyszerhalmaz egyszerhalmaz egyszerhalmaz egyszerűűűűssssííííthetthetthetthetőőőő a redunda redunda redunda redundááááns FDns FDns FDns FD----kelkelkelkelAz X FDAz X FDAz X FDAz X FD----halmaz halmaz halmaz halmaz irreducibilisirreducibilisirreducibilisirreducibilis magja: Xmagja: Xmagja: Xmagja: X----

XXXX---- jellemzjellemzjellemzjellemzőőőői:i:i:i:---- nem tartalmaz trivinem tartalmaz trivinem tartalmaz trivinem tartalmaz triviáááális FDlis FDlis FDlis FD----tttt---- jobb oldal elemijobb oldal elemijobb oldal elemijobb oldal elemi---- minimminimminimminimáááálislislislis

FDFDFDFD----halmazok ekvivalencihalmazok ekvivalencihalmazok ekvivalencihalmazok ekvivalenciáááája: X ja: X ja: X ja: X ≈≈≈≈ Y, ha XY, ha XY, ha XY, ha X++++ = Y= Y= Y= Y++++

BelBelBelBelááááthatthatthatthatóóóó, hogy X , hogy X , hogy X , hogy X ≈≈≈≈ XXXX++++ éééés X s X s X s X ≈≈≈≈ XXXX---- éééés Xs Xs Xs X---- ≈≈≈≈ XXXX++++

XX-

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

dkod uticél dcím befizetesdnév

dkod uticél dcím befizetesdnév

irreducibilisirreducibilisirreducibilisirreducibilis magmagmagmagmeghatmeghatmeghatmeghatáááározrozrozrozáááásasasasa

GEIAL Kovács László

Page 97: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Redundancia oka: ismRedundancia oka: ismRedundancia oka: ismRedundancia oka: isméééétltltltlőőőőddddőőőő éééértrtrtrtéééékkkkűűűű mezmezmezmezőőőőbbbbőőőől kiindull kiindull kiindull kiindulóóóó FDFDFDFD

Redundancia mentesRedundancia mentesRedundancia mentesRedundancia mentesííííttttéééés: csak nems: csak nems: csak nems: csak nem----ismismismisméééétltltltlőőőőddddőőőő éééértrtrtrtéééékkkkűűűű mezmezmezmezőőőőkbkbkbkbőőőőllllinduljon ki FD induljon ki FD induljon ki FD induljon ki FD

NormalizNormalizNormalizNormalizáááálllláááás: nem ks: nem ks: nem ks: nem kíííívvvváááánt FDnt FDnt FDnt FD----k megszk megszk megszk megszüüüüntetntetntetntetéééésesesese

Az Az Az Az FDFDFDFD----ketketketket a meza meza meza mezőőőők szk szk szk széééétvtvtvtváááálasztlasztlasztlasztáááássssáááával, a relval, a relval, a relval, a reláááácicicicióóóó felbontfelbontfelbontfelbontáááássssáááával val val val ((((dekompozdekompozdekompozdekompozíííícicicicióóóó) sz) sz) sz) szüüüüntetjntetjntetjntetjüüüük megk megk megk meg

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Alap normalizAlap normalizAlap normalizAlap normalizáááálllláááási lsi lsi lsi lééééppppéééések:sek:sek:sek:

---- FDFDFDFD----k feltk feltk feltk feltáááárrrráááásasasasa---- 1NF : l1NF : l1NF : l1NF : léééétezzen kulcs, minden meztezzen kulcs, minden meztezzen kulcs, minden meztezzen kulcs, minden mezőőőő elemielemielemielemi---- 2NF : 1NF + r2NF : 1NF + r2NF : 1NF + r2NF : 1NF + réééészkulcsbszkulcsbszkulcsbszkulcsbóóóól ne induljon ki FDl ne induljon ki FDl ne induljon ki FDl ne induljon ki FD---- 3NF : 2NF + nem kulcsb3NF : 2NF + nem kulcsb3NF : 2NF + nem kulcsb3NF : 2NF + nem kulcsbóóóól ne induljon ki FDl ne induljon ki FDl ne induljon ki FDl ne induljon ki FD

dkod uticél dcím befizetesdnév

dkod uticél befizetes

dkod dnév

dcímdnév

2NF2NF2NF2NF3NF3NF3NF3NF1NF1NF1NF1NF

GEIAL Kovács László

Page 98: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

BCNF: FD csak jelBCNF: FD csak jelBCNF: FD csak jelBCNF: FD csak jelöööölt kulcsblt kulcsblt kulcsblt kulcsbóóóól induljon kil induljon kil induljon kil induljon ki

A gyakorlat szinte mindig megtalA gyakorlat szinte mindig megtalA gyakorlat szinte mindig megtalA gyakorlat szinte mindig megtaláááálja az elmlja az elmlja az elmlja az elméééélet hilet hilet hilet hiáááányossnyossnyossnyossáááágait gait gait gait

MiMiMiMiéééért nem jrt nem jrt nem jrt nem jóóóó a 3NF?a 3NF?a 3NF?a 3NF?

ig.szám taj-szám név

A felbontA felbontA felbontA felbontáááás nem hoz nyeress nem hoz nyeress nem hoz nyeress nem hoz nyereséééégetgetgetgetSzSzSzSzüüüükskskskséééégtelen a felbontgtelen a felbontgtelen a felbontgtelen a felbontáááássss

A A A A tajtajtajtaj_sz_sz_sz_száááám jelm jelm jelm jelöööölt kulcs, nem ismlt kulcs, nem ismlt kulcs, nem ismlt kulcs, nem isméééétltltltlőőőődik, nem okoz redundancidik, nem okoz redundancidik, nem okoz redundancidik, nem okoz redundanciáááátttt

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Az elmAz elmAz elmAz elméééélet a gyakorlat egy klet a gyakorlat egy klet a gyakorlat egy klet a gyakorlat egy köööözelzelzelzelííííttttéééése, modelljese, modelljese, modelljese, modellje

Az adatbAz adatbAz adatbAz adatbáááázis tervezzis tervezzis tervezzis tervezéééésnsnsnsnéééél a hatl a hatl a hatl a hatéééékonyskonyskonyskonysáááági szempontokatgi szempontokatgi szempontokatgi szempontokatis lis lis lis léééényegesnek kell tekinteni (JOIN knyegesnek kell tekinteni (JOIN knyegesnek kell tekinteni (JOIN knyegesnek kell tekinteni (JOIN kööööltsltsltsltséééégessgessgessgesséééége)ge)ge)ge)

rererere----decompositiondecompositiondecompositiondecomposition: a sz: a sz: a sz: a széééétbontott ttbontott ttbontott ttbontott tááááblblblbláááák egyesk egyesk egyesk egyesííííttttéééésesesese

„„„„A normalizA normalizA normalizA normalizáááálllláááás nem tervezs nem tervezs nem tervezs nem tervezéééés hanem elemzs hanem elemzs hanem elemzs hanem elemzééééssss””””„„„„A valA valA valA valóóóós adatbs adatbs adatbs adatbáááázisszisszisszissééééma a 3NF ma a 3NF ma a 3NF ma a 3NF éééés a teljes ks a teljes ks a teljes ks a teljes kááááosz kosz kosz kosz köööözzzzöööött vantt vantt vantt van””””

GEIAL Kovács László

Page 99: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

NormalizNormalizNormalizNormalizáááálllláááási alapoksi alapoksi alapoksi alapok

Egyedi elemekEgyedi elemekEgyedi elemekEgyedi elemek---- levezethetlevezethetlevezethetlevezethetősssséééégggg ééééssss logikailogikailogikailogikai kkkköööövetkezmvetkezmvetkezmvetkezméééénynynyny---- igazsigazsigazsigazsáááágtgtgtgtéééételtelteltel bizonybizonybizonybizonyííííttttáááásasasasa---- levezetlevezetlevezetlevezetéééésisisisi ppppééééldldldldáááákkkk---- szuperkulcsszuperkulcsszuperkulcsszuperkulcs---- FD FD FD FD halmazhalmazhalmazhalmaz lezlezlezlezáááárrrráááásisisisi ttttéééételektelektelektelek---- teljessteljessteljessteljesséééégigigigi ttttéééételtelteltel bizonybizonybizonybizonyííííttttáááásasasasa---- lezlezlezlezáááárrrráááási tsi tsi tsi téééétel bizonytel bizonytel bizonytel bizonyííííttttáááásasasasa

GEIAL Kovács László

Page 100: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

KovKovKovKováááács Lcs Lcs Lcs Láááászlszlszlszlóóóó

ME GEIALME GEIALME GEIALME GEIAL ddddr r r r KovKovKovKováááács cs cs cs LLLLáááászlszlszlszlóóóó

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

A hibA hibA hibA hibáááás ss ss ss sééééma megszma megszma megszma megszüüüüntetntetntetntetéééése a sse a sse a sse a sééééma felbontma felbontma felbontma felbontáááássssáááával tval tval tval töööörtrtrtrtééééniknikniknik

Mire kell Mire kell Mire kell Mire kell üüüügyelni a felbontgyelni a felbontgyelni a felbontgyelni a felbontáááásnsnsnsnáááál?l?l?l?

---- mezmezmezmezőőőő ne szne szne szne szűűűűnjnjnjnjöööön megn megn megn meg---- informinforminforminformáááácicicicióóóó ne vesszen elne vesszen elne vesszen elne vesszen el---- hibhibhibhibáááás FD elimins FD elimins FD elimins FD elimináááállllóóóódjondjondjondjon---- úúúúj FD ne lj FD ne lj FD ne lj FD ne léééépjen felpjen felpjen felpjen fel---- redundancia ne nredundancia ne nredundancia ne nredundancia ne nöööövekedjenvekedjenvekedjenvekedjen

GEIAL Kovács László

Page 101: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

VesztesVesztesVesztesVeszteséééégmentessgmentessgmentessgmentesséééég:g:g:g:Az indulAz indulAz indulAz indulóóóó relrelrelreláááácicicicióóóó helyrehelyrehelyrehelyreáááállllllllííííthatthatthatthatóóóó legyen a legyen a legyen a legyen a felbontfelbontfelbontfelbontáááás uts uts uts utáááán isn isn isn is

---- mezmezmezmezőőőők k k k éééés kapcsolatok megs kapcsolatok megs kapcsolatok megs kapcsolatok megőőőőrzrzrzrzéééésesesese---- helyrehelyrehelyrehelyreáááállllllllííííttttáááás a s a s a s a joinjoinjoinjoin----nalnalnalnal

Nem minden felbontNem minden felbontNem minden felbontNem minden felbontáááás s s s vesztesvesztesvesztesveszteséééégmentesgmentesgmentesgmentes

MegfelelMegfelelMegfelelMegfelelőőőő kapcsolatot kellkapcsolatot kellkapcsolatot kellkapcsolatot kellhagynihagynihagynihagyni

A FD mentA FD mentA FD mentA FD mentéééén kell felbontanin kell felbontanin kell felbontanin kell felbontaniA FD kiindulA FD kiindulA FD kiindulA FD kiindulóóóó mezmezmezmezőőőője je je je

megfelelmegfelelmegfelelmegfelelőőőő kapcsolkapcsolkapcsolkapcsolóóóó

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

FFFFüüüüggetlen felbontggetlen felbontggetlen felbontggetlen felbontáááás:s:s:s:A kapott relA kapott relA kapott relA kapott reláááácicicicióóóók tartalma egymk tartalma egymk tartalma egymk tartalma egymááááststststóóóól fl fl fl füüüüggetlenggetlenggetlenggetlenüüüül l l l kezelhetkezelhetkezelhetkezelhetőőőő

---- FD nem nyFD nem nyFD nem nyFD nem nyúúúúlik lik lik lik áááát mt mt mt máááásik relsik relsik relsik reláááácicicicióóóóbabababa

Az FDAz FDAz FDAz FD----k lokk lokk lokk lokáááális meglis meglis meglis megőőőőrzrzrzrzéééésssséééén alapuln alapuln alapuln alapul

rsz típus

ab34 Fiat

gz56 Opel

ag91 Opel

rsz gyártó

ab34 FiatW

gz56 OpelW

ag91 ?

rsz gyártótípus

GEIAL Kovács László

Page 102: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Mindig adMindig adMindig adMindig adóóóódhatnak vdhatnak vdhatnak vdhatnak vááááratlan esemratlan esemratlan esemratlan eseméééények,nyek,nyek,nyek,esetek az elmesetek az elmesetek az elmesetek az elméééélet oldallet oldallet oldallet oldaláááárrrróóóól isl isl isl is…………

név ételital

Peti sör lecsó

Peti bor lecsó

Peti sör kaviár

Peti bor kaviár

nincs FD, nem lehet normaliznincs FD, nem lehet normaliznincs FD, nem lehet normaliznincs FD, nem lehet normalizáááálni ?lni ?lni ?lni ?

MVD: tMVD: tMVD: tMVD: tööööbbbbbbbbéééértrtrtrtéééékkkkűűűű ffffüüüüggggggggőőőősssséééég (A g (A g (A g (A →→→→> B)> B)> B)> B)egy A egy A egy A egy A éééértrtrtrtéééékhez egykhez egykhez egykhez egyéééértelmrtelmrtelmrtelműűűűen en en en hozzhozzhozzhozzáááárendelhetrendelhetrendelhetrendelhetőőőő egy Begy Begy Begy B----beli beli beli beli éééértrtrtrtéééékhalmaz khalmaz khalmaz khalmaz

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

FFFFüüüüggggggggőőőősssséééégek kapcsolatagek kapcsolatagek kapcsolatagek kapcsolata

FD: olyan MVD, melyben az FD: olyan MVD, melyben az FD: olyan MVD, melyben az FD: olyan MVD, melyben az éééértrtrtrtéééékhalmaz egyelemkhalmaz egyelemkhalmaz egyelemkhalmaz egyeleműűűű

JD: az r relJD: az r relJD: az r relJD: az r reláááácicicicióóóó elelelelőőőőáááállllllllííííthatthatthatthatóóóó az raz raz raz r1111,,,,…………,,,,rrrrnnnn relrelrelreláááácicicicióóóók k k k joinjoinjoinjoinmmmműűűűveletveletveletveletéééévelvelvelvel

MVD: olyan JD, melyben a felbontMVD: olyan JD, melyben a felbontMVD: olyan JD, melyben a felbontMVD: olyan JD, melyben a felbontáááás ks ks ks kéééét relt relt relt reláááácicicicióóóóra tra tra tra töööörtrtrtrtééééniknikniknik

FD JDMVD

A tervezA tervezA tervezA tervezéééés sors sors sors soráááán a nemn a nemn a nemn a nem----FD fFD fFD fFD füüüüggggggggőőőősssséééégeket elimingeket elimingeket elimingeket elimináááálni kell lni kell lni kell lni kell

GEIAL Kovács László

Page 103: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

SSSSééééma tervezma tervezma tervezma tervezéééés s s s öööösszefoglalsszefoglalsszefoglalsszefoglaláááásasasasa

- FD, MVD, JD meghatFD, MVD, JD meghatFD, MVD, JD meghatFD, MVD, JD meghatáááározrozrozrozáááásasasasa- kulcsok kijelkulcsok kijelkulcsok kijelkulcsok kijelöööölllléééése (1NF)se (1NF)se (1NF)se (1NF)- rrrréééészszszsz----kulcsbeli FD megszkulcsbeli FD megszkulcsbeli FD megszkulcsbeli FD megszüüüüntetntetntetntetéééése (2NF)se (2NF)se (2NF)se (2NF)- tranzittranzittranzittranzitíííív FD megszv FD megszv FD megszv FD megszüüüüntetntetntetntetéééése (3NF)se (3NF)se (3NF)se (3NF)- csak jelcsak jelcsak jelcsak jelöööölt kulcsblt kulcsblt kulcsblt kulcsbóóóól indul ki FD (BCNF)l indul ki FD (BCNF)l indul ki FD (BCNF)l indul ki FD (BCNF)- a nem FD jellega nem FD jellega nem FD jellega nem FD jellegűűűű MVD megszMVD megszMVD megszMVD megszüüüüntetntetntetntetéééése (4NF)se (4NF)se (4NF)se (4NF)- a nem FD jellega nem FD jellega nem FD jellega nem FD jellegűűűű JD megszJD megszJD megszJD megszüüüüntetntetntetntetéééése (5NF)se (5NF)se (5NF)se (5NF)

- hathathathatéééékonyskonyskonyskonysáááág elemzg elemzg elemzg elemzéééés s s s - redundancia nredundancia nredundancia nredundancia nöööövelvelvelveléééés (s (s (s (denormalizdenormalizdenormalizdenormalizáááálllláááássss))))

- genergenergenergeneráááállllóóóó kkkkóóóód (SQL) eld (SQL) eld (SQL) eld (SQL) előőőőáááállllllllííííttttáááása sa sa sa

- informinforminforminformáááácicicicióóóó igigigigéééények nyek nyek nyek öööösszegysszegysszegysszegyűűűűjtjtjtjtéééésesesese- integritintegritintegritintegritáááási feltsi feltsi feltsi feltéééételek meghattelek meghattelek meghattelek meghatáááározrozrozrozáááásasasasa- fogalmak jelentfogalmak jelentfogalmak jelentfogalmak jelentéééésssséééének meghatnek meghatnek meghatnek meghatáááározrozrozrozáááásasasasa- adatelemek elnevezadatelemek elnevezadatelemek elnevezadatelemek elnevezéééése, tse, tse, tse, tíííípusa, megkpusa, megkpusa, megkpusa, megkööööttttééééseksekseksek- kapcsolatok meghatkapcsolatok meghatkapcsolatok meghatkapcsolatok meghatáááározrozrozrozáááásasasasa- relrelrelreláááácicicicióóóók meghatk meghatk meghatk meghatáááározrozrozrozáááásasasasa

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

VesztesVesztesVesztesVeszteséééégmentes felbontgmentes felbontgmentes felbontgmentes felbontáááássss

p : az R sp : az R sp : az R sp : az R sééééma egy felbontma egy felbontma egy felbontma egy felbontáááása (sa (sa (sa (∪∪∪∪ RRRRiiii = R)= R)= R)= R)××××pppp(r) : az r rel(r) : az r rel(r) : az r rel(r) : az r reláááácicicicióóóó p szerinti felbontp szerinti felbontp szerinti felbontp szerinti felbontáááássssáááának nak nak nak öööösszekapcsolsszekapcsolsszekapcsolsszekapcsoláááásasasasa

vesztesvesztesvesztesveszteséééégmentes felbontgmentes felbontgmentes felbontgmentes felbontáááás:s:s:s: r = r = r = r = ××××pppp(r) (r) (r) (r)

dkod dcímdnév

dkod dcímdnév

dkod dnév

dnév dcím

GEIAL Kovács László

Page 104: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

VesztesVesztesVesztesVeszteséééégmentes felbontgmentes felbontgmentes felbontgmentes felbontáááássss

HeathHeathHeathHeath----ttttéééételeteleteletele (vesztes(vesztes(vesztes(veszteséééégmentessgmentessgmentessgmentesséééég kritg kritg kritg kritéééériuma):riuma):riuma):riuma):

Ha R = RHa R = RHa R = RHa R = R1111 ∪∪∪∪ RRRR2 2 2 2 ∪∪∪∪ RRRR3 3 3 3 éééés s s s RRRR1111 →→→→ RRRR2 2 2 2

akkorakkorakkorakkora p = ({Ra p = ({Ra p = ({Ra p = ({R1111,R,R,R,R2222}, {R}, {R}, {R}, {R1111,R,R,R,R3333}) felbont}) felbont}) felbont}) felbontáááás vesztess vesztess vesztess veszteséééégmentesgmentesgmentesgmentes

dkod dcímdnév

RRRR1111= = = = dkoddkoddkoddkodRRRR2222 = = = = dndndndnéééévvvvRRRR3333 = = = = dcimdcimdcimdcim

RRRR1111= = = = dkoddkoddkoddkodRRRR2222 = = = = dcdcdcdcíííímmmmRRRR3333 = = = = dndndndnéééévvvv

RRRR1111= = = = dndndndnéééévvvvRRRR2222 = = = = dcdcdcdcíííímmmmRRRR3333 = = = = dcimdcimdcimdcim

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

FFFFüüüüggetlen felbontggetlen felbontggetlen felbontggetlen felbontáááássss

p : az R sp : az R sp : az R sp : az R sééééma egy felbontma egy felbontma egy felbontma egy felbontáááása (sa (sa (sa (∪∪∪∪ RRRRiiii = R)= R)= R)= R)F : az R sF : az R sF : az R sF : az R séééémmmmáááához tartozhoz tartozhoz tartozhoz tartozóóóó FD halmazFD halmazFD halmazFD halmaz

φφφφpppp(r) : az F halmaz p szerinti felbont(r) : az F halmaz p szerinti felbont(r) : az F halmaz p szerinti felbont(r) : az F halmaz p szerinti felbontááááshoz tartozshoz tartozshoz tartozshoz tartozóóóórrrréééészhalmazszhalmazszhalmazszhalmazáááának leznak leznak leznak lezáááártjartjartjartja

φφφφpppp(r) = {X (r) = {X (r) = {X (r) = {X →→→→Y | (X Y | (X Y | (X Y | (X →→→→Y) Y) Y) Y) ∈∈∈∈ F, F, F, F, ∃∃∃∃i: X,Yi: X,Yi: X,Yi: X,Y⊆⊆⊆⊆RRRRiiii } } } }

FFFFüüüüggetlen felbontggetlen felbontggetlen felbontggetlen felbontáááás: s: s: s: φφφφpppp(r)(r)(r)(r)++++ = = = = FFFF++++

dkod dcímdnév

dkod dnév

dkod dcím

dkod dnév

dnév dcímGEIAL Kovács László

Page 105: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

FFFFüüüüggetlen felbontggetlen felbontggetlen felbontggetlen felbontáááássss

RissanenRissanenRissanenRissanen----ttttéééételeteleteletele (f(f(f(füüüüggetlensggetlensggetlensggetlenséééég kritg kritg kritg kritéééériuma)riuma)riuma)riuma)

Ha R = RHa R = RHa R = RHa R = R1111 ∪∪∪∪ RRRR2 2 2 2 ∪∪∪∪ RRRR3 3 3 3 éééés s s s RRRR1111 →→→→ RRRR2 2 2 2 ééééssssF F F F ⊆⊆⊆⊆ φφφφpppp(r)(r)(r)(r)++++

akkorakkorakkorakkora p = ({Ra p = ({Ra p = ({Ra p = ({R1111,R,R,R,R2222}, {R}, {R}, {R}, {R1111,R,R,R,R3333}) felbont}) felbont}) felbont}) felbontáááás fs fs fs füüüüggetlenggetlenggetlenggetlen

dkod dcímdnév

RRRR1111= = = = dkoddkoddkoddkodRRRR2222 = = = = dndndndnéééévvvvRRRR3333 = = = = dcimdcimdcimdcim

RRRR1111= = = = dkoddkoddkoddkodRRRR2222 = = = = dcdcdcdcíííímmmmRRRR3333 = = = = dndndndnéééévvvv

RRRR1111= = = = dndndndnéééévvvvRRRR2222 = = = = dcdcdcdcíííímmmmRRRR3333 = = = = dcimdcimdcimdcim

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

BCNF alak jellemzBCNF alak jellemzBCNF alak jellemzBCNF alak jellemzéééése:se:se:se:

BCNF: minden A,B BCNF: minden A,B BCNF: minden A,B BCNF: minden A,B ⊆⊆⊆⊆ R R R R ––––re , ahol (A re , ahol (A re , ahol (A re , ahol (A →→→→ B) B) B) B) ∈∈∈∈ FFFF+ + + + ééééssss(A (A (A (A →→→→ B) nem triviB) nem triviB) nem triviB) nem triviáááális : az A szuperkulcslis : az A szuperkulcslis : az A szuperkulcslis : az A szuperkulcs

belbelbelbelááááthatthatthatthatóóóó, hogy nincs tranzit, hogy nincs tranzit, hogy nincs tranzit, hogy nincs tranzitíííív FDv FDv FDv FD

ha (R,F) nem BCNF, akkor ha (R,F) nem BCNF, akkor ha (R,F) nem BCNF, akkor ha (R,F) nem BCNF, akkor ∃∃∃∃ (A (A (A (A →→→→ B) B) B) B) ∈∈∈∈ FFFF----, hogy A nem , hogy A nem , hogy A nem , hogy A nem szuperkulcs szuperkulcs szuperkulcs szuperkulcs

BCNF alak jelentBCNF alak jelentBCNF alak jelentBCNF alak jelentőőőősssséééége:ge:ge:ge:

Minden (R,F) sMinden (R,F) sMinden (R,F) sMinden (R,F) sééééma felbonthatma felbonthatma felbonthatma felbonthatóóóó BCNF relBCNF relBCNF relBCNF reláááácicicicióóóókra kra kra kra vesztesvesztesvesztesveszteséééégmentesengmentesengmentesengmentesen

FelbontFelbontFelbontFelbontáááás algoritmusa:s algoritmusa:s algoritmusa:s algoritmusa:

---- nem szuperkulcsbnem szuperkulcsbnem szuperkulcsbnem szuperkulcsbóóóól kiindull kiindull kiindull kiindulóóóó FD keresFD keresFD keresFD kereséééése se se se (A (A (A (A →→→→ B) B) B) B) ---- RRRR1111 = AB, R= AB, R= AB, R= AB, R2222 = R= R= R= R\\\\BBBB

GEIAL Kovács László

Page 106: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

BCNF felbontBCNF felbontBCNF felbontBCNF felbontáááás ps ps ps pééééldaldaldalda

AAAA BBBB CCCC DDDD EEEE

(AC (AC (AC (AC →→→→ E)E)E)E)(D (D (D (D →→→→ A)A)A)A)(E (E (E (E →→→→ B)B)B)B)(AC (AC (AC (AC →→→→ C)C)C)C)

(AC (AC (AC (AC →→→→ E)E)E)E)(D (D (D (D →→→→ A)A)A)A)(E (E (E (E →→→→ B)B)B)B)

(CD (CD (CD (CD →→→→ ABE)ABE)ABE)ABE)

BBBB EEEE

(CD (CD (CD (CD →→→→ EB)EB)EB)EB)(D (D (D (D →→→→ A)A)A)A)

AAAA DDDD EEEE CCCC DDDD

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Atomi sAtomi sAtomi sAtomi sééééma: nincs vesztesma: nincs vesztesma: nincs vesztesma: nincs veszteséééégmentes gmentes gmentes gmentes éééés fs fs fs füüüüggetlen felbontggetlen felbontggetlen felbontggetlen felbontáááásasasasa

EEEE CCCC DDDD

Nem minden atomi sNem minden atomi sNem minden atomi sNem minden atomi sééééma BCNFma BCNFma BCNFma BCNF

EEEE CCCC DDDD

Minden (R,F) sMinden (R,F) sMinden (R,F) sMinden (R,F) sééééma felbonthatma felbonthatma felbonthatma felbonthatóóóó vesztesvesztesvesztesveszteséééégmentes, de nemgmentes, de nemgmentes, de nemgmentes, de nemfeltfeltfeltfeltéééétlentlentlentlenüüüül atomi BCNF rell atomi BCNF rell atomi BCNF rell atomi BCNF reláááácicicicióóóókrakrakrakra

CCCC EEEEEEEE DDDD

BelBelBelBelááááthatthatthatthatóóóó, hogy minden (R,F) s, hogy minden (R,F) s, hogy minden (R,F) s, hogy minden (R,F) sééééma felbonthatma felbonthatma felbonthatma felbonthatóóóó vesztesvesztesvesztesveszteséééégmentesgmentesgmentesgmenteséééés atomi 3NF rels atomi 3NF rels atomi 3NF rels atomi 3NF reláááácicicicióóóókrakrakrakra

GEIAL Kovács László

Page 107: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

TTTTööööbbbbbbbbéééértrtrtrtéééékkkkűűűű ffffüüüüggggggggééééssss

nevnevnevnev hobbyhobbyhobbyhobby eteleteleteletel

PeterPeterPeterPeter

PeterPeterPeterPeter

PeterPeterPeterPeter

focifocifocifoci

focifocifocifoci

tenisztenisztenisztenisz babbabbabbab

szilvaszilvaszilvaszilva

babbabbabbab

PeterPeterPeterPeter tenisztenisztenisztenisz szilvaszilvaszilvaszilva

GabiGabiGabiGabi futasfutasfutasfutas almaalmaalmaalma

GabiGabiGabiGabi futasfutasfutasfutas fagyifagyifagyifagyi

nevnevnevnev hobbyhobbyhobbyhobby

PeterPeterPeterPeter

PeterPeterPeterPeter

GabiGabiGabiGabi

focifocifocifoci

tenisztenisztenisztenisz

futasfutasfutasfutas

nevnevnevnev hobbyhobbyhobbyhobby

PeterPeterPeterPeter

PeterPeterPeterPeter

GabiGabiGabiGabi

babbabbabbab

szilvaszilvaszilvaszilva

almaalmaalmaalma

GabiGabiGabiGabi fagyifagyifagyifagyi

MVD: tMVD: tMVD: tMVD: tööööbbbbbbbbéééértrtrtrtéééékkkkűűűű ffffüüüüggggggggőőőősssséééég (A g (A g (A g (A →→→→> B)> B)> B)> B)∀∀∀∀ tttt1111,t,t,t,t2222 ∈∈∈∈ r r r r ----re, ahol tre, ahol tre, ahol tre, ahol t1111[A] = t[A] = t[A] = t[A] = t2222[A]:[A]:[A]:[A]:

∃∃∃∃ tttt3333,t,t,t,t4444 ∈∈∈∈ r:r:r:r:---- tttt3333[AB] = t[AB] = t[AB] = t[AB] = t1111[AB][AB][AB][AB] ---- tttt3333[R[R[R[R\\\\AB] = tAB] = tAB] = tAB] = t2222[R[R[R[R\\\\AB]AB]AB]AB]---- tttt4444[AB] = t[AB] = t[AB] = t[AB] = t2222[AB][AB][AB][AB] ---- tttt4444[R[R[R[R\\\\AB] = tAB] = tAB] = tAB] = t1111[R[R[R[R\\\\AB]AB]AB]AB]

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

TTTTööööbbbbbbbbéééértrtrtrtéééékkkkűűűű ffffüüüüggggggggéééés jellemzs jellemzs jellemzs jellemzőőőőiiii

trivitrivitrivitriviáááális MVDlis MVDlis MVDlis MVD----k:k:k:k:

---- ha A ha A ha A ha A ⊆⊆⊆⊆ B, akkor B B, akkor B B, akkor B B, akkor B →→→→> A> A> A> A---- ha AB = R, akkor A ha AB = R, akkor A ha AB = R, akkor A ha AB = R, akkor A →→→→> B> B> B> B---- ha A ha A ha A ha A →→→→> B, akkor A > B, akkor A > B, akkor A > B, akkor A →→→→> R > R > R > R \\\\ ABABABAB---- ha A ha A ha A ha A →→→→ B , akkor A B , akkor A B , akkor A B , akkor A →→→→> B > B > B > B

MVD fontossMVD fontossMVD fontossMVD fontossáááágagagagaFaginFaginFaginFagin ttttéééétele: (vesztestele: (vesztestele: (vesztestele: (veszteséééégmentessgmentessgmentessgmentesséééég elg elg elg eléééégsgsgsgsééééges feltges feltges feltges feltéééétele)tele)tele)tele)

Ha R = RHa R = RHa R = RHa R = R1111 ∪∪∪∪ RRRR2 2 2 2 ∪∪∪∪ RRRR3 3 3 3 éééés s s s RRRR1111 →→→→> R> R> R> R2 2 2 2

akkor akkor akkor akkor éééés csak akkors csak akkors csak akkors csak akkora p = ({Ra p = ({Ra p = ({Ra p = ({R1111,R,R,R,R2222}, {R}, {R}, {R}, {R1111,R,R,R,R3333}) felbont}) felbont}) felbont}) felbontáááás vesztess vesztess vesztess veszteséééégmentesgmentesgmentesgmentes

GEIAL Kovács László

Page 108: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

ttttáááárgyrgyrgyrgy tantantantanáááárrrr didididiáááákkkk

ProgProgProgProg....

ProgProgProgProg....

ProgProgProgProg....

T1T1T1T1

T1T1T1T1

T2T2T2T2 D2D2D2D2

D2D2D2D2

D1D1D1D1

OptOptOptOpt.... T1T1T1T1 D1D1D1D1

OptOptOptOpt T3T3T3T3 D1D1D1D1

Ab.Ab.Ab.Ab. T2T2T2T2 D2D2D2D2

JoinJoinJoinJoin----ffffüüüüggggggggőőőősssséééégggg, a helyzet egyre bonyol, a helyzet egyre bonyol, a helyzet egyre bonyol, a helyzet egyre bonyolóóóódik..dik..dik..dik..

a sa sa sa séééémmmmáááában nincs FD ban nincs FD ban nincs FD ban nincs FD éééés MVD (nincs benne pl. t(s MVD (nincs benne pl. t(s MVD (nincs benne pl. t(s MVD (nincs benne pl. t(ProgProgProgProg., T2, D1))., T2, D1))., T2, D1))., T2, D1))

ttttáááárgyrgyrgyrgy tantantantanáááárrrr

ProgProgProgProg....

ProgProgProgProg....

T1T1T1T1

T2T2T2T2

OptOptOptOpt.... T1T1T1T1

OptOptOptOpt T3T3T3T3

Ab.Ab.Ab.Ab. T2T2T2T2

ttttáááárgyrgyrgyrgy didididiáááákkkk

ProgProgProgProg....

ProgProgProgProg....

D1D1D1D1

D2D2D2D2

OptOptOptOpt.... D1D1D1D1

Ab.Ab.Ab.Ab. D2D2D2D2

tantantantanáááárrrr didididiáááákkkk

T1T1T1T1

T1T1T1T1

D1D1D1D1

D2D2D2D2

T2T2T2T2 D2D2D2D2

T3T3T3T3 D1D1D1D1

viszont elviszont elviszont elviszont előőőőááááll a rll a rll a rll a réééész relsz relsz relsz reláááácicicicióóóók szorzatakk szorzatakk szorzatakk szorzatakééééntntntnt

JD (JD (JD (JD (joinjoinjoinjoin----ffffüüüüggggggggőőőősssséééégggg): r = r1 ): r = r1 ): r = r1 ): r = r1 ××××==== r2 r2 r2 r2 ××××==== r3 r3 r3 r3 …………

GEIAL Kovács László

NormalizNormalizNormalizNormalizáááálllláááási elemeksi elemeksi elemeksi elemek

Egyedi elemekEgyedi elemekEgyedi elemekEgyedi elemek---- VesztesVesztesVesztesVeszteséééégmentessgmentessgmentessgmentesséééégggg ttttéééételeteleteletele bizonybizonybizonybizonyííííttttáááásasasasa---- HeathHeathHeathHeath ttttéééétel bizonytel bizonytel bizonytel bizonyííííttttáááásasasasa---- TTTTáááábla mbla mbla mbla móóóódszer a vesztesdszer a vesztesdszer a vesztesdszer a veszteséééégmentessgmentessgmentessgmentesséééégngngngnééééllll---- BCNF felbontBCNF felbontBCNF felbontBCNF felbontáááási tsi tsi tsi téééétel bizonytel bizonytel bizonytel bizonyííííttttáááásasasasa---- 3NF felbont3NF felbont3NF felbont3NF felbontáááási tsi tsi tsi téééétel bizonytel bizonytel bizonytel bizonyííííttttáááásasasasa---- normnormnormnormáááálformlformlformlformáááák kapcsolatk kapcsolatk kapcsolatk kapcsolatáááának bizonynak bizonynak bizonynak bizonyííííttttáááása sa sa sa

GEIAL Kovács László

Page 109: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

1

AdatbAdatbAdatbAdatbáááázis rendszerek Izis rendszerek Izis rendszerek Izis rendszerek I

mySQLmySQLmySQLmySQL kezelkezelkezelkezeléééésesesese

Dr. KovDr. KovDr. KovDr. Kováááács Lcs Lcs Lcs LáááászlszlszlszlóóóóMEMEMEME---- GEIALGEIALGEIALGEIAL

DBMS DBMS DBMS DBMS alternatalternatalternatalternatíííívvvváááákkkk

problproblproblproblééééma mma mma mma mééééreteretereterete

otthoni feladatotthoni feladatotthoni feladatotthoni feladat

egyegyegyegyééééni vni vni vni váááállalkozllalkozllalkozllalkozáááássss

kis vkis vkis vkis váááállalatllalatllalatllalat

KKKKöööözzzzéééép vp vp vp váááállalatllalatllalatllalat

nagyvnagyvnagyvnagyváááállalatllalatllalatllalat

nemzetknemzetknemzetknemzetköööözi czi czi czi céééégggg

áááállomllomllomllomáááány kezelny kezelny kezelny kezelééééssss

Excel kezelExcel kezelExcel kezelExcel kezelééééssss

xBasexBasexBasexBase/Access/Access/Access/Access

mySQLmySQLmySQLmySQL

OracleOracleOracleOracle XEXEXEXE

SQLServerSQLServerSQLServerSQLServer

DB2DB2DB2DB2

OracleOracleOracleOracle

TerradataTerradataTerradataTerradata

adatkezeladatkezeladatkezeladatkezelőőőő

GEIAL Kovács László

Page 110: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

2

mySQLmySQLmySQLmySQL ááááttekintttekintttekintttekintéééésesesese

mySQLmySQLmySQLmySQL: ny: ny: ny: nyíííílt fellt fellt fellt felüüüületletletletűűűű adatbadatbadatbadatbááááziskezelziskezelziskezelziskezelőőőő----rendszer (SUN) rendszer (SUN) rendszer (SUN) rendszer (SUN)

ttttíííípusai: pusai: pusai: pusai: CommunityCommunityCommunityCommunity Server (ingyenes)Server (ingyenes)Server (ingyenes)Server (ingyenes)EnterpriseEnterpriseEnterpriseEnterprise Server (fizetServer (fizetServer (fizetServer (fizetőőőős)s)s)s)

lllletetetetööööltltltltéééésisisisi hely: hely: hely: hely: httphttphttphttp::::////////dev.mysql.comdev.mysql.comdev.mysql.comdev.mysql.com/downloads/downloads/downloads/downloads

http://www.mysql.com/whyhttp://www.mysql.com/whyhttp://www.mysql.com/whyhttp://www.mysql.com/why----mysql/marketsharemysql/marketsharemysql/marketsharemysql/marketshare////GEIAL Kovács László

mySQLmySQLmySQLmySQL installinstallinstallinstalláááácicicicióóóó

GEIAL Kovács László

GEIAL Kovács László

Page 111: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

3

mySQLmySQLmySQLmySQL installinstallinstallinstalláááácicicicióóóó

GEIAL Kovács László

mySQLmySQLmySQLmySQL installinstallinstallinstalláááácicicicióóóó

Bin Bin Bin Bin ((((---->>>>PathPathPathPath))))DataDataDataDataDocsDocsDocsDocsExamplesExamplesExamplesExamplesIncludeIncludeIncludeIncludeliblibliblibShareShareShareShare

netnetnetnet start start start start mySQLmySQLmySQLmySQL

netnetnetnet stop stop stop stop mySQLmySQLmySQLmySQL

InstanceInstanceInstanceInstance: fut: fut: fut: futóóóó DBMSDBMSDBMSDBMS AdatbAdatbAdatbAdatbáááázis DB1zis DB1zis DB1zis DB1

AdatbAdatbAdatbAdatbáááázis DB2zis DB2zis DB2zis DB2

SzolgSzolgSzolgSzolgááááltatltatltatltatáááás (s (s (s (mySQLmySQLmySQLmySQL)))) ÁÁÁÁllomllomllomllomáááányok, katalnyok, katalnyok, katalnyok, katalóóóógusokgusokgusokgusok

GEIAL Kovács László

Page 112: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

4

mySQLmySQLmySQLmySQL mmmműűűűkkkkööööddddéééésesesese

DBMS mDBMS mDBMS mDBMS műűűűkkkkööööddddéééésesesese

www.akadia.comwww.akadia.comwww.akadia.comwww.akadia.comGEIAL Kovács László

mySQLmySQLmySQLmySQL mmmműűűűkkkkööööddddéééésesesese

myISAMmyISAMmyISAMmyISAM ttttáááábla jellemzbla jellemzbla jellemzbla jellemzéééésesesese

Az alapAz alapAz alapAz alapéééértelmezrtelmezrtelmezrtelmezéééési tsi tsi tsi táááábla tbla tbla tbla táááárolrolrolroláááási msi msi msi móóóódddd

Minden adatbMinden adatbMinden adatbMinden adatbáááázis egy kzis egy kzis egy kzis egy küüüüllllöööön kataln kataln kataln katalóóóógusgusgusgus

Minden tMinden tMinden tMinden táááábla egy vagy tbla egy vagy tbla egy vagy tbla egy vagy tööööbb bb bb bb áááállomllomllomllomáááánynynynyFRM : tFRM : tFRM : tFRM : táááábla szerkezet lebla szerkezet lebla szerkezet lebla szerkezet leíííírrrróóóóMYD : adatokMYD : adatokMYD : adatokMYD : adatokMYI : indexekMYI : indexekMYI : indexekMYI : indexek

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE tnevtnevtnevtnev ((((mezomezomezomezo tipustipustipustipus intfeltintfeltintfeltintfelt,,,,…………) TYPE=) TYPE=) TYPE=) TYPE=myISAMmyISAMmyISAMmyISAM;;;;

BelsBelsBelsBelsőőőő ttttáááárolrolrolroláááási msi msi msi móóóód:d:d:d: ---- fixed rekordmfixed rekordmfixed rekordmfixed rekordmééééretretretret---- vvvvááááltozltozltozltozóóóó rekordmrekordmrekordmrekordmééééret (TEXT, BLOB kret (TEXT, BLOB kret (TEXT, BLOB kret (TEXT, BLOB küüüüllllöööön)n)n)n)---- ttttöööömmmmöööörrrríííített (READONLY)tett (READONLY)tett (READONLY)tett (READONLY)

TTTTááááblablablabla----szintszintszintszintűűűű zzzzáááárolrolrolroláááássssGEIAL Kovács László

Page 113: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

5

mySQLmySQLmySQLmySQL mmmműűűűkkkkööööddddéééésesesese

HEAP HEAP HEAP HEAP ttttáááábla jellemzbla jellemzbla jellemzbla jellemzéééésesesese

A tA tA tA táááábla tartalma a membla tartalma a membla tartalma a membla tartalma a memóóóóririririáááában foglal helyetban foglal helyetban foglal helyetban foglal helyet

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE tnevtnevtnevtnev ((((mezomezomezomezo tipustipustipustipus intfeltintfeltintfeltintfelt,,,,…………) TYPE=HEAP) TYPE=HEAP) TYPE=HEAP) TYPE=HEAP;;;;

ElElElElőőőőnynynynyöööök: k: k: k: ---- gyorsabb mgyorsabb mgyorsabb mgyorsabb móóóódosdosdosdosííííttttáááássss---- szekvenciszekvenciszekvenciszekvenciáááális kereslis kereslis kereslis kereséééés gyorsabbs gyorsabbs gyorsabbs gyorsabb---- felfelfelfelééééppppííííttttéééés gyorsabbs gyorsabbs gyorsabbs gyorsabb

HHHHáááátrtrtrtráááányok:nyok:nyok:nyok: ---- temportemportemportemporáááálislislislis---- lassabb az lassabb az lassabb az lassabb az öööösszetett leksszetett leksszetett leksszetett lekéééérdezrdezrdezrdezééééssss---- kevesebb mezkevesebb mezkevesebb mezkevesebb mezőőőőttttíííípust tpust tpust tpust táááámogatmogatmogatmogat

IndexelIndexelIndexelIndexeléééés lehetss lehetss lehetss lehetsééééges, de csak HASH indexet generges, de csak HASH indexet generges, de csak HASH indexet generges, de csak HASH indexet generáááállll

GEIAL Kovács László

mySQLmySQLmySQLmySQL mmmműűűűkkkkööööddddéééésesesese

innoDBinnoDBinnoDBinnoDB ttttáááábla jellemzbla jellemzbla jellemzbla jellemzéééésesesese

A legnagyobb A legnagyobb A legnagyobb A legnagyobb integritintegritintegritintegritáááánsnsnsns vvvvéééédelmet biztosdelmet biztosdelmet biztosdelmet biztosíííítjatjatjatja

A tA tA tA tááááblblblbláááák egyk egyk egyk együüüütt ttt ttt ttt táááárolrolrolrolóóóódnak (dnak (dnak (dnak (tablespacetablespacetablespacetablespace))))

TTTTáááábla szerkezeti rbla szerkezeti rbla szerkezeti rbla szerkezeti réééésze:sze:sze:sze:FRM : tFRM : tFRM : tFRM : táááábla szerkezet lebla szerkezet lebla szerkezet lebla szerkezet leíííírrrróóóó

TTTTáááábla tartalom (egybla tartalom (egybla tartalom (egybla tartalom (együüüütt)tt)tt)tt)IBDATAnIBDATAnIBDATAnIBDATAn : tartalom, indexek: tartalom, indexek: tartalom, indexek: tartalom, indexek

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE tnevtnevtnevtnev ((((mezomezomezomezo tipustipustipustipus intfeltintfeltintfeltintfelt,,,,…………) TYPE=) TYPE=) TYPE=) TYPE=innoDBinnoDBinnoDBinnoDB;;;;

TTTTáááámogatott szolgmogatott szolgmogatott szolgmogatott szolgááááltatltatltatltatáááások: sok: sok: sok: ---- rekord szintrekord szintrekord szintrekord szintűűűű zzzzáááárolrolrolroláááássss---- ACID elvekACID elvekACID elvekACID elvek---- idegen kulcsidegen kulcsidegen kulcsidegen kulcs

GEIAL Kovács László

Page 114: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

6

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: mysqlmysqlmysqlmysql parancsparancsparancsparancs----felfelfelfelüüüület let let let

----uuuu nevnevnevnev : felhaszn: felhaszn: felhaszn: felhasznáááállllóóóó neveneveneveneve----D D D D nevnevnevnev : adatb: adatb: adatb: adatbáááázis nevezis nevezis nevezis neve----hhhh nevnevnevnev : : : : hosthosthosthost neveneveneveneve----X X X X : XML kimenet: XML kimenet: XML kimenet: XML kimenet----eeee parancs : parancs : parancs : parancs : parancsparancsparancsparancs vvvvéééégrehajtgrehajtgrehajtgrehajtáááássss----pppp ertekertekertekertek: jelsz: jelsz: jelsz: jelszóóóó megadmegadmegadmegadáááásasasasa

osososos> > > > mysqlmysqlmysqlmysql ………… < < < < file.txtfile.txtfile.txtfile.txtmysqlmysqlmysqlmysql> > > > sourcesourcesourcesource file.txtfile.txtfile.txtfile.txt

BatchBatchBatchBatch filefilefilefile futtatfuttatfuttatfuttatáááása: sa: sa: sa:

GEIAL Kovács László

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: mysqlmysqlmysqlmysql queryqueryqueryquery browserbrowserbrowserbrowser

GEIAL Kovács László

Page 115: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

7

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

Kliens csatlakozKliens csatlakozKliens csatlakozKliens csatlakozáááása: sa: sa: sa: osososos> > > > mysqlmysqlmysqlmysql ––––hosthosthosthost H H H H ––––u U u U u U u U ----pppp

AdatbAdatbAdatbAdatbáááázis lzis lzis lzis léééétrehoztrehoztrehoztrehozáááása: sa: sa: sa: sqlsqlsqlsql> CREATE DATABASE db > CREATE DATABASE db > CREATE DATABASE db > CREATE DATABASE db

AdatbAdatbAdatbAdatbáááázis kivzis kivzis kivzis kiváááálasztlasztlasztlasztáááása: sa: sa: sa: sqlsqlsqlsql> USE db1> USE db1> USE db1> USE db1

AdatbAdatbAdatbAdatbáááázisok adatainak lekzisok adatainak lekzisok adatainak lekzisok adatainak lekéééérdezrdezrdezrdezéééése: se: se: se: sqlsqlsqlsql> SHOW DATABASES> SHOW DATABASES> SHOW DATABASES> SHOW DATABASES

TTTTááááblanevek listblanevek listblanevek listblanevek listáááája: ja: ja: ja: sqlsqlsqlsql> SHOW TABLES> SHOW TABLES> SHOW TABLES> SHOW TABLES

Egy tEgy tEgy tEgy táááábla felbla felbla felbla felééééppppííííttttéééésssséééének kijelznek kijelznek kijelznek kijelzéééése: se: se: se: sqlsqlsqlsql> DESCRIBE t> DESCRIBE t> DESCRIBE t> DESCRIBE tááááblablablabla

AktuAktuAktuAktuáááális adatblis adatblis adatblis adatbáááázis neve: zis neve: zis neve: zis neve: sqlsqlsqlsql> SELECT DATABASE()> SELECT DATABASE()> SELECT DATABASE()> SELECT DATABASE()

AdatbAdatbAdatbAdatbáááázis megszzis megszzis megszzis megszüüüüntetntetntetntetéééése: se: se: se: sqlsqlsqlsql> DROP DATABASE db> DROP DATABASE db> DROP DATABASE db> DROP DATABASE db

AlapparancsokAlapparancsokAlapparancsokAlapparancsok

ParancsfelParancsfelParancsfelParancsfelüüüület indlet indlet indlet indííííttttáááása:sa:sa:sa:

AdatbAdatbAdatbAdatbáááázisok kezelzisok kezelzisok kezelzisok kezeléééése:se:se:se:

TTTTááááblblblbláááák kezelk kezelk kezelk kezeléééése:se:se:se:

GEIAL Kovács László

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

SpeciSpeciSpeciSpeciáááális tlis tlis tlis táááábla lehetbla lehetbla lehetbla lehetőőőősssséééégekgekgekgek

A tA tA tA táááábla lehet ideiglenes bla lehet ideiglenes bla lehet ideiglenes bla lehet ideiglenes éééélettartalmlettartalmlettartalmlettartalmúúúú

CREATE TABLE TEMPORARY CREATE TABLE TEMPORARY CREATE TABLE TEMPORARY CREATE TABLE TEMPORARY tnevtnevtnevtnev ((((…………))))

A megszorA megszorA megszorA megszorííííttttáááásokhoz azonossokhoz azonossokhoz azonossokhoz azonosííííttttóóóó nnnnéééév rendelhetv rendelhetv rendelhetv rendelhetőőőő

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE ………… ((((mezomezomezomezo tipustipustipustipus CONSTRAINT CONSTRAINT CONSTRAINT CONSTRAINT mnevmnevmnevmnev kifejezeskifejezeskifejezeskifejezes))))

Automatikus Automatikus Automatikus Automatikus éééértrtrtrtéééékadkadkadkadáááás kulcs mezs kulcs mezs kulcs mezs kulcs mezőőőőknekknekknekknek

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE ………… ((((mezomezomezomezo tipustipustipustipus AUTO_INCREMENT ..)AUTO_INCREMENT ..)AUTO_INCREMENT ..)AUTO_INCREMENT ..)

CreateCreateCreateCreate tabletabletabletable t1 t1 t1 t1 (a (a (a (a intintintint auto_incrementauto_incrementauto_incrementauto_increment primary key, b char(3));primary key, b char(3));primary key, b char(3));primary key, b char(3));Insert into t1(b) values (Insert into t1(b) values (Insert into t1(b) values (Insert into t1(b) values (‘‘‘‘szovegszovegszovegszoveg’’’’); ); ); );

TTTTáááábla teljes tbla teljes tbla teljes tbla teljes töööörlrlrlrléééése: TRUNCATE TABLE se: TRUNCATE TABLE se: TRUNCATE TABLE se: TRUNCATE TABLE tablatablatablatablaGEIAL Kovács László

Page 116: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

8

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

FelhasznFelhasznFelhasznFelhasznáááállllóóóói i i i accountaccountaccountaccount lllléééétrehoztrehoztrehoztrehozáááása: sa: sa: sa: sqlsqlsqlsql> CREATE USER > CREATE USER > CREATE USER > CREATE USER unevunevunevunev IDENTIFIED BY IDENTIFIED BY IDENTIFIED BY IDENTIFIED BY jelszojelszojelszojelszo

A felhasznA felhasznA felhasznA felhasznáááállllóóóó jogait explicite meg kell adnijogait explicite meg kell adnijogait explicite meg kell adnijogait explicite meg kell adni

Teljes jog: GRANT ALL ON *.* TO Teljes jog: GRANT ALL ON *.* TO Teljes jog: GRANT ALL ON *.* TO Teljes jog: GRANT ALL ON *.* TO nevnevnevnev@host@host@host@host

AdatbAdatbAdatbAdatbááááziszisziszis szintszintszintszintűűűű jog: GRANT ALL ON db.* TO jog: GRANT ALL ON db.* TO jog: GRANT ALL ON db.* TO jog: GRANT ALL ON db.* TO nevnevnevnev@host@host@host@host

TTTTáááábla szintbla szintbla szintbla szintűűűű mmmműűűűvelet: GRANT ALL ON velet: GRANT ALL ON velet: GRANT ALL ON velet: GRANT ALL ON db.tabladb.tabladb.tabladb.tabla TO TO TO TO nevnevnevnev@host@host@host@host

MezMezMezMezőőőőszintszintszintszintűűűű mmmműűűűveletek: veletek: veletek: veletek: GRANT SELECT(mezGRANT SELECT(mezGRANT SELECT(mezGRANT SELECT(mezőőőő), INSERT(mez), INSERT(mez), INSERT(mez), INSERT(mezőőőő) ON ) ON ) ON ) ON db.tabladb.tabladb.tabladb.tabla TO TO TO TO nevnevnevnev@host@host@host@host

Jogok Jogok Jogok Jogok éééés privils privils privils priviléééégiumok adhatgiumok adhatgiumok adhatgiumok adhatóóóókkkk kikikiki

GEIAL Kovács László

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

Index lIndex lIndex lIndex léééétrehoztrehoztrehoztrehozáááása: sa: sa: sa: CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX inevinevinevinev ON ON ON ON tablatablatablatabla (mezo1 ASC|DESC,..) (mezo1 ASC|DESC,..) (mezo1 ASC|DESC,..) (mezo1 ASC|DESC,..) USING BTREE | HASH | RTREEEUSING BTREE | HASH | RTREEEUSING BTREE | HASH | RTREEEUSING BTREE | HASH | RTREEE

Index tIndex tIndex tIndex töööörlrlrlrléééése: DROP INDEX se: DROP INDEX se: DROP INDEX se: DROP INDEX nevnevnevnev

BTREEBTREEBTREEBTREE HASHHASHHASHHASH RTREERTREERTREERTREE

create table ss2 (a create table ss2 (a create table ss2 (a create table ss2 (a intintintint, b , b , b , b intintintint, c char(10));, c char(10));, c char(10));, c char(10));create index i2 on ss2 (create index i2 on ss2 (create index i2 on ss2 (create index i2 on ss2 (a,ba,ba,ba,b););););Select count(*) from ss2 where b=5; Select count(*) from ss2 where b=5; Select count(*) from ss2 where b=5; Select count(*) from ss2 where b=5; // // // // 00000000.64 sec.64 sec.64 sec.64 secSelect count(*) from ss2 where a=5; Select count(*) from ss2 where a=5; Select count(*) from ss2 where a=5; Select count(*) from ss2 where a=5; // 0// 0// 0// 00000.0.0.0.00000 secsecsecsecSelect count(*) from ss2 where Select count(*) from ss2 where Select count(*) from ss2 where Select count(*) from ss2 where a+ba+ba+ba+b=10 // =10 // =10 // =10 // 00000000.68 sec.68 sec.68 sec.68 secDeleteDeleteDeleteDelete fropmfropmfropmfropm ss2 ss2 ss2 ss2 wherewherewherewhere b<5; b<5; b<5; b<5; // // // // 27.1027.1027.1027.10 secsecsecsec

GEIAL Kovács László

Page 117: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

9

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

KarakterkKarakterkKarakterkKarakterkéééészlet, rendezszlet, rendezszlet, rendezszlet, rendezéééési sorrendsi sorrendsi sorrendsi sorrend

CHARACTER SET: ABC, betCHARACTER SET: ABC, betCHARACTER SET: ABC, betCHARACTER SET: ABC, betűűűűkkkkéééészlet (cp1250, latin2,szlet (cp1250, latin2,szlet (cp1250, latin2,szlet (cp1250, latin2,…………))))

AdatbAdatbAdatbAdatbáááázis, tzis, tzis, tzis, táááábla bla bla bla éééés mezs mezs mezs mezőőőő szinten lehet beszinten lehet beszinten lehet beszinten lehet beáááállllllllíííítani tani tani tani

CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE tnevtnevtnevtnev () CHARACTER SET () CHARACTER SET () CHARACTER SET () CHARACTER SET nevnevnevnev COLLATE COLLATE COLLATE COLLATE nevnevnevnev

CreateCreateCreateCreate tabletabletabletable ss1 (a int, b ss1 (a int, b ss1 (a int, b ss1 (a int, b charcharcharchar(10)) CHARACTER SET cp850(10)) CHARACTER SET cp850(10)) CHARACTER SET cp850(10)) CHARACTER SET cp850collatecollatecollatecollate cp850_cp850_cp850_cp850_binbinbinbin;;;;

Konstans karaktertKonstans karaktertKonstans karaktertKonstans karaktertíííípuspuspuspusáááának benak benak benak beáááállllllllííííttttáááása: _sa: _sa: _sa: _tipustipustipustipus’’’’éééértrtrtrtéééékkkk’’’’

COLLATION: rendezCOLLATION: rendezCOLLATION: rendezCOLLATION: rendezéééési sorrendissi sorrendissi sorrendissi sorrendiséééégggg

GEIAL Kovács László

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

KarakterkKarakterkKarakterkKarakterkéééészlet, rendezszlet, rendezszlet, rendezszlet, rendezéééési sorrendsi sorrendsi sorrendsi sorrend

create table ss5 (a create table ss5 (a create table ss5 (a create table ss5 (a intintintint, b char(20)) character set cp850;, b char(20)) character set cp850;, b char(20)) character set cp850;, b char(20)) character set cp850;create table ss6 (a create table ss6 (a create table ss6 (a create table ss6 (a intintintint, b char(20)) character set , b char(20)) character set , b char(20)) character set , b char(20)) character set latin2latin2latin2latin2;;;;insert into ss5 values (1,'ainsert into ss5 values (1,'ainsert into ss5 values (1,'ainsert into ss5 values (1,'aááááeeeeééééiiiiííííooooóöóöóöóöőőőőuuuuúüúüúüúüűűűű'); '); '); '); -------- hibahibahibahibainsert into ss6 values (1,'ainsert into ss6 values (1,'ainsert into ss6 values (1,'ainsert into ss6 values (1,'aááááeeeeééééiiiiííííooooóöóöóöóöőőőőuuuuúüúüúüúüűűűű'); '); '); '); -------- rendbenrendbenrendbenrendben

select * from ss6 order by b collate latin2_hungarian_cselect * from ss6 order by b collate latin2_hungarian_cselect * from ss6 order by b collate latin2_hungarian_cselect * from ss6 order by b collate latin2_hungarian_ciiii

aaaaááááeeeeééééiiiiííííáááálomlomlomlomaromaaromaaromaaromaééééletletletleterederederederedőőőőíííírhatrhatrhatrhatitatitatitatitatkeletkeletkeletkeletüüüüzletzletzletzlet

select * from ss6 order by b collate latin2_select * from ss6 order by b collate latin2_select * from ss6 order by b collate latin2_select * from ss6 order by b collate latin2_binbinbinbin

aromaaromaaromaaromaaaaaááááeeeeééééiiiiííííerederederederedőőőőitatitatitatitatkeletkeletkeletkeletáááálomlomlomlomééééletletletletíííírhatrhatrhatrhatüüüüzletzletzletzletGEIAL Kovács László

Page 118: AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés

10

mySQLmySQLmySQLmySQL hasznhasznhasznhasznáááálatalatalatalata

GyGyGyGyáááári fri fri fri füüüüggvggvggvggvéééényeknyeknyeknyek

DDDDáááátum kezeltum kezeltum kezeltum kezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

SelectSelectSelectSelect daynamedaynamedaynamedayname((((convertconvertconvertconvert((((‘‘‘‘1968196819681968----11111111----12121212’’’’));));));));select datediff(curdate(),convert('196select datediff(curdate(),convert('196select datediff(curdate(),convert('196select datediff(curdate(),convert('1968888----11111111----11112222',datetime))',datetime))',datetime))',datetime));;;;

SzSzSzSzööööveg kezelveg kezelveg kezelveg kezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

SelectSelectSelectSelect upperupperupperupper((((substrsubstrsubstrsubstr((((rpadrpadrpadrpad((((nevnevnevnev),2));),2));),2));),2));UpdateUpdateUpdateUpdate ugyfelekugyfelekugyfelekugyfelek setsetsetset lakcimlakcimlakcimlakcim====replacereplacereplacereplace((((lakcimlakcimlakcimlakcim,,,,’’’’BpBpBpBp’’’’,,,,’’’’BudapestBudapestBudapestBudapest’’’’););););

SzSzSzSzáááámkezelmkezelmkezelmkezelőőőő ffffüüüüggvggvggvggvéééényeknyeknyeknyek

SelectSelectSelectSelect floorfloorfloorfloor (1 + (1 + (1 + (1 + randrandrandrand()*89)()*89)()*89)()*89)SelectSelectSelectSelect powerpowerpowerpower(2,6)(2,6)(2,6)(2,6)

GEIAL Kovács László