Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

2. Normalform ruiniert mein Schema

Ein gutes Datenbankdesign ist Pflicht! Doch wie geht man an die Datenmodellierung heran?
Hier treffen Datenbankdesign und Datenmodellierung aufeinander...

2. Normalform ruiniert mein Schema

Beitragvon Tersus » Sa 27. Feb 2016, 21:37

Guten Abend,

in wie fern ist die volle funktionale Abhängigkeit für ein Datenbankschema wichtig?

Folgende Relation sei gegeben:

R(A, B, C, D, E)

Nun gelten folgende voll funktionale Abhängigkeiten:

{A, B} --°-> {D}
{A, B, C} --°-> {E}

Damit liegt meine Tabelle in der 1. Normalform vor!

Muss ich diese Relation jetzt wirklich aufbrechen in:

R(A, B, C,E)
S(A, B, D)

Schlimmer noch, denn ich wollte eigentlich einen künstlichen Schlüssel "Z" einfügen, um bei Referenzierung auf meine Tabelle R nicht zwei Fremdschlüssel verwenden zu müssen. Die ursprünglichen Primärschlüssel hätte ich dann natürlich zusammen unique gemacht.

Dann hätte ich folgendes (Die Symbole '<' und '>' schließen unique Attribute ein):

R(Z, C, E)
S(Z, <A, B>, D)

Dann hat R ja schon wieder zwei Fremdschlüssel. Zum kotzen.
Tersus
 
Beiträge: 2
Registriert: Sa 27. Feb 2016, 21:19

Re: 2. Normalform ruiniert mein Schema

Beitragvon SQLUnion » So 28. Feb 2016, 13:53

Hallo Tersus,

willkommen im Forum...
Ich bin auch kein Freund der Theorie, aber ein bisschen Theorie kann helfen.
Kannst Du bzw. hast Du deine Problematik mal auf ein konkretes Beispiel aus der realen Welt abgebildet?

Das macht es mir immer leichter zu entscheiden, ob es Sinn ergibt oder nicht.

Gruß,
SQLUnion

P.s.: Bitte achte auf deine Wortwahl ;)
SQLUnion
 
Beiträge: 155
Registriert: Fr 1. Nov 2013, 15:54

Re: 2. Normalform ruiniert mein Schema

Beitragvon Tersus » Mo 29. Feb 2016, 15:44

Erstmal ein Danke für deine Antwort.

Als erstes eine Beispieltabelle:
Code: Alles auswählen
|--------------+-------------+-----------------+------------+----------+----------|
| Lagernr. (P) | Fachnr. (P) | Personalnr. (P) | Gegenstand | pwteil 1 | pwteil 2 |
|--------------+-------------+-----------------+------------+----------+----------|
| 1            | 1           | 1               | Zange      | xy       | ab       |
| 1            | 1           | 2               | Zange      | ad       | xy       |
| 1            | 1           | 3               | Zange      | fc       | xq       |
|--------------+-------------+-----------------+------------+----------+----------|
| 3            | 2           | 1               | Bohrer     | qw       | xy       |
|--------------+-------------+-----------------+------------+----------+----------|


{Lagernr, Fachnr.} --°-> {Gegenstand}


Da Zugangscodes 1 und 2 in ihrer Kombination ebenfalls nur einmal pro Lager, Fach und Person vergeben werden dürfen, ergibt sich eine völlig neue Erkenntnis.

{pwteil 1, pwteil 2} <-°-> {Lagernr, Fachnr, Personalnr}

Da die Verwendung von Passwörtern als Primärschlüssel fraglich ist, tun wir mal so, als seien Sie öffentlich und ignorieren das Problem.

Tabelle 1
Code: Alles auswählen
|--------------+-------------+------------|
| Lagernr. (P) | Fachnr. (P) | Gegenstand |
|--------------+-------------+------------|
| 1            | 1           | Zange      |
| 1            | 1           | Zange      |
| 1            | 1           | Zange      |
|--------------+-------------+------------|
| 3            | 2           | Bohrer     |
|--------------+-------------+------------|


Tabelle 2 (Was nehme ich als Primärschlüssel?)
Code: Alles auswählen
|----------+----------+----------+---------+-------------|
| pwteil 1 | pwteil 2 | Lagernr. | Fachnr. | Personalnr. |
|----------+----------+----------+---------+-------------|
| xy       | ab       | 1        | 1       | 1           |
| ad       | xy       | 1        | 1       | 2           |
| fc       | xq       | 1        | 1       | 3           |
|----------+----------+----------+---------+-------------|
| qw       | xy       | 3        | 2       | 1           |
|----------+----------+----------+---------+-------------|


Siehe die voll funktionale Abhängigkeit. Was nehme ich denn nun als Primärschlüssel? Das jeweils andere Paar muss unique gesetzt werden.
Tersus
 
Beiträge: 2
Registriert: Sa 27. Feb 2016, 21:19


Zurück zu Datenbankdesign und Datenmodellierung

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: