Tabela słownikowa w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest tabela słownikowa w SQL?

Tabela słownikowa to tabela przechowująca dozwolone wartości dla wybranego pola w innej tabeli. Stosuje się ją np. dla kolorów, kategorii, statusów, typów produktów czy stanowisk.

Zamiast wpisywać w tabeli samochody tekst typu czerwony, czarny, biały, można utworzyć tabelę lakier, a w tabeli samochody zapisywać identyfikator wybranego lakieru.

Przykład

CREATE TABLE lakier (
  lakierId INT PRIMARY KEY,
  nazwa VARCHAR(30) NOT NULL
);

CREATE TABLE samochody (
  id INT PRIMARY KEY,
  marka VARCHAR(50),
  kolor INT,
  FOREIGN KEY (kolor) REFERENCES lakier(lakierId)
);

W tym przykładzie pole samochody.kolor może zawierać tylko takie wartości, które istnieją w kolumnie lakier.lakierId.

Po co stosuje się tabele słownikowe?

  • ograniczają wartości do poprawnego zestawu,
  • zapobiegają literówkom i niespójnym zapisom, np. czarny, czarna, black,
  • ułatwiają zmianę nazw wartości,
  • wspierają integralność referencyjną,
  • pomagają normalizować bazę danych.

Ważne na egzaminie

Relację między tabelą główną a słownikową najczęściej ustanawia się za pomocą klucza obcego:

ALTER TABLE samochody
ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);

Kolumna po lewej stronie, np. kolor, znajduje się w tabeli zależnej. Kolumna po prawej stronie, np. lakierId, musi istnieć w tabeli słownikowej i zwykle jest kluczem głównym.