Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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.