Unterschied zwischen MySQL / SQLite / etc-Datenbanken?

8

Das ist das erste Mal, dass ich versuche, mit einer Datenbank zu arbeiten, also bitte.

Ich muss ein Programm schreiben, das eine Datenbank verwendet, auf die ich noch keinen Zugriff habe. Ich weiß, dass es MySQL, SQLite und eine Menge anderer SQL-Dinge gibt, aber ich bin nicht sicher, was der Unterschied zwischen ihnen ist. Muss ich wissen, welche Art von Datenbank es ist, bevor ich es verwenden kann (dh, ist eine MySQL-.db-Datei anders als eine SQLite-.db-Datei?), Oder ist die Datei selbst gleich und der Unterschied ist wie es wird zugegriffen?

EDIT: Ich programmiere für ein Android-Tablet, das ist wahrscheinlich wichtig. Aber ich werde die Datenbank nicht erstellen, sie wird mir gegeben und ich muss damit arbeiten.

    
Kalina 12.01.2012, 16:52
quelle

4 Antworten

8

Sie möchten vielleicht Tutorial-Tutorials durcharbeiten, die eine MySQL-Datenbank erstellen, und eine SQLite-Instanz, um zu sehen, wie sie funktionieren und wie Sie leicht mit ihnen interagieren können.

Der Zugriff auf jeden beinhaltet Adapter, ungeachtet der Erstellung der Tabellen, die Sie benötigen, der Benutzerzugriff (Benutzername / Passwort / Rolle, um auf die Tabelle zuzugreifen).

Hier ist ein einfaches SQLite-Tutorial: Ссылка

Hier finden Sie eine praktische SQL-Anleitung: Ссылка

Ich erinnere mich, dass ich mein erstes Mal mit Datenbanken überhäuft wurde. Mein Rat ist, mit etwas gut unterstütztem, mit einer netten Gemeinschaft anzufangen, und Suchresultate viel Tutorials, wo Sie die Grundlagen verstehen können .

Dann können Sie basierend auf Ihren Anwendungsanforderungen und Plattformbeschränkungen bestimmen, an welchen Stellen Sie drehen möchten. Aber die Unterschiede zwischen Datenbanken zu überprüfen, ohne tatsächlich mit ihnen zusammengearbeitet zu haben, ist wie das Ausprobieren von Sushi, ohne jemals Fisch zu essen.

BEARBEITEN:

Wenn Sie auf Android aufbauen, yep, lernen Sie SQLite.

Ich empfehle dieses Tutorial sehr, um Ihnen zu zeigen, wie SQLite in einem Android-Projekt verwendet wird: Ссылка

Für die Datenabstraktion / ORM sollten Sie sich mit Content Providern und Cursors vertraut machen ( Ссылка )

Gute Abfrage!

    
Dominic Tancredi 12.01.2012 17:01
quelle
4

Zunächst müssen Sie wissen, um welche Art von Datenbank es sich handelt, bevor Sie eine Verbindung herstellen können, da Sie den entsprechenden Datenbanktreiber für Ihre Plattform verwenden müssen. MySQL, Oracle, Postgres, SQL Server usw. verwenden alle unterschiedliche Treiber, da das binäre Protokoll, mit dem man mit ihnen kommuniziert (Informationen authentifizieren und Informationen hin und her übertragen), anders ist.

Was Ihren tatsächlichen SQL-Code betrifft, kommt es darauf an. Zum größten Teil können Sie darauf zählen, dass SELECT * FROM Foo mit jeder SQL-kompatiblen Datenbank auf dem Planeten arbeitet. Sobald Sie jedoch etwas komplizierter oder mit nicht standardmäßigen Keywords beginnen, können Probleme auftreten. Zum Beispiel unterstützen einige Datenbanken das USING Schlüsselwort für JOIN s und andere nicht.

Eine Sache, die Sie untersuchen könnten, ist ein ORM . Dadurch können Sie den tatsächlichen SQL-Dialekt aus Ihrem Programm abstrahieren und sich dann (größtenteils) nicht um das eigentliche SQL kümmern. Einige populäre ORMs sind ActiveRecord (für Ruby on Rails) und Entity Framework für .NET. Hoffe das hilft!

UPDATE:

Da das Android -Tag gerade zum Post hinzugefügt wurde, habe ich schnell nach SqlLite-ORMs gesucht, die Android unterstützen, und habe das gefunden . Vielleicht lohnt sich einchecken, oder vielleicht jemand kann kommentieren, ob es gut ist:)

    
Mike Christensen 12.01.2012 17:04
quelle
3

Datenbankabstraktionsschicht ist die Strategie, einen intelligenten Vermittler zu haben, so dass Sie programmieren können, ohne genau zu wissen, welches Datenbanksystem Sie darunter haben. Datenbank Abstraktion ist in der Praxis nicht so utopisch, wie es sich anhört, und die meisten Menschen enden damit, direkt für eine bestimmte Datenbank zu programmieren. Sie werden wahrscheinlich feststellen, dass je mehr Erfahrung Sie mit Ihrer Datenbank Ihrer Wahl haben, desto mehr wünschen Sie sich, dass Sie ihre besonderen Nuancen besser kennen. Also die kurze Antwort ist, es gibt genug Unterschied zur Materie!

Wenn Sie ein Software-Architekturmuster wie Model-View-Controller verwenden, können Sie einen Großteil Ihrer Programmierung unabhängig von der von Ihnen verwendeten Datenbank ausführen. Am Beispiel von Model-View-Controller könnten Sie Ihre Controller und Ihre Ansichten programmieren, ohne zu wissen, welche Datenbank Sie verwenden.

Die Einschränkung dessen, was Sie tun können, bevor Sie sich für ein Datenbanksystem entscheiden, ist die unbequeme Tatsache, dass eine gute Programmierpraxis fette Modelle und dünne Controller erfordert. Ein großer Teil Ihres eigentlichen Programmieraufwands wird durch die Wahl einer Datenbanklösung als Geisel gehalten.

Wenn ich nicht wüsste, welche Datenbank verwendet würde, würde ich mit der Programmierung meiner View und dann meines Controllers beginnen. Wenn PHP Ihre Sprache ist, können Sie ein CodeIgniter-Tutorial aufschlussreich finden.

    
Tom Haws 12.01.2012 17:07
quelle
2

Ein Artikel über "Angemessene Verwendung für SQLite"

Ссылка

  

Zusammenfassung: Prüfliste für die Auswahl der richtigen Datenbankmodul

     
  1. Werden die Daten durch ein Netzwerk von der Anwendung getrennt? → Wählen Sie Client / Server
  2.   
  3. Viele gleichzeitige Autoren? → Wählen Sie Client / Server
  4.   
  5. Große Daten? → Wählen Sie Client / Server
  6.   
  7. Ansonsten wählen Sie SQLite!
  8.   
    
sting_roc 12.06.2015 02:26
quelle

Tags und Links