Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL>

Slides:



Advertisements
Hasonló előadás
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.
Advertisements

Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Objektum relációs adatmodell
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
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.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
System Statistical Functions. CPU Tesztelése SELECT AS busy Vissza adja milliszekundumban, mennyi időt töltött munkával a szerverünk indítá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ő.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
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ű.
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
FelültöltésVHDL Felültöltés (Overloading) n Áttekintés n Példák.
Neo4j bevezető Rácz Gábor
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
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.
Készítette: Sárközi Anikó
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
2006. október 9.Markó Tamás, PTE TTK1 Az Oracle SQL 7. Kényszerek megadása. Indexek kezelése.
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.
SQL 1 SEQUEL, Structured English Query Language: SQL ANSI, ISO: SQL86, SQL89, SQL92. Alap (entry), közbenső (intermediate), teljes (full) szint. A DDL.
55 kodosszeg FIZETÉS felvitel JUTALOM felvitel 11-es dolgozó kap 200-at 11-es dolgozó kap 50-et SELECT osszeg INTO x FROM d.
SQL – OLAP 8. óra.
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.
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
1 SQL – Structured Query Language IBM fejlesztette ki 70-es években (SEQUEL) 1986-ban lett szabvány (SQL86) SQL86, SQL89, SQL92, SQL99, SQL3, SQL2003 DDL,
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
Kényszerek megadása. Indexek kezelése.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
VFP xBase adatkezelés - munkaterületek - DML - DDL - navigáció - eljárások, függvények - vezérlési szerkezetek - változók - képernyő IO - mintaprogram.
PHP VI Adatbázisok, MySQL
PHP V Osztályok, Objektumok. Osztály class Person { var $name; // tulajdonság, változó function getName() { // metódus, tagfüggvény return $this->name;
- 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.
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.
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
Adatbázis adminisztrátori ismeretek
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!
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
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
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.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Adatbázis rendszerek II
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Adatbázis rendszerek I
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis rendszerek I
PL/SQL gyakorlás Kalmár György.
Adatbázis rendszerek II.
Adatbázisok SQL.
Előadás másolata:

Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL> CREATE TABLE MUNKA (LEIRAS CHAR(20), FELELOS SZEMELY); SQL> INSERT INTO MUNKA VALUES ('PROBA MUNKA', SZEMELY('PETER','123')); SQL> SELECT * FROM MUNKA LEIRASFELELOS(NEV, TEL) PROBA MUNKASZEMELY('PETER', '123')

SQL> SELECT * FROM MUNKA M WHERE M.FELELOS.NEV LIKE 'PETER%'; SQL> SELECT M.FELELOS.NEV FROM MUNKA M; FELELOS.NEV PETER Alias név használata kötelező objektum attribútum hivatkozásoknál SELECT FELELOS FROM MUNKA;ok SELECT FELELOS.NEV FROM MUNKA;nem SELECT MUNKA.FELELOS.NEV FROM MUNKA;nem SELECT M.FELELOS.NEV FROM MUNKA M;ok

SQL> CREATE TABLE SZEMELYEK OF SZEMELY; Objektum tábla SQL> INSERT INTO SZEMELYEK VALUES ('ANNA','3424'); SQL> SELECT NEV FROM SZEMELYEK WHERE TEL LIKE '3424%'; NEV ANNA INSERT INTO SZEMELYEK VALUES(NULL) nem INSERT INTO SZEMELYEK VALUES(SZEMELY(NULL,NULL))ok

Objektum view SQL> CREATE TYPE NEZET AS OBJECT ( 2 NEV CHAR(30), 3 FIZ NUMBER(3)); SQL> CREATE VIEW V OF NEZET WITH OBJECT IDENTIFIER (NEV) AS SELECT M.FELELOS.NEV NEV, M.FIZETES FROM MUNKA M; SQL> SELECT * FROM V; NEV FIZ PETER 200 SQL> CREATE VIEW V2 (F1,F2) AS SELECT M.LEIRAS, NEZET(M.FELELOS.NEV, M.FIZETES) FROM MUNKA M; SQL> SELECT V.F1, AVG(V.F2.FIZ) FROM V2 V GROUP BY V.F1;

SELECT kifejezések szabadabb használata SQL> SELECT LEIRAS, (SELECT MAX(FIZETES) FROM MUNKA) FROM MUNKA;ok SQL> SELECT MAX(SELECT FIZETES FROM MUNKA) FROM DUAL;hiba SQL> SELECT MAX(AFIZ) FROM (SELECT LEIRAS, AVG(FIZETES) AFIZ FROM MUNKA GROUP BY LEIRAS);ok SQL> INSERT INTO MUNKA VALUES ('PROBA',NULL, (SELECT MAX(FIZETES) + 1 FROM MUNKA)); 1 sor létrejött.ok SQL> CREATE ASSERTION A1 CHECK (SELECT MAX(FIZETES) FROM MUNKA) > 100);hiba SQL> UPDATE MUNKA SET FIZETES = (SELECT MIN(FIZETES) FROM MUNKA) WHERE FIZETES < 150;ok

