Bazy danych to podstawowy element każdej aplikacji. Nie są w żadnej mierze ekscytujące, ale z pewnością bardzo ważne.
Cokolwiek, co w jakiś sposób jest zorganizowane, wykorzystuje którąś odmianę bazy danych - na przykład strukturę systemu plików.
Również bardziej zaawansowane czynności - dajmy na to monitorowanie użytkowników i ich preferencji na stronie WWW - wymagają zastosowania bazy danych (informacje na temat wykorzystania serwera Apache dla systemu Linux znajdują się w rozdziale 13.).
Przy omawianiu baz danych w serwerowym systemie operacyjnym, jakim jest Linux, należy zdać sobie sprawę z faktu, że baza danych składa się z dwóch modułów: klienta i serwera. Aby baza danych mogła działać, oba te moduły muszą się ze sobą komunikować. Ma to dość interesujące konsekwencje.
Po pierwsze, serwer bazy danych ma wiele cech systemu operacyjnego: musi kontrolować użytkowników, ich dostęp do baz danych, procesy i zwykle udostępnia własny wiersz poleceń.
Po drugie, trzeba zdać sobie sprawę z interakcji pomiędzy klientami a serwerem. Zwykle z serwerem bazy danych dostarczany jest również program klienta, pozwalający na administrowanie bazą czy kierowanie do niej zapytań. Program klienta łączy się z serwerem bazy danych i pozwala na przeglądanie zawartości udostępnianych przez niego tabel. Co ważniejsze, pozwala on na wydawanie poleceń języka SQL, umożliwiając tworzenie czy wypełnianie relacyjnych baz danych oraz tworzenie kwerend. Program PostgreSQL Interactive SQL Monitor (opisany w dalszej części tego rozdziału) jest przykładem programu tego typu, podobnie jak DB-Access firmy Informix.
|
|
Na płycie CD-ROM dołączonej do książki znajduje się serwer baz danych o bardzo dużych możliwościach o nazwie PostgreSQL, działający pod kontrolą systemu Linux. PostgreSQL został prawdopodobnie zainstalowany w Twoim systemie w czasie, gdy instalowałeś Linux i Gnome. Korzystanie z niego jest darmowe (choć nie jest on objęty licencją GNU, co wyjaśnimy później). W tym rozdziale pokażemy, jak skonfigurować i uruchomić PostgreSQL. Krótko opiszemy również proces ładowania i instalowania programu Informix Dynamic Server (IDS) w wersji dla Linuksa. IDS jest programem komercyjnym, objętym 30-dniowym, darmowym okresem próbnym. Jeśli potrzebny Ci jest serwer o naprawdę dużych możliwościach do firmy, być może powinieneś wybrać właśnie Informix Dynamic Server.
|
|
|
PostgreSQL PostgreSQL jest następcą programu Postgres, stworzonego pod przewodnictwem Michaela Stonebrakera na Uniwersytecie Kalifornijskim w Berkeley. Jeśli zainstalowałeś system Red Hat Linux 7.1, najprawdopodobniej zainstalowany został PostgreSQL w wersji 7.0.3 (patrz następny podrozdział). Jak wspomniałem wcześniej, PostgreSQL nie jest programem objętym licencją publiczną. Prawa autorskie do niego posiadają władze Uniwersytetu Kalifornijskiego, które zezwoliły na wykorzystywanie, modyfikowanie i dystrybucję programu PostgreSQL wraz z dokumentacją za darmo, pod warunkiem, że wraz z nim rozprowadzana będzie notka o ich prawach autorskich oraz dwa specyficzne akapity. Jeśli chcesz uzyskać dodatkowe informacje o warunkach licencji programu PostgreSQL lub też informacje o samym programie, zajrzyj na stronę http://www.postgresql.org/ Ważne jest, aby uświadomić sobie, że istnieje wiele języków programowania pozwalających na dostęp do serwera PostgreSQL. Tego typu dostęp nazywany jest interfejsem. Jeśli chcesz utworzyć program porozumiewający się z serwerem baz danych, powinieneś upewnić się, że baza danych posiada również interfejs dla języka, w którym program ma zostać napisany. Dla bazy PostgreSQL dostępne są następujące interfejsy: |
|
|
|
|
|
|
|
Dodatkowe informacje dotyczące używania języków programowania rozprowadzanych wraz z systemem Red Hat Linux 7.1 możesz znaleźć w rozdziale 11. |
Wskazówki
|
|
Rysunek 8.1. Jeśli PostgreSQL został zainstalowany, w programie Gnome RPM widoczne będą pakiety serwera i klienta PostgreSQL.
Rysunek 8.2. Okno Package Info zawiera informacje o pakiecie PostgreSQL i plikach, które zostały zainstalowane.
Rysunek 8.3. Aby korzystać z PostgreSQL, potrzebny będzie również pakiet zawierający program klienta. |
Rysunek 8.4. W programie Linuxconf wybierz pozycję User Accounts z podkategorii Normal kategorii User Accounts.
Rysunek 8.5. Użytkownik postgres - czyli administrator systemu PostgreSQL - musi zostać skonfigurowany przed uruchomieniem serwera PostgreSQL. |
|
Użytkownik postgres Serwer PostgreSQL musi być uruchamiany przez użytkownika o identyfikatorze postgres. Bardzo ważne ze względów bezpieczeństwa jest to, aby użytkownik ten nie miał praw użytkownika root (jeśli przyznasz mu takie prawa, narażone będzie bezpieczeństwo całego serwera). Użytkownik postgres bywa też określany jako administrator postgres. Innymi słowy, użytkownik postgres ma takie znaczenie dla systemu PostgreSQL, jak użytkownik root dla całego systemu linuksowego. Użytkownik postgres mógł zostać dodany do systemu podczas instalacji; mimo wszystko powinieneś się o tym upewnić i zmienić jego hasło. Jeśli użytkownik postgres nie istnieje, powinieneś go dodać wykorzystując ustawienia przedstawione na rysunku 8.5. Dodatkowe informacje o dodawaniu użytkowników do systemu za pomocą środowiska Gnome znajdziesz w rozdziale szóstym. Aby skonfigurować konto użytkownika postgres
|
|
|
Rysunek 8.6. Należy zmienić hasło użytkownika postgres, aby znać jego brzmienie.
Rysunek 8.7. Jeśli chcesz sprawdzić, czy użytkownik postgres posiada plik profilu, musisz upewnić się, że możesz przeglądać również pliki ukryte
Rysunek 8.8. Jeśli plik .bash_profile istnieje, należy poddać go edycji; w przeciwnym przypadku trzeba go najpierw utworzyć. |
Rysunek 8.9. Plik profilu można edytować za pomocą programu Gnotepad+.
Rysunek 8.10. Zmienne środowiskowe używane przez PostgreSQL powinny zostać określone w pliku profilu użytkownika postgres. |
|
PATH=$PATH:/var/lib/pgsql
|
Aby uruchomić serwer baz danych
|
|
|
Rysunek 8.11. Program rezydentny Postmaster musi być uruchomiony, aby programy klientów mogły łączyć się z serwerem.
|
|
Program rezydentny Postmaster Program rezydentny Postmaster jest procesem, który musi działać w tle, aby programy klientów mogły łączyć się z serwerem baz danych. Aby uruchomić program Postmaster
Wskazówka
|
Wskazówki
Aby usunąć bazę danych
|
|
Rysunek 8.12. Program PostgreSQL Interactive SQL Monitor pozwala bezpośrednio wydawać polecenia SQL, które są przetwarzane przez serwer.
Rysunek 8.13. Listę poleceń dostępnych w programie PostgreSQL Interactive SQL Monitor można obejrzeć po wydaniu polecenia \?
Ilustracja 8.14. Wydając proste polecenie SQL, można upewnić się, czy połączenie pomiędzy serwerem i klientem działa prawidłowo. |
Rysunek 8.15. Do utworzenia tabeli można wykorzystać standardowe polecenie SQL, natomiast aby sprawdzić, czy została ona utworzona, można wykorzystać polecenie \dt programu PostgreSQL Interactive SQL Monitor.
Rysunek 8.16. Wszystkie wiersze i kolumny tabeli można wyświetlić za pomocą polecenia SELECT *.
|
|
Tworzenie tabeli
Tabele, składające się z kolumn - zwanych również polami - oraz wierszy, są podstawowymi blokami, z których Aby utworzyć tabelę
CREATE TABLE hobbits(
Wskazówka
Aby wstawić dane do tabeli
|
Aby skierować zapytanie dotyczące tabeli
SELECT lname FROM hobbits WHERE ssn<100000000;
|
|
Aby uaktualnić zawartość tabeli
UPDATE hobbits SET fname='Samwise' WHERE lname='Gamgee';
|
Rysunek 8.17. Po wydaniu polecenie SELECT ze słowami kluczowymi FROM i WHERE zwracane są tylko dane spełniające określony warunek.
Rysunek 8.18. Możliwe jest uaktualnianie poszczególnych pól w oparciu o wybrane kryteria.
Możliwe jest utworzenie tabeli, która dziedziczy wszystkie kolumny (pola) innej tabeli. Nowa tabela może również zawierać dodatkowe kolumny, poza tymi z tabeli pierwotnej. PostgreSQL określa tego typu związki pomiędzy tabelami mianem klasy, jak to zwykle bywa w przypadku dziedziczenia. Aby utworzyć tabelę dziedziczącą po istniejącej tabeli
CREATE TABLE hobbitsplus
Wskazówka
|
|
Aby wstawić wiersz do tabeli hobbitsplus
|
Rysunek 8.19. Dzięki dziedziczeniu tabeli można przenosić
wiersze i kolumny pomiędzy tabelami.
Do nowego pola można wprowadzić dane wydając polecenie, takie jak UPDATE hobbitsplus SET alias = 'Underhill' WHERE lname = 'Baggins';
Jeśli porównasz zawartość tabeli hobbits oraz hobbitsplus, zauważysz, że w nowym polu pojawiły się dodatkowe dane Dodawanie użytkowników Jeśli użytkownicy muszą mieć dostęp do serwera PostgreSQL, trzeba zalogować się jako administrator postgres lub używając specjalnie w tym celu utworzonego konta. Konto takie nie ma nic wspólnego z dostępem do systemu linuksowego; daje tylko prawa dostępu do serwera baz danych. |
|
Aby dodać nowego użytkownika
Wskazówka
|
Rysunek 8.20. Do nowych pól tabeli można wprowadzać dodatkowe dane.
Rysunek 8.21. Polecenie createuser służy do dodawania użytkowników
serwera PostgreSQL, którzy będą mogli się z nim łączyć.
Firma Informix Software, wiodący producent systemów obsługi baz danych, była jedną z pierwszych firm, które przeniosły swoje profesjonalne oprogramowanie na platformę linuksową. Wersja programu Informix Dynamic Server (IDS) dla systemu Linux różni się od flagowej wersji programu działającej w komercyjnych wersjach systemu UNIX, na przykład Solaris, tylko w niektórych, bardzo zaawansowanych szczegółach. Należy jednak uprzedzić, że program Informix Dynamic Server nie jest łatwy ani w instalacji, ani w utrzymaniu. Nie jest też tani. To program komercyjny ze wszystkimi tego konsekwencjami. Można jednakże załadować jego 30-dniową, darmową wersję próbną (jeśli wolisz, możesz również zamówić płytę CD-ROM z wersją próbną bezpośrednio w firmie Informix). Licencja na program IDS zwykle zależy od liczby użytkowników i kosztuje 99 dolarów od każdego użytkownika, ale w praktycznych zastosowaniach trzeba skontaktować się z firmą Informix i wynegocjować jej warunki. Wiele zagadnień związanych z instalacją i uruchamianiem programu Informix Dynamic Server jest zbliżonych do tych omawianych w podrozdziale poświęconym programowi PostgreSQL. Trzeba jednak pamiętać, że w przeciwieństwie do PostgreSQL, dla programu Informix Dynamic Server dostępna jest komercyjna pomoc techniczna. Jeśli program ten zostanie prawidłowo skonfigurowany, może działać z naprawdę wysoką wydajnością. Jeśli tego właśnie potrzebujesz, powinieneś rozważyć zakup programu IDS. W tym podrozdziale przedstawimy pokrótce proces instalacji programu IDS w wersji dla systemu Linux. Dokładniejsze informacje znajdziesz w dokumencie Installation Guide dostępnym w formacie PDF pod adresem http://www.informix.com/informix/products/linux/5274.pdf Wersję demonstracyjną można załadować, korzystając z witryny http://www.intraware.com |
|
Aby załadować program IDS
Wskazówki
Pakiet instalacyjny zawiera trzy produkty:
|
Aby utworzyć użytkownika informix
Aby założyć katalog instalacyjny Za pomocą polecenia mkdir lub też używając programu Menedżer plików Gnome, należy utworzyć katalog, w którym zainstalowane zostaną produkty firmy Informix. Domyślnie jest to katalog /opt/informix, ale nic nie stoi na przeszkodzie, aby wybrać jakąś inną lokalizację. Aby ustalić wartości zmiennych środowiskowych Odpowiednie wartości zmiennych PATH oraz INFORMIXDIR należy ustalić w pliku .bash_profile znajdującym się w katalogu domowym użytkownika informix oraz wszystkich innych użytkowników, którzy będą łączyć się z serwerem baz danych. W tym celu należy dodać następujące wpisy:
INFORMIXDIR=/opt/informix |
|
Aby zainstalować oprogramowanie firmy Informix Oprogramowanie Informix jest rozprowadzane w standardowym formacie instalacyjnym sytemu Red Hat, czyli RPM. Po zalogowaniu się jako root można zainstalować ten pakiet za pomocą programu Gnome RPM, zgodnie ze wskazówkami przedstawionymi w rozdziale trzecim. Aby uruchomić skrypt instalacyjny
Inicjalizacja programu IDS Po zainstalowaniu programu Informix Dynamic Server należy jeszcze wykonać kilka czynności inicjalizacyjnych, zanim można będzie z niego korzystać. Czynności te zostały krótko opisane w następnym podrozdziale. Dokładniejsze informacje na ten temat znajdziesz w dokumencie Informix Dynamic Server 7.3 Administrator's Guide dostępnym w formacie PDF pod adresem http://www.informix.com/answers/. |
|
|
Aby zainicjalizować program IDS (informacje ogólne)
Teraz powinieneś już mieć możliwość korzystania z programów klientów, na przykład DB-Access, do uzyskiwania połączeń z serwerem, tworzenia tabel i wysyłania zapytań. |
Produkty firmy Oracle
Firma Oracle jest wiodącym producentem profesjonalnych programów do obsługi baz danych. Kilka wersji programów tej firmy działa również na platformie Red Hat Linux. Zwykle dostępne są ich darmowe wersje próbne. Jeśli chcesz dowiedzieć się czegoś więcej o tych programach, zajrzyj na stronę WWW pod adresem
http://platforms.oracle.com/linux/
Oracle 8i to baza danych przeznaczona głównie do stosowania w sieci WWW. Została ona również przeniesiona na platformę linuksową. Oto niektóre z jej zaawansowanych elementów:
Zintegrowany pakiet do gospodarowania zasobami (ERP, Enterprise Resources Planning) - Oracle Applications for Linux.
Środowisko programistyczne pozwalające na łatwe tworzenie, rozprowadzanie i zarządzanie aplikacjami sieciowymi do obsługi baz danych oraz witryn sterownych danymi - Oracle WebDB on Linux.
Narzędzia służące do tworzenia i dystrybucji internetowych baz danych: Oracle Developer oraz Oracle Developer Server on Linux.
W tym rozdziale nauczyłeś się:
|
|
|
|
|
|
Rozdział 8.
178
179
Praca z bazami danych
8
Praca z bazami danych
SQL, czyli Structured Query Language, jest powszechnie używanym językiem obsługi relacyjnych baz danych. |
A jeśli już mówimy o językach: jakiego języka używają serwery baz danych (nazywane również DBMS)? Zwykle jest to język SQL, czyli |
Structured Query Language. Choć implementacje tego języka mogą się nieco różnić w zależności od serwera, większość standardowych poleceń SQL będzie działać prawidłowo z każdą bazą danych określaną jako zgodną z SQL. SQL dzieli się pojęciowo na trzy elementy:
|
Praca z bazami danych
Praca z bazami danych
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
Informix Dynamic Server
Informix Dynamic Server
Informix Dynamic Server
Podsumowanie
PostgreSQL