Sobes.tech
Junior

Po co w tabeli jest potrzebny relacja?

sobes.tech AI

Odpowiedź od AI

Relacja, czyli powiązanie między tabelami w bazie danych, jest potrzebne do:

  • Usunięcia nadmiarowości danych: Zamiast duplikować informacje w kilku tabelach, są one przechowywane w jednej, a inne odwołują się do niej. To oszczędza miejsce i upraszcza aktualizacje.
  • Zapewnienia integralności danych: Relacje pomagają utrzymać spójność danych. Na przykład, nie można usunąć wiersza z jednej tabeli, jeśli inny odwołuje się do niego (w zależności od typu ograniczenia).
  • Uproszczenia zapytań: Umożliwia łatwe wyciąganie powiązanych danych z kilku tabel za pomocą operacji JOIN.
  • Tworzenia struktury bazy danych: Odzwierciedla logiczny związek między encjami świata rzeczywistego, czyniąc strukturę bazy danych bardziej zrozumiałą i uporządkowaną.

Przykłady typów relacji:

  • Jeden do jednego (One-to-one): Jeden wiersz w tabeli A jest powiązany tylko z jednym wierszem w tabeli B, i odwrotnie.
  • Jeden do wielu (One-to-many): Jeden wiersz w tabeli A może być powiązany z wieloma wierszami w tabeli B, ale wiersz w B jest powiązany tylko z jednym wierszem w A.
  • Wiele do wielu (Many-to-many): Wiersz w tabeli A może być powiązany z wieloma wierszami w tabeli B, i odwrotnie. Zazwyczaj realizuje się to przez tabelę pośrednią.

Implementacja na przykładzie SQL:

CREATE TABLE klienci (
    klient_id INT PRIMARY KEY,
    nazwa VARCHAR(255)
);

CREATE TABLE zamowienia (
    zamowienie_id INT PRIMARY KEY,
    data_zamowienia DATE,
    klient_id INT,
    FOREIGN KEY (klient_id) REFERENCES klienci(klient_id) // Relacja "jeden do wielu": jeden klient może mieć wiele zamówień
);