Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Hasonló dokumentumok
Adatbázis tartalmának módosítása

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Az adatbázisrendszerek világa

Adatbázis tartalmának módosítása. SQL DML utasítások

Az SQL adatbázisnyelv: DML

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Bevezetés: az SQL-be

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

SQL DDL-2 (aktív elemek) triggerek

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

SQL DDL-1: táblák és megszorítások

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

Információs rendszerek Adatbázis-kezelés

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Lekérdezések az SQL-ben 2.rész

Lekérdezések az SQL-ben 1.rész

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Bevezetés: Relációs adatmodell

Tankönyv példák kidolgozása

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Bevezetés: Relációs adatmodell

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Lekérdezések az SQL-ben 1.rész

Relációs algebra 2.rész példák

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázisok elmélete 9. előadás

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Bevezetés: Relációs adatmodell

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok elmélete 9. előadás

Adatbázis használat I. 5. gyakorlat

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

BEVEZETÉS Az objektum fogalma

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Tranzakciók az SQL-ben

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázisok tavaszi félév Vizsgatételsor

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

Relációs algebra 1.rész alapok

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Tranzakciókezelés PL/SQL-ben

Adatbázisok* tulajdonságai

Adatbázisok elmélete 10. előadás

Adattípusok. Max. 2GByte

Relációs adatbázisok tervezése ---2

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázis rendszerek SQL nyomkövetés

Adattípusok. Max. 2GByte

Adatbázis-kezelés. Harmadik előadás

Adatbázisok-1 előadás

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis-kezelés, információs-rendszerek

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázisok elmélete 1. előadás

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Csima Judit szeptember 6.

Adatbázisok elmélete

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Adatbázisok elmélete 1. előadás

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

A könyv tartalomjegyzéke

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Nézetek és indexek. 8. fejezet Nézettáblák

SQL parancsok feldolgozása


Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Magas szintő adatbázismodellek

Adatbázisok elmélete 12. előadás

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Átírás:

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése, Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.5. Változtatások az adatbázisban: SQL DML utasítások: INSERT, DELETE, UPDATE 1.fejezet: Az adatbázis-kezelő rendszerek (DBMS) felépítése, alapfogalmak, ACID tranzakciók 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

(3EA) ismétlés: SELECT utasítás záradékai 2-3.EA: Egy táblára vonatkozó lekérdezések: HF volt: Oracle Példatár 1. és 2.fejezet feladatai Tk.6.1. és 6.4. Relációkra vonatkozó műveletek Teljes SELECT utasítás(a záradékok sorrendje adott) SELECT [DISTINCT] Lista1 -- 5 és 6 FROM R t -- 1 [WHERE Felt1 ] -- 2 [GROUP BY csopkif -- 3 [HAVING Felt2 ] ] -- 4 [ORDER BY Lista2] -- 7 τ Lista2 δ Π Lista1 σ Felt2 (γ csopkif,, AGGR(kif) onev σ Felt1 ( R ) ) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

