Datenbanksysteme MySQL, MariaDB und PostgreSQL

In diesem Wiki-Artikel geht es zur Unterscheidung der Datenbanksysteme MariaDB/MySQL und PostgreSQL. Danach ist ein Hinweis zur Datenbankverwaltung bei bplaced. Zur Administration sind vor allem erst mal die Begriffe Back-up importieren und exportieren benannt. Gleichfalls folgt ein Ausschnitt zu den ‚Feldtypen‘ der Datenbank und die Beschreibung zum Verbindungsaufbau. Das alles hilft zur ersten Klarsicht.


DATENBANKEN

MariaDB / MySQL

MariaDB ist ein freies Datenbankensystem, welches durch eine Abspaltung aus dem MySQL-Projekt hervorgegangen ist. Deshalb ist MariaDB als MySQL-kompatible Erweiterung zu verstehen. Diese welche im Hintergrund die Funktionen von MySQL automatisch einfließen lässt und ein Teil des Datenbanksystems sind. Die Verwaltung der MariaDB-Datenbanken erfolgen ebenfalls über phpMyAdmin. MySQL- / MariaDB ist für viele, einfache Lesezugriffe und wenig Schreibzugriffe optimiert und ist so für die meisten Webanwendungen bestens geeignet.

PostgreSQL

PostgreSQL ist ein komplett freies Datenbanksystem, welches von einer Open-Source-Gemeinschaft gepflegt und in Weiterentwicklung ist. Es eignet sich perfekt für sehr komplexe Operationen und ist bei sehr vielen gleichzeitigen Zugriffen oder Abfragen sehr leistungsfähig. Damit genießt PosgtreSQL gegenüber von MySQL einen großen Vorteil.

DATENBANKVERWALTUNG BEI BPLACED

Die Datenbankverwaltung, d. h. Datenbanken hinzufügen, die Zugriffsrechte einer Datenbank bearbeiten oder auch die Datenbank wieder entfernen. Das alles ist bei bplaced direkt im Benutzermenü integriert. Weitere Informationen dazu, im Artikel Datenbankverwaltung bei bplaced.

ADMINISTRATION
phpMyAdmin oder phpPgAdmin

MySQL/Maria-Datenbanken sind über die grafische Oberfläche ‚phpMyAdmin‘ zu verwalten. Diese Oberfläche ist über ‚myadmin.benutzername.bplaced.net‘ erreichbar.

PosgtreSQL-Datenbanken sind über die grafische Oberfläche ‚phpPgAdmin‘ zu verwalten. Die Oberfläche ist unter ‚pgadmin.benutzername.bplaced.net‘ erreichbar.

Über diese Oberflächen sind die Tabellen komfortabel zu erstellten, durchsuchen sowie anzuzeigen.

Ab Angebot bplaced pro steht auch die Zugriffskontrolle für externe Verbindungen auf die Datenbanken zur Verwendung. Somit sind Datenbanken auch anhand einer externen Desktopsoftware zu verwalten.

Datenbankverwaltungsoberfläche (im Beispiel phpMyAdmin)
Datenbankverwaltungsoberfläche (im Beispiel phpMyAdmin).

Für die Anmeldung bei ‚phpMyAdmin‘ oder ‚phpPgAdmin‘ ist jeweils Benutzername der Datenbank und das dazugehörige Passwort erforderlich. Eine Anmeldung ist nur für bestehende Datenbank möglich. Nach dem Einloggen sieht man auf der linken Seite den Stammbaum der Datenbank und kann diese entsprechend anwählen. Anschließend öffnet sich die Übersicht der Tabellen. Über den Abschnitt Neue Tabelle in Datenbank erstellen kann eine neue Tabelle unter der Angabe des Namens sowie der Spaltenanzahl hinzugefügt werden.

BACK-UP IMPORTIEREN & EXPORTIEREN

Vorhandenes Back-up Importieren
phpMyAdmin (MySQL/MariaDB)

Zum Import von vorhandenen MySQL-Datenbank-Back-up ist auf phpMyAdmin der Reiter Importieren.Nach Klick ist dort ein Back-up hochzuladen. Ein Back-up kann als .sql-Datei oder auch in kompromittierter Variante (.gip, .bzip2, .zip) vorliegen.

pgMyAdmin (PostgreSQL)

Der Import von vorhandenen PostgreSQL-Datenbank-Back-up führt bei phpPgAdmin über die Navigation erst zu der Übersicht. Angezeigt ist entsprechend die Datenbank, in welche man sich eingeloggt hat. Dort ist im oberen Bereich den Reiter SQL auszuwählen. Bei SQL erscheint dann ein größerer Bereich, um SQL-Codes zu verwenden, direkt darunter über Datei auswählen, ist das Back-up hochzuladen.

Beim Upload gilt es zu beachten, dass der Befehl CREATE DATABASE zuvor aus dem Back-up entfernt wurde. Bei bplaced existiert die Datenbank ja bereits, deshalb führt ein erneutes Erstellen innerhalb der Datenbank zu einem Fehler.

Datenbankback-up erstellen
Datenbank exportieren
phpMyAdmin (MySQL/MariaDB)

