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

Hasonló dokumentumok
Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

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

Tranzakciókezelés PL/SQL-ben

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Adatbázis használat I. 5. gyakorlat

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

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

Haladó DBMS ismeretek 1

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

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

Kalmár György Adatbázis alapú rendszerek

PL/SQL (folytatás) Kurzorok, függvények, eljárások

Adatbázis rendszerek SQL nyomkövetés

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

PL/SQL blokk. [címke] [DECLARE deklarációs utasítás(ok)] BEGIN végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név];

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

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

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

Együttes hozzárendelés

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

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

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

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;...

Az SQL adatbázisnyelv: DML

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

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

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

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

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

Bevezetés: az SQL-be

Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN

Adatbázis használat I. 2. gyakorlat

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

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

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Kivételkezelés 2. SQLCODE lehetséges értékei:

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

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

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

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

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

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

Java és web programozás

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

ADATBÁZIS RENDSZEREK I BEADANDÓ

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

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

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Az SQL*Plus használata

LBRA6i integrált rendszer

Hozzunk ki többet abból amink van. Fehér Lajos

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Jegyz könyv. Adatbázis-rendszerek II. Beadandó feladat. Miskolci Egyetem

Adatbázis Rendszerek II. 3. PLSQL alapok 92/1B IT MAN

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ázisok-1 előadás Előadó: dr. Hajas Csilla

PL/SQL 1. rész. Procedural Language extension to SQL

A TANTÁRGY ADATLAPJA

Adatbázis használat I. 2. gyakorlat

Java és web programozás

Adatbázis rendszerek. Gyakorlati jegyzet. Készítette: Selling István

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

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

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

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Adatbázisban tárolt kollekciók

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

Objektum-relációs adatbázisok. Felhasználói típusok (User-Defined Types) Objektum ID-k Beágyazott táblák (Nested Tables)

Adatbázisok webalkalmazásokban

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

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

Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz

Kliens oldali SQL-API

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

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

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

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

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

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

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

Az adatbázisrendszerek világa

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

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

Adattípusok. Max. 2GByte

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

Adattípusok. Max. 2GByte


PL/SQL feladatok 8. gyakorlat

SQL OO elemei aktív komponensek

BEVEZETÉS Az objektum fogalma

Spatial a gyakorlatban

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

Vizuális programozás gyakorlat

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

Adatbázis rendszerek tervezése

Adatbázisok* tulajdonságai

Átírás:

Adatbázisok II. 1 Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1

Ajánlott irodalom Ullman-Widom: Adatbázisrendszerek. Alapvetés (Második, átdolgozott kiad), Panem, 2008. november (bővítés pl.uml, UDT, JDBC, PHP, XML) Kende-Nagy: Oracle példatár (Oracle 9i és 10g verziókhoz), Panem, 2005. Gábor A.-Juhász I.: PL/SQL-programozás ORACLE 10g-ben, Panem, 2006. Varga Ibolya: Adatbázisrendszerek, Egyetemi Kiadó, Kolozsvár, 2005 Steven Feuerstein weboldala: http://www.toadworld.com/knowledge/databaseknowledge/stevenf euersteinsplsqlobsession/tabid/153/default.aspx 1-2

Websites for PL/SQL Developers www.plsqlchallenge.com Daily PL/SQL quiz with weekly and monthly prizes www.plsqlchannel.com 27+ hours of detailed video training on Oracle PL/SQL www.stevenfeuerstein.com Monthly PL/SQL newsletter www.toadworld.com/sf Quest Software-sponsored portal for PL/SQL developers 1-3

Célkitűzések Tárolt eljárások, függvények, csomagok bemutatása Tranzakciókezelés részletes bemutatása, Holtpont megelőzés és felfedezés. Semmiségi és helyrehozó naplózás. XML típus bemutatása, XQUERY Osztott adatbázis fogalmak, tervezés, tranzakciókezelés osztott adatbázisok esetén, osztott lekérdezések feldolgozása, megismerése. Adattárházak ismertetése Laboron bonyolult tárolt eljárások és tranzakciókezelés lesz, majd egy többfelhasználós konkurencia problémákat kezelő kollektív adatbázis projektet kell készíteni. 1-4

Szerver oldali programozás Tárolt eljárások és függvények Oracle-ben 1-5

PL/SQL kiterjesztett SQL, pl. elágazások, ciklusok, stb. Tárolt eljárás PL/SQL utasítások gyűjteménye, ami egy feladatot valósít meg, paraméterezhetőek, saját egyedi azonosító nevük van és az adatbázisban lefordított formában eltárolásra kerülnek Több kimeneti értéke is lehet Függvény egyetlen kimeneti érték bárhol használható, ahol érték használható 1-6

Tárolt eljárások létrehozása (deklarálása) CREATE OR REPLACE PROCEDURE eljárás_név [paraméter_lista] IS --IN, OUT, INOUT BEGIN <az eljárás végrehajtandó része> [EXCEPTION <a kivétel-kezel ő rész>] END [eljárás_név]; 1-7

Példa egy tárolt eljárásra CREATE OR REPLACE PROCEDURE Hire_Emp( name VARCHAR2, job VARCHAR2, mgr NUMBER, hiredate DATE, sal NUMBER, comm NUMBER, deptno NUMBER) IS BEGIN INSERT INTO emp VALUES(emp_sequence.nextval, name, job, mgr, hiredate, sal, comm, deptno); END; meghívás: EXECUTE Hire_Emp('Queen', 'SALESMAN', 7698, '11-Nov-2000',2005,NULL,30) törlés: DROP PROCEDURE Hire_Emp 1-8

