FAQ-Datenbanken: Basiswissen, SQL, Anbindungen in Programmiersprachen (C,C++ etc.), kostenlose/freie Datenbanken
-
Alles rund um Datenbanken
1. Basiswissen rund um Datenbanken
- Basiswissen - Datenbank und Internet - von der FH Kiel
- Wikipedia:Datenbanken
- Datenbanken - Überblick und Grundlagen
2. SQL
SQL (Structured Query Language) ist eine Abfragesprache, mit der man relationale Datenbanken manipulieren kann. SQL ist von der ISO standardisiert. Der aktuelle Standard ist SQL:2003 (ISO/IEC 9075:2003).
Wikipedia: SQL - lohnt sich als Einführung in das Thema.
- W3School:SQL Tutorial - englisch
- SQLCourse.com - englisch
- SQL - Einführung und Referenz
- SQL-Tutoriam:Uni_frankfurt
3. Datenbanken mit Programmiersprachen ansprechen
ODBC ist ein Standard, zum Anbinden von Programmen an Datenbanken. Die meisten (alle populären) Datenbanken bieten entsprechende Treiber für ODBC. Die ODBC API ist von der benutzten Sprache unabhängig, was unter anderem dazu führt, dass sie nicht besonders leicht zu benutzen ist. Es gibt aber einige Wrapper-Librarys, die das benutzen von ODBC vereinfachen (siehe 3.2)
Dennoch bringen die meisten Hersteller zusätzlich noch eigene APIs für die Ihre Datenbanken herraus. Wer eine solche Schnitstelle benutzen will, sollte sich in der Dokumentation der benutzten Datenbank oder auf der Webseite des Datenbankherstellers danach informieren.
Unter Java gibt es eine eigene Schnitstelle, die sich JDBC nennt. Die meisten großen Datenbanken haben für JDBC ebenfalls Treiber. Es gibt auch Treiber, die auf ODBC zurückgreifen. Fragen zu JDBC bitte im Java-Forum stellen.
Unter .NET gibt es ein eigenes System, dass [url=]ADO.NET[/url] heisst. ADO.NET ist aber kein Bestandteil des .NET Standards und eine proprietäre Erweiterung von dotNET! Fragen zu dem Thema bitte im C# und dotNET-Forum stellen.
Von Microsoft existieren außerdem noch zwei ältere Datenbankschnitstellen, die aber mittlerweile veraltet sind und nicht mehr unterstützt werden: ADO und DAO.
Borland liefert auch eine eigene API mit dem C++Builder und Delphi mit, die BDE. Fragen zu dem Thema bitte im BCB-Forum stellen.
Perl benutzt die DBI-API, die ebenfalls auf ODBC oder native Treiber zugreifen kann.
3.1. ODBC
- Adabas D ODBC Reference
- MSDN:ODBC Reference
- Connectionstrings - Eine Liste von Connectionstrings (für ODBC, OLE DB, ADO.NET)
- UnixODBC
3.2. ODBC Wrapper für C++
- DTL - Die DTL wrappet die ODBC mit einem STL ähnlichen Interface und integriert sich so besonders gut in C++
- OTL - Die OTL unterstützt DB2 und Oracle native, aber auch ODBC. Die OTL ist, wie die DTL, STL ähnlich implementiert.
3.3. ADO.NET
...
3.4. JDBC
...
- JDBC Technology - offizielle SUN Seite zu JDBC
3.5. Borland: BDE
(siehe auch 3.5.1)
- Borland Database Engine (BDE) Developer Support - offizielle Seite
- BDE Workshop der FH Karlsruhe
3.6. Andere FAQ Beiträge zum Thema Datenbanken
- C-Plusplus/Linux-FAQ:Auf MySQL Datenbank zugreifen - wie man mit der MySQL eigenen API auf MySQL zugreifen kann (allgemein gültig)
3.5.1. BCB-FAQ - BDE
- Ergebnisse von SELECT verarbeiten
- "Fehler beim Erstellen des Cursor-Handle"
- "PDOXUSRS.LCK wird von einer anderen .NET Datei kontrolliert"
- BDE-Fehlermeldungen
- Loginprompt unterdrücken
- Variablen in SQL-Statement einfügen
4. Kostenlose/Freie Datenbanken
Die hier vorgestellten Datenbanken sind entweder kostenlos oder OpenSource.
Librarys bedeutet, dass es sich nicht um getrennte Client/Server Anwendungen handelt, sondern die Datenbank als normale Programm-Library zum Programm hinzugelinkt, dass sorgt dafür, dass der Anwender des Programmes keinen externen Datenbank Server installieren muss (was einen enormen Administrativen- und Resourcenaufwand bedeutet).
Punkt 4.3 und 4.4 behandeln auch Speziallösungen, wie XML Datenbanken.
Für eine Übersicht über Datenbanken, die unter Linux laufen "SQL fähig", "Nicht SQL fähig".
Freshmeat übersicht über freie Datenbanken
4.1. Relationale Datenbank-Librarys (SQL fähig)
- SQLite - eine kleine OpenSource (PublicDomain) C Library, mit Anbindungen an ADA, C++, Clipper, Common Lisp, COM, DBI, ODBC, KexiDB, Borland DBExpress, Delphi, Java, Lua, dotNET, newLISP, Objective-C, OCaml, Perl, PHP, Pike, Ruby, SmallTalk, TCL uvm.
4.2. Relationale Datenbank-Server (SQL fähig)
- Firebird - Firebird ist eine OpenSource Version von Borlands InterBase Datenbank. Es existieren JDBC, ADO.NET und ODBC Treiber. Firebird läuft auf verschiedenen UNIX Derivaten (ua. Linux, BSD, Solaris, HP-UX, MacOS und Windows.
- MaxDB/SAP DB - MaxDB war eine eigentlich von SAP entwickelte Datenbank, die als OpenSource Datenbank veröffentlicht wurde und unter dem Namen MaxDB von der MySQL Firma vertrieben wird (auch kommerziell). MaxDB ist mit anderen Enterprise Datenbanken wie Oracle vergleichbar. Es gibt JDBC und ODBC Treiber und der Datenbank Server läuft sowohl unter verschiedenen UNIX Derivaten, als auch unter Windows.
- Microsoft SQL Server 2000 Desktop Engine (MSDE) - ist eine kostenlose Version vom MS SQL Server. Ähnlich wie die kostenlose Sybase Datenbank unterliegt die MSDE einigen Enschränkungen: Kein Management Tool, Datenbankgröße von 2GB, maximal 5 Prozesse gleichzeitig. MSDE ist natürlich nur für MS Windows verfügbar.
- MySQL - MySQL ist eine kommerzielle und eine OpenSource Datenbank. MySQL ist sehr populär, vorallem im Web. Es existieren Treiber für JDBC, ADO.NET und ODBC. MySQL läuft unter verschiedenen UNIX Derivaten (ua. Linux, BSD, MacOS X etc.), Novell Netware und Windows. Leider nur mit eingeschränkter SQL Funktionalität, aber ziemlich schnell.
- PostgreSQL - PostgreSQL ist eine OpenSource Datenbank. Ebenfalls mit ODBC, ADO.NET und JDBC Treibern. PostgreSQL läuft unter verschiedenen UNIX Derivaten, Novell Netware und Windows.
- Sybase ASE Express Edition for Linux - Sybase hat zu Promoting Zwecken seine ASE Datenbank kostenlos für Linux zur Verfügung gestellt (limitiert auf 1 CPU; 2GB RAM; 5GB Festplatten Paltz; kein Support).
4.3. verschiedene Datenbank-Librarys (nicht SQL fähig)
- Berkley DB XML - Eine XML Erweiterung zu Berkley DB (siehe 4.3.1)
4.3.1. DBM-Like
DBM war eine simple Datenbank-Library für UNIX. Mittlerweile gibt es mehrere Erweiterungen und Clones.
4.4. verschiedene Datenbank-Server (nicht SQL fähig)
- Apache Xindice - Xindice ist eine XML Datenbank. Es wird XML-RPC (Sprachunabhängig) zum ansprechen angeboten und verschiedene XML Spezifikationen unterstützt.
- RDBM - RDBM ist ein NDBM ähnliches System (siehe 4.3.1), nur mit Server. Zur Zeit aber in Überarbeitung.
-
Da ich ein wenig die rudpf FAQ überarbeiten will, habe ich einen neuen Beitrag zum Thema Datenbanken erstellt. Bitte schreibt ein wenig Kritik und Ergänzungen (Lob natürlich auch ;)).
-
-
Hat sonst noch irgend jemand interessante Links zu dem Thema, besonders OO Datenbanken und XML Datenbanken kommen hier ein wenig kurz. Ebenso wie JDBC und ADO.NET.
-
Weiß nicht, ein FAQ-Beitrag ohne Link auf die größten Datenbanken ist irgendwie ein bisschen unheimlich.
-> Oracle
-> Access (Jaja, lacht ruhig. Wir haben in der Schule auch gelacht als der Lehrer davon sprach. In der Ferialpraxis hats fast die Hälfte benötigt)
-> SybaseEinen Link für ADO.NET hab ich noch: http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600123
MfG SideWinder
-
nun, eine Liste der populärsten Datenbanken, wär sicher nicht schlecht.
Nur weiss ich nicht, wie ich das MS Access in eine Liste mit Oracle packen soll. Das ist ja beides nicht wirklich vergleichbar
Datenbanken:
-Oracle
-IBM DB2
-MSSQL-Sybase ASE
-AdabasVielleicht verlinke ich auch einfach auf eine Externe Liste, wie hier aus Wikipedia. (wobei mir die Liste nicht so gut gefällt).
Hat vielleicht jemand dazu einen Link?
hmm, ich überlege ob ich auch XQuery aufnehmen sollte, als Abfragesprache für XML Datenbanken.
-
kingruedi schrieb:
Nur weiss ich nicht, wie ich das MS Access in eine Liste mit Oracle packen soll. Das ist ja beides nicht wirklich vergleichbar
Technisch nicht, aber in der freien Wildbahn programmieren eben viele Leute Access-Abfragen mit ODBC oder SQL, insofern gehört's dazu.
-
-
Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
so ich habe den Beitrag hier mal aufgeteilt, da wir ja jetzt eine FAQ haben, nur für Datenbanken
-
wollte ich nur mal sagen: dieser Thread ist erste sahne