1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Optimierung beim relationalen Modell

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von acky!, 3 Februar 2011.

  1. acky!

    acky! Neuer Benutzer

    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:
    [​IMG]

    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
     
  2. Charly

    Charly Datenbank-Guru

    AW: Optimierung beim relationalen Modell

    Hallo acky!,

    Und Code aus der Relation Flughafen, oder?

    Ja

    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
     
  3. acky!

    acky! Neuer Benutzer

    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.


    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.
     
  4. Charly

    Charly Datenbank-Guru

    AW: Optimierung beim relationalen Modell

    Hallo acky!,

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

    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
     
  5. acky!

    acky! Neuer Benutzer

    AW: Optimierung beim relationalen Modell

    Danke hast mir echt geholfen ;)
     
Die Seite wird geladen...

Diese Seite empfehlen