LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ Lénárt Balázs tanársegéd
TANTERV
Hét Dátum Előadó Előadások Időpont: szerda 8:30-10:00, helye: LFSZÁMG Dátum Gyakvezető 1. 9. 11. Tokodi Adatbázis kezelés 9. 10. Lénárt 2. 9. 18. Tokodi Adatbázis kezelés - alapfogalmak 9. 17. ----- ----- Gyakorlatok Időpont: páratlan kedd 8:30-10:00, helye: LFSZÁMG Bevezetés, a relációs adatbázisok és az SQL nyelv 3. 9. 25. Tokodi Adatmodellezés, relációs adatmodell 9. 24. Lénárt SQL alapok: adat lekérdezés, adat rögzítés 4. 10. 2. Tokodi Normalizálás 10. 1. ----- ----- 5. 10. 9. Tokodi Adatbázis modellek 10. 8. Lénárt 6. 10. 16. Tokodi Műveletek relációs adatbázisokban 10. 15. ----- ----- SQL: többtáblás lekérdezések, adat aggregáció 7. 10. 23. ----- ----- 10. 22. Lénárt Adatfeldolgozás Excelben 1., Feladat kiadása 8. 10. 30. Tokodi A logisztikai folyamat operatív irányításának adatbázisai 10. 29. ----- ----- 9. 11. 6. Tokodi 11. 5. Lénárt Adatfeldolgozás Excelben 2. A logisztikai fejlesztések adatbázisai 10. 11. 13. Tokodi Az informatikai rendszerek kialakítása 11. 12. ----- ----- 11. 11. 20. Tokodi 12. 11. 27. Tokodi Rendszermodellezés. Rendszerszervezés - alapfogalmak Az informatikai rendszerek szabályozási modellje, felépítése 11. 19. Lénárt SQL haladó 11. 26. ----- ----- 13. 12. 4. Tokodi Zárthelyi (számítógépes) 12. 3. Lénárt Konzultáció 14. 12. 11. Tokodi A logisztikai információs rendszer 12. 10. ----- -----
AZ SQL NYELV
Adatbázis parancsok fajtái: Data Definition Language (DDL) Data Manipulation Language (DML) Data Query Language (DQL) Data Control Language (DCL) Data administration commands Transactional control commands
Adat lekérdezés Annak ellenére, hogy a Data Query Language (DQL) csak egy parancsból áll, mégis a legtöbbet használt és az egyik legösszetettebb része az SQL nyelvnek! Az alap parancsszava a SELECT A parancs rengeteg záradékkal rendelkezik és a legkülönfélébb lekérdezéseket (szűréseket) lehet vele lefuttatni az adatbázisszerveren. A lekérdezés (query) valójában egy kérés a szerver felé. A lekérdezést általában egy kliens szoftverből indítjuk, ez lehet egy alkalmazás, vagy parancssor is. A parancsok szabványosak és akár egy szöveges szerkesztőben elkészíthetőek.
A gyakorlaton használt adatbázis felépítése
Aggregáló funkciók használata Operator COUNT SUM MAX MIN AVG Leírás Megszámolja az adott elemek (objektumok) számát Összegzi a lekérdezés eredményében lévő adott oszlopok értékét Az eredmény halmazból a legnagyobbat választja Az eredmény halmazból a legkisebbet választja Átlagot képez SELECT COUNT [ (*) (DISTINCT ALL) ] (COLUMN NAME) stb.. SELECT MAX [ (*) (DISTINCT ALL) ] (COLUMN NAME) FROM (tbl_name) GROUP BY (COLUMN NAME)
Csoportosítás szintaxis SELECT FUNCTION(COLUMN1), COLUMN2 FROM TABLE1, TABLE2 WHERE CONDITIONS GROUP BY COLUMN1, COLUMN2 ORDER BY COLUMN1, COLUMN2 Példák: SELECT COUNT(*) FROM kontener; SELECT MAX(teherbiras), konter_tipus FROM kontener_tipus GROUP BY konter_tipus; SELECT TOP 1 MAX(teherbiras), konter_tipus FROM kontener_tipus GROUP BY konter_tipus;
Önálló feladatok: Maximális teherbírású közúti jármű rendszáma Közúti járművek átlagos teherbírása Bérelt konténerek száma Legkisebb konténer befoglaló méret Utolsó konténer mozgatás dátuma Konténer mozgatások összes ideje [segítség: DATEDIFF(SECOND, kezd, bef) ] Konténer mozgatások átlagos ideje Konténer mozgatások összes ideje átmozgatásonként Melyik városból hány ügyfelünk van?
Kereszttáblás lekérdezések Példa: SELECT kontener.kont_id, kontener_tipus.konter_tipus FROM kontener, kontener_tipus WHERE kontener.tipus = kontener_tipus.tipus_id; Van jobb megoldás is, ez a megoldás átláthatatlanná válhat SELECT TABLE1.COLUMN1, TABLE2.COLUMN2... FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME SELECT kontener.kont_id, kontener_tipus.konter_tipus FROM kontener INNER JOIN kontener_tipus ON kontener.tipus = kontener_tipus.tipus_id;
Önálló feladtok: Konténerek listája, az összes adattal (típus, méretek, stb..) Konténerek, amik nem béreltek és 1C típusúak Konténer mozgatás esetén mikor melyik helyről melyik helyre lettek a konténerek mozgatva? Ottó nevű sofőr melyik konténereket hozta a telephelyre? Melyik konténer melyik ügyfélhez tartozik? Ügyfelenkénti bontásban a beérkezett konténerek száma A Waberer s konténereinek összes térfogata
Al-lekérdezések (sub-queries) SELECT COLUMN_NAME [, COLUMN_NAME ] FROM TABLE1 [, TABLE2 ] WHERE COLUMN_NAME OPERATOR (SELECT COLUMN_NAME [, COLUMN_NAME ] FROM TABLE1 [, TABLE2 ] [ WHERE ]) UPDATE TABLE SET COLUMN_NAME [, COLUMN_NAME) ] = (SELECT ]COLUMN_NAME [, COLUMN_NAME) ] FROM TABLE [ WHERE ]
KÖSZÖNÖM A FIGYELMET!