Tietokannat ovat kriittinen osa toiminallista IT-järjestelmää. Ne pitävät sisällään suuria määrää dataa, jota voidaan käyttää järjestelmän monissa operaatioissa tai vaikka tuoda esille loppukäyttäjän tarkasteltavaksi. Tietokannat voivat kehityksen aikana paisua massiivisiin kokoluokkiin. Sen takia on hyvä päättää hyvissä ajoin ennen kehityksen aloittamista, millä tavalla tietokannan implementointi toteutetaan. Syytä olisi ottaa huomioon kannan lisäksi sen ympärillä oleva järjestelmä.
Yleensä järjestelmään sisältyy tietokannan lisäksi rajapintasovellus, joka kommunikoi muiden sovelluksien ja kannan välillä, sekä käyttöliittymä. Monesti toteutuskuvio alkaa tietokannan luomisella, jonka jälkeen kannan ympärille luodaan muu järjestelmä. Tällaista toteutusmallia kutsutaan Database First-malliksi. Tämä toimintamalli näyttää hyvältä ja toimivalta paperilla, mutta toisinaan mallin heikkouden nousevat esille ylläpitovaiheessa.
Oletetaan että käyttäjälle halutaan näyttää uusi tieto sovelluksessa X. Tällöin tieto on lisättävä tauluun Y. Tieto tulee ensin lisätä kantaan, jonka jälkeen se täytyy lisätä rajapintasovellukseen. Tämän lisäksi rajapintasovelluksesta pitää käydä läpi kaikki tilanteet, jossa kyseistä taulua käytetään, sekä varmistaa että tieto liikkuu yhä toimivasti, ja että kyseisen tietotyypin rajoitteet eivät hajota toiminnallisuuksia. Jokainen muutos vaatii saman operaation ja pientenkin muutosten läpikäynti voi viedä runsaasti aikaa.
Vaihtoehtona Database First-lähestymistavalle on Code First-malli. Kuten nimi implikoi, kyseinen malli kääntää prosessin toisin päin. Tietokannan luontiin käytetään EF6-järjestelmäkehystä, jolla tietokanta voidaan määritellä esimerkiksi rajapintasovelluksen koodiin. Koodin pohjalta luodaan migraatio, joka ohjelmaa ajettaessa luo määritetylle kantapalvelimelle tietokannan tauluineen määritysten mukaisesti. Tämän jälkeen kaikki muutokset voidaan ajaa migraatioilla kantaan ohjelman kautta, eikä itse kantaan tarvitse puuttua erikseen. Code First-migraatioilla voidaan huomattavasti vähentää muutosten vaatimaa työmäärää. Tällöin muutokset voidaan tehdä koodissa huomioiden muutosten vaikutukset.
Kirjoittaja Lauri Aho työskentelee T-Basella IT-konsulttina.
Kiinnostuitko? Voit lukea lisää juttujamme: https://www.t-base.fi/uutiset/ tai ottaa yhteyttä, niin jutellaan aiheesta: https://www.t-base.fi/ota-yhteytta/