Net-Base Revista

14.06.2026

Reestructuració de la base de dades en la Delphi-Software consolidada: modernitzar de manera segura sense temps d'inactivitat

La reforma d’una base de dades en un programari Delphi consolidat és menys un 'projecte SQL' que una intervenció en l’operació, les interfícies i la responsabilitat sobre les dades. Aquest article mostra com controlar els riscos, fer que les migracions siguin testables i estabilitzar el funcionament quotidià de TI i de l’àrea de negoci...

14.06.2026

Del tema de la revista a la pràctica del projecte

Pàgines de serveis i tècniques pertinents per a l'article

Una reestructuració de base de dades en un programari Delphi consolidat rara vegada és només un intercanvi de taules o un «nou esquema». A la pràctica, sovint depèn de la base de dades tot allò que ha de funcionar diàriament a l’empresa: documents, dades mestres, històrics, interfícies amb ERP/DMS/CRM, informes, permisos i, no menys important, l’expectativa que l’operació es mantingui estable durant la transició.

Moltes aplicacions Delphi han crescut de manera fiable al llarg d’anys. Precisament aquesta és la seva fortalesa — i alhora la raó per la qual els canvis a la base de dades són delicats. La lògica de negoci no resideix només en el codi, sinó també en procediments emmagatzemats, disparadors, convencions implícites i en dades que «sempre han estat així». Qui modernitzi sense estructura aquí corre el risc de fallades, dades incoherents i patrons d’error de llarga durada que poden aparèixer setmanes més tard.

Aquest article descriu un enfocament robust per a la direcció d’IT, administradors i responsables tècnics de projecte: com planificar la reestructuració, quines guies tècniques funcionen, com fer que les migracions siguin provables i com millorar de manera tangible la seguretat, la mantenibilitat i la capacitat d’integració —sense haver d’imposar un reinici tipus Big Bang.

Per què la reestructuració de la base de dades en projectes Delphi és especialment crítica

Delphi és sovint l’esquelet del software de negoci orientat a processos en la mitjana empresa i en entorns empresarials especialitzats. Molts d’aquests sistemes van ser dissenyats en una època en què les accions sobre la base de dades estaven sovint estretament entrellaçades amb la UI i la lògica de negoci. D’aquí s’extreuen riscos típics:

  • Accessos a dades fortament acoblats: sentències SQL repartides en formularis, informes, tasques en segon pla i components d’interfícies. Un canvi d’esquema afecta moltes parts alhora.
  • Models de dades amb creixement històric: «taules universals», ús múltiple de columnes, tipus de dades mixtes, constraints inexistents. Les dades són funcionals, però difícils de validar.
  • Contractes ocults: eines externes, exportacions a Excel, sistemes de tercers o treballs per lots es basen en noms de columnes, ordenacions o IDs sense que això estigui documentat.
  • Operació amb càrrega contínua: la reestructuració no es fa en un laboratori. Hi ha usuaris productius, tasques, imports, processaments nocturns i finestres de manteniment molt ajustades.

El punt clau: una reestructuració de base de dades és un projecte d’arquitectura. Afecta igualment la responsabilitat sobre les dades, els contractes d’interfície, els processos d’operació i la testabilitat.

Definir objectius amb claredat: Què ha d’estar millor després de la reestructuració?

Sense una definició clara d’objectius, una reestructuració ràpidament es converteix en un pou sense fons. A la pràctica, han demostrat la seva validesa les següents categories d’objectius, que convé concretar prèviament:

1) Operació & Estabilitat

Exemples: finestres de manteniment més curtes, desplegaments reproducibles, millor rendiment en transaccions clau, menys deadlocks, temps de backup/RESTore planificables, rollback clar.

2) Mantenibilitat & Evolució

Exemples: versionat de la base de dades, migracions rastrejables, menys «casos especials» en l’accés a dades, entitats clares, millor cobertura de proves a nivell de dades.

3) Seguretat & Compliment

Exemples: permisos nets (Least Privilege), audit trail (canvis rastrejables), xifratge at REST/in transit, separació de tenants, accessos d’administrador controlats.

