Készítette: Sárközi Anikó

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 8. gyakorlat SQL alapok.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
SQL Structured Query Language
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
Triggerek II. ADATBÁZIS ALAPÚ RENDSZEREK.  Az Oracle kifinomult módon támogatja a sorszámozások generálását  Szekvencia: olyan adatbázis-objektum, amely.
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
SQL, adatdefiníció, adatok megváltoztatása, megszorítások
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Kényszerek megadása. Indexek kezelése.
Nézettáblák létrehozása, módosítása és törlése
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
DDL – Adatdefiníciós nyelv
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
2006. október 30.Markó Tamás, PTE TTK1 Az Oracle SQL 9. Triggerek és tárolt eljárások. Kliens oldali programok.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázis rendszerek II
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Adatbázis alapú rendszerek
Triggerek gyakorlás.
Triggerek Kalmár György.
adatbázis alapú rendszerek
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Adatbázis-kezelés.
MySQL DDL parancsok – Adatbázis műveletek, mezőtípusok
Előadás másolata:

Készítette: Sárközi Anikó Triggerek Készítette: Sárközi Anikó

Triggerek Tárolt eljárások amelynek lefutását egy esemény váltja ki, pl. egy új rekord beszúrása… Lehetőségünk van például olyan logikai hibák megakadályozására, amelyeket egy egyszerü CHECK paranccsal nem lehetne megakadályozni. Egy le nem írt konvenció szerint úgy illik elnevezni a triggereket, hogy a nevükben látható legyen valamilyen formában a táblázat és a parancsok, amikhez a triggert létrehozták Példa… Create database teszt_db use teszt_db CREATE TRIGGER ins_trigger ON tabla1 INSTEAD OF INSERT AS BEGIN IF ((SELECT id FROM inserted)>10) INSERT INTO tabla1 (id, nev) VALUES (SELECT id, nev FROM inserted) END Ez a trigger csak abban az esetben engedi beillszteni az új sort, ha az "id" > 10.

Mi is az a CHECK? „Korlátozás” korlátozza azt az értéktartományt amit egy mezőbe lehet írni Egy mező értékét korlátozhatjuk egy logikai kifejezés értékével, a logikai kifejezésben más mezők értékeit is szerepeltethetjük WARNING: a Mysql-ben nincs…!!!!!van..de mégsincs…

Példák CHECK használatára CREATE TABLE Persons ( Kor int NOT NULL, Nev varchar(255) NOT NULL, CHECK (Kor>200) ) Utólagos hozzáadás: ALTER TABLE Persons ADD CHECK (Kor>200)

Triggerek fajtái Események típusa szerint: DML trigger(Data Manipulation Language), DDL trigger(Data Definition Language), Logon trigger.

DML triggerek Táblákon vagy nézeteken hajtódik végre Akkor aktiválódik ha valamilyen DML esemény történik DML Események: INSERT, UPDATE, DELETE Módok: BEFORE (INSTEAD OF) AFTER Feladat amit a check-kel nem lehet megcsinálni Pl:film-életkorkorlátozás

Before trigger Mindhárom esemény esetén (INSERT, UPDATE, DELETE) a parancs előtt hajtódik végre. Lehetőségünk van, saját hiba generálásával megakadályozni a művelet végrehajtódását Példát keresni

After trigger A trigger egy INSERT, UPDATE vagy DELETE parancs futtatása után (amikor az adatok már módosultak) hajtódik végre. Ha a triggerben a tranzakciót visszavonjuk, akkor az adatokat az adatbáziskezelő törli.(rollback) Ha a triggerben mindent rendben találunk, akkor a módosításokat elfogadjuk

DML Trigger korlátozások Egy táblához legfeljebb 3 trigger készíthető(INSERT, UPDATE, DELETE), Parancsonként legfeljebb egy, vagyis egy parancshoz vagy AFTER vagy BEFORE Egy triggert több parancshoz is köthetünk pl: INSERT-UPDATE parancsoknál történő ellenőrzések megegyeznek

Triggerek szintaxisa T-SQL(Transact-SQL): Microsoft SQL megvalósítása Programozási szerkezetekkel egészíti ki a nyelvet Segítségével olyan sql-t tartalmazó programokat írhatunk,amelyekben a szokványos programozási szerkezetek is megtalálhatók (változók, feltételes szerkezetek, ciklusok, eljárások-függvények) Pl:Microsoft SQL Server 2000, 2005

T-SQL szintaxis: CREATE TRIGGER <trigger_név> ON <táblázat_neve> { BEFORE | AFTER } <sql_parancs_típus> AS <T-SQL_parancs> <trigger_név> : … <táblázat_neve> : annak a táblázatnak a neve amelyre az adatbanknak alkalmaznia kell a triggert <sql_parancs_típus> : INSERT | UPDATE | DELETE <T-SQL_parancs> : egy parancs vagy blokk amit a trigger a meghívásakor végrehajt