(4EA) ismétlés: Alkérdések a WHERE záradékban Fontos! Ugyanezt használjuk a mai anyagban SQL DML utasítások WHERE záradékában! WHERE és HAVING záradékban: (i) Az alkérdés eredménye egyetlen skalárérték, vagyis az alkérdés olyan, mint a konstans, ami egy új elemi kifejezésként tetszőleges kifejezésben használható. (ii) Skalár értékekből álló multihalmaz logikai kifejezésekben használható: [NOT] EXISTS (lekérdezés) kifejezés [NOT] IN (lekérdezés) kifejezés Θ [ANY ALL] (lekérdezés) (iii) Teljes, többdimenziós tábla a visszatérő érték: [NOT] EXISTS (lekérdezés) (kif 1, kif n ) [NOT] IN (lekérdezés) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Adatbázis tartalmának módosítása Tankönyv 6.5. Változtatások az adatbázisban A módosító utasítások nem adnak vissza eredményt, mint a lekérdezések, hanem az adatbázis tartalmát változtatják meg. 3-féle módosító utasítás létezik: INSERT - sorok beszúrása DELETE sorok törlése UPDATE sorok komponensei értékeinek módosítása 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Beszúrás (insert into) Két alakja van: 1.) ha egyetlen sort szúrunk be: INSERT INTO <reláció> VALUES ( <konkrét értékek listája> ); 2.) ha több sort, egy lekérdezés eredményét visszük fel alkérdés segítségével: INSERT INTO <reláció> ( <alkérdés> ); 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Beszúrás, attribútumok megadása Példa: A Szeret táblába beírjuk, Zsu szereti a Bud sört. INSERT INTO Szeret VALUES( Zsu, Bud ); A reláció neve után megadhatjuk az attribútumait. Ennek alapvetően két oka lehet: 1. elfelejtettük, hogy a reláció definíciójában, milyen sorrendben szerepeltek az attribútumok. 2. Nincs minden attribútumnak értéke, és azt szeretnénk, ha a hiányzó értékeket NULL vagy default értékkel helyettesítenék. Példa: INSERT INTO Szeret(sör, név) VALUES( Bud, Zsu ); 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Default értékek megadása A CREATE TABLE utasításban az oszlopnevet DEFAULT kulcsszó követheti és egy érték. Ha egy beszúrt sorban hiányzik az adott attribútum értéke, akkor a default értéket kapja. CREATE TABLE Sörivók( név CHAR(30) PRIMARY KEY, cím CHAR(50) DEFAULT Sesame St telefon CHAR(16) ); INSERT INTO Sörivók(név) VALUES( Zsu ); Az eredmény sor: név cím telefon Zsu Sesame St NULL 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Több sor beszúrása Egy lekérdezés eredményét is beszúrhatjuk: INSERT INTO <reláció> ( <alkérdés> ); A Látogat(név, söröző) tábla felhasználásával adjuk hozzá a LehetBarát(név) táblához Zsu lehetséges barátait, vagyis azokat a sörivókat, akik legalább egy olyan sörözőt látogatnak, ahova Zsu is szokott járni. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Megoldás: Több sor beszúrása (SELECT) a másik sörivó INSERT INTO LehetBarát (SELECT l2.név FROM Látogat l1, Látogat l2 WHERE l1.név = Zsu AND l2.név <> Zsu AND l1.söröző = l2.söröző ); (FROM) névpárok: az első Zsu, a második nem Zsu, de van olyan bár, amit mindketten látogatnak. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Tk.Példa INSERT INTO utasításra A lekérdezést teljesen ki kell értékelni, mielőtt a sorokat beszúrnánk. Tankönyv 6.36 példa: új stúdiók beszúrása INSERT INTO Stúdió (név) (SELECT DISTINCT stúdiónév FROM Filmek WHERE stúdiónév NOT IN (SELECT név FROM Stúdió)); 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Törlés (delete) A törlendő sorokat egy WHERE feltétel segítségével adjuk meg: DELETE FROM <reláció> WHERE <feltétel>; Példa: DELETE FROM Szeret WHERE nev = Zsu AND sör = Bud ; Az összes sor törlése: DELETE FROM Szeret; 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Példa: Több sor törlése A Sörök(név, gyártó) táblából töröljük azokat a söröket, amelyekhez létezik olyan sör, amit ugyanaz a cég gyártott. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Példa: Több sor törlése A Sörök(név, gyártó) táblából töröljük azokat a söröket, amelyekhez létezik olyan sör, amit ugyanaz a cég gyártott. DELETE FROM Sörök s WHERE EXISTS ( SELECT név FROM Sörök WHERE gyártó = s.gyártó AND név <> s.név); (WHERE) azok a sörök, amelyeknek ugyanaz a gyártója, mint az s éppen aktuális sorának, a nevük viszont különböző. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

A törlés szemantikája Tegyük fel, hogy az Anheuser-Busch csak Bud és Bud Lite söröket gyárt. Tegyük fel még, hogy s sorai közt a Bud fordul elő először. Az alkérdés nem üres, a későbbi Bud Lite sor miatt, így a Bud törlődik. Kérdés: a Bud Lite sor törlődik-e? 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

A törlés szemantikája Válasz: igen, a Bud Lite sora is törlődik. A törlés ugyanis két lépésben hajtódik végre. 1. Kijelöljük azokat a sorokat, amelyekre a WHERE feltétele teljesül. 2. Majd töröljük a kijelölt sorokat. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Módosítás (update) Bizonyos sorok bizonyos attribútumainak módosítása. UPDATE <reláció> SET <attribútum értékadások listája> WHERE <sorokra vonatkozó feltétel>; Fecó telefonszámát 555-1212-re változtatjuk (Fecó itt egy sörivó neve): UPDATE Sörivók SET telefon = 555-1212 WHERE név = Fecó ; 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

