Upload
others
View
11
Download
0
Embed Size (px)
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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!
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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
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
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
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
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óóóó
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.
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
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
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)
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))))
}}}}
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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
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ó
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ó
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ó
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ó
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ó
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ó
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]+’’’’
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ó
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ó
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ó
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
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////…………
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
4
SQL VIEW objektumSQL VIEW objektumSQL VIEW objektumSQL VIEW objektum
VIEW mVIEW mVIEW mVIEW móóóódosdosdosdosííííttttáááásrasrasrasra
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
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óóóó
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
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
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óóóó
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
11
NULL NULL NULL NULL éééértrtrtrtéééék kezelk kezelk kezelk kezeléééésesesese
NULL NULL NULL NULL éééértrtrtrtéééék NVLk NVLk NVLk NVL
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó
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ó