Slazem se da je pol atribut kojem ne treba posebna tabela. Takodje pol ima cetiri vrednosti po
ISO 5218 sto znaci da se pol resava na primer
Code:
CREATE TABLE Osobe
(
sifra INTEGER NOT NULL,
ime VARCHAR(15) NOT NULL,
pol CHAR(1) NOT NULL,
CONSTRAINT pk_oso
PRIMARY KEY (sifra),
CONSTRAINT ch_oso_pol
CHECK (pol IN ('0', '1', '2', '9'))
);
Sto se tice blizanaca, osoba 1 je blizanac osobi 2 i obratno. Reci
'je blizanac' indiciraju relaciju izmedju dve osobe. Onda mu dodje da se to resava sa
Code:
CREATE TABLE Blizanci
(
prvorodjen INTEGER NOT NULL,
drugorodjen INTEGER NOT NULL,
CONSTRAINT pk_bli
PRIMARY KEY (prvorodjen, drugorodjen),
CONSTRAINT ch_bli_razlicite_osobe
CHECK (prvorodjen <> drugorodjen),
CONSTRAINT fk_bli_prvorodjen
FOREIGN KEY (prvorodjen) REFERENCES Osobe(sifra)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_bli_drugorodjen
FOREIGN KEY (drugorodjen) REFERENCES Osobe(sifra)
ON DELETE RESTRICT ON UPDATE CASCADE
);
Posebno pitanje je sta je sa trojkama, cetvorkama,...