4) Integració & Capacitat d’interfície

Exemples: API estables, sobirania de les dades clarament definida, desacoblament entre els informes i la base de dades operativa, processos d’importació/exportació robustos.

Aquests objectius influeixen en les decisions d’arquitectura: p. ex., si necessiteu una fase de transició amb funcionament en paral·lel, si una «aturada zero» és realista o si utilitzeu una finestra de manteniment planificada.

Reestructuració de la base de dades en programari Delphi evolucionat: desencadenants típics

En entorns existents sovint veiem desencadenants recurrents que obliguen a una reestructuració o, com a mínim, la fan econòmicament raonable:

  • BDE-reemplaçament: La Borland Database Engine és operativament arriscada (controladors, dependències de 32 bits, desplegament). Els entorns moderns tendeixen a optar per un BDE-reemplaçament amb connexió nativa (Delphi-capa d’accés a dades) i controladors de BD natius.
  • Canvi de sistema de base de dades: p. ex., de Firebird o InterBase a PostgreSQL o SQL Server, sovint motivat per conceptes d’operació, estratègies HA/de còpia de seguretat o estandardització.
  • Problemes d’escalabilitat: el creixement del volum de dades, del nombre d’usuaris o del processament per lots posa a límit l’indexació, el bloqueig i els plans de consulta.
  • Multitenència o model de permisos: requisits posteriors topen amb un model que originalment era «un únic client, una única ubicació».
  • Projectes d’interfícies: un portal de clients, nous REST-serveis o integracions ERP necessiten contractes de dades clars i estables.

És important no confondre el desencadenant amb la solució. «Canviar a PostgreSQL» no és un objectiu, sinó un mitjà. L’objectiu és, per exemple, millor operació, un model de permisos més clar o una ampliabilitat controlada.

Valoració de l’estat: Sense inventari de dades no hi ha un pla sòlid

Una planificació sòlida comença amb un inventari rigorós. No cal que duri mesos, però ha de fer visibles les dependències crítiques:

Anàlisi tècnica

  • Mapa d’esquema: taules, vistes, procediments emmagatzemats, disparadors, índexs, restriccions, seqüències/mecanismes d’identitat.
  • Vies d’accés: on s’executa SQL? UI, serveis, processos en segon pla, generadors d’informes, interfícies, importadors.
  • Límits de transacció: quins processos necessiten veritables transaccions ACID (atomiques, consistents, aïllades, duradores)? On es toleren actualitzacions parcials?
  • Punts crítics de rendiment: consultes principals, temps d’espera per bloqueigs, transaccions llargues, tasques nocturnes, taules grans.

Anàlisi funcional

  • Sobirania de les dades: quin és el sistema capdavanter per a quines dades? Què prové de l’ERP, què es manté localment?
  • Historial i retenció: quines dades han de romandre conservades per a auditoria? Quines es poden netejar/arxivar?
  • Processos crítics: tancament mensual, expedició, processos de facturació, producció/BDE, certificats o comprovants de verificació.

Precisament en programari Delphi evolucionat la sobirania funcional de les dades sovint és implícita. Qui no la clarifica, construeix ràpidament «taules més boniques» i només desplaça els problemes cap a les interfícies i l’operació.

Arquitectura objectiu per a l’accés a dades: desacoblar sense reescriure-ho tot

El major palanca per a la reducció del risc és un accés a les dades controlat. No es tracta tant del llenguatge de programació, sinó d’una lògica clara per capes (sovint anomenada «Layer»-arquitectura): UI/Client, lògica de negoci, accés a dades. Com més separades estiguin aquestes capes, menor serà l’abast d’impacte en cas de reestructuració d’esquema.

En Delphi-entorns sovint té sentit una consolidació: allunyar-se d’SQLs «ad-hoc» distribuïts cap a punts d’accés de dades centrals. BDE-Ablosung mit nativer Anbindung pot ajudar-hi perquè representa de manera més estructurada controladors, vinculació de paràmetres, transaccions i pooling. El decisiu no és l’eina, sinó la regla: les modificacions d’esquema no han de requerir ser replicades en 200 llocs de la UI.

