Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hi,

zu dem Thema kam auch relativ wenig im Forum dran.

Ein Werkenlehrer führt folgende Tabelle:

Name: Meier Daniel

Klasse: 2C

KL-Lehrer: Hew

Fachnoten: 3,4,5

Fleissnoten: 2,3,3

Name: Aebi Daniel

Klasse: 2C

KL-Lehrer: Hew

Fachnoten: 4,5,5

Fleissnoten: 5,5,4

Name: Hammer Sven

Klasse: 1B

KL-Lehrer: Kranz

Fachnoten: 1,3

Fleissnoten: 6,6

Name: Caflisch Erika

Klasse: 3A

KL-Lehrer: Müller

Fachnoten: 4,4,5

Fleißnote: 4,2,4

Name: Hammer Beatirce

Klasse: 3A

KL-Lehrer: Müller

Fachnoten: 5,5,6

Fleissnoten: 6,6,6

Aufgabe 1

Wende die hier die 1. Normalform an!

Aufgabe 2

Gehe von Aufgabe 1 in die zweite Normalform über und Stelle die Daten in der 2. Normalform dar.

Aufgabe 3

Gehe von Aufgabe 2 in die dritte Normalform über und stelle die Daten in der 3. Normalform dar.

Naja, und wer möchte kann dann noch das Relationsmodell mit Beziehungen etc. aufzeichnen ;)

1.NF:

Tabelle Schüler:

Name: 'Meier'

Vorname: 'Daniel'

Klasse: '2C'

KL-Lehrer: 'Hew'

Fachnote1:3

Fachnote2:4

Fachnote3:5

Fleissnote1:2

Fleissnote2:3

Fleissnote3:3

2.NF:

Tabelle Schüler:

SchülerID:1 Primary Key

Name: 'Meier'

Vorname: 'Daniel'

Klasse: '2C'

KL-Lehrer: 'Hew'

Fachnote1:3

Fachnote2:4

Fachnote3:5

Fleissnote1:2

Fleissnote2:3

Fleissnote3:3

3.NF:

Tabelle Schüler:

SchülerID: (serial) Primary Key

Name: (varchar) bspw. 'Meier'

Vorname: (varchar) bspw. 'Daniel'

KlassenID: KlassenID (integer) Foreign Key

KL-LehrerID: KL-LehrerID (integer) Foreign Key

Fachnote1: NotenID (integer) Foreign Key

Fachnote2: NotenID (integer) Foreign Key

Fachnote3: NotenID (integer) Foreign Key

Fleissnote1: NotenID (integer) Foreign Key

Fleissnote2: NotenID (integer) Foreign Key

Fleissnote3: NotenID (integer) Foreign Key

Tabelle Klassen:

KlassenID (Serial) Primary Key

Klasse (varchar) bspw. '2C'

Tabelle Lehrer:

KL-LehrerID (Serial) Primary Key

KL-Lehrer (varchar) bspw. 'Hew'

Tabelle Noten:

NotenID (Serial) Primary Key

Note (integer) bspw. 1

Ich hoff Du meinst in etwa sowas:) ?

Hmm, ich glaub bei der 2.NF hab ich was vergessen.

Wer kann helfen ? Ich muss das bis Dienstag auch drauf haben :rolleyes:

muss man da net die PKs machen? oder nur einen?

ich hät da jetzt die andren noch mitreingepackt.:D

Also in der 2.Normalform musst jedes Attribut voll funktional vom Schlüssel abhängen.

Wie SchülerNr , NotenNr , LehrerNr.

...da wir aber jetzt mehrere Primärschlüssel in der Tabelle Schüler haben müssen wir die Lehrer in eine separate Relation umwandeln und ihre Daten in eine eigene Tabelle bringen.

is das für die 2.Normalform ausreichend???

...glaubt ihr wirklich, dass sowas dran kommt? Ich meine, die meisten von uns werden sowieso "instinktiv" die dritte Normalform anwenden, wenn sie eine Datenbank aufziehen...

Ausserdem kostet das doch eh nur viel zu viel Zeit in so einer Prüfung... ein Bekannter aus dem Prüfungsaussschuss hat gemeint, dass da alle Fachleute dagegen gewettert hätten, als die Sache zur Sprache kam...

Gruss,

der Onkel

@Ninsai-Wan

So in etwa hatte ich mir das gedacht, nur was ist dann der genaue Unterschied zwischen 2. und 3.NF?

(transitive Abhängigkeiten)

Ist bestimmt total falsch aber man kann es ja mal probieren

