adatbázisok megvalósítása v1 · adatbázisok 2016. 12. 31. mmk-informatikai projekt ellenőr...

49
ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE) DOMBORA SÁNDOR 2016. 12. 31. MMK- Informatikai projektellenőr képzés 30 MB INFORMATIKAI PROJEKTELLENŐR

Upload: others

Post on 21-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

ADATBÁZISOKMEGVALÓSÍTÁSA(ADATBÁZISOK,ADATBÁZISKEZELŐK,ADATBÁZISOKFELÉPÍTÉSE,ADATBÁZISOKTERVEZÉSE)

DOMBORA SÁNDOR

2016.12.31. MMK- Informatikaiprojektellenőrképzés

30MB

INFORMATIKAI PROJEKTELLENŐR

Page 2: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Tartalom

2016.12.31. MMK-Informatikaiprojektellenőrképzés 2

• Adatbázisok(relációs,objektumrelációs,NoSQL)• Adatbáziskezelőrendszerek• Adatbázisokfelépítése• Adatbázisoktervezése

Page 3: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 3

Adatbáziskezelés Adatbázisok

• Adatbázisonvalamelycélmegvalósításánakérdekébengyűjtött,feldolgozottéstároltadatokacélelérésénekérdekébenmegfelelőenrendszerezettésrendezettstruktúrábantároltváltozatátértjük.

• Azadatokömlesztetttárolásanemtekinthetőadatbázisnak,mivelhiányzikbelőlearendszerezésésastruktúra.

Azadatbázisfogalma

• Papíron,irattárbanrendezett,rendszerezettformában• Elektronikusúton,számítógépesrendszerekben

Adatbázisoktárolásiformája

Page 4: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 4

Adatbáziskezelés Adatbázisok

• Bankirendszerek• Vállalatinyilvántartások• Repülőgéphelyfoglalásirendszerek• Könyvtárinyilvántartások• Irattárinyilvántartások

Példák

• Valósidőben(azonnal)• Párhuzamosan(egyszerresokfelhasználó)

Alapvetőhozzáférésiigények

Page 5: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adattárolás

2016.12.31. MMK-Informatikaiprojektellenőrképzés 5

Adatbáziskezelés Adatbázisok

• Adatokatazótatarolunk,miótalétezikazírás• Azelsőadatbázisokakartotékok,irattárakvoltak• Aszámítógépekmegjelenéseéselterjedéselehetővétetteazadatokelektronikustárolását

• Azelsőszámítógépesadatbázisoktárolásalyukszalagon,lyukkártyántörtént,amelyeknemvoltakdirektmódonelérhetőkaszámítógépekszámára

Történelmiháttér

Page 6: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adattárolás

2016.12.31. MMK-Informatikaiprojektellenőrképzés 6

Adatbáziskezelés Adatbázisok

• Amágnesesadathordozókmegjelenéseéselterjedéseegyszerűsítetteazadatoktárolásátéshozzáférését

• Ekkormégegyedi,speciálisszoftverekkellettekazadatokkezeléséhez

• Aszámítástechnikagyorsfejlődése(Mooretörvény)lehetővétetteegyrenagyobbmennyiségűadatokfeldolgozásátéstárolását

Történelmiháttér

Page 7: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adattárolás

2016.12.31. MMK-Informatikaiprojektellenőrképzés 7

Adatbáziskezelés Adatbázisok

• Aszámítógépekfejlődésévelegyüttfejlődtekaprogramozásinyelvekésegyretöbblehetőségnyíltazadatokelektronikusfeldolgozásáraéstárolására

• Azadatokmennyiségéneknövekedésével, azadatokegyedifeldolgozásaéstárolásafárasztóésidőrablófeladattávált

• Megjelentazadatokegységesésáltalánosmódonvalófeldolgozásánakigénye

• EnnekmenténfejlődtekkiazAdatbáziskezelőrendszerek(DBMS)

Történelmiháttér

Page 8: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelő rendszerek

2016.12.31. MMK-Informatikaiprojektellenőrképzés 8

Adatbáziskezelés Adatbázisok

• Tegyelehetővétetszőlegesadatbázisok(adatszerkezetek) létrehozását

• Szabványosmódontámogassaazadatoklekérdezésétésmódosítását(egységeslekérdezőnyelv)

