Háttéralkalmazások/Záróvizsgatételek

A VIK Wikiből
A lap korábbi változatát látod, amilyen Gyöngyösi Máté (vitalap | szerkesztései) 2025. június 21., 22:46-kor történt szerkesztése után volt. (Táblázat helyes lezárása)


1. Adatbázisok

Ismertesse az adatbáziskonkurencia-problémákat!

  • dirty read
    • uncommitted tranzakciók által frissített sorok kiolvasása
  • non-repeatable read
    • committed tranzakciók által frissített sorok kiolvasása
      • a tranzakció előtt és után kiolvasott értékek nem egyeznek
  • phantom read
    • committed tranzakciók által hozzáadott / eltávolított sorok kiolvasása
      • a tranzakció előtt és után kiolvasott értékek nem egyeznek

Ismertesse a tranzakciók alaptulajdonságait!

  • ACID:
    • atomicity
      • minden tranzakció egy egység
      • ha egy tranzakció valamely része elhasal, akkor az egész sikertelennek minősül
    • consistency
      • az illegal transactionök nem mennek végbe
      • a kulcsok mindig helyesek
      • a megkötések (NOT NULL, UNIQUE, CASCADE stb.) be vannak tartva
      • a triggerek az előírtaknak megfelelően működnek
    • isolation
      • a párhuzamosan futó tranzakciók az izolációs szintnek megfelelő adatokat olvassanak ki
    • durability
      • a tranzakciók végrehajtása utáni állapot egy rendszerhiba vagy üzemzavar esetén is megmaradjon

Mire szolgálnak a tranzakcióizolációs-szintek?

izolációs szint dirty read non-repeatable read phantom read
read uncommitted 🔴 🔴 🔴
read committed 🟢 🔴 🔴
repeatable read 🟢 🟢 🔴
serializable 🟢 🟢 🟢

Ezeket az SQL-92 (ISO-)szabvány tartalmazta először.

Milyen izolációs szinteket támogat az Microsoft SQL Server?

A fentieket, plusz egy snapshot szintet, ami egy segédadatbázis (tempdb) segítségével számon tartja az egyes sorok verzióit, így a tranzakciók az azok kezdetekor készített pillanatkép alapján végeznek műveletet az adatbázisban. Előnye, hogy lockok nélkül működik. Hátránya, hogy a tempdb-nek magas lehet az erőforrásigénye, illetve egy esetleges írásütközés esetén kivételt dob az RDBMS, amit kezelni kell.

2. Tárolt eljárások

Ismertesse az adatbázisok szerveroldali programozásának koncepcióját, előnyeit, hátrányait!

Használatával eljárásokat (procedures) és függvényeket (functions), illetve triggereket lehet tárolni az adatbázisban. Lényege, hogy az üzleti logika helyett maga az adatbázis-kezelő szerver futtatja a beállított szubrutinokat, az előbbi csak meghívja őket.

a szerveroldali programozás jellemzői
szempont / tulajdonság
teljesítmény
  • gyorsabb lokális feldolgozás
  • a gyorsítótárnak is köszönhetően
  • hálózat: kisebb késleltetés, alacsonyabb terhelés
  • legtöbb esetben[1] értelmezett nyelvek
  • nagyobb terhelés az adatbázison
  • nem lehet igazán jól skálázni
szabvány
  • nincs (ISO-)szabvány
  • platformfüggőek az implementációk
  • sőt, általában egy külön nyelvet is meg kell tanulni hozzá
  • így nehezebben karbantartható a kód
adatbiztonság
  • jobb megfelelés az ACID-elveknek
  • nem kell a hálózaton utaztatni az adatokat
az üzleti logika bárhonnan meghívhatja a szubrutinokat
  • növeli a kód újrafelhasználhatóságát
  • könnyebb karbantartás
  • nincs scope-juk, így nehezebb korlátozni, ki hívhatja meg őket
  • jogosultságkezeléssel meg lehet oldani

Milyen programozási lehetőségei, sajátosságai vannak a Microsoft SQL Servernek?

A Microsoft SQL Server procedurális programozási nyelve a T(ransact)-SQL. Azokban változókat, operátorokat, elágazásokat, utasításblokkokat, ciklusokat és kivételeket is lehet használni.

Egyedi adatbetöltési eszköze a kurzor. Gyakorlatilag úgy működik, mintha lenne egy Excel-táblázatunk, amit egy olyan Maccel szeretnénk kiolvasni, amihez csak egy billentyű van csatlakoztatva. Meg kell nyitni a táblázatot, utána egyesével végig lehet léptetni az adatokon. Az utolsó sort elérve be kell zárni az ablakot (= a kurzort), majd magát a programot is, hogy felszabadítsuk az erőforrásokat (DEALLOCATE cursor1).

