AB võtmed (keys)

1. Primary Key

Definitsioon:
Primary key on veerg (või veerud), mis unikaalselt identifitseerib iga rea tabelis.

Milleks kasutatakse:

  • iga kirje üheselt tuvastamiseks
  • seoste loomiseks teiste tabelitega

Erinevus:

  • ei tohi sisaldada duplikaate ega NULL väärtusi
  • tabelis saab olla ainult üks primary key

Näide:

CREATE TABLE Opilane (
    opilane_id INT PRIMARY KEY,
    nimi VARCHAR(50)
);

2. Foreign Key

Definitsioon:
Foreign key on veerg, mis viitab teise tabeli primary key-le.

Milleks kasutatakse:

  • tabelite vaheliste seoste loomiseks

Erinevus:

  • võib sisaldada korduvaid väärtusi
  • võib olla NULL (kui pole piiratud)

Näide:

CREATE TABLE Kursus (
    kursus_id INT PRIMARY KEY,
    nimetus VARCHAR(50)
);CREATE TABLE Registreerimine (
    reg_id INT PRIMARY KEY,
    opilane_id INT,
    kursus_id INT,
    FOREIGN KEY (opilane_id) REFERENCES Opilane(opilane_id),
    FOREIGN KEY (kursus_id) REFERENCES Kursus(kursus_id)
);

3. Unique Key

Definitsioon:
Unique key tagab, et veerus olevad väärtused on unikaalsed.

Milleks kasutatakse:

  • vältida duplikaatväärtusi (nt email)

Erinevus:

  • lubab tavaliselt NULL väärtusi (erinevalt primary key-st)

Näide:

CREATE TABLE Kasutaja (
    id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE
);

4. Simple Key

Definitsioon:
Võti, mis koosneb ühest veerust.

Milleks kasutatakse:

  • lihtne unikaalne identifikaator

Erinevus:

  • ainult üks atribuut

Näide:

CREATE TABLE Auto (
    registrinumber VARCHAR(10) PRIMARY KEY,
    mark VARCHAR(50)
);

5. Composite Key

Definitsioon:
Võti, mis koosneb mitmest veerust.

Milleks kasutatakse:

  • kui üks veerg ei ole piisav unikaalsuseks

Erinevus:

  • mitu atribuuti koos moodustavad võtme

Näide:

6. Compound Key

Definitsioon:
Sageli kasutatakse sünonüümina composite key-le, kuid mõnikord tähendab võtit, kus kõik osad on ka foreign key-d.

Milleks kasutatakse:

  • seostabelites

Erinevus:

  • koosneb mitmest veerust, sageli viitab teistele tabelitele

Näide:

CREATE TABLE Tellimus_Toode (
    tellimus_id INT,
    toode_id INT,
    kogus INT,
    PRIMARY KEY (tellimus_id, toode_id),
    FOREIGN KEY (tellimus_id) REFERENCES Tellimus(id),
    FOREIGN KEY (toode_id) REFERENCES Toode(id)
);

7. Superkey

Definitsioon:
Superkey on üks või mitu veergu, mis identifitseerivad rea unikaalselt.

Milleks kasutatakse:

  • teoreetiline mõiste andmebaasi disainis

Erinevus:

  • võib sisaldada üleliigseid veerge

SuperKey: (user_id, email), kui user_id — on juba unikaalne.

8. Candidate Key

Definitsioon:
Candidate key on minimaalne superkey (ilma üleliigsete veergudeta).

Milleks kasutatakse:

  • valitakse primary key

Erinevus:

  • võib olla mitu candidate key-d

Näide:

CREATE TABLE Toode (
    id INT,
    triipkood VARCHAR(50),
    nimi VARCHAR(50),
    UNIQUE (triipkood),
    PRIMARY KEY (id)
);

9. Alternate Key

Definitsioon:
Candidate key, mida ei valitud primary key-ks.

Milleks kasutatakse:

  • alternatiivne unikaalne identifikaator

Erinevus:

  • ei ole primary key, aga on unikaalne

Näide:

CREATE TABLE Users (
  user_id INT PRIMARY KEY,
  email VARCHAR(100) UNIQUE  -- Alternate Key
);

Kasutatud allikad: