MySQL (eBook) - Stefan Pröll, Eva Zangerle, Wolfgang Gassler

Stefan Pröll, Eva Zangerle, Wolfgang Gassler 

MySQL (eBook)

Das Handbuch für Administratoren

eBook
 
Ob und wann dieser Artikel wieder vorrätig sein wird, ist unbekannt
Nicht lieferbar


MySQL (eBook)

Alles, was Sie als Administrator oder erfahrener Anwender über die Installation, Konfiguration und die laufende Verwaltung von MySQL 5.5 wissen müssen, finden Sie in diesem Praxishandbuch. Das Buch vermittelt Ihnen jedoch nicht nur die Grundlagen, sondern geht darüber hinaus intensiv auf wichtige Themen wie die Performance- und Abfrageoptimierung ein. Einen weiteren Schwerpunkt legt es auf die Themen Sicherheit und Programmierung mit MySQL. Damit Sie alle Inhalte sofort in die Praxis umsetzen können, stellen Ihnen unsere Autoren aus ihrer langjährigen Erfahrung im Umgang mit dem Datenbanksystem zahlreiche und leicht nachvollziehbare Beispiele zur Verfügung. Eine umfassende Beispieldatenbank auf CD-Rom ermöglicht es Ihnen, Ihr Wissen sicher anzuwenden und hilfreiche Anwendungen wie z. B. Analyse- und Monitoring-Tools direkt zu testen. Eine aussagefähige Befehlsreferenz zum Nachschlagen sowie ein umfangreicher Index runden dieses hilfreiche Praxisbuch ab.



Produktinformation

  • Deutsch
  • ISBN-13: 9783836217156
  • ISBN-10: 3836217155
  • Best.Nr.: 33997265

Leseprobe zu "MySQL (eBook)"

11 Gespeicherte Programme und Events (S. 513-514)

Gespeicherte Programme werden, wie der Name schon sagt, innerhalb der Datenbank gespeichert und dort auch ausgeführt. Gespeicherte Programme und Sichten (Views) können die Usability, Performance und auch die Sicherheit Ihrer Datenbank erhöhen. Sie erlauben es Ihnen, verschiedenste Prozesse in der Datenbank zu automatisieren und zusammenzufassen. Damit können Sie unter anderem Benutzern einfachere Zugriffsmöglichkeiten auf die Daten geben und diverse Wartungsarbeiten vereinfachen. Sichten ermöglichen es, für den Benutzer »virtuelle « Sichten auf die Datenbank zu generieren. All dies werden Sie in den folgenden Abschnitten kennenlernen.

11.1 Wozu gespeicherte Programme?


Die Verwendung von gespeicherten Programmen in MySQL bringt sehr viele Vorteile mit sich, auf die wir im Folgenden näher eingehen:

- Gespeicherte Programme können von verschiedenen Anwendungen genutzt werden. Diese Wiederverwendung von Code hat den Vorteil, dass bei Änderungen stets nur ein gespeichertes Programm an einem zentralen Ort geändert werden muss, das von allen Benutzern verwendet wird. Zudem reduziert dies auch die Gesamtmenge von Code, wenn dieser sinnvoll mehrfach verwendet wird. Mit dieser Reduktion sinkt auch das Risiko von fehlerhaftem Code.

- Die Sicherheit der Datenbank lässt sich durch das Anbieten von gespeicherten Programmen und Sichten ebenfalls verbessern, da durch den Benutzer kein direkter Zugriff mehr auf die Daten erfolgen kann. Durch das Anbieten von gespeicherten Programmen und Sichten für Anwendungsentwickler und Anwendungen können Sie eine Kapselung der Informationen und der Operationen darauf (Information Hiding) realisieren. Dies steht in diesem Fall für das gezielte Verbergen der eigentlichen Tabellen und deren Struktur. Die Benutzer können nur über die gespeicherten Programme über ein einfacheres Interface bzw. über Sichten auf die Daten zugreifen.

- Sie benötigen für die Berechnungen keine Kenntnisse weiterer Programmiersprachen, alles wird in der MySQL-eigenen Programmiersprache MySQL Stored Program Language und in SQL programmiert.

