Laden...

Empfehlungen für SQL-Datenbank gesucht

Erstellt von juetho vor 14 Jahren Letzter Beitrag vor 14 Jahren 12.162 Views
J
juetho Themenstarter:in
3.331 Beiträge seit 2006
vor 14 Jahren
Empfehlungen für SQL-Datenbank gesucht

Immer wieder kommt die Frage: Welche Datenbank? Ich möchte mit dieser Diskussion eine Zusammenstellung erreichen, die dann als FAQ oder Artikel veröffentlicht werden soll.

Problemstellung
Für ein Programm wird eine "richtige" SQL-Datenbank gesucht. Die Datenbank soll nur lokal, also auch ohne Zugriff durch mehrere Benutzer arbeiten. Die Installation sowohl des Datenbank-Programms als auch des NET Data Provider soll einfach sein und sich auf das Kopieren von einer oder einigen wenigen DLLs beschränken. Es wäre gut, wenn das DBMS später durch einen SQL-Server für mehrere Benutzer ersetzt werden kann, ohne dass dafür großer Aufwand nötig wird.

Lösung
Jeder, der ein solches Datenbank-System empfiehlt, möge bitte in seinem Beitrag folgende Punkte erwähnen (ähnlich wie ich in meinem Firebird-Vorschlag):*Name des Datenbank-Systems und Link für den Download *Begründung für die Empfehlung (soweit sinnvoll) *Hinweis auf ein Administrationsprogramm *Hinweis (Link) auf Lizenzbedingungen für die (vorzugsweise freie) Benutzung der DB *Verweis auf einen passenden "großen" Server *Name des NET Data Provider und Link für den Download

Wenn einige sinnvolle Empfehlungen gekommen sind, möchte ich diese Beiträge als FAQ oder Artikel zusammenstellen und den Power-Usern zur Veröffentlichung empfehlen. Danke für die Mitarbeit bei dieser Gemeinschaftsaktion!

Jürgen

J
juetho Themenstarter:in
3.331 Beiträge seit 2006
vor 14 Jahren
Firebird (embedded)

Firebird ist eine freie Open-Source-Datenbank, die von einer sehr aktiven Gemeinde entwickelt wird. Die Installationsroutine ist zu finden über Sourceforge.net. Das Programm muss installiert werden ("read the guide"), aber die Installation verläuft eigentlich immer problemlos.

Darin enthalten sind auch verschiedene Hilfsprogramme für die DB-Administration. Stattdessen stehen auch IBExpert (Personal) oder FlameRobin zur Verfügung.

Die Lizenzbedingungen stehen unter Firebird - Initial Developer's PUBLIC LICENSE.

Die embedded-Version von Firebird kann jederzeit durch die Server-Version ersetzt werden. Es ist unter Umständen auch möglich, mehrere FB-Versionen parallel zu betreiben.

Für ADO.NET steht der Firebird .NET Data Provider mit dem FirebirdSql.Data.FirebirdClient-Namespace zur Verfügung. Für Programmierer, die mit Visual Studio entwickeln, wird zusätzlich der DDEX Provider benötigt; in den VS-Express-Versionen kann der Datenbank-Designer nicht mit Firebird zusammenarbeiten.

Jürgen

J
juetho Themenstarter:in
3.331 Beiträge seit 2006
vor 14 Jahren

