Liceum Klasa II 45 minut PP: II.3d | s. 344

Lekcja 12: Bazy danych - pojecia podstawowe, relacje miedzy tabelami

Koncepcja bazy danych, tabele, pola, rekordy, klucze, relacje, modele baz danych

📋 Podstawa programowa: II.3d
bazy danychklucz glownyklucz obcyrelacjetabele
00:00
Wprowadzenie
5 min
00:05
Teoria
15 min
00:20
Cwiczenia
15 min
00:35
Podsumowanie
10 min
📚

Teoria

Czym jest baza danych?

Baza danych (ang. database) to zorganizowany zbior danych przechowywany w sposob umozliwiajacy efektywne wyszukiwanie, dodawanie, modyfikowanie i usuwanie informacji. Bazy danych sa sercem niemal kazdego systemu informatycznego.

Bazy danych sa wszedzie! Facebook przechowuje dane miliardow uzytkownikow w bazach danych. Twoj dziennik elektroniczny (Librus, Vulcan) to baza danych. Sklep internetowy, bank, szpital, biblioteka - wszystkie korzystaja z baz danych do zarzadzania informacjami.

Podstawowe pojecia

  • Tabela (Table) - podstawowa struktura przechowywania danych, jak arkusz kalkulacyjny. Kazda tabela przechowuje dane o jednym typie obiektow (np. tabela Uczniowie, tabela Przedmioty).
  • Rekord (Record / Row) - jeden wiersz w tabeli, opisujacy pojedynczy obiekt (np. jeden uczen, jedno zamowienie).
  • Pole (Field / Column) - jedna kolumna w tabeli, opisujaca okreslona ceche obiektu (np. Imie, Nazwisko, Data urodzenia).
  • Wartosc - pojedyncza dana na przecieciu rekordu i pola (np. "Jan" w polu Imie rekordu nr 5).

Typy danych w polach

  • Tekst (VARCHAR / TEXT) - lancuchy znakow (imiona, nazwy, opisy)
  • Liczba calkowita (INTEGER) - np. wiek, ilosc, numer
  • Liczba dziesietna (DECIMAL / FLOAT) - np. cena, srednia
  • Data / Czas (DATE / TIME / DATETIME) - daty i godziny
  • Logiczny (BOOLEAN) - PRAWDA/FALSZ (tak/nie)
  • Autonumerowanie (AUTO_INCREMENT) - automatycznie rosnacy numer

Klucze w bazach danych

  • Klucz glowny (Primary Key, PK) - pole (lub zestaw pol), ktore jednoznacznie identyfikuje kazdy rekord w tabeli. Musi byc unikalny i nie moze byc pusty (NULL). Przyklad: ID_ucznia, PESEL, numer zamowienia.
  • Klucz obcy (Foreign Key, FK) - pole w jednej tabeli, ktore odwoluje sie do klucza glownego innej tabeli. Tworzy polaczenie (relacje) miedzy tabelami.
  • Klucz kandydujacy - pole, ktore moglolby byc kluczem glownym (jest unikalne), ale nie zostalo do tego wybrane.

Relacje miedzy tabelami

Relacja to polaczenie logiczne miedzy dwiema tabelami oparte na kluczach. Wyrozniamy trzy typy relacji:

1:1 (jeden do jednego)

Jeden rekord w tabeli A jest powiazany z dokladnie jednym rekordem w tabeli B. Przyklad: Uczen ↔ Legitymacja szkolna (kazdy uczen ma jedna legitymacje).

1:N (jeden do wielu)

Jeden rekord w tabeli A moze byc powiazany z wieloma rekordami w tabeli B. To najczestszy typ relacji. Przyklad: Klasa → Uczniowie (jedna klasa ma wielu uczniow, ale kazdy uczen nalezy do jednej klasy).

N:M (wiele do wielu)

Wiele rekordow w tabeli A moze byc powiazanych z wieloma rekordami w tabeli B. Wymaga tabeli posredniej (lacznikowej). Przyklad: Uczniowie ↔ Przedmioty (uczen uczy sie wielu przedmiotow, przedmiot jest uczony przez wielu uczniow). Tabela posrednia: Oceny (ID_ucznia, ID_przedmiotu, Ocena).

Normalizacja bazy danych

