Podatkovne baze 1

« nazaj

Podatkovne baze 1 - vaje 20.12.2021


Priprava baz

Tomaž, Andreja: Knjižnica

CREATE TABLE knjiga (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    naslov TEXT NOT NULL,
    ...
);

CREATE TABLE clan (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    ime TEXT NOT NULL,
    datum_rojstva DATE,
    ...
);

CREATE TABLE izposoja (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    knjiga INTEGER NOT NULL REFERENCES knjiga (id),
    clan INTEGER NOT NULL REFERENCES clan (id),
    datum_izposoje DATE NOT NULL,
    datum_vracila DATE,
    zamudnina INTEGER
);

CREATE TABLE placilo (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    clan INTEGER NOT NULL REFERENCES clan (id),
    znesek INTEGER NOT NULL
);

Jure, Petra: Ženski smučarski skoki

CREATE TABLE drzava (
    id_drzave  INTEGER PRIMARY KEY AUTOINCREMENT,
    ime_drzave TEXT    UNIQUE
                       NOT NULL,
    populacija INTEGER NOT NULL,
    bdp        INTEGER NOT NULL
);

CREATE TABLE tekmovalka (
    id_tekmovalke INTEGER PRIMARY KEY AUTOINCREMENT,
    ime_priimek   TEXT    NOT NULL,
    datum_rojstva DATE    NOT NULL,
    drzava        INTEGER NOT NULL
                          REFERENCES drzava (id_drzave),
    UNIQUE (id_tekmovalke, drzava)
);
CREATE TABLE skakalnica (
    id_skakalnice  INTEGER PRIMARY KEY AUTOINCREMENT,
    ime_skakalnice TEXT    NOT NULL,
    kraj           TEXT    NOT NULL,
    drzava         INTEGER NOT NULL
                           REFERENCES drzava (id_drzave) 
    tip_skakalnice TEXT    NOT NULL CHECK (tip_skakalnice IN ('srednja', 'velika')),
    velikost       INTEGER NOT NULL,
    rekord         INTEGER NOT NULL
);

CREATE TABLE tekma (
    id_tekme   INTEGER PRIMARY KEY AUTOINCREMENT,
    datum      DATE    NOT NULL,
    tip_tekme  TEXT    NOT NULL
                       CHECK (tip_tekme IN ('posamična', 'ekipna') ),
    tekmovanje TEXT    NOT NULL
                       CHECK (tekmovanje IN ('svetovni pokal', 'svetovno prvenstvo', 'olimpijske igre') ),
    skakalnica INTEGER NOT NULL
                       REFERENCES skakalnica (id_skakalnice),
    sezona TEXT CHECK (sezona LIKE '____/__')
);

CREATE TABLE rezultati (
    tocke      INTEGER NOT NULL,
    mesto      INTEGER NOT NULL,
    tekmovalka INTEGER NOT NULL
                       REFERENCES tekmovalka (id_tekmovalke),
    tekma      INTEGER NOT NULL
                       REFERENCES tekma (id_tekme),
    PRIMARY KEY (
        tekmovalka,
        tekma
    )
);

CREATE TABLE ekipa (
    id_ekipe INTEGER PRIMARY KEY AUTOINCREMENT,
    drzava   INTEGER NOT NULL
                     REFERENCES drzava (id_drzave),
    UNIQUE (id_ekipe, drzava)
);

CREATE TABLE postava (
    ekipa INTEGER,
    drzava INTEGER,
    tekmovalka INTEGER,
    FOREIGN KEY (ekipa, drzava)
        REFERENCES ekipa (id_ekipe, drzava),
    FOREIGN KEY (tekmovalka, drzava)
        REFERENCES tekmovalka (id_tekmovalke, drzava),
    PRIMARY KEY (ekipa, drzava, tekmovalka)
);

CREATE TABLE rezultati_ekipa (
    tocke INTEGER NOT NULL,
    mesto INTEGER NOT NULL,
    ekipa INTEGER NOT NULL
                  REFERENCES ekipa (id_ekipe),
    tekma INTEGER NOT NULL
                  REFERENCES tekma (id_tekme),
    PRIMARY KEY (
        ekipa,
        tekma
    )
);

Damijan, Benisa: Davčno svetovanje

CREATE TABLE narocnik (
    davcna_stevilka INTEGER PRIMARY KEY,
    priimek         TEXT    NOT NULL,
    ime             TEXT    NOT NULL,
    nalov           TEXT    NOT NULL,
    kontakt_tel     INTEGER,
    kontakt_mail    TEXT
);


CREATE TABLE narocniska_pogodba (
    stevilka_pogodbe INTEGER PRIMARY KEY AUTOINCREMENT,
    datum            DATE    NOT NULL,
    vrsta_postopka   TEXT    NOT NULL,
    narocnik INTEGER NOT NULL REFERENCES narocnik (davcna_stevilka)
);

CREATE TABLE vloga (
    id             INTEGER PRIMARY KEY AUTOINCREMENT,
    datum          DATE    NOT NULL,
    vrsta_postopka TEXT    NOT NULL,
    narocnik INTEGER NOT NULL REFERENCES narocnik (davcna_stevilka),
    upravni_organ INTEGER NOT NULL REFERENCES upravni_organ (id),
    odlocba INTEGER REFERENCES odlocba (id)
);

CREATE TABLE upravni_organ (
    id                  INTEGER PRIMARY KEY AUTOINCREMENT,
    naziv               TEXT    NOT NULL,
    naslov              TEXT    NOT NULL,
    telefonska_stevilka INTEGER,
    elektronska_posta   TEXT
);

CREATE TABLE odlocba (
    id               INTEGER PRIMARY KEY AUTOINCREMENT,
    stevilka_odlocbe TEXT    NOT NULL,
    datoteka         BLOB,
    datum            DATE    NOT NULL,
    koncna           TEXT
    racun INTEGER NOT NULL REFERENCES racun (id)
);

CREATE TABLE racun (
    id               INTEGER PRIMARY KEY AUTOINCREMENT,
    datum_izdaje     DATE    NOT NULL,
    datum_zapadlosti DATE    NOT NULL,
    znesek           INTEGER NOT NULL,
    status_placila INTEGER NOT NULL REFERENCES status_placila (id)
);

CREATE TABLE status_placila (
    id     INTEGER PRIMARY KEY AUTOINCREMENT,
    status TEXT    NOT NULL
);

Luka, Anže: Analiza GitHub repozitorija