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: 2022. augusztus 26.

    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 3 2/1/1/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Gajdos Sándor,
    A tantárgy tanszéki weboldala https://www.db.bme.hu/adatbazisok
    4. A tantárgy előadója

    Dr. Gajdos Sándor, t. docens, TMIT

    Dr. Erős Levente, adjunktus, TMIT

    Marton József, ügyvivő szakértő, 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ő:
    [ HA EgyenCsoportTagja("INFO - 2022 - MINTATANTERV HALLGATÓI")

    AKKOR
    TárgyTeljesítve_Képzésen("BMEVISZAA04")
    EGYÉBKÉNT

    ((TárgyEredmény( "BMEVISZAA01" , "aláírás" , _ ) = -1
    VAGY TárgyEredmény( "BMEVISZAA04" , "aláírás" , _ ) = -1
    VAGY TárgyEredmény( "BMEVISZA110" , "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") )

    VAGY EgyenCsoportTagja("Kreditpótlás_2023/24/2 ")

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

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    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

    Az előadások részletes tematikája

    1. hét:

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

    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:

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

    3. hét:

    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.

    4. hét:

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

    5. hét:

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

    6. hét:

    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.

    7. hét:

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

    8. hét:

    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.

    9 hét:

    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.

    10. hét:

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

    11. hét:

    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.

    12. hét:

    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.

    13. hét:

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

    14. hét:

    Kitekintés

    Gyakorlatok tematikája:

    1. ER modellezés

    2. Relációs lekérdezések

    3. Fizikai adatszervezés

    4. Relációs lekérdezések optimalizálási lehetőségei

    5. Tranzakciókezelés

    6. Normalizálás

    Laborok tematikája:

    1. labor: Adatbázis-kezelő rendszer megismerése

    2. labor: SQL I: sémadefiníció

    3. labor: SQL II: lekérdezések

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

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

    6. labor: XML-alapú adatkezelé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 laborok teljesítésére online lehetőség is felajánlható, amelyre a hallgató jelentkezhet, de az ezeken való részvételre az oktatástechnikai feltételek függvényében kap lehetőséget. Az online laborok lebonyolítása a jelenléti laborokkal egyidőben történik. Az első oktatási héten labor/gyakorlat helyett is előadást tartunk.

    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 tárgy honlapján közzétett 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ó is megtalálható a tantárgy tanszéki weboldalán.

    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 öt 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 egy egyedi labordokumentációt kell egyénileg elkészíteni és beadni. Eredményesnek csak a megfelelően dokumentált munka fogadható el.

    • A vizsgaidőszakban: írásbeli beugró után szóbeli vizsga. Azok a hallgatók, akik a zárthelyit legalább 70%-os eredménnyel teljesítik, a vizsga beugró 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, 2021. ld. a tárgy honlapján

    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, 2021., 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
    Előzetes 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.