ER-Diagramm

Anfang  Zurück  Vor

Letzte Änderung 17.09.2013

 

XDEV 5 bietet Ihnen einen ER-Diagramm Designer (Entity Relationship Model), mit dem Sie das ER-Diagramm für Ihr Projekt anlegen können. Ein ER-Diagramm bildet für gewöhnlich die Beziehungen (Relationen) zwischen Datenbanktabellen ab und dient damit vor allem der Dokumentation und zur besseren Übersich über relationale Datenmodellen. Vor allem für die spätere Wartung und Weiterentwicklung einer Datenbankanwendung kann ein ER-Diagramm sehr hilfreich sein.

 

Im ER-Diagramm Designer von XDEV 5 werden jedoch keine Datenbanktabellen, sondern Virtuelle Tabellen abgebildet. Da es sich bei Virtuellen Tabellen um eine Datenbankabstraktionsschicht handelt, wird in den meisten Fällen für jede Datenbanktabelle eine entsprechende Virtuelle Tabelle vorhanden sein. Dies ist jedoch nicht zwingend erforderlich. Erfolgt beispielswiese auf eine Datenbanktabelle kein Zugriff durch eine XDEV 5 Funktion, wird für diese auch keine Virtuelle Tabelle benötigt. Umgekehrt können in XDEV 5 Virtuelle Tabellen vorhanden sein, für die kein Pendant in der Datenbank existiert, z.B. für Abfrageergebnisse die lediglich angezeigt und anschließend wieder verworfen werden, was insbesondere für das Reporting und Daten-Exporte typisch ist.

 

In XDEV 5 ist das ER-Diagramm weitaus mehr als nur die Visualisierung Ihres Datenmodells. Sämtliche Datenbankfunktionen und Assistenten die Ihnen XDEV 5 zur Verfügung stellt, benötigen Informationen über die Relationen zwischen Ihren Datenbanktabellen und lesen diese aus dem ER-Diagramm aus, u.a. automatisierte Datenbankabfragen über mehrere Tabellen (Auto-Joins), Master-Detail Filter, Formular-Generator, Query- und Tree-Assistent. Damit ist das ER-Diagramm eine elementare Grund-Komponente des gesamten RAD-Konzepts von XDEV 5, die in jedem Projekt vorhanden sein muss, wenn Sie zum einen eine relationale Datenbank einsetzen und zum anderen die RAD-Features von XDEV 5 nutzen wollen.

 

Die Informationen über das in XDEV 5 angelegte ER-Diagramm befinden sich ausschließlich auf dem Client. Änderungen am ER-Diagramm wirken sich damit ausschließlich auf Ihre Applikation aus, in keiner Weise jedoch auf Ihre Datenbank.

 

Hinweis: Sie benötigen kein ER-Diagramm in XDEV 5 wenn Sie keines der RAD-Features von XDEV 5 benutzen, sondern sämtliche Datenbankzugriffe auf herkömmliche Weise realisieren, u.a. eigene SQLs, Stored Procedures, via JPA o.ä.

 

 

clip0090

 

 

 

Datenbank-Relationen importieren

 

Wenn Sie in Ihrer Datenbank bereits Relationen zwischen Ihren Datenbanktabellen definiert haben, können Sie diese in XDEV 5 importieren. Das ER-Diagramm wird dann von XDEV 5 automatisch erzeugt. Voraussetzung dafür ist, dass für die importierten Relationen die entsprechenden Virtuellen Tabellen bereits im XDEV 5 Projektmanagement vorhanden sind. Falls dies nicht der Fall ist, können Sie auch die betreffenden Tabellendaten importieren, anhand derer XDEV 5 dann die fehlenden Virtuellen Tabellen automatisch generiert. Der Export von Relationen in die Datenbank wird von XDEV 5 nicht unterstützt.

 

 

Hinweis: Alle im ER-Diagramm vorkommenden Virtuellen Tabellen müssen im Projektmanagement vorhanden sein.

 

 

1.Klicken Sie die im Projektmanagement angelegte Datenquelle an, um den Verbindungs-Editor zu öffnen.

clip0271

2.Klicken Sie auf Aktualisieren, um die Verbindung zur Datenbank herzustellen.

clip0272

3.Klicken Sie dann auf Beziehungen importieren.

4.Übernehmen Sie im folgenden Dialog den vorgeschlagenen ER-Diagramm-Namen, wählen Sie bei Ordner einen Ordner im Projektmanagement aus, in dem Sie das ER-Diagramm ablegen möchten, z.B. Datenquellen und klicken Sie auf OK, um die Relationen zu importieren.

clip0273

5.Klicken Sie dann die importierten Relationen im Projektmanagement an, um den ER-Diagramm Designer aufzurufen, der das ER-Diagramm automatisch erzeugt.

6.Klicken Sie abschließend auf Speichern.

 

 

 

ER-Diagramm selber konstruieren

 

1.Wählen Sie im Menü Datei > Neu > ER-Diagramm.

2.Geben Sie im folgenden Dialog bei Name einen Namen für Ihr ER-Diagramm an, z.B. ER_FahrzeugeDB.

clip0153

3.Legen Sie bei Ordner fest, wo das neue ER-Diagramm im Projektmanagement abgelegt werden soll und bestätigen Sie mit OK.

4.Fügen Sie nun alle Virtuellen Tabellen die zum ER-Diagramm gehören sollen per Drag&Drop in das ER-Diagramm ein und verknüpfen Sie die Tabellen korrekt miteinander.

clip0270

5.Legen Sie im jeweils folgenden Dialog die korrekte Kardinalität fest.

clip0011

 

Tipp: Um eine Verknüpfung zu löschen, klicken Sie diese an und drücken Sie die Entf Taste oder wählen Sie im Kontextmenü Löschen.

 

 

Generierter Code

 

package Datenquellen;

 

import xdev.lang.StaticInstanceSupport;

import xdev.vt.Cardinality;

import xdev.vt.EntityRelationship;

import xdev.vt.EntityRelationshipModel;

import xdev.vt.EntityRelationship.Entity;

 

 

public class ER_fahrzeugeDB

extends EntityRelationshipModel implements StaticInstanceSupport 

{   

   private static ER_fahrzeugeDB instance = null;

      

   public static ER_fahrzeugeDB getInstance()

   {

      if(instance == null)

      {

         instance = new ER_fahrzeugeDB();

      }

      return instance;

   }

      

   {

      add(new EntityRelationship(new Entity("VirtuelleTabellen.FahrzeugeExtras","EXTRAS_ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Extras","ID",Cardinality.ONE)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.FahrzeugeExtras","FAHRZEUGE_ID",Cardinality.MANY),new Entity("VirtuelleTabellen.Fahrzeuge","ID",Cardinality.ONE)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Hersteller","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Modelle","HERSTELLER_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Modelle","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","MODELL_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Fahrzeugtyp","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","FAHRZEUGTYP_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Fahrzeugart","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","FAHRZEUGART_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Kraftstoff","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","KRAFTSTOFF_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Getriebe","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","GETRIEBE_ID",Cardinality.MANY)));

      add(new EntityRelationship(new Entity("VirtuelleTabellen.Farbe","ID",Cardinality.ONE),new Entity("VirtuelleTabellen.Fahrzeuge","FARBE_ID",Cardinality.MANY)));

   }   

}