1 / 24

Adatbázis rendszerek I

Adatbázis rendszerek I. Kovács László. Az SQL nyelv alapjai. SQL kialakulása. 1974 : System/R mintarendszer (IBM) Új parancsnyelv kidolgozása. meglévő rekord orientált. új halmazorientált. FIND KIADO FIRST FOR C=„H” DO WHILE STATUS_OK IF L> 100 SET l = l –10

yoland
Download Presentation

Adatbázis rendszerek I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatbázis rendszerek I Kovács László Az SQL nyelv alapjai

  2. SQL kialakulása 1974 : System/R mintarendszer (IBM) Új parancsnyelv kidolgozása meglévő rekord orientált új halmazorientált FIND KIADO FIRST FOR C=„H” DO WHILE STATUS_OK IF L> 100 SET l = l –10 STORE KIADO ENDIF FIND KIADO NEXT ENDDDO ? igények: - relációs algebrán alapuljon - egyszerűség - hatékony implementáció

  3. SQL kialakulása 1975: SEQUEL Structured English Query Language • magas szintű műveletek • egymásba ágyazható műveletek • természetes nyelvhez közelít FIND KIADO FIRST FOR C=„H” DO WHILE STATUS_OK IF L> 100 SET l = l –10 STORE KIADO ENDIF FIND KIADO NEXT ENDDDO D. Chamberlin UPDATE KIADO SET L = L-10 WHERE C = „H” aktualizáld a KIADO-t, legyen L = L-10, ahol C = „H”

  4. SQL kialakulása Több-résztvevős folyamat a fejlődése termékek 1975: SEQUEL 1977: SEQUEL/2 (SQL) 1979: system/38 SQL 1979: Oracle SQL 1983: DB2 SQL Ingres Oracle IBM DB2 Sybase Informix MS SQLServer PostgresSQL mySQL Access szabványok 1986: ANSI SQL 1987: ISO SQL 1989: ANSI89 1992: SQL92 1999: SQL1999 2003: SQL2003 igények aktív elemek, OO, OLAP, ..

  5. SQL elemei SQL Műveletek típusai: - adatdefiniáló (DDL) struktúra létrehozás (CREATE) struktúra módosítás (ALTER) struktúra megszüntetés (DROP) - adatkezelő (DML) adat felvitel (INSERT) adat módosítás (UPDATE) adat törlés (DELETE) - lekérdező (DQL) adat kiolvasása (SELECT) - vezérlő (DCL)

  6. DDL utasítások A táblák struktúrájának kezelése Kezdetben vala az üresség … És először létrehozánk egy táblát … Milyen mezői legyenek? Minek nevezzem el? Milyen megkötéseket teszel? Jó, hozz létre egy KÖNYV nevű táblát, melynek van egy cím nevű 20 hosszú szöveges, és egy ár nevű numerikus mezője! CREATE TABLE KÖNYV (cím CHAR(20), ár INTEGER); létrehozás: CREATE TABLE név paraméterek; tábla megszüntetés: DROP TABLE név; szerkezet módosítás: ALTER TABLE név paraméterek;

  7. DML utasítások A táblák adatinak kezelése Az üres tábla minek lészen vala ? Töltsd meg adatokkal, ami jó lesz neki … Mely táblába helyezzük el? Milyen adatok kerülnek át az egyes mezőkbe? INSERT INTO KÖNYV (‘Lepkefogó’, 2340); rekord felvitele: INSERT INTO név (értékek); rekord törlése: DELETE FROM név WHERE feltétel; rekordérték módosítása: UPDATE név SET értékadás WHERE feltétel ;

  8. DQL utasítások A táblák adatinak lekérdezése Az feltöltött tábla minek lészen vala ? Meríts az adatokból, hagy sokasodjanak … Mely táblákból vesszük az adatokat? Mely rekordokat vegyük figyelembe? Milyen számításokat végezzek az adatokon? SELECT * FROM KÖNYV WHERE ár > 3300; rekordok lekérdezése: SELECT mezőlista FROM táblalista WHERE feltétel GROUP BY csoportképzés … ORDER BY rendezés

  9. SQL felületek Mily módon adhatók át a DBMS-nek az SQL utasítások? parancsértelmező DBMS DB segédprogram ESQL alkalmazói program CLI / ODBC JDBC / ADO 4GL

  10. kép Rippl-Rónai József (1861-1927): Kalitkás nő (1892)

  11. DDL utasítások Objektum létrehozása: CREATE objektumtípus azonosító paraméterek; CREATE TABLE tnév (mnev1 tipus1 intfelt1, …,intfelt) … ; PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla CHAR(n) NUMBER(n,m) DATE 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); A műveletek nem tranzakció hatáskörben futnak le!

  12. DDL utasítások Objektum megszüntetése: DROP objektumtípus azonosító paraméterek; DROP TABLE tnév ; Objektum séma módosítás: ALTER objektumtípus azonosító paraméterek; ALTER TABLE tnév ADD | MODIFY (mnev tip intfelt | intfelt); DROP TABLE AUTO; ALTER TABLE AUTO ADD (TULAJ REFERENCING EMBER); A műveletek nem tranzakció hatáskörben futnak le!

  13. DML utasítások Rekord felvitele: INSERT INTO tabla VALUES (ert1, ert2, …,ertn); INSERT INTO tabla (mezo1,..) VALUES (ert1,..); INSERT INTO tabla VALUES (mezo=ertek,…); INSERT INTO tabla SELECT …; Fontos a mezősorrend Minden szükséges mező kapjon értéket INSERT INTO AUTO VALUES (‘bju564’,234,’FIAT’); INSERT INTO AUTO (rsz, tipus) VALUES (‘bju564’,’FIAT’); INSERT INTO AUTO VALUES (RSZ=‘bju564’,...); A műveletek tranzakció hatáskörben futnak le!

  14. DML utasítások 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; DELETE FROM AUTO WHERE AR<1200000; DELETE FROM AUTO WHERE (SELECT … ) ; A műveletek tranzakció hatáskörben futnak le!

  15. DML utasítások 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 DOLGOZO SET KOR = KOR + 1, FIZ = 10000; UPDATE AUTO SET AR = AR * 1.2 WHERE AR<1200000; A műveletek tranzakció hatáskörben futnak le!

  16. DML utasítások Speciális értékek kezelése Üres, nem ismert érték jelölése: NULL INSERT INTO AUTO VALUES(12,’ALMA’, NULL,..); DEFAULT érték szerepe A ” és ‘ határolók eltérő szereppel bírnak INSERT INTO AUTO(”SZUL. HELY”,..) VALUES(‘OZD’,..); Dátumok felvitele konverziós függvénnyel: INSERT INTO AUTO(DATUM,..) VALUES( TO_DATE(‘2002.02.12’,’YYYY.MM.DD’),…); INSERT INTO AUTO(DATUM,..) VALUES( CTOD(‘2002.02.12’),…);

  17. DQL utasítások A lekérdezés alapjai: SELECT m_kif1,… FROM t_kif WHERE feltétel GROUP BY cskif HAVING feltétel UNION | INTERSECT | MINUS SELECT … ORDER BY rkif; A relációs algebrán alapszik Tartalmaz nem relációs elemeket is (pl. ORDER BY) Állandóan bővül, az SQL központi eleme SELECT nev FROM dolgozo;

  18. DQL utasítások A projekció megadása mlista(r) SELECT mlista FROM tábla; Az mlista helyén * áll, ha minden mező kell SELECT RSZ, TIPUS FROM AUTO; SELECT * FROM AUTO;

  19. DQL utasítások A szelekció megadása felt(r) SELECT mlsita FROM tábla WHERE feltétel; SELECT * FROM AUTO WHERE SZIN = ‘PIROS’ OR TIPUS = ‘MAZDA’;

  20. DQL utasítások A kiterjesztés megadása mlista(r) SELECT kif név,... FROM …; Az előállító kifejezés A mezőkhöz új nevet is rendelhetünk SELECT SAL FIZETES, AGE KOR FROM EMP; SELECT AR/100 UJAR FROM AUTO; A SELECT eredmény táblája a fenti esetekben a képernyőre kerül. Így ez az alak csak a parancsfelületen használható.

  21. Oracle PL/SQL Gyakorlati eszköz: Oracle RDBMS Felület: interaktív SQL: sqlplus (Sun gépek, 105-ös lab.) WEB-es SQL felület: ISqlplus regisztáció: https://www-db.iit.uni-miskolc.hu/dbreg/ sqlplus: sun> export ORACLE_HOME=/opt/OraHome1 sun> export PATH=${PATH}:${ORACLE_HOME}/bin sun> sqlplus név@info isqlplus: http://arrakis.iit.uni-miskolc.hu:5560/isqlplus

  22. kép Rippl-Rónai József: Zorka(1916)

  23. A relációs adatmodell Egyedi elemek - összetett kulcsok használata - LOCAL | GLOBAL TEMPORARY TABLE - CONSTRAINT - DEFFERABLE - INITIALLY DEFERRED - INITIALLY IMMEDIATE - SET CONSTRAINTS IMMEDIATE | DEFFERED - érték megadás SELECT-tel - A SELECT használata a CHECK-ben - REFERENCES tabla(mezo) - REFERENCES t(m) ON DELETE | UPDATE RESTRICT | SET NULL | CASCADE | NO ACTION

  24. kép Rippl-Rónai József: Vörössapkás önarckép (1924)

More Related