Državna Matura Informatics study materials
Državna Matura Informatics study resources

Državna Matura Informatics: Podatki in podatkovne baze

Državna Matura Informatics · Work through your exam, one topic at a time.

All guide sections

Podatki in podatkovne baze

Ta domena preverja razumevanje relacijskega modela, načrtovanja tabel in poizvedovanja v SQL. Naloge pogosto združujejo branje sheme, pisanje poizvedbe in presojo, ali so podatki skladni z integritetnimi omejitvami.

Model in integriteta

  • Entiteta → tabela, atribut → stolpec, vrstica → zapis; relacije 1:1, 1:N in M:N (slednja potrebuje povezovalno tabelo).
  • Primarni ključ enolično določa vrstico; tuji ključ se sklicuje na primarni ključ druge tabele in uveljavlja referenčno integriteto; domenska omejitev določa dovoljene vrednosti.
  • Normalizacija: 1NF zahteva atomarne vrednosti, 2NF brez delne odvisnosti od dela sestavljenega ključa, 3NF brez tranzitivnih odvisnosti.

SQL

  • DDL: CREATE/ALTER/DROP; DML: INSERT/UPDATE/DELETE; poizvedba SELECT.
  • Logični vrstni red: FROM → WHERE (filtrira vrstice) → GROUP BY → HAVING (filtrira skupine) → SELECT → ORDER BY.
  • NULL ni enak nič; primerjava zahteva IS NULL; COUNT(*) šteje vrstice, COUNT(stolpec) preskoči NULL.

Rešen primer

Tabeli Oddelek(id, naziv) in Student(id, ime, oddelek_id). Želimo oddelke z več kot dvema študentoma:

SELECT o.naziv, COUNT(*) AS st
FROM Oddelek o JOIN Student s ON s.oddelek_id = o.id
GROUP BY o.naziv
HAVING COUNT(*) > 2;

Sklep: JOIN poveže vrstice, GROUP BY tvori skupine po oddelku, COUNT šteje študente v skupini, HAVING izloči premajhne skupine. Če bi pogoj zapisali v WHERE, bi filtrirali posamezne vrstice pred združevanjem in dobili napačen rezultat.

Pasti

  • WHERE namesto HAVING;
  • pozabljen GROUP BY;
  • COUNT(*) namesto COUNT(stolpec);
  • NULL = NULL;
  • DELETE izbriše vrstice, DROP izbriše tabelo;
  • M:N brez povezovalne tabele;
  • stolpci v SELECT, ki niso v GROUP BY.