Buchbesprechung: Beginning PHP4 Databases

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

Webdesign

AuthorImage:[Here we need a little image from you]

[Alessandro]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in it Alessandro Pellizzari 
en to de Harald Radke 

AboutTheAuthor:[A small biography about the author]

Nachdem Alessandro begeistert mit verschiedensten Amiga Rechnern arbeitete, wechselte er zu Linux und ist schon länger als Systemadministrator und Programmierer tätig. Sein Hauptinteresse liegt auf den Gebieten PHP, Python und C Programmierung, dennoch ist er stets auf der Suche nach neuen Interessensgebieten im Bereich Informatik.

Abstract:[Here you write a little summary]

In diesem Artikel wird das neue Buch von Wrox besprochen, das das Aufsetzen und den Einsatz von Datenbanksystemen unter Verwendung von PHP4 erläutert.

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

Einleitung

Heutzutage kommen auf vielen PHP basierten WWW Seiten eine oder mehrere Datenbanken zum Einsatz. Allerdings, wieviele der Programmierer wissen wirklich, wie eine relationale Datenbank funktioniert, welche Möglichkeiten sie bietet oder wie Datenzugriffe optimiert werden?

Dieses Buch kann als guter Ausgangspunkt für Programmierer dienen, die datenbankorientierte Applikationen für den Einsatz im WWW erstellen wollen. Es stellt dem Leser die notwendigen Grundlagen zu Verfügung, um zu entscheiden, welche Datenbank geeignet ist, sowie die Techniken für die Auswahl der besten Tabellenstrukturen und Zugriffsmethoden.

Aufbau des Buches

Das Buch ist in 13 Kapitel aufgeteilt und besitzt darüberhinaus einen 3 teiligen Anhang. Ein 14. Kapitel ist im Netz bei Wrox zu finden.

Nach einer kurzen Einleitung, in welcher der Aufbau des Werkes beschrieben und eine Liste von Verweisen auf WWW Seiten zu finden ist, wird im ersten Kapitel kurz die Sprache PHP vorgestellt, wobei nur der objektorientierte Aspekt etwas genauer analysiert wird. Das zweite Kapitel beschreibt die Grundlagen des Bereiches der Datenbanken, erläutert verschiedene Datenbankmodelle und den Verlauf ihrer jeweiligen Entwicklung in der Vergangenheit. Am Ende stehen bei diesen die RDBMS, ihre Objekterweiterungen und die XML Datenbanken. Im Anschluss daran wird der Zugriff auf Datenbanken unter Verwendung von PHP beschrieben, sowie welche Datenbanken unterstützt werden und die für sie notwendigen Optionen zur Übersetzungszeit.

Von Kapitel 3 an behandelt das Buch Strukturen von Datenbanken, erläutert die Normalisierung von Tabellen und gibt eine kurze Einführung in Entity-Relation Diagramme. Kapitel 4 und 5 behandeln ausführlicher SQL sowie das Erstellen der Strukturen, das Einfügen, Ändern und Abfragen von Daten. Das sechste Kapitel behandelt typische Eigenschaften von Relationalen Datenbankmanagementsystemem wie referentielle Integrität, Trigger und Transaktionen.

Kapitel 7 schließlich beschäftigt sich wieder mit der Programmierung unter PHP. Hierbei wird die Integration der erweiterten SQL in PHP Skripte diskutiert, unter anderem Cursor, Trigger, Views und Indexe. Im achten Kapitel wird die Entwicklung von "Multi Tier" Applikationen mittels PHP beschrieben, sowie die zur Verfügung stehenden Funktionen und Klassenbibliotheken betrachtet, welche den Zugriff auf die Datenbank abstrahieren. Eine tiefergehende Beschreibung von PEAR::DB ist in Kapitel 9 zu finden. Diese wird für alle folgenden Beispiele im Buch verwendet.

Das gesamte zehnte Kapitel widmet sich einem Fallbeispiel, nämlich einer PEAR:DB basierten Anwendung für das Verwalten eingehender Rechnungen und des Zahlungsverkehres, angefangen von der Problemanalyse, über die Definitionen der benötigten Tabellen bis zum letztendlichen Erstellen des Programmcodes.

