Kodulehed
[382] - Andmebaasid I (ITI0206) (kevad 2022)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / Andmebaasi kavandamise sisulised küsimused

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Erki Eessaar (14.09.2022 09:53):
Kas olemasolevate "päriselu" SQL-andmebaaside disaini kvaliteet on hea?
Vastus (12.10.2022 11:58): Selliseid andmebaase on loodud nii palju, et üldistavalt kõigi kohta midagi öelda on võimatu. Saan öelda, et andmebaasides, mida olen ise lähemalt uurinud, mida on uurinud minu juhendatavad üliõpilased või mida on uuritud avaldatud teadustöödes, leidub kahjuks palju probleeme.

Järgnevaga tahan ma öelda, et Te saate, võite ja isegi peate tegema paremini! Hästi kavandatud andmebaasi on palju lihtsam ja mugavam kasutada kui halvasti kavandatud andmebaasi. Hästi kavandatud andmebaasile on lihtsam ja mugavam luua andmebaasirakendust kui halvasti kavandatud andmebaasile.

Toon järgnevalt näiteid.

Bakalaureusetöös "Ettevõttesisese tarkvara täiendamine - kasutajaliidese ja andmebaasi kavandamine ning sobivuse hindamine" täiendati tuntud ettevõtte poolt enda tarbeks loodud tarkvara inimressursside planeerimise funktsionaalsusega. Töö üheks osaks oli olemasoleva andmebaasi dokumenteerimine (dokumentatsioon puudus) ja selle andmebaasi analüüsimine disainiprobleemide seisukohalt. Autorid leidsid 20 erinevat tüüpi probleemi (vt jaotis 4.2).

Bakalaureusetöös "E-poe andmete migreerimine PostgreSQL andmebaasist Microsoft SQL Serveri andmebaasi" kanti e-poe tarkvara asendamise raames e-poe andmed PostgreSQL andmebaasist Microsoft (MS) SQL Serveri andmebaasi. Lähteandmebaas oli osa valmislahendusest ehk karbitootest ja sihtandmebaas oli ettevõtte enda arendajate kätetöö. Töö ühe tulemusena analüüsiti sihtandmebaasis olevat nelja tabelit, kuhu andmesiirde tulemusel andmeid üle kantakse. Autor leidis sihtandmebaasi tabelite disainis 20 erinevat tüüpi probleemi (vt jaotis 5.1). Töös dokumenteeriti ka lähteandmebaasi (karbitoote) andmebaas. Igaüks võib ise seda uurida, kuid ka seal on palju andmebaasi disaini probleeme.

Bakalaureusetöös "Andmebaasi loogilise ja füüsilise disaini antimustrite esinemine mõnedes vaba tarkvara poolt kasutatavates SQL-andmebaasides" otsitakse andmebaasi disaini antimustrite esinemisi avatud lähtekoodiga rakenduste Postbooks (ettevõtte ressursside planeerimise süsteem; andmebaas tehtud PostgreSQLis) ja OpenEMR (arstipraksise haldustarkvara; andmebaas tehtud MySQLis) andmebaasidest. Autor leidis uuritud andmebaasides 12 erineva andmebaasi disaini antimustri esinemisi. Autor kirjutas: "Mõlema andmebaasi disain kannatab liigse denormaliseerimise, paralleelsete veergude, välisvõtmete ebapiisava deklareerimise ja klassifikaatorite tabelite puudumise tõttu.". Töös viidatakse M. Blaha 2001. aastal avaldatud uurimusele 35 päriselu andmebaasi disaini kvaliteedi kohta. Blaha leidis nendest andmebaasidest palju vigu nagu näiteks erinevat tüüpi kitsenduste puudumine. Lõputöö autor tõdeb: "Võib väita, et alates Blaha uurimuste avaldamisest on olukord mingil määral paranenud, aga mitte palju."

