Rozdział 22 · Tworzenie stron internetowych z Python

Relacyjne bazy danych: tabele, klucze i relacje

Dane w łańcuch znakówx i kolumnach — oraz relacje między tabelami poprzez klucze pierwotne i obce.

Najczęściej spotykanym typem bazy danych jest relacyjna: Przechowywane dane w tabelewyglądają jak arkusz tabeli obliczeniowej. Każdy łańcuch znaków — jeden wpis, każdy kolumna jest jedną z jego właściwości z predefiniowanym typem.

userstasks1 — N
Jednemu użytkownikowi users może odpowiadać kilka wierszy tasks
idtitledone
1Poznaj podstawy Python1
2Zbudować stronę na Flask0

Taki stół — tasks: Każdy wiersz ma id jest unikalną liczbą, dzięki której można ją jednoznacznie znaleźć. Kolumna, która to robi (zazwyczaj id) są nazywane klucz główny (primary key).

Relacja między tabelami – klucz obcy

Gdyby każde zadanie miało właściciela, drugi stół users przechowywał użytkowników, a tasks jest połączeniem do struny W niej:

idtitledoneuser_id
1Poznaj podstawy Python17
2Zbudować stronę na Flask07

Kolumna user_idto się odnosi id w innej tabeli nazywa się kluczem obcym (foreign key).

Skąd wzięło się słowo „relacyjny”
Nazwa pochodzi od matematycznego pojęcia relation (relacja), leżącego u podstaw relacyjnego modelu danych: relacja to zbiór krotek tej samej struktury, a w praktyce przedstawia się ją w formie tabeli. Relacje między tabelami przez klucze obce są ważną częścią projektowania baz danych, ale nie źródłem nazwy modelu: jedna tabela bez żadnego klucza obcego nadal pozostaje relacyjną.
Ostateczny projekt pozostaje bez użytkowników — i jest to celowe
Jak szczegółowo wyjaśnia sekcja 22.31, aby nie rozszerzać tego rozdziału do pełnej autentyczności, ostateczny szkic (Rozdział 22.35) wykorzystuje tylko jedną tabelę, tasks, bez users i bez kluczy obcych. Relacje między tabelami — ważna idea, ale nie obowiązkowy element najmniejszej działającej aplikacji.