MySQL 5 - Däßler, ReadingSample€¦ · MySQL 5 Rolf Däßler , ÊUÊ4 ÊUÊ 7 -Ê -/ ,- , Der...

Post on 21-Apr-2018

220 views 1 download

Transcript of MySQL 5 - Däßler, ReadingSample€¦ · MySQL 5 Rolf Däßler , ÊUÊ4 ÊUÊ 7 -Ê -/ ,- , Der...

MySQL 5Rolf Däßler

LERNEN • ÜBEN • ANWENDEN

DAS EINSTEIGERSEMINAR

Der erste Teil vermittelt die not- wendigen theoretischen Grund-lagen. Schritt für Schritt werden Sie mit den wesentlichen Pro-grammfunktionen und Features vertraut gemacht.

Im zweiten Teil vertiefen und festigen Sie Ihren Wissens-stand. Dazu finden Sie diverse Übungs aufgaben mit ausführ- lich kommentierten Lösungen.

Dieser Teil schlägt eine Brücke zwischen Theorie und Praxis. In komplexen, durchgängigen Praxisbeispielen wenden Sie nun die in Teil I erlernte und in Teil II geübte Theorie an.

MySQL 5MySQL ist ein kompakter Datenbankserver, der sich auf Grund seiner Leistungsfähigkeit und kostenfreien Nutzung zum populärsten Open Source-Datenbanksystem der Welt entwickelt hat. Den Erfolg von MySQL beweisen mehrere Millionen Installationen weltweit und Zehntausende Downloads pro Tag. Das vorliegende Einsteigerseminar vermittelt einen praxisnahen Einstieg in den Umgang mit dem Datenbanksystem MySQL in der Version 5. Das Buch bietet eine syste-matische Einführung in ausgewählte Konzepte und Sprachelemente von MySQL, die anhand ausführlich kommentierter Beispiele erläutert werden. Das Einsteigerseminar setzt keinerlei Daten-bankkenntnisse voraus und verzichtet weitgehend auf Datenbanktheorie. Thematisch ist das Buch in vier auch unabhängig voneinander benutzbare Teilbereiche gegliedert: Grundlagen, Daten-bankverwaltung, Datenbankentwicklung und Datenbankbenutzung. Mit dem umfangreichen Anwendungsteil am Ende des Buches sowie den Beispielskripten kann der Leser das Gelesene und Gelernte direkt in die Praxis umsetzen.

Grundlagen Relationale Datenbanksysteme, Relationales Datenmodell, MySQL- Grundlagen, Benutzerschnittstellen

Datenbankverwaltung Administrationswerkzeuge, Installation, Konfiguration, Datenbanken einrichten, Benutzerkontenverwaltung, Benutzerrechteverwaltung, Datensicherung, ODBC

Datenbankentwicklung Relationaler Datenbankentwurf, Entwicklungsumgebungen, Daten- typen, Datendefinition, Dateneingabe, Fremdschlüsseldefinition

Datenbankbenutzung Einfache und komplexe Datenbankabfragen, SELECT, Tabellenver- knüpfung, Gruppierung, JOIN, UNION, Unterabfragen, Sichten

Praxis Datenbankverwaltung, Datenbankentwicklung, Transaktionen, Volltextsuche

LERNEN • ÜBEN • ANWENDEN – der sichere Weg zum Erfolg!

MyS

QL

5

7518

DA

S E

INS

TE

IGE

RS

EM

INA

R

LERNEN ÜBEN ANWENDEN

Regalsystematik:Datenbanken

ISBN 978-3-8266-7518-8ISBN 978-3-8266-7518-8

(D) € 14,95

Probekapitel & Infos erhalten Sie unter:info@bhv-buch.dewww.bhv-buch.de

18,5 mm978-3-8266-7518-8_umschlag.indd 1 04.05.2011 12:58:29

Teil I: Lernen

Buch7518_mysql.book Seite 19 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Buch7518_mysql.book Seite 20 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen 21

Grundlagen

