Asiakasportaalin tietokantasuunnittelu
Tulisalo, Joona (2024)
Tulisalo, Joona
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024112229446
https://urn.fi/URN:NBN:fi:amk-2024112229446
Tiivistelmä
Opinnäytetyössä suunniteltiin tietokantaa sanomavälittäjänä toimivan toimeksiantajan tulevaan asiakasportaaliin. Yritykset käyttävät sanomia sähköiseen kaupankäyntiin ja toimeksiantaja haluaa tarjota asiakasyritykselle mahdollisuuden tarkastella sanomien kulkua. Asiakasportaali toimisi myös työkaluna tukitiimin sisäiseen sanomavalvontaan. Tietokantasuunnittelussa haluttiin tutkia eri tietokantamallien hyödyntämismahdollisuuksia ja sopivuuksia asiakasportaalissa.
Tietokantasuunnittelun tavoitteena oli kerätä tarpeita ja vaatimuksia asiakasportaalin toimintaan. Kerätyt vaatimukset tulisi ottaa huomioon tietokannassa. Näiden perusteella luotiin käyttötapauksia ja mallinnettiin dataa luomalla datamalleja. Tietokantasuunnittelun pohjalta luotiin kaksi tietokantaprototyyppiä. Relaatiotietokantaprototyyppi luotiin MySQL:ään ja ei-relaatiotietokanta (NoSQL) luotiin Firestoreen. Tietoperustassa esiteltiin sekä tietokantojen perusteita että tietokantasuunnittelun perusteita. Näitä hyödynnettiin asiakasportaalin tietokantasuunnittelussa ja prototyyppitietokantojen luonnissa.
Prototyyppien tarkoituksena oli arvioida tietokantamallien sopivuuksia asiakasportaalin tietokannaksi. Prototyyppejä arvioitiin validoimalla tietokantasuunnittelussa luotuja käyttötapauksia. Prototyyppien validoinnin ja muiden todettujen tietokantamallien ominaisuuksien perusteella saatiin selville tietokantamallien sopivuudet. Prototyyppien arvioimisen perusteella relaatiotietokanta soveltui asiakasportaalin tietokannaksi. Tietokantasuunnittelussa esille tulleet käyttäjien hallinta ja relaatiot entiteettien välillä sopivat relaatiotietokannalle. NoSQL-tietokantaprototyyppi Firestoren perusteella voitiin todeta, että se ei sellaisenaan sovellu asiakasportaalin tietokannaksi, koska tietokantarakenteeseen vaaditaan liikaa relaatioita. Firestore ei tue liitosoperaatioiden käyttöä, jolloin tietokantakyselyjä täytyy ketjuttaa. Tämä voi aiheuttaa tarpeettoman määrän tietokantakyselyjä, joista seuraa tietokannan hidastelua ja lisäkustannuksia.
Tietokantamallien sopivuuksien perusteella voitiin todeta, että asiakasportaalin tietokantana voitaisiin käyttää hybridimallia, jossa relaatiotietokanta toimisi varsinaisena transaktiotietokantana ja NoSQL-tietokannassa säilöttäisiin sanomien sisältö. Tämä mahdollistaisi NoSQL-tietokannan valjastamisen sanomasisällön analytiikkaan ja tietojen hakuun. Kun taas relaatiotietokannassa voitaisiin käsitellä paremmin käyttäjien ja organisaatioiden rajoitteita sekä hallintaa.
Tietokantasuunnittelun tavoitteena oli kerätä tarpeita ja vaatimuksia asiakasportaalin toimintaan. Kerätyt vaatimukset tulisi ottaa huomioon tietokannassa. Näiden perusteella luotiin käyttötapauksia ja mallinnettiin dataa luomalla datamalleja. Tietokantasuunnittelun pohjalta luotiin kaksi tietokantaprototyyppiä. Relaatiotietokantaprototyyppi luotiin MySQL:ään ja ei-relaatiotietokanta (NoSQL) luotiin Firestoreen. Tietoperustassa esiteltiin sekä tietokantojen perusteita että tietokantasuunnittelun perusteita. Näitä hyödynnettiin asiakasportaalin tietokantasuunnittelussa ja prototyyppitietokantojen luonnissa.
Prototyyppien tarkoituksena oli arvioida tietokantamallien sopivuuksia asiakasportaalin tietokannaksi. Prototyyppejä arvioitiin validoimalla tietokantasuunnittelussa luotuja käyttötapauksia. Prototyyppien validoinnin ja muiden todettujen tietokantamallien ominaisuuksien perusteella saatiin selville tietokantamallien sopivuudet. Prototyyppien arvioimisen perusteella relaatiotietokanta soveltui asiakasportaalin tietokannaksi. Tietokantasuunnittelussa esille tulleet käyttäjien hallinta ja relaatiot entiteettien välillä sopivat relaatiotietokannalle. NoSQL-tietokantaprototyyppi Firestoren perusteella voitiin todeta, että se ei sellaisenaan sovellu asiakasportaalin tietokannaksi, koska tietokantarakenteeseen vaaditaan liikaa relaatioita. Firestore ei tue liitosoperaatioiden käyttöä, jolloin tietokantakyselyjä täytyy ketjuttaa. Tämä voi aiheuttaa tarpeettoman määrän tietokantakyselyjä, joista seuraa tietokannan hidastelua ja lisäkustannuksia.
Tietokantamallien sopivuuksien perusteella voitiin todeta, että asiakasportaalin tietokantana voitaisiin käyttää hybridimallia, jossa relaatiotietokanta toimisi varsinaisena transaktiotietokantana ja NoSQL-tietokannassa säilöttäisiin sanomien sisältö. Tämä mahdollistaisi NoSQL-tietokannan valjastamisen sanomasisällön analytiikkaan ja tietojen hakuun. Kun taas relaatiotietokannassa voitaisiin käsitellä paremmin käyttäjien ja organisaatioiden rajoitteita sekä hallintaa.