Zur Anfertigung erneutes Back-up der Datenbank navigiert man bei phpMyAdmin direkt zum Reiter Exportieren und erstellt dort ein Back-up der Datenbank. Wichtig dabei ist, auf der linken Seite im Stammbaum zuvor sämtliche Tabellen zu markieren. Bei den Back-up-Einstellungen kann das Format bei einer angepassten Exportmethode selbst erwählt werden. Am gängigsten ist hier SQL. Des Weiteren sind auch gewisse Befehle explizit einzubinden oder auszuklammern, je nach Wunsch. Ein Datenbank-Back-up erfolgt mit einem Klick auf Ok und wird zum Download angeboten.

pgMyAdmin (PostgreSQL)

Aufgrund der tief ins System eingreifenden Funktionen (exec) von ‚pgAdmin‘ ist das Erstellen von PostgreSQL-Back-ups für User aus Sicherheitsgründen deaktiviert. Ein Back-up der PostgreSQL-Datenbanken kann jederzeit via Support-Ticket angefragt werden.

Die Feldtypen
VARCHAR (MySQL/MariaDB)
Eine Zeichenfolge mit variabler Länge.
Character varying (PostgreSQL)
Eine Zeichenkette mit Höchstgrenze an Zeichen.
Text
Zeichenketten von maximal 65.535 Zeichen.
LONGTEXT (nur MySQL/MariaDB)
Zeichenketten mit einer Länge von maximal 16.777.215 Zeichen.
INT (bei PostgreSQL: Integer)
Ganzzahl von -2.147.283.648 bis 2.147.283.647 oder bei ausschließlich positiven Zahlen bis 4.294.967.295.
FLOAT (bei PostgreSQL: Real)
Fließkommazahl von -1E+37 bis +1E+37. Die Genauigkeit liegt bei sechs Dezimalstellen. Dieser Feldtyp ist inexakt, sodass Werte beizeiten als Annäherungswerte gespeichert werden können, was zu Abweichungen beim Speichern und erneuten Auslesen führen kann.
DECIMAL (bei PostgreSQL: Numeric)
Eine Zahl mit beliebiger Präzision. Dieser Feldtyp kann im Gegenteil zu FLOAT exakte Berechnungen ausführen und eignet sich so beispielsweise zur Speicherung von Geldbeträgen. Die Länge muss nicht angegeben, aber kann sowohl in der Form gesamstellen, nachkommastellen angegeben werden, als auch in der Form stellen. Bei Verwendung letzterer werden keine Nachkommastellen vorgesehen.
Die ID
Die Spalte id sollte in einer Tabelle der Übersichtlichkeit halber die erste sein. Als Feldtyp wird INT mit einer Länge von 11 gewählt. Das Extra auto_increment erhöht den Wert des Feldes für jeden Datensatz automatisch. Zudem sollte noch der Primärschlüssel gewählt werden, damit eine einmalige Idenfikationsnummer erzwungen wird und doppelte Werte durch menschliches Versehen ausgeschlossen werden können.

Externe Zugriffe

Externe Zugriffe auf die Datenbank sind über die Zugriffskontrolle möglich, die Zugriffskontrolle ist ab dem Angebot bplaced pro verfügbar.

VERBINDUNG ZUR DATENBANK AUFBAUEN
MySQL/MariaDB

Bei MySQL/MariaDB zur Verbindung zwischen dem Script und dem Datenbankserver ist je nach Treiber, entweder mysqli_connect oder mysqli::__construct() zu verwenden. Die jeweiligen Verbindungsfunktionen authentifizieren den PHP-Interpreter für den Datenbankzugriff. Dazu müssen Adresse des Datenbankservers (auf dem Webspace ist dies localhost), Benutzer der Datenbank, der Datenbankname selbst und das Passwort übergeben werden.

Im folgenden eine erste Verbindung zur Datenbank, im Beispiel in Verwendung mysqli:

<?php
$link = mysqli_connect("localhost", "dbnutzer", "passwort", "dbname");

if (!$link) {
echo "Fehler: es konnte keine Verbindung zur Datenbank aufgebaut werden" . PHP_EOL;
echo "Debug-Fehlernummer: " . mysqli_connect_errno() . PHP_EOL;
echo "Debug-Fehlermeldung: " . mysqli_connect_error() . PHP_EOL;
exit;
}

echo "Erfolg: es konnte eine erfolgreiche Verbindung mit der Datenbank aufgebaut werden. Die Datenbank \"datenbank\" ist toll." . PHP_EOL;
echo "Host-Informationen: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

PHP-Code

PostgreSQL

Bei PostgreSQL Datenbanken wird als Treiber pg_connect() verwendet, um zwischen dem Script und dem Datenbankserver eine Verbindung herzustellen. Die jeweiligen Verbindungsfunktionen authentifizieren den PHP-Interpreter für den Datenbankzugriff. Dazu müssen Adresse des Datenbankservers (auf dem Webspace ist dies jeweils localhost), Datenbankname, Benutzer der Datenbank und das Passwort übergeben werden. Im unteren Beispiel wird auch der Port mitgeliefert, dies ist jedoch optional.

Im folgenden eine erste Verbindung zur Datenbank:

<?php
$dbconn3 = pg_connect("host=localhost port=5432 dbname=datenbankname user=datenbankbenutzer password=datenbankpasswort");
?>

PHP-Code