datenbanken
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| datenbanken [2021-05-12 08:53:21] – [Datenbanken] manfred | datenbanken [2024-02-02 12:25:44] (aktuell) – manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Datenbanken ====== | ||
| + | |||
| + | * __grafische DB-Clients: | ||
| + | * [[https:// | ||
| + | |||
| + | ^ die wichtigsten DB-Kommandos im Vergleich zwischen verschiedenen Datenbanken | ||
| + | ^ Beschreibung | ||
| + | | Login | mysql -u root | psql postgres -U pgsql | | | ||
| + | | Spalten einer Tabelle auflisten | ||
| + | | eine Datenbank anlegen (CLI) | mysqladmin create db_name | ||
| + | | eine Datenbank anlegen (SQL) | CREATE DATABASE db_name | ||
| + | | alle Datenbanken zeigen (CLI) | mysqlshow -u root | psql postgres -U pgsql -l | ||
| + | | alle Datenbanken zeigen (SQL) | SHOW DATABASES | ||
| + | | alle Tabellen einer DB zeigen (CLI) | mysqlshow -u root db_name | ||
| + | | alle Tabellen einer DB zeigen (SQL) | SHOW TABLES | ||
| + | | Tabellenbeschreibung | ||
| + | | Benutzer anlegen (CLI) | ||
| + | | Benutzer anlegen (SQL) | CREATE USER fritz | CREATE USER fritz | --- | | ||
| + | | Passwort ändern | ||
| + | | Benutzer auflisten | ||
| + | | Benutzer Rechte geben | GRANT SELECT ON db_name.* TO fritz | GRANT SELECT ON tab_name TO fritz | --- | | ||
| + | | Benutzerrechte zeigen | ||
| + | | Benutzer löschen | ||
| + | | Benutzer Rechte entfernen | ||
| + | |||
| + | * [[SQLite]] | ||
| + | * [[https:// | ||
| + | * [[MySQL]] | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[MySQL 5.6 - Server mit GTID]] | ||
| + | * [[Percona MySQL 5.7 - Server mit GTID]] | ||
| + | * **[[MySQL 5.7 - Server mit GTID]]** | ||
| + | * **[[:: | ||
| + | * [[MySQL-Proxy]] | ||
| + | * [[MySQL-Dump]] | ||
| + | * [[Abkömmlinge von MySQL - Meine Favoriten]] | ||
| + | * '' | ||
| + | * [[http:// | ||
| + | * '' | ||
| + | * **[[Percona XtraDB Cluster + Galera]]** - nach meinen Tests, ist das die z.Z. am beste funktionierende MySQL-Cluster-Lösung | ||
| + | * **[[Percona XtraDB Cluster (PXC)]]** - Galera ist eine zuverlässig funktionierende synchroner Multi-Master-Cluster | ||
| + | * **[[:: | ||
| + | * [[Percona xtrabackup]] | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[MySQL-Tabellen in einem PXC-Cluster prüfen]] | ||
| + | * [[MariaDB]] | ||
| + | * **[[:: | ||
| + | * **[[Ingres]]** - eine freie DB mit echten Enterprise-Funktionen | ||
| + | * [[Informix]] | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | ===== Datenbank-Zugriff per PHP ===== | ||
| + | |||
| + | siehe: [[:: | ||
| + | |||
| + | |||
| + | ===== Datenbank-Ausgabe in CSV umwandeln ===== | ||
| + | |||
| + | klassisches CVS: | ||
| + | # ... | sed '/ | ||
| + | |||
| + | CVS mit Semikolon als Feldtrenner und ohne doppelte Anführungszeichen: | ||
| + | # ... | sed '/ | ||
| + | |||
| + | zum Beispiel mit MySQL: | ||
| + | # echo " | ||
| + | |||
| + | |||
| + | ===== Kostenlose SQL-Datenbanken für Linux im Vergleich ===== | ||
| + | |||
| + | Wie die wirtschaftlichste Datenbank finden, | ||
| + | wenn keiner der Probanden einen Preis hat? | ||
| + | Jenseits von Glaubensbekenntnissen oder | ||
| + | Ratlosigkeit gibt es handfeste Kriterien | ||
| + | für die Wahl der geeignetsten Datenablage. | ||
| + | An ihnen messen sich in diesem Vergleich | ||
| + | acht kostenlose Kandidaten. | ||
| + | |||
| + | Was nichts kostet, ist nichts wert. Wofür auch immer das stimmen mag, für | ||
| + | Software ist es schon lange nicht mehr wahr. Im Gegenteil: | ||
| + | "Viel Fleiß, kein Preis" dürfte als Motto für zahlreiche Open-Source-Projekte | ||
| + | gelten, die unentgeltlich hochwertige und konkurrenzfähige Programme | ||
| + | produzieren. Vom einfachen Tool bis zur komplexen Datenbank, | ||
| + | um die es hier gehen soll. | ||
| + | |||
| + | Auch zahlreiche Schnupperversionen kommerzieller Datenspeicher werben mit dem | ||
| + | Wegfall der Lizenzkosten und versuchen damit potenzielle Kunden zu ködern. | ||
| + | In beiden Fällen minimiert sich für die Anwender das Investitionsrisiko. | ||
| + | Im Gegenzug spitzt sich alles auf die Frage zu: Was soll man sich nun schenken | ||
| + | lassen? | ||
| + | |||
| + | Im Angebot sind unter anderem: | ||
| + | - MySQL; | ||
| + | - Max DB; | ||
| + | - PostgreSQL; | ||
| + | - Firebird; | ||
| + | - Ingres 2006; | ||
| + | - Oracle XE; | ||
| + | - DB2 Express-C; | ||
| + | - Sybase ASE Express Edition. | ||
| + | |||
| + | Alle sind kostenlos zu haben. | ||
| + | Aber welches Produkt ist für welchen Zweck das beste? | ||
| + | |||
| + | |||
| + | ==== Der Zweck diktiert die Mittel ==== | ||
| + | |||
| + | Das mit weitem Abstand wichtigste Kriterium ist natürlich der Einsatzzweck. | ||
| + | Eine Datenbank wird selten //solo// betrieben, sondern werkelt meist hinter den | ||
| + | Kulissen einer Applikation. Diese Anwendung baut wahrscheinlich auf bestimmte | ||
| + | Eigenschaften und Fähigkeiten ihrer Datenablage und unterstützt deshalb nur | ||
| + | bestimmte Produkte, was die Auswahl drastisch einschränkt. | ||
| + | |||
| + | Der Zweck hat aber noch weitere Implikationen, | ||
| + | Performance, | ||
| + | definieren. Deshalb empfiehlt es sich, im ersten Schritt so konkret wie möglich | ||
| + | die Anforderungen zu bestimmen, die später mit den Feature-Listen in | ||
| + | Übereinstimmung zu bringen sind. | ||
| + | |||
| + | |||
| + | === PostgreSQL === | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | bietet hervorragende SQL-Konformität und eine **sehr große Funktionsvielfalt**. | ||
| + | Es wartet beispielsweise mit vielen besonderen Datentypen auf, darunter solchen | ||
| + | für geografische Koordinaten, | ||
| + | Auch an speziellen Indextypen hat PostgreSQL eine größere Auswahl zu bieten als | ||
| + | jede andere Open-Source-DB. Dafür fehlt - etwa im Vergleich zu MySQL - eine | ||
| + | eigene Lösung für Hochverfügbarkeits-Cluster, | ||
| + | kein Multi-Threading. | ||
| + | |||
| + | |||
| + | === Firebird === | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | kommt mit der schwächsten Hardware aus, deshalb ist sie in Brasilien und den | ||
| + | Ostgebieten verbreiteter als sonstwo. | ||
| + | In Firebird gibt es weder Cluster noch Load Balancing | ||
| + | und - schlimmer noch - auch keine Replikation, | ||
| + | nur B-Tree-Indizes, | ||
| + | räumlichen Datentypen. Multi-Threading und Multi-Prozessor-Support kann der | ||
| + | Admin nur alternativ, aber nicht gleichzeitig haben. | ||
| + | Dafür punktet Firebird mit einem **stabilen** und für viele Zwecke auch | ||
| + | ausreichenden Funktionsumfang, | ||
| + | guten **Cross-Plattform-Fähigkeiten**. Im zuletzt genannten Punkt übertrifft es | ||
| + | beispielsweise auch PostgreSQL, | ||
| + | dessen Windows-Port lange ein Schattendasein fristete. | ||
| + | |||
| + | |||
| + | === Ingres === | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | zählte wieder zu den Pionieren: eine der ersten Open-Source-Datenbanken **mit | ||
| + | ausgeprägten Enterprise-Fähigkeiten wie Replizierbarkeit, | ||
| + | parallele Abfragen**, Partitionierung oder Grid-Tauglichkeit. Später verkaufte | ||
| + | CA Ingres an eine Investment-Firma, | ||
| + | gründete, die die Datenbank nun seit einigen Monaten als 2006 Community Edition | ||
| + | unter der GPL verbreitet. | ||
| + | |||
| + | |||
| + | ==== Oracle-Kompatible Ableger ==== | ||
| + | |||
| + | * PostgreSQL -> Postgres Plus ([[http:// | ||
| + | * Firebird ---> [[http:// | ||
| + | |||
| + | |||
| + | === Nachgefragt === | ||
| + | |||
| + | Worin sehen die Hersteller die besonderen Stärken ihrer eigenen Datenbank? Wo positionieren sie ihren Kandidaten? Das Linux-Magazin wollte es wissen und fragte reihum: Was zeichnet ihr Produkt vor anderen aus und warum? Über welche besonderen Features verfügt es, die Mitbewerber nicht oder nicht in diesem Umfang bieten? Die folgenden Antworten erreichten uns. | ||
| + | |||
| + | |||
| + | == MySQL und Max DB == | ||
| + | |||
| + | Die **Max DB** ist eine für SAP zertifizierte Enterprise-Datenbank mit sehr geringen Betriebskosten (TCO), deren Design hervorragend vom Notebook bis hin zu großen Servern skaliert. Dazu kommen in dieser Klasse sehr geringe Hardware-Anforderungen. | ||
| + | |||
| + | **MySQL** andererseits ist sehr schnell, zuverlässig und - dank seiner modularen Speicher-Engine-Architektur - flexibel. Es ist einfach nutzbar, hoch skalierbar und äußerst genügsam bei den Hardware-Anforderungen. Es eignet sich besonders, um sehr kostengünstig in die Breite zu skalieren (Scale-out), | ||
| + | |||
| + | (Für MySQL antwortete Jürgen Giesel, Mitarbeiter der MySQL GmbH.) | ||
| + | |||
| + | |||
| + | == PostgreSQL == | ||
| + | |||
| + | Gegenüber proprietären Anbietern ist der Feature-Umfang etwa vergleichbar, | ||
| + | |||
| + | (Für PostgreSQL antwortete Peter Eisentraut, PostgreSQL-Entwickler und Fachbuchautor.) | ||
| + | |||
| + | |||
| + | == Firebird == | ||
| + | |||
| + | **Firebird** ist ein voll ausgestattetes RDBMS. Es bietet Stored Procedures und Trigger, anwenderdefinierte Funktionen, referenzielle Integrität oder ACID-Transaktionen. Firebird wird in den verschiedensten Fällen erfolgreich eingesetzt, von der kleinen Applikation, | ||
| + | |||
| + | (Für Firebird antwortete Artur Anjos, Firebird-Entwickler aus Portugal und Mitglied der Firebird Foundation.) | ||
| + | |||
| + | |||
| + | == Ingres 2006 == | ||
| + | |||
| + | Zu den Feature-Highlights zählen unter anderem der Support für 64-Bit-Architekturen und die Eignung für sehr große Unternehmensanwendungen, | ||
| + | |||
| + | **Ingres** ist auch die Open-Source-Datenbank mit der fortgeschrittensten Abfrageoptimierung und -ausführung. Dabei zerlegt die Datenbank komplexe Abfragen automatisch in einfachere Teilaufgaben, | ||
| + | |||
| + | Ingres eignet sich für eine breite Palette von Anwendungen, | ||
| + | |||
| + | (Für Ingres antwortete Kristin Hollins, Vice President Of Executive And Product Communications der Ingres Corporation, | ||
| + | |||
| + | |||
| + | == Oracle Express Edition == | ||
| + | |||
| + | Die //Oracle Database 10 XE// basiert auf demselben Code wie die anderen Varianten der Produktlinie Oracle 10g, Release 2 (Standard Edition One, Standard Edition und Enterprise Edition). Ein Upgrade bei wachsenden System- oder Businessanforderungen ist jederzeit ohne Änderung der Lösung möglich - das sorgt für eine hohe Flexibilität und eine große Investitionssicherheit. | ||
| + | |||
| + | **Oracle XE** zeichnet sich durch leichte Installation, | ||
| + | |||
| + | (Für Oracle antwortete Renate Mayer, Oracle, München.) | ||
| + | |||
| + | |||
| + | == DB2 Express-C == | ||
| + | |||
| + | Die besonderen Merkmale sind: keine Einschränkung der Datenbankserver-Funktionalität im Vergleich zu der lizenzierten //DB2 UDB Express Edition//. Die einzige Systemlimitierung betrifft die Anzahl der Prozessoren und die Größe des Hauptspeichers, | ||
| + | |||
| + | **DB2 Express-C** unterstützt 32- und 64-Bit-Systeme unter Linux (inklusive Power 32 und 64 Bit) und Windows. Es bietet API-Unterstützung für C, JDBC, Dotnet, PHP, Perl, Python und andere Programmiersprachen und Entwicklungsumgebungen wie Eclipse, Microsoft Visual Studio Dotnet, Toad, DB2 Development Center, Rational Application Developer oder Zend Studio. | ||
| + | |||
| + | DB2-Express-C-Anwendungen müssen nicht angepasst werden, um auf lizenzbasierten DB2-Editionen lauffähig zu sein, falls die maximale Systemkapazität von DB2 Express-C einmal nicht mehr ausreicht. | ||
| + | |||
| + | (Für DB2 antwortete Christine Paulus, Media-Relations IBM Software Group.) | ||
| + | |||
| + | |||
| + | == Sybase ASE Express == | ||
| + | |||
| + | Für **Sybase** sprechen die gleichen Gründe wie für Linux selbst: geringere Kosten, bessere Performance, | ||
| + | |||
| + | Eine besondere Stärke kann //Sybase// ausspielen, wenn es um die Migration von Microsoft SQL auf Linux geht. Dabei ist eine direkte Datenübernahme in eine Sybase-Datenbank unter Linux möglich, auf die dann Clients aus beiden Welten zugreifen können. | ||
| + | |||
| + | (Die Argumente zu Sybase steuerte Frank Irnich bei, Account Manager der Sybase GmbH.) | ||
| + | |||