Das erste Kapitel soll Ihnen diejenigen Datenbankkonzepte ver-mitteln, die Sie für den ersten Umgang mit einem relationalen Datenbanksystem benötigen. Sie erfahren in diesem Kapitel Grundlegendes über den Aufbau des MySQL-Datenbankser-vers, über die Organisationsstruktur der Daten in einer relatio-nalen Datenbank und über die Möglichkeiten der Kommunika-tion mit dem MySQL-Datenbankserver.

Grundlagen relationaler Datenbank-systeme

Zuerst werden wir den Aufbau, die Aufgaben und den Einsatz relationaler Datenbanksysteme erläutern und dann näher auf das relationale Datenmodell, d.h. die logische Organisation der Daten in einer relationalen Datenbank eingehen. Dazu werden Tabellen, Tabellenverknüpfungen und Datenbankoperationen näher beschrieben.

Was ist ein Datenbanksystem?

Datenbank-system

Eine Wesenseigenschaft des Menschen ist es, Informationen zu ordnen und strukturiert abzulegen. Diese Art der Datenver-waltung hilft uns bei der Suche nach einer spezifischen Infor-mation und erleichtert die Datenhaltung. Dabei müssen Daten nicht unbedingt in elektronischer Form vorliegen. Es gibt ganz einfache, jedem bekannte Beispiele der Datenverwaltung wie alphabetisch geordnete Adressbücher oder alle Arten von Kartei- oder Zettelkästen. Ein anderes Beispiel, auf das wir in diesem Buch immer wieder zurückkommen werden, ist eine Bibliothek, wo Bücher, Periodika, Zeitschriften oder andere Dokumente in elektronischer und nichtelektronischer Form auf-bewahrt werden. Um in einer Bibliothek ein spezifisches Buch oder Dokument zu finden, benutzt man einen elektronischen

L1

Buch7518_mysql.book Seite 21 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen22

Katalog, der Daten über vorhandene Bücher oder Zeitschriften, sogenannte Metadaten, verwaltet. Die Metadaten werden dazu in strukturierter Form abgelegt, z.B. unterteilt nach Autor, Titel, Verlag und Erscheinungsjahr eines Buches. Mithilfe dieser Da-tenstruktur kann man nun die Daten konkreter Bücher erfassen und nach ihnen suchen. Genau für diese Art von Aufgaben ist es sinnvoll, ein relationales Datenbanksystem einzusetzen.

Welche Aufgaben hat ein Datenbanksystem?

Aufgaben Datenbank- system

Ein Datenbanksystem (DBS) verwaltet Daten, die für einen spe-zifischen Zweck zusammengestellt werden, und hat folgende Aufgaben:

■ Ein Datenbanksystem ermöglicht die strukturierte Erfassung von unterschiedlichen Daten und Datenformaten: Meta-daten, Messdaten, Unternehmensdaten oder statistische Daten in Form von Texten, Zahlen, Begriffen oder Zeichen.

■ Ein Datenbanksystem ermöglicht dem Benutzer einen Zugriffauf Daten, ohne dass er wissen muss, in welcher Art und Weise die Daten physisch in der Datenbank oder auf einem Datenträger organisiert und gespeichert sind.

■ Ein Datenbanksystem ermöglicht bestimmte Zugriffsberech-tigungen für die Benutzer. Es gewährleistet beispielsweise, dass nur autorisierte Personen einen Datenbestand manipu-lieren können. Dadurch ist sichergestellt, dass kein Benutzer unbeabsichtigt oder durch eine Fehlbedienung die Daten-bestände einer Datenbank beschädigen kann.

■ Ein Datenbanksystem gewährleistet die Konsistenz und Integrität der gespeicherten Daten und verhindert eine redundante Datenhaltung.

Darüber hinaus verfügt ein Datenbanksystem über spezifische Werkzeuge für folgende Aufgaben:

■ Informationssuche,

■ Verwaltung und Pflege eines Datenbestandes sowie

■ Strukturierung eines Datenbestandes.

Buch7518_mysql.book Seite 22 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen 23

Wo werden Datenbanksysteme eingesetzt?

