Adatbázisok

A tantárgy angol neve: Databases

Adatlap utolsó módosítása: 2017. június 29.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Mérnökinformatikus Szak

alapképzés

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VITMAB04   2/1/1/v 5  
3. A tantárgyfelelős személy és tanszék Dr. Gajdos Sándor, Távközlési és Médiainformatikai Tanszék
A tantárgy tanszéki weboldala https://www.db.bme.hu/targyak/adatbazisok
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr. Gajdos Sándor

t. docens

BME-TMIT

5. A tantárgy az alábbi témakörök ismeretére épít

Általános tájékozottság programozási nyelvekről; adatszerkezetekkel, algoritmusokkal kapcsolatos alapismeretek.

6. Előtanulmányi rend
Kötelező:
(TárgyEredmény( "BMEVISZAA01" , "aláírás" , _ ) = -1
VAGY TárgyEredmény( "BMEVISZAA04" , "aláírás" , _ ) = -1 )

ÉS NEM ( TárgyEredmény( "BMEVITMA311", "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVITMA311", "FELVETEL", AktualisFelev()) > 0
VAGY TárgyEredmény( "BMEVITMAB00", "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVITMAB00", "FELVETEL", AktualisFelev()) > 0
VAGY TárgyEredmény( "BMEVITMAB00" , "aláírás" , _ ) = -1
VAGY TárgyEredmény( "BMEVITMA311" , "aláírás" , _ ) = -1
VAGY TárgyEredmény( "BMEVITMA308", "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVITMA308", "FELVETEL", AktualisFelev()) > 0
VAGY TárgyEredmény( "BMEVITMAB02", "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVITMAB02", "FELVETEL", AktualisFelev()) > 0 )

ÉS (Training.Code=("5N-A8")
VAGY Training.Code=("5NAA8") )

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rendek grafikus formában itt láthatók.

Ajánlott:

A tantárgyat csak azok vegyék fel, akik megszerezték a Programozás alapjai 2 tárgy kreditjét is.

7. A tantárgy célkitűzése

(K1) Bemutatni, hogy az adatokat hogyan és miért érdemes strukturálni, hogyan épülnek fel az adatbáziskezelő rendszerek, kik és milyen formában használják azt.

(K3) Megértetni a relációs adatbázisok lekérdezési lehetőségeinek alternatíváit, képessé tenni imperatív és deklaratív lekérdezések megfogalmazására.

(K3) Használni a különböző fizikai adatszervezési módszereket háttértár-igények és adathozzáférési idők meghatározására.

(K3) Képessé tenni relációs adatstruktúrák szintézisére, amelyek általános esetekben alkalmasak információs rendszerek funkcionalitásának megalapozására.

(K2) Bemutatni a specifikus igényeket támasztó rendszerek számára alkalmas adatstruktúrák szintézisének szükségességét és lehetőségét.

(K2) Elmagyarázni a többfelhasználós adatbázis-hozzáférés főbb kihívásait, jellegzetes algoritmusokat mutatni a megoldásukra.

(K4) Megismertetni az SQL nyelv használatát, képessé tenni alternatívák megfogalmazására adott eredményhalmaz előállítása során, optimálisnak tekinthető, ill. „jobb” végrehajtási terv előállításának érdekében.

8. A tantárgy részletes tematikája

1. hét:

elmélet: Adat, információ, tudás. Strukturált, szemistrukturált és nem strukturált adatok. XML, JSON.

gyakorlat: Adatbáziskezelő rendszer (meghatározás, rendszerkomponensek, rétegmodellek, nyelvi felületek, adatfüggetlenség, felhasználói szintek). Adatbázis séma, metaadatok.

2. hét:

elmélet: Strukturált adatok modellezése ER diagramok segítségével.

labor: Adatbáziskezelő rendszer megismerése

3. hét:

elmélet: Relációs adatmodell, reláció, relációs séma. Relációs algebra. Relációs séma előállítása ER diagramból.

gyakorlat: ER modellezés

4. hét:

elmélet: Sor- és oszlopkalkulus. Megengedett szimbólumok, atomok, formulák, kifejezések. Kapcsolat a relációalgebrával és az SQL nyelvvel.

labor: SQL I: sémadefiníció

5. hét:

elmélet: Fizikai adatszervezés I. Diszk-rezidens és memória-rezidens adatbázisok. Heap szervezés, Hash szervezés

gyakorlat: Relációs lekérdezések

6. hét:

