Welche Datenbank sollte ich für die Verwendung zu Hause verwenden?

8

Ich habe alle "verwandten Fragen" mit zwei oder drei verschiedenen Titeln durchgesehen und habe nichts gesehen, also hier.

Ich habe SQL Server und Oracle in der jüngsten Vergangenheit bei der Arbeit verwendet. Ich möchte zu Hause fuzz machen, meistens mit Java, vielleicht mit Ruby on Rails oder Python. Ich betreibe Windows 7. Ich mache normalerweise Web-Anwendungen, möchte dies eventuell remote hosten und darüber hinaus keine spezifischen Anforderungen im Voraus haben.

In diesem Fall bin ich nicht daran interessiert, die Einzelheiten von SQL weiter zu lernen; Ich werde wahrscheinlich ORM verwenden, um dies zu abstrahieren, so dass es automatisch dialektagnostisch ist. Ich werde auch mit ein paar nichtrelationalen Datenspeichern arbeiten, aber ich denke da an bestimmte.

Welche Datenbanken sollte ich beachten?

  1. Ich habe SQL Server Express installiert, und es scheint ziemlich begrenzt zu sein, nur mit .NET zu arbeiten, und die SQL Server Express-Installation scheint auch nicht richtig in die Visual Studio C # Express Edition integriert zu sein, mit der sie geliefert wurde. (Ich kann beispielsweise keine Datenbank automatisch erstellen.)
  2. Ich denke über Oracle XE nach, außer wenn ich jemals meinen Projektcode öffentlich zugänglich machen wollte, scheint das Finden von Hosting für Oracle zu einem vernünftigen Preis ein Stolperstein zu sein.
  3. SQLite scheint der Weg zu sein, schnell und schnell zu gehen, wenn ich nicht viel Nebenläufigkeit brauche.
  4. MySQL scheint der Weg für etwas zu sein, das leicht gehostet werden kann, und könnte der Gesamtsieger sein. Hier ist zu hoffen, dass die GUI nicht immer noch schrecklich ist.
Dean J 03.12.2009, 15:06
quelle

23 Antworten

18

SQLite ist eine sehr gute Option. Es ist nur eine einzige Datei und schnell. Keine Konfiguration, Transaktionen sind unteilbar, unterstützt Terabyte-große Datenbanken. Es gibt Sprachbindungen für Ada, C #, Lisp, Fortran, Java, Lua, PHP, Perl, Python, Ruby, Tcl, etc ...

Es hat gute GUI-Admin-Optionen:

  1. SQLite-Admin für Windows
  2. SQLite-Browser für Linux, Mac und Windows Screenshots
  3. Sogar ein Firefox-Plugin zum Anzeigen / Bearbeiten von Daten
  4. Viel mehr

Es wird in der Industrie verwendet:

  1. Es ist die Basisdatenbank, die Firefox intern für Lesezeichen und Verlauf verwendet. Es kann auch von Plugins verwendet werden, um interne Daten zu speichern. Link
  2. Das iPhone verwendet es auch intern zum Speichern von Daten und kann von den Apps selbst für ihre eigenen Datenspeicher verwendet werden. Hier finden Sie eine Reihe von Tutorials zur Verwendung in Ihren eigenen Apps. Link
  3. Adobe verwendet es als Dateiformat für Lightroom. Apple verwendet es für Mail und Aperture. Skype verwendet es in ihren Clients für Mac und Windows. Schließlich scheint es ein integraler Bestandteil von Symbian, dem Telefon-Betriebssystem von Nokia, zu sein. Benutzerseite
Steven Hepting 03.12.2009, 15:28
quelle
11

Ich habe es genossen mit SQLite3 zu arbeiten - die Python-Schnittstelle ist sehr einfach und die ganze Datenbank ist nur eine Datei!

    
momeara 03.12.2009 15:12
quelle
7

PostgreSQL ist eine ausgezeichnete Open-Source-Datenbank, die mit Java, Python, Ruby, .NET und mehr verwendet werden kann.

Sie können leicht viele Vergleiche zwischen PostgreSQL und MySQL finden. Ich habe beide benutzt und gemocht.

    
David G 03.12.2009 15:16
quelle
5

