REFERENČÁ INTEGRITA

Jedná sa o obmedzenie spojenia medzi tabuľkami. Pomáha zaistiť nekonfliktnosť obsahu dvojice tabuliek v rámci jednotlivých relácií.
Príklad zakreslenia vyťahov medzi tabuľkami. Obrázok bol nakreslený pomocou Case nástroja Rational Rose



Vytvorenie databázy na základe predchádzajúceho obrázku.
CREATE TABLE Tosoba (
id INTEGER NOT NULL,
rodnecislo VARCHAR(10) ,
priezvisko VARCHAR(30) NOT NULL,
meno CHAR(20) NOT NULL,
idZdravSpos INTEGER ,
idStupVzd INTEGER ,
rstav VARCHAR(1) NOT NULL,
idrodinny_stav INTEGER NOT NULL,
PRIMARY KEY(id),
CHECK('M','Z')
);

CREATE TABLE Trodinny_stav (
id INTEGER NOT NULL,
kod CHAR(1) NOT NULL,
PRIMARY KEY(id)
);

CREATE TABLE TZdravSpos (
id INTEGER NOT NULL,
popis VARCHAR(10) ,
PRIMARY KEY(id)
);

CREATE TABLE TStupVzd (
id INTEGER NOT NULL,
kod VARCHAR(5) NOT NULL,
popis VARCHAR(10) NOT NULL,
PRIMARY KEY(id)
);

CREATE TABLE Tevidencia (
id INTEGER NOT NULL,
od DATE NOT NULL,
do DATE NOT NULL,
prijem INTEGER NOT NULL,
deti INTEGER NOT NULL,
pocet INTEGER NOT NULL,
idosoba INTEGER ,
idukonc INTEGER ,
idorganizacia INTEGER ,
PRIMARY KEY(id)
);

CREATE TABLE Tukonc (
id INTEGER NOT NULL,
popis VARCHAR(10) ,
PRIMARY KEY(id)
);

CREATE TABLE Torganizacia (
id INTEGER NOT NULL,
ico VARCHAR(10) NOT NULL,
nazov VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
);

CREATE TABLE Tdopyt (
id INTEGER NOT NULL,
poziadavky VARCHAR(20) ,
idosoba INTEGER NOT NULL,
idZaradenie INTEGER ,
idsektor INTEGER ,
PRIMARY KEY(id)
);

CREATE TABLE Tponuka (
id INTEGER NOT NULL,
pocet INTEGER NOT NULL,
plat INTEGER NOT NULL,
DatNast DATE NOT NULL,
idorganizacia INTEGER NOT NULL,
idsektor INTEGER ,
idZaradenie INTEGER ,
idStupVzd INTEGER ,
PRIMARY KEY(id)
);

CREATE TABLE TZaradenie (
id INTEGER NOT NULL,
popis VARCHAR(20) ,
PRIMARY KEY(id)
);

CREATE TABLE Tsektor (
id INTEGER NOT NULL,
popis VARCHAR(20) ,
PRIMARY KEY(id)
);

ALTER TABLE Tosoba ADD
CONSTRAINT Rel3A95710901BE FOREIGN KEY (idrodinny_stav)
REFERENCES Trodinny_stav;
CREATE INDEX IdxRel3A95710901BE ON Tosoba(idrodinny_stav);
ALTER TABLE Tosoba ADD
CONSTRAINT Rel3A95780A01A8 FOREIGN KEY (idZdravSpos)
REFERENCES TZdravSpos;
CREATE INDEX IdxRel3A95780A01A8 ON Tosoba(idZdravSpos);
ALTER TABLE Tosoba ADD
CONSTRAINT Rel3A95780D01B6 FOREIGN KEY (idStupVzd)
REFERENCES TStupVzd;
CREATE INDEX IdxRel3A95780D01B6 ON Tosoba(idStupVzd);
ALTER TABLE Tevidencia ADD
CONSTRAINT Rel3A9578170369 FOREIGN KEY (idosoba)
REFERENCES Tosoba;
CREATE INDEX IdxRel3A9578170369 ON Tevidencia(idosoba);
ALTER TABLE Tevidencia ADD
CONSTRAINT Rel3A95796C002A FOREIGN KEY (idukonc)
REFERENCES Tukonc;
CREATE INDEX IdxRel3A95796C002A ON Tevidencia(idukonc);
ALTER TABLE Tevidencia ADD
CONSTRAINT Rel3A957A140054 FOREIGN KEY (idorganizacia)
REFERENCES Torganizacia;
CREATE INDEX IdxRel3A957A140054 ON Tevidencia(idorganizacia);
ALTER TABLE Tdopyt ADD
CONSTRAINT Rel3A957ACA007E FOREIGN KEY (idosoba)
REFERENCES Tosoba;
CREATE INDEX IdxRel3A957ACA007E ON Tdopyt(idosoba);
ALTER TABLE Tdopyt ADD
CONSTRAINT Rel3AA7EC4402B1 FOREIGN KEY (idZaradenie)
REFERENCES TZaradenie;
CREATE INDEX IdxRel3AA7EC4402B1 ON Tdopyt(idZaradenie);
ALTER TABLE Tdopyt ADD
CONSTRAINT Rel3AA7EC4700CB FOREIGN KEY (idsektor)
REFERENCES Tsektor;
CREATE INDEX IdxRel3AA7EC4700CB ON Tdopyt(idsektor);
ALTER TABLE Tponuka ADD
CONSTRAINT Rel3A957B6C03AC FOREIGN KEY (idorganizacia)
REFERENCES Torganizacia;
CREATE INDEX IdxRel3A957B6C03AC ON Tponuka(idorganizacia);
ALTER TABLE Tponuka ADD
CONSTRAINT Rel3AA7ECA10066 FOREIGN KEY (idsektor)
REFERENCES Tsektor;
CREATE INDEX IdxRel3AA7ECA10066 ON Tponuka(idsektor);
ALTER TABLE Tponuka ADD
CONSTRAINT Rel3AA7ECBF0091 FOREIGN KEY (idZaradenie)
REFERENCES TZaradenie;
CREATE INDEX IdxRel3AA7ECBF0091 ON Tponuka(idZaradenie);
ALTER TABLE Tponuka ADD
CONSTRAINT Rel3AA7ED0F003C FOREIGN KEY (idStupVzd)
REFERENCES TStupVzd;
CREATE INDEX IdxRel3AA7ED0F003C ON Tponuka(idStupVzd);



Príklady spojenia tabuliek:
1. K tabuľke TOsoba pripojíme tabuľky Trodinny_stav, TStupVzd
SLECT meno, priezvisko, RS.popis, SV.popis
FROM TOsoba O, Trodinny_stav RS, TStupVzd SV
WHERE O.idrodinny_stav=RS.id AND
              O.idStupVzd=SV.id