Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

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


Üritan PgAdminis käivitada PostgreSQL andmebaasi vastu SQL skripti, mis sisaldab VACUUM lauseid ja saan veateate: "ERROR: VACUUM cannot run inside a transaction block". Mida teha?

Kui käivitate PgAdminis Query Tool akna kaudu skripti, kus on rohkem kui üks SQL lause, siis paneb PgAdmin need laused automaatselt transaktsiooni e tehingu plokki.Seega, kui käivitan andmebaasis PgAdmin kaudu laused:VAC...


Loon PostgreSQLis uue andmebaasi, kuid selles on kellegi teise loodud tabelid, domeenid või muud andmebaasiobjektid? Miks see nii on ja mida teha?

PostgreSQLis luuakse uus andmebaas tehes koopia mallandmebaasist (template1). Üli...


Kui pikad võivad olla isikunimed ja millist väljapikkust kasutada isikunimede puhul andmebaasis?

Erinevates kultuurides on isikunimedel erinevaid komponente (lugege selle kohta lõputööst). Levinud lahenduseks andmeb...


Kas saaksite tuua mõne näite valesti valitud väljapikkustest ja selle põhjustatud probleemidest?

Valed valikud võivad põhjustada kannatusi, segadust, lisatööd ja mainekadu (süsteemi omanikule):


Millist töövahendit saaks kasutada PostgreSQL andmebaasi tabelitest graafilise kujutise (kas HTML, pildifail või midagi taolist) loomiseks? Tööriist võiks olla vabavaraline, joosta Linuxi masinal ning ideaalis olla kasutatav käsurealt (et saaks kasutada ka skriptide sees).

Kui Teil on andmete modelleerimise CASE vahend, siis see võib toetada pöördprojekteerimist (reverse engineering) olemasolevast andmebaasist.Leidub ka eraldi andmebaaside haldusvahendeid, mis sellist funktsionaalsust pakuvad. Tõst...


Miks peaks tabeliga seotud kitsenduse või indeksi nimi sisaldama tabeli nime?

Hea praktika on sellistes nimedes tabeli nime kasutada. Üldine põhimõte on, et tabeli nimi aitab tagada kitsenduse/indeksi nime unikaalsust skeemi piires. Miks on nime unikaalsus skeemi piires vajalik? Miks kasutada indeksi nimes tabeli n...


Kas andmete andmebaasi tasemel valideerimine (eelnevalt defineeritud reeglitele vastavuse kontrollimine) on hea mõte või mitte?

Minu arvates on hea mõte. Järgnev tekst üritab seda põhjendada.Väide: Kui rakenduse tasemel andmeid valideeritakse, siis andmebaasi tasemel pole seda enam vaja teha, sest see on liiga keeruline. Vastus: Kõik sõltub selle...


Käivitan läbi psqli PostgreSQL andmebaasis CREATE TABLE lauseid. Saan ühe lause peale veateate:

ERROR: syntax error at or near "CONSTRAINT" LINE 29: SET CONSTRAINT FK_Isik_Riik FOREIGN KEY (isikukoodi_riik) RE...

Samas selles lauses ei ole SET CONSTRAINT fraasi. Milles on viga ja kuidas seda parandada?

Vea põhjus on CREATE TABLE lauses olevas tabeldusmärgis. See probleem esines kuni PostgreSQL 14 (kaasa arvatud). PostgreSQL 15 see probleem lahendati. Näiteks saan sellise veateate, kui käivitan lause tabeli C loomiseks (ko...


Käivitasin PostgreSQLis skripti/päringu/andmemuudatuse, mis "jooksis kinni". Nüüd töötab andmebaasisüsteem aeglaselt ning protsess on lukustanud tabeli/vaate/andmebaasi, mille tulemusena ei saa ma seda muuta ega kustutada. Kuidas "rippuma jäänud" PostgreSQL kasutamise sessioonidest ja nendes algatatud ressursse blokeerivates serveriprotsessidest lahti saada?

Lahendust kirjeldatakse siin. Kokkuvõtlikult: Tuleb leida konkreetse andmebaasiga seotud se...