9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása...
Transcript of 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása...
![Page 1: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/1.jpg)
9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
http://sila.hajas.elte.hu/
Adatbázis-kezelő rendszerek
áttekintése, alapfogalmak
Mai 9.előadáson még folytatjuk a 8.ea-t,
vagyis befejezzük az SQL használatát
programnyelvi környezetben: PL/SQL-t,
Majd ezután jön ez a 9.ea --- Tankönyv:
1.fejezet: Az adatbázisrendszerek világa
1 Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése
![Page 2: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/2.jpg)
Áttekintés ( 1.előadás, illetve 10-12.ea )
( nem SQL, hanem Tervezés)
-- -- -- -- -- -- -- -- -- -- -- --
2-5.előadások+gyakorlaton:
6.1-6.4. Lekérdezések
az SQL-ben: SELECT
6.előadás+gyakorlaton:
6.5. SQL DML: INSERT,
DELETE, UPDATE
6.6. Tranzakciókezelés
COMMIT, ROLLBACK
7.1.-7.3. CREATE TABLE
Megszorítások
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 2
A 7.előadás (csak ea.+vizsgán)
7.4.-7.5. Assertions,Triggers
8.1-8.2., 8.5. Views (nézetek)
10.1. SQL DCL (jogosultságok)
GRANT, REVOKE
10.2. Rekurzív lekérdezés
WITH RECURSIVE
-- -- -- -- -- -- -- -- -- -- -- --
8.előadás+gyakorlaton:
9.3-9.4 SQL/PSM illetve
Oracle PL/SQL
9.előadás (csak ea.+vizsgán)
1.fejezet: DBMS alapfogalmak
![Page 3: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/3.jpg)
Mit várunk egy ABKR-től? --- 1 Visszatérünk a Tankönyv 1.fejezetére (ez a két o. ismétlés)
Adatbázis: Adatok együttese, amelyet az adatbázis-kezelő
rendszer kezel. Mit várunk az ABKR-től? (DBMS-től?)
Tegye lehetővé a felhasználók számára, hogy új
adatbázisokat hozhassanak létre, és azok sémáját,
vagyis az adatok logikai struktúráját egy speciális
nyelven adhassák meg: Adatdefiníciós nyelv (DDL)
Tegye lehetővé a felhasználóknak, hogy az adatokat egy
megfelelő nyelv segítségével lekérdezhessék vagy
módosíthassák: Adatkezelő nyelv (DML)
Kényelmes (fizikai adatfüggetlenség, magas szintű
deklaratív nyelv, mint például az SQL szabvány)
Hatékony legyen a megvalósítás.
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 3
![Page 4: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/4.jpg)
Mit várunk egy ABKR-től? --- 2 (folyt.) Mit várunk az ABKR-től? (DBMS-től?)
Támogassa nagy méretű (több terabyte mennyiségű)
adat hosszú időn keresztül való tárolását, és tegye
lehetővé a hatékony hozzáférést a lekérdezések és
adatbázis-módosítások számára.
Biztosítsa a tartósságot, az adatb. helyreállíthatóságát,
biztonságos (konzisztens állapot biztosítsa, védve
legyen a hardware, software és felhasználói hibáktól).
Felügyelje a több felhasználó által egy időben történő
adathozzáféréseket úgy, hogy ezek a műveletek ne
legyenek hatással a többi felhasználóra számára
(konkurencia-vezérlés)
A fenti pontok részletesebben kifejtve:
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 4
![Page 5: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/5.jpg)
(1) Adatbázis-kezelés
Adatbázis-kezelés:
(1) Háttértárolón tárolt, nagy adatmennyiség hatékony kezelése (lekérdezése, módosítása)
(2) Adatmodell támogatása
(3) Adatbázis-kezelő nyelvek támogatása
(4) Több felhasználó támogatása
(5) Adatvédelem, adatbiztonság
(6) Tranzakció-kezelés
(7) Konkurencia-kezelés
(8) Naplózás és helyreállíthatóság
(9) Lekérdezések végrehajtásának optimalizálása
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 5
![Page 6: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/6.jpg)
(2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak,
tevékenységeinek magasabb szintű ábrázolása
File-kezelés indexekkel együtt, ezt váltotta fel a
CODASYL szabvány, hálós adatmodell (hatékony keresés)
Hierarchikus adatmodell (apa-fiú kapcsolatok gráfja)
Ted Codd - Relációs adatmodell (táblák rendszere, könnyen megfogalmazható műveletek)
Objektum-orientált adatmodell (az adatbázis-kezelés funkcionalitásainak biztosítása érdekében gyakran relációs adatmodellre épül), + Objektum-relációs adatmodell
Logikai adatmodell (szakértői rendszerek, tények és következtetési szabályok rendszere)
Dokumentumok - Félig strukturált adatmodell, az XML (szabvány adatcsereformaként jelent meg), XML, JSON
Gráf adatbázisok, NoSQL
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 6
![Page 7: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/7.jpg)
(2) Az adatmodellek 3 szintje
(lásd 7.ea idevágó részét: nézetek)
Hogyan látjuk az adatbázist?
A 3 szintű ANSI/SPARC architektúra
Logikai (külső, a felhasználói szemléletnek
megfelelő szinten, nézetek)
Fogalmi (conceptual) (absztrakt, szintetizálja
az összes felhasználói szemléletet)
Fizikai (belső, az adatbázis valamilyen fizikai
adatstruktúrában letárolva a háttértárolón)
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 7
![Page 8: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/8.jpg)
(2) Az adatmodellek 3 szintje --3
Forrás: Elmasri-Navathe:
Fundamentals of Database Systems
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 8
![Page 9: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/9.jpg)
(3) Adatbázis-kezelő nyelvek támogatása
SQL – relációs (és objektum-relációs) adatbázis-kezelő szabvány nyelv, fontosabb szabványok:
SQL86, SQL89, SQL92 (SQL2), SQL:1999 (SQL3),
SQL: 2003, SQL:2006, SQL:2008
DDL (Data Definition Language) adatdefiniáló (sémaleíró) nyelv: sémák, adatstruktúrák megadása, objektumok létrehozása, módosítása, törlése: CREATE, ALTER, DROP
DML (Data Manipulation Lang.) adatkezelő és lekérdező nyelv: INSERT, DELETE, UPDATE és SELECT
DCL (Data Control Lang.) adatvezérlő nyelv, jogosultságok
kiosztása és visszavonása: GRANT, REVOKE
Tranzakció-kezelés: COMMIT, ROLLBACK
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 9
![Page 10: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/10.jpg)
(4) Több felhasználó támogatása
Felhasználói csoportok. Kulcsemberek:
DBA adatbázis-rendszergazda
felügyeli az adatbázis-példányokat és
adatbázis-szervereket
felépíti a rendszert, implementálja és
optimális adatbázis-megoldást biztosít
Adatbázis-tervező (sématervezés)
Alkalmazás-fejlesztő, programozó (kódolás)
Felhasználók (akik használják a rendszert)
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 10
![Page 11: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/11.jpg)
(5) Adatvédelem, adatbiztonság
(lásd 7.előadás idevágó részét is!)
Jogosultságok (objektumok olvasása, írása,
módosítása, készítése, törlése, jogok
továbbadása, visszavonása) GRANT és REVOKE
Jogosultságok tárolása rendszertáblákban történik
Jogosultságok kezelése, felhasználók, jelszavak,
hozzáférési jogok
Adatbázissémák korlátozása (virtuális) nézettáblák
segítségével
Tárolt adatok, hálózati adatforgalmak titkosítása
(nagy prímszámok, RSA, DES)
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 11
![Page 12: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/12.jpg)
(6) Tranzakció-kezelés
Tranzakció: adatkezelő műveletekből (adategység írása, olvasása) álló sorozat
Cél: tranzakciók párhuzamos végrehajtása
Read S S:= S+1 Write S idő
Read S S:= S-1 Write S
Tranzakció = olyan folyamat, ami adatbázis
lekérdezéseket, módosításokat tartalmaz.
Az utasítások egy „értelmes egészt” alkotnak.
Egyetlen utasítást tartalmaznak, vagy az SQL-ben
explicit módon megadhatóak.
T1:
T2:
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 12
![Page 13: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/13.jpg)
(6) Miért van szükség tranzakciókra?
(lásd 6.előadás idevágó részét is!)
Az adatbázis rendszereket általában több
felhasználó és folyamat használja egyidőben.
Lekérdezések és módosítások egyaránt
történhetnek.
Az operációs rendszerektől eltérően, amelyek
támogatják folyamatok interakcióját, az
adatbázis rendszereknek el kell különíteniük
a folyamatokat.
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 13
![Page 14: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/14.jpg)
(6) Tranzakciók
Tranzakció = olyan folyamat, ami adatbázis
lekérdezéseket, módosításokat tartalmaz.
Az utasítások egy „értelmes egészt” alkotnak.
Egyetlen utasítást tartalmaznak, vagy az SQL-
ben explicit módon megadhatóak.
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 14
![Page 15: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/15.jpg)
(6) A tranzakciók ACID tulajdonságai
Atomiság (atomicity): a tranzakció egységesen
lefut vagy nem, vagy az összes vagy egy utasítás
sem hajtódik végre.
Konzisztencia (consistency): a tranzakció futása
után konzisztens legyen az adatbázis,
megszorításokkal, triggerekkel biztosítjuk.
Elkülönítés (isolation): párhuzamos végrehajtás
eredménye egymás utáni végrehajtással egyezzen
meg
Tartósság (durability): a befejezett tranzakció
eredménye rendszerhiba esetén sem veszhet el
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 15
![Page 16: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/16.jpg)
(6) COMMIT és ROLLBACK
A COMMIT utasítás a tranzakció sikeres befejeződését eredményezi. Egy sikeresen befejeződött tranzakció a kezdete óta végrehajtott utasításainak módosításait tartósan rögzíti az adatbázisban
vagyis a módosítások véglegesítődnek.
A ROLLBACK utasítás megszakítja a tranzakció végrehajtását, és annak sikertelen befejeződését eredményezi. Az így befejezett tranzakció SQL utasításai által végrehajtott módosításokat a rendszer meg nem történtekké teszi
Vagyis az összes utasítás visszagörgetésre kerül, a módosítások nem jelennek meg az adatbázisban.
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 16
![Page 17: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/17.jpg)
(7) Konkurencia-kezelés
Zárolások (Lock, Unlock) T1: (Lock S, Read S, S:=S+1, Write S, Unlock S)
T2: (Lock S, Read S, S:=S-1, Write S, Unlock S)
A zár kiadásához meg kell várni a zár feloldását.
Csökken a párhuzamosíthatóság
Zárak finomsága (zárolt adategység nagysága, zárolás típusa) növeli a párhuzamosíthatóságot
Holtpont probléma:
Lock A Read A Lock B Read B C:=A+B …….
Lock B Read B Lock A Read A D:=A+B ……..
T1 vár T2-re B miatt
T2 vár T1-re A miatt
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 17
![Page 18: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/18.jpg)
(8) Naplózás és helyreállítás
Szoftver- vagy hardverhiba esetén az utolsó
konzisztens állapot visszaállítása
Rendszeres mentések
Statikus adatbázis (módosítás nem gyakori)
Dinamikus adatbázis (módosítás gyakori)
Naplóállományok
Összefügg a tranzakció-kezeléssel
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 18
![Page 19: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/19.jpg)
elemzés
átalakítás
szabályok alkalmazása
várható méretek becslése
fizikai tervek készítése
költségek becslése
a legjobb kiválasztása végrehajtás
{FT1,FT2,...}
{(FT1,K1),(FT2,K2),...}
FTi
eredmény
SQL lekérdezés
Elemző fa
logikai lekérdező terv
javított logikai lekérdező terv
logikai lekérdező terv és méretek
Statisztikák
(9) Lekérdezések végrehajtása optimalizálás
![Page 20: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/20.jpg)
Adatbázis-kezelők részei
Lekérdezés-feldolgozó Lekérdezés szintaktikai ellenőrzése
Adatbázis-objektumok létezésének, és a hozzáférési jogoknak az ellenőrzése (metaadatbázis, rendszertáblák)
Lekérdezés optimális átfogalmazása
Végrehajtási tervek készítése
Az adatstruktúrák, méretek statisztikái alapján várhatóan minimális költségű végrehajtási terv kiválasztása
Az optimális végrehajtási terv lefuttatása
Tranzakció-kezelő: Tranzakciók párhuzamos és biztonságos végrehajtásának
a tranzakciók ACID tulajdonságainak biztosítása
Tárkezelő és pufferkezelő fizikai adatstruktúrák, táblák, indexek, pufferek kezelése
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 20
![Page 21: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/21.jpg)
Adatbázis-kezelő rendszer felépítése
Forrás:
Elmasri-Navathe: Fundamentals of Database Systems
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 21
![Page 22: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/22.jpg)
Ullman-Widom Tankönyv 1.1. ábra
Egy adatbázis-kezelő rendszer részei
Adatbázis-kezelő rendszer felépítése
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 22
![Page 23: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb](https://reader030.fdocuments.net/reader030/viewer/2022040813/5e57ffa8ed1f1215ec5b8fc9/html5/thumbnails/23.jpg)
Kérdés/Válasz
Köszönöm a figyelmet! Kérdés/Válasz?
Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 23