Ich verwende zu Hause zwei verschiedene Open-Source-basierte Datenbank-Engines:

  1. PostgreSQL
  2. Sqlite3 (eingebaute Treiber beginnend mit Python 2.5)

Da Sie aus dem Hintergrund von Oracle und SQL Server kommen, würde ich definitiv die PostgreSQL-Route empfehlen, sie läuft nativ auf Windows (als Service, ähnlich wie MSSQL / Oracle) sowie auf * NIX-Systemen. Es hat auch eine ziemlich anständige plattformübergreifende GUI namens pgAdmin . Ab Version 8.3 von PostgreSQL ist es auch mit MySQL ziemlich leistungsfähig, es ist nicht wie die älteren 7.x-Versionen, die s-l-o-w waren.

Der größte Grund, warum ich PostgreSQL Leuten mit mehr Oracle / MSSQL-Erfahrung (im Gegensatz zu MySQL) empfehle, ist, dass die SQL-Syntax und das allgemeine Gefühl der Datenbank eng zusammenpassen. Tatsächlich verhält sich PostgreSQL ähnlich wie Oracle in der Art und Weise, wie es die Datenbanksperrung und das gleichzeitige Lesen behandelt.

    
Bryan Rehbein 03.12.2009 16:15
quelle
3

Wenn Sie Oracle bereits kennen, ist Oracle Express Edition sehr hilfreich einfacher zu installieren als die vollständige Monstrosität.

    
skaffman 03.12.2009 15:08
quelle
3

hängt von Ihren Anforderungen ab.

erster Versuch: Wenn Sie eine schnelle und eingebettete Datenbank benötigen und nicht so viele Daten haben (kein Clustering, keine Verteilung), würde ich H2 nehmen. Diese Datenbank ist schnell, kann mit Hibernate / Orm verwendet werden und wenn Sie spezielle Funktionen dieser Datenbank verwenden möchten (ist einfach durch einen Java-Entwickler mit Funktionen zu erweitern ...)

zweiter Versuch: Sie haben nicht so viele relationale Daten, möchten Graphen von Objekten verschiedener Typen verwenden. Sie möchten eine schnelle und vollständig einbettbare Lösung, als würde ich db4o oder eine andere db im objektorientierten-inmemory-Stil verwenden. (kein Orm)

dritter Versuch: Wenn Sie viel mehr Daten speichern möchten (z. B. Millionen von Einträgen in einer Tabelle), aber ohne Clustering, Replikation, Verteilung, würde ich mysql verwenden. ist schnell und schön zu bedienen. Ich habe festgestellt, dass Postgres in meiner expirience ist langsamer als mysql. mysql ist perfekt in Java direkt und in Hibernate und Co zu verwenden. auch.

vierter Versuch: wenn du viel viel mehr Daten hast ... oh Entschuldigung, ich habe vergessen, dass du nach einer Heimlösung gefragt hast:)

In der obigen Empfehlung habe ich nur freie oder Open-Source-Produkte für nicht-kommerzielle Nutzung verwendet.

über ein grafisches Werkzeug: Sie können viele von ihnen für verschiedene Datenbanken finden, aber auch datenbankunabhängige Lösung ...

Viel Spaß!

    
drdrej 03.12.2009 18:07
quelle
2

Wenn Sie SQL Server von der Arbeit kennen, warum nicht den absolut kostenlosen SQL Server Express verwenden? / p>

Es gibt auch eine Reihe von Tools, z. B. SQL Server Management Studio Express und mehr. Es unterstützt sogar erweiterte Funktionen wie Volltextsuche und mehr.

    
marc_s 03.12.2009 15:10
quelle
2

Wenn Sie sagen, dass Sie hauptsächlich Java verwenden, würde ich auch HSQLDB als Alternative zu SQLite in Erwägung ziehen.

    
William 03.12.2009 15:42
quelle
1

Ich würde mit MySQL dafür gehen. Was GUI betrifft, habe ich EMS SQL Manager für MySQL Freeware ziemlich oft verwendet und es ist ok ... Ссылка

    
Tomas 03.12.2009 15:10
quelle
1

Gehen Sie für MySQL. So viele Leute benutzen es und es wird immer besser.

    
Shai 03.12.2009 15:22
quelle
1