• Támogassanagymennyiségűadattárolásátésvisszakereshetőségéthosszútávon

Adatkezelésielvárások

Page 9: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelő rendszerek

2016.12.31. MMK-Informatikaiprojektellenőrképzés 9

Adatbáziskezelés Adatbázisok

• Garantáljaazadatokbiztonságátameghibásodássalésilletéktelenhozzáférésselszemben

• Felügyeljeazadatokhozzáférésétazadatokhoz,olyanmódon,hogyazegyesfelhasználókműveleteinelegyenekhatássalatöbbifelhasználómunkájára

• Azegyidejűhozzáférésekneokozhassanakadathibátvagyinkonzisztenciát

Biztonságielvárások

Page 10: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelő rendszerek célja

2016.12.31. MMK-Informatikaiprojektellenőrképzés 10

Adatbáziskezelés Adatbázisok

• Afejlesztőneknekelljenfoglalkozniafizikaiszintűadattárolással

• Rejtseelafelhasználóelőlaszámítógépekarchitektúráját

• Azeszközöktípusátólfüggetlenülazalkalmazásugyanúgyhasználhatólegyenazadatbáziskezelőáltaltámogatottmindenplatformon

Absztrakciósréteg

Page 11: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelő rendszerek célja

2016.12.31. MMK-Informatikaiprojektellenőrképzés 11

Adatbáziskezelés Adatbázisok

• Azoperációsrendszerekkülönbözőadatelérésimódokattámogatnak

• Rejtseelazadatelérésmódjátafelhasználóvagyfejlesztőelőlakinekalekérdezésmegfogalmazásaésneazadatokelőállításimódjalegyenfeladat

• Többadatelérésimódrendelkezésreállásaeseténazoptimáliskiválasztása

Függetlenségazadatelérésmódjától

Page 12: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelő rendszerek célja

2016.12.31. MMK-Informatikaiprojektellenőrképzés 12

Adatbáziskezelés Adatbázisok

• Azadatokszerkezetiváltozásaiminélkevésbébefolyásoljákazalkalmazásokműködését

• Azadatokszerkezetibővítéseneokozzonproblémátazalkalmazásműködésében

Függetlenségazadattárolástól

Page 13: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázis modellek (napjainkban)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 13

Adatbáziskezelés Adatbázisok

• Azadatoktáblázatosábrázolása,megjelenítése• Egysoregyentitástírle• Atáblázatokatnevezzükrelációknak

Relációsadatbázismodell

• Arelációsadatmodellbővítésévelálltelő• Azobjektumorientáltmegközelítésbenhasználtobjektumésöröklődésimodelltalkalmazzaarelációkatmegvalósítótáblákra

• Támogatjaazadattípusokbővítésétsajátadattípusokkal(objektumok)

Objektum-relációsmodell

Page 14: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázis modellek (napjainkban)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 14

Adatbáziskezelés Adatbázisok

• Kétfontosjellemzőamelyekmenténfejlesztik:performancia ésskálázhatóság

• Arelációsadattárolástóleltérőtárolásimódothasznál• kulcs-értékpárok• gráfstruktúra

NoSQL – Not only SQL

Page 15: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázis modellek (napjainkban)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 15

Adatbáziskezelés Adatbázisok

• Nagymennyiségűadatkezelése• Agilismódszertanoktámogatása(iterációésgyakorikódpublikálása)

• Dinamikusadatbázisséma(nincselőredefiniáltstruktúra,méretmeghatározás)– pl.újattribútumokhozzáadásaeseténnemkellameglévőadatokatkarbantartani

• Osztottfeldolgozástámogatása– automatikuspartícionálás – azalkalmazásnaknemkelltudniaamögötteállószerverhierarchiáról

• Automatikusadatreplikáció,nemkellezzelfoglalkozniaazalkalmazásnak

NoSQL előnyei

Page 16: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbáziskezelők felépítése

2016.12.31. MMK-Informatikaiprojektellenőrképzés 16

Adatbáziskezelés Adatbázisok

AdatokMetaadatok

Tárkezelő

Feldolgozó

Tranzakció-kezelő

Sémamódosítások Lekérdezések Adatmódosítások

Forrás: Jeffrey D. Ullman – Jenifer Widom: Adatbázisrendszerek

Page 17: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázis műveletek

2016.12.31. MMK-Informatikaiprojektellenőrképzés 17