Datenbanken gehören neben Tabellenkalkulation und Textver-arbeitung zu den allerersten Rechneranwendungen. Seit den 60er Jahren spielen Datenbanksysteme im kaufmännischen und unternehmerischen Bereich zur Verwaltung von Personal- und Unternehmensdaten eine große Rolle. Relationale Daten-banksysteme kann man heute im Wesentlichen in drei Gruppen einteilen: kommerzielle Datenbanksysteme wie ORACLE, IBM DB2 oder Microsoft SQL Server, Open Source-Datenbanksys-teme wie MySQL, Postgres oder Firebird und nicht serverba-sierte Systeme wie Microsoft Access, Open Office Base oder Filemaker. Letztere verfügen zwar über grafische Nutzerober-flächen, lassen jedoch entscheidende Leistungsmerkmale wie eine Klienten-Server-Architektur, Geschwindigkeit oder Skalier-barkeit vermissen.

Der praktische Einsatz von Datenbanksystemen ist einerseits gekennzeichnet durch sehr große Datenbanksysteme auf modernen Servern, beispielsweise als Bestandteil betrieblicher Informationssysteme, und andererseits durch Datenbankserver auf leistungsfähigen Arbeitsplatzrechnern, die in vernetzten Systemen nach dem Klienten-Server-Prinzip arbeiten. Insbe-sondere der Trend, immer mehr kommerzielle und öffentliche Dienstleistungen, so z.B. beim Geldverkehr, beim Warenaus-tausch oder in der öffentlichen Verwaltung, online anzubieten, führt zu einer enormen Nachfrage nach Datenbanksystemen. Durch die umfassende Automatisierung von Produktionsabläu-fen und die fortschreitende Büroautomatisierung werden immer mehr Informationen elektronisch gespeichert und verarbeitet. Neben Standarddatenbanksystemen, die auf Satzstrukturen oder Relationen (Relationale Datenbanksysteme) basieren, gibt es heute eine zunehmende Zahl von nicht-relationalen Daten-banken, die unter dem Begriff NoSQL-Datenbanksysteme (z.B. Web 2.0-, XML- oder objektorientierte Datenbanksysteme) zu-sammengefasst werden.

Buch7518_mysql.book Seite 23 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen24

Ein wesentliches Marktpotenzial stellen Webdatenbanken dar, da es heute um die Integration von Informationssystemen in Webprojekte und den Zugriff auf Informationsressourcen in einer verteilten Umgebung geht. Besondere Popularität besit-zen datenbankbasierte Verwaltungssysteme für Webseiten, sogenannte Web Content Management Systeme (WCMS). Diese Systeme werden als Redaktionssysteme, Blogs, Wikis oder Portalsysteme eingesetzt. Allen Systemen ist gemeinsam, dass Webinhalte nicht mehr statisch abgelegt sind, sondern dynamisch erzeugt werden. Zur Verwaltung dieser Webinhalte werden in der Regel Datenbanksysteme benutzt. Besonders viele Systeme setzen dabei auf kostengünstige Open Source-Komponenten wie beispielsweise das Datenbanksystem MySQL, den Webserver APACHE und die Skriptsprache für serverbasierte Anwendungen PHP.

Auch in Zukunft werden überall dort, wo elektronische Informa-tionen in irgendeiner Weise gespeichert, verwaltet und wieder-gefunden werden sollen, Datenbanksysteme eine zentrale Rolle spielen. Die Menge der verwalteten Daten und die Kom-plexität der Informationssysteme, die diese Informationen ver-walten, nimmt dabei ständig zu.

Wie ist ein Datenbanksystem aufgebaut?

Aufbau Datenbank- system

Umgangssprachlich machen wir in der Regel keinen Unter-schied zwischen einer Datenbank und einem Datenbanksys-tem. Aus technologischer Sicht handelt es sich aber um zwei verschiedene Komponenten. Das Datenbanksystem definiert dabei das Gesamtsystem, das aus der Datenbank und dem Da-tenbankverwaltungssystem besteht (Abb. L1.1).

Buch7518_mysql.book Seite 24 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen 25

Abb. L1.1: Aufbau eines Datenbanksystems

