Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Loon PostgreSQLis uue andmebaasi, kuid selles on kellegi teise loodud tabelid, domeenid või muud andmebaasiobjektid? Miks see nii on ja mida teha?

PostgreSQLis luuakse uus andmebaas tehes koopia mallandmebaasist (template1). Üli...


Kui muuta PostgreSQL tabeli FILLFACTOR omaduse väärtust, siis kuidas see mõjutab olemasolevaid tabeli plokke?

FILLFACTOR parameetri väärtus määrab kui palju jäetakse tabeli plokkidesse vaba ruumi,...


Kuidas saab PostgreSQLis ühe lausega lisada tabelisse puuduvad read ja uuendada olemasolevaid ridu?

Sellist operatsiooni tuntakse ka nime all upsert (kombinatsioon INSERT ja UPDATE operatsiooniks).Selle realiseerimiseks saab PostgreSQLis kasutada INSERT ... ON CONFLICT lauset. Alates PostgreSQL 15 saab selleks kasutada ka


Kas NoSQL andmebaasisüsteemides ja uue põlvkonna SQL-andmebaasisüsteemides (NewSQL süsteemid) saab luua vaateid, hetktõmmiseid ja rutiine?

Vaadetest, hetktõmmistest ja rutiinidest saab moodustada andmebaasi avaliku liidese (virtuaalse andmete kihi), läbi mille kasutada andmebaasi. Andmebaasiserveris talletatud rutiinide kasutamisele tuuakse nii


Kuidas jõustada MS Accessis kitsendus, et tuba saab aktiivsesse seisundisse viia ainult siis, kui see tuba on seotud vähemalt ühe kategooriaga?

Eeldame, et seisund "Aktiivne" on koodiga 2. Tuleb luua CHECK kitsendus.ALTER TABLE TubaADD CONSTRAINT chk_tuba_aktiivne_peab_olema_kategooriaga CHECK (NOT EXISTS (SELECT *FROM Tuba...


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 ...


Töökiiruse tõstmiseks ei kirjuta andmebaasisüsteemid andmemuudatusi kohe kettale, küll aga kirjutavad kohe kettale andmemuudatuse kohta käiva logi. Kuidas see töökiirust tõstab? Logi kirjutamine on ju samuti kõvaketta poole pöördumine. Kirjeldasite, et bloki kettale salvestamisel kustutatakse see muutmälust ära. Seega proovid süsteem salvestamist edasi lükata, kuna blokki võib kohe järgmistes päringutes jälle vaja olla ning oleks hea, kui see oleks muutmälus olemas. Miks mitte blokki kettale kirjutada, kuid jätta see ka muutmällu alles?

Logi kirjutamine enne muudatusi sisalduvate plokkide (räpaste plokkide) kettale kirjutamist pakub paindlikust, sest andmebaasisüsteem saab nende plokkide kettale kirjutamist edasi lükata ja valida selleks selleks endale sobivaima aja. Meetodit, kus e...


Millal kasutada kontseptuaalses andmemudelis kompositsiooniseost (seose ühes otsas on täidetud romb e täidetud teemant)?

Kompositsioon tähistab osa-terviku seost, kus osad sõltuvad eksistentsiaalselt tervikust e terviku kadumine/hävimine tähendab ka osade kadumist/hävimist.Romb oleks selle olemitüübi poolel, millesse kuuluva olemi kustutamine tingib seotud olemit...


Miks kasutab PostgreSQL unikaalsuse kitsenduse jõustamiseks B+ puu (tasakaalustatud puu) indeksit, aga mitte hash (räsiväärtustel põhinevat) indeksit?

Võtmeveergudele loob PostgreSQL ja ka teised andmebaasisüsteemid automaatselt B+ puu (B+ tree) indeksi (


Mida kujundab endast elementaarvõtme normaalkuju (EVNK)?

Kui ma vaatan C.J Date ja J. Celko töid, siis nad mainivad seda normaalkuju lühidalt, ajaloolise tagasivaate ja esitluse täielikkuse huvides. C.J. Date osundab, et EVNK-le viidatakse kirjanduses vähe.EVNK on kolmanda normaalkuju (3N...