Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kas ja millal eelistada NoSQL andmebaasi SQL-andmebaasi loomisele?

Arvan, et käesolevaks ajaks on NoSQL jõudnud haibitsüklis ülisuurte ootuste tipust üle, pettumuste lohust läbi, võiboll...


NoSQL süsteemid, sh MongoDB on "uus lahe tehnoloogia". Mida ma võiksin nende kohta teada?

Kasutage, kui vaja, kuid olge tähelepanelikud ja säilitage kriitiline meel. Siin on Teile veidi mõtteainet edasiseks eluks. 2024. aa...


Kas isiku rollide omamise registreerimise võiks realiseerida nii, et luua loendustüüp rollide nimedega ning kasutajate tabelis luua veerg, mille väärtuseks on seda loendustüüpi väärtuste massiiv?

See on võimalik, aga ma ei soovita. Soovitan rollide jaoks luua eraldi klassifikaatori tabeli ja luua eraldi tabeli rollide omamiste kohta.CREATE TYPE t_roll AS ENUM('juhataja','administraator','tavakasutaja');


Kas PostgreSQLi loendustüüpi võiks kasutada väga harva muutuvate klassifikaatorite (näiteks seisundite liigid) realiseerimiseks?

See on võimalik, aga ma ei soovita. Soovitan nende asemel luua ja kasutada klassifikaatorite tabeleid.CREATE TYPE t_tellimuse_seisundi_liik AS ENUM('loodud','kinnitatud','tühistatud','täidetud');CREATE TABLE...


Kuidas saaks vaadata olemasoleva PostgreSQL andmebaasi tabelite kirjeldust diagrammina?

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


Lõin PostgreSQL andmebaasis protseduuri (CREATE PROCEDURE lause). Seda MS Accessi rakendusest välja kutsudes saan veateateid nagu:
  • Error while preparing parameters.
  • ERROR: ... is a procedure; Error while preparing parameters.

Milles on viga ja mida selle parandamiseks ette võtta?

Protseduurid on PostgreSQLis väga uus asi (lisandusid PostgreSQL 11) ja vanemad draiveri versioonid neid ei toeta. Lahenduseks on asendada serveris protseduurid funktsioonidega või kasutada viimast draiveri versiooni.


Käivitan PostgreSQLis funktsiooni, kuid seda ei täideta, sest ei leita funktsioonis viidatud tabelit. Mis on viga ja kuidas seda lahendada?

Näide: Lõin andmebaasis funktsiooni f_on_juhataja

SELECT f_on_juhataja(p_kasutajanimi:='joy.hawkins@geekosis.name', p_parool:='Boss');

ERROR: relation "isik" does not exist

LINE 2: FROM isik INNER JOIN tootaja ON isik.isik_id = tootaja.isik_...

Kirjutasite funktsiooni loomise lauses: SET search_path = 'public, pg_temp' Tekst, mis on apostroofide e ülakomade vahel, on PostgreSQLi jaoks kokku üks skeemi nimi. PostgreSQL hakkas otsima sellise nimega skeemist tabeli...


Kuidas kutsuda PostgreSQLis välja funktsiooni või protseduuri, mille mõni parameeter on SMALLINT tüüpi?

Oletame, et andmebaasis on loodud funktsioon f_lopeta_teenus, mille parameeter p_teenuse_kood on SMALLINT tüüpi. Üritades seda funktsiooni välja kutsuda lausega: SELECT f_lopeta_teenus(p_teenuse_kood:=436); ...


Kas kuskil leidub iseseisvaid harjutusülesandeid PostgreSQL admebaasisüsteemi paremaks tundmaõppimiseks?

Huvitav keskkond neile, kes tahaksid veebipõhises interaktiivses keskkonnas rohkem PostgreSQLi harjutada.


PostgreSQL andmebaasi varukoopia tegemisel pgAdmini programmiga esineb mul viga:
pg_dump: server version: 17.0; pg_dump version: 16.5
pg_dump: aborting because of server version mismatch

Mida teha?

See viga võib esineda ka tulevastes versioonides. Üldine põhjus on selles, et kasutatav pgAdmini versioon ei vasta kõige uuemale PostgreSQLi versioonile. Tüüpiliselt tuleb PostgreSQList välja uus põhiversioon igal sügisel (tavaliselt septembri lõpus ...