Stundas uzdevums: Saprast, kāpēc relāciju datubāzes ir labākas par CSV/JSON failiem, instalēt PostgreSQL un izveidot pirmo tabulu.
70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Datubāze (DB) ir strukturēta datu kopa, kuru pārvalda datubāzes pārvaldības sistēma (DBVS). PostgreSQL ir bezmaksas, atvērtā koda DBVS, ko izmanto Apple, Reddit, Spotify un tūkstošiem citu lielo uzņēmumu.
Atšķirībā no JSON/CSV, datubāze:
-- Pirmā tabula
CREATE TABLE speletaji (
id SERIAL PRIMARY KEY, -- auto-increment unikāls ID
vards TEXT NOT NULL,
punkti INTEGER DEFAULT 0
);
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 10.1 Ievads datubāzēs un PostgreSQL; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
-- Pirmā tabula
CREATE TABLE speletaji (
id SERIAL PRIMARY KEY, -- auto-increment unikāls ID
vards TEXT NOT NULL,
punkti INTEGER DEFAULT 0
);
queries.sql failā vai datubāzes klienta vaicājuma logā.Pievieno šīs stundas datu paņēmienu kā nelielu, strādājošu projekta daļu.
speletaji, rezultati vai ielade_topu().Pārbaudi, vai datu algoritms darbojas paredzami.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu datu uzlabojumu.
DROP TABLE IF EXISTS speletaji CASCADE; - CASCADE noņem arī saistītos objektus.-- Pirmais SQL skripts (schema.sql)
CREATE TABLE IF NOT EXISTS speletaji (
id SERIAL PRIMARY KEY,
vards TEXT NOT NULL UNIQUE,
punkti INTEGER DEFAULT 0,
izveidots TIMESTAMP DEFAULT NOW()
);
-- Pārbaude, ka tabula izveidota
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public';