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



🔐 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 viitab Customers.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, kui ID on primary.
-- vt Accounts tabel üleval: Username on alternate key

🔄 Võtide võrdlustabel

VõtmetüüpUnikaalneNULL lubatudKorduvad väärtusedKoosneb mitmest veerustViitab teisele tabelileMitut per tabel
Primary key
Foreign key✅*
Unique key✅*Võib
Simple key
Composite key
Compound key
SuperkeyVõib
Candidate keyVõib
Alternate keyVõib

(*Väärtus võib sõltuda andmebaasi süsteemist)


pildi allikas Power BI Docs

📖 Allikad