Tábla típus SQL> CREATE TYPE NYELV AS OBJECT ( NYNEV CHAR(20), SZINT NUMBER(1)); SQL> CREATE TYPE NYELVEK AS TABLE OF NYELV; SQL> ALTER TABLE MUNKA ADD (NYSZINT NYELVEK) NESTED TABLE NYSZINT STORE AS NYTABLA;

SQL> INSERT INTO MUNKA VALUES ('UJABB', SZEMELY('KATI','3462'),301, NYELVEK( NYELV('ANGOL',1),NYELV('NEMET',2))); SQL> SELECT * FROM TABLE (SELECT NYSZINT FROM MUNKA WHERE LEIRAS='UJABB'); NYNEV SZINT ANGOL 1 NEMET 2 SQL> INSERT INTO TABLE(SELECT NYSZINT FROM MUNKA WHERE LEIRAS='UJABB') VALUES ('FINN',3); SQL> UPDATE TABLE(SELECT NYSZINT FROM MUNKA WHERE LEIRAS='UJABB') SET SZINT = 4 WHERE NYNEV = 'FINN'; Tábla típus

Objektum azonosítás, hivatkozás objektum azonosítás (OID) : - rendszer által generált - kulcsból képzett indexelt hivatkozás : REF() SQL> CREATE TYPE AUTO AS OBJECT ( RSZ CHAR(6), TULAJ REF SZEMELY); SQL> CREATE TABLE AUTOK OF AUTO; SQL> SELECT P.NEV, REF(P) FROM SZEMELYEK P; NEV REF(P) ANNA BAB1EDDE24A5886E9 C64B6BC A61E89134C158795B6AE6 A C

SQL> INSERT INTO AUTOK VALUES('R11', (SELECT REF(P) FROM SZEMELYEK P WHERE P.NEV='ZOLI')); SQL> SELECT * FROM AUTOK; RSZ TULAJ R E1C92BF87047A48E8D41C…. SQL> SELECT A.RSZ, A.TULAJ.NEV FROM AUTOK A; RSZ TULAJ.NEV R11 ZOLI SQL> CREATE TYPE CSOPREF AS TABLE OF REF SZEMELY; SQL> ALTER TYPE AUTO ADD ATTRIBUTE UTASOK CSOPREF CASCADE; Objektum hivatkozás

