26
Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Embed Size (px)

Citation preview

Page 1: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Referat Web-Engineering06.12.2006Copyright © 2006 by Manuel Hegemann

Page 2: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Inhaltverzeichnis I

1. Was ist MySQL?1. Geschichte2. Wichtige Features3. Maximale Größe von MySQL-Tabellen

2. Installation / Konfiguration1. Unterstützte Betriebssystem2. Installation unter Windows3. Installation unter Linux4. Einstellungen und Tests nach der Installation

1. Unter Windows2. Unter Linux

Page 3: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Inhaltsverzeichnis II

3. Adminwerkzeuge und Benutzeroberflächen

1. PHPMyAdmin2. MySQL-Administrator

4. Datenbankdesign3. Tabellentypen4. Feldtypen

5. SQL-Einführung6. Zugriff auf MySQL

1. Zugriff per Perl2. Zugriff per PHP

Page 4: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Was ist MySQL?Geschichte

Ursprüngliche Absicht war Benutzung des SQL-Codes um eigene Low-Level-Routinen (ISAM) zu benutzen

SQL jedoch weder schnell und flexibel genug um Anforderungen abzudecken

Resultat war neue Datenbank, die allerdings fast gleiche API wie SQL benutzt

Namensherkunft nicht endgültig geklärt Entweder weil große Anzahl an Bibliotheken und

Werkzeugen das Präfix „my“ tragen Oder vom Namen der Tochter des MySQL-

Mitbegründers Monty Widenius, die „My“ hieß Name des MySQL-Delphins ist „Sakila“ Vorschlag wurde im Rahmen des Wettbewerbs „Name

the Dolphin“ ausgewählt

Page 5: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Was ist MySQL?Wichtige Features

Geschrieben in C und C++ Läuft auf vielen Plattformen Multithread fähig Schnelle „Joins“ Keine Speicherlecks (memory leaks) Sehr viele Datentypen Volle Standard-SQL-Unterstützung + teilweise ODBC-

Syntax-Unterstützung Flexibles und Sicheres Berechtigungssystem Fehlermeldung und –lokalisierung in vielen Sprachen

möglich Eingebaute SQL-Anweisungen zum Prüfen, Optimieren

und Reparieren von Tabellen u.v.m.

Page 6: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Was ist MySQL?Maximale Größe von MySQL-Tabellen

Betriebssystem Maximale Dateigröße

Linux 2.2 – Intel 32 Bit 2 GByte

Linux 2.4+ 4 TByte

Solaris 9/10 16 TByte

NetWare 8 TByte

Win 32 FAT / FAT 32 2 GByte / 4 GByte

Win 32 NTFS 2 TByte

Mac OS 2 TByte

Page 7: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Installation / KonfigurationUnterstützte Betriebssysteme

AIX Amiga BSDI Digital Unix FreeBSD HP-UX Linux Mac OS NetBSD OpenBSD OS/2 Solaris SunOS Tru64 Unix Windows

Page 8: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Installation / KonfigurationInstallation unter Windows I

Paketauswahl treffen Essentials-Paket enthält die mindestens

erforderlichen Dateien für eine Windowsinstallation inkl. Konfigurationsassistent

Complete-Paket enthält alle Dateien, inkl. optionale Komponenten und Konfigurationsassistent

Noinstall-Paket enthält alle Dateien des Complete-Pakets mit Ausnahme des Konfigurationsassistenten

Für die meisten Anwender wird das Essentials-Paket empfohlen

Page 9: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Installation / KonfigurationInstallation unter Windows II

Installation durch Konfigurationsassistenten

Hinweisen des Assistenten folgen und erforderliche Eingaben tätigen

Sofortiger Einsatz von MySQL möglich Nicht empfehlenswert für fortgeschrittene

Benutzer, die volle Kontrolle über Serverkonfiguration wünschen und jene, die mehrere MySQL-Instanzen auf gleichem Host installieren wollen

Page 10: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Installation / KonfigurationInstallation unter Linux

Was zunächst benötigt wird make C/C++ Compiler tar cat Perl5-Library

MySQL Source-Codes herunterladen Dateien entpacken Konfigurationsscript ausführen Anschließend Script kompilieren Kompiliertes Script installieren Datenbanken installieren MySQL mitteilen, wer Daemon ausführt my.cnf anpassen

Page 11: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Installation / Konfigurationmy.cnf

[mysqld]basedir=INSTALLATIONSVERZEICHNISdatadir=DATENVERZEICHNISlanguage=SPRACHVERZEICHNISport=PORTServer=SERVERVERZEICHNISuser=BENUTZERNAMEpassword=DEIN PASSWORT

Page 12: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Adminwerkzeuge/BenutzeroberflächenPHPMyAdmin

Vorführung von PHPMyAdmin im Einsatz

Page 13: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Adminwerkzeuge/BenutzeroberflächenMySQL-Administrator

Leistungsfähe, graphische Verwaltungskonsole Integration von Wartung und Administration einer Datenbank Ermöglicht die Benutzerverwaltung und die Steuerung von

Zugriffsrechten innerhalb weniger Minuten Dynamische Zustandsüberwachung aller wesentlichen

Zustandsindikatoren der MySQL-Umgebung Schnellere Optimierung durch einfache Einsicht verschiedenster

Parameter möglich Schnelle Erstellung von konsistenten Datensicherungen Übersicht über Protokoll-Dateien Vollständige Kontrolle über Systemdienste MySQL Server kann gestartet und angehalten werden Plattformübergreifend, verfügbar für Windows und Linux für MySQL