aus Si er! *lach..

1 NF:

SchülerName

Klasse

Kl-Leher

Fachnote

Fleißnote

2 NF:

SchülerID

SchülerName

LehrerID

Kl_Lehrer

NotenID

Fachnote

Fleißnote

KlassenID

Klasse

3 NF:

Tabelle Schüler

SchülerID (PK)

SchülerName

NotenID (FK)

LehrerID (FK)

KlassenID (FK)

Raum

Tabelle Lehrer

LehrerID (PK)

KlassenID( FK)

Kl-Lehrer

Name usw...

Tabelle Klasse

KlassenID (PF)

Klasse

Tabelle Noten

NotenID (PK)

Fleißnoten

Fachnoten

..ich versuche es zu erklären:

Da in der 2.Normalform alle Nicht-Schlüssel-Attribute funktional abhängig von ihrem Primärschlüssel sind, können immer noch Anomalien auftreten. z.B. wenn du eine Note änderst, müsste diese in mehreren Datensätzen mit geändert werden

Um das zu umgehen werden in der 3.Normalform die transitiven Abhängigkeiten (Abhängigkeit zwischen nicht Schlüsselattributen) in eigene Relatioenen bzw. Tabellen ausgelagert.

kann mal einer was zu meinem sagen?

ist es falsch richtig oder was?

und auf Seite 186 unten sind die Normalformen erklärt.

Zweite Auflage

@ThimschE

also in der 2.Normalform sollen ja alle Teile in eine eigene Tabelle ausgelagert werden. Also Zeilen mit unterschiedlichen Werten:

2 NF:

SchülerID

SchülerName

KlassenID

---------------

LehrerID

Kl_Lehrer

---------------

NotenID

Fachnote

Fleißnote

---------------

KlassenID

Klasse

Wichtig sind die 1-N oder auch M-N Beziehungen. Wie z.B. Ein Schüler kann nur eine Klasse haben, aber 1 Klasse kann mehrere Schüler haben usw.

Ich glaube so wie ich es dastehen habe ist es noch nicht ganz fertig, aber ich hoffe ich bin auf dem richtigen Weg.

mom, ich hole mal unterlagen und hack das hier ein!

Also, Für ein Unternehmen, das Baumaschinen vermietet, ist eine Datenbank zu erstellen.

1. Bestimmen sie nach den NF die Tabellenstruktur der Rela.

DB

2. Entwickeln sie ein ER Modell

Attribute

Typ, Art, Ndl_Kennzeichen, Mietbegin, Mietende, Kfz_kennzeichen,

Hersteller, KundenAdresse, Kundenart, AnsprechPartner, Name,

Befähigungsklasse, Inspektionsdatum, Werkstatt, Anfang-km, End-km, Anfangs-Betriebsstunden, End-Betriebsstunden, Kaufdatum, Tarif-Tag, Tarif-km, Tarif-Betriebsstunden, Ansprechpartner(Ndl), Niederlassungsort.

Dann legt mal los Jungs und Mädels

Mach mit der neuen Aufgabe doch einfach einen neuen Thread!

Zu der anderen Aufgabe sage ich nur: die 3. NF kann so nicht stimmen!

Original geschrieben von ThimschE

3 NF:

Tabelle Noten

NotenID (PK)

Fleißnoten

Fachnoten

In dem Feld Fleißnoten und Fachnoten hättest Du mehrere Einträge, durch Kommata getrennt. Ist nicht!

Sinnvoller wäre eine Notentabelle mit

NotenID(PK)

SchülerID(FK)

Note

Notenart

Die ist zwar dann mit mehr Zeilen, aber so kommt es mit der Normalisierung hin. Der Fremdschlüssel NotenID aus der Tabelle Schüler fällt dann natürlich raus.

Original geschrieben von ThimschE

Dann legt mal los Jungs und Mädels

Na dann bin ich mal so motivert und beginne obwohl ich nicht glaube (nicht glauben will!!9 das eine Aufgabe in diesem Umfang und mit so seltsamen Attributen drankommt :-)! Hab auch nicht alle miteingebaut!

Tabelle Maschinen

MaschinenNR

Typ

Art

KFZKennzeichen

Hersteller

Kaufdatum

Tabelle Kunde

KundenNr

Name

Vroname

Straße

Ort

Kundenart

AnsprechpartnerNR

Tabelle Ansprechpartner

AnsprechpartenerNr

Name

Befähigungsklasse

Tabelle Vermietung

VermietungsNr

Mietbegin

Mietende

ZwischentabelleVermietung/Maschinen

