Warum sollte ich SQLite über eine Jet-Datenbank verwenden?
Jemand fragte mich, dies den anderen Tag, und ich konnte nicht denken, der eine gute Antwort. Plattform ist völlig irrelevant für das Projekt.
In der Tat, Jet hat einige features, die SQLite nicht, nämlich Fremdschlüssel.
So kann jemand denken, warum SQLite verwendet werden sollte anstelle von einer Jet-Datenbank?
InformationsquelleAutor der Frage AngryHacker | 2009-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Gegensatz zu dem, was andere Leute sagen, der Jet ist nicht tot und weit davon entfernt: ass ist die neue version von Jet, und es ist ziemlich robust und ist abwärtskompatibel.
Sowohl SQLite und Jet/ACE haben Ihre stärken und Schwächen und müssen Sie erhalten mehr Informationen über die spezifischen Punkte, die für Sie wichtig sind und Ihre Anwendung.
Leute, die sagen, dass die Jet-Datenbanken korrumpiert stecken in 1995.
In der end, es sei denn, Ihre Anwendung hat einige sehr spezifische Anforderungen, die an die Grenzen des entweder-Datenbank-engines, dann ist es wahrscheinlich egal, welche Sie wählen.
Verwenden Sie einfach die eine, die am einfachsten für Sie in Ihr Projekt aufnehmen.
InformationsquelleAutor der Antwort Renaud Bompuis
SQLite überlegen Jet für den wichtigsten Grund, SQLite ist ACID-konforme in der Erwägung, dass Jet leider nicht. Wenn die Integrität der Daten ist ein Problem, SQLite bietet viel mehr "robust" - Plattform für Ihre Daten storage-Anforderungen. Sehen "SQLite Ist Transaktional" und "Atomic Commit In SQLite" für mehr details.
SQLite ist zwar fehlen ein paar features (z.B. Fremdschlüssel), diese sind jedoch in Erster Linie aufgrund von SQLite wird speziell entwickelt als eine extrem kleine und leichte Datenbank, dass ist auch serverlose.
Die serverlose Aspekt von SQLite ist auch ein großer Vorteil gegenüber Jet-in, dass muss nichts auf dem Rechner installiert sein, führen Sie Ihre Datenbank. Zum Beispiel habe ich SQLite in eine ASP.NET web-Anwendung und alles, was ich brauchte, war die SQLite-DLL (in diesem Fall war die ausgezeichnete System.Daten.SQLite drop-in-Ersatz) in meine Anwendung "bin" - Ordner, und meine Datenbank in der Anwendung "App_Data" - Ordner. Ich könnte dann lade diese Dateien auf meinem webhost, und das alles "nur gearbeitet". Dies ist die zimmerreserviereung, ohne das eigentlich installieren oder alles anmelden auf dem Zielrechner.
Einen kleinen dowside von SQLite ist aufgrund der Datenbank-Datei-basiert. Schreibvorgänge in die Datenbank sperren der gesamten Datenbank-Datei, anstatt eine bestimmte Zeile oder Tabelle, in der Erwägung, dass Jet wird bieten Sie einem mehr granularen Ebene zu sperren. Ein weiteres kleines Problem, auf der Grundlage der gleichen Datei-based reasoning, ist die Parallelität, jedoch Jet selbst nicht bieten ein hohes Maß an Parallelität.
InformationsquelleAutor der Antwort CraigTP
Dies ist immer noch eine Frage, kommt von Zeit zu Zeit. Ich überlege mir alle vor-und Nachteile für beide jetzt für ein neues Projekt. Ich Schreibe eine Menge von Finanz-Anwendungen, die sich mit Geld-Werte, so dass eine der wichtigsten "Vorteile" für Access/JET/ACE/was-Sie-Aufruf-it-heute (ich nenne es einfach Access) ist seine starke Typen. Unterschätzen Sie nicht die macht der starken Typen, wenn Sie mit Geld zu tun - Zugang ist die einzige single-file-Datenbank, die ich gesehen habe mit der Unterstützung für eine Geld/Typ decimal speichern können, ECHTES Geld Werte.
Eines meiner wichtigsten retail-Produkte verwendet SQLite als backend, und ich kann Ihnen sagen, ich habe praktisch keine Probleme mit seinem Einsatz sogar in die verrücktesten Situationen. SQLite ist definitiv entwickelt, um single-user sein aber ich habe eine MENGE von Kunden, die es über SMB. Sie haben zu schreiben, die überprüft, in Ihre software zu überprüfen, für Rückgabewerte von SQLITE_BUSY bei der Ausführung von Abfragen, aber wenn Sie wickeln, dass eine auto-retry, es "funktioniert einfach".
Es sind nur ein paar Gründe, ich würde wählen, Zugang über SQLite - eine ist-Daten-Typen. Wenn ich jemals schreiben von software, die Mathematik zu tun, auf Geld-Werte (Steuer, etc) verwende ich Access. Die nur anderen zwingenden Grund für die Verwendung von Access ist ein upgrade auf SQL Server. Da habe ich nie verwendet SQL server-in meinem Leben (und nicht plan auf), es ist keine große Sache.
Am Ende, beide sind extrem robust Datenbanken - ich würde nicht zögern, verwenden Sie entweder in einer Produktionsumgebung. Denken Sie nur daran, das richtige Werkzeug für den job und das bedeutet manchmal, auf einem Datenbank-server (PostgreSQL hat mich behandelt rechts, über die letzten 13 Jahre, das ist sicher!).
InformationsquelleAutor der Antwort Mitchell V
Jet wird nicht mehr unterstützt. SQLite ist auch einfacher zu installieren, da es eine dll, die leicht gepackt werden, die mit Ihrer app. SQLite kann auch verhindern, dass Verkäufer lockin, nur weil die Sprache oder cross-Plattform-portibility ist kein Problem jetzt nicht bedeutet, dass es nicht zu einer später. Für mehr auf dem Jet in den Ruhestand sehen
http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine
InformationsquelleAutor der Antwort Jared
Verwendeten wir den Jet für eine lange Zeit und vor kurzem umgestellt auf SQLite. Warum?
1: Wenn eine Datenbank bekommt irgendwo in der Nähe von 2 GB oder mit häufigen Gebrauch, wird es beschädigt, in der Jet schließlich. Dies hat uns veranlasst, viel Kummer! Dieser wurde nicht behoben, Jet oder ACE, aber Microsoft hat ein eigenes tool, dass kann angeblich fix der Datenbank-Dateien.
2: veraltet Microsoft Jet-Jahren, zu Gunsten von ACE, aber wenn Sie Lesen Sie die details, die Microsoft selbst sagt, dass ACE ist NICHT ein Ersatz für jet -, und will Ihnen die Verwendung von SQL Server statt.
3: der Jet ist nicht mehr ein standard-Bestandteil von Windows, aber ein Teil von Microsoft Office, wenn Sie herunterladen und installieren Sie das verteilbare. Jedoch, Sie können nicht die 32-und 64-bit-engines zur gleichen Zeit installiert. Wenn Sie Office 2007 32-bit installiert, und Sie versuchen, und installieren Sie die 64-bit-ACE-Motor, es sagt, Sie müssen deinstallieren von Office 2007.
Also aus diesen Gründen haben wir gerade beschlossen, genug ist genug. Die Installation von SQL Server ist keine Lösung, denn es ist ein großer Komplex invasive installieren und nicht sehr portabel.
Unseren C++ - software direkt unterstützt SQLite über die sqlite3.c-Datei, und es funktioniert sehr gut. Ich habe implementiert, antive-Schnittstellen für die OCILIB, Oracle, SQL Server, MySQL etc und dies war einer der einfachsten. Es ist auch viel schneller als Jet und die resultierenden Dateien vielleicht ein Drittel des Jet-Größe. Wir haben einige VB6-und VBA-und .NET-code, müssen auch für die Nutzung unserer Datenbank-Dateien und, wir verwenden die SQLite-ODBC-Treiber (nur Google it). Funktioniert gut.
SQLite funktioniert sowohl in 32-und 64-bit. Und wenn Sie Lesen, werden Sie sehen, es ist ernst getestet und erstaunlich stabil. Es unterstützt ebenfalls mehrere SQL-standard und ist näher an Oracle/SQL-Server als Jet ist.
InformationsquelleAutor der Antwort Kharina Tigerfish
Kosten ist nicht ein Problem. Wenn Ihr frontend integriert ist, etwas anderes als MS-Access, Benutzer der Anwendung müssen nicht zahlen keine Gebühren, um die Jet-Treiber installiert. Visual Studio würde schließen diejenigen ein, die die Fahrer während Ihres bauen (zumindest die pre .NET-Versionen getan haben.).
Ich vermute, du hast keine persönliche Präferenz und sind gleichermaßen qualifiziert in der Entwicklung in jede Umgebung. Wenn Ihre Benutzer bereits MS-Access-Lizenzen und würden Sie gerne in der Lage sein, um zu schreiben Ihre eigenen Berichte (Oh, Gott bewahre alle nicht-hacker, die versuchen solch eine gewaltige Leistung!), Jet verwenden.
InformationsquelleAutor der Antwort JeffO
SQLite ist der neue Jet. Auch wenn cross-Plattform ist irrelevant für Sie, es kann nicht werden an Ihre Kunden. Jet sperrt Sie in Windows und eine nicht mehr unterstützte DB, weder von denen sind gute Dinge. Und SQLite funktioniert mit fast jeder Entwicklungsumgebung, die es gibt.
Jet ist bekannt für merkwürdige Fragen der Korruption, so dass ich neigen dazu, zu bleiben Weg von es im Allgemeinen.
Sie können sicherlich erstellen Sie die Fremdschlüssel in SQLite und SQLite 3.6.19 foreign key-Einschränkungen wurden ebenfalls Hinzugefügt.
InformationsquelleAutor der Antwort Paul Lefebvre
Aus der Spitze von meinem Kopf, es ist kostenlos und cross-Plattform -, viel wichtiger ist aber... glaubst du, es ist stabiler und skalierbar, dass Jet/MS Access/.mdb? Wird er länger gelebt, dass seine Nachfolger (ACE/.accdb)
Wenn es verwendet wird, um mehr als nur ein paar Leute, die ich nicht die Mühe mit dem Jet. Gehe ich direkt auf MS-SQL (auch die freie version). Es ist einfach nicht Wert den Schmerz einer korrupten DB (Jet bekannt ist - obwohl, vielleicht ist Sie es behoben - ich will nicht, um Ihren test-Fall wäre).
InformationsquelleAutor der Antwort BIBD
Wenn Sie das Programm gut in Python, Perl, Lua und viele andere Sprachen, SQLite wäre die Natürliche Wahl.
InformationsquelleAutor der Antwort user12711