Pas intermedi pragmàtic: façana de base de dades

Si un gran refactor no és possible, una façana de base de dades pot ajudar: vistes o sinònims que representin temporalment els noms/estructures de columnes antics mentre internament ja es desenvolupa el nou model. No és una solució permanent, però és un recurs provat per desplegar migracions de manera iterativa.

Refactorització d’esquema: quines modificacions val la pena fer — i quines són perilloses

No tots els canvis tenen el mateix impacte. Alguns incrementen ràpidament l’estabilitat i la qualitat de dades; altres comporten efectes col·laterals importants.

Millores de „baix risc“ amb alt impacte

  • Afegir constraints: NOT NULL, claus foranes, índexs únics. Fan visibles els errors més aviat i eviten incoherències que sorgeixen de forma oculta.
  • Consolidar tipus de dades: p. ex. separació clara de data/hora, imports numèrics, IDs. Especialment important en interfícies i reporting.
  • Indexació segons l’ús: índexs alineats amb rutes reals de filtrat i de join, no segons la intuïció.
  • Introduir camps d’auditoria: registren «qui/què/quan» (p. ex. ChangedAt, ChangedBy). Això és extremadament útil per a l’operació i l’anàlisi d’errors.

Canvis d’alt risc (planificats de manera específica)

  • Canviar l’estratègia de claus primàries/ID: p. ex. passar de claus compostes a surrogate keys o al revés. Això afecta en profunditat la lògica, els processos d’importació/exportació i les referències.
  • Normalitzar grans àrees: Té sentit des del punt de vista funcional, però sovint comporta adaptacions massives a formularis, informes i interfícies.
  • Migració a multitenant: columnes de client, Row-Level-Security, particionament de dades – aquí cal un concepte de permisos net i casos de prova.

Una pràctica recomanada és separar el refactor en «fonament de seguretat i operacions» (constraints, auditoria, versionament, permisos) i «optimització del model funcional». Així s’obté un benefici mesurable d’hora enfora sense haver d’afectar immediatament tots els processos.

Estratègia de migració: Big Bang, funcionament en paral·lel o migració pas a pas?

La tria de l’estratègia determina el risc, el calendari i el concepte d’operació. A les empreses són habituals tres patrons:

1) Finestra de manteniment planificada (migració clàssica de cutover)

Es congela l’aplicació, es migren dades i esquema, es valida i es realitza el canvi. Avantatge: tall clar. Desavantatge: temps d’inactivitat i alta pressió durant el cutover.

2) Funcionament en paral·lel amb sincronització

Base de dades antiga i nova funcionen en paral·lel temporalment. Les modificacions es repliquen o es transmeten mitjançant una lògica de sincronització. Avantatge: menys temps d’inactivitat. Desavantatge: conflictes complexos, majors requisits per al monitoratge i la governança de les dades.

3) Migració gradual per domini

Migren els àmbits funcionals un per un (p. ex., dades mestres primer, després documents, després historial). Avantatge: controlable, fàcil de provar. Desavantatge: els estats transitoris requereixen regles clares i, de vegades, adaptadors temporals.

„Zero-Downtime“ és possible, però rarament és gratuït. Sovint una finestra de manteniment curta i ben preparada és més econòmica que una sincronització paral·lela de mesos.

Garantir la testabilitat: les migracions han de ser repetibles i verificables

Una reestructuració de base de dades rarament fracassa per falta de coneixements SQL, sinó per una insuficient verificabilitat. Dos principis són centrals:

Migracions com a control de versions, no com a treball manual

En lloc de „canvis sota demanda“ les modificacions d’esquema haurien d’existir com a migracions versionades: clarament numerades, amb dependències, i executables de manera idèntica en Test/Stage/Prod. Això facilita auditories, Rollbacks i treball en equip.

Validació amb comprovacions de negoci

Les comprovacions tècniques (Row Counts, integritat de claus foranes) no són suficients. Calen plausibilitats de negoci: sumes sobre documents, partides obertes, estocs, cadenes d’estat. Aquestes comprovacions haurien d’automatitzar-se, com a mínim com a informes/consultes repetibles.

