2012.05.11. Adatbázisok I A relációs algebra



Hasonló dokumentumok
Adatbázisok I. Az SQL nyelv

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

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

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

Adatbázisok* tulajdonságai

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

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

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

BEVEZETÉS Az objektum fogalma

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

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. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

ADATBÁZISKEZELÉS ADATBÁZIS


5. modul - Adatbázis-kezelés

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

Adatok szűrése, rendezése

A könyv tartalomjegyzéke

Paraméteres-, összesítı- és módosító lekérdezések

GEIAL Kovács László. GEIAL Kovács László

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

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

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

Adatbázisok I A relációs algebra

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

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

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

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

INFORMATIKAI ALAPISMERETEK

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

2. Az adatbázis-kezelés alapjai

SQL parancsok feldolgozása

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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

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

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ KÖZÉPSZINT% GYAKORLATI ÉRETTSÉGI VIZSGA. É R E T T S É G I V I Z S G A május 15.

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

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

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

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

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

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

Adatbázis használat I. 2. gyakorlat

Adatbázis, adatbázis-kezelő

Adatbázis rendszerek SQL nyomkövetés

INFORMATIKAI ALAPISMERETEK

Gazdasági informatika vizsga kérdések

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

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

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

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

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

SQL feladatok megoldasa

Adatbázis-kezelés ODBC driverrel

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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ázis rendszerek Gy: DQL Lekérdezések

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

ÉRETTSÉGI VIZSGA EMELT SZINT% GYAKORLATI. ÉRETTSÉGI VIZSGA május 14. Összesen: 45 pont. Egy adott távhoz tartozó díjazás meghatározása 4 pont

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

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

II. év. Adatbázisok és számítógépek programozása

A SELECT működése. Ttanar tábla: Tdiak tábla:

XML technikák II Kovács, László

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

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

Adatbázis fejlesztés és üzemeltetés II. Szabó Bálint

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

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

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

JAVÍTÁSI-ÉRTÉKELÉSI INFORMATIKA ÚTMUTATÓ. ÉRETTSÉGI VIZSGA október 19. ÉRETTSÉGI VIZSGA EMELT SZINT% GYAKORLATI MINISZTÉRIUMA EMBERI ERFORRÁSOK

Entity Framework alapú adatbáziselérés

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

Adatbázis használat I. 2. gyakorlat

Informatikus informatikus Térinformatikus Informatikus T 1/9

Haladó DBMS Radványi, Tibor

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ KÖZÉPSZINT% GYAKORLATI ÉRETTSÉGI VIZSGA. É R E T T S É G I V I Z S G A október 17.

A térinformatika t. Az informáci. ciós s rendszerek funkciói. Az adatok vizsgálata

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

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

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Integrált ügyviteli rendszer: Kettős könyvelés modul

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ázis használat I. 5. gyakorlat

ADATBÁZISRENDSZEREK. Dr. Radványi Tibor. Készült a TÁMOP /1/A támogatásával.

INFORMATIKAI ALAPISMERETEK

Adatbázisok és adattárházak az információs rendszerek adatkezelői

Elemi alkalmazások fejlesztése IV.

évi nyári olimpiai játékok

ALAPISMERETEK...6 A MICROSOFT ACCESS INDÍTÁSA...14 AZ ABLAK...14 MEGNYITÁS...16 TÁBLÁK...17 LEKÉRDEZÉSEK...18

Szakmai program 2015

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

Adatbázisok, térképek, információs rendszerek. Elek István

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

Átírás:

Adatbázisok I A relációs algebra 2 3 4 1

Feladatok Tantárgy tkód cím kredit oktató Oktató oktkód név tanszék fizetés Feladatok 1. Az átlagos kreditpontszám: Γ avg(kredit) (Tantárgy) 2. A Matematika tanszéken oktatók létszáma: Γ count(*)( σ tanszék= Matematika (Oktató)) 3. A legnagyobb kreditpontszámú tantárgyak címe: Π cím (σ kredit=γ max(kredit) (Tantárgy) (Tantárgy)) 5 6 Feladatok 4. Az átlagnál alacsonyabb kreditpontú tantárgyak címe és oktatóik neve: Π cím, név (σ kredit<γ avg(kredit) (Tantárgy) (Tantárgy) >< oktkód=oktató Oktató) 5. Tanszékenként az oktatók létszáma: Γ tanszék tanszék, count(*) (Oktató) Az SQL nyelv SQL (Structured Query Language) Deklaratív nyelv, 1974-ben publikálták Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM) (Structured English Query Language) Codd., 1971 Strukturált, Angolnyelvre épülő Lekérdező nyelv 7 8 2