Függvények létrehozása (deklarálása) CREATE [OR REPLACE] FUNCTION függvény_név [(paraméter1 [IN OUT IN OUT] típus, [paraméter2 [IN OUT IN OUT] típus,... )] RETURN <az_eredmény_típusa> AS <függvény_törzse>; -- egy PL/SQL blokk. 1-9

Példa egy függvényre A visszatérési értéket a RETURN utasítással határozzuk meg CREATE FUNCTION atlag ( tip IN CHAR(20)) RETURN NUMBER IS ertek NUMBER; BEGIN SELECT AVG(ar) INTO ertek FROM autok WHERE tipus LIKE tip; RETURN (ertek); END; 1-10

Létez ő eljárások lekérdezése: SELECT object_name FROM user_objects WHERE object_type LIKE PROCEDURE% ; Létez függvények lekérdezése: ő SELECT object_name FROM user_objects WHERE object_type LIKE FUNCTION% ; 1-11

A tárolt eljárások és függvények előnyei Biztonság Nem kell a táblákra jogosultságot adnunk, hanem elég az eljárásra Ha valaki meghivja a tárolt eljárást (ha joga van rá), akkor az eljárást létrehozó felhasználó kontextusában fut Teljesítmény Kevesebb információt kell átküldeni a hálózaton A lefordított változat tárolódik az adatbázisban Lehet, hogy már amúgy is benn van a memóriában Memória-foglalás Több felhasználó is megosztozhat ugyanazon a betöltött kódon 1-12

A tárolt eljárások és függvények előnyei Termelékenység Tárolt eljárások a szerveren kliensek ezeket hívogatják Ha változik a logika, elég a szerveren változtatni Adatintegritás Azaz: Működési korlátozások biztosítása Megosztott alkalmazás-logika Elrejti az adatbázis szerkezetét Biztonsági mechanizmus Javítja a teljesítményt Csökkenti a hálózati forgalmat 1-13

Tárolt eljárások típusai Egyedülálló (standalone) Csomagban (package) Küls ő (External) C-ben íródik az Oracle-től elkülönített címtartományban fut 1-14

Tárolt eljárás létrehozása Lefordítja a tárolt eljárást Eltárolja a lefordított eljárást neve forráskód, és értelmezési fa pszeudo kód (P-kód) hibaüzenetek EZEK AZ ADATSZÓTÁRBAN VANNAK!!! (SYSTEM) 1-15

Felhasználói jogosultságok EXECUTE jogosultság kell annak, aki végre akarja hajtani (a tulajdonosnál ez alapértelmezés szerint megvan) A tulajdonosnak megfelel ő jogosultságokkal kell rendelkeznie, hogy elérje a megfelel ő adatokat. 1-16

A tárolt eljárás érvényessége Érvénytelenné válik az eljárás, ha valamilyen hivatkozott objektumot módosítunk vagy törlünk olyan rendszer-jogosultságot vonunk meg a tulajdonostól, amit használ az eljárásban olyan objektum-jogosultságot vonunk meg a tulajdonostól, amit használ az eljárásban Ha érvénytelenné válik, akkor a következ ő futtatáskor automatikusan újrafordítódik 1-17

Megoldott feladatok 1) CREATE OR REPLACE PROCEDURE kiir(szoveg in varchar2) IS BEGIN dbms_output.put_line(szoveg); END; 2) Készítsünk eljárást, amely új terméket visz fel úgy, hogy a termék adatait paraméterként kapja! CREATE OR REPLACE PROCEDURE termekbeszur ( cikkszam in char, termeknev in varchar2, ar in number, raktmenny in number, gyid in number) IS BEGIN COMMIT; INSERT INTO termek (cikkszam, termeknev,ar,raktmenny,gyid) VALUES (cikkszam, termeknev,ar,raktmenny,gyid); EXCEPTION WHEN dup_val_on_index then kiir('mar van ilyen cikkszam'); END; 1-18

3) Készítsünk egy eljárást, amely segítségével számlaszám és cikkszám alapján egy tételt tudunk törölni a számla_termék táblából! CREATE OR REPLACE PROCEDURE torol (szlasz in number, csz in char) IS BEGIN END; DELETE FROM szamla_termek WHERE szlaszam = szlasz AND cikkszam = csz; COMMIT; 1-19

4) Írjunk eljárást, amely bekéri egy termék azonosítóját, és megnöveli az összes termék árát, amely termékek ára kisebb, mint a bekért termék ára! Az emelés mértékét szintén a felhasználó adja meg. Amennyiben nem létezik az adott cikkszámú termék, akkor erre figyelmeztesse a felhasználót! CREATE OR REPLACE PROCEDURE modosit (cszam in char, szazalek in number) IS ara termek.ar%type; BEGIN SELECT ar INTO ara FROM termek WHERE cikkszam = cszam; UPDATE termek SET ar=ar*(1+szazalek/100) WHERE ar<ara; COMMIT; EXCEPTION WHEN no_data_found THEN kiir('nincs ilyen termek'); END; 1-20