„Háttéralkalmazások/Záróvizsgatételek” változatai közötti eltérés

a Táblázat helyes lezárása
3. ORM: Tétel kidolgozása
133. sor: 133. sor:


=== Mi az O/R leképzés feladata, mire szolgálnak a shadow-információk? ===
=== Mi az O/R leképzés feladata, mire szolgálnak a shadow-információk? ===
...
Az ORM segítségével egy objektumorientált nyelv memóriájában tárolt objektumokat le lehet képezni egy relációs adatbázis sémájára (és fordítva). Ezzel hidat képez az adatbázis és az üzleti logika között, biztosítva utóbbi adatperzisztenciáját.
 
A shadow-információk az adatbázisban szükséges, de az üzleti logika által nem használt kulcsokat, időbélyegeket és egyéb adatokat takarják.
{| class="wikitable"
|+egymásnak megfeleltethető adattípusok
!üzleti logika
!adatbázis
|-
|osztály
|tábla
|-
|tagváltozó (primitive)
|oszlop (attribútum)
|-
|tagváltozó (objektum)
|oszlop (attribútum), mely egyben idegen kulcs is
|-
|osztálypéldány
|sor (rekord)
|}


=== Az öröklési hierarchiát miképp lehet leképezni relációs sémára? ===
=== Az öröklési hierarchiát miképp lehet leképezni relációs sémára? ===
...
Tegyük fel, hogy van egy absztrakt <code>''Vehicle''</code> osztályunk. Ebből származik a <code>Tram</code> és a <code>Bus</code> osztály. Be akarunk vezetni egy új <code>ElectricBus</code> osztályt, mely a <code>Bus</code> leszármazottja.
 
==== Egy táblába, gányul ====
{| class="wikitable"
|+vehicle
!🔑 id
!lpn_or_car_number
!is_tram
!has_radio_point_switcher
!is_bus
!rear_engined
|-
|1
|V1448
|true
|false
|false
|''<null>''
|-
|2
|SGY811
|false
|''<null>''
|true
|true
|}
{| class="wikitable"
|+vehicle
!🔑 id
!lpn_or_car_number
!is_tram
!has_radio_point_switcher
!is_bus
!rear_engined
!is_electric_bus
!traction_battery_capacity_kwh
|-
|1
|V1448
|true
|false
|false
|''<null>''
|false
|''<null>''
|-
|2
|SGY811
|false
|''<null>''
|true
|true
|false
|''<null>''
|-
|3
|NLE848
|false
|''<null>''
|false
|true
|true
|170
|}
 
==== Külön táblába a valós osztályokat ====
{| class="wikitable"
|+tram
!🔑 id
!lpn_or_car_number
!has_radio_point_switcher
|-
|1
|V1448
|false
|}
{| class="wikitable"
|+bus
!🔑 id
!lpn_or_car_number
!rear_engined
|-
|1
|SGY811
|true
|}
{| class="wikitable"
|+electric_bus
!🔑 id
!lpn_or_car_number
!rear_engined
!traction_battery_capacity_kwh
|-
|1
|NLE848
|true
|170
|}
 
==== Külön táblába az összes osztályt ====
{| class="wikitable"
|+vehicle
!🔑 id
!lpn_or_car_number
|-
|1
|V1448
|-
|2
|SGY811
|-
|3
|NLE848
|}
{| class="wikitable"
|+tram
!🔑 id
!🔑 🇸🇨 vehicle_id
!has_radio_point_switcher
|-
|1
|1
|false
|}
{| class="wikitable"
|+bus
!🔑 id
!🔑 🇸🇨 vehicle_id
!rear_engined
|-
|1
|2
|true
|-
|2
|3
|true
|}
{| class="wikitable"
|+electric_bus
!🔑 id
!🔑 🇸🇨 bus_id
!traction_battery_capacity_kwh
|-
|1
|2
|170
|}
 
==== Absztrakt struktúrába ====
Külön tábla az osztályoknak, örökléseknek, tagváltozóknak, azok típusainak és az értékeknek. Mindegyiknek van kapcsolata legalább egy másik táblával.


=== Hogyan képezzük le az objektumok közötti kapcsolatokat? ===
=== Hogyan képezzük le az objektumok közötti kapcsolatokat? ===
...
Csak a kapcsolatok számosságát lehet leképezni, azok irányát nem. A kapcsolatok akár azonos táblán belül is lehetnek (rekurzió).
{| class="wikitable"
|+kapcsolatszámossági mátrix
!
!egy
!több
|-
|egy
| colspan="2" |idegen kulccsal az egyik táblában
|-
|több
|–
|egy külön kapcsolótáblával
|}


=== Hogyan képezhetőek le a globális változók? ===
=== Hogyan képezhetőek le a globális változók? ===
...
 
==== Gányul ====
Változónként külön táblában:
{| class="wikitable"
|+vat_hungary
!🔑 id
!vat
|-
|1
|0,27
|}
{| class="wikitable"
|+transaction_fee_hungary
!🔑 id
!bank_transaction_tax
|-
|1
|0,0045
|}
Vagy akár ezeket osztályonként / teljesen összevonva.
 
==== Szépen ====
Kulcs-érték páronként:
{| class="wikitable"
|+globals
!🔑 id
!class
!key
!value
|-
|1
|Hungary
|vat
|0,27
|-
|2
|Hungary
|bank_transaction_tax
|0,0045
|}


== 4. EF Core ==
== 4. EF Core ==
149. sor: 373. sor:
...
...


=== Mikor használjuk, mikor nem? ===
=== Mikor használjuk, és mikor nem? ===
...
...