Adatbázis rendszerek II

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Tananyag: konzultáció
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 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.
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
Delphi programozás alapjai
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Adatbázis alapú rendszerek
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ő.
PL/SQL I. ADATBÁZIS ALAPÚ RENDSZEREK.  PL/SQL = Procedural Language/SQL  utasítást ; zárja le  PL/SQL blokk lezárása: /  kis- és nagybetű egyenértékű.
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,
JavaScript.
Bevezetés a Java programozásba
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
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Készítette: Sárközi Anikó
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ő.
ORACLE ORDBMS adminisztrációs feladatok 6. rész dr. Kovács László 2004.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
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;
Ismétlés A pascal program szerkezete: program programnev; Programfej
Klasszikus Programozás a FoxPro-ban
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.
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 – OLAP 5. óra. Personal Express programozása Saját rutinok, függvények készíthetők DEFINE nev PROGRAM vtípus EDIT nev nev ” megjegyzés VARIABLE változó.
Készítette: Tóth Ervin
Objektum orientált programozás a gyakorlatban
Készítette: Csíki Gyula
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
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.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
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
Objektum orientált programozás
PL/SQL alapok Adatbázis-kezelés.
Ma az un. Relációs adatmodelleket használjuk.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
Adatbázis rendszerek I
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Excel programozás (makró)
Az 5,6,7 laborok VBA anyagának összefoglalása
Adatbázis alapú rendszerek
PL/SQL gyakorlás Kalmár György.
Triggerek gyakorlás.
Excel programozás (makró)
Triggerek Kalmár György.
Adatbázis-kezelés (PL/SQL)
adatbázis alapú rendszerek
A CLIPS keretrendszer
PL/SQL alapok Adatbázis-kezelés.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Függvénysablonok használata
Előadás másolata:

Adatbázis rendszerek II Kovács László A PL/SQL nyelv további elemei

Adattípusok A PL/SQL adattípusai igazodnak az Oracle DBMS adattípusaihoz. NUMERIC numerikus INTEGER … CHAR szöveges hagyományos relációs adattípusok VARCHAR… gyári dátum DATE bináris RAW adattípus logikai BOOELAN VARRAY más típusokra hivatkozik halmaz TABLE saját rekord RECORD UDT

Adattípusok Rekord adattípus Több (esetleg különböző) típusú adatelemek együttese Fix méret Adatbázisba közvetlenül nem tárolható le Tábla rekordnak felel meg (SELECT, INSERT, UPDATE-ben felhasználható)

Üzleti logika és adatbázis integrálása Az üzleti logika procedurális nyelven definiált. Alkalmazható programozási nyelvek: - külső (pl. java, C) - saját - SQL/kiegészítés Külső: alkalmazzák (pl. Postgres) +: ismert, sok funkció -: laza integráció,védelem Saját: ritkán alkalmazzák (pl. VFP) +: testre szabható -: új ismereteket igényel, zártság SQL kiegészítés: sokan alkalmazzák (pl. Oracle, SQLServer) +: szoros integráció -: sok új elem van a nyelvben, zártság

PL/SQL alapjai PL/SQL: az Oracle SQL kiegészítése a procedurális elemeket definiálására A PL/SQL kódok építő köve a PL/SQL blokk DECLARE Deklarációs rész BEGIN Törzs, kód rész blokk EXCEPTION Hiba kezelő rész A blokk még nem adatbázis objektum (pl. nincs neve) END

PL/SQL alapjai A PL/SQL blokk felhasználása Tárolt eljárás Tárolt függvény Triggerek JOB Közvetlen futtatás

Tárolt eljárások, PL/SQL elemei A tárolt eljárások DB objektumként védhető, karbantartható CREATE OR REPLACE PROCEDURE név (pnev1 IN | OUT típus1,… ) AS PL/SQL blokk Paramétereknél: IN: bemenő paraméter OUT: értéket kap, amit kinn is látni kellene Elindítása: EXECUTE név (param1, ..) Megszüntetése: DROP PROCEDURE név

KÉP Thom Evans (?): Repetition

Programozási elemek A deklarációs rész felépítése adattípus DECLARE nev CHAR(10); kor NUMBER(5,1) := 12; tip CONSTANT CHAR(2) := ‘AL’; ig EMBER.IGSZ%TYPE; auto AUTO%ROWTYPE; kezdőérték konstans érték DB tábla megadott mezőjének típusát veszi fel változó neve rekord típus, DB tábla rekordtípusát veszi fel KL KL

Alap adattípusok BINARY_INTEGER: egész, bináris, +/-214783647-ig NUMBER(n,m): valós, számjegyes CHAR(n): szöveg VARCHAR2(n): változó méretű szöveg BOOLEAN: logikai DATE: dátum, idő RAW: bináris LONG: hosszú szöveg(2GB) LONG RAW: hosszú bináris(2GB) declare s1 char(5) := '12'; s2 char(5) := '12 '; => s1 = s2 ist TRUE declare s1 varchar2(5) := '12'; s2 varchar2(5) := '12 '; => s1 = s2 ist FALSE