Adatbáziskezelés Adatbázisok

• Végrehajtásukhozspeciálisjogosultságravanszükség• DataDefinition Language (DDL)segítségéveltörténik• Műveletekameta-adatokszintjén:• Sémalétrehozás• Sématörlés

• Struktúrák:• Létrehozása• Módosítása• Törlése

Séma(meta-adat)módosítások

Page 18: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatbázis műveletek

2016.12.31. MMK-Informatikaiprojektellenőrképzés 18

Adatbáziskezelés Adatbázisok

• DataManipulation Language (DML)segítségéveltörténik

• Elvégezhetőműveletek• Adatoklétrehozása• Adatokmentése• Adatokkeresése• Adatokmódosítása• Adatoktörlése

Adatmanipuláció

Page 19: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 19

Adatbáziskezelés Adatbázisok

• Adattáblák(relációk)• Adattábláksorokbólésoszlopokbólállnak• Azoszlopokatattribútumoknakisnevezzük• Asorokazonosítóvalrendelkezhetnek(elsődlegeskulcs)

• Atáblákoszlopai(attribútumai)hivatkozhatnakmásiktáblákelsődlegeskulcsaira– idegenkulcsok

Adatstruktúrákrelációsadatbázisokban

Page 20: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 20

Adatbáziskezelés Adatbázisok

ID Név Beosztás Szervezet Törölt

1 Kiss János Könyvelő 1 Hamis

2 NagyBéla Informatikus 2 Hamis

3 … … … …

ID Név Leírás Törölt

1 Pénzügy Pénzügyiés … Hamis

2 Informatika Informatikai… Hamis

3 … … …

Adatkapcsolatok

Hivatkozások másik tábla elsődleges kulcsára

Szervezetek

Szemelyek

Elsődleges kulcs

Egyedi azonosító

Page 21: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 21

Adatbáziskezelés Adatbázisok

• Adatokgyorshozzáférésétbiztosítják• Különbözőtípusúindexekléteznek,azelterjedtebbek:• B-faindex• Bittérképindex• teljesszövegindexelés

• Amegfelelőindexeklétrehozásafelgyorsítjaazadatokkezelését

• Túlsokindexlétrehozásalassítjaazadatoklétrehozásátésmódosítását(mindenadatotfelkellvenniearendszernekazindexekbeis)

Indexek

Page 22: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 22

Adatbáziskezelés Adatbázisok

B-faindexek

6 27 50

1 2 3 4 5 16 18 22 30 35

7 8 9 11 15

Page 23: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 23

Adatbáziskezelés Adatbázisok

Bittérképindexek

ID Név Osztályzat

1 KissPista 1

2 NagyBéla 5

3 KovácsAndrás 4

4 LazaKati 4

5 ErősPista 5

1 2 3 4 5

1 0 0 0 0

0 0 0 0 1

0 0 0 1 0

0 0 0 1 0

0 0 0 0 1

BittérképekMinden értékhez van egy bittérkép

TáblaOsztályzat oszlop kevés fix (előre rögzített) értékkel

Page 24: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 24

Adatbáziskezelés Adatbázisok

• Gyárifüggvényekéseljárások• Támogatjákafelhasználóttetszőlegeseredményekelőállításában

• Lehetővéteszikazadatbázisbantároltadatoktetszőlegesátalakítását

• Felhasználóiadattípusok• Lehetővéteszikazadatbázis-kezelőrendszerekadattípusainakbővítését

Továbbiadatbázisobjektumok

Page 25: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 25

Adatbáziskezelés Adatbázisok

• Felhasználóáltaldefiniáltprogramcsomagok•Megírásukadatbáziskezelőbeintegráltprogramozásinyelventörténik

• Lehetővéteszikazadatokhelybelifeldolgozásátazadatbáziskezelőrendszerenbelül

• Nemkellazadatokatkiolvasniésátemelniakliensreésvisszaírniazadatbázisba

• Kiválóbatchadatfeldolgozásifeladatokelvégzésére• Alkalmaskomplextriggerek megírására

Tárolteljárásokésfüggvények

Page 26: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 26

Adatbáziskezelés Adatbázisok

• Akülönbözőadatbáziskezelő rendszerekmás-másprogramozásinyelvetkínálnakacélmegvalósítására

