Webseiten-Werkzeuge


datenbanken

Datenbanken

die wichtigsten DB-Kommandos im Vergleich zwischen verschiedenen Datenbanken
Beschreibung MySQL PostgreSQL SQLite
Login mysql -u root psql postgres -U pgsql
Spalten einer Tabelle auflisten SHOW COLUMNS FROM tab_name SELECT column_name FROM information_schema.COLUMNS WHERE TABLE_NAME = 'tab_name' .schema
eine Datenbank anlegen (CLI) mysqladmin create db_name createdb db_name .open db_name.db
eine Datenbank anlegen (SQL) CREATE DATABASE db_name CREATE DATABASE db_name OWNER = fritz .save db_name.db
alle Datenbanken zeigen (CLI) mysqlshow -u root psql postgres -U pgsql -l
alle Datenbanken zeigen (SQL) SHOW DATABASES SELECT datname FROM pg_database .databases
alle Tabellen einer DB zeigen (CLI) mysqlshow -u root db_name \dt .tables
alle Tabellen einer DB zeigen (SQL) SHOW TABLES SELECT tablename FROM pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
Tabellenbeschreibung SHOW CREATE TABLE tab_name \d+ tab_name
Benutzer anlegen (CLI) createuser fritz
Benutzer anlegen (SQL) CREATE USER fritz CREATE USER fritz
Passwort ändern UPDATE user SET authentication_string=password('geheim') WHERE User='fritz' ALTER USER fritz WITH PASSWORD 'geheim'
Benutzer auflisten SELECT host,user,plugin,authentication_string FROM mysql.user; \dg+
Benutzer Rechte geben GRANT SELECT ON db_name.* TO fritz GRANT SELECT ON tab_name TO fritz
Benutzerrechte zeigen SHOW GRANTS FOR fritz SELECT * FROM information_schema.role_table_grants
Benutzer löschen DROP USER fritz DROP USER fritz
Benutzer Rechte entfernen REVOKE INSERT,UPDATE,DELETE ON *.* FROM fritz REVOKE INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public FROM fritz

Datenbank-Ausgabe in CSV umwandeln

klassisches CVS:

# ... | sed '/^[+-]*$/d;s/[ ]*|[ ]*/","/g;s/^",//;s/,"$//;s/\n//g'

CVS mit Semikolon als Feldtrenner und ohne doppelte Anführungszeichen:

# ... | sed '/^[+-]*$/d;s/[ ]*|[ ]*/\;/g;s/^\;//;s/\n//g'

zum Beispiel mit MySQL:

# echo "SELECT ...;" | mysql -Nt -h ${mysqlhost} -u ${mysqluser} -p${mysqlpass} ${mysqldb} | sed '/^[+-]*$/d;s/[ ]*|[ ]*/\;/g;s/^\;//;s/\n//g'

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:

  1. MySQL;
  2. Max DB;
  3. PostgreSQL;
  4. Firebird;
  5. Ingres 2006;
  6. Oracle XE;
  7. DB2 Express-C;
  8. 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, denn auch die Grenzwerte für Performance, Verfügbarkeit oder Sicherheit lassen sich nur in Relation zu ihm 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

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, boolesche Werte oder Netzwerkadressen. 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, es gibt kein Load Balancing und kein Multi-Threading.

Firebird

* http://www.firebirdsql.org

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, keine Volltextsuche, nur B-Tree-Indizes, keine Tabellen-Partitionierung und keine 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, einfacher Installation und guten Cross-Plattform-Fähigkeiten. Im zuletzt genannten Punkt übertrifft es beispielsweise auch PostgreSQL, dessen Windows-Port lange ein Schattendasein fristete.

Ingres

zählte wieder zu den Pionieren: eine der ersten Open-Source-Datenbanken mit ausgeprägten Enterprise-Fähigkeiten wie Replizierbarkeit, Möglichkeiten für parallele Abfragen, Partitionierung oder Grid-Tauglichkeit. Später verkaufte CA Ingres an eine Investment-Firma, die schließlich die Ingres Corporation gründete, die die Datenbank nun seit einigen Monaten als 2006 Community Edition unter der GPL verbreitet.