Die Datenbank ist dabei eine Komponente des Datenbanksys-tems, die für die systematische Speicherung von Daten verant-wortlich ist, d.h. die Datenbasis des Systems bildet. Zur Verwal-tung und Nutzung der in einer Datenbank gespeicherten Daten benötigt man eine zusätzliche Komponente, das Datenbankma-nagementsystem. Das Datenbankmanagementsystem ist eine Ansammlung von Werkzeugen zur Strukturierung und Manipu-lation der Daten in einer Datenbank und stellt Routinen zur Ver-fügung, mit deren Hilfe der Datenbankbenutzer Daten einge-ben, verändern, abfragen und ausgeben kann. Dazu benötigt das Datenbanksystem eine Schnittstelle, die es dem Benutzer gestattet, auf unterschiedliche Weise mit dem Datenbanksys-tem zu kommunizieren, und die Bestandteil des Datenbank-managementsystems ist.

Die Datenbank

DatenbankWie bereits erwähnt, sind in der Datenbank (engl. data base) alle Daten einer Anwendung abgelegt. Die Datenbank ist auf physischen Datenträgern gespeichert, z.B. auf Magnetplatten, CD-ROMs oder DVDs. Auf der Datenbankebene organisieren spezielle Routinen die Speicherung, die Organisation, die Ko-dierung und den Zugriff auf physische Daten, die auf einem Datenträger binär gespeichert werden. Die Leistungsfähigkeit der Datenbank hängt dabei von der physischen Beschaffenheit des Datenträgers, der Datenorganisation auf dem Datenträger

Buch7518_mysql.book Seite 25 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen26

und der Hardware ab, die diese Speichermedien bedient. Der Typ des Datenbanksystems bestimmt, in welcher Anordnung die Daten auf dem Datenträger abgelegt werden. Die Daten-bank besitzt dabei zwei Komponenten: einen Basisbereich, in dem die konkreten Daten abgelegt sind, und einen Systemkata-log (engl. data dictionary), der die Angaben über die logische Struktur der Datenbank enthält. In relationalen Datenbanken enthält der Systemkatalog Informationen über den Aufbau der Tabellen wie Tabellenname, Spaltennamen und die Datentypen der Tabellenspalten. Die Basistabellen enthalten dagegen die eigentlichen Daten.

Das Datenbankverwaltungssystem

Datenbank-verwaltungs-system

Das Datenbankverwaltungssystem DBMS (Data Base Manage-ment System) ist die zentrale Steuerungseinheit eines Daten-banksystems. Es ist die Schnittstelle zwischen der Datenbank und einem Benutzer der mit dem Datenbanksystem kommuni-ziert. Das DBMS ist daher vergleichbar mit dem Betriebssystem auf einer Datenverarbeitungsanlage, das die Aufgabe hat, eine Vermittlungsfunktion zwischen Hardware und Software auszu-üben. In analoger Weise ist das Datenbankverwaltungssystem auch die Schnittstelle zwischen dem konzeptionellen Daten-modell und der Datenbank, d.h. eine Schnittstelle zwischen der logischen und physischen Repräsentation der Daten. Das Da-tenbankverwaltungssystem besteht aus einer Vielzahl von Dienstprogrammen und erfüllt gleichermaßen Anforderungen aus der Sicht des Systementwicklers und des Anwenders. Das Verwaltungssystem unterstützt einerseits den Datenbankent-wickler bei der Einrichtung von Tabellen und stellt andererseits für den Datenbankbenutzer Routinen zur Eingabe und Manipu-lation der Daten sowie zur Datenrecherche zur Verfügung.

Buch7518_mysql.book Seite 26 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen 27

Die Datenbankkommunikationsschnittstelle

Kommunika-tionsschnitt-stelle

