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

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

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

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

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

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

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

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

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

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

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

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

Adatbázisok* tulajdonságai

BEVEZETÉS Az objektum fogalma

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

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

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

Adattípusok. Max. 2GByte

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

Adatbázisok I. Az SQL nyelv

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Adattípusok. Max. 2GByte

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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

Bevezetés: az SQL-be

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

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

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

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

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

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

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

Sor és oszlopkalkulus

Adatbázisok I A relációs algebra

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

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

Tankönyv példák kidolgozása

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

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 - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

SQL parancsok feldolgozása

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

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

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

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

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

Relációs adatmodell. Adatbázisok használata

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

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

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

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

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

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

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

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

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

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

SQL DDL-2 (aktív elemek) triggerek

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

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

Készítette: Szabóné Nacsa Rozália

Adatbázis rendszerek SQL nyomkövetés

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

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

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

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

A könyv tartalomjegyzéke

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

Adatbázis használat I. 5. gyakorlat

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

Adatbázis Rendszerek

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

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

Elemi alkalmazások fejlesztése IV.

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

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

Databases 1. Relációs algebra és nemrekurzív Datalog

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

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

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

4. Előadás Az SQL adatbázisnyelv

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Adatbázis, adatbázis-kezelő

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

Java és web programozás

Adatbázisok elmélete

Átírás:

Informatika szigorlat 11-es tétel: Lekérdező nyelvek 1. Relációs algebra A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós módszert ad arra nézve, hogy miként építhetünk új relációkat a régi relációkból. A relációs algebrai kifejezések alapjait képezik a relációk, mint operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak egy listájával. Ezután, alkalmazva az operátorokat a relációkra vagy egyszerűbb relációs algebrai kifejezésekre, fokozatosan egyre bonyolultabb kifejezéseket építhetünk fel. Egy lekérdezés tulajdonképpen egy relációs algebrai kifejezés. Ilyenformán a relációs algebra az első konkrét példánk lekérdezőnyelvre. A relációs algebrában kevés alapművelet van, amelyek egyszerűek (implementálhatók). Mind a méretek és a kiszámítás becsülhető, emiatt jól lehet optimalizálni. A relációs algebrának nagy kifejezőereje van. R(A 1, A 2,..., A n ), ahol R a reláció neve, és A i az attribútum neve. 1.1. Alapműveletek Unió: R 1 (A 1,..., A n ) r 1 R 2 (A 1,..., A n ) r 2 r 1 r 2 R(A 1,..., A n ) Kivonás: R 1 (A 1,..., A n ) r 1 R 2 (A 1,..., A n ) r 2 r 1 r 2 R(A 1,..., A n ) Azok a sorok, amelyek r 1 -ben benne vannak, de r 2 -ben nincsenek. Szorzás: R 1 (A 1,..., A n ) r 1 R 2 (B 1,..., B l ) r 2 r 1 r 2 R(A 1,..., A n, B 1,..., B l ) sorok száma szorzódik: r 1 r 2 = r 1 r 2 Vetítés: R(A 1,..., A n ) r és B 1,..., B k {A 1,..., A n } π B1,...,B k (r) = {t[b 1... B k ] t r} Kiválasztás: Atomi feltétel: AΘc 1

