1. Primary Key (Primaarvõti)
Definitsioon:
Primaarvõti on veerg (või veerud), mis identifitseerib iga tabeli rea unikaalselt.
Milleks kasutatakse:
- tagab, et igal real on unikaalne identiteet
- ei tohi sisaldada NULL väärtusi
Erinevus:
- ainult üks primaarvõti tabeli kohta
- alati unikaalne + NOT NULL
Näide:
CREATE TABLE Opilased (
opilane_id INT PRIMARY KEY,
nimi VARCHAR(50),
vanus INT
);

2. Foreign Key (Võõrvõti)
Definitsioon:
Võõrvõti on veerg, mis viitab teise tabeli primaarvõtmele.
Milleks kasutatakse:
- loob seose tabelite vahel
- tagab andmete tervikluse
Erinevus:
- võib korduda
- võib olla NULL (kui pole määratud teisiti)
Näide:
CREATE TABLE Kursused (
kursus_id INT PRIMARY KEY,
nimetus VARCHAR(50)
);
CREATE TABLE Registreerimised (
reg_id INT PRIMARY KEY,
opilane_id INT,
kursus_id INT,
FOREIGN KEY (kursus_id) REFERENCES Kursused(kursus_id)
);

3. Unique Key (Unikaalne võti)
Definitsioon:
Tagab, et kõik väärtused veerus on unikaalsed.
Milleks kasutatakse:
- väldib duplikaate
- nt emailid, isikukoodid
Erinevus:
- võib sisaldada NULL väärtusi
- tabelis võib olla mitu unique key’d
Näide:
CREATE TABLE Kasutajad (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);

4. Simple Key (Lihtvõti)
Definitsioon:
Võti, mis koosneb ühest veerust.
Milleks kasutatakse:
- lihtne identifitseerimine
Erinevus:
- ainult üks atribuut
- vastand composite key’le
Näide:
CREATE TABLE Raamatud (
isbn VARCHAR(20) PRIMARY KEY,
pealkiri VARCHAR(100)
);

5. Composite Key (Liitvõti)
Definitsioon:
Primaarvõti, mis koosneb mitmest veerust.
Milleks kasutatakse:
- kui üks veerg ei ole piisav unikaalsuseks
Erinevus:
- koosneb mitmest atribuudist
- erineb simple key’st
Näide:
CREATE TABLE Hinded (
opilane_id INT,
aine_id INT,
hinne INT,
PRIMARY KEY (opilane_id, aine_id)
);

6. Compound Key
Definitsioon:
Sageli kasutatakse sünonüümina composite key’le (mitmest veerust koosnev võti).
Milleks kasutatakse:
- sama eesmärk nagu composite key
Erinevus:
- mõnes kontekstis rõhutab, et kõik osad on vajalikud
Näide:
CREATE TABLE Tellimused (
tellimus_id INT,
toode_id INT,
kogus INT,
PRIMARY KEY (tellimus_id, toode_id)
);

7. Superkey
Definitsioon:
Üks või mitu veergu, mis identifitseerivad rea unikaalselt.
Milleks kasutatakse:
- teoreetiline mõiste (andmebaasi disainis)
Erinevus:
- võib sisaldada üleliigseid atribuute
- candidate key on selle minimaalne versioon
Näide:
(opilane_id)
(opilane_id, nimi)
(opilane_id, nimi, vanus)
8. Candidate Key (Kandidaatvõti)
Definitsioon:
Minimaalne superkey – väikseim võimalik unikaalne võti.
Milleks kasutatakse:
- primaarvõtme valimiseks
Erinevus:
- ei sisalda üleliigseid veerge
Näide:
CREATE TABLE Toootajad (
isikukood VARCHAR(11) UNIQUE,
email VARCHAR(100) UNIQUE,
nimi VARCHAR(50)
);

9. Alternate Key (Alternatiivvõti)
Definitsioon:
Candidate key, mida ei valitud primaarvõtmeks.
Milleks kasutatakse:
- täiendavaks unikaalsuse tagamiseks
Erinevus:
- ei ole primary key
- on siiski UNIQUE
Näide:
CREATE TABLE Toootajad (
tootaja_id INT PRIMARY KEY,
isikukood VARCHAR(11) UNIQUE,
email VARCHAR(100) UNIQUE
);


ALLIKAD:
Database System Concepts (Silberschatz)
MySQL Documentation – https://dev.mysql.com/doc/