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

Eine Masterdatenbank oder mehrere DB, für jedes Projekt eine

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Joachim2014$, 17 Mai 2014.

?

Eine Masterdatenbank oder für jedes Projekt eine eigene Datenbank

  1. Eine Masterdatenbank ist richtig

    100,0%
  2. Für jedes Projekt eine eigene Datenbank

    0 Stimme(n)
    0,0%
  1. Joachim2014$

    Joachim2014$ Benutzer

    Ich möchte mich zunächst vorstellen.
    Mein Name ist Joachim komme aus dem Raum Heilbronn, bin 52 Jahre und werde höchst wahrscheinlich zum Januar 2015 arbeitslos.

    Da ich die Flinte nicht ins Korn werfen will und Harz4 beziehen möchte ich mich selbstständig machen.
    Allerdings benötige ich dafür Datenbank Kenntnisse.
    Leider besitze ich nur wenig bis keine IT Kenntnisse und bin gerade dabei zu lernen.
    Aller Anfang ist schwer es nutzt aber nichts.

    Ich hätte da gleichnmal eine Grundsatzfrage die für das Datenbankdesigns eines Projektes oder mehrerer Projekte wichtig ist.

    Ich plane nach und nach mehrere Projekte die sich um den gleichen Geschäftszweig drehen und meine Frage ist jetzt, ob es besser wäre alle Datensätze in einer großen Master Datenbank unter zu bringen oder ob es besser wäre für jedes Projekt eine eigene Datenbank zu erstellen.

    Bei allen Projekten habe ich unter anderem mit verschiedenen Personengruppen zu tun.


    Diese verschiedenen Gruppen wären z.B.

    Verkäufer
    Käufer
    Freiberufliche Kundenbetreuer
    Sonstige freiberufliche Mitarbeiter
    Eigene Mitarbeiter

    Mein erster Gedanke war jetzt, z.B alle Personen egal welcher Gruppe oder welchem Projekt Sie angehören in einer Datenbank zu erfassen.

    Der Vorteil:

    Herr Müller ruft an, wird an Hand seiner Telefonnummer identifiziert und aus dem Datensatz ist dann zu erkennen welcher Personengruppe er angehört und welchem Projekt ist er zuzuordnen.

    Ist er ein Käufer, Verkäufer oder freiberuflicher Mitarbeiter von Projekt A oder ist er ein Kunde oder freiberuflicher Mitarbeiter von Projekt B oder C.

    In meinem jetzigen Unternehmen ist es so, dass im Vorfeld abgefragt wird sind Sie Käufer, Verkäufer oder freiberuflicher Mitarbeiter. Dann wird die jeweilige Abfrage getätigt.

    Ich nehme an Käufer, Verkäufer und freiberuflicher Mitarbeiter sind jeweils in einer eigenen Tabelle untergebracht.

    Ein weiterer Vorteil einer Master Datenbank wäre, ich könnte doppelte Datensätze vermeiden.
    Bei verschieden Datenbanken könnte es sein

    Verkäufer X registriert sich bei Projekt A, B und C
    Dann hätte ich Verkäufer X in drei verschieden Datenbank erfasst.
    Wenn ich jetzt eine Mailingaktion an alle Verkäufer starte, bekommt Verkäufer 3 mal die gleiche Mail

    Der Nachteil:

    Das Datenbankdesign und die Datenbank Erstellung ist für eine Masterdatenbank in der alle Personen egal welcher Personengruppe oder welchem Projekt auch immer sie zugeordnet sind viel, viel schwieriger als wenn ich für jedes Projekt eine eigene Datenbank erstellen würde.

    Eine weiterer Nachteil einer Masterdatenbank ist, für einen Verkäufer oder Käufer benötige ich andere Datenfelder als für einen freiberuflichen Mitarbeiter.

    Ich hätte dann bei jeder Person eine Menge Felder, die eigentlich nicht nötig wären.

    Macht eine Masterdatenbank in der alle Personen, egal welcher Persongruppe oder welches Projekt die Person zugeordnet ist Sinn oder würde es mehr Sinn machen für jedes Projekt eine eigene Datenbank zu erstellen.

    Im jetzigen Unternehmen haben wir eine Datenbank die gegen jede Normalform verstößt und bei der auf Grund fehlender Datenbankdokumentation und falsches Datenbankdesign Änderungen oder Erweiterungen kaum oder nur schwer machbar sind.

    Deshalb möchte ich nicht schon bei der Basis, dem Datenbankdesign Fehler begehen und eine Datenbank erstellen mit der auch in Zukunft vernünftig zu arbeiten ist.

    Daher meine Frage

    Was ist besser, professioneller ein Masterdatenbank in der alle Projekte und die beteiligten Personen (Kunden, Mitarbeiter) erfasst sind oder für jedes Projekt eine eigen Datenbank.

    Man sollte allerdings nicht vergessen, dass die einzelnen Personen (Kunden, freiberufliche Mitarbeiter, eigene Mitarbeiter) mit Produkten oder Dienstleistungen verknüpft werden müssen.

    Würde mich über eure Meinung sehr freuen.

    Viele Grüße

    Joachim
     
  2. ukulele

    ukulele Datenbank-Guru

    In deinem Projekt geht es eigentlich nicht um verschiedene Datenbestände sondern verschiedene Funktionen für verschiedene Personengruppen die aber im Ganzen eine Software bilden. Du arbeitest nicht mit verschiedenen Datenbeständen (z.B. 2 Onlineshops auf dem selben Server) sondern ein Datenbestand für verschiedene Anwendungen. In diesem Fall zumindest Stammdaten.

    Wenn du es richtig normalisiert haben willst und kein Gefrickel dann brauchst du einen vernünftigen Stammdatenbestand.
     
  3. Joachim2014$

    Joachim2014$ Benutzer

    Vielen Dank für Deine Antwort.

    Wenn ich es richtig verstanden habe, bist Du für eine Masterdatenbank und nicht für eine Datenbank für jedes Projekt.

    In dieser Masterdatenbank wird ein (Master) Stammdatensatz erstellt der für alle Personengruppen genutzt wird.
    Dieser (Master) Stammdatensatz enthält alle Felder die bei einer der Personengruppen vorkommen können.

    Die verschiedenen Personengruppen haben jeweils eine individuelle Abfrage in der dann nur die individuell benötigten Datensätzen angezeigt werden.

    Ist das richtig so?

    Viele Grüße

    Joachim
     
  4. ukulele

    ukulele Datenbank-Guru

    Der "Stammdatensatz" muss nicht eine feste Anzahl an Feldern enthalten die entweder genutzt oder ungenutzt sind, das kommt ganz auf die abgebildeten Informationen an. Deine Person kann ja z.B. mehrere Telefonnummern haben, die du dann eben in mehreren Einträgen einer Tabelle für Telefonnummern schreibst.

    Entscheident ist viel mehr, das alle Atribute dieser Person die von mehreren Anwendungen genutzt werden, an einer zentralen Stelle stehen und vieleicht auch durch eine eigene Anwendung bearbeitet werden.
     
    Walter gefällt das.
  5. Joachim2014$

    Joachim2014$ Benutzer

    Ich kann mir die Umsetzung der Personenabfrage noch nicht vorstellen.

    Ideal wäre es wenn ich folgendes Umsetzen könnte.

    Ein Anrufer wird an Hand seiner Telefonnummer identifiziert.
    Die Datenbank zeigt mir die individuellen Daten des Anrufers (Felder je nach Personengruppe) an.

    Ich habe eine Vorstellung von folgenden Möglichkeiten

    a.) Ich mache einen (Master) Stammdatensatz für alle Personengruppen

    Das bedeutet ich habe eine große Anzahl von ungenutzten Feldern pro abgefragter Person.
    Das macht die Abfrage dann aber für den Anwender mehr oder weniger unübersichtlich.

    b.) Ich mache für jede Personengruppe eine eigene Abfrage.

    Dann kann ich die Felder individuell bestimmen.

    Beide Versionen haben einen entscheidenden Nachteil

    Bei Version a.) die ungenutzten Felder und dadurch unübersichtlich
    Bei Version b.) ich muss vor der Abfrage feststellen zu welcher Personengruppe der Anrufer gehört.

    Version b.) nutzen wir im Moment. Dabei hat sich gezeigt, dass dabei oft Fehler passieren und es dadurch zu doppelten Datensätzen kommt.

    Ich kann mir nicht vorstellen, wie die Idealversion umgesetzt werden könnte.
    Eine Personenabfrage die dann die individuellen Felder der Person zeigt?


    Viele Grüße

    Joachim
     
  6. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Ja, natürlich! Wo steht denn geschrieben dass Menge der per SELECT eingelesene Daten = Menge der angezeigte Daten? Das wäre in vielen Fällen ja unsinnig.
     
    Walter gefällt das.
  7. Joachim2014$

    Joachim2014$ Benutzer

    ich bin gerade am tüfteln.
    ich glaube ich habe eine Lösung, brauche aber noch Zeit
     
  8. Joachim2014$

    Joachim2014$ Benutzer

    Hallo Margit,

    SQL ist für mich leider noch ein Buch mit "Sieben Siegeln"
    Ich bin gerade dabei Access zu lernen um damit ein vernünftiges Datenbankdesign zu erstellen.

    Viele Grüße

    Joachim
     
  9. ukulele

    ukulele Datenbank-Guru

    Das merkt man, du solltest dich ganz klar mehr mit Normalisierung befassen als mit der Anzahl der Datenbanken. Das mag am Anfang komplizierter erscheinen, spart dir aber am Ende viel viel Arbeit.
    Welches Front-End kommt denn zum Einsatz?
    Hat die jetztige Lösung schon eine Telefonie-Schnittstelle bzw. ist das in Access überhaupt möglich?
    Soll die Anwendung nur lokal laufen oder Mehrbenutzerfähig werden?
     
  10. Joachim2014$

    Joachim2014$ Benutzer

    Ich bin echt bemüht, die Normalformen korrekt einzuhalten.
    Das war wahrscheinlich auch mein Problem (später wenn ich denke meinen Fehler besser zu verstehen mehr)
    Ich habe aber gemerkt, dass ich mich leichter tue, wenn ich parallel praktische Erfahrung sammle. Da stoße ich dann auf die Probleme die ich durch reine Theorie gar nicht wahrnehmen würde.

    Keine Ahnung welches Front-End, da bin ich glaube ich noch weit entfernt.
    Telefonschnittstelle gibt es natürlich auch noch nicht.

    Ich glaube nicht, dass die Datenbank in Access möglich ist.
    Ich glaube aber, dass Access für einen absoluten Anfänger wie mich das Beste ist um überhaupt Datenbanken zu verstehen.
    Siehe mein Problem (das wie ich jetzt vermute gar keines ist)

    Mysql wäre dann wahrscheinlich für mich am einfachsten zu lernen. Es gibt eine Menge Lehrmaterial zu Mysql.
    Wobei Mysql durch den Verkauf an Oracel jetzt nicht mehr erste Wahl sein dürfte.

    Ich denke an MariaDB oder Postgresql. Wobei es bei beiden kaum Tutorials gibt.

    Mein Plan sieht so aus.

    Datenbankdesign und Datenbanktheorie in Access

    danach

    Sql

    danach Entscheidung welches Datenbankmodel
     
  11. Joachim2014$

    Joachim2014$ Benutzer

    Ach, ja die Anwendung muss unbedingt Mehrbenutzerfähig werden und es muss ein Onlinezugriff auf die Daten möglich sein

    Viele Grüße

    Joachim
     
  12. ukulele

    ukulele Datenbank-Guru

    Nun ich würde vieleicht gleich mit PG anfangen aber da kann man natürlich keine Masken oder dergleichen mit bauen. Access kenne ich selbst auch nur als Übergangslösung bei Export / Import. Es bleibt dir überlassen aber der Vote ist ja zum Glück eindeutig :)
     
  13. akretschmer

    akretschmer Datenbank-Guru

    MariaDB ist faktisch MySQL. Mit allen Nachteilen. Tutorials für PG gibt es genug: PG spricht ein sehr klares SQL, jedes SQL-Lehrbuch ist also auch für PG geeignet. Allerdings hat PG 'ne ganze Menge Features, die Du nirgendwo anders findest. Zum Beispiel Exclusion Constraints oder native Bearbeiten von JSON (inkl. Indexunterstützung!) oder den Key-Value-Store HSTORE. Es gibt übrigens zu PG eine sehr gute Community. Und eine super Doku. Bei Interesse kann ich Dir gern noch Links zu diversen Blogs zusammenstellen.
     
  14. Joachim2014$

    Joachim2014$ Benutzer

    Ich bin für jede Hilfe, Tip, Hinweis dankbar.

    PG finde ich sympathisch (reines Bauchgefühl, ich könnte nicht erklären warum)
    Daher wäre es toll, wenn ich Infos darüber bekommen kann.
    Leider habe ich das Problem, dass ich so gut wie kein Englisch verstehe :-( (Englische Tutorial bringen mir leider nichts)
    Und auf http://www.postgresql.de/ wird folgende Aussage gemacht.

    "Obwohl es PostgreSQL schon seit 1996 unter diesem Namen gibt, stehen dennoch sehr wenige Informationen in deutscher Sprache zur Verfügung."

    Das DMS muß ja auch zu mir passen. Mir bringt das Beste System nichts wenn ich es nicht bedienen kann.

    Eine Frage würde mich brennend interessieren.

    Firmen wie Google oder Wikipedia die ja bestimmt über absolut fähige Berater verfügen haben zuerst auf MySql gebaut und sind jetzt zu MariaDB.
    Warum nicht zu Postgresql wenn das doch den MYsql Varianten überlegen sein soll ?

    Viele Grüße
     
  15. BerndB

    BerndB Datenbank-Guru

    MairiaDB ist schon die bessere Variante. Diese wird auch von Monty (Michael Widenius), dem Vater von MySQL, enwickelt.
    Schau einfach mal wer alles MySQL bzw. MariaDB einsetzt, dann wird sich deine Frage schon erledigt haben.

    Für MariaDB gibt es jede Menge Tools, die dir die Arbeit erleichtern und ist wohl auch ungeschlagen in der Performence. Und falls es je nötig sein sollte
    unterstützt MariaDB jetzt auch Cluster (Galera), damit bist du in jedem Fall für alle Probleme gerüstet.
     
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