Refacció de Base de Dades

De Viquipèdia
Dreceres ràpides: navegació, cerca

La refacció d'una base de dades és un canvi a un esquema de base de dades que millora el seu disseny, alhora que es manté el seu comportament i d'informació semàntica. A la refaccció de base de dades és conceptualment més difícil que una refacció de codi: a la refacció de codi només és necessari mantenir el comportament semàntic mentre que a la refacció de base de dades també han de mantenir la semàntica d'informació.

El procés de refacció de base de dades és l'acte d'aplicar refacció a una base de dades per evolucionar un esquema de base de dades existent( la refacció de base de dades és una pràctica fonamental del disseny evolutiu de base de dades). Una Base de Dades es refacciona per alguna de les dues raons següents: per desenvolupar l'esquema d'una manera evolutiva en paral·lel amb el disseny evolutiu de la resta del vostre sistema o per solucionar problemes de disseny en un esquema de base de dades existent.

La refacció de base de dades no canvia la forma en què les dades s'interpreta o s'utilitza i no corregeix errors o afegeix noves funcionalitats. Cada refacció per a una base de dades deixa el sistema en un estat de treball, de manera que no provoca retards de manteniment, sempre hi ha les dades significatives en l'entorn de producció.

Un exemple de refacció de base de dades seria dividir una taula d'agregació en dues taules diferents en el procés de normalització de bases de dades.

Procés[modifica | modifica el codi]

La refacció d'una base de dades és una mica més complexa que la refacció de codi. La refacció d'una base de dades requereix tres passos:

  1. Modificar l'esquema de base de dades.
  2. Migrar les dades i
  3. Modificar el codi d'accés a la base de dades.

Algunes modificacions - com afegir una columna - poden no necessitar la modificació del codi d'accés a la base de dades; simplement, la nova columna no s'utilitza. Altres canvis, però, poden ser molt destructius (com per exemple, segregar una taula en dues taules).

En el cas de canvis complicat, és important que tothom estigui informat del canvi i que el canvi es faci en un moment segur (per exemple, a l'inici d'una iteració).

Automatitzar les refaccions[modifica | modifica el codi]

En el món del codi hi ha eines per automatitzar moltes de les refaccions identificades. Aquesta automatització és essencial per a les bases de dades, almenys en les àrees dels canvis d'esquema i la migració de dades.

Com a resultat cada refacció de base de dades s'automatitzat en la forma d'DDL de SQL (per al canvi d'esquema) i d'un LMD (per a la migració de dades). Aquests canvis no es fan mai manualment, sinó que s'apliquen a la principal mitjançant l'execució d'una petita seqüència de comandaments (o script) SQL que realitza els canvis.

Un cop fet això, guardem els scripts per produir un canvi complert de registre (log) de totes les alteracions realitzades a la base de dades com a resultat de la refacció. A continuació, pot actualitzar-se qualsevol instància de base a l'última mestra executant el log de canvis de tots els canvis des copiem el mestre per produir la instància de base de dades anterior.

Aquesta capacitat de seqüenciar els canvis automàtics és una eina essencial tant per al procés d'integració contínua en el desenvolupament com per a la migració de bases de dades de producció a una nova versió.

A més de l'automatització dels canvis a futur, pot considerar l'automatització de canvis inversos per a cada refacció. Si es fa això poden tirar-se enrere els canvis a una base de dades de la mateixa manera automatitzada. És el mateix principi bàsic.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]