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_INCREMENTw 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_klientajako klucz obcy, - który wskazuje na
id_klientaw 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).