Adatbázisok Fleiner Rita, Tankönyv:

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

Adatbázis-kezelés Készítette: Asztalos Péter január 12.
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Az adatbázis kezelés alapjai
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Analitikus függvények
Analitikus, statisztikai és szélsőérték fv-k Hári Veronika
A normalizálás az adatbázis-tervezés egyik módszere
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Adatbázis-kezelés.
Relációs adatbázisok készítése
Függőségek, normálformák
2012. tavaszi félév Vitéz Gergely. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Adatbázisok használata 1 (1. gyakorlat)
SQL Structured Query Language
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Többtáblás lekérdezések, allekérdezések Rózsa Győző
Microsoft Access V. Készítette: Rummel Szabolcs Elérhetőség:
Információ kezelés Az információ visszakeresésének lehetőségei.
Az adatbázissal kapcsolatos tudnivalók
az MSAccess programmal
ADATBÁZISOK
ADATBÁZIS HASZNÁLAT I. 2. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
1Gazdasági informatika II Gazdasági informatika II. Gyurkó György.
SQL.
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Tervezés, Normalizálás
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
2012. tavaszi félév Véső Tamás. Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét és a részlegében dolgozók legkisebb és legnagyobb jövedelmét,
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29.
Részletező csoportosítások Rózsa Győző
Adatbázis használat I. 2. gyakorlat.
ADATBÁZIS HASZNÁLAT I. 3. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Adatbázis-kezelés JAG,
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Adatbázisok gyakorlat
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
SQL nyelv részei DDL (Data Definition Language – Adat Definiáló Nyelv)  relációs séma séma kezelő utasítások: adatbázisok, táblák létrehozása, módosítása.
Adatbázis kezelés.
Adatbázis-kezelés.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Adatbázis-kezelés.
Kulcsok meghatározása a táblákban
Adatbázis alapfogalmak
Relációs algebra Relációs sémák tervezése
2. AB gyakorlat Egytáblás csoportosító lekérdezések.
Normálformák Takács Gábor mérnök informatikus, okl. mérnöktanár
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Információs rendszer fejlesztése 2. előadás
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Adatbázisszintű adatmodellek
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév.
Alapfogalmak Adat: rögzített ismeret
Adatbázis alapismeretek
Kovács Gergely Péter Bevezetés
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Relációs adatmodell, normálformák
Adatbázis-kezelés 2. Relációs adatbázisok.
Adatbázis-kezelés.
Előadás másolata:

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

Bevezető fogalmak Környezetünket le akarjuk írni. Ehhez adatokat 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.

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

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.

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

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.

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.

Egyedtípus: a valós világ objektumainak, egyedeinek absztrakt osztálya 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ő

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.

Kapcsolat: az egyedtípusok a valós világ modelljében nem önállóan léteznek, hanem más egyedtípusokkal valamilyen viszonyban vannak. 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

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]

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ó

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. Ez alapjá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.

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 az AB 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.

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.

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)

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>

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)

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.

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.

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] Minden t1-hez létezik t2 a következő tulajdonságokkal

Relációs modellben standard lekérdezőnyelv alapulhat 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)

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

LogikaiOszlopkifejezés: 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]

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!

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

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.

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

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

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

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

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

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;

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;

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;

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;

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;

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.

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

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.

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

Második normál forma (2. NF) 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.

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

Harmadik normál forma (3. NF) 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.

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