cθa A i ΘA j ahol c konstans, és Θ {=,, <, >,, } Összetett feltétel: Atomi feltétel +{,, } R(A 1,..., A n ) r : σ F (r) = {t r F (t) = igaz} Átnevezés: ϱ A B(r) 1.2. Levezethető műveletek Metszet: R S = (R S) ((R S) (S R)) = R (R S) Hivatkozás: R.A i Természetes összekapcsolás: R(A, B) S(B, C) = = π R.A,R.B,S.C (σ R.B=S.B (r s)) Hányados: R(A 1,..., A n, B 1,..., B m ) r S(B 1,..., B m ) s r s (A 1,..., A n ) és (r s) s r r s a legnagyobb olyan tábla, aminek (A 1,..., A n ) a sémája, és s-sel visszaszorozva r. r s = π A (r) (π A (π A (r) s r)) Félig összekapcsolás (semi join): r s = π R (r s) Théta összekapcsolás r θ s = σ θ (r s), ahol θ tetszőleges logikai kifejezés. 1.3. Műveletek tulajdonságai Def.:f monoton növekedő kifejezés, ha r i r i esetén f(r 1,..., r k ) f(r 1,..., r k ) Áll.:,,π,σ, monoton. A nem monoton. Áll.:,, és a műveletek asszociatívak és kommutatívak. 1. π A (π B (E)) = π A (E),ha A B 2. σ F2 (σ F1 (E)) = σ F2 F 1 (E) = σ F1 (σ F2 (E)) 3. Ha attr(f ) = A B és A B =, akkor π A (σ F (E)) = π A (σ F (π AB (E)) 4. Ha F = F 1 F 2 és attr(f i ) attr(e i ), akkor σ F (E 1 E 2 ) = σ F (E 1 ) σ F (E 2 ) 2

5. Ha F = F 1 F 2 és attr(f i ) attr(e i ), akkor π F (E 1 E 2 ) = π F (E 1 ) π F (E 2 ) 6. σ F (E 1 E 2 ) = σ F (E 1 ) σ F (E 2 ) 7. π F (E 1 E 2 ) = π F (E 1 ) π F (E 2 ) 8. σ F (E 1 E 2 ) = σ F (E 1 ) σ F (E 2 ) 9. Ha attr(f ) attr(e 1 ) attr(e 2 ) akkor σ F (E 1 E 2 ) = σ F (E 1 ) σ F (E 2 ) 10. π A (E 1 E 2 ) = π A (E 1 ) π A (E 2 ) 11. Ha A = B C és B attr(e 1 ) és C attr(e 2 ), akkor π A (E 1 E 2 ) = π B (E 1 ) π C (E 2 ) 2. Relációs komponenskalkulus(drc) 1 Q = { x 1, x 2,..., x }{{ n F (x } 1, x 2,..., x n )} ez egy DRC lekérdezés az F összes szabad változója F itt egy formulát jelöl. 2.1. Formulák Atomi formula: p(t 1,..., t k ) ahol t i szabad előfordulású változó vagy konstans. p(c 1,..., c k ) (c 1,..., c k ) P (tábla) xθy, ahol x és y szabad előfordulásúak és Θ {=,, <, >,, } F 1 és F 2 formula (F 1 F 2 ),(F 1 F 2 ) és F 1 is formulák Ha F formula, akkor ( x)f és ( x)f is formula, de ezekben x-nek már nincs szabad előfordulása. Def.: Egy változó szabad előfordulású, ha nem hat rá kvantor. Def.: Egy formulának x szabad változója, ha van minimum egy szabad előfordulása. Csak szabad változókkal építjük fel a formulákat!! 1 Ezt szokás tartománykalkulusnak is nevezni 3

2.2. Műveletek E 1 E 2 {x 1,..., x n F 1 (x 1,..., x n ) F 2 (x 1,..., x n )} E 1 E 2 {x 1,..., x n F 1 (x 1,..., x n ) F 2 (x 1,..., x n )} E 1 E 2 {x 1,..., x n, y 1,..., y n F 1 (x 1,..., x n ) F 2 (y 1,..., y n )} σ $i θ$ j (E 1 ) {x 1,..., x n F 1 (x 1,..., x n ) x i θx j } π $1,...,$ k (E 1 ) {x 1,..., x k y 1,..., y n k : F 1 (x 1,..., x k, y 1,..., y n k )} 3. Tartományfüggetlenség, biztonságosság Def.: dom(f ) = {F konstansai } {F rel. predikátumainak megfelelő táblákban szereplő értékei} Def.: F tartományfüggetlen formula, ha D dom(f ) esetén R(F, D) = R(F, dom(f )). Tétel: Nincsen olyan algoritmus, amely tetszőleges F -ről eldöntené, hogy tartományfüggetlen-e. A biztonságos DRC lekérdezések olyan bizonyos szintaktikai feltételeket kielégítő kérdések, melyek biztosan tartományfüggetlenek, és ezek a szintaktikai feltételek könnyen ellenőrizhetőek, szemben a tartományfüggetlenséggel. Megszorítások a következőek: A kifejezésben nem szerepel a kvantor. F 1 F 2 esetén F 1 és F 2 szabad változói ugyanazok. F 1... F n maximális konjunkciós lánc esetén a formulákban szereplő változó korlátozott, azaz valamelyik F i egy p predikátum, amelyben szerepel az x változó, vagy x = c, ahol c konstans, vagy x = y, ahol y korlátozott változó, vagy valamelyik F i F alakú, ahol az x az F -ben korlátozott vagy valamelyik F i F 1 F 2 alakú, ahol x F 1 -ben vagy F 2 -ben korlátozott. F csak olyan maximális konjunkciós láncban szerepelhet, amelyben van pozitív tag is. Egy adott F formula esetén a biztonságosságot a következőképpen ellenőrizhetjük: az első lépésben F összes részformulájára megvizsgáljuk az első két feltétel teljesülését, ha minden részformula megfelel a követelményeknek, akkor az F -hez tartozó logikai kifejezésfában alulról felfelé haladva 4

vesszük a maximális konjunkciós láncokat, és ellenőrizzük a harmadik és negyedik tulajdonságokat. 4. Relációs sorkalkulus(trc) Ebben az esetben egy sort tekintünk változónak. Q = {t (n) F (t (n) )}, ahol F formula és t az egyetlen szabad sorváltozója. 4.1. Formulák Atomi formula: p(t (n) ), ahol p egy n dimenziós predikátum szimbólum, és t szabad előfordulású sorváltozó. t[i]θkonst konstθt[i] t[i]θt [j] is formulák,ahol t és t szabad előfordulású. F 1 és F 2 formulák F 1 F 2, F 1 F 2 és F 1 is formulák. F -nek t szabad előfordulású sorváltozója, akkor t F és t F nem lesznek formulák. 4.2. Műveletek E 1 E 2 {t F 1 (t) F 2 (t)} E 1 E 2 {t F 1 (t) F 2 (t)} E 1 E 2 {t (n+m) u (n) v (m) : (F 1 (u) F 2 (v) t[1] = u[1]... t[n] = u[n] t[n + 1] = v[1]... t[n + m] = v[m])} π $1,...,$k (E) {t (k) u(f (u) u[1] = t[1]... u[k] = t[k])} σ $i θ$ j (E) {t F (t) t[i]θt[j]} 5. SQL Az SQL a relációs adatbázisok programnyelve. Az SQL-t (Structured Query Language) a 70-es években az IBM-nél fejlesztették ki. Az SQL utasításait osztályozzák: Adatdefiniálás (Data Definition Language DDL): azok az utasítások tartoznak ide, amelyekkel a sémákat és a bennük található objektumokat határozhatjuk meg, például: create table, create schema, create view stb. 5

Adatmódosítás (Data Manipulation Language DML): az ide tartozó parancsok adatok tárolására, módosítására szolgálnak, például: insert, update, delete. Lekérdezés (Query Language QL). No comment, select... Adatszabályozás (Data Control Language DCL): ide a jogokkal kapcsolatos utasítások tartoznak, például: grant jog adása és revoke visszavonása. Ezek csak a legfontosabb osztályok, több is van még, mint például munkameneti utasítások osztálya vagy hibakeresési utasítások osztálya. 5.1. Parancsok select... from... where... select distinct : duplikátum eltávolítása create table név(mezotípus); insert into név values(érték); select a a from r:csoport átnevezése a fejlécben select a*2+1 from r:aritmetika select a from r where a+4<b:aritmetika select a from r where a like M% :mintaillesztés(%:akárhány karakter) select a from r where a like M_ :mintaillesztés( :1 karakter) select... from... where... not exists s... f... w...:r S select * from... union select * from...:r S delete from név where felt:törlés update tábla set régi=új where felt:módosítja a tábla értékeit in: eleme not in: nem eleme drop view A: Az A nézettábla megszüntetése all: összehasonlítás any: összehasonlítás create view a as select... from... where...: nézettábla létrehozása. Ezt mindig akkor értékeli ki, amikor szükség van rá. Nézettáblába való beszúrás, az eredeti táblába való beszúrás. Az SQL-nek összesítő operátorai is vannak: Sum(), Avg(), Count(), Min() és Max(). A lekérdezések általános formája: select... from... where... group by... having... order by... 6

Ebből az első kettőt kötelező megadni, a többi opcionális. A where-rel lehet lekérdezés feltételeit megadni. A group by-t csoport képzésre lehet alkalmazni. A having záradékkal az összesítő függvények értékei alapján szűrhetünk. Az order by záradékkal az eredmény rendezhető, és asc és desc kifejezések határozzák meg a rendezés növekvő ill. csökkenő sorrendjét. 5.2. Programozás Gyakran kell az SQL parancsokat valamilyen szoftverfejlesztő eszközzel elkészített (al)programok részeként felhasználni. Tehát adott egy befogadó nyelv (például C), amiben a program készül. A program különböző részeiben SQL utasításokat helyeznek el az adatbázisban tárolt információk elérésére. Ebben az esetben a programozó feladata az adatfeldolgozó algoritmusnak a befogadó nyelven való megfogalmazása, és a tényleges adatmanipulációért felelős beágyazott SQL utasítások programba szerkesztése. A változók deklarációját két beágyazott SQL utasítás közé kell tenni: EXEC SQL BEGIN DECLARE SECTION;... EXEC SQL END DECLARE SECTION; Adatbázishoz csatlakozás utasítása: EXEC SQL CONNECT. SQL utasítás végrehajtására két lehetőség van: előkészített és az immediate utasítás: Az első két utasításból áll: EXEC SQL PREPARE név FROM: kérdés; EXEC SQL EXECUTE név (USING A1,...Ak); Akkor célszerű ezt alkalmazni, ha SQL utasítást többször is végre kell hajtani. A másik megoldás: EXEC SQL EXECUTE IMMEDIATE <mit hajtson végre>; Ebben az esetben csak DML utasításokat lehet végrehajtani. 7