Wprowadzenie do baz danych
Przegląd terminologii
Przy pracy z bazami danych będziemy stosowali pewną terminologię. Pora, by się z nią zapoznać. Program, który zarządza bazami danych jest nazywany serwerem baz danych. Dane są w nim ułożone w hierarchiczny sposób, który ilustruje poniższy schemat: Widzimy tu, że serwer DB może utrzymywać kilka różnych baz danych należących do różnych aplikacji. Pojedyncza baza zawiera tabele o określonej strukturze, w których przechowywane są rekordy zawierające dane. Struktura tabeli definiuje pola oraz ich typy, w jakich rekordy mogą przechowywać informacje. Poniżej znajduje się graficzna ilustracja zawartości prostej tabeli. Oto kilka dodatkowych informacji o terminach użytych przed chwilą:- tabela - ang. table
- rekord - zwany też wierszem. Ang. row
- pole - zwana też kolumną. Ang. field
- Jeden do wielu - jednemu rekordowi z tabeli A przypisanych jest kilka rekordów z tabeli B. Przykładem może być kilka artykułów przypisanych jednej kategorii.
- Wiele do wielu - jednemu rekordowi z tabeli A przypisanych jest kilka rekordów z tabeli B oraz jednemu rekordowi z tabeli B przypisanych jest kilka rekordów z tabeli A. Przykład to książki oraz ich autorzy. Jedna książka może być napisana przez wielu ludzi, jednocześnie pojedynczy człowiek może napisać kilka książek.
- Jeden do jednego - jednemu rekordowi z tabeli A przypisany jest dokładnie jeden rekord z tabeli B. Relacja ta jest rzadko wykorzystywana.
Relacje można odzwierciedlać w strukturze bazy, a także pobierać dane z ich wykorzystaniem (np. pobrać produkty posortowane według tytułów kategorii, które mieszczą się przecież w innej tabeli). Bazy, w których dozwolone są takie operacje, nazywamy relacyjnymi bazami danych, w przeciwieństwie do płaskich baz danych.
Wszystkie operacje na bazach danych wykonujemy, wysyłając do serwera zapytania (ang. query) sformułowane w specjalnym języku SQL (Structured Query Language). Terminem ANSI SQL określamy nazwę standardu definiującego język SQL. Różne serwery DB implementują jego założenia lepiej lub gorzej, ale w przypadku korzystania ze złożonych możliwości kompatybilność między nimi nie jest zadowalająca. Aplikacje napisane w PHP najczęściej korzystają z trzech różnych baz danych: MySQL, SQLite oraz PostgreSQL.
Przegląd serwerów DB
Oto krótki przegląd niektórych dostępnych serwerów DB:- MySQL - najpopularniejszy serwer DB do zastosowań WWW stworzony przez szwedzką firmę MySQL AB. Można go używać bez żadnych opłat. MySQL słynie ze swej olbrzymiej wydajności, a najnowsza wersja 5.0 obsługuje już prawie cały standard ANSI SQL.
- PostgreSQL - główny konkurent MySQL-a dostępny na licencji open-source. Jego wydajność jest mniejsza lub większa niż MySQL w zależności od konfiguracji i wykonywanych zapytań, ale wciąż jest to jedyny darmowy serwer DB, który posiada pełną obsługę standardu ANSI SQL.
- IBM DB2 Express-C - to bezpłatna edycja znanej bazy IBM DB2, udostępniona na systemy Linux i Windows. Jej darmowe, nielimitowane wykorzystanie możliwe jest w odmianach 32 i 64 bitowych, na serwerach z dwoma procesorami i 4 GB RAM. Dostępne są różne metody wykorzystania DB2 z poziomu PHP, w tym również pełne, bezpłatne środowisko Zend Core for IBM oraz wsparcie dla PDO w PHP5. Więcej informacji można odnaleźć na stronie IBM.
- SQLite - ten serwer DB jest dość specyficzny, ponieważ w rzeczywistości jest to biblioteka wbudowywana w aplikacje, które go wykorzystują (np. w interpreter PHP). Stąd też do korzystania z niego nie potrzeba żadnych dodatkowych programów. SQLite jest wbudowany domyślnie w PHP5 i nowszych wersjach. Wcześniej wymienione bazy danych przechowują dane w wielu specjalnych plikach, a po uruchomieniu serwera DB część lub nawet całość danych kopiowanych jest do pamięci RAM (operacje w RAM są znacznie szybsze niż operacje I/O na dysku). Baz danych SQLite to pojedynczy binarny plik i jako baza danych nie znosi dobrze bardzo dużego obciążenia (operacje odczytu są bardzo szybkie, operacje zapisu znacznie wolniejsze niż w przypadku MySQL i Postgresa). Mimo to SQLite nie powinien sprawiać problemów stronom o niedużym ruchu (do kilku tysięcy unikalnych odsłon dziennie) zakładając że mamy pobranie napisane zapytania.
Na podstawie kursu PHP na Wikibooks, licencja GNU Free Documentation License
Comment article