Fremdschlüssel Beziehung zwischen 2 Datenbanken

Werbung:
Was meinst du mit Master/ Slave Systeme.

Der Master-Server ist der, der per Definition immer die korrekten Daten bereit hält. Die Slave-Systeme spiegeln den Datenbankinhalt des Masters und sollen damit den gleichen Datenbestand zur Verfügung stellen. Dadurch ist es möglich eine sehr hohe Zahl an gleichzeitigen (Lese-)Zugriffen auf verschiedene eigenständige Maschinen zu verteilen. Diese Maschinen müssen dann auch nicht mehr zwingend am gleichen Ort stehen. So kann man zum Beispiel Zugriffe aus den USA auf einen Slave in den USA und Zugriffe aus Europa auf einen Slave in Deutschland leiten.

Dadurch, dass der Master-Server keine Lesezugriffe behandeln muss werden indirekt auch die Schreibzugriffe beschleunigt und das System kann deutlich größere Datenmengen verarbeiten.

Auch wenn MySQL Replikation unterstützt gibt es für solche Szenarien dann doch besser geeignete DBMS.
 
Noch eine Frage über 2 Datenbanken. Wenn ich meine Tabellen auf den gleichen Server in 2 verschiedene Datenbanken teile, gewinne ich etwas an die Recheneffizienz (schnelligkeit bei einer Antwort) oder nicht?

Verursacht eine Datenbank irgendwo einen Flaschenhals bei mehreren gleichzeitigen Abfragen von verschiedenem Benutzer oder liegt alles nur an die Server?
 
Noch eine Frage über 2 Datenbanken. Wenn ich meine Tabellen auf den gleichen Server in 2 verschiedene Datenbanken teile, gewinne ich etwas an die Recheneffizienz (schnelligkeit bei einer Antwort) oder nicht?

Bei Datenbanksystemen, die einen direkte DB-übergreifenden Zugriff nicht gestatten (PostgreSQL) ginge das gar nicht bzw. nur mit relativ viel Aufwand via Foreign Data Wrapper. Bei MySQL würdest Du nix gewinnen.

Verursacht eine Datenbank irgendwo einen Flaschenhals bei mehreren gleichzeitigen Abfragen von verschiedenem Benutzer oder liegt alles nur an die Server?

Depends. MySQL mit MyISAM und einer schreibenden Abfrage auf einer Tabelle z.B. sperrt diese komplett. Die Antwort ist also: kommt drauf an.
 
@ukulele Ich werde am Ende 4.000.000 Datensätze haben. Ist das viel? Bin ich google ?

Aber maximal 20 Leute werden auf diese Datenbank gleichzeitig Abfragen schicken. Ist das viele Benuzter?
 
Nein, solche Datenmengen steckt jede Datenbank locker weg, vorausgesetzt sie ist richtig designed.
Und teilen in zwei Datenbanken ist im Normalfall eine schlechte Idee.
 
Hallo zusammen,
ich würde das Thema gerne nochmal aufgreifen... (bevor ich einen neuen Thread zum selben Thema erstelle).

Ich bin grad dabei eine neue Version einer verteilten Software zu designen und möchte Daten in zentralen Datenbank(en) speichern.
Rein thematisch fände ich es sinnvoll die Projektdaten (Kunden, Projektbezeichnung, Termine,...) vom Modulbaukasten (zur Verfügung stehende Bauteile) und den Berechnungsergebnissen zu trennen.
Auf der anderen Seite müssen die Berechnungsergebnisse natürlich auf ein Projekt und mehrere Bauteile aus dem Baukasten referenzieren.

Und jetzt steh ich da und werde mir nicht einig, was die eleganteste Lösung ist. Von der Datenmenge her gar kein Problem alles in eine DB zu packen aber gefühlsmäßig würde ich die Daten schon gerne thematisch trennen. Aber in der einen DB einen Fremdschlüssel zu verwenden ohne direkt zu wissen, ob es einen passenden Primärschlüssels gibt - Stichwort: Löschweitergabe, gefällt mir auch nicht wirklich.

Oder gibt es eine elegante Möglichkeit, die Integrität sicherzustellen?

P.S.: Ich arbeite mit C# und Entitiy Framework 6 (SQL, Code-First)
 
Was willst du genau wissen?
Einen Fremdschlüssel ohne PK kannst nicht vergeben, da der Fremdschlüssel den Wert des Pks hat.
Datenmodellierung hat auch weniger mit Gefühl zu tun, sondern mehr mit Enitäten und Normalisierung.
Also erstmal ein Blatt Papier nehmen, und sich die vorhandenen Entitäten aufzeichnen, dann die Verbindungen zueinander.
Meistens fällt dann schon auf, dass irgendwas nicht passt und man geht in die nächste Iteration.
 
Werbung:
Wenn du davon ausgehst das alle DBs immer auf dem selben Server liegen hätte ich wenig Bauchschmerzen mit Referenzen. Andererseits kannst du auch einfach mit Tabellen-Präfixen arbeiten um deine DB Objekte gedanklich zu trennen.

Das alles spielt aber auch eine Rolle wenn du dein System skalieren willst. Welches DBMS kommt überhaupt zum Einsatz?
 
Zurück
Oben