🔑 Andmebaasi võtmetüübid (Key Types) – konspekt

Sisukord
show
🔐 Primary key
- Veerg või veerude kombinatsioon, mis üheselt määrab iga rea.
- Ei tohi olla NULL ega korduv.
- Ainult üks Primary key tabeli kohta.
Näide:CustomerID
tabelis Customers.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Name VARCHAR(100)
);
🔗 Foreign key
- Viitab teise tabeli Primary key’le.
- Tagab viidete terviklikkuse.
- Võib olla NULL (kui lubatud) ja korduv.
Näide:Orders.CustomerID
viitabCustomers.CustomerID
.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
🤝 Unique key
- Veerg või veerude kombinatsioon, mis peab olema kordumatu.
- Võib sisaldada ühte või mitut
NULL
, olenevalt andmebaasisüsteemist (*). - Saab olla mitu ühes tabelis.
Näide:Email
tabelis Users.
CREATE TABLE Users (
ID INT PRIMARY KEY,
Email VARCHAR(255) UNIQUE
);
🧍 Simple key
- Üksik veerg, mis tuvastab rea.
Näide:studentID
tabelis Students.
CREATE TABLE Students (
studentID INT PRIMARY KEY,
Name VARCHAR(100)
);
🧩 Composite key
- Kandidaatvõti, mis koosneb mitmest veerust.
Näide:eventID + userID
tabelis Registrations.
CREATE TABLE Registrations (
eventID INT,
userID INT,
PRIMARY KEY (eventID, userID)
);
🧷 Compound key
- Composite key, mille kõik komponendid on ka Foreign key’d.
Näide:orderID + productID
tabelis OrderDetails.
CREATE TABLE OrderDetails (
orderID INT,
productID INT,
PRIMARY KEY (orderID, productID),
FOREIGN KEY (orderID) REFERENCES Orders(OrderID),
FOREIGN KEY (productID) REFERENCES Products(ProductID)
);
🧠 Superkey
- Mis tahes veergude kogum, mis üheselt määrab rea.
- Võib sisaldada liigseid atribuute.
Näide:ID + Email
-- Ei ole otseselt märgitud SQL-is, aga loogiliselt:
SELECT * FROM Users
GROUP BY ID, Email;
🎯 Candidate key
- Minimaalne Superkey.
- Ei sisalda liigseid atribuute.
- Võib olla mitu ühes tabelis.
Näide:ID
,Email
,Username
CREATE TABLE Accounts (
ID INT,
Email VARCHAR(255),
Username VARCHAR(50),
PRIMARY KEY (ID),
UNIQUE (Email),
UNIQUE (Username)
);
♻️ Alternate key
- Candidate key, mida ei ole valitud Primary key’ks.
- Sageli koos
UNIQUE
piiranguga.
Näide:Username
, kuiID
on primary.
-- vt Accounts tabel üleval: Username on alternate key
🔄 Võtide võrdlustabel
Võtmetüüp | Unikaalne | NULL lubatud | Korduvad väärtused | Koosneb mitmest veerust | Viitab teisele tabelile | Mitut per tabel |
---|---|---|---|---|---|---|
Primary key | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Foreign key | ❌ | ✅* | ✅ | ❌ | ✅ | ✅ |
Unique key | ✅ | ✅* | ❌ | Võib | ❌ | ✅ |
Simple key | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
Composite key | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |
Compound key | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
Superkey | ✅ | ✅ | ❌ | Võib | ❌ | ✅ |
Candidate key | ✅ | ❌ | ❌ | Võib | ❌ | ✅ |
Alternate key | ✅ | ❌ | ❌ | Võib | ❌ | ✅ |
(*Väärtus võib sõltuda andmebaasi süsteemist)
