Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Fremdschlüssel Beziehung zwischen 2 Datenbanken

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von jetwork, 23 Oktober 2014.

  1. jetwork

    jetwork Fleissiger Benutzer

    Ist es möglich zwischen 2 Datenbanken eine Fremdschlüssel Beziehung zu definieren und danach effiziente abfragen schicke?

    Wen ja. Ist das sinnvoll? Hat das Nachteile?

    Danke im Voraus
     
  2. ukulele

    ukulele Datenbank-Guru

    Ein Fremdschlüssel stellt Datenintegrität sicher, er beschleunigt die Abfrage nicht. Ob das geht hängt wohl vm DBMS ab, bei MSSQL scheint es sowas zu geben, Stichwort:
    Cross-database foreign key references - Datenbankübergreifende Besitzverkettung
     
    jetwork gefällt das.
  3. jetwork

    jetwork Fleissiger Benutzer

    Sorry. Jetzt schreibe ich die Frage besser.
    Ist es effizient, in einer Abfrage 2 spalten aus der Tabellen von 2 Verschiedene Datenbanken miteinander zu vergleichen? Natürlich sind die Datenbanken auf den geleichen Server und Rechner.

    Wie effizient ist die folgende Abfrage:
    SELECT *
    FROM db1.tabelle1.spalte_id = db2.tabelle1.spalte_ref
     
  4. ukulele

    ukulele Datenbank-Guru

    Ziemlich effizient weil syntaktisch falsch. Die Fehlermeldung sollte nicht lange auf sich warten lassen :)

    Was du zu tun versuchst sollte eigentlich kein Problem darstellen.
     
  5. jetwork

    jetwork Fleissiger Benutzer

    :D :D :D :D
    Danke

    so wäre besser:
    SELECT *
    FROM db1.tabelle1, db2.tabelle1
    WHERE db1.tabelle1.spalte_id = db2.tabelle1.spalte_ref
     
  6. Hony%

    Hony% Datenbank-Guru

    Lesbarer ist diese Schreibweise:
    Code:
    SELECT *
    FROM db1.tabelle1
    INNER JOIN db2.tabelle1
        ON db1.tabelle1.spalte_id = db2.tabelle1.spalte_ref
    
     
    jetwork gefällt das.
  7. jetwork

    jetwork Fleissiger Benutzer

    Ich will mein Problem konkreter erklären. Ich soll vielleicht 50 Tabellen erzeugen die jeweils mehrere Tausend Einträge enthalten.

    Die Idee ist die Tabellen in 3 verschiedene Datenbanken zu legen damit meine Datenbank nicht sehr komplex aussieht.

    Aus den Tabellen können wir nach ihrem Thema 3 Kategorien erstellen. Die Daten sind aber miteinander sehr stark abhängig. Wenn ich aber die Daten in Verschiedene Datenbanken implementiere werde ich am Ende auch sehr viele Fremdschlüssel Beziehungen zwischen den Datenbanken haben.

    Was soll ich tun?
    Soll ich nur eine oder mehrere Datenbanken erzeugen?
     
  8. akretschmer

    akretschmer Datenbank-Guru

    Falscher Ansatz. Selbst für MySQL ist das noch trivial.

    Dich mit Normalisierung beschäftigen.
     
    jetwork gefällt das.
  9. ukulele

    ukulele Datenbank-Guru

    Ich bin für eine Datenbank pro Tabelle.
     
    jetwork gefällt das.
  10. jetwork

    jetwork Fleissiger Benutzer

    Danke an Euch

    Ich habe aber die Antworten nicht verstanden. Ich habe nur verstanden dass ich die Tabellen nicht in getrennte Datenbanken speichere.

    Warum ist es in MySQL trivial?

    Meinst du ich kann mit Normalisierung die Anzahl der Beziehungen verringern?

    Außerdem eine Datenbank für eine Tabelle ist auch eine sehr gute Idee? Schade ich sollte es mir denken können :D
     
  11. ukulele

    ukulele Datenbank-Guru

    Nein, das war Ironie. Mehrere Datenbanken machen in dieser Größenordnung keinen Sinn und erleichtern tun sie schon gar nichts.
     
    jetwork gefällt das.
  12. jetwork

    jetwork Fleissiger Benutzer

    @ukulele Ich habe es natürlich auch ironisch gemeint. :D Ich bin doch nicht sooo blöd :D
     
  13. akretschmer

    akretschmer Datenbank-Guru

    Das schrieb ich nicht.
     
  14. Hony%

    Hony% Datenbank-Guru

    Das ist kein Problem. Manche Firmen verwalten solche »Datenmengen« in Excel-Sheets. Außerdem sind nicht die Datenmengen relevant sondern die Zugriffszahlen und damit die Lese- und Schreibgeschwindigkeit der Festplatte. Darüber hinaus lassen sich Probleme durch hohe Zugriffszahlen leichter und sinnvoller mit Hardware (SDD) und Master/Slave Systemen lösen.
     
    jetwork gefällt das.
  15. jetwork

    jetwork Fleissiger Benutzer

    Danke @Hony%
    Vielleicht wollen wir später einen Server Rechner kaufen.

    Was meinst du mit Master/ Slave Systeme.
    Den Prozessor, die Architektur oder einige Konfigurationen in MYSQL?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden