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

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

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

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

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

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

Adatbázisok elmélete

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

Adatbázisok* tulajdonságai

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

Lekérdez nyelvek típusai, általános jellemz ik. Adatbázisok Az SQL nyelv. Példák relációs adatbáziskezel nyelvekre. A példákban használt relációs séma

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

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

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

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

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

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 SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

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

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

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

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

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

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

Az SQL adatbázisnyelv: DML

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

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

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

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

BEVEZETÉS Az objektum fogalma

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

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

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

Bevezetés: az SQL-be

Adattípusok. Max. 2GByte

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Adattípusok. Max. 2GByte

Sor és oszlopkalkulus

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

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

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

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

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

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

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

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

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

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

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

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

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

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

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

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

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

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

SQL DDL-2 (aktív elemek) triggerek

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

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.

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

ADATBÁZISKEZELÉS ADATBÁZIS

Adatbázis rendszerek SQL nyomkövetés

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

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

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

Adatbázis, adatbázis-kezelő

Adatbázisok I. Az SQL nyelv

Adatbázisok I A relációs algebra

Adatbázisok elmélete

SQL parancsok feldolgozása

Gazdasági folyamatok térbeli elemzése. 5. elıadás

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

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

A könyv tartalomjegyzéke

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

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

Java és web programozás

Adatbázis Rendszerek

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

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

Adatbázisok - 1. előadás

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

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

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

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

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

Relációsémák létrehozása SQL nyelvben

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

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

Adatbázis használat I. 5. gyakorlat

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

Csima Judit szeptember 6.

Informatikai alapismeretek Földtudományi BSC számára

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

Adatbázis Rendszerek II. 8. Gyakorló környezet

Átírás:

Adatbázisok elmélete 12 előadás A példákban használt relációs séma Csima Judit Katona Gyula Y Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz I B 137/b {csima,kiskat}@csbmehu nap ido 2002 Október 25 moziid MOZI VETIT FILM filmid nev varos rendezo cim 2 Példák relációs adatbáziskezelő nyelvekre Information System Base Language relációs algebra alapú kifejlesztő: IBM s United Kingdom Scientific Center Query-By-Example oszlopkalkulus alapú kifejlesztő: IBM s Watson Research Center QUEry Language sorkalkulus alapú kifejlesztő: Berkeley Egyetem Structured Query Language oszlopkulus-szerű alapjai vannak, némi sorkalkulus elemmel kifejlesztő: IBM s San Jose Research Laboratory 101 Művész Budapest 102 Uránia Pécs FILM filmid cim rendezo 1 Macskajaj E Kusturica 2 Moszkva tér Török F 101 1 péntek 16:00 101 2 szombat 19:00 1 3

Relációs algebra alapú lekérdezések operátorok ISBL művelet relációs algebra ISBL unió R S R + S metszet R S R S természetes illesztés R S R * S különbség (általánosabb) R R S R S kiválasztás σ F R R:F vetítés π A R R % A,B,C egyéb elemek eredmény megjelenítése: list kulcsszó értékadás relációnak: = További nyelvi elemek aggregátumok (min, max, összeg, átlag, darabszám) kezelése adatfrissítő műveletek B C Oszlopkalkulus alapú lekérdezések QBE A lekérdezés elemei változókkal és konstansokkal kitöltött sablon(ok) jelölések példa változó konstans egyszer említett változó kimenetre kerülő attribútum aláhúzott változónév nem aláhúzott érték üres cella P prefix FILM filmid cim rendezo 1 filmcim E Kusturica Összetett lekérdezések is lehetségesek (használatukkor az azonos nevű változók illesztése történik meg) használható több soros sablon használható több sablon 4 6 ISBL példák Budapesti mozik nevei list MOZI : varos = "Budapest" % nev Pénteken 16 órakor kezdődő filmek címe, rendezője list FILM * VETIT : nap = "péntek" & ido = "16:00" % cim, rendezo Pénteken nem vetített filmek címe list FILM ( VETIT : nap = "péntek" ) % cim (Figyelem! Különbségnek más a definíciója) Pénteken és szombaton is vetített filmek címe list ( FILM * VETIT : nap = "péntek" % cim ) ( FILM * VETIT : nap = "szombat" % cim ) vagy köztes relációk bevezetésével: r1 = FILM * VETIT : nap = "péntek" % cim r2 = FILM * VETIT : nap = "szombat" % cim list r1r2 A kiválasztás feltételeinek megadása Az egyenlőség konstanshoz való illesztéssel vizsgálható, egyéb egyszerű relációkhoz a operátorok használhatók, összetett feltételeket (pl két változó közt a < relációt) külön feltételsablon megadásával lehet vizsgálni További nyelvi elemek csoportosítás aggregátumok kezelése reláció tranzitív lezártjának kezelése adatmódosító műveletek 5 7

QBE példák Az SQL nyelv Budapesti mozik nevei Nem budapesti mozik nevei 1 Pmozinev Budapest vagy P Budapest 1970 E F Codd: a relációs adatmodell ehhez egy nyelvre is szükség volt Láttunk már példákat (ISBL, QUEL, QBE) Termékek, (amik szükségszerűen relációs nyelvet is tartalmaztak): IBM: System/R Relational Software: Oracle Relational Systems: Ingres P Budapest Szabványok (ISO/ANSI): SQL89 (SQL1) SQL92 (SQL2, mi nagyrészt ezt nézzük most) SQL99 (SQL3) kompatibilitás 8 10 Pénteki és szombati kezdési időpontok Ppéntek P Pszombat P Időpontok, amikor pénteken és szombaton is kezdődik film Pénteken vetített filmek adatai Ppéntek Pszombat FILM filmid cim rendezo 1 P P 1 péntek Pkezdes Pkezdes Data Modification Language: SELECT - adatok lekérdezése INSERT - adatok beszúrása UPDATE - adatok módosítása Data Definition Language: CREATE - objektum létrehozása DROP - objektum törlése Fontosabb utasítások Természetesen előbb mindig a sémát kell létrehozni, és utána dolgozhatunk vele, de most fordítva tárgyaljuk mert eddig a lekérdező nyelvekről volt szó 9 11

DML utasítások SELECT Ezzel valósítható meg a kiválasztás, vetítés és a szorzat Szintaxis: SELECT <reláció i ><attrib 1 >,, <reláció j ><attrib n > FROM <reláció 1 >,, <reláció m > WHERE <kifejezés> Relációs algebrabeli megfelelője: π <attrib1> <attribn>σ<kifejezés> <reláció 1 > <reláció m > Példa 1: A budapesti mozik azonosítói és nevei SELECT mozimoziid, mozinev FROM mozi WHERE mozivaros="budapest" Példa 2: A pénteken hétkor kezdődő filmek azonosítói SELECT vetitfilmid FROM vetit WHERE vetitnap="péntek" AND vetitido="19:00" Megjegyzés: A szorzatra csak a sorváltozók bevezetése után tudunk példát nézni Attribútumhivatkozások Amikor egy attribútumra akarunk hivatkozni, három lehetőségünk van: <attribútum> (ha ez egyértelmű) <reláció><attribútum> (ha ez egyértelmű NB: egy reláció többször is szerepelhet a FROM után, lesz példa) <sorváltozó><attribútum> (mindig használható, ez tulajdonképpen egy sorváltozó) Példa 3: A pénteken vetített filmek címei és rendezői (természetes illesztés) SELECT cim, rendezo FROM film, vetit WHERE vetitfilmid = filmfilmid AND nap="péntek" Példa 4: Azok a várospárok, ahol vannak azonos nevű mozik (FONTOS) SELECT m1varos, m2varos FROM mozi AS m1, mozi AS m2 WHERE m1nev = m2nev AND m1varos <> m2varos Megjegyzés: a várospárok mindkét sorrendben megjelennek, és több azonos nevű mozi esetén többször is megjelennek 12 14 SQL Sor- és oszlopváltozók A WHERE kifejezés A FROM után felsorolt relációkhoz sorváltozókat rendelhetünk Szintaxis (FROM után <reláció i > helyén): <reláció i > AS <sorváltozó> (Oracle-ben nem kell AS) A SELECT után elhelyezett attribútum-hivatkozásokhoz oszlopváltozókat rendelhetünk Szintaxis (SELECT után <reláció i ><attrib j > helyén): <reláció i ><attrib j > AS <oszlopváltozó> (Oracle-ben AS opcionális) A <reláció i > előtag elhagyható, ha egyértelmű, hogy melyik relációról van szó, továbbá a <reláció i > előtag helyett <sorváltozó> előtag is szerepeltethető A sorváltozók valójában csak az eredményreláció attribútumainak elnevezésére használhatók, a SELECT utasításon belül nem hivatkozhatunk rájuk Kifejezés felépítése: logikai műveletek: AND, OR, NOT összehasonlítás: =, <>, >=, <=, LIKE, BETWEEN aritmetikai műveletek: +, -, *, DIV, MOD karakterlánc műveletek: CONCAT, SUBSTR, változóhivatkozások: <sorváltozó><attribútum>, <reláció><attribútum>, <attribútum> konstans (szám,karakterlánc): 137, 42e-3, "füzér" NULL érték vizsgálata IS NULL, IS NOT NULL (később lesz) Például: SELECT nev AS Filmszínház, varos AS Hely FROM mozi Filmszínház Hely 13 15

LIKE és BETWEEN használata Aggregátumok LIKE használata: " " egy tetszőleges karakterre illeszkedik "%" tetszőleges karakterláncra illeszkedik BETWEEN használata: BETWEEN a AND b jelentése a Példa 5: A 150 és 200 közötti azonosítójú mozik közül azok, amelyek B-vel kezdődő nevű városban vannak, és a nevük hárombetűs SELECT nev FORM mozi WHERE moziid BETWEEN 150 AND 200 AND varos LIKE "B%" AND nev LIKE " " b Csoportosítsunk a varos attribútum szerint: szekszam 1 Corvin Budapest 2500 4 Szindbád Budapest 600 5 Tabán Budapest 200 6 Uránia Pécs 500 2 Elit Sopron 300 3 Sopron Plaza Megaflex Sopron 2000 Képezzük minden városra a székszámok összegét: 16 18 Aggregátumok Lehetőségünk van bizonyos attribútumok értéke szerint csoportosítani az eredményt, és így aggregált sorokat képezni Például legyen adott a következő reláció: MOZI varos ossz szekszam Budapest 3300 Pécs 500 Sopron 2300 Példa 6: Mindez SQL-ben SELECT SUM(szekszam) AS ossz szekszam FROM mozi GROUP BY varos szekszam 1 Corvin Budapest 2500 2 Elit Sopron 300 3 Sopron Plaza Megaflex Sopron 2000 4 Szindbád Budapest 600 5 Tabán Budapest 200 6 Uránia Pécs 500 17 19

Aggregátumok DML utasítások INSERT Amennyiben aggregátumokat képzünk a GROUP BY segítségével, akkor csak azokra az attribútumokra hivatkozhatunk közvetlenül a SELECT-ben, ami szerint csoportosítottunk Ezen attribútumok értékei ugyanis egy aggregátumon belül jól meghatározottak A többi attribútum az aggregátumon belül többféle értéket is felvehet Ezért rájuk csak oszlopfüggvényeken keresztül hivatkozhatunk: SUM, AVG - összeg, átlag MIN, MAX - szélsőértékek COUNT - számosság Példa 7: Az egyes városok legkisebb és legnagyobb mozijának mérete SELECT varos, MIN(szekszam), MAX(szekszam) FROM mozi GROUP BY varos Amennyiben a GROUP BY részt elhagyjuk, az összes sor egyetlen aggregált sorrá Sorokat a relációba az INSERT utasítással szúrhatunk be Szintaxis: INSERT INTO <reláció> (<attrib 1 >,, <attrib n >) VALUES (<érték 1 >,, <érték n >) Hatása: a <reláció> relációba egy új sor kerül, amiben <attrib 1 > attribútum értéke <érték 1 >, stb A nem meghatározott értékű attribútumok a reláció létrehozásakor az attribútumhoz rendelt alapértelmezett értéket veszik fel Példa 9: Egy új film felvétele INSERT INTO film (cim, rendezo) VALUES ("Egy csodálatos elme", "Ron Howard") Megjegyzés: a filmid mező az alapértlemezett érékét kapja, de egy trigger (később lesz) segítségével akár automatikusan növekvő számozást is létrehozhatunk 20 22 lesz összevonva, és az attribútumok értékeit csak oszlopfüggvényeken keresztül érhetjük el Példa 8: Az összes székszám SELECT SUM(szekszam) FROM mozi DML utasítások UPDATE Sorokat a relációban az UPDATE utasítással módosíthatunk Szintaxis: UPDATE <reláció> SET <attrib 1 >=<érték 1 >,, <attrib n >=<érték n > WHERE <feltétel> Hatása: a <reláció> reláció minden sorában, amelyik illeszkedik a <feltétel> feltételre <attrib i > értéke <érték i > lesz Példa 10: Az előbb beszúrt rendező nevének átírása rövidített alakba UPDATE film SET rendezo="r Howard" WHERE rendező="ron Howard" 21 23

DML utasítások DELETE Sorokat egy relációból a DELETE utasítással törölhetünk Szintaxis: DELETE FROM <reláció> WHERE <feltétel> Hatása: a <reláció> reláció feltételre illeszkedő sorait törli Megjegyzés: a WHERE <feltétel> rész elhagyása esetén a reláció összes sorát törli Példa 11: Azon filmek törlése, amiknek a rendezője E K monogrammú DELETE FROM film WHERE rendezo LIKE "E% K%" 24