ODBC

Open DataBase Connectivity

Die ODBC-Technologie ermöglicht die Verwendung fast beliebiger Daten-Quellen, und zwar unabhängig von System, Version und von jenem Programm, welches die Daten anbietet. Das Konzept klingt interessant. Allerdings sind einfache AnwenderInnen damit meist überfordert, außerdem erfolgt der Zugriff sehr langsam. Daher ist die Anwendung heute auf wenige Nischen beschränkt.
ODBC Open DataBase Connectivity
Datenquellen Data Source Names (DNS's)
ODBC auf Windows: MS-Query, ODBC-Treiber
→ ODBC-Datenquellen: SQL-Server, SQLite, Access, Excel, Text, ...
Vorzugsweise 'echte' Datenbank-Server wie MySQL...
Programmierung Zugriff auf ODBC-Datenquellen
Module dbi und dbd::odbc
PHP
Module odbc oder pdo_odbc
Das Objekt QueryTable
Links Ausgewählte Links zum Thema 'ODBC'

ODBC

Open DataBase Connectivity ist eine Technologie zum Austausch von Daten zwischen Anbietern (Server) und Konsumenten (Clients).

Die ODBC-Technik zählt zu den interessantesten Entwicklungen von Microsoft, da sie den Daten-Verkehr in sehr allgemeiner Form beschreibt:
ODBC stellt eine einheitliche Plattform dar, auf welcher Daten unabhängig von individuellen Servern oder Clients in allgemeiner Form zur Verfügung stehen.

Das ist ein wesentlicher Vorteil für AnwenderInnen. Leider wird dieser Vorteil oft durch unnötig komplizierte Programmierung verspielt.

Daten-Server

Als Anbieter von Daten treten sehr unterschiedliche Systeme auf:
Spezialisierte Datenbank-Server ( → SQL-Server), mit Angeboten im Internet oder im lokalen Netzwerk (LAN), z.B. → MySQL-Server.
Datenbank-Programme, mit Angeboten am eigenen PC, z.B. OpenOffice-Base, MS-Access, Filemaker oder SQLite.
Diverse andere Programme, die Daten als 'Nebenprodukt' anbieten wie z.B. Kalkulations-Programme (OpenOffice-Calc, MS-Excel, ...)
XML-Dateien sind Text-Dateien, die Daten speichern und verteilen können.
Text-Dateien: Dateien aus gewöhnlichem einfachem Text (text/plain, ohne Formatierung) können als Daten-'Server' dienen.

Mit ODBC werden derart unterschiedliche Datenquellen auf eine gemeinsame Schiene gebracht.

Dazu stellt jeder Hersteller eines Daten-Servers zusätzlich zum Programm einen ODBC-Treiber zur Verfügung.
Dieses kleine Programm vermittelt den Daten-Verkehr zwischen Datenquelle und ODBC: Das Daten-Angebot gelangt über den Treiber auf die ODBC-Schiene.

Umgekehrt ist ODBC in der Lage, die Daten des Angebots mit Programmen des eigenen PC zu ändern, zu ergänzen oder zu löschen. Die Zugriffs-Rechte können allerdings je nach Konfiguration des Servers beschräkt sein.

ODBC wird am eigenen (Client)-PC installiert. Man benötigt keine besonderen Zugangs-Rechte zum Anbieter (Server)-PC. Das ist ein großer Vorteil von ODBC.

Daten-Anwender (Client)

Als Client kommt prinzipiell jedes Programm in Frage, welches (fremde) Daten verarbeiten kann.
Alle gängigen Office-Programme sind mit ODBC-Schnittstellen ausgestattet. Man kann damit auf das gesamte ODBC-Angebot zugreifen.

Die Programme benötigen für den Zugriff auf beliebige Daten theoretisch nur die ODBC-Schnittstelle. Damit erfüllt ODBC die wichtigste Aufgabe jedes Standards:
Eine einheitliche, verlässliche Norm, welche die Herstellung von Daten-Software rascher, einfacher und billiger macht.

Manche Programme treten sowohl als Daten-Server als auch als Client auf, d.h. sie können Daten importieren und exportieren.

In diesem Fall sorgt der meist getrennt gelieferte ODBC-Treiber für die Funktion als Daten-Server (Anbieter, Export), und die eingebaute ODBC-Schnittstelle für die Funktion als Client (Nutzer, Import) beliebiger fremder Daten-Quellen.

Datenquellen (DSN) einrichten

Jede Verbindung zu einer Datenquelle muss einmalig als ODBC-Datenquelle (Data Source Name, DSN) eingerichtet werden.

Das erfordert die Eingabe aller benötigten Informationen - Je nach Quelle z.B. IP-Adresse, UserName, Passwort, Datenbank-Name, Datei-Pfad, usw.

Damit sind viele einfache AnwenderInnen überfordert Man kann sich zwar helfen lassen, aber dieser Umstand trägt wesentlich zur geringen Verwendung von ODBC bei.

Datenquellen verwenden

Nach der Einrichtung kann man jede ODBC Datenquelle mit allen Programmen des eigenen PC nutzen. Das funktioniert schneller und sicherer als mit jeder anderen Art der Verbindung.

Die Auswahl einer ODBC Datenquelle (aus allen am PC eingerichteten DSN's) ist je nach Programm unterschiedlich gut gelöst, leider oft zu kompliziert.

Alle Office-Programme bieten umfangreiche Hilfe zu den ODBC-Funktionen. Die Formulierung ist jedoch oft so kompliziert, dass man auch damit viele AnwenderInnen abschreckt.

ODBC auf Windows

Obwohl ODBC zu den wirklich KundInnenen-freundlichen Entwicklungen des Herstellers gehört, wird es erstaunlich wenig unterstützt:

Bei Standard-Installation der Office-Pakete wird das für ODBC benötigte Hilfs-Programm MS-Query nicht installiert - Die Installation muss ausdrücklich (manuell) angefordert werden (unbedingt empfehlenswert !).

Andererseits werden die ODBC-Treiber für typische PC-Datenquellen (Access, Excel, Text, ...) ungefragt installiert...
Mögliche Ursachen der geringen Anwendung:
Der Umgang mit ODBC ist für private AnwenderInnen unverständlich.

Die Einrichtung der ODBC Datenquellen ist kompliziert, oft abhängig von Versionen und manchmal fehlerhaft (erfordert Tricks zur Durchsetzung).

Betriebe setzen nur mehr Standard Datenbank-Server ein. Alle benötigten Auswertungen sind im User-Interface (meist Server-Programm-Pakete) enthalten. Eine Verwendung der Daten für PC-Programme ist nicht vorgesehen oder sogar unerwünscht.
Tipp: Installieren sie auf Standard Windows-PC unbedingt auch das in jedem MS-Office Paket enthaltene Hilfsprogramm MS-Query (MSQRY32.EXE).

Sie können dann alle Daten-Quellen ihres eigenen PC mit ODBC einsetzen.
Eine typische Anwendung kombiniert z.B. eine Access Datenbank mit Auswertungs-Programmen auf Excel:
Die Access-Datenquelle wird einmalig eingerichtet und liefert ohne weitere Maßnahmen stets die aktuellen Daten an die Auswertung.
Tipp: Installieren sie die ODBC-Treiber (normalerweise kostenlos) für alle regelmäßig benutzten Daten-Quellen, z.B. → SQLite (ausgezeichnet für PC-Datenbanken) oder für einen → MySQL-Server (Bestandteil jedes Standard → LAMP- oder → WAMP-Servers).

Jeder erreichbare Datenbank-Server kann genutzt werden, z.B. ein Server im eigenen lokalen Netzwerk oder im Internet. Voraussetzung sind allerdings die Zugangs-Rechte.

Jede Daten-Quelle wird nur einmal für ODBC eingerichtet und kann dann von jedem Programm ihres PC genutzt werden. Diese Art der Nutzung ist wesentlich schneller und sicherer als der Export und anschließende Import der Daten z.B. mit Hilfe von Text-Dateien.
Details zur Einrichtung und Verwendung von ODBC Datenquellen auf Windows.

JDBC

Die Programmiersprache → Java bietet als moderne Alternative die JDBC-Technologie. JDBC wird überall dort vorteilhaft eingesetzt, wo Java (→ JRE) und andere moderne Komponenten installiert sind, z.B. auf Linux oder mit Windows+OpenOffice. Installation und Anwendung von JDBC erfolgt normalerweise problemlos.

ODBC / JDBC auf Linux

Traditionell wird ODBC oder JDBC auf Linux-PC kaum eingesetzt, obwohl das problemlos funktioniert und in jeder Standard Linux Distribution auch ODBC-Software enthalten ist. Auf Linux verwendet man fast nur professionelle Datenbank-Server. Ein → MySQL Server samt Verwaltungs-Programm → phpMyAdmin ist kostenfrei in jeder Linux Server Distribution enthalten und erübrigt die Verwendung lokaler Daten-Programme ähnlich Access.

Linux-Server

Wenn sie einen Linux-PC als Server im lokalen Netzwerk (LAN) betreiben, dann ist die Installation von ODBC-Software oder -Treibern am Server-PC nicht notwendig.

Für den Zugang mit ODBC oder JDBC benötigt man kein Konto (User-Account) am Server-PC.

Die Konfiguration der Datenbank und aller beteiligten Firewalls muss jedoch den Zugang zum Server (normalerweise Port 3306) erlauben.

Client-PC

Für MS-Office installieren sie MS-Query und den MySQL ODBC-Treiber (kostenfrei beim MySQL-Hersteller) auf allen Windows-PC des lokalen Netzwerks.

Noch besser funktioniert der MySQL JDBC Treiber zusammen mit LibreOffice.

Sie können in beiden Fällen schnell und sicher mit den Windows Office-Programmen auf die Daten ihres Servers zugreifen.

Der Datenbank Server wird meistens so konfiguriert, dass man die Daten auf diese Weise zwar nutzen, jedoch nicht ändern oder löschen kann. Das liegt in der Verantwortung des Datenbank Server Administrators.

ODBC in Programmiersprachen

ODBC-Module

Alle modernen Programmiersprachen sind modular aufgebaut. Die ODBC-Funktionen sind deshalb nicht im Basis-Paket enthalten sondern stets in eigenen ODBC-Modulen.

ODBC-Module sind für alle modernen Programmiersprachen (z.B. Java, Perl, PHP, Python, ...) kostenfrei verfügbar.

Datenbank-Module

Die ODBC-Module werden jedoch selten verwendet, da man Module für den direkten Zugriff auf Datenquellen bevorzugt.
Perl oder PHP bieten z.B. die häufig eingesetzten MySQL-Module für den direkten Zugriff auf MySQL Datenbank Server: Das funktioniert wesentlich schneller als der Umweg über ODBC.

Die ODBC-Technik ist zur Unterstützung von AnwenderInnen-Programmen (Office-Pakete) ausgezeichnet, jedoch bei der Entwicklung eigener Programme entbehrlich.

Moderne Programmiersprachen bieten Module für eine große Vielfalt an Datenquellen, darunter alle namhaften Datenbank-Hersteller.

Tipp: Besorgen sie sich die Datenbank-Module, die genau zu der von ihnen verwendeten Version einer Programmiersprache passen.
Zu einem späteren Zeitpunkt kann es schwierig werden, die passende Version aufzutreiben. Immerhin haben gut programmierte Lösungen zumindest im professionellen Bereich eine Lebensdauer von vielen Jahren.

Web-Editor Programme

Professionelle Programme (z.B. DreamWeaver) bieten Optionen zur einfachen Programmiersung dynamischer Webseiten, mit denen man auf Daten-Quellen zugreifen kann.

Auch in diesem Fall verwendet man jedoch nicht ODBC, sondern direkten Zugriff auf die jeweiligen Datenbank-Server.

Ausgewählte Links zum Thema 'ODBC'
ODBC Treiber
MySQL ODBC Treiber (MySQL Datenbank)
SQLite ODBC Treiber (SQLite Datenbank)
ODBC auf Linux: unixodbc, iodbc,
Programmiersprachen
Java, (Treiber-Liste bei Sun), Perl (Module dbi + dbd::odbc), PHP (Module odbc oder pdo_odbc), Python (Win32 extensions),
Wikipedia: ODBC, DAO (Data Access Objects), JDBC (Java),  

XHTML CSS