SQL> UPDATE AUTOK SET UTASOK = CSOPREF ((SELECT REF(S) FROM SZEMELYEK S WHERE S.NEV = 'ANNA'), (SELECT REF(S) FROM SZEMELYEK S WHERE S.NEV = 'PETER')); SQL> SELECT * FROM AUTOK; RSZ TULAJUTASOK R CSOPREF( B.. SQL> SELECT A.RSZ, A.TULAJ.NEV, A.UTASOK.NEV FROM AUTOK A; hiba SQL> SELECT P.UTASOK FROM AUTOK P; UTASOK CSOPREF( …, A49BC… )

SQL> SELECT * FROM TABLE (SELECT UTASOK FROM AUTOK); COLUMN_VALUE BAB1EDDE24A5886E9C64B6BC A49BCCF9F8874A1DB7F287F8D315B57 SQL> SELECT P.COLUMN_VALUE.NEV FROM TABLE(SELECT UTASOK FROM AUTOK) P; COLUMN_VALUE.NEV ANNA PETER Objektum hivatkozás

ADT öröklés az öröklés nem támogatott teljes mértékben SQL> CREATE TYPE EMBER AS OBJECT ( NEV VARCHAR2(20) ) NOT FINAL; SQL> CREATE TABLE T1 OF EMBER; SQL> INSERT INTO T1 VALUES('PETER'); SQL> CREATE TYPE DIAK UNDER EMBER ( ATLAG NUMBER(4,2) ); SQL> CREATE TABLE T2 OF DIAK; SQL> INSERT INTO T2 VALUES ('ZOLI',2.3);

SQL> SELECT * FROM T2; NEV ATLAG ZOLI 2.3 SQL> SELECT * FROM T1; NEV PETER ADT öröklés

Metódusok implementáció : PL/SQL, Java, C++,.. típus : objektum, osztály szint megadás : deklaráció, definíció SQL> CREATE TYPE EMBER AS OBJECT ( NEV CHAR(20), MEMBER FUNCTION GET_NEV RETURN CHAR ); SQL> CREATE TYPE BODY EMBER AS MEMBER FUNCTION GET_NEV RETURN CHAR IS BEGIN RETURN SELF.NEV; END;

Metódusok SQL> CREATE TABLE T1 OF EMBER; SQL> INSERT INTO T1 VALUES('PETER'); SQL> SELECT P.GET_NEV() FROM T1 P; P.GET_NEV() PETER SQL> CREATE TYPE EMBER AS OBJECT ( 2 NEV CHAR(20), 3 MEMBER FUNCTION GET_NEV RETURN CHAR, 4 MEMBER PROCEDURE SET_NEV(UN IN CHAR) 5 );

SQL> CREATE TYPE BODY EMBER AS MEMBER FUNCTION GET_NEV RETURN CHAR IS BEGIN RETURN SELF.NEV; END; MEMBER PROCEDURE SET_NEV (UN IN CHAR) IS BEGIN SELF.NEV := UN; END; SQL> CREATE TABLE T1 OF EMBER; SQL> INSERT INTO T1 VALUES('GABOR'); SQL> INSERT INTO T1 VALUES(‘ANNA'); Metódusok

SQL> SELECT P.* FROM T1 P; NEV ANNA GABOR SQL> SELECT REF(P) FROM T1 P; REF(P) A57F97C14B4425A22249F… FF76ACCFC D7…. SQL> SELECT DEREF(REF(P)) FROM T1 P; DEREF(REF(P))(NEV) EMBER('ANNA ') EMBER('GABOR ') Metódusok

DECLARE CURSOR C1 IS SELECT REF(P) FROM T1 P; E1 REF EMBER; E EMBER; BEGIN OPEN C1; LOOP FETCH C1 INTO E1; EXIT WHEN C1%NOTFOUND; SELECT DEREF(E1) INTO E FROM DUAL; DBMS_OUTPUT.PUT_LINE(‘ NEV = ' || E.GET_NEV()); -- DEREF(E1).SET_NEV(‘ZOLI’) -- hiba END LOOP; CLOSE C1; END; SQL> SET SERVEROUTPUT ON

SQL> UPDATE T1 T SET T = EMBER('GABI') WHERE NEV = 'GABOR'; DECLARE CURSOR C1 IS SELECT DEREF(REF(P)) FROM T1 P FOR UPDATE; E EMBER; BEGIN OPEN C1; LOOP FETCH C1 INTO E; EXIT WHEN C1%NOTFOUND; E.SET_NEV('ZOLI'); UPDATE T1 T SET T = E WHERE CURRENT OF C1 ; END LOOP; CLOSE C1; END; Metódusok

Osztály metódusok SQL> CREATE TYPE DOBOZ AS OBJECT ( ELHOSSZ NUMBER(3), SZIN CHAR(20), STATIC FUNCTION DARAB(SZI IN CHAR) RETURN NUMBER ); SQL> CREATE TABLE DOBOZOK OF DOBOZ; SQL> CREATE TYPE BODY DOBOZ AS STATIC FUNCTION DARAB (SZI IN CHAR) RETURN NUMBER IS DB NUMBER; BEGIN SELECT COUNT(*) INTO DB FROM DOBOZOK WHERE SZIN = SZI; RETURN DB; END;

SQL> INSERT INTO DOBOZOK VALUES(DOBOZ(12,'KEK')); SQL> INSERT INTO DOBOZOK VALUES(DOBOZ(43,‘ZOLD’)); SQL> INSERT INTO DOBOZOK VALUES(DOBOZ(22,'KEK')); SQL> SELECT DOBOZ.DARAB('KEK') FROM DUAL; DOBOZ.DARAB('KEK')

DROP TABLE KONYVEK1; DROP TABLE KIADOK1; CREATE TABLE KIADOK1 (KKOD NUMBER(3) PRIMARY KEY, NEV CHAR(20)); CREATE TABLE KONYVEK1 (KOD NUMBER(5) PRIMARY KEY, CIM CHAR(20), AR NUMBER(3), KIAD REFERENCES KIADOK1); DECLARE I NUMBER(5); BEGIN FOR I IN LOOP INSERT INTO KIADOK1 VALUES(I,'KIADO' || TO_CHAR(I)); END LOOP; END; COMMIT;

DECLARE I NUMBER(5); BEGIN FOR I IN LOOP INSERT INTO KONYVEK1 VALUES(I,'CIM' || TO_CHAR(I), NULL,MOD(I,100)+1); END LOOP; END; COMMIT; CREATE TYPE KIADO AS OBJECT ( KKOD NUMBER(3), NEV CHAR(20)); CREATE TYPE KONYV AS OBJECT ( KOD NUMBER(5), CIM CHAR(20), AR NUMBER(3), KIAD REF KIADO);

DECLARE I NUMBER(5); BEGIN FOR I IN LOOP INSERT INTO KIADOK2 VALUES(KIADO(I,'KIADO' || TO_CHAR(I))); END LOOP; END; DECLARE I NUMBER(5); E REF KIADO; BEGIN FOR I IN LOOP SELECT REF(T) INTO E FROM KIADOK2 T WHERE T.KKOD = MOD(I,100)+1; INSERT INTO KONYVEK2 VALUES(KONYV(I, 'CIM' || TO_CHAR(I),NULL,E)); END LOOP; END;

SELECT TO_CHAR(SYSDATE,'HH:MI:SS') FROM DUAL; CREATE VIEW V1 AS SELECT A.NEV, B.CIM FROM KIADOK1 A, KONYVEK1 B WHERE KIAD = KKOD; SELECT COUNT(*) FROM V1; SELECT TO_CHAR(SYSDATE,'HH:MI:SS') FROM DUAL; CREATE VIEW V2 AS SELECT A.CIM CIM,A.KIAD.NEV NEV FROM KONYVEK2 A; SELECT COUNT(*) FROM V2; SELECT TO_CHAR(SYSDATE,'HH:MI:SS') FROM DUAL; HASONLÓ VÉGREHAJTÁSI IDŐK KB 1 SEC