Informatyka · Bazy danych · zakres rozszerzony

Relacje — połącz tabele bez kopiowania wszystkiego

Gdy ktoś zmieni klasę, nie chcemy poprawiać jej w każdym wypożyczeniu. Przechowamy opis osoby w jednym miejscu, a w zdarzeniu tylko odwołanie.

  • Zobacz mechanizm
  • Wykonaj w programie
  • Sprawdź własny wynik

Po tej lekcji: Zaprojektujesz relacje 1:N i związek N:M przez tabelę pośrednią.

Zakres podstawowy · materiał otwarty

Co opisuje każda tabela?

Uczniowie opisują osoby, Sprzet opisuje egzemplarze, Wypozyczenia opisują zdarzenia. Wypożyczenie przechowuje uczen_id i sprzet_id — klucze obce odwołujące się do kluczy głównych innych tabel. Nazwa ucznia nie musi pojawiać się w każdym zdarzeniu.

Sprawdź w działaniu

Połącz istniejące identyfikatory

Wybierz osobę i sprzęt. Potem spróbuj wskazać osobę 99. Dlaczego baza powinna odmówić?

Ta interakcja wymaga włączonego JavaScriptu.

Sprawdź w działaniu

Materiały startowe

Ta interakcja wymaga włączonego JavaScriptu.

Sprawdź związek w obu kierunkach

RelacjaOdczyt
Uczniowie 1 → N WypozyczeniaJedna osoba może mieć wiele zdarzeń; każde zdarzenie ma jedną osobę
Sprzet 1 → N WypozyczeniaJeden egzemplarz może wystąpić w wielu wypożyczeniach w czasie
Uczniowie N ↔ M SprzetZwiązek realizujemy przez tabelę zdarzeń, nie listę id w jednej komórce

Odwołanie musi mieć cel

SQLsql
CREATE TABLE PrzykladWypozyczenia (
 id INTEGER PRIMARY KEY,
 uczen_id INTEGER NOT NULL REFERENCES Uczniowie(id),
 sprzet_id INTEGER NOT NULL REFERENCES Sprzet(id)
);

Narysuj i sprawdź relacje

  1. Narysuj trzy tabele z polami. Oznacz id jako PK, a odwołania jako FK.
    Oczekiwany wynikWidać źródło i cel każdej relacji.
  2. Przy każdej linii zapisz 1 i N. Przeczytaj związek w obu kierunkach.
    Oczekiwany wynikNie mylisz wielu sprzętów z wieloma nazwami w polu.
  3. W DB Browser sprawdź definicje tabel. W nowym połączeniu włącz PRAGMA foreign_keys = ON; przed transakcją.
    Oczekiwany wynikKontrola FK jest aktywna dla połączenia.
  4. Na kopii spróbuj dodać wypożyczenie z uczen_id=99.
    Oczekiwany wynikZapis narusza odwołanie i powinien zostać odrzucony.

Ćwiczenie z pomocą · samodzielna praca

Klub i wydarzenia

Zaprojektuj osoby, wydarzenia i zapisy. Jedna osoba może zapisać się na wiele wydarzeń.

Oczekiwany rezultat
3 tabele, PK/FK i krotności.
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Lista identyfikatorów w jednym polu nie jest relacją.

Krok 2 — pokaż podpowiedź

Dane zapisu umieść w tabeli pośredniej.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

Ćwiczenie z pomocą · samodzielna praca

Popraw odwołanie

Wyjaśnij, co zrobić z wypożyczeniem wskazującym brakującego ucznia.

Oczekiwany rezultat
Decyzja oparta na danych, nie losowe id.
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Sprawdź źródło błędu.

Krok 2 — pokaż podpowiedź

Nie wyłączaj kontroli tylko po to, żeby zapis przeszedł.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

Podsumowanie

Co warto zapamiętać

  1. Zaprojektujesz relacje 1:N i związek N:M przez tabelę pośrednią.
  2. Otwórz zapisany wynik w programie odbiorcy. Sprawdź, czy działa bez Twojej pomocy.
  3. Wskaż jedną decyzję w swojej pracy i wyjaśnij jej skutek.

Po zalogowaniu zobaczysz dodatkowe lekcje i materiały oznaczone jako rozszerzenie. Podstawowe quizy i zadania pozostają dostępne w biurku.

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka