Mida kujutavad endast aegridade andmebaasisüsteemid? Maailmas tehakse aina enam mõõtmisi ja tekib finantsandmeid ning nende tulemusi salvestatakse aegridadena (time-series). Viimastel aastatel on turule tulnud hulgaliselt aegreadtime-seriesaegridade andmebaasisüsteemidPostgreSQLSaaty meetod 21.03.2026 20:07:19 | Erki Eessaar
Mis vahe on GENERATED ALWAYS AS IDENTIY ja GENERATED BY DEFAULT AS IDENTITY ja kumba nendest kasutada? Neid kasutatakse surrogaatvõtmete realiseerimiseks. Need võimaldavad tabeli veeru korral määrata, et tegemist on identiteedi veeruga. Selle määramise tulemusel loob andmebaasisüsteem automaatselt sisemise arvujada generaatori ja seob veeruga. Kui kas... PostgreSQLidentiteedi veergsurrogaatvõtiarvujada generaatorserial 26.12.2025 14:16:10 | Erki Eessaar
Kuidas vältida konkurentsiprobleeme teise tabeli andmete kontrollimisel? Kui andmebaasioperatsiooni lepingus on näiteks kirjas eeltingimus, et uus kauba seisund peab olema aktiivne, siis selle eeltingimuse täidetust saab kontrollida operatsiooni käigus. Eelistada tuleks EXISTS alampäringut, kus on määratud FO... PostgreSQLOraclelukustaminejagatud lukkeksklusiivne lukkFOR UPDATEFOR SHAREpgbench 09.12.2025 19:24:00 | Erki Eessaar
Kumb on parem - kas trigeri käivitamise piiramine WHEN klausli abil või IF lausete kasutamine trigeri funktsioonis? Kõigepealt käsitlen jõudluse aspekti. PostgreSQL 18 (ja ka varasemate versioonide) puhul on teooria selline: WHEN klausel: Kontroll toimub enne trigeri protseduuri (funktsiooni) väljakutsumist. Kui tingimus on v... PostgreSQLtrigerWHEN klauselIF lausePL/pgSQLpgbenchjõudlushallatavusGemini 01.12.2025 14:44:40 | Erki Eessaar
Kui kontseptuaalses andmemudelis on üldistusseosed, siis kas neid võiks PostgreSQL andmebaasis realiseerida kasutades tabelite pärimist? See pole soovitav pärimise kaudu tabelite loomise tehniliste piirangute tõttu. Vaatame näidet. Iga isik on mingis täpselt ühes seisundis. Isik võib olla klient või töötaja. Võib olla isikuid, kes on nii klient kui ... PostgreSQLINHERITSpärimineüldistusseosedobjekt-relatsiooniline 22.11.2025 17:25:56 | Erki Eessaar
Kuidas SQLite korral realiseerida klassifikaatorite tabeleid, kus on kood ja nimetus? Koodi peaks sisestama inimkasutaja, mitte genereerima süsteem. Katsetasin seda koodi DB Fiddle keskkonnas. CREATE TABLE Tellimuse_seisundi_liik (tellimuse_seisundi_liik_kood INTEGER NOT NULL,... primaarvõtiesmasvõtiarvujada generaatorsurrogaatvõtiSQLiteklassifikaatorautomaatne väärtuskood 03.05.2025 11:26:47 | Erki Eessaar
Süsteemi genereeritud võtmeväärtustena saab kasutada nii täisarve kui universaalselt unikaalseid identifikaatoreid (uuid). Millised on kummagi lähenemise eelised ja puudused? Süsteemi genereeritud võtmeväärtustena võib kasutada täisarve. PostgreSQLis saab selleks kasutada SMALLSERIAL/SERIAL/BIGSERIAL notatsiooni või määrata, et vastav veerg on identiteedi veerg. Genereeritud väärtus on täisarv, mis on kas 2 baiti (SMALLSE... PostgreSQLUUIDprimaarvõtijõudlussalvestusruumtäisarvudvõtmed 03.10.2024 10:33:58 | Erki Eessaar
Kuidas kasutada õigesti TOP (MS Access) ja FETCH FIRST n ROWS WITH TIES (PostgreSQL) predikaate väärtuste jadas kohal x olevate väärtuste leidmiseks? TOP n - saab kasutada MS Accessis (samaväärset TOP ... WITH TIES saab kasutada MS SQL Serveris). SQL-standard ei kirjelda. LIMIT n - Saab kasutada nt PostgreSQLis (ja ka nt LibreOffice Ba... TOP nLIMITFETCH FIRSTWITH TIESjärjestaminepingereadalampäring 28.03.2024 11:30:59 | Erki Eessaar
Kuidas konkateneerida MS Accessis, PostgreSQLis ja LibreOffice Baseis tekstilisi väärtuseid, kui üks väärtus puudub (on NULL)? Oletame, et andmebaasis on tabel, kuhu on lisatud kaks rida andmeid. Ühel isikul perenimi puudub (on NULL).CREATE TABLE Isik(isik_id INTEGER,eesnimi VARCHAR(50) NOT NULL,perenimi VARCHAR(50), stringide liitminekonkatenatsioonNULL väärtusCoalesceMS AccessPostgreSQLConcat 23.03.2024 16:53:47 | Erki Eessaar
Kas tühja stringi esinemise keelamine ja NOT NULL kitsendus on üks ja sama asi? Ei ole! Tühi string on väärtus (kuigi väga lühike).NULL on tähis, et väärtust ei ole.NOT NULL veergu saab seega tühja stringi panna, sest see täidab tingimuse, et väljas peab väärtus olema.Kui näiteks s... tühi stringNULLNOT NULLCHECK kitsendusOracle erinevusedandmekvaliteetpuuduvad väärtused 03.03.2024 12:21:36 | Erki Eessaar