Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kuidas katsetada SQLis päringuid ilma, et mul oleks tabeleid, mille põhjal seda teha?

Kasutades lauses ühiseid tabeli avaldisi (common table expression) on võimalik päringu kontekstis koostada tabel, mille põhjal päringut täita.Näide: Oletame, et ma tahan teada, kas tingimus pikkus NOT IN (1...


Kas PostgreSQLis on andmebaasis andmemuudatuste tegemiseks jõudluse (töökiiruse poolest paremad) SQL keelsed või PL/pgSQL keelsed funktsioonid?

Katsetuste järgi on PL/pgSQL keelsete funktsioonide jõudlus parem.Lõin katsetamiseks andmebaasi proc ja genereerisin sinna testandmed. Ühes tabelis oli üks miljon rida ja veel ühes viis miljonit rida. Seejärel lõin kaks funktsioo...


Mis on programm pgbench ja kuidas seda kasutada PostgreSQLis toimuvate andmebaasioperatsioonide jõudluse uurimiseks?

Tegemist on utiliidiga (kindla ülesandega programmiga), mis installeeritakse serverisse koos PostgreSQLi andmebaasisüsteemiga. Seda saab kasutada selleks, et hinnata erinevate disainivalikute või keskkonna juhtparameetrite mõju andmebaasioperatsiooni...


Kuidas eemaldada SQL lauses stingi e sõne ümbert sulud, kui string peaks olema sulgudes?

Andmebaasisüsteemid PostgreSQL ja Oracle pakuvad funktsiooni regexp_replace, mis võimaldab asendada stringis alamstringi, kasutades sealjuures regulaaravaldisi. Lause katsetamiseks saab kasutada


Kas CHECK kitsendustes saab kasutada mittedeterministlikke funktsioone?

Deterministlik funktsioon tagastab samade argumentidega  (sisendandmetega) alati samasuguse väärtuse. Mittedeterministlik funktsioon võib tagastada samade argumentidega erinevatel ajahetkedel erineva tulemuse. Mittedeterministlikud funktsioonid on nä...


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


Kuidas arvutada SQLis protsenti nii, et ei peaks sama tabelit mitmekordselt lugema?

PostgreSQLis on andmebaas järgmise kontseptuaalse struktuuriga.[Facility_type]-1-------0..*-[Facility]-1---------------0..*-[Health_care_visit]Tabelis Facility_type on 5 rida.Tabelis Facility on 5_000 r...


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


Kuidas oleks PostgreSQLis töökiiruse mõttes kõige efektiivsem leida andmed ühest tabelist ja väljastada tulemuses ka tõeväärtus, mis leitakse teises tabelis olevate andmete põhjal?

Järgnev katsetus on tehtud PostgreSQL (16) põhjal.Andmebaasis on tabelid järgmise kontseptuaalse struktuuriga:[Person]-1----------0..*-[Health_care_visit]Tabelis Person on 70_000 rida.Tabelis Hea...


Kuidas kasutada PostgreSQLi küsitlustulemuste analüüsimiseks sh vabatekstiliste vastuste analüüsimiseks?

Moraal on selles, et vaba teksti väljas olevate väärtuste analüüsimine nõuab rohkem tööd ning kui andmebaasis oleks vaja registreerida andmeid millegi kohta, et nende andmete alusel saaks hiljem teha otsinguid, siis vabateksti asemel tuleks eelistada...