elmélet: Fizikai adatszervezés II. Indexelt állományszervezés. Ritka index, sűrű index. Többszintes ritka index: B*-fák. Több kulcs szerinti keresés támogatása.

labor: SQL II: lekérdezések

7. hét:

elmélet: Relációs lekérdezések optimalizálása I. Relációalgebrai fa alapú optimalizálás. Relációalgebrai azonosságok

gyakorlat: Fizikai adatszervezés

8. hét:

elmélet: Relációs lekérdezések optimalizálása II. Költségalapú optimalizálás. Illesztések fajtái, algoritmusai. Legfontosabb műveletek költségének becslései. Kiértékelési terv.

labor: SQL III: Adatmódosítások

9 hét:

elmélet: Többfelhasználós működés elemei I: ACID tulajdonságok, zárak, éhezés, patt, sorosíthatóság, tranzakció modellek, 2PL.

gyakorlat: Relációs lekérdezések optimalizálási lehetőségei

10. hét:

elmélet: Többfelhasználós működés elemei II: Időbélyegek, verziók, tranzakcióhibák kezelése, piszkos adat, lavina

labor: XML-alapú adatkezelés

11. hét:

elmélet: Többfelhasználós működés elemei III: Rendszerhibák kezelése, naplózási technikák, visszaállítás, ellenőrzési pontok.

gyakorlat: Tranzakciókezelés

12. hét:

elmélet: Relációs sémák tervezése. Tranzakció-, ill. lekérdezésorientált megközelítés. Adatbázis kényszerek szerepe. Redundancia. Eseti és érdemi funkcionális függések.

labor: Lekérdezések optimalizálása

13. hét:

elmélet: Normálformák és jelentőségük. 1NF, 2NF, 3NF, BCNF.

gyakorlat: Normalizálás

14. hét:

elmélet: Kitekintés

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Minden héten előadás, kéthetente kiscsoportos gyakorlat és labor.

A laborokra előzetes felkészülés szükséges a kiadott ill. megjelölt segédanyagok alapján. A témák a fenti sorrendben egymás után, külön csoportbeosztás szerint kerülnek feldolgozásra. A hallgatók a laborban egyéni munkát végeznek, amelyet tapasztalt laborvezetők segítenek. A laborbeosztás és a tárggyal kapcsolatos minden egyéb információ a tantárgy tanszéki weboldalán található.

A laborok ill. a gyakorlatok teljesítéséhez – a Neptunban történő felvételekor – külön-külön kell meghatározott időpontokhoz rendelt csoportokba (gyakorlat-, ill. laborkurzusokba) jelentkezni. A regisztrációs hét végétől kezdődően a hallgató a csoportjait/kurzusait már nem változtathatja meg.

10. Követelmények
  • A szorgalmi időszakban:

Aláírás feltétele a zárthelyi és az összes labor legalább elégséges szintű teljesítése.

A laborokban önálló munkavégzés a rendelkezésre bocsátott segédanyagok alapján, a laborvezetők útmutatása és segítsége mellett. A készületlen hallgatókat a laborvezető ismétlésre kötelezi. Készületlennek minősíthető a hallgató akkor is, ha nem ismeri az Adatbázisok tárgyban az előadásokon korábban elhangzott elmélet kapcsolódó részeit.

A hallgatók munkáját a laborvezető tanár konzultálja és értékeli, amelybe a laborokon mutatott felkészültség és aktivitás 25% súllyal beleszámít. A hallgató minden egyes laboratóriumi gyakorlatra külön osztályzatot kap.

Minden laboratóriumi foglalkozásról a kiadott útmutató alapján, illetve a laborvezető által előírtak szerint jegyzőkönyvet kell elkészíteni és beadni. Eredményesnek csak a megfelelően dokumentált munka fogadható el.

  • A vizsgaidőszakban: írásbeli és szóbeli vizsga. Azok a hallgatók, akik a zárthelyit legalább 70%-os eredménnyel teljesítik, a vizsga írásbeli része alól mentesülnek. A végső jegy kialakításánál - és ezzel a kredit megszerzésénél - a laborra kapott értékelés és a vizsgán szerzett osztályzat 40%-60% arányban számít, de mindkettőnek legalább elégségesnek kell lennie. A laboreredmény megállapítása egyszerű átlagszámítással történik az egyes laborok osztályzataiból.
11. Pótlási lehetőségek

A félév során az arra kijelölt időpontban pótzh lehetőséget biztosítunk.