• Alkalmazásuknagyobbperformanciát eredményez,főlegnagymennyiségűfeladatfeldolgozásakor– nincsadatmozgatáshálózaton,csakegykontextusváltásaszerverenbelül

• Legismertebbprogramozásinyelvek• Oracle– PL/SQL• MSSQL– Tanzasc-SQL• pgSQL – PL/pgSQL• …

Tárolteljárásokésfüggvények

Page 27: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 27

Adatbáziskezelés Adatbázisok

• Adatokírásaésolvasásaközbenmeghívotteseménykezelőeljárások

• Azadattáblákbabeírtadatokellenőrzésére,kiegészítésére,átalakításárahasználják,példáulüresoszloptartalmánakfeltöltése,adatérvényeségénekellenőrzése,stb.

• Lehetsoronként(for each row)ésutasításonkéntvégrehajtott

• Lehetadatíráselőttvagyutánvégrehajtott(beforeinsert,before update,after insert,after update)

• Megírásukadatbáziskezelőspecifikus

Triggerek

Page 28: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 28

Adatbáziskezelés Adatbázisok

• Primary key (elsődlegeskulcs)• egyediértékazoszloponbelül• Egydei indexkészülhozzá

• Foreign key (idegenkulcs)• Másiktáblaelsődlegeskulcsáravalóhivatkozás• Referenciaintegritáskikényszerítésére• Csakolyankulcsértékszerepelhetatáblában,amelylétezikahivatkozotttáblaelsődlegeskulcsértékeiközött

• Ellenőrzésimegszorítás• Oszlopértékkészleténekamegadása

Megszorítások

Page 29: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 29

Adatbáziskezelés Adatbázisok

• Adatoktárolásánakszegmentálásaazadattáblákbantároltadatokalapján

• Leginkábbnagymennyiségűadatgyorsabblekérdezéseeseténhasználják

• Például:számlákszétosztásatáblapartíciókközöttkiállításihónapvagyévalapján

• Lekérdezésekvégrehajtásánakfelgyorsítása:haapartícionálásban érintettadatmenténkeresünk,arendszercsakazokatapartíciókatveszifigyelembe,amelyekrelevánsadatottartalmazhatnak

• Megvalósításaadatbáziskezelőfüggő

Partícionálás

Page 30: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 30

Adatbáziskezelés Adatbázisok

• Szabványoslekérdezőnyelv•Mindenrelációsadatbáziskezelőtámogatja• Lehetővétesziazadatokalattiadatbáziskezelőmotorcseréjétaprogramkódcseréjenélkül

• Gyártóikiegészítések• Kényelmesebbéteszikahasználatát• Nagyobbperformanciát nyújtóopciók• Platformfüggővéteszikazalkalmazást

StandardQuery Language

Page 31: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 31

Adatbáziskezelés Adatbázisok

• Insert – adatsorokokbeszúrásaadattáblákba

• Update– adatsorokattribútumainakmódosításaadottfeltételekmentén

• Delete - adatsoroktörléseadottfeltételekmentén

• Select – adatoklekérdezéseadattáblákból

SQLutasítások

Page 32: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 32

Adatbáziskezelés Adatbázisok

• SELECT kifejezés1as oszlop,kifejezés2as oszlop,…• FROM tábla1alias1[INNER|LEFTOUTER|RIGHTOUTER]JOINtábla2alias2ONfeltétel2…[INNER|LEFTOUTER|RIGHTOUTER]JOINtáblaX aliasXONfeltételX

•WHERE feltétel• GROUPBYkifejezések• HAVINGfeltétel• ORDERBY kifejezések• LIMITkezdőadat,adatmennyiség

Select utasítás

Page 33: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 33

Adatbáziskezelés Adatbázisok

• SELECT kifejezés1as oszlop,kifejezés2AS oszlop,…

• Kifejezéseketadhatunkmeg,amelyekaz• adattáblaoszlopainakértékeiből,• konstansokból,• függvényhívásokból(gyáriéssaját)• műveletekbőlállnak

• Azelőállítottértékheztetszőlegeselnevezéstkapcsolhatunk

Select – Elővettadatoklistája

Page 34: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 34

Adatbáziskezelés Adatbázisok

• FROM tábla1alias1[INNER|LEFTOUTER|RIGHTOUTER]JOINtábla2alias2ONfeltételek2…[INNER|LEFTOUTER|RIGHTOUTER]JOINtáblaXaliasX ONfeltételekX

