11.24. - adatbázisok megvalósítása · tartalom 2017. 11. 23. 1 • adatbázisok (relációs,...

48
Tartalom 2017. 11. 23. 1 Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

Upload: others

Post on 18-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

Tartalom

2017.11.23. 1

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

Page 2: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

Adatbázisok

2017.11.23. 2

• 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 3: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 3

• 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

Adatbázisok

Page 4: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 4

• 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

Adattárolás

Page 5: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 5

• 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

Adattárolás

Page 6: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 6

• 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

Adattárolás

Page 7: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 7

• 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

Adatbáziskezelő rendszerek

Page 8: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 8

• 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

Adatbáziskezelő rendszerek

Page 9: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 9

• 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

Adatbáziskezelő rendszerek célja

Page 10: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 10

• 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

Adatbáziskezelő rendszerek célja

Page 11: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 11

• 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

Adatbáziskezelő rendszerek célja

Page 12: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 12

• 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

Adatbázis modellek (napjainkban)

Page 13: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 13

• 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

Adatbázis modellek (napjainkban)

Page 14: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 14

Adatbázis modellek (napjainkban)

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

• 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 15: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 15

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

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

Page 16: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 16

• 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

Adatbázis műveletek

Page 17: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 17

Adatbázis műveletek

• 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 18: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 18

• 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

Relációs adatbázisok

Page 19: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 19

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:Idegenkulcs

Hivatkozásokmásiktáblaelsődlegeskulcsára

Szervezetek

Szemelyek

Elsődlegeskulcs

Egyediazonosító

Relációs adatbázisok

Page 20: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 20

• 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

Relációs adatbázisok

Page 21: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 21

B-faindexek

6 27 50

1 2 3 4 5 16 18 22 30 35

7 8 9 11 15

Relációs adatbázisok

Page 22: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 22

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ékhezvanegybittérkép

TáblaOsztályzatoszlopkevésfix(előrerögzített) értékkel

Relációs adatbázisok

Page 23: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 23

• 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

Relációs adatbázisok

Page 24: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 24

• 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

Relációs adatbázisok

Page 25: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 25

• 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űadatfeldolgozásakor– nincsadatmozgatáshálózaton,csakegykontextusváltásaszerverenbelül

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

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

Relációs adatbázisok

Page 26: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 26

• 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

Relációs adatbázisok

Page 27: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 27

• Primary key (elsődlegeskulcs)• Egyediértékazoszloponbelül• Egyediindexké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

Relációs adatbázisok

Page 28: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 28

• 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

Relációs adatbázisok

Page 29: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 29

• 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éteszikalekérdezésekhasználatát

• Nagyobbperformanciát nyújtóopciók• Platformfüggővéteszikazalkalmazást

StandardQuery Language

Adatok lekérdezése (SQL)

Page 30: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 30

• 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

Adatok lekérdezése (SQL)

Page 31: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 31

• 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

Adatok lekérdezése (SQL)

Page 32: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 32

• 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

Adatok lekérdezése (SQL)

Page 33: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 33

• 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ő

Adatok lekérdezése (SQL)

Page 34: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 34

• 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

Adatok lekérdezése (SQL)

Page 35: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 35

• 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

Adatok lekérdezése (SQL)

Page 36: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 36

• 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

Adatok lekérdezése (SQL)

Page 37: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 37

• 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

Adatok lekérdezése (SQL)

Page 38: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 38

• 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

Adatok lekérdezése (SQL)

Page 39: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 39

• 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

Adatok lekérdezése (SQL)

Page 40: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 40

• 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

Relációs adatbázisok

Page 41: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 41

• 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

Lekérdezések optimalizálása

Page 42: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 42

• 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

Lekérdezések optimalizálása

Page 43: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 43

• 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

Lekérdezések optimalizálása

Page 44: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 44

Forrás:Oracle.com

Lekérdezések optimalizálása

Page 45: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 45

Forrás:Oracle.com

Lekérdezések optimalizálása

Page 46: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 46

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ésszervezetek

Normalizálás Redundanciákkiszűrése

Relációs adatbázisok tervezése

Page 47: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

2017.11.23. 47

• 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

Relációs adatbázisok tervezése

Page 48: 11.24. - Adatbázisok megvalósítása · Tartalom 2017. 11. 23. 1 • Adatbázisok (relációs, objektum relációs, NoSQL) • Adatbáziskezelő rendszerek • Adatbázisok felépítése

Köszönöm afigyelmet!

48