Optimierung beim relationalen Modell

acky!

Neuer Benutzer
Beiträge
3
Hi,

erstmal ein Hallo :) Das ist mein erster Beitrag. Ich weiß nicht ob ich hier ganz richtig bin. Aber probieren kann man es ja allemal.

Es geht um folgendes Problem: die Überführung vom ERm zum relationalen Modell.

Ich häng bei der Optimierung nur an einer Stelle. Ich weiß nicht ganz genau ob ich die Relation zusammenfassen darf oder nicht.

Also dann legen wir mal los. Gegeben ist folgendes ERM:
beispiell.jpg


Also los gehts:

Passagiere: {[PANr, Name]}

Flughaefen: {[Code, Name]}

Fluege: {[FlugNr, Datum]}

Flugzeuge : {[FlzgID, Anzahl_Plaetze]}

Fluggesellschaften: {[GesID, Name]}


buchen: {[PANr--> Passagiere , Datum--> Fluege , FlugNr--> Fluege , Datum, Preis]}

starten_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

landen_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

durchgefuehrt_mit: {[Datum--> Fluege , FlugNr--> Fluege , FlzgID--> Flugzeuge]}

durchgefuehrt_von: {[Datum--> Fluege , FlugNr--> Fluege , GesID--> Fluggesellschaften]}

besitzen: {[FlzgID--> Flugzeuge, GesID--> Fluggesellschaften]}

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

Was passiert jetzt ?

In starten_in und in landen_in kann Code aus dem Schlüssel entlassen werden.

In durchgefuehrt_mit kann FlzgID aus dem Schlüssel entlassen werden.

In durchgefuehrt_von kann GesID aus dem Schlüssel entlassen werden.

Die Relation durchgefuehrt_mit kann man in Fluege auflösen. Selbes gilt für durchgefuehrt_von.

In besitzen kann GesID aus dem Schlüssel entlassen werden.

Die Relation besitzen kann man in Flugzeuge auflösen.

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

Endergebniss:

Passagiere: {[PANr, Name]}

Flughaefen: {[Code, Name]}

Fluege: {[FlugNr, Datum, FlzgID--> Flugzeuge, GesID--> Fluggesellschaften]}

Flugzeuge: {[FlzgID, Anzahl_Plaetze , GesID--> Fluggesellschaften]}

Fluggesellschaften: {[GesID, Name]}


buchen: {[PANr--> Passagiere , Datum--> Fluege , FlugNr--> Fluege , Datum, Preis]}

starten_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

landen_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

besitzen: {[FlzgID--> Flugzeuge, GesID--> Fluggesellschaften]}


So und jetzt kommt meine eigentliche Frage:

starten_in
und landen_in haben jetzt noch Datum und FlugNr als Schlüssel. Es müsste doch möglich sein diese jetzt in Fluege aufzulösen. Ist das möglich ?

Also in etwa so:

Fluege: {[FlugNr, Datum, FlzgID--> Flugzeuge, GesID--> Fluggesellschaften, Abflug_Code--> Flughaefen , Abflug_Zeit--> starten_in , Anflug_Code--> Flughaefen , Ankunft_Zeit--> landen_in ]}

irgendwie habe ich Bedenken weil Abflug_Zeit und Anflug_Zeit auf frühere Relationships zeigen.
Oder ist das egal weil es jetzt alles nur noch Relationen sind.

Erstmal danke für die Aufmerksamkeit :)
Ich hoffe es findet sich jmd. der mir meine Frage beantworten kann.

Gruß

acky
 
Werbung:
AW: Optimierung beim relationalen Modell

Hallo acky!,

starten_in und landen_in haben jetzt noch Datum und FlugNr als Schlüssel.

Und Code aus der Relation Flughafen, oder?

Es müsste doch möglich sein diese jetzt in Fluege aufzulösen. Ist das möglich ?

Ja

irgendwie habe ich Bedenken weil Abflug_Zeit und Anflug_Zeit auf frühere Relationships zeigen.

Abflug_Zeit und Anflug_Zeit sind bei

starten_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

und

landen_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

Eindeutig einer Flugnr/Datum Flughafencode - Kombination zugeordnet, oder nicht?

Gruß Charly
 
AW: Optimierung beim relationalen Modell

Regel zur Verkleinerung der Schlüsselmenge bei Relationen, die aus Relationships hervorgegangen sind:
Die Schlüsselattributes eines Entities, das in der 1:N - Notation mit "1" gekenzeichnet ist, dürfen aus dem Schlüssel entlassen werden.

Deshalb habe ich Code aus dem Schlüssel entfernt.


Abflug_Zeit und Anflug_Zeit sind bei

starten_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

und

landen_in: {[Datum--> Fluege , FlugNr--> Fluege , Code--> Flughaefen , Zeit]}

Eindeutig einer Flugnr/Datum Flughafencode - Kombination zugeordnet, oder nicht?

Gruß Charly

Also Abflug_Zeit ist Zeit in starten_in.

Ich hab es nur umbennant weil 2 mal Zeit in einer Relation doof aussieht.

Ich hoffe ich konnte deine Frage beantworten.
 
AW: Optimierung beim relationalen Modell

Hallo acky!,

dann ist ja alles klar. Du hast eindeutige Zuordnungen und Damit funktioniert auch:

Fluege: {[FlugNr, Datum, FlzgID--> Flugzeuge, GesID--> Fluggesellschaften, Abflug_Code--> Flughaefen , Abflug_Zeit--> starten_in , Anflug_Code--> Flughaefen , Ankunft_Zeit--> landen_in ]}

Die Zeit gehört immer zu einer Kombination aus FlugNr und Datum. Auch wenn es 1000 mal 12:00 gibt gehört jedes 12:00 zu seiner eigenen FlugNr-Datum Kombination und die kann es immer nur einmal geben. Was nicht geht ist das mehrere Zeiten für eine FlugNr Datum Kombination existieren. Das heißt der Flieger Bonn - Berlin kann nur einmal am Tag von Berlin nach Bonn und zurück fliegen.

Gruß Charly
 
Werbung:
Zurück
Oben