Normalizacja to proces organizowania danych w celu minimalizacji redundancji (powtarzania) i zapewnienia integralnosci danych. Podstawowe formy normalne:

  • 1NF (Pierwsza forma normalna) - kazde pole zawiera pojedyncza wartosc (atomowa), brak powtarzajacych sie grup
  • 2NF (Druga forma normalna) - spelnia 1NF + kazde pole niebedace kluczem zalezy od calego klucza glownego
  • 3NF (Trzecia forma normalna) - spelnia 2NF + brak zaleznosci przechodnich (pole niebedace kluczem nie zalezy od innego pola niebedacego kluczem)

System zarzadzania baza danych (SZBD / DBMS)

SZBD (ang. Database Management System) to oprogramowanie do tworzenia i zarzadzania bazami danych:

  • Microsoft Access - desktopowa baza danych, czesc MS Office (dobra do nauki)
  • MySQL / MariaDB - popularne darmowe bazy serwerowe (strony WWW)
  • PostgreSQL - zaawansowana darmowa baza danych
  • SQLite - lekka baza plikowa (aplikacje mobilne)
  • Oracle, MS SQL Server - korporacyjne systemy baz danych

Schemat bazy danych (ERD)

Diagram zwiazokow encji (Entity-Relationship Diagram, ERD) to graficzna reprezentacja struktury bazy danych pokazujaca tabele, pola i relacje miedzy nimi. Jest podstawowym narzedziem do projektowania baz danych.

✏️

Zadania

Latwe

Zadanie 1: Identyfikacja elementow bazy danych

Wyobraz sobie baze danych biblioteki szkolnej. Zidentyfikuj: (a) jakie tabele sa potrzebne (min. 3), (b) jakie pola powinna miec kazda tabela, (c) ktore pole bedzie kluczem glownym kazdej tabeli, (d) jakie relacje lacza tabele (okresl typ: 1:1, 1:N, N:M). Narysuj schemat (recznie lub w programie).

Pokaz przykladowe rozwiazanie
Tabele:
1. Ksiazki (ID_ksiazki [PK], Tytul, Autor, ISBN, Rok_wydania, Gatunek)
2. Czytelnicy (ID_czytelnika [PK], Imie, Nazwisko, Klasa, Email)
3. Wypozyczenia (ID_wypozyczenia [PK], ID_ksiazki [FK], ID_czytelnika [FK],
   Data_wypozyczenia, Data_zwrotu)

Relacje:
- Ksiazki 1:N Wypozyczenia (jedna ksiazka moze byc wielokrotnie wypozyczona)
- Czytelnicy 1:N Wypozyczenia (jeden czytelnik moze miec wiele wypozyczen)
- Ksiazki N:M Czytelnicy (przez tabele Wypozyczenia)
Srednie

Zadanie 2: Projektowanie bazy danych sklepu

Zaprojektuj baze danych dla sklepu internetowego. Baza powinna zawierac tabele: Klienci, Produkty, Zamowienia, Pozycje_zamowienia, Kategorie. Dla kazdej tabeli: okresl pola i ich typy danych, klucze glowne i obce. Narysuj diagram ERD pokazujacy relacje. Uzasadnij, dlaczego potrzebna jest tabela Pozycje_zamowienia.

Srednie

Zadanie 3: Baza danych w Access lub LibreOffice Base

Stworz baze danych "Dziennik szkolny" w Microsoft Access lub LibreOffice Base. Utworz tabele: Uczniowie (ID, Imie, Nazwisko, Klasa, Data_urodzenia), Przedmioty (ID, Nazwa, Nauczyciel), Oceny (ID, ID_ucznia, ID_przedmiotu, Ocena, Data). Ustaw klucze glowne i obce. Wpisz po 10 przykladowych rekordow do kazdej tabeli.

Trudne

Zadanie 4: Normalizacja danych

Dana jest tabela z danymi zamowien: Nr_zamowienia, Data, Imie_klienta, Nazwisko_klienta, Adres, Telefon, Produkt1, Cena1, Ilosc1, Produkt2, Cena2, Ilosc2. Ta tabela narusza formy normalne. Wykonaj normalizacje: (a) przeksztalc do 1NF, (b) przeksztalc do 2NF, (c) przeksztalc do 3NF. Pokaz kazdy krok i wyjasnij, co poprawilam.

🎥

Materialy wideo

Bazy danych w szkole - wprowadzenie. Lekcja Informatyki z Microsoft Access. Kurs baz danych.
Zygmunt Pilarek o Edukacji
Bazy danych - wstęp teoretyczny i konceptualny
Lekcja:Enter - materiały online
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 11: Tabele i wykresy przestawne Lekcja 13: Bazy danych - kwerendy →