Relationales Datenmodell: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Informatik Kategorie:Informatik-Abitur Mithilfe von Relationalen Datenmodellen kann man relationale Datenbanken planen: Realität -> Anford…“)
 
Zeile 8: Zeile 8:
Um ein relationales Datenmodell zu erstellen, muss erst ein Entity-Relationship-Modell vorliegen.
Um ein relationales Datenmodell zu erstellen, muss erst ein Entity-Relationship-Modell vorliegen.
Das Entity-Relationship-Modell kann mithilfe von technischen Schritten in ein relationales Datenmodell übersetzt werden.
Das Entity-Relationship-Modell kann mithilfe von technischen Schritten in ein relationales Datenmodell übersetzt werden.


=Begriffe=
=Begriffe=
Zeile 14: Zeile 15:
* '''Fremdschlüssel''': Der Fremdschlüssel (Foreign Key; abgekürzt: '''FK''') stellt die Verbindung zwischen Tabellen her: Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
* '''Fremdschlüssel''': Der Fremdschlüssel (Foreign Key; abgekürzt: '''FK''') stellt die Verbindung zwischen Tabellen her: Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
** Fremdschlüssel werden durch einen Pfeil nach oben (↑) markiert, z.B.: '''↑kunde_id'''
** Fremdschlüssel werden durch einen Pfeil nach oben (↑) markiert, z.B.: '''↑kunde_id'''


=Vom ER-Modell zum relationalen Datenmodell=
=Vom ER-Modell zum relationalen Datenmodell=
[[File:ER-modell-lehrer-kurs-schueler.png|thumb|ER-Modell Kurssystem |572px]]
Der Weg vom ER-Modell zum relationalen Datenmodell wird beispielhaft am ER-Modell ''Kurssystem'' (s. rechts) dargestellt.
== Primärschlüssel festlegen==
Für die Entitätsmengen ''schueler'', ''kurs'' und ''lehrer'' müssen Primärschlüssel festgelegt werden:
* Keine der drei Tabellen hat ein Attribut, das einen Datensatz eindeutig identifiziert.
* Deswegen erhält jede Entitätsmenge ein neues Attribut <u>id</u> als Primärschlüssel.
Zwischenergebnis:
* schueler('''<u>id</u>''', name, vorname, geburtsdatum, adresse, geschlecht)
* kurs('''<u>id</u>''', name, kuerzel, halbjahr)
* lehrer('''<u>id</u>''', name, vorname, kuerzel)
Man sieht, dass die Beziehungen zwischen den Entitätsmengen noch nicht in das relationale Datenmodell übersetzt wurden; dementsprechend fehlt auch das Attribut ''note''.
== 1:n-Beziehungen ==
1:n-Beziehungen werden in das relationale Datenmodell übersetzt, indem '''auf der n-Seite''' der Beziehung ein Fremdschlüssel eingetragen wird, der auf den Primärschlüssel der anderen beteiligten Tabelle verweist.
* ''lehrer'' - ''kurs'' ist eine 1:n-Beziehung.
* ''kurs'' ist auf der n-Seite der Beziehung.
* in ''kurs'' wird als Fremdschlüssel '''&uarr;lehrer_id''' eingetragen.
Zwischenergebnis:
* schueler(<u>id</u>, name, vorname, geburtsdatum, adresse, geschlecht)
* kurs(<u>id</u>, name, kuerzel, halbjahr, '''&uarr;lehrer_id''')
* lehrer(<u>id</u>, name, vorname, kuerzel)
Jetzt kann man bei jedem einzelen Kurs sehen, welcher Lehrer ihn unterrichtet.
== n:m-Beziehungen ==
n:m-Beziehungen werden in das relationale Datenmodell übersetzt, indem man eine '''Zwischentabelle''' einfügt: die Zwischentabelle enthält zwei Fremdschlüssel auf die beiden Tabellen der Beziehung.
* Die ''Kombination'' der beiden Fremdschlüssel kann als Primärschlüssel der Zwischentabelle genutzt werden.

Version vom 22. April 2013, 15:31 Uhr


Mithilfe von Relationalen Datenmodellen kann man relationale Datenbanken planen:

Realität -> Anforderungsermittlung -> Entity-Relationship-Modell -> Relationales Datenmodell -> Datenbanksystem

Um ein relationales Datenmodell zu erstellen, muss erst ein Entity-Relationship-Modell vorliegen. Das Entity-Relationship-Modell kann mithilfe von technischen Schritten in ein relationales Datenmodell übersetzt werden.


Begriffe

  • Primärschlüssel: Der Primärschlüssel (Primary Key; abgekürzt: PK) ist ein Attribut (oder eine Kombination aus 2 Attributen), das einen Datensatz eindeutig identifiziert.
    • Primärschlüssel werden unterstrichen, z.B. id
  • Fremdschlüssel: Der Fremdschlüssel (Foreign Key; abgekürzt: FK) stellt die Verbindung zwischen Tabellen her: Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
    • Fremdschlüssel werden durch einen Pfeil nach oben (↑) markiert, z.B.: ↑kunde_id


Vom ER-Modell zum relationalen Datenmodell

ER-Modell Kurssystem

Der Weg vom ER-Modell zum relationalen Datenmodell wird beispielhaft am ER-Modell Kurssystem (s. rechts) dargestellt.

Primärschlüssel festlegen

Für die Entitätsmengen schueler, kurs und lehrer müssen Primärschlüssel festgelegt werden:

  • Keine der drei Tabellen hat ein Attribut, das einen Datensatz eindeutig identifiziert.
  • Deswegen erhält jede Entitätsmenge ein neues Attribut id als Primärschlüssel.

Zwischenergebnis:

  • schueler(id, name, vorname, geburtsdatum, adresse, geschlecht)
  • kurs(id, name, kuerzel, halbjahr)
  • lehrer(id, name, vorname, kuerzel)

Man sieht, dass die Beziehungen zwischen den Entitätsmengen noch nicht in das relationale Datenmodell übersetzt wurden; dementsprechend fehlt auch das Attribut note.

1:n-Beziehungen

1:n-Beziehungen werden in das relationale Datenmodell übersetzt, indem auf der n-Seite der Beziehung ein Fremdschlüssel eingetragen wird, der auf den Primärschlüssel der anderen beteiligten Tabelle verweist.

  • lehrer - kurs ist eine 1:n-Beziehung.
  • kurs ist auf der n-Seite der Beziehung.
  • in kurs wird als Fremdschlüssel ↑lehrer_id eingetragen.

Zwischenergebnis:

  • schueler(id, name, vorname, geburtsdatum, adresse, geschlecht)
  • kurs(id, name, kuerzel, halbjahr, ↑lehrer_id)
  • lehrer(id, name, vorname, kuerzel)

Jetzt kann man bei jedem einzelen Kurs sehen, welcher Lehrer ihn unterrichtet.

n:m-Beziehungen

n:m-Beziehungen werden in das relationale Datenmodell übersetzt, indem man eine Zwischentabelle einfügt: die Zwischentabelle enthält zwei Fremdschlüssel auf die beiden Tabellen der Beziehung.

  • Die Kombination der beiden Fremdschlüssel kann als Primärschlüssel der Zwischentabelle genutzt werden.