Példa(AFTER) CREATE TRIGGER ins_upd_Beszallito ON Beszallito AFTER INSERT, UPDATE AS BEGIN IF UPDATE(BeszallitoID) ROLLBACK TRANSACTION END Magyarázat: Létrehozunk egy triggert, aminek a neve "ins_upd_Beszallito" lesz. (Egy le nem írt konvenció szerint úgy illik elnevezni a triggereket, hogy a nevükben látható legyen valamilyen formában a táblázat és a parancsok, amikhez a triggert létrehozták) Jelen esetben a trigger neve utalást ad arra, hogy a trigger a "Beszallito" nevü táblának INSERT illetve UPDATE paranccsal történő módosításakor lesz meghívva. Ezekre a dolgokra a következö sorok adnak utasítást. Az "ON" kulcsszó mögött áll annak a táblának a neve, amelyiket ez a trigger felügyeli. Az "AFTER" kulcsszó es az az utáni "INSERT, UPDATE" kulcsszavak jelzik, hogy a trigger minden olyan INSERT és UPDATE parancs után lesz meghívva, amelyek a fent nevezett táblát módosítják. Az "AS" utáni blokkban lekérdezhető, hogy a BeszallitoID nevű oszlopot (feltételezzük, hogy ez jelen esetben primary key) módosították-e. Ha igen, akkor a tranzakciót a ROLLBACK TRANSACTION paranccsal visszavonjuk, mivel a primary key oszlopai nem módosulhatnak.

Új, módosított vagy törölt adatok lekérdezése A triggerekben (triggertől függően) létezik két speciális tábla. A felépítésük megegyezik az INSERT, UPDATE vagy DELETE parancs cél-táblájának felépítésével. MS SQL Servernél: „inserted”:Ebben a táblában csak az új (beillesztett vagy beillesztendő) adatok szerepelnek. „deleted”:Ebben a táblában csak a régi (törölt vagy törlendő) adatok szerepelnek. Egy INSERT parancs esetében csak az "inserted" táblázat, míg az UPDATE parancsnál mindkettő létezik. A DELETE parancsnál már csak a "deleted" táblázat létezik. ???Fontos: SQL engedélyezi, hogy egy parancs alkalmával több sor legyen módosítva. (Pl. INSERT INTO (SELECT * FROM …);, vagy DELETE FROM xyz;) A triggerben erre is gondolni kell és ha egyszerü SQL-kéréssel nem lehet ellenörizni a müvelet helyességét, akkor azt ún "cursor"-al kell megtenni.???

Egy INSERT parancs esetében csak az "inserted" táblázat, míg az UPDATE parancsnál mindkettő létezik. A DELETE parancsnál már csak a "deleted" táblázat létezik. Mysql-es pl: NEW.nev,NEW.tel, OLD.nev,OLD.tel,

Triggerek szintaxisa PL/SQL : Az Oracle által kifejlesztett programozási nyelv Oracle adatbáziskezelőt használva ezen a nyelven írhatunk triggereket és más tárolt eljárásokat. A nyelv alapja az Ada programozási nyelv(strukturált, típusos, blokkszerkezetes, imperatív p.ny.) magában foglalja az SQL nyelvet(SELECT, INSERT, DELETE, UPDATE illetve OPEN, FETCH, CLOSE utasításait )

CREATE [OR REPLACE] TRIGGER <trigger_name> PL/SQL: CREATE [OR REPLACE] TRIGGER <trigger_name> {BEFORE|AFTER} {INSERT|DELETE|UPDATE} ON <table_name> [REFERENCING [NEW AS <new_row_name>] [[OLD AS <old_row_name>]] [FOR EACH ROW [WHEN (<trigger_condition>)]] <trigger_body> <new_row_name> : a táblázat neve, amelyben az új adatok szerepelnek (default: ":NEW") <old_row_name> : a táblázat neve, amelyben a régi adatok szerepelnek (default: ":OLD") <trigger_condition> : egy feltétel, amely fennállása a trigger meghívásához vezet. Más esetben a trigger nem lesz meghívva. <trigger_body> : egy PL/SQL parancs vagy blokk, amelyben a trigger programkódja van.

REFERENCING: nem kötelező megadni REFERENCING: nem kötelező megadni. Ilyen esetben a fent nevezett default értékek lesznek véve. FOR EACH ROW: a PL/SQL előnye T-SQL-el szemben, hogy ennek a paraméternek a megadásával a szerver kényszerítve lesz, hogy a trigger például egy INSERT INTO (SELECT * FROM …); parancs minden sorára egyenként hívja meg. Ha a FOR EACH ROW-t nem írjuk oda, a trigger parancsonként lesz meghívva. A PL/SQL ilyenkor ugyan úgy fog viselkedni, mint a T-SQL.

DLL triggerek Olyan mint a hagyományos triggerek Rövid tárolású események amik egy eljárás bekövetkeztére jönnek létre Ezek az események elsősorban tranzakciós sql parancsokra reagálnak(CREATE, ALTER, DROP) Bizonyos rendszer tárolású események amik kezelnek DDL szerű műveleteket szintén indíthatnak DDL triggereket. Csak az őket kiváltó DDL állapot befejezte után futnak le. A DDL triggereket nem lehet INSTED OF triggerként használni

DDL triggerek Felhasználás: Adminisztráció feladatok:auditálás,adatbázis-sémák szabályozása adatbázis-sémák bizonyos változtatásainak megakadályozása Azt akarod valamitől, hogy történjen az adatbázisban egy az adatbázis-sémádban bekövetkező változásra adott válaszban. Változásokat vagy eseményeket akarsz felvenni az adatbázis-sémában.

DDL triggerek Példa:hogy lehet megakadályozni DDL triggerrel, hogy módosítsák vagy eldobják a táblánk, vagy adatbázisunk? CREATE TRIGGER biztonsági ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT ‘Kapcsold ki a „biztonsági" triggert, hogy tudd eldobni és módosítani a táblát ROLLBACK ;

Köszönöm a figyelmet!