Das darauf folgende Kapitel ist ganz ähnlich aufgebaut. Hier wird ein Programm zur Verwaltung einer Bibliothek betrachtet, wobei eine objekt-relationale Datenbank, namentlich PostgreSQL benutzt wird. Auch hier werden zuerst die Aufgabenstellung analysiert und danach die Tabellenstrukturen definiert. Aus Platzgründen jedoch ist der Quelltext des Programmes nicht abgedruckt. Diesen kann der geneigte Leser allerdings auf der WWW Seite von Wrox finden.

Von Kapitel 12 an verschiebt sich der Focus auf XML Datenbanken, wobei das Für und Wider im Vergleich zu den relationen Datenbanken betrachtet wird. Der Leser findet hier zudem eine Auflistung verschiedener Implementationen, teilweise kommerziell, teilweise frei erhätlich, von denen am Ende Xindice der Apache Software Foundation vorgestellt wird.
Die Ausführungen reichen von dem Anlegen einer Datenbank bis hin zum Hinzufügen von Daten mittels XML Dokumenten, der Analyse von XPath und XUpdate für die Abfrage und der Aktualisierung von Daten und einer kurzen Einführung zu XQuery.

Kapitel 13 besitzt den gleichen Aufbau wie die Kapitel 10 und 11. Als Fallbeispiel dient eine Applikation zum Austausch von Rezepten, angefangen bei der Problemanaylse bis hin zur Realisierung, mit einer Rechteverwaltung für normale Benutzer und Admins.

Der Anhang widmet sich hauptsächlich der Administration einer Datenbank, Datensicherungsstrategien, der Optimierung, sowie den Funktionen für den Zugriff unter PHP und Apache. Weiterhin wäre hier die Installation von PHP und iODBC unter Linux/Unix zu nennen.

Positiv

Die Autoren verzichten, im Gegensatz zu vielen anderen, auf eine allzu ausführliche Beschreibung der Syntax von PHP oder gar eine ausufernde Einführung. Zu diesem Thema gibt es eine Reihe von Büchern, die besser dafür geeignet sind. Stattdessen liegt der Schwerpunkt von Beginn an auf dem Hauptthema, nämlich den Datenbanken und der PHP Integration.
Die Quelltexte der Beispiele sind verständlich und gut dokumentiert, sei es innerhalb des Codes oder auch ausserhalb.
Die Beispiele bieten dem Leser nützliche Tipps und Tricks.
Die WWW Seite zu dem Buch (am Ende des Artikels zu finden) ist wirklich hilfreich, es gibt dort ein Beispielkapitel des Buches zu lesen, alle Quelltexte der Beispiele sind online und eine Errata zum Buch existiert auch.

Negativ

Verstreut über den Text sind einige Rechtschreibfehler zu finden, welche eventuell vor allem Leser stören könnten, deren Muttersprache nicht Englisch ist. Jedoch sind die Quelltexte fehlerfrei und bereiteten keine Probleme.
Die Korrekturen sind in der Errata auf der WWW Seite zum Buch zu finden.
Ein 2.Teil, etwa "Professional PHP4 Databases", ist (noch) nicht erhätlich. Einige Spezialfälle bedürfen einer tiefergehenderen Analyse, welche aufgrund ihrer Komplexität nicht in dieses Buch passten, das sich ja eher an Neulinge richtet.

Fazit

Das Buch ist ein Volltreffer, eine gute Grundlage für den Einsatz von Datenbanken in PHP Programmen und liefert brauchbare Analysemethoden im Hinblick auf Strukturen von Tabellen.
Viele Aspekte, die in diesem Buch angesprochen werden, werden häufig von Programmierern ignoriert, wodurch es oft zu großen Defiziten in Sachen Geschwindigkeit, Sicherheit und Strukturierung kommt.

Dieses Buch sei jedem angeraten, der sich auf das Neuland des Einsatzes von Datenbanken in PHP4 Applikationen begeben möchte, jedoch auch (oder gerade) Programmierern, welche Datenbanken in dieser Hinsicht bereits einsetzen, hierzu allerdings nur eine eventuell unzureichende Schulung mitgemacht haben, wenn es um die Effizienz geht.

Literaturverweise