Oracle-Kompatible Ableger

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), wobei sich erschwingliche Standardrechner verwenden lassen. MySQL ist auf mehr als 20 Plattformen verfügbar und in einer Viertelstunde installiert. Es lässt sich als Embedded MySQL direkt in Applikationen integrieren.

(Für MySQL antwortete Jürgen Giesel, Mitarbeiter der MySQL GmbH.)

PostgreSQL

Gegenüber proprietären Anbietern ist der Feature-Umfang etwa vergleichbar, wobei sicher in bestimmten Bereichen noch Lücken bestehen. Im Vergleich mit diesen Produkten sind die Vorteile von PostgreSQL hauptsächlich der Preis, die Offenheit, die hilfsbereite Community und der geringe Installations- und Administrationsaufwand. Gegenüber den anderen freien Produkten punktet PostgreSQL hauptsächlich mit seinen Features. Allerdings schlagen auch hier die Vorteile der freien Lizenz und der gleichberechtigten, nicht von einer Firma dominierten Community zu Buche.

(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, die direkt von einer CD startet, bis zum großen ERP-System mit Millionen Transaktionen täglich. Außerdem hervorzuheben ist die Unterstützung zahlreicher Programmiersprachen wie C, C++, Java, Delphi, PHP, Python und so weiter. Dennoch kommt Firebird ohne Administrator aus - die Grundeinstellungen passen für jedes Szenario - und ist ein Leichtgewicht: Der Installer bringt es auf gerade einmal 4 MByte, die installierte Version bleibt unter 20 MByte.

(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, der geringe Ressourcenverbrauch und die Unterstützung von Industriestandards wie JDBC, ODBC oder Dotnet genauso wie zahlreiche Programmierschnittstellen, parallele Abfragebearbeitung, Key Range Table Partitioning oder Hochverfügbarkeits-Cluster. Daneben ist Ingres C2-zertifiziert, genügt also höchsten Sicherheitsanforderungen.

Ingres ist auch die Open-Source-Datenbank mit der fortgeschrittensten Abfrageoptimierung und -ausführung. Dabei zerlegt die Datenbank komplexe Abfragen automatisch in einfachere Teilaufgaben, die sie dann parallel abarbeitet und am Ende wieder zusammenführt. Die Laufzeit verringert sich damit auf einen Bruchteil dessen, was herkömmliche Optimizer sonst erreichen.

Ingres eignet sich für eine breite Palette von Anwendungen, darunter Transkationsverarbeitung, Unternehmens- und Internet-Applikationen, Data Warehousing, Finanzdienstleistungen oder das Datenmanagement in Verwaltungen oder im Telekommunikationssektor.

(Für Ingres antwortete Kristin Hollins, Vice President Of Executive And Product Communications der Ingres Corporation, USA.)

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, eine Vielzahl von Programmierschnittstellen und eine integrierte, grafische Administrations- und Entwicklungsumgebung aus. Die Basisfunktionen der Datenbank entsprechen denen der Kaufversionen und enthalten unter anderem fortgeschrittene Features wie Row Level Locking, Volltext-Indizierung, Replikationsmechanismen, XML DB, Online-Backup, SQL-Analytic Functions oder Features für geografische Abfragen (Oracle Locator).

(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, dafür sind die Datenbankgröße, die Anzahl der User oder der Connections und die Anzahl der Instanzen pro Server nicht beschränkt.

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, Sicherheit und Zuverlässigkeit und eine offene Technologie, die Industriestandards unterstützt. Eine Studie der Beratungsgesellschaft The Standish Group aus dem Jahre 2004 bescheinigte Sybase ASE die niedrigsten Betriebskosten für verschiedene Anwendungsszenarien im Vergleich mit Oracel, IBM DB2 und Microsoft SQL. Zugleich erreicht die Datenbank sehr gute Performancewerte und eine sehr weit gehende Konformität mit dem SQL-Standard, bietet hohe Stabilität und herausragende Sicherheits-Features.

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.)

datenbanken.txt · Zuletzt geändert: 2021/05/18 10:18 von manfred