Kas PostgreSQL andmebaasi tabelile EXCLUDE kitsenduse lisamine võib muuta mõne selle tabeli UNIQUE kitsenduse üleliigseks? Oletame, et PostgreSQL andmebaasis on tabel: Tootaja_projektis_osalemine (tootaja_projektis_id, alg_aeg, lopp_aeg, projekt_id, tootaja_id, roll_kood) Primaarvõti (tootaja_projektis_id) kitsenduspiirangconstraintexclusionduplikaatdubleerimineindeksPostgreSQLkitsendusedEXCLUDEUNIQUEdubleerimineoptimeerimine 01.11.2025 10:19 | Erki Eessaar
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 ... OpenAIChatGPTLLMsuur keelemudeltehisintellektAITIpromptviipSQL genereerimine 01.11.2024 12:17 | Erki Eessaar
Milliseid täiendusi SQL standardisse tegi SQL:2023 ja millised nendest võimalustest on ka PostgreSQL'is (kuni versioonini 16) olemas? 2023. aastal tuli peale pikka ootamist välja SQL standardi uus versioon - SQL:2023. Eelmine versioon oli SQL:2016 - nimes on viide aastale. SQL:2023PostgreSQL 16SQL standardJSONANY_VALUEliteraaliduued võimalused 22.09.2023 12: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
Kuidas jõustada PostgreSQLis kitsendus, et kui üks ja sama töötaja omab ühte ja sama rolli mitu korda, siis ei tohi rolli omamise ajaperioodid kattuda? Tuleb luua EXCLUDE kitsendus. EXCLUDE kitsendus on unikaalsuse kitsenduse edasiarendus, mille puhul saab väärtuste unikaalsuse e kordumatuse kontrollimiseks kasutada ka mõnda muud operaatorit kui võrdsuse kontrolli operaator (=), mida kasutab UNIQUE ... PostgreSQLEXCLUDE kitsendusajaperioodidkattuvusandmete terviklikkuskitsendusedajalised andmed 05.06.2022 20:40 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et kui üks ja sama töötaja omab ühte ja sama rolli mitu korda, siis ei tohi rolli omamise ajaperioodid kattuda? Saan jõustada nõrgema kitsenduse, mille kohaselt andmete registreerimise hetke seisuga ei tohi ühel ja samal töötajal olla ühe ja sama rolli kohta rohkem kui üks kehtiv rolli omamine. Kehtiv rolli omamine on selline, mille puhul hetke aeg jääb rolli ... valideerimisreegelcheckvalidation rulePostgreSQLMS Accesskattuvad perioodidajalised andmedalampäring 05.06.2022 20:17 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et mittelõpetatud tubade nimetused peavad olema unikaalsed? Kui andmebaasis defineerida tabelis Tuba unikaalsuse kitsendus UNIQUE (nimetus), siis on nimetus globaalselt unikaalne. Seega, kui tuba on lõpetatud, siis uuesti sama nimetusega tuba registreerida ei saa. Järelikult selline UNIQUE kitsendus ... PostgreSQLMS AccessCHECKalampäringosaline unikaalsusunikaalsus 05.06.2022 12:58 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et meiliaadress on isiku tõstutundetu unikaalne identifikaator? Tõstutundetu unikaalsus tähendab näiteks, et kui süsteemis on registreeritud isiku meiliaadress Mati@mets.ee, siis mõnele teisele isikule meiliaadressi mati@mets.ee registreerida ei saa.Tõstutundetu unikaalsuse jaoks MS Accessis piisab ku... PostgreSQLOracleMS Accesstõstutundetusunikaalsusemailindeks 01.06.2022 00:00 | Erki Eessaar
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 ... DEFERRABLEkitsendusedtransaktsioonidandmete laadiminejõudlusPostgreSQLOracle 01.06.2022 00:00 | Erki Eessaar