Wykorzystanie baz danych znacznie rozszerza możliwości programów. Programy tworzone w PHP często potrzebują jakiejś metody do przechowywania i przetwarzania danych. Najprostszym i najwcześniej wykorzystywanym sposobem było zapisywanie danych do plików tekstowych. Niestety możliwości wykorzystania takich zbiorów danych są mocno ograniczone, a implementacja tego rozwiązania rodziła wiele problemów związanych choćby z jednoczesnym dostępem do danych przez wielu użytkowników. Na szczęście większość kont hostingowych, nawet tych darmowych, jest wyposażonych w jakąś bazę danych. Najczęściej jest to MySql.
Jakie są zalety stosowania baz danych?
- każdą daną wystarczy wpisać jeden raz by była dostępna we wszystkich wymaganych miejscach
- łatwość aktualizacji danych
- umożliwienie jednoczesnego dostępu do danych dla wielu użytkowników
- możliwość ograniczania dostępu do danych dla różnych grup użytkowników
- uniwersalny język do przetwarzania danych (SQL)
- eliminacja błędów spójności bazy danych
Co to jest baza danych?
Baza danych to zbiór uporządkowanych danych z pewnej dziedziny. Dane są wzajemnie ze sobą powiązane związkami logicznymi pozwalającymi na wybranie zestawu danych pod odpowiednim do potrzeb kontem.
W dalszej części będę skupiał się na bazie MySql głównie ze względu na jej dużą popularność i ogólną dostępność. W zasadzie wszystkie darmowe skrypty wykorzystujące bazy danych (fora, blogi, CMS-y itp.) są oparte na MySql-u, a jeżeli skrypt jest dostosowany do różnych baz danych, to opcja z MySql jest najlepiej udokumentowana.
MySql jest relacyjną bazą danych. Dane w tym modelu przechowywane są w tabelach zwanych fachowo relacjami. Od razu zaznaczę, że fachowa terminologia nie jest zbyt popularna i pisząc o bazach danych będę używał raczej określeń powszechnie stosowanych, a terminy fachowe będę umieszczał w nawiasach. Tabele składają się z wierszy – rekordów (krotek – encji) – najmniejszych zbiorów danych dotyczących jakiegoś przedmiotu i kolumn (atrybutów) definiujących najmniejsze porcje danych. Np. tabela samochody będzie składała się z rekordów opisujących konkretne auta, a w kolumnach będą zdefiniowane cechy tych samochodów np. marka, model, rok produkcji, kolor itd. Poniżej prezentuję taką przykładową tabelkę.
marka | model | rok_produkcji | kolor |
---|---|---|---|
Seat | Ibiza | 2001 | czerwony |
Volkswagen | Golf | 2003 | niebieski |
Peugeot | 307 | 2003 | srebrny |
Opel | Astra | 2007 | czarny |
Ford | Focus | 2006 | żółty |
Rekordy z poszczególnych tabel mogą być powiązane relacjami (związkami encji). Wyróżniamy trzy rodzaje relacji: jeden do jednego, jeden do wielu i wiele do wielu. Relacja jeden do jednego zachodzi w sytuacji, gdy jednemu rekordowi z pierwszej tabeli odpowiada jeden rekord z drugiej tabeli. Relacja jeden do wielu zachodzi, gdy jednemu rekordowi z pierwszej tabeli odpowiada jeden lub więcej rekordów z drugiej tabeli. Relacja wiele do wielu zachodzi, gdy jednemu lub kilku rekordom z pierwszej tabeli odpowiada jeden lub więcej rekordów z drugiej tabeli. W praktyce ten ostatni typ relacji jest zastępowany dwoma relacjami jeden do wielu z dodatkową tabelą.
Relacja pomiędzy tabelami tworzone są dzięki kluczom – specjalnym polom identyfikującym rekordy w tabeli. Występują klucze główne zwane też podstawowymi i obce. Klucz podstawowy jest unikalny w ramach jednej tabeli. Zapisanie wartości klucza głównego w innej tabeli tworzy klucz obcy.