MaschinenNr

VermietungsNr

AnfangKm

EndKm

Zwischentabelle Maschinen/kunde

MaschineneNr

KundenNr

Tja mehr fällt mir zu den Attributen nicht ein würde ich dafür wohl ein paar Punkte bekommen auch wenn die Hälfte falsch ist oder fehlt???

Schueler:

*Schueler_ID

Name

Vorname

Klasse

Noten_Id

K-Lehrer_ID

Noten

*Noten_ID

Fleissnote

Fachnote

Kl-Lehrer

*K-Lehrer_ID

Name

Schuler_ID

KLasse

Schueler n:1 Kl-Lehrer

Kl-Lehrer 1:n Noten

Schueler 1:n Noten

Warum noch mal eine Tabelle Klasse aufmachen, die ist doch eindeutig?

@ Firewire

relationale Datenbankmodelle sollten immer von der realen Welt absrahieren. Und somit würde es mehr Sinn machen, hat man eine Tabelle der möglichen Klassen, eine Tabelle der Lehrer in der Schule und eine Tabelle der Schüler. Du musst auch immer auf Erweiterbarkeit der DB hinzielen. Bis zur 3. NF wäre es so logischer:

Schüler

id

name

vorname

klasse

fachnoten

fleißnoten

Klassen

id

klasse

Lehrer

id

name

vorname

klasse

so ist es doch am logischsten. Warum sollte ich noch eine Tabelle Noten aufmachen ? Ist doch eigentlich blödsinn. Höchstens ich möchte auf einfache Weise den Durchschnitt eines Jeden Schülers ausrechnen. Dann brauche ich ein Tabelle Noten die alle derzeit Verfügbaren Noten enthält. Das wäre dann aber eine m:n Beziehung ;-) und müsste über eine Zwischentabelle gelöst werden, zumindest im physischen Datenmodell, nicht im logischen

Original geschrieben von der_tommy

Schüler

id

name

vorname

klasse

fachnoten

fleißnoten

Deine Tabelle "Schüler" kann nicht der 3ten Normalform entsprechen, denn mehrere voneinander getrennte Werte innerhalb eines Attributs müssen bereits in der 1ten Normalform aufgelöst werden. (sofern es logisch ist!!!)

Wie könntest Du z.B. in Deinem Modell eine Deutschnote von einer Englischnote unterscheiden ... und dann auch noch die zum jeweiligen Fach dazugehörige Fleissnote?

Mein Vorschlag wären zwei weitere Tabellen

Tabelle: Fach

fach_id

fachbezeichnung

Tabelle: Zeugnis

jahr

schueler_id

fach_id

fachnote

fleissnote

Diese Variante lässt in meinen Augen auch eine beliebige Erweiterung zu. Oder habe ich etwas übersehen?

Gruss

Metaner

Original geschrieben von der_tommy

Schüler

id

name

vorname

klasse

fachnoten

fleißnoten

Deine Tabelle "Schüler" kann nicht der 3ten Normalform entsprechen, denn mehrere voneinander getrennte Werte innerhalb eines Attributs müssen bereits in der 1ten Normalform aufgelöst werden. (sofern es logisch ist!!!)

Wie könntest Du z.B. in Deinem Modell eine Deutschnote von einer Englischnote unterscheiden ... und dann auch noch die zum jeweiligen Fach dazugehörige Fleissnote?

Mein Vorschlag wären zwei weitere Tabellen

Tabelle: Fach

fach_id

fachbezeichnung

Tabelle: Zeugnis

jahr

schueler_id

fach_id

fachnote

fleissnote

Diese Variante lässt in meinen Augen auch eine beliebige Erweiterung zu. Oder habe ich etwas übersehen?

Gruss

Metaner

@Hunchback

Hier mal eine Erklärung zur "transitiven Abhängigkeit":

Transitive Abhängigkeit herrscht dann, wenn das Attribut C nur deshalb von Attribut A abhängig ist, weil C von B abhängig ist und B wiederum von A abhängt.

@der_tommy

Mache aus der Tabelle "Zeugnis" einfach "Klassenarbeiten" ... hab oben überlesen, das es speziel um den Werkunterricht geht :-))

es könnte übrigens in der Prüfung auch mal dran kommen nur bis zur 2. Normalform zu gehen.

Original geschrieben von der_tommy

es könnte übrigens in der Prüfung auch mal dran kommen nur bis zur 2. Normalform zu gehen.

oder auch Die Boyce-Codd-Normalform

*angsthab* *brrrrrrrr*

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.