Lihtsalt öeldes:
Primaarvõti (Primary Key) on veerg, mis eristab iga kirjet tabelis. Selle väärtused peavad olema unikaalsed ja veerg ei tohi olla tühi.
Näide tabelist Student:
| StudentID | Nimi | Vanus |
|---|---|---|
| 1 | Illia | 16 |
| 2 | Mark | 19 |
| 3 | Marek | 20 |
| 4 | Martin | 19 |
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Nimi VARCHAR(50),
Vanus INT
);
Foreign Key (võõrvõti)
Lihtsalt öeldes:
Võõrasvõti (Foreign Key) näitab seost teise tabeliga. See määrab, milline kirje kuulub teise tabeli kirjele.
Näide tabelist Enrollment (õpingud):
| EnrollmentID | StudentID | Kursus |
|---|---|---|
| 1 | 1 | Matemaatika |
| 2 | 2 | Füüsika |
| 3 | 1 | Keemia |
Veerg StudentID on võõrasvõti (FK), mis viitab tabeli Student primaarvõtmele.
See näitab, millised õpingud kuuluvad millisele üliõpilasele.
CREATE TABLE Enrollment (
EnrollmentID INT PRIMARY KEY,
StudentID INT,
Kursus VARCHAR(50),
FOREIGN KEY (StudentID) REFERENCES Student(StudentID)
);
Unique Key (unikaalne võti)
Lihtsalt öeldes:
Unikaalvõti (Unique Key) tagab, et veeru väärtused ei kordu, kuid tabelis võib olla rohkem kui üks selline veerg. Mõnikord võib väärtus olla tühi (NULL).
Näide tabelist Employee (töötajad):
| EmployeeID | Nimi | |
|---|---|---|
| 1 | Mari | mari@email.com |
| 2 | Jüri | juri@email.com |
| 3 | Liis | liis@email.com |
CREATE TABLE Employee (
EmployeeID INT PRIMARY KEY,
Nimi VARCHAR(50),
Email VARCHAR(100) UNIQUE
);
Veerg Email on unikaalvõti (Unique Key).
Iga töötaja e-posti aadress on unikaalne, kuid veerg võib olla ka tühi.
Simple Key (lihtvõti)
Näide:
Veerg StudetID on lihtvõti, sest see koosneb ainult ühest veerust.
Lihtsalt öeldes:
Lihtvõti (Simple Key) koosneb ainult ühest veerust ja identifitseerib kirjet tabelis.
Compound Key (kompoundvõti)
Lihtsalt öeldes:
Sarnane composite key-ga – koosneb mitmest veerust. Mõnikord kasutatakse mõlemat terminit samas tähenduses.
CREATE TABLE OrderDetails (
OrderID INT,
ProductID INT,
Quantity INT,
PRIMARY KEY (OrderID, ProductID)
);
Superkey (ülevõti)
Lihtsalt öeldes:
Supervõti (Superkey) on mis tahes veergude kombinatsioon, mis võimaldab unikaalselt identifitseerida iga kirjet tabelis.
Näide tabelist Student:
CREATE TABLE Student (
StudentID INT,
Nimi VARCHAR(50),
Isikukood VARCHAR(20),
PRIMARY KEY (StudentID),
UNIQUE (StudentID, Isikukood) -- see on superkey
);
Candidate Key (kandidaatvõti)
Lihtsalt öeldes:
Kandidaatvõti (Candidate Key) on supervõti, mis sobiks primaarvõtme (Primary Key) rolli täitmiseks, st võib unikaalselt identifitseerida iga kirjet tabelis.
Näide tabelist Student:
| StudentID | Isikukood | Nimi | Vanus |
|---|---|---|---|
| 201 | 3900101 | Liina | 20 |
| 202 | 4000223 | Tõnis | 22 |
| 203 | 4100334 | Maris | 21 |
CREATE TABLE Student (
StudentID INT UNIQUE,
Isikukood VARCHAR(20) UNIQUE,
Nimi VARCHAR(50),
Vanus INT,
PRIMARY KEY (StudentID)
);
- Veerud StudentID ja Isikukood on kandidaadid primaarvõtmele.
- Mõlemad unikaalselt identifitseerivad iga üliõpilase.
Alternate Key (alternatiivvõti)
Lihtsalt öeldes:
Alternatiivvõti (Alternate Key) on kandidaatvõti, mida ei valitud primaarvõtme (Primary Key) rolli täitmiseks, kuid see on endiselt unikaalne ja identifitseerib iga kirjet.
Näide tabelist Student:
| StudentID | Isikukood | Nimi | Vanus |
|---|---|---|---|
| 301 | 5000112 | Anu | 20 |
| 302 | 5100223 | Karl | 22 |
| 303 | 5200334 | Liis | 21 |
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Isikukood VARCHAR(20) UNIQUE,
Nimi VARCHAR(50),
Vanus INT
);
-- StudentID = Primary Key
-- Isikukood = Alternate Key
- Veerg StudentID valiti primaarvõtmeks.
- Veerg Isikukood on alternatiivvõti — see on endiselt unikaalne, aga primaarvõtmena ei kasutata.