• Egylekérdezésbenegyvagytöbbtáblábólisvehetünkelőadatokat

• DESCARTESszorzatot(mindensor– mindensorral)

• Adhatunkmegösszekapcsolásifeltételeket JOIN

FROM– Honnanvesszükelő

Page 35: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 35

Adatbáziskezelés Adatbázisok

• Kiválogathatjuk:• csakazösszekapcsolásifeltételeknekmegfelelősorokat(INNERJOIN)

• abaloldalitáblasoraithozzákapcsolvaajobboldalitáblasoraitamelyekmegfelelnekazösszekapcsolásifeltételnek(LEFTOUTERJOIN)

• ajobboldalitáblasoraithozzákapcsolvaajobboldalitáblasoraitamelyekmegfelelnekazösszekapcsolásifeltételnek(RIGHTOUTERJOIN)

FROM– Honnan

Page 36: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 36

Adatbáziskezelés Adatbázisok

• WHERE feltétel• Azadattáblákbóltetszőlegesfeltételekmenténválogathatunksorokat

• Afeltétel eredményeegylogikaiérték(igaz/hamis),amelytovábbikifejezésektetszőlegesösszekapcsolásábólállhat

• Például:WHEREtabla1.attributum2=10andtabla2.attributum3>tabla1.attributum2

WHERE– Milyenfeltétleknekmentén

Page 37: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 37

Adatbáziskezelés Adatbázisok

• GROUPBYkifejezések• Összegzések, statisztikákelőállítása• Akövetkezőkérdésekreadottválasz:

• Hányolyansorvan…COUNT• Mennyiazösszegea…SUM• Mennyiazátlaga…AVG• Továbbistatisztikaifüggvények

• Akifejezésekáltalalkotottcsoportonkéntkapjukaválaszt• ASELECT utáncsakstatisztikaifüggvényekésaGROUPBYkifejezési szerepelhetnek

GROUPBY- csoportosítás

Page 38: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 38

Adatbáziskezelés Adatbázisok

• HAVING feltételek• Acsoportosítássoránelőállítottadatokbólválogathatunkafeltételmentén

• Azeredménybenazokacsoportokjelennekmeg,amelyekelegettesznekaHAVINGutánszereplőfeltételeknek

• Afeltételtipikusanacsoportosítássalelőállítottvalamelystatisztikaiértékrevonatkozik

• Példa:Azoncsoportokmegjelenítéseamelytöbbmint5sorbólálltössze:HAVINGCOUNT(ID)>5

HAVING– csoportokszűrése

Page 39: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 39

Adatbáziskezelés Adatbázisok

• ORDERBY kifejezések• Adatoksorbaállításakifejezésekmentén• Azegyeskifejezésekesetébenmegadhatjuk,hogymelyekmenténállítjuknövekvő(ASC)illetvecsökkenő(DESC)sorrendbeazadatokat

• Példa:ORDERBYSZERVEZETASC,FIZETESDESC

ORDERBY– eredménysorbaállítása

Page 40: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Adatok lekérdezése (SQL)

2016.12.31. MMK-Informatikaiprojektellenőrképzés 40

Adatbáziskezelés Adatbázisok

• LIMITkezdőadat,adatmennyiség• Gyakranfordulelő,hogyazeredménynagymennyiségűadatottartalmaz,amitegyszerrenemlehetmegjeleníteniaképernyőn,ilyenkorlapozásitechnikátalkalmazunk

• Megadhatjuk,hogyazeredményvalamelysorátóladottsormennyiségettartalmazzonazeredmény

• Adatbáziskezelőszervertőlfüggőenennekszintaktikájaváltozhat(OracleesetébenROWNUM)

LIMIT– szegmentálás

Page 41: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 41

Adatbáziskezelés Adatbázisok

• Nagyadatmennyiségesetébennemmindegy,hogymilyensorrendbenhajtjavégrearendszerazeredményösszeállítását

• Alapvetőenkétféleoptimalizálásimódotkülönböztetünkmeg• Szabályalapú• Költségalapú

• Végrehajtásitervekkészítése,kiértékelése

Lekérdezésekoptimalizálása

Page 42: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 42

Adatbáziskezelés Adatbázisok