Alap operátorok Operátorok prioritási táblázata NOT, ** +, - (előjelek) /, * +, -, || =, !=, <, >, <=, >=, IS NULL,LIKE,BETWEEN,IN AND OR Néhány függvény Szöveg : upper(), initcap(), substr(), length(), rtrim() dátum : sysdate, to_date(), to_char(), t_number() numerikus : abs(), mod(), round() ...

Programozási elemek A törzs rész felépítése értékadás BEGIN nev := ‘mars’; IF x > 4 THEN .. ELSE END IF; UPDATE auto SET ar = x WHERE …; SELECT ar,ig,.. INTO x, y.. FROM .. NULL; END feltételes végrehajtás SQL parancsok gazdanyelvi változó Egy rekord lekérdezése gazdanyelvi változóba Üres parancs KL KL

Programozási elemek A törzs rész felépítése BEGIN LOOP .. EXIT [WHEN felt]; END LOOP; WHILE x < 2 LOOP FOR x IN [REVERSE] … LOOP … END; alapciklus kilépés [feltétel esetén] feltételes ciklus léptetéses ciklus Egy halmaz elemeire

Programozási elemek Többszörös elágazás BEGIN .. elágazás rész nyitása CASE WHEN feltétel THEN tevékenység; WHEN feltétel THEN tevékenység; END; ELSE tevékenység; END CASE; END elágazás rész nyitása egy feltétel ág tevékenység blokk egyéb ág elágazás rész zárása

Programozási elemek Kurzor szerkezet, több rekord beolvasása a DB-ből DECLARE CURSOR cnev(param) IS SELECT ..; BEGIN OPEN cnev(aparam); LOOP FETCH cnev INTO vlista; EXIT WHEN cnev%NOTFOUND; END LOOP; CLOSE cnev; deklaráció, paraméterrel nyitás rekord olvasás kilépés a ciklusból lezárás DBMS PL/SQL blokk kurzor

Programozási elemek Közvetlen kurzorkezelési ciklus DECLARE CURSOR cnev(param) IS SELECT ..; BEGIN OPEN cnev(aparam); FOR c1 IN cnec LOOP x := c1.mezo1; ... END LOOP; CLOSE cnev; deklaráció, paraméterrel nyitás ciklus Hivatkozás egy mezőre lezárás

Programozási elemek Hibakezelés DECLARE hnev EXCEPTION; saját hibakód deklarálás hiba explicit generálása BEGIN RAISE hnev ; EXCEPTION WHEN hiba THEN ….. WHEN OTHERS THEN …. hiba azonosítása hibakezelő rutin egyéb hibák kezelése

Hibakódok no-data-found : nincs több adat Cursor-already-open : már nyitott a kurzor Dup-val-On-index : kulcs dupplikálás Storage-error : memória hiba Program-error : pl/SQL motor hiba Zero-divide : nullával való osztás invalid-cursor : nem élő kurzor Login-denied : érvénytelen bejelentkezés Invalid-number : adattípus hiba Too-many-rows : több mint egy eredményrekord

Minta kód DECLARE v_einheit_kurz varchar2(10); v_bezeichnung varchar2(40); BEGIN v_einheit_kurz := 'kg'; v_bezeichnung := 'Kilogramm'; insert into einheit (einheit_kurz, bezeichnung) values (v_einheit_kurz, v_bezeichnung); EXCEPTION when DUP_VAL_ON_INDEX then update einheit set bezeichnung = v_bezeichnung where einheit_kurz = v_einheit_kurz; END;

Minta kód declare function einheit_existiert (p_einheit_kurz in varchar2) return boolean is v_anzahl pls_integer; begin select count(*)into v_anzahl from einheit where einheit_kurz = p_einheit_kurz; return v_anzahl > 0; end; if not einheit_existiert ('m') then insert into einheit (einheit_kurz, bezeichnung) values (m', 'Meter'); end if;

Minta kód DECLARE e_rec emp%ROWTYPE; e1 EXCEPTION; sal1 emp.sal%TYPE; BEGIN SELECT sal INTO sal1 FROM emp WHERE deptno = 30 AND ename = 'John'; IF sal1 < 5000 THEN RAISE e1; sal1 := 8500; UPDATE emp SET sal = sal1 WHERE deptno = 30 AND END IF; EXCEPTION WHEN no_data_found THEN RAISE_APPLICATION_ERROR (-20001, 'John távol van'); WHEN e1 THEN RAISE_APPLICATION_ERROR (-20002, ’Less Salary.'); END;

kép Thom Evans: Whispers

Adatkezelés speciális elemei

Thom Evans: My new hat