A la pràctica, ha demostrat ser útil un „Migration-Runbook“: una llista de comprovació per a cada Cutover amb horaris, responsables, consultes de comprovació, criteris d’aturada i pla de retrocés.

Betrieb & Administration: Backup, Recovery, Monitoring com a part del projecte

Una reestructuració no només modifica taules, sinó també les rutines d’operació. Per això l’administració ha d’estar a la taula des d’un començament:

  • Estrategia de Backup/RESTore: còpia completa, incremental, Point-in-Time-Recovery. Les proves de RESTauració són més importants que la creació de còpies de seguretat.
  • Monitoring: mètriques de la base de dades (Locks, Slow Queries, CPU/IO), temps d’execució de jobs, taxes d’error a les interfícies. Sense una baseline no es pot mesurar què és „millor“.
  • Finestra de manteniment i manteniment d’índexs: Rebuild/REINDEX, actualitzacions d’estadístiques, Vacuum/Autovacuum (en PostgreSQL). Això ha d’ajustar-se al volum de dades.
  • Model de drets i rols: separació entre App-User, Service-Accounts, Admin. No hi ha d’haver comptes amb poder absolut en les aplicacions.

Especialment si veniu d’un entorn històricament „relaxat“, el concepte de drets sovint és un moment d’«aha»: moltes aplicacions funcionen amb permisos massa amplis perquè abans era pragmàtic. En la reestructuració és l’oportunitat per ordenar-ho correctament.

Tenir en compte les interfícies: la base de dades rarament és l’únic sistema

En software empresarial creixent, les interfícies són sovint la part subestimada. Una reestructuració de la base de dades canvia implícitament els contractes de dades: IDs, tipus de dades, lògica d’estat, moments de comptabilització.

Si un portal de clients, un DMS o un ERP consumeix dades, s’ha de tenir clar si accedeix directament a la base de dades (a evitar) o bé a través d’interfícies definides (API, fitxers, ETL). API vol dir „Application Programming Interface“, i en l’operació és rellevant com un contracte estable: entrades, sortides, casos d’error, versionat.

Per a entorns Delphi sovint té sentit fer un pas cap a una capa de servei: no perquè „Microservices“ sonin moderns, sinó perquè centralitza els accessos a dades i la validació. Això redueix la superfície d’atac en futures modificacions de dades.

Un context d’enllaç intern útil seria, per exemple, un article sobre la construcció d’integracions i fluxos de dades robustos, o sobre la modernització Delphi sense pèrdua de la lògica de negoci – ambdós responen a la mateixa intenció de cerca.

Qualitat de dades i neteja: la part més difícil sovint són les dades històriques

Molts sistemes funcionen tot i que les dades no siguin netes: registres mestres duplicats, referències no vàlides, „comptes de recopilació“, textos lliures en lloc de codis. Un nou esquema fa visibles aquests problemes — i això és bo, sempre que ho tingueu previst.

Procediment provat

  • Perfilat abans de la migració: Quins valors són realment presents? Quins camps estan buits a la pràctica? On hi ha valors atípics?
  • Definir regles: Què estarà permès en el futur? Què es corregirà automàticament? Què caldrà netejar manualment?
  • Concepte d’arxiu: No tot ha de romandre a la base de dades operativa. Les dades històriques es poden traslladar a estructures separades, sempre que les consultes i les auditories continuïn funcionant.

Important: La neteja de dades és un procés funcional. L’equip d’IT pot implementar les regles tècnicament, però la decisió sobre quines correccions estan permeses ha de ser presa pels responsables funcionals.

Rendiment després de la reestructuració: no només més ràpid, sinó més previsible

Un objectiu freqüent és „millorar el rendiment“. A la pràctica, la „previsibilitat“ és encara més important: temps d’execució estables, sense pics sobtats, sense deadlocks en els tancaments mensuals.

