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... andmebaasi disainM:N seos1:N seosnõrk olemitüüpliitvõtiandmete modelleeriminevälisvõti 23.02.2023 15:50 | Erki Eessaar
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... alternatiivvõtiUNIQUE kitsendusNOT NULL kitsenduskandidaatvõtiprimaarvõtiandmete terviklikkustabeli disain 23.02.2023 01:01 | Erki Eessaar
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... surrogaatvõtisisuline võtiprimaarvõtivälisvõtiandmebaasi disainpäringute kiirusindeksid 20.02.2023 17:41 | Erki Eessaar
Milline on tüüpiline viga LIMIT klausli kasutamisel? LIMIT klauslit ei saa kasutada MS Accessis, kuid saab kasutada mitmes teises SQL andmebaasisüsteemis. LIMIT n võimaldab päringu tulemusest väljastada esimesed n rida. SQL standard ei näe samuti ette LIMIT klauslit. Samas saab SQL standardi kohaselt k... LIMIT klauselTOP predikaatsorteerimineSQL veadMS AccessPostgreSQLWITH TIES 16.02.2023 15:58 | Erki Eessaar
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 primaarvõtiveergude nimetamineSQL antimustridandmebaasi disainloetavustabelite ühendamineSQL päringud 16.02.2023 15:43 | Erki Eessaar
Mille poolest erineb MS Accessi andmetüüp BIT (YESNO) SQL standardis ettenähtud andmetüübist BOOLEAN? MS Accessis on BIT tüüp selline, mille korral tehakse teisendus NULL=>FALSECREATE TABLE Toode (toode_kood INTEGER,on_aktiivne BIT DEFAULT TRUE,CONSTRAINT pk_toode PRIMARY KEY (toode_kood)); PostgreSQLMS AccessBITBOOLEANYESNOtõeväärtusNULL 16.02.2023 15:24 | Erki Eessaar
Milliseid materjale soovitate SQLi õppimisega alles alustanule, kes peab lähiajal töö- või praktikakoha saamise intervjuul vastama SQLi puudutavatele küsimustele? 46 tööintervjuu küsimust SQLi kohta andmeteadlasele. Sealt leiate ka viite tegelikele küsimustele ja õigetele vastustele. SQL õppiminetööintervjuuSQL veadprogrammeerimiskeeledõppematerjalidSQL populaarsus 16.02.2023 12:59 | Erki Eessaar