Dependența de furnizor se plătește târziu
O aplicație scrisă pe dialectul unui singur motor de bază de date pare, la început, mai simplă. Costul apare mai târziu: la schimbarea politicii de licențiere a furnizorului, la o cerință de infrastructură care impune alt motor, la o migrare în cloud sau, dimpotrivă, la o întoarcere on-premises.
În achizițiile publice, dependența are și o consecință de procedură: o cerință tehnică formulată în jurul unui singur produs restrânge concurența și poate fi contestată. Un sistem portabil elimină discuția.
Cum se obține portabilitatea
Accesul la date se face printr-un strat de abstractizare, cu interogări scrise în SQL standard și parametrizate, nu construite prin concatenare de șiruri. Parametrizarea are două efecte deodată: închide calea injecției SQL și menține interogările independente de particularitățile unui motor anume.
Ce ține de un dialect specific — tipuri, funcții, particularități de indexare — este izolat, nu împrăștiat prin toată aplicația. Consecința practică: trecerea de la MariaDB la PostgreSQL, sau invers, este o operațiune de migrare a datelor și de configurare, nu o rescriere.
- acces la date prin PDO, cu interogări parametrizate;
- SQL standard, cu particularitățile de dialect izolate;
- compatibilitate cu MariaDB și cu PostgreSQL;
- aceeași aplicație on-premises, în cloud privat sau în cloud public.
Ce câștigă organizația
Libertatea de a alege infrastructura după criterii proprii — cost, politică internă, cerințe de suveranitate a datelor — și nu după ce impune aplicația. Iar dacă acele criterii se schimbă peste trei ani, schimbarea rămâne posibilă.
Pentru o instituție publică, portabilitatea se traduce direct în caietul de sarcini: cerința poate fi scrisă neutru, iar soluția nu obligă la un furnizor anume de bază de date.
Întrebări frecvente
Ce baze de date sunt suportate?
MariaDB și PostgreSQL. Alte motoare se pot discuta în funcție de proiect, dar cele două sunt cele pe care platforma le folosește nativ.
Migrarea de la un motor la altul este posibilă după punerea în funcțiune?
Da. Este o operațiune de migrare a datelor și de configurare, planificată ca atare, nu o rescriere a aplicației.
Parametrizarea interogărilor protejează împotriva injecției SQL?
Da, este mecanismul principal împotriva ei. Valorile nu se concatenează în textul interogării, deci nu pot schimba structura acesteia.
Portabilitatea afectează performanța?
Particularitățile de performanță ale fiecărui motor — indexare, planuri de execuție — se tratează la configurare, nu prin abandonarea portabilității. Dimensionarea se face pe volumul real al organizației.
Discutăm despre Portabilitate multi-DB
Vă putem arăta componenta în funcțiune pe datele dumneavoastră, vă putem trimite o ofertă pentru dimensiunea organizației sau vă putem răspunde punctual la întrebări tehnice.