(Komisch: Wenn jemand konkret nach solchen Empfehlungen fragt, bekommt er ruck-zuck mehrere Antworten, und zwar bekommt jeder neue Fragesteller dieselben Antworten. Wenn ich diese Empfehlungen einmal für alle zusammenstellen möchte, haltet ihr euch zurück. Will denn niemand etwas für MS-SQL Server Express oder für MySql oder SQLite oder ... sagen und begründen? ? Jürgen

F
10.010 Beiträge seit 2004
vor 14 Jahren

Naja die meisten von uns schreiben dann, suche mal nach x und y.
Ausserdem kann man auch noch Z benutzen.

Das ist weniger arbeit als sich hinzusetzen und das ausführlich zu machen.

3.728 Beiträge seit 2005
vor 14 Jahren
SQL Server Compact 3.5 SP1

Hallo juetho,

ich würde Dir da den Microsoft SQL Server Compact 3.5 SP1 empfehlen (Download-Link: http://www.microsoft.com/sqlserver/2005/en/us/compact-downloads.aspx)

Da er sehr nah mit dem großen Microsoft SQL Server verwandt ist, wirst Du damit wohl die geringsten Probleme haben, später auf den großen Bruder umzustellen. Die Datentypen sind indentisch (wobei der kleine Compact SQL Server nicht alle Datentypen des großen SQL Server unterstützt; Aber jene, die er unterstützt, verhalten sich gleich). Das allein ist ein großer Vorteil. Aber auch der SQL-Dialekt ist identisch. Sowohl der Große als auch der Kleine sprechen TSQL. Der Große hat natürlich ein paar Funktionen mehr, aber in den allermeisten Fällen werden die SQL-Statements 1:1 auch auf dem Kleinen funktionieren.

Hinzu kommt die eingebaute Unterstützung, Datenbanken mit dem großen SQL Server (Version 2000-2008) zu synchronisieren. SQL Server Compact eignet sich damit z.B. hervorragend für Anwendung die beim Außendienstler auf dem Notebook laufen und eine vollwertige Datenbank benötigen. Stöpselt der Außendienstler sein Notebook in der Zentrale ans LAN, wenn er seinen Büro-Tag hat, werden die Daten seiner lokalen Compact-Datenbank mit dem zentralen SQL Server der Firma ab geglichen. Und das, ohne das viel Programmieraufwand nötig wäre.

Ein weiterer Vorteil ist die gute Integration in Visual Studio 2008. Alle Entwicklungs-- und Administrationsaufgaben können direkt in Visual Studio vorgenommen werden. Man muss sich also nicht an neue Tools gewöhnen. Die Datenzugriffs-Technologien ADO.NET und ADO.NET Entity Framework werden unterstützt. Damit ist SQL Server Compact Edition auch was für OR-Mapper-Fans. Die nötigen ADO.NET-Provider sind im Installationspaket enthalten.

Alternativ zu Visual Studio kann man SQL Server Compact auch mit dem SQL Server Management Studio des großen SQL Server 2008 administrieren. Auch da zeigt sich, dass die zwei sehr gut zusammen passen.

Der kleine SQL Server Compact läuft nicht als eigenständiges Programm, sondern wird als DLL eingebunden und läuft im Prozess der eigenen Anwendung (Embedded). Für den Betrieb genügt es, bestimmte DLLs mit ins Ausführungsverzeichnis zu kopieren. Eine genaue Anleitung dazu, findet sich hioer: http://blogs.msdn.com/stevelasker/archive/2008/10/22/privately-deploying-sql-server-compact-with-the-ado-net-entity-provider.aspx

SQL Server Compact ist kostenlos und darf meines Wissens nach auch mit der eigenen Anwendung als DLL weiterverteilt werden. Allerdings ist das Produkt nicht quelloffen (also Closed Source). Details sind den Lizenzbedingungen zu entnehmen, die vor der Installation des Pakets angezeigt werden. Auch den großen SQL Server gibt es in der Express Edition kostenlos (Download-Link: http://www.microsoft.com/downloads/details.aspx?familyid=B5D1B8C3-FDA5-4508-B0D0-1311D670E336&displaylang=de). Management Studio, Volltextsuche-Modul und Reporting Services (Vollständige Plattform für Berichte und Auswertungen mit Designer und Webportal) sind darin auch enthalten. Alles für lau! Die Express-Version hat allerdings gegenüber den kostenpflichtigen Versionen ein paar Einschränklnungen: http://msdn.microsoft.com/de-de/library/cc645993.aspx

Alles weitere findest Du in der umfangreichen Dokumentation unter: http://msdn.microsoft.com/en-us/library/bb734673.aspx

Ich bezweifle, dass ein anderes Datenbank-Gespann genauso viel Synergie-Effekte vorweisen kann, wie SQL Server Compact 3.5 SP1 und SQL Server 2008. Da ist eben alles aus einem Guss.

Man merkt bestimmt, dass ich ein begeisterter SQL Server-Anwender bin 😉.

J
juetho Themenstarter:in
3.331 Beiträge seit 2006
vor 14 Jahren

@FZelle
Das ist mir schon klar, aber ich hatte wenigstens gehofft...

Danke Rainbird, so ähnlich (wenn auch nicht ganz so ausführlich) hatte ich mir das gedacht.

Wenn es jetzt noch eine weitere Empfehlung gibt, dann könnte man das zusammenstellen.

Jürgen

6.911 Beiträge seit 2009
vor 14 Jahren

Hallo,

in eine solche Sammlung gehört auch was nicht gut geeignet ist.

**MS Access **-ist wohl jedem ein wenig bekannt und daher und aus den folgenden Grüden werden die von Jürgen geforderten Punkte nicht aufgeführt - sollte nicht verwendet werden da*MS Access ist nicht für den Einsatz in datenbank gestützen Anwendungen entwickelt worden. *Es passiert häufig dass die Datenbank korrupt wird. *Es gibt keine Sicherheitsmechanismes in der Datenbank. *T-SQL wird nur teilweise unterstützt. *Es gibt keine Bulk-Operationen. *Es gibt keine Optimierungen für die Ausführungspläne. *Es gibt keine (gute) Unterstützung für gespeicherte Prozeduren. *Es gibt keine gut geeigneten Verbindungsprovider zu MS Access.

Aus diesen Gründen sollte MS Access eigentlich nicht verwendet werden. Andere Datenbanke stellen eine vernüftige Alternative dar.

mfG Gü

Man merkt bestimmt, dass ich ein begeisterter SQL Server-Anwender bin 😉.

Ich auch 😉

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

3.825 Beiträge seit 2006
vor 14 Jahren

Hallo Rainbird,

der SQL-Dialekt des Compact Servers ist leider nicht identisch mit dem SQL des großen SQL-Servers.

Ich setze auch beide ein und kann trotzdem beide empfehlen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

3.728 Beiträge seit 2005
vor 14 Jahren
Dialekte

der SQL-Dialekt des Compact Servers ist leider nicht identisch mit dem SQL des großen SQL-Servers.

Klar, der Kleine hat nur abgespecktes T-SQL, aber die Features, die er unterstützt, verhalten sich doch genauso wie auf dem Großen, oder bin ich da auf dem Holzweg?

1.564 Beiträge seit 2007
vor 14 Jahren

der SQL-Dialekt des Compact Servers ist leider nicht identisch mit dem SQL des großen SQL-Servers.
Klar, der Kleine hat nur abgespecktes T-SQL, aber die Features, die er unterstützt, verhalten sich doch genauso wie auf dem Großen, oder bin ich da auf dem Holzweg?

Die von SQLCE unterstützten Befehle (wie SELECT, INSERT, UPDATE, DELETE) verhalten sich schon gleich. Allerdings ist der Befehlssatz schon sehr eingeschränkt. Das ist auch der Grund warum ich bei heutigen Client-PCs meistens die Express Edition vorziehen würde.

@juetho
Ich würde mich für die Express Edition entscheiden und hätte schon ein bisschen was dazu zusammenstellen können. Allerdings schließen deine Anforderungen (kopieren von wenigen DLLs) die Express Edition eigentlich aus.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

S
469 Beiträge seit 2007
vor 14 Jahren

Aus diesen Gründen sollte MS Access eigentlich nicht verwendet werden. Andere Datenbanke stellen eine vernüftige Alternative dar.

Sorry, aber diese Aussage finde ich unter bestimmten Umständen übertrieben.
Ich habe fast zwei Jahre lang eine MS Access Datenbank gemanaged die auf einem Netzlaufwerk lief. In diesen zwei Jahren kam es kein einziges Mal vor dass ich die Datenbank über eine netürlich regelmäßig erstellte Sicherheitskopie retten musste.
Erst als die Datenbank multiuser-fähig werden sollte und sie eine Größe von > 40 MByte erreichte und immer langsamer wurde, wurde der Umstieg auf den SQLServer genehmigt. Der Umstieg von Access auf den SQLServer dauerte trotz ca 200 Tabellen und viele in C# Code gespeicherten Abfragen nur einen Tag!!! Administration natürlich nicht mitgerechnet...ich gestehe ich hatte nur einfache Abfragen, nichts extrem geschachteltes und übermäßig gejointes, aber das einzige was wirklich schief ging waren die Bool-Spalten die es halt im SQLServer nur als 0/1 Spalte gibt und nicht als true/false. Das angepasst und alles lief (noch besser: meine Anwendung läuft nun auf Access und SQLServer).
SQLServer ist sicher viel besser und sicherer als MS Access, aber ich verwende z.B. im privaten Bereich hauptsächlich Access, erstels weil ich mir den SQLServer nicht leisten kann (und die ganzen compact Versionen von .NET, da hab ich bisher nur Ärger mit gehabt), und zweitens weil es nichts komfortableres gibt als den Tabelleneditor in Access.

Deshalb von mir mal die Vorzüge von Access 😃
-> Wann MS Access eine Überlegung wert sein könnte...

Voraussetzung ist wohl, dass das Programm eh installiert ist, denn die meisten die hier anfragen wollen sicher keine Kauf-Lösung sondern was kostenloses..nu ja sicher geht es auch die DB aufzusetzen ohne das Programm (sprich über SQL-Befehle) aber ich geh nicht davon aus dass das jemand macht...und wer was professionelles will (für Arbeit oder so) der ist dann in der Tat doch mit was anderem besser bedient 😃

Access ist toll wenn man mal kurz was ausprobieren will und einfach ein paar Tabellen klicki klacki zusammenklicken will, und sich nicht erst in ein kompliziertes System einarbeiten will. Wer sich mit Datenbanken an sich (also Tabellen, Beziehungen, Normalisierung etc.) auskennt (was man ja bei jedem DBMS tun sollte) der hat sich sehr schnell soweit in Access eingearbeitet, dass er ein paar Tabellen aufsetzen kann.

Für die kleine Heimanwendung "MP3-Sammlung", "Filme-Sammlung" die man nur selbst braucht prima.

Wenn die Nutzung der Datenbank nicht kompliziert eingeschränkt werden soll (der darf dies und der darf das) dann muss man admistrativ garnichts machen dann kann halt einfach jeder alles...

Es sollten nie zwei oder mehr Leute gleichzeitig schreibend auf die Datenbank zugreifen, das könnte mitunter kritisch werden (gegenseitiges Überschreiben, im schlimmsten aber auch sehr seltenen Fall Inkonstistenzen).

Ich glaub es geht niergends einfacher und schneller ein einfaches Backup zu erstellen...Datei kopieren und da isses.

Das bissl SQL das Access verstehen kann (sofern man nicht die eingebauten, Access-spezifischen Funktionen verwendet) können die meisten anderen DBMS auch..insofern sollte ein Umstieg nicht allzu aufwendig sein. Einzige Ausnahme die ich hier machen musste war die Bool-Spalte, die gibt es nicht überall, und außerdem ist true nicht überall gleich definiert (mal 1 mal -1).

Wenn das C# Front End bei anderne Usern eingesetzt werden soll brauch der auf neueren Windows Versionen garnichts zusätzliches zu installieren.

Für riesige Datenmengen ist Access natürlich auch nicht gerade passend. Zweistellige, nicht zu hohe MByte-Bereiche ok, aber mehr wär ich vorsichtig...

SUMMA SUMMSUMMSUMM
Für professionelle Anwendungen ist Access eher nichts, wer aber einfach mal ein bissl spielen will und für den Eigenbedarf ein paar Daten speichern will, und wer Access auch schon installiert hat und insofern keine Aufwände hat (und vielleicht auch noch etwas Speicher frei, denn zu regelmäßigen Backups rate ich trotzdem jedem), da ist nichts gegen MS Access einzuwenden...

Zitat:
Man merkt bestimmt, dass ich ein begeisterter SQL Server-Anwender bin 😉.
Ich auch Augenzwinkern

Bei mir merkt man's wahrscheinlich nicht, aber ich auch 😃
Jedenfalls auf Arbeit. Für meine kleinen Film- und Musik-Datenbanken daheim würde mir aber nicht im Traum einfallen mir ein teures und/oder komplexes Datenbanksystem zu kaufen/downzuloaden, das kompliziert zu administrieren und einzurichten ist mit Backups etc. Das wär mir mit Kanonen auf Spatzen geschossen...

gruß
sth_Weird

++++++++++++++++++++~+
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht


Linux is for free...if your time is worth nothing
++++++++++++++++++++~+

F
10.010 Beiträge seit 2004
vor 14 Jahren

Ich glaube du verwechselst da einiges im Bezug auf SqlServer.

  1. Sql Express ist kostenlos, und hat ( bis auf die Dateigrösse ) den gleichen Befehlsumfang wie der "grosse".

  2. Sql Server Compact ( also der embedded Sql Server )macht nur Probleme, wenn man ihn falsch programmiert,
    ansonsten ist der deutlich performanter als es die JetEngine ist.

  3. Wer im Privaten Umfeld hat wirklich Access?

  4. Schon mal den Tabellen oder AbfrageEditor im Management Studio Express angeschaut? Und die sind kostenlos.

3.511 Beiträge seit 2005
vor 14 Jahren

Wer hat eigentlich das Gerücht in die Welt gesetzt, das der SQL Server "kompliziert" zu warten, zu installieren und zu handhaben ist 🙂

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

S
469 Beiträge seit 2007
vor 14 Jahren

Wer hat eigentlich das Gerücht in die Welt gesetzt, das der SQL Server "kompliziert" zu warten, zu installieren und zu handhaben ist

Vom kompliziert zu installieren hab ich nichts gesagt.
Ich "administriere" ja bei mir nur die Tabellen, Userrechte etc. Für alles andere weigert sich die IT Rechte zu vergeben deshalb denk ich da kann man wohl das ein oder andere falsch machen. In den Bereich habe ich mich dann auch nur unzureichend eingelesen aber es schien da schon etwas mehr als Häkchen setzen dahinter zu sein, die Backup-Scripte zu erstellen, das Wachstum der Datenbank zu managen etc. Bei Access braucht man sich da nicht drum zu kümmern, es kann das halt auch alles nicht.
Aber ich gebe zu, Access haben nicht viele Leute privat, ist ja im normalen Office nicht dabei. Deshalb ja auch meine Einschränkung, dass man es bereits haben sollte, wenn man erwägt es als DBMS zu verwenden.
Auf meinem ersten Rechner (98) war es damals mit drauf. Da ich's auch in der Dipl.Arbeit gebraucht hab hab ichs mir später dann auch zugelegt, aber wenn man so keinen Anlass hat ist das schon recht teuer.
Trotzdem find ich nicht gut dass man es so verteufelt weil es doch seine guten Seiten hat und seine Berechtigung hat.

Gruß
sth_Weird

++++++++++++++++++++~+
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht


Linux is for free...if your time is worth nothing
++++++++++++++++++++~+

S
324 Beiträge seit 2007
vor 14 Jahren

Wer hat eigentlich das Gerücht in die Welt gesetzt, das der SQL Server "kompliziert" zu warten, zu installieren und zu handhaben ist 😃

^^ so ein SQl Server Express 2008 unter windows X das erste mal Installieren - kostet schon einige nerven wenn man es vorher noch nie geamcht hat.
Man muss erst das .NET 3.5 SP1 installieren, vergreift sich im DOwnload und isntalliert erstmal 3.5 ohne SP1 weil mans nicht mit bekommt - installiert dan das SP1 nochmal drüber - dann noch MSXML6.0 installieren - den Windows Insataller 4.1... Und irgendwann geht es dann 😃

Wie gut das der Kram bei den Kostenpflichtigen Versionen mit installiert wird 😃

3.511 Beiträge seit 2005
vor 14 Jahren

Vom kompliziert zu installieren hab ich nichts gesagt.

Ich weis, das war auch nicht direkt auf dich bezogen. Das war mehr eine Frage einfach so im Raum geschmissen. Denn bei Threads, wo es um "Welche Datenbank" geht, sticht es doch meist sehr stark hervor, das man immer wieder ließt "kompliziert/schlecht zu ...".

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)