Damit man ein Datenbanksystem überhaupt benutzen kann, müssen die Datenbankbenutzer in der Lage sein, mit dem Sys-tem zu kommunizieren. Dazu dient die Datenbankkommunika-tionsschnittstelle DBCI (Data Base Communication Interface), die auf das Datenbankverwaltungssystem aufsetzt. Die Kom-munikationsschnittstelle unterstützt dabei die direkte Interaktion zwischen Mensch und Datenbanksystem. Bei der Kommunika-tion auf der Anwenderebene unterscheidet man zwei grund-sätzliche Methoden. Zum einen die Kommunikation des Daten-banksystems mit anderen Anwendungsprogrammen, die über sogenannte Programmschnittstellen APIs (Application Pro-gramming Interface) auf das Datenbanksystem zugreifen. Mit-hilfe von Anwendungsprogrammen können Arbeitsabläufe auto-matisiert und die Datenbankbenutzung nutzerfreundlicher gestaltet werden. Auf der anderen Seite stellt jedes Datenbank-system Werkzeuge zur Verfügung, mit denen der Datenbank-benutzer, der Datenbankentwickler und der Datenbankadminis-trator direkt mit der Datenbank kommunizieren kann (Abb. L1.2). Damit werden folgende Aufgaben gelöst:

■ Datenzugriff wie Daten eingeben, ändern, löschen und suchen

(Nutzung),

■ Datenbanken und Datenmodell einrichten (Entwicklung) sowie

■ Datenbankserver, Datenbestände und Zugriffsberechtigun-gen einrichten, warten und sichern (Administration).

Abb. L1.2: Kommunikationsschnittstellen eines Datenbanksystems

Buch7518_mysql.book Seite 27 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen28

Die manuelle Kommunikation erfolgt über grafische Bedien-oberflächen oder üblicherweise im Kommandozeilenmodus, d.h. durch die direkte Eingabe von Befehlen in der Datenbank-sprache SQL.

Datenbankbasierte Informationssysteme

Informations-systeme

Betrachtet man die grundlegende Struktur von datenbankba-sierten Informationsanwendungen, so kann man drei Schichten unterscheiden: das Datenbanksystem, die darauf aufsetzende Anwendungslogik und die Benutzerschnittstelle (Abb. L1.3). Das Datenbanksystem verwaltet dabei die Daten in strukturier-ter Form. Auf das Datenbanksystem greifen Programme zu, die in der Datenbank gespeicherte Daten verarbeiten. Die Benut-zerschnittstelle bereitet die Daten zur Nutzung auf und realisiert die Mensch-Maschine-Kommunikation. Die 3-Schichten-Archi-tektur lässt sich am Beispiel einer webbasierten Datenbankan-wendung veranschaulichen. Die Anwendungslogik sind hier serverbasierte Anwendungen beispielsweise in der Skriptspra-che PHP, während als Benutzerschnittstellen Weboberflächen z.B. in der Skriptsprache HTML eingesetzt werden.

Abb. L1.3: Architektur datenbankbasierter Informationssysteme

Das Einsteigerseminar ist ausgehend von Abbildung L1.2 in die Lerneinheiten Grundlagen, Administration, Entwicklung und Nutzung gegliedert, die unabhängig voneinander benutztwerden können.

Buch7518_mysql.book Seite 28 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518

Lernen 1: Grundlagen 29

Architektur des MySQL-Servers

Server-architektur

Die Architektur des MySQL-Datenbankservers orientiert sich an der grundsätzlichen Architektur eines Datenbanksystems, wie sie bereits beschrieben wurde (Abb. L1.4). Physisch werden alle Systemdaten in speziellen Dateien abgelegt. Auf diese Da-teien greifen austauschbare Speichermaschinen zu, die je nach Anwendung den Speicherzugriff nach speziellen Anforderun-gen organisieren und optimieren. Jeder Tabelle in einer Daten-bank kann eine eigene Speichermachine (engl. engine) zuge-wiesen werden. Zum weiteren Funktionsumfang des Daten-bankservers gehören Dienstprogramme wie Management-dienste und Werkzeuge zur Serververwaltung sowie eine SQL-Kommunikationsschnittstelle. Mithilfe von Programmschnittstel-len in verschiedenen Programmiersprachen wie C oder PHP und Konnektoren wie ODBC oder JDBC kann auch automati-siert auf den MySQL-Datenbankserver zugegriffen werden.

Abb. L1.4: MySQL-Architektur

Buch7518_mysql.book Seite 29 Mittwoch, 4. Mai 2011 12:19 12

© des Titels »Das Einsteigerseminar MySQL 5« (ISBN 978-3-8266-7518-8) 2011 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.bhv-buch.de/7518