• Mindenadatbázisháttérműveletnekmegvanaprioritása• Indexekretámaszkodik(nemkellvégigolvasniatáblákat)• Full table scan (teljestáblaolvasás– nincsmegfelelő index)• Indexscan (indexolvasásmajdcsakazindexbenmegtaláltsorokelővétele)

• Atáblákösszekapcsolásáhoztöbbféletechnikátishasználhat• NESTEDLOOP(összefésüliakéttáblasorait)• SORT-MERGE(atábláksorbaállítottsoraitfésüliössze)• HASHJOIN(kihasználjaaSORT-MERGEalgoritmuskarakterisztikáit,azazonosértékekegymásmelletiségét,csoportosíthatóságát)

Azoptimalizálástechnikákratámaszkodik

Page 43: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 43

Adatbáziskezelés Adatbázisok

• Mindenadatbázisműveletnekmegvaaprioritása

• Alekérdezőmotormeghatározzaazeredményelőállításáhozszükségesfeldolgozásiműveleteket

• Aműveletekprioritásaalapjánazadatokminőségétőlfüggetlenülállítjasorbaakülönbözővégrehajtásiterveket

Szabályalapúoptimalizálás

Page 44: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok

2016.12.31. MMK-Informatikaiprojektellenőrképzés 44

Adatbáziskezelés Adatbázisok

• Alkalmazásáhozadatminőségistatisztikákravanszükség(mennyiség,eloszlás,stb.)

• Mindenadatbázisműveletnekbecsülhetőaköltségestatisztikákalapján

• Alekérdezőmotormeghatározzaazeredményelőállításáhozszükségesfeldolgozásiműveleteket

• Azoptimalizáló• meghatározzaaműveletekköltségétazadatokminőségétőlfüggően

• összegeziabekerülési költségeketésezalapjánállítjasorbaavégrehajtásiterveket

Költségalapúoptimalizálás

Page 45: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Lekérdezések optimalizálása

2016.12.31. MMK-Informatikaiprojektellenőrképzés 45

Adatbáziskezelés Adatbázisok

Forrás: Oracle.com

Page 46: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Lekérdezések optimalizálása

2016.12.31. MMK-Informatikaiprojektellenőrképzés 46

Adatbáziskezelés Adatbázisok

Forrás: Oracle.com

Page 47: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok tervezése

2016.12.31. MMK-Informatikaiprojektellenőrképzés 47

Adatbáziskezelés Adatbázisok

Adattáblákmeghatározása

ID Név Beosztás Szervezet Törölt

1 Kiss János Könyvelő 1 Hamis

2 NagyBéla Informatikus 2 Hamis

3 … … … …

ID Név Leírás Törölt

1 Pénzügy Pénzügyiés … Hamis

2 Informatika Informatikai… Hamis

3 … … …

SzervezetekSzemelyek

ID Név Beosztás Szervezet Szervezetleírása

Törölt

1 Kiss János Könyvelő Pénzügy Pénzügyiés … Hamis

2 NagyBéla Informatikus Informatika Informatikai… Hamis

3 … … … …

Szemelyek és szervezetek

Normalizálás Redundanciák kiszűrése

Page 48: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

Relációs adatbázisok tervezése

2016.12.31. MMK-Informatikaiprojektellenőrképzés 48

Adatbáziskezelés Adatbázisok

• Azadatlekérdezésiigényekhatározzákmegazalkalmazandóindexeket• adattartalom• csoportosítás• sorbaállítás

• Egyoszloposvagytöbboszloposindex?• Egyadatelővételiműveletesetébenegyindexalkalmazható• Többoszloposindexakkoralkalmazandó,hatöbboszlopratörténikaszűrés

• Hatöbboszlopadataiszerepelnekaszűrésifeltételekben,azoptimalizálóalegmegfelelőbbnektaláltindexetalkalmazza

• Minéltöbbazindexannállassúbbazadatlétrehozásésmódosítás

Indexekmeghatározása

Page 49: Adatbázisok megvalósítása v1 · Adatbázisok 2016. 12. 31. MMK-Informatikai projekt ellenőr képzés 3 Adatbáziskezelés Adatbázisok • Adatbázison valamely cél megvalósításának

2016.12.31. MMK-Informatikaiprojektellenőrképzés 49

Köszönöm a figyelmet!