Példa: Több sor módosítása Legfeljebb 4 dollárba kerülhessenek a sörök: UPDATE Felszolgál SET ár = 4.00 WHERE ár > 4.00; Olcsó sörök árát duplázzuk UPDATE Felszolgál SET ár = 2 * ár WHERE ár < 1.00; 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

Tk.Példa UPDATE utasításra Tankönyv 6.39 példa: UPDATE GyártásIrányító SET név = Ig. név WHERE azonosító IN (SELECT elnökazon FROM Stúdió) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

Az adatbázisrendszerek világa Tk.1.fejezete Az adatbázis-kezelő rendszerek áttekintése Adatbázisok-1 kurzuson mit láttunk eddig és mit fogunk venni az adatbázisrendszerek világából? Adatbázist, adatok gyűjteményét kezeli, relációs modell típus: sortípus, gyűjtemény: reláció Hogyan tervezzük meg milyen gyűjteményünk legyen? Lesz majd tervezés: E/K modell, UML diagramok, Relációs adatbázis sématervezés (FF, TÉF, NF) Metaadatok kezelése: DDL sémaleíró nyelv Táblák tartalmának lekérdezése (select) és módosítása: insert-delete-update: DML adatkezelő nyelv Lekérdezések feldolgozása: alap és kiterjesztett relációs algebra, SQL: SELECT, program (SQL/PSM, PL/SQL) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

Adatbázis-kezelés: (1) 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 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20

(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) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

(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 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

(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) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

(5) Adatvédelem, adatbiztonság Jogosultságok (objektumok olvasása, írása, módosítása, készítése, törlése, jogok továbbadása, jogok visszavonása) GRANT és REVOKE utasítás 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) 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24

(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 T1: T2: 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. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 25

(6) Miért van szükség tranzakciókra? 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. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 26

(6) Példa: rossz interakció Egy időben ketten töltenek fel 100 dollárt ugyanarra a számlára ATM-en keresztül. Az adatbázis rendszernek biztosítania kell, hogy egyik művelet se vesszen el. Ezzel szemben az operációs rendszerek megengedik, hogy egy dokumentumot ketten szerkesszenek egyidőben. Ha mind a ketten írnak, akkor az egyik változtatás elvész (elveszhet). 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 27

(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 SQLben explicit módon megadhatóak. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 28

(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 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 29

(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. 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 30

(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 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 31

(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 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 32

(9) Lekérdezések végrehajtása optimalizálás SQL lekérdezés elemzés átalakítás szabályok alkalmazása várható méretek becslése fizikai tervek készítése {FT1,FT2,...} költségek becslése {(FT1,K1),(FT2,K2),...} FTi Elemző fa logikai lekérdező terv javított logikai lekérdező terv logikai lekérdező terv és méretek Statisztikák a legjobb kiválasztása végrehajtás eredmény

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 végrehajtásának biztosítása (atomosság, következetesség, elkülönítés, tartósság) Tárkezelő és pufferkezelő fizikai adatstruktúrák, táblák, indexek, pufferek kezelése 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 34

Adatbázis-kezelı rendszer felépítése Ullman-Widom Tankönyv 1.1. ábra Egy adatbázis-kezelő rendszer részei 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 35

Adatbázis-kezelı rendszer felépítése Forrás: Elmasri-Navathe: Fundamentals of Database Systems 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 36

Kérdés/Válasz Köszönöm a figyelmet! Kérdés/Válasz? Tk.2.4.14. (54-57.o.) 2.4.1.feladata Termékek feladatai először relációs algebrában táblákkal gondolkodva felírva kifejezőfákkal, majd átírva SQL lekérdezésekre többféle megoldási lehetőséget vizsgáljunk meg, vessünk össze Feladat: http://people.inf.elte.hu/sila/eduab/ab1_gy1.pdf create table: http://people.inf.elte.hu/sila/eduab/create_termekek.txt - Megoldás: http://people.inf.elte.hu/sila/ab1ea/termekek_pelda.pdf Gyakorlás a 5EA-hoz: Több táblára (DEPT és EMP tábla) vonatkozó lekérdezésekre feladatok. Házi feladat: Oracle Példatár 3.fejezet feladatai, összekapcsolások és alkérdések használata, de a hierarchikus és rekurzív lekérdezések még nem: http://people.inf.elte.hu/sila/eduab/feladatok.pdf 05ea_SQL_DML // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 37