Dann geh mit Sqlite, vielleicht möchtest du das Zeug einfach an deine Freunde verteilen:)

    
LostMohican 03.12.2009 15:24
quelle
1

Ich würde empfehlen, einen WAMP-Server einzurichten - dies simuliert eine LAMP-Umgebung unter Windows und kommt mit Ihrem eigenen MySql / PhpMyAdmin Interface, wodurch MySql einfach zu bedienen ist.

    
AlexeyMK 03.12.2009 15:26
quelle
1

Ich würde MySQL für die Gemeinschaft und den Preis gehen, wenn nichts anderes.

"MySQL scheint der Weg zu sein, einfach gehostet zu werden, und könnte der Gesamtsieger sein. Hier ist zu hoffen, dass die GUI nicht immer noch schrecklich ist."

Äh, welche GUI? Sie können eine der vielen 3rd-Party-Apps benutzen, um einfache CRUD-Sachen zu machen ... phpMyAdmin, Navicat, etc.

    
Andrew G. Johnson 03.12.2009 15:28
quelle
1

Da Ihre Absichten ein wenig vage sind (wollen Sie sich darauf entwickeln und dann in einer gehosteten Umgebung laufen?) - würde ich Portabilität und allgemeine Funktionalität in Betracht ziehen.

Da würde ich postgresql empfehlen. Es ist sql ist viel mehr ansi-kompatibel als mysql - so später mit Oracle, SQL Server, SQLite, etc. sollte sehr geradlinig sein. Und sicher, Sie könnten (und sollten, wenn praktisch) ein ORM verwenden - aber Sie werden immer noch mit der Datenbanksyntax für Reporting oder sehr komplexe SQL umgehen.

SQLite ist auch sehr ansi-kompatibel. Aber es fehlen einige kritische Features und seine Typlosigkeit kann Ihre Portabilität beeinträchtigen. Sonst tolle Datenbank.

Mit Oracle Express lässt sich leicht arbeiten - aber wie Sie feststellen, ist die Bereitstellung in der Produktion normalerweise sehr teuer. SQL Server ist auch großartig, mit zu arbeiten - ist aber auch sehr teuer in der Produktion. Es hat auch einen Windows-Weg, Dinge zu tun, die für die Prozessautomatisierung schwieriger sind als das, was Sie normalerweise mit Unix-orientierten Datenbanken tun würden. Beachten Sie, dass Sie auch DB2 Express verwenden können - es ist kostenlos für 2 CPUs, 4 GB Speicher und so viele Daten wie Sie möchten. All diese sind großartig für kommerzielle Einstellungen, aber Sie finden keine auf der Speisekarte bei den günstigen Hosting-Sites.

MySQL ist natürlich eine andere Option. Es ist ein freier Marktführer. Aber die Probleme mit der Portabilität sind ein Problem, und die Fehler und leisen Fehler verursachen zusätzliche Arbeit für die Entwicklung - wenn die Datenqualität wichtig ist. Dann gibt es die Komplexität der Lizenzierung und die Unsicherheit ihrer Zukunft. Im Jahr 2002 würde ich definitiv MySQL sagen, aber 2009 würde ich stattdessen meistens Postgresql sagen.

    
KenFar 03.12.2009 15:38
quelle
1

Wenn Ihr Interesse darin besteht, einige coole Anwendungen zu Hause zu entwickeln, würde ich mir nicht allzu viele Gedanken darüber machen, mit welcher Datenbank ich arbeiten könnte. Persönlich würde ich es so einfach wie möglich halten - was meiner Meinung nach SQLite3 ist (wie bereits von anderen empfohlen).

Wenn Sie andererseits Interesse an Persistenz haben und wie Daten gespeichert werden, nutzen Sie die Gelegenheit, Ansätze außerhalb der Komfortzone eines RDBMS zu erkunden. Java hat eine nette Graphdatenbank , die für sie verfügbar ist, und zahlreiche nicht-relationalen Alternativen sind da draußen zu installieren und zu verpatzen.

    
rob 03.12.2009 15:31
quelle
0

