2013-07-09 13 views
5

Was ist der Unterschied zwischen Einzelbenutzerdatenbank und Mehrfachbenutzerdatenbank? Warum müsste ich eine einzelne Benutzerdatenbank verwenden? Warum wurde es gemacht?Einzelbenutzerdatenbank vs Mehrbenutzerdatenbank

Wenn mehrere Threads gleichzeitig mit denselben Anmeldeinformationen auf dieselbe Datenbank zugreifen, benötige ich eine Datenbank mit mehreren Benutzern?

Antwort

6

Was ist der Unterschied zwischen Einzelbenutzer-Datenbank und mehreren Benutzer Datenbank? Warum müsste ich eine einzelne Benutzerdatenbank verwenden? warum wurde es gemacht?

Der Einzelbenutzermodus ermöglicht nur eine Verbindung zu einer Datenbank zu einem bestimmten Zeitpunkt.

Da Sie diese Frage als SQLite markiert haben, stütze ich meine Antwort auf diese spezifische Engine.

Das Parallelitätsschutzmodell von SQLite basiert auf direkten Lese- und Schreibvorgängen von Dateien in die Datenbankdatei auf der Festplatte. Daher können offensichtlich nicht zwei verschiedene Programme zur selben Zeit auf dieselbe Datei auf einer Festplatte schreiben. SQLite erzwingt die zweite Abfrage zu warten, während Änderungen an der Datenbankdatei vorgenommen werden.

SQLite schützt vor Datei-/Datenbankbeschädigung durch Sperren von Betriebssystemdateien, wenn INSERTS und UPDATES ausgeführt werden. Es erlaubt jedoch mehrere schreibgeschützte Griffe gleichzeitig (genauso wie Sie die Datei mehrmals im schreibgeschützten Modus auf Ihrem Desktop öffnen können, aber keine Änderungen speichern können). In anderen Datenbanken wie SQL Server wird der Einzelbenutzermodus oft nur dann verwendet, wenn die Datenbank gewartet werden muss - z. B. Wiederherstellen einer Sicherungsdatei, Ändern der Datenbankstruktur oder Ändern der globalen Datenbankeinstellungen.

Der Einzelbenutzermodus ist nützlich, da Sie keine Clients verbinden können und versuchen, Daten zu lesen/zu schreiben, während Sie diese Art von Änderungen vornehmen.

Aber unter normalen Bedingungen möchten Sie SQL Server im Einzelbenutzermodus aus Leistungsgründen nicht ausführen. Wenn Sie jedoch nicht über einen Webservice mit hohem Datenaufkommen verfügen, kann SQLite die Leistungsanforderungen trotz Änderungen, die sich jeweils einzeln auf dem Datenträger befinden, verarbeiten.

Wenn mehrere Threads gleichzeitig mit denselben Anmeldeinformationen auf dieselbe Datenbank zugreifen, benötige ich eine Datenbank mit mehreren Benutzern?

Nein, es wird immer noch funktionieren. Und SQLite-Datenbanken erfordern überhaupt keine Authentifizierung. Es gibt keine anderen Anmeldeinformationen als Datei-/Verzeichnisberechtigungen.