Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: Relationenschema
AUTOR BEITRAG
†ЯøjãnэЯ *www.mh-auto.de*

RANG Deckschrubber

#1 - 14.12 13:33

Eventuell kann mir jemand weiterhelfen. Ich verstehe leider die Teilaufgabe b) nicht.

Hier die Frage sowie inkl. Antwort a) die benötigt wird für b): (# markiert den primärschlüssel!)


Gegeben sei folgendes Relationenschema, welches zur Verwaltung von Netzwerken bestehend
aus Computern und Druckern verwendet wird.
Neztwerk (#netzid, netzname,
Computer (#c_serialno, Interface (#macadr, ipadr), hersteller),
Drucker (#d_serialno, macadr, ipadr, hersteller)
)


a) Bringen Sie dieses Datenbankmodell in die dritte Normalform (Relationenschemata + Integritätsbedingungen!), wenn folgende Funktionalrelationen gelten:
macadr -> ipadr
macadr -> hersteller

Lösung:
code:

1. NF
Netzwerk (#netzid, netzname)
Computer (#netzid, #c_serialno, hersteller)
Interface (#netzid, #c_serialno, #macadr, ipadr)
Drucker (#netzid, #d_serialno, macadr, ipadr, hersteller)
FS Computer.netzid referenziert Netzwerk.netzid
FS Interface (netzid, c_serialno) ref. Computer (netzid, c_serialno)
FS Drucker.netzid referenziert Netzwerk.netzid
2. NF
Netzwerk, Computer, Drucker wie 1. NF
Interface (#netzid, #c_serialno, #macadr)
Macadr (#macadr, ipadr)
FS Interface.macadr referenziert Macadr.macadr
3. NF
Neztwerk, Computer, Interface, Macadr wie 2. NF
Drucker (#netzid, #d_serialno, macadr)
Macadr2 (#macadr, #ipadr, hersteller)
FS Drucker.macadr referenziert Macadr2.macadr 



FRAGE b):
Wenn c_serialno ein Schlüsselkandidat für Computer über alle Netzwerke ist, wie
kann dann das in Teilaufgabe a abgeleitete Datenbankmodell vereinfacht werden?. Erläutern
Sie Ihr Vorgehen kurz.
Morath

RANG Deckschrubber

#2 - 14.12 15:30

Also ich versteh das so:

c_serialno ist eindeutig über alle Computer, d.h. Primärschlüssel von Computer könnte allein c_serialno sein. netzid könnte damit komplett aus der Tabelle Computer rausfliegen, weil man ja über die FS-Beziehung von Computer zu Interface (die dann auch nur noch mit c_serialno gemacht wird) und dann weiter zu Netzwerk an die netzid für einen bestimmten Computer rankommen könnte.