Anyagadatbank c. tárgy gyakorlat
Féléves tematika •Adatbázis alapfogalmak, rendszerek •Adatmodellek, adatbázis tervezés •Adatbázis műveletek •Webes adatbázis technológiák •Tervezőszoftver használat, a féléves feladat gyakorlati megvalósítása
Relációs algebra A struktúra felépítése után következhet az adatok felvitele, módosítása, lekérdezése Műveletek típusai: - adatdefiniáló (DDL) - adatkezelő (DML) - lekérdező (DQL) - vezérlő (DCL)
Relációs algebra operandusai a relációkoperátorai zártak a reláció halmazra •A műveletek operandusai és eredményük is relációk, azaz azonos típusú rekordok halmaza •Fő erőssége és különlegessége a lekérdezési rész •Egy és két operandusú operátorok léteznek, a lekérdezési műveletek láncolhatók •Descriptív, az eredmény relációhoz vezető műveletsor lépéseit •kell megadni a lekérdezés megfogalmazásánál.
Relációs algebra A relációs algebra műveletei: szelekció projekció kiterjesztés aggregáció csoportképzés join metszet különbség unió osztás } } egy operandusú két operandusú
Szelekció: a megadott feltételnek eleget tévő rekordok kerülnek át az eredmény relációba
Projekció: a kijelölt mezők kerülnek csak át az eredmény relációba
Műveletek kombinálása:
Join: a két reláció rekordjainak párosait adja eredményként Alap join: Descartes-szorzat Szelekciós Join: a két reláció rekordpárosaiból a feltételnek eleget tévő párosokat adja eredményként
Relációs algebra Kiterjesztés: a reláció kibővítése származtatott mezőkkel Az új mező értékének a többi mező értékéből kell meghatározódnia
Relációs algebra Aggregáció: a relációból összesítő rekordot állít elő aggregációs függvények: SUM(mez.kif) AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif) MIN(mez.kif)
Relációs algebra Csoportképzés és aggregáció: a reláció rekodjait csoportokba rendezi, s minden csoportra egy összesítő rekordot állít elő Azon rekordok kerülnek egy csoportba, melyekre a csoport képzési kifejezés azonos értékű
Az SQL nyelv ‘autók és tulajdonosok’ A T create table A (R char(6) primary key,.. SQL DB Az elkészített RDBMS rendszerek igényelnek egy parancsnyelvet SEQUEL SQL (86,89,99,3)
A SQL jellemzése: - a relációs algebrára épül - kiterjed az adatkezelő tevékenységekre: - adatdefiniáló (DDL) - adatkezelő (DML) - lekérdező (DQL) - vezérlő (DCL) - descriptiv, 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 Az SQL nem DBMS
Objektum létrehozása: CREATE objektumtípus azonosító paraméterek; CREATE TABLE tnév (mnev1 tipus1 intfelt1, …,intfelt)... ; CHAR(n) NUMBER(n,m) DATE PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla PRIMARY KEY(m1,m2) FOREIGN KEY(m1,m2) REFERENCING tabla CHECK felt CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY, AR NUMBER(9) NOT NULL, IDO DATE);
Rekord felvitele: INSERT INTO tabla VALUES (ert1, ert2, …,ertn); INSERT INTO tabla SELECT …; INSERT INTO tabla VALUES (mezo=ertek,…); Az érték lehet NULL is. Nem maradhat ki mező. Fontos a mezősorrend INSERT INTO AUTO VALUES (“bju564”,234,”FIAT”); INSERT INTO AUTO VALUES (“bju564”,234,NULL); INSERT INTO AUTO VALUES (RSZ=“bju564”,...); Dátumok felvitele konverziós függvénnyel: INSERT INTO AUTO VALUES(DATUM = TO_DATE(“ ”,”YYYY.MM.DD”),…);
Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltételnek eleget tevő rekordok törlődnek Ha elmarad a WHERE tag, minden rekord törlődik A feltétel rész részletesen a SELECT-nél jön DELETE FROM AUTO WHERE AR< ; Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel; A feltételnek eleget tevő rekordok módosulnak Ha elmarad a WHERE tag, minden rekord módosul UPDATE AUTO SET AR = AR * 1.2 WHERE AR< ;
Adatok lekérdezése: SELECT mezőlista FROM tabla1,tabla2,...OUTER JOIN... WHERE feltétel …(SELECT…)... GROUP BY cskif HAVING feltétel UNION | INTERSECT | MINUS … SELECT … … ORDER BY INTO... az SQL ereje igen összetett is lehet sokkal hatékonyabb, mint algoritmust írni
SELECT - a projekció megadása SELECT RSZ, TIPUS FROM AUTO; SELECT mlista FROM tábla; Az mlista helyén * áll, ha minden mező kell
SELECT - a szelekció megadása SELECT mlsita FROM tábla WHERE feltétel; SELECT * FROM AUTO WHERE SZIN = ”PIROS” OR TIPUS = ”MAZDA”;
Műveletek kombinálása: SELECT RSZ FROM AUTO WHERE SZIN = ”PIROS” OR SZIN=”KEK”;
SELECT - a join megadása SELECT mlista FROM tabla1, tabla2,.. WHERE feltétel; Ha a feltétel elmarad Descartes szorzatot kapunk Kettőnél több tábla is összekapcsolható Ha több táblában is azonos elnevezésű mező van, akkor a kibővített mezőnevet használjuk:tábla.mező
SUM(mez.kif) AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif) MIN(mez.kif) SELECT COUNT(*) FROM AUTO; SELECT - az aggregáció megadása SELECT aggregációs-lista FROM tábla;
SELECT - az aggregáció és csoportképzés megadása SELECT aggregációs-lista FROM tábla GROUP BY csopképzkif; SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS;
SELECT - szűrés az elkészült csoportokból SELECT agg-lista FROM tábla GROUP BY cskif HAVING feltétel; SELECT TIPUS FROM AUTO GROUP BY TIPUS HAVING AVG(AR) > ; A csoportképzés előtti és utáni szelekció együttesen is szerepelhet: SELECT TIPUS FROM AUTO WHERE SZIN=”PIROS” GROUP BY TIPUS HAVING AVG(AR) > ; WHEREHAVING
SELECT - eredmény rekordok rendezése SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2...; ASC DESC Nem része a relációs algebrának A második mező szerinti szempont csak az első egyezősége esetén lényeges SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY AR DESC, TIPUS;
SELECT - speciális szelekciós operátorok kif LIKE minta sztring kifejezés illeszkedése egy mintára Speciális karaketerk a mintában: %több karaktert helyettesít _ egy karaktert helyettesít … WHERE NEV LIKE ”%PETER%”... kif IS [NOT] NULLüres-e a kifejezés kif BETWEEN kif2 AND kif3köztes érték vizsgálat