Adatbázis használat I. 1. gyakorlat
Tudnivalók • Nagy Gabriella
[email protected] BA. 306. szoba • www.orakulum.com => Adatbázis-kezelés => AKT (Adatbázis-Kezelés Technológiája)
2011. 02. 08.
[email protected]
2
Ismétlés: normalizálás • • • •
Mi is az az adatbázis? … redundancia? … anomáliák? Normalizálás Cél: a redundancia megszüntetése. • Jegyzet: http://www.agt.bme.hu/szakm/adatb/db3.ht m#p3.5 2011. 02. 08.
[email protected]
3
FF példa •
Jani bácsi székgyártó kisiparos szeretne adatbázist készíttetni. 1. Tárolnánk a székek megnevezését, típusát, színét, méretét, árát, a készlet nagyságot. 2. Tároljuk a vásárlók adatait is: név, cím, telefonszám, törzsvásárló-e. 3. Nyilvántartjuk a rendeléseket: ki, mikor, mit rendelt. 2011. 02. 08.
[email protected]
4
FF példa • 1. lépés: az ősmodell sémája székvásárlás <megnevezés, típus, szín, méret, ár, készlet, név, cím, telszám, törzsvásárló, dátum, mennyiség> – A megnevezés, a szín és a típus együtt azonosítja a széket, a név és a telszám a vásárlót. Adott típusú szék többféle színben kapható, de ezek mérete és ára megegyezik. 2011. 02. 08.
[email protected]
5
FF példa • 2. lépés: függőségek felírása {név, telszám} => {cím, törzsvásárló} {megnevezés, típus, szín} => {méret, ár, készlet} DE: {megnevezés, típus} => {méret, ár} !!!!
2011. 02. 08.
[email protected]
6
FF példa • És a vásárlások? (Mi az ősreláció kulcsa?) {név, telszám, megnevezés, típus, szín} => {dátum, mennyiség, stb.} vagy {név, telszám, megnevezés, típus, szín, dátum} => {mennyiség, stb.}
2011. 02. 08.
[email protected]
7
FF példa • 3. lépés: normalizálás 1NF: oké, mert minden adatunk elemi. 2NF: nem oké! A {megnevezés, típus, szín} => {méret, ár, készlet} függőség sérti, mert a méret és az ár csak a bal oldal egy részétől függ, nem az egésztől, tehát itt szétbontás (dekompozíció) következik: {megnevezés, típus} => {méret, ár} és {megnevezés, típus, szín} => {készlet} 2011. 02. 08.
[email protected] 8
FF példa • 2NF folytatás: hasonló módon persze a vásárlásos nagy függőségünket is szét kell szedni. Így ezek maradnak: {név, telszám, megnevezés, típus, szín} => {dátum, mennyiség} {megnevezés, típus} => {méret, ár} {megnevezés, típus, szín} => {készlet} {név, telszám} => {cím, törzsvásárló} 2011. 02. 08.
[email protected]
9
FF példa • 3NF oké, mert ezekben már nincs tranzitív függés. • BCNF oké.
2011. 02. 08.
[email protected]
10
FF példa • Eredmény: vásárlás
szék<megnevezés, típus, méret, ár> készlet<megnevezés, típus, szín, készlet> vásárló • Elsődleges kulcsok, idegen kulcsok... 2011. 02. 08.
[email protected]
11
Lekérdezések • Kérdezzük le az emp tábla tartalmát! SELECT * FROM emp;
2011. 02. 08.
[email protected]
12
Lekérdezések • Kérdezzük le a dept tábla tartalmát! SELECT * FROM dept;
2011. 02. 08.
[email protected]
13
Lekérdezések • Az emp táblából csak a dolgozó nevét, fizetését és jutalékát szeretnénk látni. SELECT ename, sal, comm FROM emp; 2011. 02. 08.
[email protected]
14
Lekérdezések • Nézzük most a nevet, munkakört és a felvétel dátumát! SELECT ename, job, hiredate FROM emp;
2011. 02. 08.
[email protected]
15
Lekérdezések • Lássuk az azonosítót és a nevet, de nevezzük át az oszlopokat! SELECT empno AS Azonosító, ename AS Név FROM emp; 2011. 02. 08.
[email protected]
16
Lekérdezések • Szeretnénk tudni, ki keres sokat, és milyen munkakörben. SELECT ename, job, sal FROM emp WHERE sal > 2000; 2011. 02. 08.
[email protected]
17
Lekérdezések • …és ki kap jutalékot? Mennyit? SELECT ename, job, comm FROM emp WHERE comm > 0;
2011. 02. 08.
[email protected]
18
Lekérdezések • Rendezzük a táblázatunkat fizetés szerinti növekvő sorrendbe! SELECT * FROM emp ORDER BY sal; 2011. 02. 08.
[email protected]
19
Lekérdezések • … és csökkenő sorrendbe? SELECT * FROM emp ORDER BY sal DESC;
2011. 02. 08.
[email protected]
20
Lekérdezések • Akkor most rendezzünk belépési dátum szerint! SELECT * FROM emp ORDER BY hiredate ASC/DESC; 2011. 02. 08.
[email protected]
21
Előre megírt lekérdezés futtatása • ed aaa • @aaa • De hol van ez az aaa.sql? 2011. 02. 08.
[email protected]
22
Vége! • Mára ennyit, a következő órán: –kiszárthelyi, –feladatterv leadása!
2011. 02. 08.
[email protected]
23