1 Adatb Adatb Adatb Adatbázis rendszerek I zis rendszerek I zis rendszerek I zis rendszerek I Adatkezel Adatkezel Adatkezel Adatkezelés s s s és adatb s adatb s adatb s adatbázis zis zis zis kezel kezel kezel kezelés alapfogalmai s alapfogalmai s alapfogalmai s alapfogalmai Dr. Kov Dr. Kov Dr. Kov Dr. Kovács L cs L cs L cs Lászl szl szl szló ME ME ME ME- GEIAL GEIAL GEIAL GEIAL Inform Inform Inform Informáci ci ci ciós rendszerek s rendszerek s rendszerek s rendszerek bankszektor bankszektor bankszektor bankszektor NSA telekommunik NSA telekommunik NSA telekommunik NSA telekommunikáci ci ci ció kereskedelem kereskedelem kereskedelem kereskedelem kutat kutat kutat kutatás Adatok minden Adatok minden Adatok minden Adatok mindenütt tt tt tt GEIAL Kovács László
118
Embed
AdatbAdatbá ááázis rendszerek Izis rendszerek Iusers.iit.uni-miskolc.hu/~savoli/ab1-all.pdf · AdatbAdatbá ááázis rendszerek Izis rendszerek I AdatkezelAdatkezelé ééés
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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))))
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
struktstruktstruktstruktúúúúra lera lera lera leíííírrrróóóóééééppppííííttttőőőő elemek elemek elemek elemek definidefinidefinidefiniáááálllláááásasasasa
integritintegritintegritintegritáááási feltsi feltsi feltsi feltéééételektelektelektelekstatikus vagy statikus vagy statikus vagy statikus vagy aktivaktivaktivaktiv szabszabszabszabáááályoklyoklyoklyok
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
A hA hA hA háááállllóóóó adatmodell formai leadatmodell formai leadatmodell formai leadatmodell formai leíííírrrráááása (1971)sa (1971)sa (1971)sa (1971)
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
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
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
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
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
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
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:
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
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
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
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
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
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
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 →→→→
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óóóó
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
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
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
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
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)
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úúúú
A relA relA relA reláááácicicicióóóós algebrai ms algebrai ms algebrai ms algebrai műűűűveletek veletek veletek veletek ááááttekintttekintttekintttekintéééésesesese
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
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
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
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
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)
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
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
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
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
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:
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őőőő
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űűűű
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
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))))
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
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
1975: SEQUEL 1975: SEQUEL 1975: SEQUEL 1975: SEQUEL StructuredStructuredStructuredStructured English English English English QueryQueryQueryQuery LanguageLanguageLanguageLanguage
IngresIngresIngresIngresOracleOracleOracleOracleIBM DB2IBM DB2IBM DB2IBM DB2SybaseSybaseSybaseSybaseInformixInformixInformixInformixMS MS MS MS SQLServerSQLServerSQLServerSQLServerPostgresSQLPostgresSQLPostgresSQLPostgresSQLmySQLmySQLmySQLmySQLAccessAccessAccessAccess
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;
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!
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))));;;;
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 ;
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’);
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!
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 UPDATE UPDATE UPDATE tablatablatablatabla SET SET SET SET mezomezomezomezo= = = = éééértrtrtrtéééék,... WHERE feltk,... WHERE feltk,... WHERE feltk,... WHERE feltéééétel;tel;tel;tel;
ÜÜÜÜ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’,..);
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
ÁÁÁÁ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
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
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
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
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?
ÁÁÁÁ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
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
TTTTááááblblblbláááák k k k öööösszekapcsolsszekapcsolsszekapcsolsszekapcsoláááása, Descartessa, Descartessa, Descartessa, Descartes----szorzat szorzat szorzat szorzat
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
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
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’’’’
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
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
AggregAggregAggregAggregááááltltltlt éééés rs rs rs réééészletezszletezszletezszletezőőőő kifejezkifejezkifejezkifejezéééések nem keveredhetnek sek nem keveredhetnek sek nem keveredhetnek sek nem keveredhetnek
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;
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;
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
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
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
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%’’’’))))
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
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
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]+’’’’
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
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
CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : CONCAT(kar1, kar2) : sztringeksztringeksztringeksztringek öööösszefsszefsszefsszefűűűűzzzzéééése se se se GEIAL Kovács László
CAST(CAST(CAST(CAST(kifkifkifkif AS AS AS AS tipustipustipustipus) : tetsz) : tetsz) : tetsz) : tetszőőőőleges irleges irleges irleges iráááánynynynyúúúú konverzikonverzikonverzikonverzióóóó
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}…
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
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
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
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.
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
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
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
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
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óóóó
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 …………
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
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
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
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
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))
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
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;;;;
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:
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)
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?
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 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
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
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
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őőőő
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
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
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
---- 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””””
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
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
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
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
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
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
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
---- 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
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
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]:
---- 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
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
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
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ó
Bin Bin Bin Bin ((((---->>>>PathPathPathPath))))DataDataDataDataDocsDocsDocsDocsExamplesExamplesExamplesExamplesIncludeIncludeIncludeIncludeliblibliblibShareShareShareShare
SzolgSzolgSzolgSzolgááááltatltatltatltatáááás (s (s (s (mySQLmySQLmySQLmySQL)))) ÁÁÁÁllomllomllomllomáááányok, katalnyok, katalnyok, katalnyok, katalóóóógusokgusokgusokgusok
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
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
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))))
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
Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: Kliens oldali elemek: mysqlmysqlmysqlmysql queryqueryqueryquery browserbrowserbrowserbrowser
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
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
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ó
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
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
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;;;;
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
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ó