Database refactoring er en simpel ændring i databaseskemaet, der forbedrer dets design og samtidig opretholder funktionel og informativ semantik [1] . Med andre ord kan effekten af databaserefaktorering ikke være at tilføje ny funktionalitet eller begrænse eksisterende, ej heller at tilføje nye data eller ændre betydningen af eksisterende.
S. Ambler og P. Sadalaj [1] identificerer følgende kategorier af relationel database refactoring :
Metoder: introduktion af en beregnet kolonne; indførelse af en surrogatnøgle ; udskiftning af data af LOB-type med en tabel; udskiftning af et en-til-mange forhold med et associeringsbord; kolonne udskiftning; udskiftning af en surrogatnøgle med en naturlig nøgle; omdøbning af en visning; omdøbning af en kolonne; omdøbning af en tabel; flytte en kolonne; opdeling af en kolonne; bordopdeling; kolonnesammenlægning; sammenlægningstabeller; sletning af en visning; sletning af en kolonne; sletning af en tabel.
Metoder: Indtastning af en standardværdi; indførelse af et fælles format; indførelse af en kolonnebegrænsning; tilføjelse af en opslagstabel; udskiftning af typekoden med ejendomsflag; implementering af strategien for konsoliderede nøgler; databevægelse; konvertering af en kolonne til en værdi, der ikke kan nulstilles; anvendelse af standardtypen; brug af standardkoder; ødelægge standardværdien; ødelægge en kolonnebegrænsning; ødelægge en kolonne, der ikke kan nulstilles.
Metoder: indførelse af kaskadefjernelse; introduktion af fjernelse af software; indførelse af en trigger til akkumulering af historiske data; indførelse af fysisk fjernelse; tilføjelse af en fremmednøglebegrænsning; tilføjelse af en trigger for en beregnet kolonne; ødelægge den fremmede nøgle begrænsning .
Metoder: introduktion af beregningsmetoden; indeks introduktion ; introduktion af en skrivebeskyttet tabel; tilføje et spejlbord; tilføjelse af en læsemetode; tilføjelse af CRUD- metoder ; erstatte en metode(r) med udsigt; erstatte en visning med en metode(r); indkapsling af et bord i en visning; brug af en officielt defineret datakilde; overførsel af metoden til databasen; flytning af metoden fra databasen.
Nogle almindelige databasemangler fremhæves, hvis tilstedeværelse kan signalere behovet for refaktorisering [1] .
Refaktoreringsovergangsperioden er den periode, hvor både den originale version af databaseskemaet og den nye version understøttes. Dens introduktion er nødvendig for at give udviklere tid til at foretage de nødvendige ændringer til applikationer, der arbejder med databasen.
Et eksempel på databaserefactoring er operationen med at omdøbe en kolonne i en eksisterende tabel.
Medarbejdertabellen, som gemmer data om virksomhedens medarbejdere, indeholder kolonnen zarplata, som vi besluttede at omdøbe til løn for at sikre ensartet navngivning af objekter i databasen, dvs. brug kun engelske ord som navne. For at gøre dette skal du gøre følgende: tilføje en lønkolonne til tabellen og kopiere dataene fra zarplata-kolonnen ind i den, indføre en trigger, der vil synkronisere data mellem de to kolonner i overgangsperioden, og efter denne periode, slet triggeren og den oprindelige kolonne.