Warum lässt Sie Oracle zu Hause erschauern? Es funktioniert gut auf einem ziemlich kleinen Laptop und es gibt eine kostenlose Version, die Sie für nicht-kommerzielle Nutzung verwenden können (mit einer Begrenzung der Datenbankgröße, genau wie SQL Server Express). Das heißt, mysql unter Windows würde wahrscheinlich noch weniger Ressourcen verwenden. Was die Benutzeroberfläche angeht, sind sie beide gleichermaßen schlecht. Aber es gibt Drittanbieter-Tools, die verwendet werden können.

    
Klaus Byskov Pedersen 03.12.2009 15:11
quelle
0

Dies hängt davon ab, was die von Ihnen entwickelte Anwendung erfordert. Ist es eine Webanwendung, die auf einem anderen Computer ausgeführt wird, oder handelt es sich um eine Desktopanwendung, die am besten mit einer eingebetteten Datenbank bereitgestellt wird?

Das heißt, Sie können nichts falsch machen mit MySql, und es wird die meisten Ihrer Bedürfnisse passen.

    
Kyle Trauberman 03.12.2009 15:11
quelle
0
  

"MySQL hatte beim letzten Mal eine sehr mittelmäßige GUI"

Ist das eine Einschränkung für die Auswahl einer Datenbank? Es gibt einige gute GUI (wenn Sie GUI guy sind)

Sie können entweder PhpMyAdmin oder den MySQL Query Browser verwenden. Ich würde sagen, MySQL ist besser, aber wenn Ihre Anwendung nicht viel von Schreiboperationen beinhaltet (seit es ein Heimprojekt ist) Sie können SQLite verwenden.

    
Prashanth 03.12.2009 15:15
quelle
0

Wenn Sie beispielsweise eine Datenbank zum Üben von Web-Apps benötigen, bin ich ein großer Fan von sqlite , es funktioniert mit PHP etc ., es ist eine eingebettete Datenbank, also gibt es keinen Datenbankadministrator, von dem man sprechen kann. Der SQL-Dialekt unterscheidet sich etwas von den anderen, aber nicht genug, um ein Show-Stopper zu sein.

Es ist auch eine ziemlich schnelle und "Public Domain" -Lizenz, so dass Sie es auch in kommerziellen Apps verwenden können.

    
Chris Huang-Leaver 03.12.2009 15:15
quelle
0

Wenn Sie SQL Server und Oracle bei der Arbeit verwenden, dann würde ich für eine von denen gehen. In der Tat, warum nicht beides? Installieren Sie die Express-Edition von beiden (vorausgesetzt, sie werden nebeneinander bestehen) und lernen die Vor- und Nachteile von jedem einzelnen klingt wie ein lohnender Ansatz.

Sie könnten sogar versuchen, die Unabhängigkeit der Datenbank zu entwickeln und die Syntax und die spezifischen Merkmale jedes einzelnen zu verwenden. Klingt sehr lehrreich für mich.

    
David Aldridge 03.12.2009 15:18
quelle
0

Sie können Firebird auch versuchen.

Es ist einfach zu implementieren und einzubetten, hat einen sehr geringen Platzbedarf (in einigen Fällen weniger als 5 MB) und einen wirklich geringen Speicherverbrauch.

Und wenn es wirklich nicht alles war, hat es keine Verwaltung. Es ist eine wirklich interessante Alternative.

    
Kico Lobo 03.12.2009 15:44
quelle
0

MySQL und für die GUI verwenden DBVis , es ist kostenlos und kompatibel mit einer Tonne von DBs wie MSSQL, Oracle, usw. ...

    
Phill Pafford 03.12.2009 15:53
quelle
-1

Ich denke immer noch, dass Oracle nützlich sein könnte. Starten Sie mit XE auf Ihrem Desktop und migrieren Sie problemlos zum Web oder starten Sie mit dem öffentlich gehosteten Apex. Die APEX GUI ist einfach zu erlernen, intuitiv und robust. Sie können Webseiten so einfach erstellen, wie Sie Formulare in Access erstellen können. Meiner Meinung nach kann es frei für kleine Projekte verwendet werden, die möglicherweise zu sehr großen Projekten wachsen können - also die schwere Infrastruktur. Aber wie gesagt, wenn Sie ihre gehostete App verwenden, haben Sie keine Ressourcenprobleme auf Ihrem eigenen Rechner.

    
MJB 03.12.2009 15:23
quelle

Tags und Links