Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kuidas jõustada PostgreSQL andmebaasis kitsendus, et tabeli veerus hoitakse rahasummat eurodes?

Kitsendust eurode kohta ei saa ega pea andmebaasi lisama! Oletame, et andmebaasis on tabel:Amet (amet_kood, nimetus, min_palk)Primaarvõti (amet_kood)Alternatiivvõti(nimetus)Veerus min_palk on ametikohal ma...


Kas SQL-andmebaasis saab jõustada deklaratiivsete kitsendustena assotisatsioonireegleid?

Jah saab. Vaatame konkreetset näidet. Oletame, et SQL-andmebaasis on tabel Kaup:Kaup(kauba_kood, hind, on_aktiivne)Primaarvõti(kauba_kood)Oletame, et kehtib reegel: Kui kaup on aktiivne, siis selle h...


Kuidas saaks katsetada Oracle andmebaasisüsteemi uuemaid võimalusi, mida ülikooli serveris olev andmebaasisüsteemi versioon ei paku?

Oracle pakub katsetamiseks Oracle 23ai põlvkonna andmebaasisüsteemi - Oracle 23ai Free. Selle saab tööle panna Dockeri konteineris, kuid veel lihtsam on ...


Igal isikul on null või rohkem meiliaadressi. Võib juhtuda, et mitu isikut jagavad ühte ja sama meiliaadressi. Kas selliste andmete hoidmiseks peaks tegema kokku kolm tabelit: meiliaadresside tabeli, isikute tabeli ja meiliaadresside ja isikute vahelist M:N seost esitava vahetabeli?

Ma arvan, et ei peaks.Kui andmebaasis oleksid tabelid:Isik (isik_id, ...)Primaarvõti (isik_id)E_meil (e_meil_id, e_meil)Primaarvõti (e_meil_id)Alternatiivvõti (e_meil)Isiku_meiliaadres...


Kui tabelis Riik on (nimetus) alternatiivvõti, siis miks ei piisa selle jõustamiseks UNIQUE kitsendusest? Miks on vaja veerule nimetus ka NOT NULL kitsendust?

Hästi kavandatud tabelis peaks olema üks või rohkem kandidaatvõtit. Kandidaatvõtme väärtus + kandidaatvõtme veergude nimed + tabeli nimi on loogiline aadress, mille järgi andmebaasist tabeli rida üles leida. Kui aadressi pole või see on väärtuste puu...


Miks ei ole hea mõte kasutada kõikides tabelites surrogaatvõtit?

Surrogaatvõti on lihtvõti, mille väärtused on süsteemi genereeritud unikaalsed täisarvud. Need väärtused on kasutusel tarkvara siseselt ridade identifitseerimiseks, kuid andmebaasi kasutavatele inimestele ei tähenda need väärtused mi...


Miks on halb mõte kasutada erinevates tabelites ühesuguse nimega (id, kood või code) primaarvõtme veergu?

See muudab keerulisemaks tabelites olevatest andmetest arusaamise ja tabelite põhjal päringute tegemise.Sellise nimega primaarvõtme veerud on üks sümptom, mis viitab sellele, et andmebaasi disainis esineb


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


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


Mis erinevus on primaarvõtme ja kandidaatvõtme vahel?

See on nagu organisatsioonile juhi valimised. Oletame, et on kolm kandidaati. Üks valitakse peadirektoriks. Tema saab ametiauto ja eraldi kabineti. Ülejäänud kaks ei saa peadirektoriks, kuid saavad asedirektori tiitli ning samuti ametiauto ja eraldi ...