- Gespeicherte Programme sind programmiersprachenunabhängig. Das bedeutet, dass die Programme von allen gebräuchlichen Programmiersprachen aufgerufen und verwendet werden können.

- Der gezielte Einsatz von gespeicherten Programmen kann das tägliche Administratorleben vereinfachen, da wiederkehrende Aufgaben in Programmen zusammengefasst werden können. Auch Anwender können komplexe Abläufe in Programmen kapseln und diese dann mit einem einzigen Aufruf des Programms verwenden.

- Sie als Datenbankadministrator haben die größte Kenntnis von der Datenbank. Das bedeutet, dass Sie den Anwendungsprogrammierern mithilfe von gespeicherten Programmen optimierte Prozeduren zur Verfügung stellen können.

Inhaltsangabe

1;Liebe Leserin, lieber Leser;3 2;Auf einen Blick;4 3;Inhalt;6 4;Vorwort;16 4.1;Für wen ist dieses Buch gedacht?;16 4.2;Konventionen;17 4.3;Der Aufbau dieses Buches;18 4.4;Die DVD zum Buch;19 4.5;Die Webseite zum Buch;20 4.6;Die Autoren;20 5;1 Datenbanken - eine allgemeine Einleitung;24 5.1;1.1 Grundlagen von Datenbanken;24 5.1.1;1.1.1 Die Geschichte von Datenbanken;24 5.1.2;1.1.2 Moderne Datenbanken und Datenmodelle;26 5.1.3;1.1.3 Vorteile;29 5.1.4;1.1.4 Einsatzgebiete;32 5.1.5;1.1.5 Anforderungen an ein Datenbankmanagementsystem;35 5.2;1.2 MySQL;39 5.2.1;1.2.1 Einleitung und Vorstellung;40 5.2.2;1.2.2 Die Geschichte von MySQL;43 5.2.3;1.2.3 Open Source und Lizenzen;46 5.3;1.3 Zusammenfassung;49 6;2 Datenbankmodellierung;52 6.1;2.1 Einführung in den Datenbankentwurf;52 6.1.1;2.1.1 Anforderungsanalyse;53 6.1.2;2.1.2 Konzeptioneller Datenbankentwurf;54 6.1.3;2.1.3 Logischer Datenbankentwurf;55 6.1.4;2.1.4 Physischer Datenbankentwurf;55 6.1.5;2.1.5 Der Datenbankentwurf im Überblick;56 6.2;2.2 Ein konkretes Beispiel: Flughafenverwaltung;57 6.3;2.3 Das relationale Datenbankenmodell;58 6.3.1;2.3.1 Tabellen, Spalten und Zeilen;59 6.3.2;2.3.2 Schlüssel identifizieren Datensätze;60 6.3.3;2.3.3 Die relationale Algebra;61 6.3.4;2.3.4 Joins;67 6.4;2.4 Datenbankdesign;71 6.4.1;2.4.1 Das ER-Diagramm;71 6.4.2;2.4.2 Entitäten;72 6.4.3;2.4.3 Beziehungen;75 6.5;2.5 Normalformen;84 6.5.1;2.5.1 Erste Normalform;86 6.5.2;2.5.2 Die zweite Normalform;88 6.5.3;2.5.3 Die dritte Normalform;89 6.5.4;2.5.4 Weitere Normalformen;91 6.6;2.6 Zusammenfassung;92 7;3 Schnellstart-Tutorial;94 7.1;3.1 MySQL herunterladen;94 7.2;3.2 Minimale Systemanforderungen;95 7.3;3.3 MySQL installieren;96 7.3.1;3.3.1 Schnellinstallation unter Windows;97 7.3.2;3.3.2 Schnellinstallation unter Linux;104 7.3.3;3.3.3 Schnellinstallation unter Mac OS;111 7.3.4;3.3.4 Zusammenfassung der Installation;114 7.4;3.4 Endlich loslegen - MySQL ausprobieren;114 7.5;3.5 Übersicht der wichtigsten Befehle;117 7.5.1;3.5.1 Datenbanken anlegen und löschen;118 7.5.2;3.5.2 Tabellen anlegen, Daten einfügen und löschen;120 7.5.3;3.5.3 Datensätze anlegen, abfragen und löschen;125 7.5.4;3.5.4 Datensätze abfragen und anzeigen;127 7.5.5;3.5.5 Zusammenfassung;128 8;4 Einführung in die Beispieldatenbank;130 8.1;4.1 Die Datenbank für das Szenario anlegen;130 8.2;4.2 Die Beispieldatenbank auf der Buch-DVD;146 8.3;4.3 Hilfe bei der Arbeit mit MySQL;148 8.3.1;4.3.1 Fehlermeldungen und Warnungen;148 8.3.2;4.3.2 Online-Manual und weitere Anlaufstellen;150 8.4;4.4 Zusammenfassung;151 9;5 Architektur;156 9.1;5.1 Einführung;156 9.1.1;5.1.1 Teile einer Datenbank - das Fünf-Schichten-Modell;156 9.1.2;5.1.2 MySQL-Architektur;162 9.2;5.2 Abfrageverarbeitung;166 9.2.1;5.2.1 Der Query-Cache - das Kurzzeitgedächtnis von MySQL;166 9.2.2;5.2.2 Der Optimierer - die Intelligenz von MySQL;173 9.2.3;5.2.3 Execution Engine - der Arbeiter von MySQL;179 9.3;5.3 Transaktionen und Nebenläufigkeit;179 9.3.1;5.3.1 Nebenläufigkeit;180 9.3.2;5.3.2 Transaktionen;181 9.3.3;5.3.3 Lock-Management;193 9.4;5.4 Storage-Engines;196 9.4.1;5.4.1 Grundlagen des Storage-Engine-Plugin-Systems;197 9.4.2;5.4.2 InnoDB;200 9.4.3;5.4.3 MyISAM;206 9.4.4;5.4.4 MEMORY;213 9.4.5;5.4.5 Sonstige Engines;214 9.4.6;5.4.6 Fremdhersteller-Engines;217 9.4.7;5.4.7 Vergleichstabelle;218 9.5;5.5 Zusammenfassung;219 10;6 Manuelle Installation, Plugins und Upgrades;220 10.1;6.1 Von neuen Quellen - MySQL selbst kompilieren und installieren;221 10.1.1;6.1.1 Voraussetzungen;221 10.1.2;6.1.2 MySQL kompilieren und installieren;223 10.1.3;6.1.3 Die Installation grundlegend absichern;228 10.1.4;6.1.4 Anlegen der Konfigurationsdatei;233 10.1.5;6.1.5 Den MySQL-Dienst starten;234 10.1.6;6.1.6 Zusammenfassung der Installation;238 10.2;6.2 Usermanagement;238 10.3;6.3 Die zentrale Konfigurationsdatei »my.cnf«;244 10.3.1;6.3.1 Die Syntax der Konfigurationsdatei;246 10.3.2;6.3.2 Die grundlegenden Einstellungen;247 10.3.3;6.3.3 Kommandozeilenargumente;250 10.3.4;6.3.4 Server-Variablen setzen und ändern;252 10.4;6.4 MySQL aktualisieren und erweitern;255 10.4.1;6.4.1 Upgrades;255 10.4.2;6.4.2 Die Plugin-API;259 10.5;6.5 Zusammenfassung;261 11;7 MySQL administrieren;264 11.1;7.1 Der bordeigene Werkzeugkasten;264 11.2;7.2 Der Name ist Programm: mysqladmin;265 11.2.1;7.2.1 Datenbanken anlegen und löschen;265 11.2.2;7.2.2 Caches leeren;266 11.2.3;7.2.3 Das Root-Passwort ändern;267 11.2.4;7.2.4 Den Server überwachen;270 11.3;7.3 Daten importieren und exportieren;273 11.3.1;7.3.1 Daten aus Dateien importieren;273 11.3.2;7.3.2 Daten exportieren;279 11.4;7.4 Richtig sichern - Backups und Strategien;281 11.4.1;7.4.1 Die Basics;281 11.4.2;7.4.2 Physisches oder logisches Backup;283 11.4.3;7.4.3 Online- und Offline-Backups;285 11.4.4;7.4.4 Volle und inkrementelle Backups;286 11.4.5;7.4.5 Logische Backups und Wiederherstellung mit mysqldump;287 11.4.6;7.4.6 Physisches Offline-Backup - schnell, sicher und effizient;291 11.4.7;7.4.7 MySQL Hot Copy;294 11.4.8;7.4.8 InnoDB-Tabellen sichern mit Percona XtraBackup;295 11.4.9;7.4.9 Recovery von Bedienfehlern - zeitpunktbezogene Wiederherstellung;296 11.4.10;7.4.10 Backups mit Replikation;299 11.4.11;7.4.11 Backups automatisieren;300 11.5;7.5 Tabellenwartung mit mysqlcheck;300 11.5.1;7.5.1 MyISAM-Tabellen überprüfen und reparieren;301 11.5.2;7.5.2 Die Erholungsphase - Crash Recovery;303 11.6;7.6 Performance-Check mit mysqlslap;305 11.7;7.7 MySQL beobachten;306 11.7.1;7.7.1 Die INFORMATION_SCHEMA-Tabellen;306 11.7.2;7.7.2 Den Status abfragen;307 11.7.3;7.7.3 MySQL überwachen;308 11.8;7.8 Die grafischen Werkzeuge im Überblick;309 11.8.1;7.8.1 MySQL Workbench;309 11.8.2;7.8.2 MySQL Administrator;315 11.8.3;7.8.3 Weitere Tools;318 11.9;7.9 Optimierungstechniken;318 11.9.1;7.9.1 Leistungsschau;319 11.9.2;7.9.2 Profiling;321 11.9.3;7.9.3 Die wichtigsten Variablen der zentralen Konfigurationsdatei im Überblick;326 11.9.4;7.9.4 MySQL feineinstellen - Empfehlungen eines Skripts;331 12;8 Replikation und Hochverfügbarkeit;346 12.1;8.1 Grundprinzipien;347 12.1.1;8.1.1 Ablauf;348 12.1.2;8.1.2 Arten von Replikation;348 12.2;8.2 Topologien;349 12.2.1;8.2.1 Master - Slave;350 12.2.2;8.2.2 Master - Slave mit zwischengeschaltetem Slave;351 12.2.3;8.2.3 Master-Master;352 12.3;8.3 Vorarbeiten zur Replikation;353 12.4;8.4 Konfiguration einer Master-Slave-Replikation;355 12.5;8.5 Zusammenfassung;358 13;9 Anfrageoptimierung;360 13.1;9.1 Aufspüren von langsamen Anfragen;360 13.1.1;9.1.1 Langsame Anfrage protokollieren;360 13.1.2;9.1.2 Log-Dateien regelmäßig kontrollieren;363 13.2;9.2 Indexstrukturen;363 13.2.1;9.2.1 Die Grundidee von Indexstrukturen;364 13.2.2;9.2.2 Primärindex vs. Sekundärindex;365 13.2.3;9.2.3 Der limitierende Faktor - die Festplatte;366 13.2.4;9.2.4 Technische Umsetzung von Indexstrukturen - der B-Baum und MyISAM;367 13.2.5;9.2.5 Clustered Index;373 13.2.6;9.2.6 Non-Clustered Index;373 13.2.7;9.2.7 Mehrdimensionale Indexstrukturen - der R-Baum;374 13.2.8;9.2.8 GIS und raumbezogene Indizes;377 13.2.9;9.2.9 Volltextindex;386 13.2.10;9.2.10 Die großen Nachteile des Indexes;394 13.3;9.3 Optimierung von Anfragen;395 13.3.1;9.3.1 Die EXPLAIN-Anweisung;395 13.3.2;9.3.2 Auswertung der EXPLAIN-Informationen und Optimierungen;397 13.4;9.4 Partitionierung;428 14;10 Sicherheit;452 14.1;10.1 Grundlagen;452 14.1.1;10.1.1 Verschiedene Szenarien für das Rechtemanagement;452 14.1.2;10.1.2 Die zwei Phasen des Berechtigungssystems;454 14.2;10.2 Privilegiert - die Benutzerrechte im Detail;455 14.2.1;10.2.1 Die Ebenen der Benutzerberechtigungen;457 14.2.2;10.2.2 Berechtigungen zum Schutz der Daten;460 14.2.3;10.2.3 Berechtigungen zur Programmierung mit MySQL;466 14.2.4;10.2.4 Das Sicherheitskonzept von Programmen oder DEFINER vs. INVOKER;468 14.2.5;10.2.5 Berechtigungen zur Administration von MySQL;471 14.2.6;10.2.6 Die Befehle GRANT und REVOKE im Detail;477 14.2.7;10.2.7 Benutzerverwaltung ohne GRANT - die Datenbank »mysql«;481 14.3;10.3 Tipps und Tricks;487 14.3.1;10.3.1 Vorgehen bei der Erstellung von Benutzern;487 14.3.2;10.3.2 Tausende Benutzer und Datenbanken ohne Chaos verwalten;488 14.3.3;10.3.3 Benutzerverwaltungs-API;490 14.3.4;10.3.4 Benutzerverwaltung in der Applikation, nicht in der Datenbank?;491 14.3.5;10.3.5 Workaround für Berechtigungen auf Zeilenebene/Kapselung;493 14.4;10.4 STOP! - MySQL absichern;496 14.4.1;10.4.1 Allgemeine Sicherheitshinweise - der gewissenhafte Administrator;496 14.4.2;10.4.2 Zugang beschränken oder verschlüsseln;499 14.4.3;10.4.3 MySQL im Web;504 14.5;10.5 Zusammenfassung;510 15;11 Gespeicherte Programme und Events;514 15.1;11.1 Wozu gespeicherte Programme?;514 15.1.1;11.1.1 Arten von gespeicherten Programmen;516 15.1.2;11.1.2 MySQL Stored Program Language;517 15.1.3;11.1.3 Grundlegendes Arbeiten mit gespeicherten Programmen;518 15.1.4;11.1.4 Kommentare;521 15.1.5;11.1.5 Datentypen;522 15.1.6;11.1.6 Sicherung und Backup gespeicherter Programme und Sichten;522 15.1.7;11.1.7 Rechte von gespeicherten Programmen;524 15.1.8;11.1.8 Einschränkungen;524 15.2;11.2 Gespeicherte Prozeduren;525 15.2.1;11.2.1 Erzeugung gespeicherter Prozeduren;525 15.2.2;11.2.2 Erweiterte Einstellungen beim Erzeugen von gespeicherten Prozeduren;527 15.2.3;11.2.3 Verwendung gespeicherter Prozeduren;529 15.2.4;11.2.4 Löschen von gespeicherten Prozeduren;530 15.2.5;11.2.5 Bearbeiten gespeicherter Prozeduren;530 15.2.6;11.2.6 Parameter;531 15.2.7;11.2.7 Ergebnismengen;537 15.3;11.3 Gespeicherte Funktionen;537 15.3.1;11.3.1 Erzeugen von gespeicherten Funktionen;538 15.3.2;11.3.2 Erweiterte Optionen beim Erzeugen von gespeicherten Prozeduren;541 15.3.3;11.3.3 Aufrufen gespeicherter Funktionen;543 15.3.4;11.3.4 Bearbeiten gespeicherter Funktionen;544 15.3.5;11.3.5 Einschränkungen;545 15.4;11.4 Informationen zu bestehenden gespeicherten Programmen (Metadaten);546 15.5;11.5 Programmieren in MySQL;550 15.5.1;11.5.1 BEGIN-/END-Blöcke;550 15.5.2;11.5.2 Variablen;551 15.5.3;11.5.3 Ablaufsteuerung und konditionale Anweisungen;558 15.5.4;11.5.4 Schleifen;565 15.5.5;11.5.5 Cursor;570 15.5.6;11.5.6 Handler;577 15.5.7;11.5.7 Selbst definierte Fehlermeldungen mit SIGNAL;586 15.5.8;11.5.8 Verschachtelte Cursor und deren Handler;591 15.5.9;11.5.9 Temporäre Tabellen;594 15.5.10;11.5.10 Rekursion;595 15.5.11;11.5.11 Transaktionen;599 15.6;11.6 Trigger;600 15.6.1;11.6.1 Trigger erstellen;600 15.6.2;11.6.2 Löschen und Bearbeiten von Triggern;605 15.6.3;11.6.3 Informationen über bestehende Trigger (Metadaten);605 15.6.4;11.6.4 Einschränkungen;608 15.7;11.7 Events;609 15.7.1;11.7.1 Event-Scheduler;610 15.7.2;11.7.2 Erzeugung von Events;611 15.7.3;11.7.3 Löschen und Bearbeiten von Events;616 15.7.4;11.7.4 Informationen zu bestehenden Events (Metadaten);616 15.7.5;11.7.5 Sicherheit, Rechte und Einschränkungen;618 15.8;11.8 Sichten (Views);619 15.8.1;11.8.1 Erzeugung und Verwenden von Sichten;620 15.8.2;11.8.2 Updates auf Sichten;623 15.8.3;11.8.3 Löschen und Bearbeiten einer Sicht;624 15.8.4;11.8.4 Informationen zu bestehenden Sichten (Metadaten);624 15.9;11.9 Zusammenfassung;625 16;12 Softwareentwicklung mit MySQL;626 16.1;12.1 Einleitung;626 16.2;12.2 Konnektoren/Programmiersprachen;628 16.2.1;12.2.1 Allgemeines;628 16.2.2;12.2.2 ODBC;633 16.2.3;12.2.3 Java, JDBC und Connector/J;637 16.2.4;12.2.4 PHP, mysqli, PDO_MYSQL;642 16.2.5;12.2.5 .NET;646 16.2.6;12.2.6 Perl, DBD:mysql;651 16.2.7;12.2.7 Ruby;654 16.2.8;12.2.8 Python;656 17;A Referenz;662 17.1;A.1 Datentypen;663 17.2;A.2 Datendefinition, Datenmanipulation und Abfragen;665 17.3;A.3 Index;670 17.4;A.4 Boolesche Operatoren;671 17.5;A.5 Mathematische Funktionen;672 17.6;A.6 Zeit- und Datumsfunktionen;674 17.7;A.7 String-Funktionen;679 17.8;A.8 Transaktionen;687 17.9;A.9 Sperren;688 17.10;A.10 Sichten (Views);689 17.11;A.11 MySQL-Client;690 17.12;A.12 Gespeicherte Prozeduren;692 17.13;A.13 Gespeicherte Funktionen;693 17.14;A.14 Triggers;695 17.15;A.15 Events;696 17.16;A.16 Kontrollfluss-Elemente;697 17.17;A.17 Variablen in Programmen;700 17.18;A.18 Cursors;700 17.19;A.19 Handlers;701 17.20;A.20 Volltextsuche;703 17.21;A.21 Replikation;704 17.22;A.22 GIS-Funktionen;706 17.23;A.23 Partitionierung;707 17.24;A.24 Administrationsaufgaben;711 17.25;A.25 Benutzerverwaltung und Sicherheit;715 17.26;A.26 Wartungsarbeiten;718 17.27;A.27 Backups, Wiederherstellung und Logfiles;720 17.28;A.28 Import und Export;722 17.29;A.29 Benchmarking, Monitoring und Profiling;723 17.30;A.30 Query-Cache;725 17.31;A.31 Plugins;725 17.32;A.32 Storage-Engines;726 17.33;A.33 Hilfe, Warnungen und Fehler;729 17.34;A.34 Fehlernummern und SQL-States;729 17.35;A.35 Escape-Sequenzen;731 17.36;A.36 Zeichensätze und Sortierfolgen (Character Sets und Collations);732 18;Index;736