Wprowadzenie do baz danych

1. Baza danych

Baza danych to uporządkowany zbiór informacji przechowywanych w systemie komputerowym w formie elektronicznej. Jej główne cechy:

  • uporządkowanie – dane są zapisane w strukturach (np. tabele),
  • spójność – mechanizmy systemu dbają, aby dane były zgodne logicznie,
  • dostępność – można je łatwo wyszukiwać, modyfikować i analizować,
  • bezpieczeństwo – kontrola dostępu, kopie zapasowe i ochrona przed utratą.

Przykłady zastosowań baz danych:

  • systemy bankowe (transakcje, konta, klienci),
  • e-commerce (produkty, zamówienia, płatności),
  • systemy medyczne (pacjenci, wizyty, recepty),
  • media społecznościowe (użytkownicy, posty, komentarze).

2. Encja

Encja reprezentuje obiekt rzeczywisty lub abstrakcyjny, który ma znaczenie w analizowanym systemie.

  • Encja w diagramie ERD (Entity-Relationship Diagram) jest przedstawiana jako prostokąt.
  • W relacyjnej bazie danych odpowiada jej tabela.
  • Każda encja ma unikalny identyfikator (np. ID), który pozwala odróżnić poszczególne instancje encji.

Przykłady encji i ich możliwych atrybutów:

  • Student: imię, nazwisko, nr indeksu, kierunek studiów, rok rozpoczęcia.
  • Produkt: nazwa, cena, kategoria, producent.
  • Samochód: marka, model, rok produkcji, numer rejestracyjny.

3. Redundancja danych

Redundancja to niepotrzebne powielanie informacji w bazie. Może powodować:

  • zwiększenie rozmiaru bazy,
  • błędy logiczne (np. niespójne dane w różnych miejscach),
  • problemy w aktualizacji (zmiana jednej wartości wymaga zmiany w wielu miejscach).

Metody eliminacji redundancji:

  • normalizacja baz danych – proces dzielenia tabel na mniejsze w celu usunięcia powtarzających się informacji,
  • stosowanie kluczy obcych – zamiast powtarzać dane, tworzy się odwołania do innej tabeli.

Przykład redundancji: W tabeli Zamówienia każdorazowe zapisywanie pełnych danych klienta (imię, nazwisko, adres) powoduje powielanie. Rozwiązaniem jest stworzenie tabeli Klienci i odwoływanie się do niej poprzez klucz obcy.


4. Związki encji

Relacje między encjami pozwalają odwzorować powiązania w rzeczywistości:

  • Relacja 1:1 (jeden do jednego) Jeden obiekt encji A odpowiada dokładnie jednemu obiektowi encji B. Przykład: Paszport ↔ Obywatel.

  • Relacja 1:N (jeden do wielu) Jeden obiekt encji A może być powiązany z wieloma obiektami encji B. Przykład: Nauczyciel ↔ Uczniowie.

  • Relacja M:N (wiele do wielu) Wiele obiektów encji A może być powiązanych z wieloma obiektami encji B. Realizuje się ją za pomocą tabeli pośredniczącej. Przykład: Studenci ↔ Kursy (student może zapisać się na wiele kursów, kurs ma wielu studentów).


5. Rekord i pole

  • Rekord (wiersz) – opisuje pojedynczy obiekt encji. Przykład: w tabeli „Studenci” rekord może wyglądać tak: (ID = 1, Imię = Anna, Nazwisko = Kowalska, Kierunek = Informatyka).

  • Pole (kolumna) – najmniejsza część informacji w rekordzie. Przykład: pole „Nazwisko” zawiera wartości dla wszystkich studentów: Kowalska, Nowak, Wiśniewski.


6. Klucz główny (Primary Key, PK)

Klucz główny jednoznacznie identyfikuje każdy rekord. Przykłady:

  • numer PESEL,
  • numer indeksu studenta,
  • numer zamówienia.

Dodatkowe uwagi:

  • Klucz główny może być prosty (jedna kolumna) lub złożony (kilka kolumn).
  • Systemy bazodanowe często automatycznie generują PK (np. AUTO_INCREMENT w MySQL).

7. Atrybuty encji i ich wartości

  • Atrybut encji to cecha, która opisuje obiekt. Przykład: „kolor” dla encji „Samochód”.
  • Wartość atrybutu to konkretna dana przypisana do atrybutu. Przykład: kolor = czerwony.

Typy atrybutów:

  • proste (np. imię, nazwisko),
  • złożone (np. adres = ulica + numer + kod pocztowy + miasto),
  • pochodne (np. wiek, który można obliczyć z daty urodzenia).

8. Klucz obcy (Foreign Key, FK)

Klucz obcy służy do tworzenia powiązań między tabelami. Wskazuje na klucz główny w innej tabeli.

Zalety stosowania FK:

  • zapewnienie spójności danych,
  • umożliwienie wykonywania zapytań łączonych (JOIN),
  • unikanie powtarzania informacji.

Przykład:

  • Tabela „Zamówienia” posiada id_klienta jako klucz obcy,
  • który wskazuje na id_klienta w tabeli „Klienci”.

9. Dodatkowe pojęcia związane z bazami danych

  • System Zarządzania Bazą Danych (DBMS – Database Management System) – oprogramowanie służące do obsługi baz danych (np. MySQL, PostgreSQL, Oracle, MS SQL Server).
  • SQL (Structured Query Language) – język do tworzenia, modyfikowania i pobierania danych z relacyjnych baz danych.
  • Normalizacja – proces organizowania struktury bazy danych w celu eliminacji redundancji i zapewnienia integralności.
  • Integralność danych – mechanizmy DBMS pilnują, aby dane były poprawne i spójne (np. nie można wprowadzić zamówienia dla klienta, który nie istnieje).

10. Schematy