A laboratóriumi foglalkozások pótlása: minden labor egy meghatározott időablakban (legfeljebb két héten keresztül) kap támogatást. Ha a hallgató a számára kijelölt időpontban a laboron részt venni nem tud, akkor lehetősége van ezen időablakon belül más csoportban is elvégezni a feladatokat. Ehhez a pótlás helyét és idejét az érintett másik laborvezetővel is és a saját laborvezetőjével is előzetesen írásban le kell egyeztetnie annak érdekében, hogy a pótlás során a reguláris feltételek biztosíthatók legyenek.

Ha valamely laboratórium elégtelen minősítése miatt van szükség ismétlésre, akkor erre a laborvezetővel egyeztetett módon, a félév során egyetlen laborral kapcsolatban van csak lehetőség, a félév végén.

12. Konzultációs lehetőségek

Előzetes időpont egyeztetés mellett az egész félévben.

13. Jegyzet, tankönyv, felhasználható irodalom

1. Gajdos: Adatbázisok, 2016.

2. Silberschatz, H. F. Korth, S. Sudarshan: Database System Concepts, 6th Edition, 2010.

3. Ullman-Widom: Adatbázisrendszerek, alapvetés, Panem, 1998.

4. Garcia-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.

5. Gajdos S. (szerk): Adatbázisok laboratórium. BME-TMIT, 2017., ld. a tárgy honlapján

6. Sokszorosított segédletek

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra  56
Félévközi készülés előadásokra  10
Félévközi készülés gyakorlatokra  14
Felkészülés zárthelyire  16
Felkészülés laborokra és jkv. készítés   14
Vizsgafelkészülés  40
Összesen150
15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Dr. Gajdos Sándor

t. docens

BME-TMIT

IMSc tematika és módszer

Az IMSc képzés hallgatói külön tanulókörökben vesznek részt a gyakorlatokon, amelyek kifejezetten arra építenek, hogy az előadásokon elhangzott releváns anyagot a hallgatók már megértették, azokat megismételni szükségtelen, csupán tisztázó kérdésekre válaszolva van értelme az előadáson elhangzottakat újra elővenni. Az IMSc gyakorlatokat kifejezetten erre készülő gyakorlatvezetők tartják. A gyakorlatokon mintegy 1,5-szer annyi feladat megoldása tervezett, mint a normál csoportokban. A gyakorlatvezetők gondolkodtató kérdéseket is adnak fel részben a gyakorlat alatt, részben pedig otthoni végiggondolásra, amelyekkel piros pontokat lehet szerezni. Ezek a vizsgán kétes esetben beszámításra kerülnek.

Az IMSc képzés hallgatói külön csoportokban/kurzusokban vesznek részt a laboratóriumi foglalkozásokon is. Tekintettel arra, hogy az IMSc képzés elsősorban az elmélyülést kívánja támogatni, nem több, hanem más feladatok közös megoldása tervezett, a labor jellege által meghatározott egymásraépülések követelményeit is figyelembe véve. Az IMSc laborokat kifejezetten erre készülő laborvezetők tartják. A laborvezetők gondolkodtató kérdéseket is adnak fel részben helyszíni, részben pedig otthoni végiggondolásra.

IMSc pontozás

A zárthelyi során úgy lehet a tantárgyból IMSc pontokat szerezni, hogy az integrált képzés hallgatói számára a zárthelyin az "i" jelű feladat megoldása is kötelező. Az értékelés számukra nemcsak go/no go jellegű. 80%-osnál nagyobb teljesítmény százalékpontonként 1 IMSc pontot ér, de legfeljebb csak 15-öt.

A vizsgák alkalmával, ha a hallgató jeles eredményt ért el, akkor - ha kéri - az IMSc pontokért plusz kérdést kap. Ennek lényegében helyes megválaszolásával legfeljebb további 5 pontot lehet szerezni.

Egy-egy laboratórium keretében úgy lehet IMSc pontokat szerezni, hogy ehhez el kell érni a 85%-os jeles szintet az "i" jelű (nehezebb) feladatok megoldása nélkül, valamint az "i" jelű feladatokból is kell pontot szerezni.

Az értékelés során a 85%-osnál nagyobb teljesítmény százalékpontonként 1 IMSc pontot ér, de legfeljebb csak 5-öt. A többletteljesítményt a félév végén a laborok között átlagolva adódik ki a végső IMSc pont A jeleshez szükséges pontszám elérésébe az "i" jelű feladat(ok) pontszáma(i) is beszámítható(k), de ebben az esetben a jeles feletti teljesítményért már nem jár IMSc pont.

Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.