|
Datenbank-Server sind auf die Verwaltung von Daten spezialisiert. Diese Arbeit ist die Haupt-Aufgabe fast aller Groß-Computer. Jedes lokale Netzwerk (LAN) bietet selbstverständlich auch einen Datenbank-Server. |
Zur Kommunikation mit Datenbank-Servern hat sich SQL (Standard Query Language)
als weltweit anerkannter Standard durchgesetzt. Jeder ernstzunehmende Datenbank-Server führt SQL-Anweisungen aus. Als User-Interface wird heute ausnahmslos ein gewöhnlicher Browser eingesetzt. |
Server
|
Dienste im Hintergrund |
| Datenbank | Server-Client Architektur für Datenbanken |
| SQL-Server | Standard SQL Datenbank Server |
| Web-Interface | Standard Web-Interface für Datenbank Clients |
| Entwicklung | Ausgewählte Aspekte zur Datenbank-Entwicklung |
| Ausgewählte SQL Datenbank-Server (Opensource oder kostenfrei): | |
| MySQL | Der weltweit erfolgreichste DB-Server |
| SQLite | Portables Leichtgewicht |
| Standard-Kombinationen mehrerer Server: | |
| LAMP | MySQL Server auf Linux (meist mit Apache und PHP) |
| WAMP | MySQL Server auf Windows |
| Internet | MySQL Server im Internet, beim Web-Provider |
| Links |
Ausgewählte
|
Datenbank Server + Client |
|
DatenbankEine Datenbank ist eine Sammlung zusammengehörender Daten.In Datenbanken können Daten aller gängigen Typen (Texte, Zahlen, Datum & Zeit, Bilder, Musik, Video, usw.) gespeichert und abgerufen werden. |
Man fasst verschiedene Daten zu einer Datenbank zusammen, wenn sie Teile einer
gemeinsam verwendeten Lösung sind. Ein Betriebs-Datenbank kann z.B. diese Daten enthalten: KundInnen, MitarbeiterInnen, Lieferanten, Produkte, Lager, usw. |
Gemeinsame NutzungEin wichtiges Merkmal ist die gemeinsame Nutzung der Daten:● Zur Nutzung von (privaten) Daten auf einem einzelnen PC sind die PC-Datenbanken der Office-Programm-Pakete (OpenOffice Base, M$ Access, Filemaker, ...) ausreichend und vorzuziehen: Sie lassen sich mit einfachen Mitteln rasch in Betrieb nehmen und erfordern keine SpezialistInnen: Fortgeschrittene AnwenderInnen können damit umgehen. Es gibt zwar Möglichkeiten, auch PC-Datenbanken gemeinsam zu nutzen, diese sind jedoch nicht zur professionellen Nutzung geeignet: Unsicher, langsam, anfällig gegen Fehler und Manipulation, abhängig von Betriebssystem und anderen installierten Komponenten, ... |
● Die gemeinsame Nutzung von Daten ist für Betriebe so wichtig, dass man im professionellen Bereich nur Server-Client Lösungen einsetzt. Diese bestehen aus 2 Teilen: • Ein einziger zentraler Datenbank-Server verwaltet die Daten. Er ist auf maximale Sicherheit und Geschwindigkeit optimiert und gegen direkte Einwirkung der AnwenderInnen abgeschirmt. • Auf jedem Arbeits-PC befindet sich ein Browser als Client: Diese Programme sind billig und robust, auf jedem PC verfügbar und mit jeder anderen Software verträglich. • Server-Client Lösungen sind schnell und sicher, erfordern jedoch mindestens zur Einführung und bei größeren Änderungen den Einsatz von SpezialistInnen. |
|
Ein Datenbank Server ist eine Software zur Verwaltung
von Datenbanken (Daten-Sammlungen). Typische Verwaltungs-Arbeiten sind z.B.: Suchen und Sortieren von Daten, Ändern von Daten, Neu-Anlage und Löschen von Daten, ... • Der Datenbank-Server läuft normalerweise am zentralen Server-PC jedes lokalen Netzwerks. Dieser PC verwaltet gemeinsame Resourcen, dort ist jedoch kein Arbeitsplatz ! • Um die Dienste des Servers zu nutzen, braucht man ein lokalen Netzwerk (LAN), an welches jeder Arbeits-PC angeschlossen ist. • Prinzipiell kann man jeden Datenbank-Server auch im Internet nutzen. Das ist kein technisches Problem. Wenn ein Internet-Zugang erwünscht ist, dann kann man die Zugangs-Rechte (meist nur auf ausgewählte Teile der Daten) freigeben. |
Ein Server ist ein Hintergrund-Programm, welches
Aufträge entgegennimmt, jedoch von sich aus nichts unternimmt. • Ein Server 'horcht' (listen) auf Aufträge, die von verschiedenen AnwenderInnen (Clients) aus dem lokalen Netzwerk (LAN) oder aus dem Internet kommen, und versucht diese zu erfüllen. • Datenbank-Server werden von Freunden kryptischer Abkürzungen auch als RDBMS (Relational DataBase Management System) bezeichnet. |
|
Ein Daten-Client (User-Interface) ist die Software-Schnittstelle
zwischen Server und menschlichen AnwenderInnen. Das Programm vermittelt
zwischen AnwenderIn und Datenbank-Server. Der Client bietet z.B. die Möglichkeit, Such-Begriffe einzugeben, die Treffer übersichtlich anzuzeigen, zu sortieren, usw. • Ein Daten-Client verwaltet selbst keine Daten ! • Client-Programme müssen auf jedem einzelnen PC installiert sein, von dem ein Zugriff auf die gemeinsam verwendeten Datenbanken erfolgen soll. |
• Moderne Client-Programme bieten selbstverständlich Fenster mit komfortabler Bedienung über Maus und Tastatur. Standard User Interface für Datenbanken bestehen aus 2 Teilen: • Ein User-Interface Programm läuft am Server und vermittelt zwischen Datenbank-Server und den menschlichen Clients. Dieses Server-Programm-Paket wird über Webseiten gesteuert und erzeugt selbst Webseiten mit den gelieferten Daten. Auf jedem AnwerderInnen-PC läuft ein (beliebiges) Browser-Programm: Damit kann man die Webseiten des User Interface anfordern, steuern und betrachten.. |
|
PC-Datenbanken
PC-Programme zur Daten-Verwaltung kombinieren alle funktionalen Teile in einem einzigen Programm:
Daten-Verwaltung ('Server') und User-Interface ('Client'). Eine Trennung der Teile ist
größtenteils oder ganz unmöglich.• PC Daten-Programme setzen keine Kenntnisse von Daten-Strukturen oder Datenbank-Technik voraus und erlauben daher einen raschen Einstieg. (Sie tolerieren aber auch schwere Fehler...) • Solche Programme eignen sich gut für kleine Mengen von Daten, die ausschließlich am eigenen PC verwendet werden. • PC-Datenbanken bieten umfangreiche Möglichkeiten zur Gestaltung des User-Interface. Es ist kostengünstig und sinnvoll, ein einfaches Interface ('Formulare', 'Anfragen', 'Berichte') herzustellen. • Für diese Art der Anwendung gibt es zahlreiche FreeWare-Programme (OpenOffice Base) und kommerzielle Software (Access, Filemaker, ...). |
• Ein PC-User-Interface ist - im Gegensatz zu den Daten - nicht portabel. Größere Entwicklungen sind teuer und meist an die Person oder den Betrieb des Entwicklers gebunden. Daher ist jede größere Investition in ein PC-User-Interface eine Sackgasse. • Die professionelle Verwendung ist möglich, jedoch problematisch: Solche Lösungen erereichen nicht die Leistungsfähigkeit von Server-Client Lösungen. Die Sicherheit ist relativ gering. Sie kann meist auch nicht verbessert werden, weil die Dokumentation mangelhaft oder nicht vorhanden ist. Es werden viele (teure) Abhängigkeiten hergestellt: Betriebssystem, Software, Hersteller, Entwickler, ... Bei einem Umstieg auf ein modernes System muss man das gesamte User-Interface verwerfen. |
|
Die Trennung von Daten-Server und Client ist die Bedingung
für eine ernstzunehmende Verwendung in größerem Rahmen.
●
Nur bei Trennung der Aufgaben können mehrere Personen oder Programme
auf zentral verwaltete Daten zugreifen.
● Wichtige Daten dürfen nur an einer einzigen Stelle (zentral) verwaltet werden. Die Daten sind nur dann zu jedem Zeitpunkt und für jeden Client garantiert eindeutig, wenn sie nur an einem einzigen Punkt verwaltet werden. Andernfalls kann es z.B. vorkommen, dass eine Transaktion (Vergabe einer Rechnungs-Nummer, eines Sitzplatzes in Theater oder Flugzeug, ...) an mehreren Stellen mit widersprüchlichen Ergebnissen durchgeführt wird. |
Die Trennung der Aufgaben bedingt auch eine Spezialisierung: • Der Datenbank-Server muss die Daten rasch und zuverlässig verwalten, braucht jedoch kein User-Interface. Die Server-Software läuft nur einmalig, normalerweise am Server-PC eines lokalen Netzwerks. • Die Client-Software bietet ein ergonomisches User-Interface und vermittelt zwischen den menschlichen AnwenderInnen und dem Datanbank-Server. Sie verwaltet selbst keine Daten. Das Programm muss auf jedem einzelnen PC installiert sein. |
|
Es gibt Client-Programme, die auf einen bestimmten Datanbank-Server spezialisiert sind. • Man ist gezwungen, laufend in neue Versionen zu investieren, auch wenn man diese nicht benötigt. Alternative Produkte kann man nicht einsetzen, auch wenn sie besser oder preisgünstiger sind. • Man kann auf neue Versionen verzichten, muss alte Versionen aber auch dann erhalten, wenn sie vom Hersteller nicht mehr unterstützt werden. Das wird im Laufe der Zeit immer teurer. • Man kann zu einem anderen Hersteller oder zu einem portablen Standard-Produkt wechseln. Dann muss man alle Investitionen in das User-Interface abschreiben und dieses neu kaufen oder erstellen lassen. • Jede weitere Investition in eine derartige Sackgasse vergrößert die Abhängigkeit. |
Die Forderung nach einheitlichen Standards und frei austauschbaren Komponenten
wird durch ↓ SQL erfüllt. • Die Daten lassen sich ohne (oder mit geringem) Aufwand auf andere Server übertragen. • Je nach Fachkenntnis und Disziplin der EntwicklerInnen ist auch das User-Interface Standard-konform programmiert und daher portabel. |
SQL Datenbank Server |
|
SQL (Standard Query Language)ist der anerkannte internationale Standard für die Kommunikation zwischen Datenbank-Server und -Client.Alle professionellen Datenbank-Programme beherrschen SQL.
●
Jeder Datenbank-Server nimmt SQL-Aufträge entgegen - unabhängig
von Art, Standort und Anzahl der Clients.
● Jeder Datenbank-Client kann SQL-Aufträge an einen SQL-Server erteilen und die von ihm erhaltenen Daten verwenden - unabhängig von Art und Standort des Servers. |
Bedingung für die Anwendung ist eine saubere Trennung zwischen ↑ Daten-Server und -Clients sowie zwischen ↑ Verwaltung und User-Interface. In diesem Fall kann jeder Server beliebig viele Clients versorgen. Umgekehrt kann ein Client mit jedem SQL-Server arbeiten - Auch mit mehreren SQL-Servern, wenn diese erreichbar sind und wenn er über Zugangs-Rechte verfügt. |
Einfacher TextSQL verwendet für die Anweisungen einfachen Text (→ Mime-Type text/plain). Deshalb ist es besonders einfach, SQL-Befehle mit vielen verschiedenen Programmen zu erzeugen.● Die Entwicklung kann rasch und kostengünstig erfolgen, da SQL ein Englisch-Kauderwelsch verwendet, welches man relativ rasch lernen kann. Einmal erlernt kann man das Wissen auf jede beliebige Datenbank und jeden SQL-Server anwenden. ● SQL kommt mit einer erstaunlich kleinen Anzahl von Anweisungen aus. Das Geheimnis liegt in einer klugen Kombination der Befehle. |
● SQL-Anweisungen verwenden nur die 127 → ASCII-Zeichen und werden daher weltweit von jedem PC, Betriebssystem und Programm ohne Übersetzung verstanden. ● In einer globalen Umgebung müssen die Daten natürlich alle international verwendeten Zeichen enthalten. Dazu verwendet man den Standard Unicode Zeichensatz, meist in UTF-8 Codierung. ● Spezielle Erweiterungen machen es möglich, auch binäre Daten (Blobs) mit SQL zu verwalten, z.B. Bilder, Audio, Video, Programme, ... |
|
Ein einfacher Auftrag lautet in SQL-Syntax z.B.
Select vorname,zuname from personen;
Damit werden die Namen aus der Tabelle personen der Datenbank
angefordert.Jedes SQL Client-Programm kann diese SQL Anweisung an jeden beliebigen SQL-Server senden. |
Als Antwort sendet der SQL-Server die gewünschten Daten,
z.B. je eine Zeile Text mit den Daten aller gefundenen Personen. Normalerweise sind die Voraussetzungen dazu erfüllt: Die Verbindung (Netzwerk, Internet) zwischen Client und Server funktioniert, in der Datenbank gibt es eine Tabelle personen mit Daten, der Client verfügt über die Zugangs-Rechte zu den Daten. |
SQL-VersionenSQL ist als Standard eindeutig definiert. Wie wie jedes andere 'lebende' Produkt wird SQL an die modernen Anforderungen angepasst, daher gibt es verschiedene Versionen.Größere Datenbank-Lösungen sind umfangreich und teuer. Aus diesem Grund erfolgt die Entwicklung und Wartung meist sehr konservativ. Daher verwenden viele DB-Lösungen ältere SQL-Versionen. Neue Versionen setzen sich (für IT-Verhältnisse) nur relativ langsam durch. ♣ Tipp: Verwenden sie die komfortablen Möglichkeiten neuer Versionen nur für solche Entwicklungen, deren Software mit Sicherheit damit arbeiten kann. |
SQL-Dialekte• Verschiedene SQL-Server und -Client Programme können nicht alle Standard SQL-Anweisungen verarbeiten.Das betrifft insbesondere kleine und einfache Anwendungen. Versierte EntwicklerInnen kennen und vermeiden solche Anweisungen. • Anbieter kommerzieller Datenbank-Produkte bieten oft Möglichkeiten, die über den Standard hinausgehen. Die Verwendung diese Dialekte macht die Entwicklung bequemer, manchmal sogar die Anwendung rascher. ♣ Tipp: Verwenden sie nur Standard SQL, niemals Hersteller-spezifische Erweiterungen. Andernfalls verzichten sie auf den größten Vorteil von SQL - die Kompatibilität und Portabilität von Daten und Programmen. |
Server-VerwaltungDa ein Server prinzipiell nicht manuell bedienbar ist (kein User Interface hat), erfolgt die Verwaltungs-Arbeit über eigene Service-Programme.Diese Programme können am Server-PC installiert sein, meist erfolgt die Verwaltung jedoch (nach entsprechender Anmeldung) von einem PC des lokalen Netzwerks. ♣ Gute SQL-Server Verwaltungs-Programme verwenden ausschließlich SQL-Anweisungen. |
Verwaltungs-Programme sind wesentlich kleiner und einfacher als die Datenbank-Clients zur normalen Anwendung. Sie sind allgemein gehalten, unabhängig von der jeweiligen Anwendung. Verwaltungs-Software wird von kommerziellen Herstellern meist zusammen mit ihren SQL-Servern angeboten. Ein typisches Verwaltungs-Programm ist z.B. → phpMyAdmin |
Daten-Import und ExportJeder gängige SQL-Server bietet (über ein Verwaltungs-Programm) die Möglichkeit zum Import und Export der Daten.
●
Die Kompatibilität und Portablilität der Daten
ist daher kein Problem: Die eigenen Daten lassen sich bei Bedarf auf jeden
beliebigen SQL-Server übersiedeln.
Das ist allerdings nur bei absoluter Standard-Treue gewährleistet.♣ Tipps: Struktur und Daten getrennt exportieren. Die Struktur sollte als reiner → ASCII-Text in Form von SQL-Anweisungen gespeichert werden. Daten werden entweder als SQL-Anweisungen ('Dump') oder als → XML-Daten exportiert, am besten mit dem internationalen → Unicode Zeichensatz in der Codierungs-Variante → UTF-8. |
Daten-Sicherung (Dump)Ein besonderer Fall von Export und Import ist die Daten-Sicherung: Sie wird am besten automatisch ausgeführt.• Man sichert am besten gestaffelt, z.B. in getrennten Versionen täglich, wöchentlich und monatlich. • Die Sicherung ist nur dann sinnvoll, wenn ihre Brauchbarkeit (durch Import aller Daten) erwiesen und zusätzlich durch Stichproben abgesichert ist. • Bei kleinen und mittleren Lösungen wird während des Daten-Exports die normale Anwendung gesperrt. Großrechner-Datenbanken sind dafür zu umfangreich, dort erfolgt die Sicherung mit besonderen Maßnahmen während des laufenden Betriebs. |
Client-Software• Die spezifischen Teile einer Datenbank-Lösung sind im Gegensatz zu den Daten wenig oder gar nicht portabel:• In der Zusammenstellung, im Layout und in der Funktion des User-Interface liegt das jeweilige Fachwissen. ● Dieser Teil einer Datenbank erfordert in der Praxis den weitaus größten Aufwand: Bei allen anderen Teilen kann man sich auf Standard-Komponenten stützen. Die Einrichtung eines optimalen User-Interface erfordert jedoch viel Zeit und Fachkenntnisse sowohl von Datenbanken als auch von der jeweiligen Anwendung. Zur Gestaltung der individuellen Datenbank-Teile gibt es zahlreiche Datenbank Client-Programme. Sie waren in der IT-Urzeit wichtig, sind heute jedoch überholt. Rechts einige der schwerwiegenden Nachteile. Im nächsten Kapitel ↓ wird die heute übliche Datenbank-Nutzung vorgestellt: Die spezielle Client-Software wird durch gewöhnliche Browser ersetzt. |
▼ Sie müssen auf jedem einzelnen PC installiert werden. Jede Einbindung zusätzlicher PC, jedes Update auf eine neue Version erfordert viel Arbeit. ▼ Je größer die Anzahl beteiligter PC, desto öfter gibt es Probleme mit dem installierten System: Man muss den AnwenderInnen ein einheitliches System (ohne Admin-Rechte) aufzwingen, oder enorm viel Wartungs-Aufwand investieren. ▼ Viele Programme laufen nur auf einem bestimmten Betriebssystem oder erfordern weitere Einschränkung (bestimmte Versionen, inkompatibel mit anderer Software, ...) ▼ Die Software ist relativ leicht manipulierbar: Programme am eigenen PC sind verwundbar, z.B. durch eingefangene Viren. ▼ Die Wartungs-Arbeiten müssen laufend wiederholt werden. Das ist für die Kosten-Struktur eines Unternehmens besonders unangenehm. ▼ Hohe Verfügbarkeit der Client-Software erfordert teure Fachkenntnisse und deren laufende Ergänzung durch Schulungen. Diese Investition ist nicht portabel. ▼ Die Bereitstellung der Daten (oder eines Teils davon) im Internet kann nicht mit der gleichen Software erfolgen und erfordert einen zusätzlichen hohen Aufwand. Alle Argumente sprechen dafür, moderne Datenbank-Lösungen ausschließlich mit↓ Internet-Technologie auszuführen. |
Datenbank mit SQL und Web-Technologie |
|
|
Moderne Datenbanken arbeiten ausschließlich mit dieser Architektur:
●
Ein zentraler SQL Datenbank-Server verwaltet die Daten.
● Als Client-Software wird ein gewöhnlicher Browser verwendet. |
Diese Variante erfordert zwar einigen zusätzlichen Aufwand, bietet jedoch insgesamt so viele Vorteile, dass alle anderen Varianten nur mehr für Kleinst-Datenbanken auf privaten Einzel-PC verwendet werden. |
|
▲ Damit fällt der gesamte Aufwand für Installation und Wartung der Client-Software weg, und damit meist der größte Kosten-Faktor. ▲ Die Verfügbarkeit auf Client-Seite ist unschlagbar hoch. Es kommt nur sehr selten vor, dass der Browser (oder wenigstens einer der Browser) nicht funktioniert. In den meisten Fällen können sich AnwenderInnen ohne teures IT-Personal selbst helfen. ▲ Die Client-Software kann nicht manipuliert werden. Angriffe sind zwar möglich, können jedoch am Server wesentlich besser abgewehrt werden. ▲ Die gesamte Lösung wird zentral verwaltet und kontrolliert. Das verbessert die Qualität und senkt die Kosten. ▲ Nicht nur die Daten sondern auch die investierten Fachkenntnisse sind - bei kluger Planung - portabel. ▲ Der Zugang zu den Daten erfolgt im lokalen Netzwerk (Intranet) und im Internet mit der gleichen Technologie. Das ist einfacher und spart Resourcen. ▲ Die investierten Fachkenntnisse des IT-Personals sind portabel, d.h. sie können für andere Datenbanken oder Server ebenso angewendet werden wie für beliebige andere Web-basierte Lösungen. |
AufwandDamit eine Datenbank-Lösung über Browser zugänglich ist, muss die komplette Web-Technologie aufgebaut werden. Dieses Argument fällt jedoch in modernen Betrieben und Organisationen weg: Dort wird ohnehin ein eigener Server-PC betrieben, der als Mehrzweck-Server arbeitet, d.h. als Webserver, Datei-(File)-Server, MailServer, Datenbank-Server usw.
●
Man benutzt die vorhandene Technologie zusätzlich für den
Zugriff auf die Datenbank.
• Ein Browser muss mit Webseiten versorgt werden. Dazu braucht man einen Webserver: Der Server erhält Anforderungen (→ HTTP-Request) von den Browsern aller PC aus dem lokalen Netzwerk und sendet als Antwort die gewünschten Webseiten. • Gewöhnliche (statische) Webseiten (Dateien *.htm) sind für Datenbanken nicht geeignet, da sie immer den gleichen Inhalt anzeigen. Man benötigt dynamische Webseiten, d.h. Seiten die für jede Anfrage eigens hergestellt werden. Solche Webseiten sind als Antwort-Seiten von Internet Suchmaschinen allgemein bekannt. • Zur Herstellung von dynamischen Webseiten verwendet man Programme, die mit dem Webserver zusammenarbeiten (CGI-Programme). Diese Programme formulieren SQL-Anweisungen, senden sie an den Datenbank-Server, und verpacken die Antwort-Daten in (dynamische) Webseiten. • In den CGI-Programmen liegt das meiste Fachwissen einer Datenbank-Lösung. Typische CGI-Programme liegen als Text-Dateien (Script-Programme, z.B. *.pl, *.php ) vor. • Zur Ausführung der CGI-Programme benötigt man Interpreter-Programme (z.B. Java, Perl, PHP, Python, ...), die am Server-PC installiert werden. |
|
Die einfache und flexible Bedienung der Datenbank - durch jeden Browser an jedem
(zugelassenen) PC erfordert im Hintergrund eine relativ komplexe Technologie: Typischer Ablauf einer Datenbank-Anfrage: Browser• Am Client-PC wird ein Browser gestartet. Man klickt den Link zum Datenbank-Server. Die Anmeldung kann automatisch erfolgen oder mit Hilfe eines Dialogs (Name, Passwort).Man erhält eine Start-Webseite (Splash-Screen) mit Links zu allen wichtigen Datenbank-Arbeiten, z.B. Daten suchen, neu anlegen, ändern, usw. • Je nach auszuführender Arbeit wird von der Arbeits-Webseite ein Auftrag an den Server gesendet. Die Verwendung von Browsern als User Interface hat entscheidende Vorteile: Auf jedem PC, jedem Betriebssystem, mit jedem Browser verwendbar. Kein Aufwand für Installation oder Update. WebserverDie Datenbank-Aufträge der AnwenderInnen (Clients) gelangen zuerst an den Webserver, der sie an das entsprechende Empfangs-Programm weiterleitet.• Jede professionelle Datenbank arbeitet mit einem Webserver zusammen. Meist wird dazu der Standard Webserver → Apache verwendet. |
Ein Empfangs-Programm (meist in der Programmiersprache PHP,
daher *.php) nimmt den Client-Auftrag entgegen. • Entweder ist im Auftrags-Text bereits der SQL-Befehl enthalten, oder das Programm erzeugt den SQL-Text nach den User-Angaben. • Jeder für Datenbanken verwendete Webserver arbeitet zu diesem Zweck mit mindestens einer modernen Programmiersprache zusammen, z.B. Java, Perl, PHP, Python, ... Das passende Datenbank-Modul der Programmiersprache (z.B. das MySQL-Modul) muss installiert sein. • Der SQL-Befehl wird vom Programm an den Datenbank-Server gesendet. Der Datenbank-Server (z.B. MySQL) befindet sich bei kleineren Systemen am gleichen PC, bei größeren Systemen auf einem eigenen PC. • Der Datenbank-Server nimmt den SQL-Befehl entgegen und liefert die Antwort - meist in Form längerer Texte - zurück an das (PHP)-Programm. Das Programm erhält den Antwort-Text vom Datenbank Server und erzeugt daraus eine (dynamische) Webseite. Diese besteht aus gewöhnlichem → HTML-Code, wird jedoch nicht als Datei *.htm gespeichert sondern sofort (als Datenstrom) an den Webserver übergeben. Der Webserver erhält die fertig hergestellte HTML Webseite und sendet sie an den Browser Der Browser erhält als Antwort die erzeugte Webseite und zeigt die Daten an. |
Datenbank Entwicklung |
|
Standard-KomponentenModerne Datenbanken verwenden so weit wie möglich Standard-Komponenten, die keine Entwicklung und nur wenig Wartung brauchen:► SQL-Server, Webserver, Netzwerk, Browser. Diese Komponenten benötigen selbst bei luxuriöser Ausstattung nur geringen finanziellenb Aufwand. |
Datenbank-DesignDie Brauchbarkeit einer DB-Lösung hängt stark von der Organisation ab, d.h. wie die geschickt die Daten auf Tabellen aufgeteilt und miteinander verknüpft sind.► Diese Arbeit erfordert Fachkenntnis, Erfahrung und Zeit ! ► Sie muss vor Beginn der Programmierung oder Adaptierung abgeschlossen werden ! |
Dynamische WebseitenDie Datenbank-Entwicklung in einem modernen Umfeld beschränkt sich fast ausschließlich auf die Erstellung oder Anpassung von dynamischen Webseiten.● Alle modernen Programmiersprachen (Java, Perl, PHP, Python, ...) bieten die Möglichkeit dazu: • Die hergestellten Webseiten enthalten Formulare mit Bedienungs-Elementen (Buttons, Text-Felder, Auswahl-Listen, ...) • Mit dem Absenden des Formulars gelangen die Anweisungen der AnwenderInnen an ein Empfangs-Programm. Dieses erstellt daraus SQL-Befehle und sendet sie an den Datenbank-Server. • Die Antwort des Servers besteht normalerweise aus einem mehr oder weniger umfangreichen Text. Dieser wird vom Programm analysiert und/oder in eine HTML-Quellcode verpackt und als dynamische Webseite an den Browser gesendet. ● Moderne Programmiersprachen sind modular aufgebaut: Je nach eingesetztem Datenbank-Server wird das passende Datenbank-Modul geladen. Oft stehen eigene Module für spezielle Aufgaben zur Verfügung, z.B. Herstellung von HTML-Webseiten, Formulierung von SQL-Anweisungen, Aufbereitung der vom SQL-Server erhaltenen Daten, (Socket)-Verbindung mit entfernten Servern, etc. |
ProgrammiersprachenDie Programme zur Herstellung der dynamischen Webseiten sind in den meisten Fällen Script-Programme: Das sind Text-Dateien, welche die Anweisungen der jeweiligen Programmiersprache in lesbarem Klartext enthalten, z.B. *.pl (→ Perl) oder *.php (→ PHP).• Das macht die Entwicklung im Vergleich zu binären Programmen (z.B. *.exe) rasch, einfach und billig. Das nötige Fachwissen ist leicht und kostengünstig zu erhalten, und kann nicht nur auf Datenbanken sondern auf fast alle denkbaren IT-Aufgaben angewendet werden. • Jeder Standard Webserver ( → Apache) kann mit allen gängigen Programmiersprachen zuzsammenarbeiten. Es ist daher möglich und in größeren Lösungen auch üblich, Programme verschiedener Programmiersprachen miteinander zu kombinieren. Bei sauberer Programmierung sind die Script-Programme portabel, d.h. ohne jede Änderung auf jedem PC/Betriebssystem sofort einsetzbar. Das ist ein wichtiges Argument zur Sicherung des investierten Aufwands. |
Programm-GeneratorenDa Script-Programme aus einfachem Text bestehen, ist es naheliegend, auch die Script-Dateien selbst durch übergeordnete Programme herzustellen.Gut entwickelte Programme lassen sich mit dieser Technik sogar automatisch verbessern oder ergänzen. Das klingt kompliziert, ist aber in der Praxis vergleichsweise einfach: Wenn die Infrastruktur einmal installiert ist wie beschrieben, dann leistet sie auch diese Arbeit ohne Änderung der Komponenten. |
Programm-PaketeModerne komplexe Programm-Pakete bestehen meist aus einer Mischung von gleichbleibenden HTML-Webseiten, dynamischen Webseiten (= Script-Programmen) und Programm-Generatoren zur Herstellung weiterer Webseiten und Script-Programme nach Bedarf.Da sich solche umfangreichen Pakete fast immer auf überall installierte (kostenlose) Standard-Komponenten stützen, sind sie meist ausgezeichnet portabel und rasch einsetzbar. |
|
Beispiele komplexer Datenbank-Pakete: Terminverwaltung, Textverarbeitung (Content Mangement CMS), Blog, eLearning, Warenwirtschaft, Buchhaltung, ... Das kostenfreie Datenbank-Verwaltungs-Programm → phpMyAdmin ist auf fast jedem (MySQL) Datenbank Server installiert. Es besteht aus > 600 einzelnen Dateien, die meisten davon sind PHP Script-Programme. |
Unzählige komplexe Programm-Pakete sind kostenfrei im Internet erhältlich. Die Qualität ist teilweise professionell, die Performance oft etablierten kommerziellen Paketen sogar überlegen. Allerdings gibt es keine Garantie für die korrekte Funktion, keine abrufbare Unterstützung, ... |
|
Die Entwicklung neigt dazu, immer mächtigere Datenbank-Pakete einzusetzen.
Dadurch sinkt der Anteil der Programmier-Arbeit. ► Der Aufwand verlagert sich auf die Adaptierung der vorgefertigten Lösung für die gewünschte Aufgabe. |
In der Praxis erfüllen allerdings nur wenige Programm-Pakete diesen hohen Anspruch: |
LAMP (Linux + Apache + MySQL + PHP) |
|
|
Mit diesem Kürzel bezeichnet man die meist-verwendete Standard-Lösung
für kleinere und mittlere Netzwerke. Die Komponenten sind in jeder als Server vorgesehenen Linux-Distribution enthalten. Man kann die komplette Zusammenstellung • kostenlos aus dem Internet laden (meist einige GB !), • als professionelles Distributions-Paket kaufen oder • eines der Pakete verwenden, die für wenig Geld in der DVD fast jeder Linux-Zeitschrift enthalten ist. |
Die Namen-gebenden Bestandteile sind • Linux-Betriebssystem • Apache Webserver • MySQL Datenbank Server • PHP Programmiersprache ► Die Komponenten sind vom Distributor bereits aufeinander abgestimmt, und je nach Version vorbereitet oder fertig installiert und sofort lauffähig. ► Mit dieser Ausrüstung lässt sich in jedem Netzwerk eine Datenbank-Lösung in professioneller Qualität betreiben. |
|
Weitere nützliche Komponenten sind in fast jeder Linux Server Distribution enthalten: • Die Programmiersprachen Java, Perl und Python, die ebenso wie PHP zur Herstellung dynamischer Webseiten und für den Datenbank-Zugang verwendet werden können. • Die passenden Module und Treiber für SQL, HTML, CGI usw. der genannten Programmiersprachen. • Weitere gemeinsam nutzbare Server, z.B. Datei-(File)-Server, Druck-(Print)-Server, Mail-Server, Zeit-(NTP)-Server, DHCP-Server, FTP-Server, ... |
Er versorgt alle angeschlossenen PC rasch und zuverlässig mit den gemeinsam genutzten Diensten und Daten. |
|
• Das erfordert sehr gute Adminstrations-Kenntnisse, erspart dem Server jedoch den enormen Aufwand für das grafische User-Interface (Fenster & Maus, Animationen, Schatten und alle anderen grafischen Spielereien). • Ein derartiger Server läuft auch auf bescheidener Hardware (Prozessor, Speicher) unglaublich schnell. |
Virtuelle ServerMan kann einen kompletten Server-PC (Hardware, Betriebssystem und alle LAMP-Komponenten) mit einem → Virtualisierungs-Programm simulieren.• Das erfordert relativ viel Leistung, bietet jedoch für Enwicklung und professionelle Anwendung viele interessante Möglichkeiten. • Komplett eingerichtete virtuelle LAMP-Server gibt es zum kostenlosen Download (meist einige GB !). |
|
♦ Details zu den Themen: LAMP-Server, Linux, Webserver (Apache), Datenbank-Server (MySQL), Virtuelle PC |
♦ Details zur Entwicklung dynamischer Webseiten und Datenbank-Lösungen mit Perl, PHP |
WAMP (Windows + Apache + MySQL + PHP) |
|
|
Auch auf Windows-PC lässt sich ein gut funktionierendes System zur
Datenbank-Anwendung installieren: • Alle Komponenten sind kostenfrei erhältlich. • Man muss sie allerdings aus dem Internet laden (100-200 MB), selbst installieren und konfigurieren. |
Die Namen-gebenden Bestandteile sind • Windows-Betriebssystem • Apache Webserver • MySQL Datenbank Server • PHP Programmiersprache Diese Lösungs-Variante ist weniger für die praktische Anwendung geeignet. Man kann damit jedoch Erfahrungen sammeln: Fast alle selbst hergestellten Komponenten (SQL-Strukturen und Daten, Script-Programme) sind auf Linux portabel. Ein WAMP-System ist daher eine brauchbare Vorbereitung oder Ergänzung zu einem ↑ LAMP-Server. |
| ▼ Auf Windows werden gelegentlich noch spezialisierte Datenbank-Programme verwendet (Access, Filemaker, ...). Sie lassen sich zwar meist mit einem SQL Server kombinieren, das ist jedoch eine aufwändige und teure Sackgasse. |
►
Man kann ein WAMP-System dazu verwenden, solche Lösungen schrittweise
abzubauen und auf ein modernes System mit zentralen SQL-Server und Web-Zugriff
zu übersiedeln. ► Eine interessante Variante ist die Installation von SQLite: Damit lassen sich einfache SQL-Experimente ausführen. |
Windows-ServerDie verbreiteten Desktop-Versionen von Windows wurden in den letzten Jahren hauptsächlich mit grafischen Effekten angereichert. Das absorbiert einen großen Teil der Prozessor-Leistung für Spielereien, die ein Server nicht braucht und die dort auch niemand bewundert.▼ Insbesondere Vista benötigt so viele Resourcen, dass derartige Systeme auch als Kleinst-Server nicht in Frage kommen. Man kann zwar viele der am Server höchst unerwünschten Effekte abschalten, der Aufwand allein dafür übersteigt jedoch meist jenen für die Installation eines kompletten Linux Servers ... ♣ Tipp: Verwenden sie für Experimente am besten Windows 2000 oder WinXP. |
Die Windows Server-Versionen sind naturgemäß weit besser als Server geeignet. Sie sind ausgesprochen teuer und erfordern zum vernünftigen Einsatz speziell (teuer) ausgebildetes Personal. Solche Lösungen kommen für größere Unternehmen in Frage, die sich an diesen Hersteller gebunden haben. In diesem Fall verwendet man nicht die OpenSource Komponenten, sondern Datenbank-Server und Webserver des gleichen Herstellers. Auf Windows-Servern werden dynamische Webseiten mit .NET bzw. ASP hergestellt, einer teuren Entwicklungs-Umgebung des gleichen Herstellers. • Es ist meistens problemlos möglich, Daten von einem Windows Server auf einen Standard LAMP Server zu portieren. • Die Investition in das gesamte User Interface ist jedoch meist verloren... |
|
♦ Details zu den Themen WAMP-Server, Windows, Webserver (Apache auf Windows), Datenbank-Server (MySQL auf Windows), SQLite |
♦ Details zur Installation der Programmiersprachen Perl, PHP und zum Konsolen-Werkzeug Cygwin auf Windows. |
Web-Provider |
|
|
Professionelle Web-Provider (und einige FreeWeb Provider) bieten auch die Nutzung
eines Datenbank-Servers. Fast immer handelt es sich um leicht modifizierte
↑ LAMP-Systeme. In manchen Fällen kann man (z.B. mit phpMyAdmin) direkt auf Server und Webspace zugreifen. Das eignet sich jedoch nur für wenige ganz einfache Experimente. |
♣
Wenn sie ernsthaft vorhaben, bei ihrem Web-Provider eine Datenbank zu betreiben,
dann sollten sie für Vorbereitung, Entwicklung und Test unbedingt ein
eigenes System betreiben: ♣ Je ähnlicher ihr Entwicklungs-Server zum LAMP-Server des Providers eingerichtet ist, umso größer ist die Chance, alle Komponenten problemlos zum Provider zu übersiedeln. |
| Größere Betriebe und Organisationen betreiben selbst einen Internet Server. Dabei wird typisch ein Teil der eigenen Daten auch im Internet allgemein zugänglich gemacht, z.B. die für KundInnen interessanten Teile der Artikel-Datei. | Dazu wird die gleiche Technologie verwendet, wie hier für ein lokales Netzwerk beschrieben. Allerdings wird zusätzlich sehr viel in Sicherheit investiert, um einen Angriff auf die Daten oder gar ein Eindringen in das eigene Netzwerk zu unterbinden. |
|
|||||||||||||||
|
Wikipedia:
SQL,
MySQL,
Firebird,
PostgreSQL,
SQLite,
MaxDB,Oracle, SAP, OLAP, XQuery, ...
SQL,
Datenbanken,
MySQL,
Interbase,
PostgreSQL,
Oracle, ● OpenDB (de): OpenSource Datenbank Systeme
XQuery - Alternative Sprache zur Datenbank-Kommunikation auf XML-Basis.
SourceForge: OpenSource Software:
database (6900 Projekte),
sql (2000),
rdbms (200),
mysql (6000),
firebird (150),
postgre (15),
sqlite (300),
oracle (670), ...
|
||||||||||||||
|