Mesures tècniques que es demostren efectives:

  • Transaccions curtes: Les accions de la interfície d’usuari no han de mantenir transaccions que durin minuts, especialment en entorns multiusuari.
  • Índexs enfocats: Basats en consultes reals, amb monitoratge després del desplegament.
  • Separació operativa vs. reporting: La càrrega de reporting pot afectar els processos operatius. Read-Replicas, trajectes ETL o taules de reporting separades són contramedides típiques.
  • Jobs batch planificables: Tasques amb temps d’execució definits, logging, reintents i alertes.

Una reestructuració té èxit quan no només algunes consultes són més ràpides, sinó quan l’operació produeix menys „sorpreses“.

Pla de riscos i Rollback: la sortida d’emergència s’ha de construir abans d’iniciar

El rollback no és un signe de pessimisme, sinó de gestió de riscos professional. Un pla sòlid respon a:

  • Quan s’atura? Criteris clars d’abort (p. ex., fallada en comprovacions de validació, temps d’execució que supera el llindar).
  • A què es torna? Snapshot/Backup de la base de dades antiga, versió definida de l’aplicació, estat de configuració.
  • Com es comunica? Qui informa el departament funcional, qui pren les decisions, qui documenta?

Especialment en funcionament paral·lel o migració gradual, el rollback sovint és més aviat un „rollforward“: es corregeix i es continua migrant. Això també necessita un pla, perquè un incident no es converteixi en un problema persistent.

Organització del projecte: rols, responsabilitats, punts de decisió

Una reestructuració de base de dades té èxit quan les responsabilitats estan clares:

  • Lideratge tècnic (arquitectura): Visió objectiu, directrius, revisió de migracions.
  • DBA/Administració: Concepte d’operació, Backup/Recovery, monitoratge, línia base de rendiment.
  • Responsabilitat funcional de dades: Regles per a la qualitat de dades, aprovació de la validació funcional.
  • Release-Management: Entorns de prova, Staging, Cutover-Runbook, comunicació de canvis.

S’han demostrat útils els „decision gates“: després de l’inventari, després de la migració prototip, després de proves de rendiment, abans del cutover. Així el projecte és controlable, fins i tot quan apareixen noves conclusions durant el procés.

Conclusió: Modernització amb disciplina en lloc de risc per acció precipitada

Una reestructuració de la base de dades en Delphi-programari consolidat és viable si la plantegeu com un projecte d’arquitectura i d’operació: amb una presa d’inventari neta, objectius clars, migracions versionades, validació sòlida i un concepte realista de cutover i rollback. El guany tècnic sovint és més gran que «només» un nou esquema: millor qualitat de les dades, interfícies més estables, operació controlable i una base sobre la qual els passos de modernització (p. ex., serveis, portals, nous clients) esdevenen clarament menys arriscats.

Si voleu preparar la reestructuració de manera estructurada — des de la BDE-substitució, passant per la transició a FireDAC i fins a la migració a PostgreSQL o SQL Server — consulteu amb nosaltres l’enfocament, els riscos i un recorregut de migració realista:

En l’àmbit tècnic, la Delphi modernització i la migració de dades també juguen un paper important quan cal que integracions, fluxos de dades i desenvolupament posterior funcionin de manera coordinada.

Parlar sobre un projecte o iniciativa de modernització amb Net-Base.

Pas següent

Quan d'un tema se'ndevé un projecte real, s'han de considerar aviat i de manera conjunta l'arquitectura, els actius existents i l'operació.

No només donem suport en qüestions puntuals, sinó també quan, a partir de fragments de codi font, temes de sistemes heredats o idees de portal, ha de sorgir un projecte empresarial sòlid.

  • L'estat actual, la visió objectiu i els riscos tècnics s'avaluen conjuntament.
  • REST, accés a dades, portals i desplegament no es posposaran com a efectes retardats.
  • Veu aviat quin camí és viable des del punt de vista econòmic i operatiu.

Comparteix la publicació

Comparteix aquesta publicació directament

LinkedIn, X, XING, Facebook, WhatsApp i correu electrònic estan disponibles immediatament. Per Instagram preparem l'enllaç i un text curt immediatament.

Correu electrònic

Instagram s'obre en una pestanya nova. L'enllaç i el text curt es copien prèviament al porta-retalls.