Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kuidas tagada andmebaasioperatsiooni realiseerivas rutiinis, et operatsiooni järeltingimused saavutatakse vaid siis, kui kõik eeltingimused on täidetud?

Lepingprojekteerimise (design by contract) kohaselt kirjeldatakse tarkvaraelement kasutades eeltingimusi, järeltingimus...


Kuidas kustutada korraga mitu tabeliga seotud kitsendust?

See on hea näide, kuidas SQLi dialekt e mägimurrak erineb erinevates andmebaasisüsteemides detailide poolest. Järgnev katsetus tehti keskkondades DB Fi...


Milliseid soovitusi annavad teadusuuringut selles osas, kuidas suurte keelemudelite abil SQL koodi genereerida?

Chang ja Lussier (2023) katsetavad erinevaid võimalusi ja annavad soovitusi suurte keelemudelite promptimiseks ...


Millal võiks olla kasu baastabeli arvutatud veergudest?

Arvutatud veeru puhul arvutatakse väljas olev väärtus teiste samas reas olevate väärtuste puhul ja salvestatakse kettale.


Mul on sellised ja sellised tabelid ning ma pean nende põhjal lahendama sellise ja sellise andmete otsimise ülesande. Milline oleks selle ülesande kõige parema jõudlusega lahendus?

Tuleb korraldada eksperiment ja erinevaid lahendusi katsetada. Kui Teil pole käepärast serverit, kus saate "liivakastis" mängida, siis isegi keskkonnas nagu DB Fiddle


Miks mitte kasutada klassifikaatori tabeli, välisvõtme veeru ja sellel oleva välisvõtme kitsenduse asemel loendustüüpi veergu?

Sest see: vähendab lahenduse porditavust e ülekantavust, vähendab lahenduse paindlikkust,  suurendab keerukust, suurendab PostgreSQL näitel salvestusruumi kasutamist. Kirjutan järgnevalt se...


Kas Oracles saab defineerida vaadetele kitsendusi?

Jah saab. Esiteks saab vaadetele lisada WITH CHECK OPTION (andmemuudatus vaate kaudu peab rahuldama vaate alampäringu tingimusi) ja WITH READ ONLY (vaade on ainult lugemiseks, st kirjutuskaitsega) kitsendused. Neid kitsendusi jõustatakse ...


Kas olemasolevates "päriselu" SQL-andmebaasides jõustatakse välisvõtme kitsendusi?

Mitte nii palju kui peaks.B. Karwini SQL-andmebaasi disaini antimustrite raamatu peatükis 5 (Keyle...


Mille põhjal otsustada, kas kitsendus tuleks defineerida `DEFERRABLE` omadusega? Miks mitte määrata kõikide kitsenduste puhul `DEFERRABLE INITIALLY DEFERRED`?

DEFERRABLE INITIALLY DEFERRED kitsenduse definitsioonis tähendaks seda, et kitsenduse kontroll lükkub transaktsiooni lõppu - transaktsioon võib sisaldada mitut andmemuudatust, transaktsiooni käigus võivad muudatused olla kitsendusega vastuolus, kuid ...


Tooge palun mõni andmebaasisüsteemi poolt tehtava semantilise teisenduse näide?!

Andmebaasisüsteemi poolne päringu lihtsustamine tähendab, et andmebaasisüsteem asendab kasutaja poolt ette antud päringu lihtsama, kuid alati samasuguse tulemuse andva päringuga (loogiliselt samaväärse päringuga) ja täidab selle uue päringu. Lihtsama...