1 / 45

Adatbázisok

Adatbázisok. Fleiner Rita, fleiner.rita@nik.bmf.hu Tankönyv: Kende Mária, Nagy István: ORACLE példatár SQL, PL/SQL Kende Mária, Kotsis DomokosNagy István: Adatbázis-kezelés az ORACLE-rendszerben. B evezető fogal mak.

vesna
Download Presentation

Adatbázisok

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ázisok Fleiner Rita, fleiner.rita@nik.bmf.hu Tankönyv: Kende Mária, Nagy István: ORACLE példatár SQL, PL/SQL Kende Mária, Kotsis DomokosNagy István: Adatbázis-kezelés az ORACLE-rendszerben

  2. Bevezető fogalmak Környezetünket le akarjuk írni. Ehhezadatokat kell gyűjtenünk az objektumairól, az objektumok tulajdonságait meg kell határoznunk, valamint meg kell figyelnünk a köztük levőkapcsolatokat. Az adatoknak egy jól strukturált halmazát adatbázisnak nevezzük, amelyből a később információt akarunk majd nyerni.

  3. Adatbázis • Alapja az adat (adathalmaz) • Valamilyen szempont szerint rendezett, csoportosított, és tárolt adatok összessége

  4. Adatbázis tervezés • Azt a folyamatot, mikor kigondoljuk, hogy az adatbázisunkat milyen struktúra szerint építjük fel, adatbázis tervezésnek nevezzük • Feleljen meg annak a funkciónak, amire használni szeretnénk. • Úgy rendezzük, úgy csoportosítsuk az adatokat, hogy minél hatékonyabban tudjuk a szükségeseket visszakeresni.

  5. Adatbázis tervezés lépései 1. Koncepcionális tervezés • Eredmény: Koncepcionális adatmodell 2. Logikai tervezés • Eredmény: Logikai adatmodell 3. Fizikai tervezés • Eredmény: Fizikai adatmodell

  6. Adatmodellezés • Egyed:A valós világ egy objektuma, melyet tulajdonságaival (attribútumaival) lehet leírni. Lehet személy, tárgy, fogalom, elképzelés. • Tulajdonság (attribútum): jellemzők, amivel leírjuk a bennünket érdeklő objektumot. • Kapcsolat: a valós világban az objektumok nem önállóan léteznek, hanem más objektumokkal valamilyen viszonyban állnak. Ennek a viszonynak a realizálása a kapcsolat.

  7. Adatmodellezés Az egyednek, a tulajdonságnak és a kapcsolatnak van típusa és előfordulása. A típus mindig absztrakt, az előfordulás pedig konkrét.

  8. Egyedtípus: a valós világ objektumainak, egyedeinek absztrakt osztálya. Az egyedek fontosabb tulajdonságait kigyűjtjük, és magasabb szinten osztályozzuk. • Egyed előfordulás: az egyedtípusba sorolható konkrét objektum. • Tulajdonságtípus: az objektumokat leíró tulajdonságok absztrakt osztálya. • Tulajdonság előfordulás: a tulajdonságtípusba tartozó konkrét jellemző

  9. HALLGATÓ(Személyi szám, Név, Cím, Szak) • Egyedtípus: Hallgató • Tulajdonságtípus: Személyi szám, Név, Cím, Szak • Egyed előfordulás: Kovács József, Kiss Gizi, stb. • Tulajdonság előfordulás: Személyi szám: AS 12345, XY54321, stb. Név: Kovács József, Kiss Gizi, stb. Cím: Nyíregyháza, Szeged, stb. Szak: Számtech-angol, Számtech-fizika, stb.

  10. Kapcsolat: az egyedtípusok a valós világ modelljében nem önállóan léteznek, hanem más egyedtípusokkal valamilyen viszonybanvannak. • Két egyedtípus között akkor van kapcsolat, ha van közös tulajdonságtípusuk. Ezt kapcsoló tulajdonságtípusnak nevezzük. • Kapcsolat foka megmutatja, hogy az egyik egyedtípusnak hány előfordulása kapcsolódhat a másik egyedtípus előfordulásához. 1:1 kapcsolat pl.: a házaspár kapcsolata 1:N kapcsolat pl.: a tulajdonos-kocsi kapcsolat N:M kapcsolat az író-könyv kapcsolat

  11. Kapcsoló tulajdonság: • HALLGATÓ[Szem. szám, Név, Cím, Szak] KOCSI[Rendszám, Szín, Típus]  • Hallgató[Szem. szám, Név, Cím, Szak] – Kocsi[Rendszám, Szín, Típus, Szem. szám]

  12. Tulajdonság fajtái • Azonosító tulajdonság: Az egyedtípus azon tulajdonságtípusát, vagy tulajdonságtípusok kombinációját, mely minden egyed előfordulás esetén különböző értéket vesz fel az egyedtípus azonosítójának nevezzük. Ha az azonosító egy tulajdonságból áll, akkor egyszerűnek, ha többől akkor összetettnek nevezzük. • Kapcsoló tulajdonság • Leíró tulajdonság: nem azonosító és nem kapcsoló

  13. Koncepcionális adatmodell: véges számú egyedtípus, amelyek mindegyikét véges számú tulajdonságtípus definiálja a köztük lévő véges számú kapcsolattal együtt. • Séma: A koncepcionális modell megadása • Modellezési technikák: hierarchikus, hálós, relációs, szemantikai, stb. Ezalapján megkülönböztetünk hierarchikus, hálós, relációs adatmodelleket. Minden adatmodellhez tartozik egy kezelőnyelv • Az adatbázisok 90%-a relációs.

  14. Adatbázis (AB): véges számú egyed előfordulások, azokat leíró véges számú tulajdonságok előfordulások, és a köztük lévő véges számú kapcsolat előfordulások adatmodell szerint szervezett együttese. • Adatbázis–kezelő rendszerre (ABKR): Program, vagy programcsomag, mely biztosítja azAB felépítését, karbantartását,az adatok hatékony lekérdezését, emberi hozzáférés lehetőséget. • Minden ABKR mögött egy-egy adatmodell áll. Minden adatmodellnek megvan a saját kezelő nyelve.

  15. Relációs adatmodell • Codd 1970 körül kidolgozott egy matematikai apparátust, amellyel nagyon jól lehet adatmodellezést végezni. Megszületett az első relációs adatmodell. Ma az ABKR-ek 90%-a relációs. • Tartomány megszorítás: A relációs adatmodellezésben a D tartomány atomi értékek véges halmazából áll. D-nek van kiterjedése, típusa és értékeinek formátuma.

  16. Koncepcionális szint • Relációs séma: R<A1,A2,....,An>= A1xA2x…xAn • R: relációs séma neve • Ai: attribútum, hozzá tartozik egy tartomány Di • Ai tartománya : dom(Ai) = Di • n: reláció séma foka • R< A1,A2,....,An > jelölés esetén az attribútumok sorrendje kötött (relációs ABKR esetén ezt tételezzük fel)

  17. Példa relációs sémára ·      Hallgató<Személyi szám, Név, Cím, Szak> ·      Kocsi<Rendszám, Szín, Típus>

  18. Reláció: r(R) • Def.1: Egy R n-ed fokú relációs sémában elem n-esek egy adott halmaza (azaz a relációs séma részhalmaza). • r( R )={t1,t2,…,tm}, ahol titj • ti=<v1,v2,…,vn> egyed előfordulás, vkdom(Ak) • Def.2: R-t meghatározó attribútumok tartományaiból alkotott Descartes szorzat egy részhalmaza. r( R ) dom(A1) x dom(A2) x …x dom(An)

  19. Logikai szint • Reláció: egy két dimenziós tábla, mely oszlopokból és sorokból épül fel. • Oszlopait (Személyi szám, Név, stb.) attribútumoknak nevezzük, számuk: a reláció fokának nevezzük. • Sorait rekordoknak hívjuk, sorok számát a reláció terjedelmének nevezzük, két sor nem lehet azonos. • Azokat az attribútumokat, melyek minden egyes sorra különböző értéket vesznek fel, kulcsjelölteknek nevezzük.

  20. Integritási megszorítások • Egyedintegritási megszorítás: Elsődleges kulcsra vonatkozó [primary key, PK]: a kulcsjelöltek közük ki kell választani azt/azokat, melye(ke)t azonosítóként fogunk használni. Séma szinten ezt aláhúzással jelöljük. Fontos fogalmak: szuperkulcs, minimális szuperkulcs, egyszerű kulcs, összetett kulcs, elsődleges attribútum, másodlagos attribútum.

  21. 2. Referenciális megszorítás: Idegen kulcsra vonatkozó [foreign key, FK]: Ha egy tábla elsődleges kulcsa egy másik táblában is megjelenik, akkor abban a másik táblában idegen kulcsnak nevezzük. Két relációs séma (R1, R2) rekordjai közötti kapcsolatot ír le. R1 FK attribútuma(i) R1 idegen kulcsa, ha • FK tartományai R1-ben megegyeznek R2 elsődleges kulcsának tartományaival • t1 R1rekordja, t2 R2 rekordja: t1[FK]=t2 [PK]

  22. Relációs AB séma: relációs sémák és integritási megszorítások együttese S={R1, R2 , …, Rn} Λ IM • Relációs AB (példány): relációk (táblák) együttese, ahol minden reláció eleget tesz a specifikált integritási megszorításoknak DB ={r1, r2 , …, rn} • Relációs modellben standard lekérdezőnyelv alapulhat • Relációalgebrán (absztr. algebra, halmaz elm.) • Relációkalkuluson (matematikai logika)

  23. SQL • relációalgebrán alapuló lekérdezőnyelv • SELECT SzelekcióLista FROM Táblalista [WHERE LogikaiOszlopkifejezés] [ ORDER BY RendezőOszlopkifejezés-lista];

  24. SzelekcióLista: • *, • Oszlopkifejezés, • Oszlopkifejezés AS MásodlagosOszlopnév, • Oszlopkifejezés AS „MásodlagosOszlopnév”. • Táblalista: • Fizikai vagy logikai táblanév • Fizikai vagy logikai táblanév másodlagos táblanév • LogikaiOszlopkifejezés: • Oszlopnevek, konstansok, műveletek, egysoros függvények,… • RendezőOszlopkifejezés: • Oszlopkifejezés[ASC | DESC]

  25. Listázzuk ki az emp tábla tartalmát! • SELECT * FROM emp; • Listázzuk ki az emp tábla alkalmazottainak ID-ját, nevét és belépési idejét!

  26. SELECT ename AS "Név", job AS "Munkakör", sal AS "Fizetés" FROM emp;

  27. Listázzuk ki az emp tábla alkalmazottainak nevét, munkakörét és fizetését! Az ename legyen a név, a job a munkakör és a sal a fizetés.

  28. SELECT ename AS "Név", job AS "Munkakör", sal AS "Fizetés" FROM emp;

  29. Előző feladat, csak a fizetés szerint növekvő sorrendet kérünk.

  30. SELECT ename AS "Név", job AS "Munkakör", sal AS "Fizetés" FROM emp ORDER BY sal;

  31. Listázzuk ki az emp tábla alkalmazottainak nevét, munkakörét és fizetését, ahol a fizetés nem esik 1500 és 2850 közé. • Előző, csak feltétel: WHERE deptno = 20

  32. SELECT ename AS "Név", job AS "Munkakör", sal AS "Fizetés" FROM emp WHERE sal NOT BETWEEN 1500 AND 2850;

  33. Mi az eredmény és miért? • SELECT ename AS név, sal AS fizetés, sal+comm AS jövedelem FROM emp ORDER BY sal+comm DESC;

  34. Jó megoldás • SELECT ename AS név, sal AS fizetés, sal+NVL(comm,0) AS jövedelem FROM emp ORDER BY jövedelem DESC;

  35. Decode(oszlopkif., h1,t1,kif.) • SELECT ename AS Neve, job AS Munkakör, DECODE(NVL(comm,-1), -1, 'Nem jár jutalék', comm) AS Jutalék FROM emp;

  36. CASE kifejezés • SELECT ename AS Neve, job AS Munkakör, CASE NVL(comm,-1) WHEN -1 THEN 'Nem jár jutalék‘ ELSE TO_CHAR(comm) END AS Jutalék FROM emp;

  37. Mi történik? • SELECT ename AS Név, deptno AS Részleg, sal+NVL(comm,0) AS Jövedelem, (sal+NVL(comm,0)) * 0.20 AS "ADÓ" FROM emp ORDER BY "ADÓ" DESC, Név ASC;

  38. Normalizálás Funkcionális függés • Olyan fogalom, melyen a normalizálás folyamata alapszik • Egy egyeden belül, két tulajdonság között értelmezett fogalom • Legyen E egyedünk, és A, ill. B tulajdonságok • Az E egyeden belül a B tulajdonság funkcionálisan függ az A tulajdonságtól, ha E bármely előfordulás esetén, abból, hogy az A tulajdonság értékei megegyeznek, következik, hogy B értékei is meg fognak egyezni.

  39. Normálformák, normalizálás folyamata A normalizálás a funkcionális függésen alapszik

  40. Első normál forma (1. NF) • Egy egyed első normál formában van, ha minden tulajdonsága funkcionálisan függ az elsődleges kulcstól. Amennyiiben az egyednek van olyan tulajdonsága, mely funkcionálisan nem függ az elsődleges kulcstól, akkor az egyed nem normalizált, vagy 0NF alakú. • Lényegében azokat az egyedeket nevezzük nem normalizáltaknak, melyek valamely tulajdonság(ok) alatt több értéket is felvehetnek, azaz ismétlődő csoportot tartalmaznak.

  41. Második normál forma(2. NF) Részleges függés fogalma: • Ha egy egyed elsődleges kulcsa összetett, akkor előfordulhat, hogy valamelyik tulajdonsága nem csak az elsődleges kulcstól függ, hanem annak egy valódi részhalmazától. Ilyenkor azt mondjuk hogy részlegesen függ az elsődleges kulcstól

  42. Második normál forma(2. NF) Második normál forma: • Egy egyed második normál formában van, ha első normál formában van, és nem tartalmaz részleges függést. Tehát nincs olyan attribútuma, mely funkcionálisan függ az összetett kulcs egy részhalmazától.

  43. Harmadik normál forma(3. NF) Tranzitív függés fogalma • Ha egy egyedben, az összes tulajdonság funkcionálisan függ az elsődleges kulcstól, és valamelyik leíró tulajdonság funkcionálisan függ egy másik leíró tulajdonságtól is, akkor tranzitív függésről beszélünk

  44. Harmadik normál forma(3. NF) Harmadik normál forma • Egy egyed harmadik normál formában van, ha második normál formában van, és nem tartalmaz tranzitív függést. Tehát nincs olyan tulajdonsága, mely funkcionálisan függ egy másik leíró tulajdonságtól.

  45. Boyce-Codd normál forma, BCNF Egy 3NF egyed BCNF-ban van, ha a kulcs valódi része nem függ más attribútumtól

More Related