Osnove podatkovnih baz


Sistemi za upravljanje podatkovnih baz


DBMS - Database management systems

Zagotavljajo trajno shranjevanje masovnih podatkovnih zbirk in pri tem poskrbijo za:


Struktura podatkovnih baz


Uporabniki


Sočasen dostop


Vrste sistemov za upravljanje podatkovnih baz


Primer - Banka


Tabela oseba


Tabela kraj


Tabela racun


Tabela transakcija


Banka - celoten SQL, narečje SQLite (1)

CREATE TABLE kraj (
  posta INTEGER PRIMARY KEY,
  kraj  TEXT NOT NULL
);

CREATE TABLE oseba (
  emso    TEXT PRIMARY KEY,
  ime     TEXT NOT NULL,
  priimek TEXT NOT NULL,
  ulica   TEXT NOT NULL,
  posta   INTEGER NOT NULL REFERENCES kraj(posta)
);

Banka - celoten SQL, narečje SQLite (2)

CREATE TABLE racun (
  stevilka INTEGER PRIMARY KEY AUTOINCREMENT,
  lastnik  TEXT NOT NULL REFERENCES oseba(emso)
);

CREATE TABLE transakcija (
  id     INTEGER PRIMARY KEY AUTOINCREMENT,
  racun  INTEGER NOT NULL REFERENCES racun(stevilka),
  znesek INTEGER NOT NULL, 
  cas    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  opis   TEXT
);

Banka - narečje PostgreSQL (1)

--- VERZIJA ZA POSTGRESQL ---

-- tabela krajev s poštnimi številkami
CREATE TABLE kraj (
  posta	INTEGER PRIMARY KEY,
  kraj	TEXT NOT NULL
);

-- tabela fizičnih oseb, ki so lastniki računov
CREATE TABLE oseba (
  emso    TEXT PRIMARY KEY,
  ime     TEXT NOT NULL,
  priimek TEXT NOT NULL,
  rojstvo DATE NOT NULL,
  ulica   TEXT NOT NULL,
  posta   INTEGER NOT NULL REFERENCES kraj(posta)
);

Banka - narečje PostgreSQL (2)

-- tabela računov
-- števec računov, se avtomatično povečuje sam
CREATE SEQUENCE "rstevec" START 100000; 

CREATE TABLE racun (
  stevilka INTEGER PRIMARY KEY
           DEFAULT NEXTVAL('rstevec'),
  lastnik  TEXT NOT NULL REFERENCES oseba(emso)
);

Banka - narečje PostgreSQL (3)

-- tabela vseh transakcij (pologov in dvigov denarja)
CREATE TABLE transakcija (
  id     SERIAL PRIMARY KEY,
         -- tip INTEGER s števcem z začetkom 1
  znesek INTEGER NOT NULL,
  racun  INTEGER NOT NULL REFERENCES racun(stevilka),
  cas    TIMESTAMP NOT NULL DEFAULT NOW(),
  opis   TEXT
);