4.x Testvideo unter

http://www.mysql.de/products/tools/administrator/tutorials/custom-graphs.html

Page 14: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

DatenbankdesignTabellentypen

MyISAM: Standard-Speicher-Engine – Baut auf älterem ISAM-Code auf und enthält viele praktische Erweiterungen

InnoDB: Transaktionssichere Speicher-Engine mit Commit-, Rollback- und Backupfähigkeit

MERGE: Sammlung identischer MyISAM-Tabellen – Identisch = gleiche Spalten- und Indexdaten

MEMORY: Legt Tabellen an, die im RAM gespeichert werden, auch als HEAP bezeichnet

BDB: bessere Chancen Absturz zu überstehen, außerdem Commit- und Rollbackfunktion

EXAMPLE: Beispiel für Entwickler wie man Speicher-Engines erstellt FEDERATED: greift auf Daten in „entfernten“ Datenbanktabellen zu ARCHIVE: Speicherung großer Datenmengen ohne Indizes mit kleinem

Speicherbedarf CSV: Speicherung in Textdateien im Format von kommatagetrennten

Werten BLACKHOLE: Daten werden zwar entgegen genommen, aber nicht

gespeichert

Page 15: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

DatenbankdesignNumerische Feldtypen

BIT: Anzahl von Bits pro Wert zwischen 1 und 64 TINYINT: -128 bis 127 BOOLEAN: TRUE oder FALSE SMALLINT: -32768 bis 32767 MEDIUMINT: -8388608 bis 8388607 INT: -2147483648 bis 2147483647 BIGINT: -9223372036854775808 bis

9223372036854775807 FLOAT: -3.402823466E+38 bis 3.402823466E+38 DOUBLE: -2.2250738585072014E-308 bis

1.7976931348623157E+308 DECIMAL: gepackte „extakte“ Festkommazahl

Page 16: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

DatenbankdesignDatums- und Zeittypen

DATE: 1000-01-01 bis 9999-12-31, Format immer YYYY-MM-DD

DATETIME: 1000-01-01 00:00:00 bis 9999-12-31 23:59:59, Format immer YYYY-MM-DD HH:MM:SS

TIMESTAMP: 1970-01-01 00:00:00 und einem Zeitpunkt irgendwann im Jahr 2037

TIME: -838:59:59 und 838:59:59, Format immer HH:MM:SS

YEAR (2|4): 1901 bis 2155, sowie 0000 – im zweistelligen Bereich von 70 bis 69 (1970 bis 2069)

Page 17: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

DatenbankdesignString-Typen

CHAR: von 0 bis 255 Zeichen VARCHAR: von 0 bis 65535 Zeichen TINYBLOB: 255 (2^8 – 1) Byte BLOB: 65.535 (2^16 – 1) Byte TINYTEXT: 255 (2^8 – 1) Zeichen TEXT: 65.535 (2^16 – 1) Zeichen ENUM: Liste von Werten durch Komma

getrennt, maximal 65.535 Werte

Page 18: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung I

SQL: Server Query Language Durch SQL-Statements können

Daten von der Datenbank abgefragt, hinzugefügt, geändert und gelöscht werden

SQL-Statements werden meist in Applikationen eingebunden, können aber auch in Adminwerkzeugen ausgeführt werden

Page 19: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung IISELECT

Syntax:SELECT attributeFROM tabelleWHERE bedingung[ORDER BY | GROUP BY | etc.]

Page 20: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung IIIINSERT

Syntax:INSERT INTO tabelle(attrib1, attrib2, attrib3)VALUES(´wert1´, ´wert2´, ´wert3´)

Page 21: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung IVUPDATE

Syntax:UPDATE tabelleSET attrib1=´wert1a´, attrib2=

´wert2a´WHERE bedingung

Page 22: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung VDELETE

Syntax:DELETE FROM tabelleWHERE bedingung

Page 23: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

SQL-Einführung VIJOIN, am Beispiel INNER JOIN

Syntax:SELECT tab1.attribute, tab2.attributeFROM tabelle1 tab1INNER JOIN tabelle 2 tab2ON tab1.pk = tab2.fk[WHERE bedingung][ORDER BY | GROUP BY | etc.]

Page 24: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Zugriff auf MySQLZugriff per Perl

DBI ermöglicht Zugriff auf SQL-Datenbanken

Beispiel://Benutze DBIuse DBI;//Quellen beziehen (Treiber, Host, etc.)@data_sources = DBI->data_sources($driver_name);//Datenbankverbindung herstellen$dbh = DBI->connect($data_source, $username, $auth);//Statement ausführen$rv = $dbh->do($statement);//Datenbankverbindung schließen$rc = $dbh->disconnect;

Page 25: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

Zugriff auf MySQLZugriff per PHP

PHP besitzt eigene Befehle um auf eine MySQL-Datenbank zuzugreifen

Beispiel://Datenbankverbindung herstellen$con = mysql_connect($host, $user, $pwd) or die(´Fehler´);//Datenbank auswählenmysql_select_db($database, $con) or die(´Fehler´);//Statement ausführen$query = mysql_query($statement);//Anzahl betroffene Zeilen abfragen$num = mysql_num_rows($query);//Bei Abfrage Datenarray auslesen$array = mysql_fetch_array($query);//Datenbankverbindung schließen;mysql_close($con);

Page 26: Referat Web-Engineering 06.12.2006 Copyright © 2006 by Manuel Hegemann

ENDE

Vielen Dank für Eure Aufmerksamkeit!