2014. szeptember 16., kedd

Használj PL/SQL-t!

Általános "bölcsesség" (úgy ötven éve), hogy egy nagyobb szoftver implementálása nagyban függ a megfelelő moduláris tervezéstől. Ma már az adatbázis szint abból áll, hogy lefut egy SQL utasítás (insert, update..) és kész. Holott, ez csupán csak egy része annak, amit alkalmazás funkcionális leírásában specifikáltak mint üzleti tranzakció. Minden funkciót egy API-nak kell megvalósítania, akár számos, különböző (specifikált) módon. 

A következtetés tehát: ezeket a modulokat PL/SQL-ben kell megírni. Teljesen felesleges magasabb szintre vinni az adatbázis táblák neveit, struktúráját. Az adatbázist érintő üzleti funkciókat jól specifikálva, az adatbázis szintjén kell megvalósítani. Biztonságban el kell rejteni az SQL-t az adatbázis szintjén ami ezeken dolgozik.

Ügyfelek egy csoportja általában elégedett a kapott alkalmazás teljesítményével. Van azonban egy másik csoport
  • akik rendszeresen panaszkodnak a teljesítményre, mert egy üzleti folyamat gyakran felesleges kerülő utakkal lettek implementálva a középső szintektől az adatbázis szintig 
  • aztán panaszkodnak minden kisebb javítás után is, mert az egyszerre érinti az alkalmazás több szintjét is, lényegesen nehezítve a szoftver karbantarthatóságát
  • aztán panaszkodnak a javítások számára, mert az alkalmazás tesztelhetősége is bonyolultabb és nehézkesebbé válik, ha több szinten van implementálva egy funkció 

Végül pedig, még egy érv a modularitás megőrzése mellett. Minden szoftver idejében eljöhet az idő, amikor teljesen vagy csak egy-egy funkciót kell átírni, újra gondolni. Ebben az esetben is teljesen egyértelmű, hogy mekkora előnyökkel jár, ha az adatbázis API-k jól meg vannak írva, nem keverve más szintű folyamatokkal.

ERB - Edition-based redefinition

Egy fontos újítás a 12c verzióban. Jelenleg, ha egy PL/SQl-t módosítani kell, le kell állítani az alkalmazást. De a 12c után többé nem. Amikor egy PL/SQL-t, nézetet vagy szinonimát módosítani kell, a módosítás egy új "kiadáson" (edition) fog lefutni, ami az alkalmazás számára láthatatlan. Az alkalmazás megszakítás nélkül fut végig. Amikor minden változtatás megtörtént az új verzión, és ellenőrizve lett, az alkalmazás adatbázis munkamenetei egyszerűen átállnak az új verzióra sorban, amíg már egy munkamenet sem lesz a régin. Majd ez lesz a végleges verzió.  

Nincsenek megjegyzések:

Megjegyzés küldése