Databasrefaktorering

Databasrefaktorering är en  enkel förändring i databasschemat som förbättrar dess design samtidigt som funktionell och informativ semantik bibehålls [ 1] . Med andra ord, effekten av databasrefaktorering kan inte vara att lägga till ny funktionalitet eller begränsa befintliga, inte heller att lägga till nya data eller ändra innebörden av befintliga.

Kategorier

S. Ambler och P. Sadalaj [1] identifierar följande kategorier av relationsdatabasrefaktorering :

Ändringar i strukturen för tabeller eller vyer .

Metoder: införande av en beräknad kolumn; införande av en surrogatnyckel ; ersätta LOB-typdata med en tabell; ersätta en en-till-många-relation med en associationstabell; kolonnbyte; ersätta en surrogatnyckel med en naturlig nyckel; byta namn på en vy; byta namn på en kolumn; byta namn på en tabell; flytta en kolumn; dela en kolumn; bordsdelning; kolumnsammanslagning; sammanslagningstabeller; radera en vy; ta bort en kolumn; ta bort en tabell.

Förändringar som syftar till att förbättra kvaliteten på information som lagras i databasen.

Metoder: Ange ett standardvärde; införande av ett gemensamt format; införa en kolumnbegränsning; lägga till en uppslagstabell; ersätta typkoden med egenskapsflaggor; genomförande av strategin för konsoliderade nycklar; datarörelse; konvertera en kolumn till ett icke-nullbart värde; tillämpning av standardtypen; användning av standardkoder; förstöra standardvärdet; förstöra en kolumnrestriktion; förstöra en icke-nullbar kolumn.

Ändringar som syftar till att upprätthålla referensintegritet i databasen.

Metoder: införande av kaskadborttagning; introduktion av borttagning av programvara; införande av en trigger för ackumulering av historiska data; införande av fysiskt avlägsnande; lägga till en främmande nyckel-begränsning; lägga till en trigger för en beräknad kolumn; förstöra den främmande nyckel-begränsningen .

Ändringar som syftar till att förbättra interaktionen mellan externa program och databasen.

Metoder: introduktion av beräkningsmetoden; index introduktion ; införa en skrivskyddad tabell; lägga till ett spegelbord; lägga till en läsmetod; lägga till CRUD- metoder ; ersätta en metod(er) med sikte; ersätta en vy med en metod(er); inkapsling av en tabell i en vy; användning av en officiellt definierad datakälla; överföring av metoden till databasen; flytta metoden från databasen.

Kodrefaktortekniker som är tillämpliga på triggers och lagrade procedurer .

När ska refaktoriseras

Några vanliga databasbrister lyfts fram, vars närvaro kan signalera behovet av omfaktorisering [1] .

Övergångsperiod

Refaktoreringsövergångsperioden är den tidsperiod under vilken både den ursprungliga versionen av databasschemat och den nya versionen bibehålls. Dess introduktion är nödvändig för att ge utvecklare tid att göra nödvändiga ändringar i applikationer som fungerar med databasen.

Exempel

Ett exempel på databasrefaktorering är operationen att byta namn på en kolumn i en befintlig tabell.

Medarbetartabellen, som lagrar data om företagets anställda, innehåller kolumnen zarplata som vi beslutat att döpa om till lön för att säkerställa enhetlig namngivning av objekt i databasen, d.v.s. använd endast engelska ord som namn. För att göra detta måste du göra följande: lägg till en lönekolumn i tabellen och kopiera data från zarplata-kolumnen till den, introducera en utlösare som kommer att synkronisera data mellan de två kolumnerna under övergångsperioden, och efter denna period, ta bort triggern och den ursprungliga kolumnen.

Anteckningar

  1. 1 2 3 Scott W. Ambler, Pramodkumar J. Sadalaj Refactoring databaser: Evolutionär databasdesign (Addison-Wesley Signature Series). - M .: "Williams", 2007. - S. 368. - ISBN 978-5-8459-1157-5

Se även