SQL nyelv SQL nyelv Relációs adatmodellen alapuló Szabványosított nyelv (ANSI), ISO 1986 SQL86 1989 SQL89 1992 SQL92 SQL:1999 SQL:2003 SQL:2006 SQL:2008 Kiterjed az adatkezelő tevékenységekre: Adatdefiniáló (DDL) Adatkezelő (DML) Lekérdező (DQL) Vezérlő (DCL) 9 Deklaratív, leíró, a műveleti lépéseket kell megadni Magasszintű parancsok Nem tartalmaz vezérlési, IO elemeket Halmazorientált Bővülő nyelv Van interaktív és beépülő változata NEM adatbázis kezelő rendszer, az adatbázis kezelő integráns része Nem tartalmaz algoritmikus elemeket 10 SQL felhasználási lehetőségei Fejlesztőeszközökbe beépítve (űrlap, jelentés) CASE eszközök Alkalmazásgenerátorokban pl. unipaas Interaktív felhasználás (SQL konzol) Ad hoc lekérdezések adatbázis karbantartás Más programnyelvekbe beépítve procedurális nyelvekben (pl. C, C#, C++, Java, Php, stb.) adatbázis-kezelők saját procedurális kiegészítőibe (PL/SQL) SQL nyelv tulajdonságai SQL-ben az eredményként kívánt adatokat kell specifikálni, de semmilyen előírást, eljárást nem kell megadni az eredmény előállítására vonatkozóan. Minden művelet, lekérdezés (Query) inputja és outputja csak adatbázis tábla lehet, kivéve, amikor bizonyos értékeket paraméterként adunk meg. A lekérdezések több szinten egymásba ágyazhatók. Egy lekérdezés eredmény táblája felhasználható egy másik lekérdezés egyik bemeneti táblájaként. SQL szkriptek 11 12 3

SQL nyelv tulajdonságai Alapértelmezés szerint minden műveletet a megadott táblák összes rekordjára végrehajtja, ezért nem kell külön ciklusokat definiálni az SQL utasításokban A procedurális programnyelvektől eltérően, az eredmény táblázatokat nem kell előre deklarálni, a mezőneveket és a típusokat automatikusan definiálja bennük. SQL nyelv tulajdonságai Bár táblázatokkal dolgozunk, melynek sorai és oszlopai vannak, a rekordok és a mezők mégsem indexelhetők közvetlenül, mint a programozási nyelvekben egy mátrix (kétdimenziós tömb) elemei. Tehát nem hivatkozhatunk közvetlenül egy mező értékére úgy, hogy az i-dik sor j-edik eleme. Arra azonban van lehetőség, hogy a rekordokat automatikusan sorszámozzuk, s ezt használjuk elsődleges kulcsnak. 13 14 SQL szintakszisa Az SQL nyelvben egyetlen parancs, a SELECT parancs szolgál az adatok lekérdezésére alkalmas a relációs algebra minden műveletének a leképezésére SELECT projekciós rész FROM alaptáblák WHERE szelekciós rész GROUP BY csoportképző kif. HAVING csoportszűrő feltétel ORDER BY mezőlista [ASC DESC] ; 15 SQL szintaxisa SELECT Mely mezők, számítások kerüljenek az eredmény táblába? FROM Mely táblá(k)ból válassza ki a kívánt adatokat? WHERE Milyen feltételek alapján válassza ki a rekordokat a táblából? GROUP BY Mi alapján képezzen csoportokat a rekordokból? HAVING Milyen feltételek vonatkozzanak a megalkotott csoportokra? ORDER BY Mely mező(k) szerint rendezze a kiválasztott rekordokat? A fentiek közül csak a SELECT és a FROM rész a kötelező, a többi opcionális 16 4

Szelekciós feltétel A feltétel megfogalmazásánál használható operátorok: relációs operátorok (=,!=, <, >,!<,!>, <>, <=, >=) algebrai operátorok (+,-,*,/) logikai operátorok (AND, OR, NOT) o1 [NOT] BETWEEN o2 AND o3: az o1 érték az o2 és az o3 közé esik o1 [NOT] IN (o2 [,o3,...,oi]): az o1 érték a megadott értékhalmazba esik o1 [NOT] LIKE 'ss' [ESCAPE 'x']: az o1 string hasonlítása a mintához, ahol %: tetszőleges karaktersorozatot helyettesít _: egyetlen egy karaktert helyettesít o1 IS [NOT] NULL: annak vizsgálata, hogy az o1 üres-e AUTO Példa relációk TUL RSZ TIP SZIN EVJ AR 1 BKX-720 Opel Bordó 1991 1000000 1 CMT-111 Golf Piros 1981 350000 2 AAA-156 Trabant Fehér 1985 100000 3 LUI-999 Opel Kék 1991 450000 1 KJS-234 Lada Kék 1989 275000 ID NEV SZULEV CIM Szemely 1 Béla 1975 Budapest 2 Géza 1979 Miskolc 3 Feri 1974 Pécs 17 18 Példák Példa Autók rendszámai: SELECT rsz FROM auto; Eredmény: RSZ BKX-720 CMT-111 AAA-156 LUI-999 KJS-234 Tulajdonos neve és címe: SELECT nev, cím FROM szemely; Eredmény: NEV Béla Géza Feri CIM Budapest Miskolc Pécs Az tulajdonosok minden adatát listázzuk ki: SELECT * FROM szemely; Eredmény: ID NEV SZULEV CIM 1 Béla 1975 Budapest 2 Géza 1979 Miskolc 3 Feri 1974 Pécs A * karakter jelöli, hogy minden mezőre kíváncsiak vagyunk 19 20 5

Példa Szövegmintát tartalmazó feltétel Az autó típusok listája: SELECT tip FROM auto; Lista ismétlés nélkül: SELECT DISTINCT tip FROM auto; TIP Opel Golf Trabant Opel Lada TIP Opel Golf Trabant Lada 21 A Like operátorban adjuk meg a szövegmaszkot, ahol "%": tetszőleges karaktersorozatot helyettesít "_": egyetlen egy karaktert helyettesít Olyan lekérdezésekben használatos, ahol nem ismerjük teljes egészében egy mező értékét Pl. Olyan autók melyeknek a rendszáma K betűvel kezdődik, stb. Nyomozásnál hasznos. SELECT Tulajdonos, Rendszam FROM Auto WHERE Rendszam Like "R%"; 22 Al-lekérdezések (Al-SELECT) Az Al-SELECT operátorai az SQL támogatja azt a lehetőséget, hogy a szelekciós feltételben nemcsak létező, letárolt adatelemekre hivatkozzunk, hanem számított kifejezéseket is alkalmazhassunk a számítást egy másik SELECT utasítással tudjuk megadni tehát az egyik lekérdezés szelekciós feltételében hivatkozunk egy másik lekérdezés eredményére az al-lekérdezést mindig zárójelben kell megadni, hogy elemei elkülönüljenek formailag megegyezik a normál SELECT utasítással (kivétel:al-select-ben nem lehet rendezni) 23 Az al-lekérdezés eredményétől függően különböző operátorokat kapcsolhatunk az al-select-hez: ha az eredmény egy rekord: skalár operátorok (relációs operátorok) használhatók ha az eredmény több rekord: halmazoperátorok (IN, ANY, ALL, EXISTS) használhatók SELECT FROM WHERE m IN (al-select); SELECT FROM WHERE m (relop) ANY (al-select); SELECT FROM WHERE m (relop)all (al-select); SELECT FROM WHERE EXISTS (al-select); (relop): tetszőleges relációs operátor ANY : a halmaz bármely eleméhez hasonlít, ha egyet talál igazzal tér vissza ALL : a halmaz minden eleméhez hasonlít, ha akár egyre nem teljesül hamisat ad vissza EXISTS : az eredményhalmaz üres-e (ha üres, akkor hamissal tér vissza) 24 6

Példák al-select-re Annak az autónak a rendszáma, amelynek ára kisebb mint valamely piros autó ára: SELECT rsz FROM autó WHERE ár < ANY (SELECT ár FROM autó WHERE szin= piros ); A piros autók áránál kisebb áru autók rendszáma: SELECT rsz FROM autó WHERE ár < ALL (SELECT ár FROM autó WHERE szin= piros ); Azok az emberek, akiknek nincs autójuk: SELECT s.név, s.cím FROM szemely s WHERE NOT EXISTS (SELECT * FROM autó a WHERE a.tulaj=s.id); SELECT név FROM szemely WHERE ID NOT IN (SELECT tul FROM autó); 25 Példák al-select-re Írassuk ki a kék színű autó tulajdonosainak nevét: SELECT nev, cim FROM szemely WHERE id IN(SELECT tul FROM auto WHERE szin= kék ); NEV Béla Feri CIM Budapest Pécs 26 Összesített, aggregált értékek Csoportokra képeznek egyértékű mezőt. Min (k) Max (k) AVG(k) SUM(k) COUNT(k) 27 Feladatok 1. Írassuk ki azokat az autókat, amelyek ára az átlagár alatt van. SELECT * FROM auto WHERE ar < (SELECT AVG(ar) FROM auto); 2. Írassuk ki a legidősebb autó rendszámát, típusát és évjáratát! SELECT rendszam, tipus, evj FROM auto WHERE evj = (SELECT MIN(evj) FROM auto); 3. Írassuk ki az autók összértékét! SELECT SUM(ar) as Érték FROM auto; 28 7

SQL szerver Management Studio Az SQL Server 30 SQL Editor ill. Query Designer SQL Editor ill. Query Designer 31 32 8