A függvények skalár értékekkel (változókkal) vagy táblákkal térhetnek vissza.

A triggerek DML- és DDL-utasításokat is végrehajthatnak.

szubrutinok jellemzői T–SQL-ben
típus van visszatérési értéke? van mellékhatása?
eljárás 🟠 lehet 🟠 lehet
függvény 🟢 igen, mindig 🔴 nem, soha

3. ORM

Mi az O/R leképzés feladata, mire szolgálnak a shadow-információk?

...

Az öröklési hierarchiát miképp lehet leképezni relációs sémára?

...

Hogyan képezzük le az objektumok közötti kapcsolatokat?

...

Hogyan képezhetőek le a globális változók?

...

4. EF Core

Mi az Entity Framework?

...

Mikor használjuk, mikor nem?

...

Mi a DbContext?

...

Milyen három modellezési lehetőségünk van adatmodell készítésére, és milyen két lehetőségünk van a modell konfigurációjára?

...

Hogy néz ki egy entitás, hogyan készítünk kapcsolatokat közöttük?

...

Hogyan készítünk lekérdezéseket, hogyan módosítunk adatokat EF Core-ban?

...

5. JPA – általános

Ismertesd a Java Persistence API architektúráját és főbb jellemzőit!

...

Milyen annotációkat kell alkalmazni egy JPA-entitás megírásakor, és milyen típusú attribútumokat vehetünk fel benne?

...

Ismertesd a perzisztenciakontextus fogalmát!

...

Mutasd be az entitások életciklusát!

...

6. JPA – használat

Milyen módokon lehet lekérdezést megfogalmazni a JPA-ban?

...

Hogyan bővíti a lehetőségeket a Spring Data JPA a lekérdezések megfogalmazásának területén?

...

Hogyan valósíthatók meg entitások közti kapcsolatok és az entitások öröklése JPA-ban?

...

7. Spring

Mik a függőséginjektálás főbb előnyei, és hogyan támogatja a Spring?

...

Milyen élettartama lehet egy springes beannek?

...

Hogyan könnyíti meg a JPA használatát a Spring Data JPA?

...

Hogyan támogatja a tranzakciókezelést a Spring?

...

8. ASP.NET Core

Mi az ASP.NET Core?

...

Mit jelent, hogy egy alkalmazás monolitikus?

...

Mi a clean architecture?

...

Sorolj fel min. 3 általános ASP.NET Core által nyújtott infrastruktúra funkciót!

...

Hogyan indul el egy ASP.NET Core projekt?

...

Milyen lépései vannak, hogy egy Web API-n kiajánljunk egy EF Core által nyújtott adatmodellt (lekérdezésre, módosításra)?

...

9. Razor

Milyen módokon szeparálhatjuk a kliens–szerver alkalmazásrétegeket?

...

Mi a szerveroldali renderelés?

...

Milyen előnyei/hátrányai vannak a kliensoldalival szemben?

...

Mi a Razor?

...

Hogyan készül el egy HTML-oldal Razor segítségével és MVC vagy Razor Pages használatával?

...

10. Microservices

Milyen előnyökkel és hátrányokkal jár a mikroszolgáltatás architektúra a monolitikussal szemben?

...

Ismertesd az alábbi microservice tervezési minták céljait, azok előnyeit, hátrányait!

Shared database

...

Database per service

...

API composition

...

CQRS

...

11. Microservices

Milyen előnyökkel és hátrányokkal jár a mikroszolgáltatás architektúra a monolitikussal szemben?

Ismertesd az API gateway tervezési mintát!

...

Ismertesd a tanult Service discovery mintákat!

...

12. Cloud

A számítási felhő fő jellemzői.

...

A számítási felhő fizikai, térbeli kiépítése.

...

Főbb publikus felhőszolgáltatók.

...

Felhős szolgáltatásmodellek.

...

Szolgáltatásgaranciák (SLA).

...

Skálázási lehetőségek.

...

Példák elérhető szolgáltatásokra.

...

A felhős modell előnyei, hátrányai.

...

13. Azure

Azure alapszolgáltatások viszonya egymáshoz.

Előfizetés

...

...

Fiók (account)

...

Erőforráscsoport

...

Erőforrás

...

Erőforrások beállítható alapjellemzői.

...

Régió kiválasztásának szempontjai.

...

Azure SQL és Azure App Service szolgáltatások...

...bemutatása.

...

...felépítése (logikai) erőforrások szintjén.

...

...árazási tényezői.

...