Bakalaureusetöös "EE Tele2 müügiandmete andmetabelite kvaliteedikontroll ja dokumenteerimine" kontrolliti ja parandati Tele2 olulise müügiprogrammi poolt kasutatud andmetabelites olevate andmete kvaliteeti. Andmekvaliteedi probleeme oli palju. Lk 20 toodi autori poolt välja ka mõned andmebaasi disaini probleeme (kokku viis erinevat tüüpi probleemi). Paljud autori viidatavad andmekvaliteedi probleemid osutavad sellele, et süsteemis on ebapiisavalt realiseeritud andmete reeglitele vastavuse kontroll, sh ilmselt on andmebaasides palju deklaratiivseid kitsendusi puudu. Samuti esineb liigset andmete dubleerimist (sama info erinevates veergudes) ja puudub klassifikaatorite tabeleid.

PostgreSQL andmebaaside disainivigade otsimise päringute abil tehtud uurimuste kohta kirjutatud teadusartiklites (Eessaar, 2021; Eessaar, 2022) on uuritud nelja pika arenduse ajalooga ja endiselt aktiivselt kasutuses oleva rakenduse PostgreSQL andmebaasi. Kolm nendest rakendustest on avatud lähtekoodiga. Need programmid on FusionForge (avatud lähtekoodiga arenduse haldamise tarkvara; andmebaasis 206 baastabelit), LedgerSMB (avatud lähtekoodiga ettevõtte ressursside planeerimise tarkvara; andmebaasis 162 baastabelit), OTRS Community Edition (avatud lähtekoodiga lahendamist vajavate probleemide haldamise tarkvara; andmebaasis 116 baastabelit) ja Stansoft (finantsarvestuse tarkvara; andmebaasis 174 baastabelit). Eessaar (2021) leidis nendest andmebaasidest kokku 36 erinevat tüüpi probleemi seoses deklaratiivsete kitsendustega. Eessaar (2022) leidis nendest andmebaasidest kokku veel 31 erinevat tüüpi probleemi seoses andmebaasi kontseptuaalse (loogilise) skeemiga. Paljudel nendel probleemidel on veel alamprobleeme e märke nende probleemide esinemisest.

Artiklis Documenting Database Usages and Schema Constraints in Database-Centric Applications analüüsisid autorid 3113 avatud lähtekoodiga andmebaasirakendust, mis suhtlevad andmebaasisüsteemiga JDBC draiveri vahendusel ja mille korral tuleb andmebaasi skeem luua SQL lausete käivitamise tulemusel, mitte ei looda skeemi automaatselt ORM vahendi poolt. Igal rakendusel oli üks või rohkem SQL faili. Autorid leidsid primaarvõtme deklaratsioone 5086 SQL failist. Primaarvõtmeid deklareeriti 725 rakenduse korral, mis on 23.29% kõigist vaadeldud rakendustest. Autorid leidsid välisvõtme deklaratsioone 2196 SQL failist. Välisvõtmeid deklareeriti 379 rakenduse korral, mis on 12.17% kõigist vaadeldud rakendustest. Mis lahendust autorid sellele probleemile pakkusid? Luua programm, mis analüüsib staatiliselt rakenduse lähtekoodi ja andmebaasi skeemi ning annab tulemuseks rakenduse lähtekoodi dokumentatsiooni selle kohta, millistes meetodites/operatsioonides jõustatakse milliseid piiranguid andmetele. Kui rakenduse lähtekood või andmebaasi skeem muutub, siis saab kohe genereerida parandatud dokumentatsiooni. Seotud tööde all viidatakse uuringutele, kuidas olemasolevas kitsendusteta andmebaasides olevate andmete analüüsimise kaudu leida tabelite kandidaatvõtmeid, välisvõtmeid ja muid piiranguid (assotsiatsioonireeglid - kui kehtib tingimus A, siis peab ka kehtima tingimus B).

Nimetatud töödest leiab viiteid veel erinevatele teadusartiklitele, milles on uuritud olemasolevate SQL-andmebaaside disaini. Kõik need uuringud on leidnud palju probleeme.

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!