Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Entity Relationship Diagramme

11 views
Skip to first unread message

Paul Ebermann

unread,
Nov 10, 2002, 2:31:30 PM11/10/02
to
Hallo Leute,

ich besuche jetzt die Datenbanken-Vorlesung und
muss da für meine Hausaufgaben
Entity-Relationship-Diagramme [1] aufmalen.

Ich würde das gerne (wie den Rest meiner
Hausaufgaben) in LaTeX erledigen können.

Ich habe gerade mit Google gesucht - da waren
es neben einigen Programmen, die nach LaTeX
exportieren können, nur zwei Beispiele mit
dem Package pstricks zu finden.
Da das ziemlich undurchsichtig aussah (und ich
mich dort also erst einarbeiten müsste), wollte
ich einmal fragen, ob es noch andere Alternativen
gibt - oder benutzen die Informatiker alle kein
LaTeX? (Unser Prof benutzt MS Powerpoint ...)


Vielen Dank
Paul

[1] Im ER-Modell werden Objekte der realen
Welt (Entitäten) mit ihren Eigenschaften
(Attributen) und Beziehungen (Relationships)
untereinander modelliert - grafisch, die
Entitäten in Rechtecken, die Attribute in
Ellipsen, die Beziehungen in Rhomben, und
alles mit Linien (verschiedener Art) verbunden.

Ralf Hildebrandt

unread,
Nov 10, 2002, 4:05:44 PM11/10/02
to
Hi Paul!


> ich besuche jetzt die Datenbanken-Vorlesung und
> muss da für meine Hausaufgaben
> Entity-Relationship-Diagramme [1] aufmalen.

Wenn ich dich richtig verstehen - Wie wäre es mit xfig?
Ein wenig Overkill: Microsoft Visio. Allerdings ist dort der eps-Export
nicht ganz perfekt.

Ralf

Paul Ebermann

unread,
Nov 10, 2002, 5:27:55 PM11/10/02
to
"Ralf Hildebrandt" skribis:

> Hi Paul!
>
> > ich besuche jetzt die Datenbanken-Vorlesung und
> > muss da für meine Hausaufgaben
> > Entity-Relationship-Diagramme [1] aufmalen.
>
> Wenn ich dich richtig verstehen - Wie wäre es mit xfig?

Kannte ich noch nicht, danke.
(Die Webseite hat erst einmal meinen
Browser (Opera) zum Absturz gebracht ...)

Eigentlich wollte ich die Diagramme per
LaTeX-Code generieren, nicht mit einem
Grafikprogramm.

Und hier zu Hause habe ich nur Windows,
also müsste ich mir einen X-Server installieren
(oder gar ganz Linux) oder das ganze immer
in der Uni machen (da ist es, wie ich gerade
festgestellt habe, schon installiert).

Ich werde mir morgen das Programm mal
ansehen ...

> Ein wenig Overkill: Microsoft Visio. Allerdings ist dort
> der eps-Export nicht ganz perfekt.

Ja - klingt nicht ganz passend (und ist
zu teuer ...)

Hier ein paar Beispiele, wie die Diagramme
aussehen könnten:
http://www.dbis.informatik.hu-berlin.de/lehre/WS0203/DBSI/Folien/folien-1.pdf (93 KB)

Paul

Joachim Schlosser

unread,
Nov 10, 2002, 6:49:18 PM11/10/02
to
Hallo Paul

> Hier ein paar Beispiele, wie die Diagramme
> aussehen könnten:
>
http://www.dbis.informatik.hu-berlin.de/lehre/WS0203/DBSI/Folien/folien-1.pd
f (93 KB)

Na, das ist ja eigentlich der klassische Anwendungsfall für MetaPost oder
MetaObj. Ist beides inklusive Doku bei einer ordentlichen TeX-Distri dabei.
Gute Einführungen gibts auch dazu. Am Anfang etwas ungewohnt, aber nach
kurzer Zeit wirst du die Exaktheit und Reproduzierbarkeit der Bildchen zu
schätzen wissen.

Ciao
Joachim


Herbert Voss

unread,
Nov 11, 2002, 12:45:28 AM11/11/02
to
Paul Ebermann schrieb:

> Hier ein paar Beispiele, wie die Diagramme
> aussehen könnten:
> http://www.dbis.informatik.hu-berlin.de/lehre/WS0203/DBSI/Folien/folien-1.pdf (93 KB)

mit pstricks bzw. pst-node schnell erledigt

Herbert

Uwe Ziegenhagen

unread,
Nov 11, 2002, 2:36:31 PM11/11/02
to
Paul Ebermann schrieb:

Also ich würde auch pstricks empfehlen, im Graphics Companion ist eine
tolle Einführung.

Uwe

Christoph Stark

unread,
Nov 11, 2002, 5:31:32 AM11/11/02
to
Hallo!

"Paul Ebermann" <Paul-E...@gmx.de> wrote in
news:aqmq1r.3...@epaul.my-fqdn.de:

>> Wenn ich dich richtig verstehen - Wie wäre es mit xfig?

> Und hier zu Hause habe ich nur Windows,


> also müsste ich mir einen X-Server installieren
> (oder gar ganz Linux) oder das ganze immer
> in der Uni machen (da ist es, wie ich gerade
> festgestellt habe, schon installiert).

Gibt auch eine Java-Portierung von xfig. Such mal nach "jfig".
Vorausgesetzt, daß Du eine JRE installiert hast, klappt das relativ
problemlos...

Schöne Grüße
Christoph

Paul Ebermann

unread,
Nov 16, 2002, 11:46:38 AM11/16/02
to
"Herbert Voss" skribis:

Danke,
ich versuche das jetzt.

Danke auch für die anderen Vorschläge
(MetaPost/MetaObj bzw. xfig/jfig)!

Entities (Rechtecke) und Attribute (Ellipsen)
bekomme ich gut hin, die Linien dazwischen auch:

---
%% Test der PSTricks-Features

% article mit einigen Zusatzmakros, hier nur titelundco verwendet
\documentclass{aufgaben}

\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{subfigure}

\newcommand{\rectnode}[1]{\rnode{#1}{\psframebox[framesep=1em]{#1}}}

\begin{document}


\titelundco{Das ist ein Titel}{1}

\section{Test}

Hallo Leute, \rnode{A}{hier} nur ein \ovalnode{B}{Test.}
\nccurve[angle=-90,offset=3pt]{|*->}{A}{B}

\begin{figure}[!htbp]
\begin{pspicture}(0,0)(5,3)
\rput(1,0.5){\rectnode{Buch}}
\rput(1,2.5){\ovalnode{isbn}{\underline{ISBN}}}
\rput(3,2){\ovalnode{snr}{Seiten}}
\rput(3.5,0.5){\ovalnode{tit}{Titel}}
\ncline{buch}{isbn}
\ncline{buch}{snr}
\ncline{buch}{tit}
\end{pspicture}
\caption{Aufgabe 1.1 (a)}
\end{figure}

\end{document}
---

Nur für die Beziehungen (Rhomben) habe ich noch
nichts passendes gefunden.

Kennt da jemand etwas passendes, oder muss ich
mir das selbst zusammenbasteln?

Paul

Herbert Voss

unread,
Nov 16, 2002, 1:13:47 PM11/16/02
to
Paul Ebermann schrieb:

> Nur für die Beziehungen (Rhomben) habe ich noch
> nichts passendes gefunden.
>
> Kennt da jemand etwas passendes, oder muss ich
> mir das selbst zusammenbasteln?

irgendwo habe ich es mal gesehen, aber vergessen wo.
Such mal in der pstricks Mailingliste (www.tug.org)
Hier eine Möglichkeit:

[...]
\newlength{\rWidth}
\newlength{\rHeight}
\newcommand{\raute}[2]{%
\settowidth{\rWidth}{#1}
\settoheight{\rHeight}{#1}
\begin{pspicture}(-1.1\rWidth,-1.3\rHeight)%
(1.1\rWidth,1.3\rHeight)
\rput(0,0){\ovalnode[linecolor=white]{#2}{#1}}
\psline(-1.1\rWidth,0)(0,1.1\rHeight)%
(\rWidth,0)(0,-1.1\rHeight)%
(-1.1\rWidth,0)
\end{pspicture}
}

[...]

\rput(5,2){\Large\raute{Test}{A}}
\ncline{Buch}{A}
[...]

Herbert

Paul Ebermann

unread,
Nov 17, 2002, 7:39:48 AM11/17/02
to
"Herbert Voss" skribis:

> Paul Ebermann schrieb:
> > Nur für die Beziehungen (Rhomben) habe ich noch
> > nichts passendes gefunden.
> >
> > Kennt da jemand etwas passendes, oder muss ich
> > mir das selbst zusammenbasteln?
>
> irgendwo habe ich es mal gesehen, aber vergessen wo.
> Such mal in der pstricks Mailingliste (www.tug.org)

Habe ich gemacht und nichts gefunden (bestimmt
das falsche Suchwort).

> Hier eine Möglichkeit:
>
> [...]
> \newlength{\rWidth}
> \newlength{\rHeight}
> \newcommand{\raute}[2]{%
> \settowidth{\rWidth}{#1}
> \settoheight{\rHeight}{#1}
> \begin{pspicture}(-1.1\rWidth,-1.3\rHeight)%
> (1.1\rWidth,1.3\rHeight)
> \rput(0,0){\ovalnode[linecolor=white]{#2}{#1}}
> \psline(-1.1\rWidth,0)(0,1.1\rHeight)%
> (\rWidth,0)(0,-1.1\rHeight)%
> (-1.1\rWidth,0)
> \end{pspicture}
> }
>
> [...]
>
> \rput(5,2){\Large\raute{Test}{A}}
> \ncline{Buch}{A}

Danke, das ist schon ein guter Ansatz.

Ich habe das ein wenig abgeändert und
zu einem ermodel-Package zusammengefasst.
Es fehlt noch Generalisierung/Spezialisierung
(per Dreieck) und Kardinalitäts-/Totalitäts-
einschränkungen, aber das bekomme ich auch
noch hin.
Hier meine Zwischenversion, falls es jemanden
interessiert. (Ja, ich werde auch
noch eine Webseite dafür kreieren, aber ich
habe gerade keine Zeit.)

--- [ermodel.sty] ---
%% Package für ER-Modelle
%% Author: Paul Ebermann

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ermodel}[2002/11/17 v.01 Entity-Relationship-Modelle]

\RequirePackage{pst-node}
\RequirePackage{subfigure}
\RequirePackage{ifthen}

\newenvironment{erdiagram}{\begin{pspicture}}{\end{pspicture}}

%%% Zu Debug-Zwecken: Gitter für die Positionierung der Figuren
\newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt}

%%%
%%% Attribut einer Entity.
%%%
%%% \attribut{Name}{rep}
%%% \attribut[iso]{ISO-Code}{Land}
%%%
%%% Das erste (optionale) Argument darf nur
%%% aus Zahlen und Buchstaben bestehen -
%%% sonst nichts. Falls es weggelassen wird,
%%% gilt dies für das zweite Argument, welches
%%% (immer) die Beschriftung angibt.
%%%
%%% Das dritte Argument gibt die Entity an,
%%% zu der das Attribut gehört.
%%%
\newcommand{\attribut}[3][]
{
\ifthenelse{\equal{#1}{}}
{\attrImpl{#2}{#2}{#3}}
{\attrImpl{#1}{#2}{#3}}
}

%%%
%%% Schlüsselattribut (wird unterstrichen gezeichnet).
%%%
%%% \keyAttribut{Name}{rep}
%%% \keyAttribut[iso]{ISO-Code}{Land}
%%%
%%% Das erste (optionale) Argument darf nur
%%% aus Zahlen und Buchstaben bestehen -
%%% sonst nichts. Falls es weggelassen wird,
%%% gilt dies für das zweite Argument, welches
%%% (immer) die Beschriftung angibt.
%%%
%%% Das dritte Argument gibt die Entity an,
%%% zu der das Attribut gehört.
%%%
\newcommand{\keyAttribut}[3][]
{
\ifthenelse{\equal{#1}{}}
{\attrImpl{#2}{\underline{#2}}{#3}}
{\attrImpl{#1}{\underline{#2}}{#3}}
}

%%%
%%% Malt ein Rechteck für eine Entity
%%% mit Namen #1
%%%
\newcommand{\entity}[2][]{
\ifthenelse{\equal{#1}{}}
{\sEntity{#2}{#2}}{\sEntity{#1}{#2}}
}

\newcommand{\relationship}[2][]
{
\ifthenelse{\equal{#1}{}}
{\relationshipBasis{#2}{#2}}
{\relationshipBasis{#1}{#2}}
}

\newcommand{\verbinde}[2]{\ncline{#1}{#2}}

\newcommand{\relationshipMitEntities}[6][]{
\ifthenelse{\equal{#1}{}}
{\relationshipImpl{#2}{#2}{#3}{#4}{#5}{#6}}
{\relationshipImpl{#1}{#2}{#3}{#4}{#5}{#6}}
}


%%%%%%%%%%%%%%%% Implementation %%%%%%%%%%%%%%

\newcommand{\relationshipImpl}[6]
{
\relationshipBasis{#1}{#2}
\ifthenelse{\equal{#3}{}}{}{\ncline{#1nord}{#3}}
\ifthenelse{\equal{#4}{}}{}{\ncline{#1ost}{#4}}
\ifthenelse{\equal{#5}{}}{}{\ncline{#1west}{#5}}
\ifthenelse{\equal{#6}{}}{}{\ncline{#1sued}{#6}}
}

%%%
%%% Malt einen Rhombus für eine Beziehung
%%% mit Text #2 und legt 4 Anknüpfpunkte
%%% an: #1nord, #1sued #1ost und #1west.
%%%
\newcommand{\relationshipBasis}[2]
{
\settowidth{\rWidth}{#2}
\settoheight{\rHeight}{#2}
\begin{pspicture}(-1.1\rWidth,-1.3\rHeight)(1.1\rWidth,1.3\rHeight)

\rput(0,0) {#2}
\pnode(-0.8\rWidth,0){#1ost}
\pnode(0,2.0\rHeight){#1nord}
\pnode(0.8\rWidth,0){#1west}
\pnode(0,-2.0\rHeight){#1sued}
\ncline{-}{#1ost}{#1nord}
\ncline{-}{#1ost}{#1sued}
\ncline{-}{#1west}{#1nord}
\ncline{-}{#1west}{#1sued}
\end{pspicture}
}

%%%
%%% Entity mit Node-Name und Text.
%%%
\newcommand{\sEntity}[2]{\rnode{#1}{\psframebox[framesep=1em]{#2}}}
\newcommand{\attrImpl}[3]{\ovalnode{#3qp#1}{#2}\ncline{#3qp#1}{#3}}

%%% wird von \relationship verwendet.
\newlength{\rWidth} \newlength{\rHeight}

\endinput
---[ermodel-test.tex]---

%% Test des ermodel-Packages

\nonstopmode

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{ermodel}

\begin{document}

\title{Test der Befehle von \textss{ermodel}}

\section{Test}

Das ist ein Beispiel-ER-Modell.

\begin{erdiagramm}(0,0)(10,5)%\showgrid
\rput(1.5,0.5){\entity{Land}}
\rput(3,3.5){\entity[rep]{Repräsentant}}
\rput(1,2.0){\relationship[geh]{gehört zu}}
\rput(4,0.5){\keyAttribut[iso]{ISO-Code}{Land}}
\rput(0,3.5){\keyAttribut{Name}{rep}}
\verbinde{Land}{gehsued}
\verbinde{rep}{gehnord}
\end{erdiagramm}

\end{document}
---[Ende]---

Ich arbeite noch weiter ...

Vielen Dank und viele Grüße
Paul

Paul Ebermann

unread,
Nov 17, 2002, 8:14:57 PM11/17/02
to
Mi skribis:

> Ich habe das ein wenig abgeändert und
> zu einem ermodel-Package zusammengefasst.
> Es fehlt noch Generalisierung/Spezialisierung
> (per Dreieck) und Kardinalitäts-/Totalitäts-
> einschränkungen, aber das bekomme ich auch
> noch hin.
> Hier meine Zwischenversion, falls es jemanden
> interessiert. (Ja, ich werde auch
> noch eine Webseite dafür kreieren, aber ich
> habe gerade keine Zeit.)

Hier jetzt die Seite mit Version 1.0:

http://purl.org/NET/epaul/mathe/packages/

Paul

Wolfgang May

unread,
Nov 19, 2002, 3:01:54 PM11/19/02
to
Herbert Voss (Herber...@alumni.TU-Berlin.DE) wrote:
> Paul Ebermann schrieb:
> > Nur für die Beziehungen (Rhomben) habe ich noch
> > nichts passendes gefunden.
> >
> > Kennt da jemand etwas passendes, oder muss ich
> > mir das selbst zusammenbasteln?

> irgendwo habe ich es mal gesehen, aber vergessen wo.

Ich habe mal sowas geschrieben:
http://www.informatik.uni-freiburg.de/~may/dbicons/

Wolfgang

Paul Ebermann

unread,
Nov 19, 2002, 5:22:15 PM11/19/02
to
"Wolfgang May" skribis:

> [LaTeX package für ER-Modelle]


>
> Ich habe mal sowas geschrieben:
> http://www.informatik.uni-freiburg.de/~may/dbicons/

Danke für den Tipp.
Sieht ja richtig teuer aus.

Der dunkle Hintergrund gefällt mir
nicht so sehr. Und von "Code Documentation"
zu reden ist etwas übertrieben :-)

Den Trick mit doubleline werde ich
übernehmen.

Paul

Hirsch Andreas

unread,
Nov 20, 2002, 4:15:44 AM11/20/02
to
Hi!

Paul Ebermann schrieb, am 19.11.2002 23:22:
> "Wolfgang May" skribis:
>>[LaTeX package für ER-Modelle]
>>Ich habe mal sowas geschrieben:
>>http://www.informatik.uni-freiburg.de/~may/dbicons/

> Danke für den Tipp.
> Sieht ja richtig teuer aus.

Ich habe versucht, den Demotext mondial-er.tex zu "ubersetzen. Das
l"auft zwar durch, im logfile steht jedoch ganz am Schluss der Fehler
(\end occurred when \ifx on line 189 was incomplete)

Beim Versuch, das ganze im GhostView anzuschauen bricht ghostscript mit
einer Latte an Fehlermeldungen ab.

> Den Trick mit doubleline werde ich
> übernehmen.

Ich bin dankbar, wenn du mich mit deinen Erfolgen auf dem laufenden h"alst.

Andreas

--
Andreas Hirsch
Klarweinstr. 5a, 82467 Garmisch-Partenkirchen, Germany
Tel: +49 8821 947477
Public Key: http://members.gaponline.de/afj/keys/afj.asc

Heiko Oberdiek

unread,
Nov 20, 2002, 6:54:48 AM11/20/02
to
Hirsch Andreas <a...@gaponline.de> wrote:

> Paul Ebermann schrieb, am 19.11.2002 23:22:
> > "Wolfgang May" skribis:
> >>[LaTeX package für ER-Modelle]
> >>Ich habe mal sowas geschrieben:
> >>http://www.informatik.uni-freiburg.de/~may/dbicons/
>
> > Danke für den Tipp.
> > Sieht ja richtig teuer aus.
>
> Ich habe versucht, den Demotext mondial-er.tex zu "ubersetzen. Das
> l"auft zwar durch, im logfile steht jedoch ganz am Schluss der Fehler
> (\end occurred when \ifx on line 189 was incomplete)

Die Meldung ist hier harmlos und wird verursacht durch:
\ifx\TeXMaster\undefined
\end{document}
\fi
D.h. es wird \end{document} ausgefuehrt und das
\fi nicht mehr erreicht. Beheben laesst sich das etwa
folgendermassen:
\ifx\TeXMaster\undefined
\csname fi\endcsname
\end{document}
\fi

> Beim Versuch, das ganze im GhostView anzuschauen bricht ghostscript mit
> einer Latte an Fehlermeldungen ab.

Ich kam damit zurecht und habe auch eine PDF-Version erstellen
koennen:
http://www.informatik.uni-freiburg.de/~dbis/lehre/db-sql-ws0203/mondial-ER-online.pdf

Allerdings stand mir eine neuere Version zur Verfuegung. Die
mondial-ER.tex vom obigen dbicons-Verzeichnis hat ein Problem
mit dem Underscore, der als expandierter TeX-Code in die
PostScript-Datei gelangt ist.

Ersetzte die folgende Zeile
\relationshipbetween{Organization}{City}{has\_hq\_in}
durch
\relationshipbetween{Organization}{City}{seated}

Viele Gruesse
Heiko <ober...@uni-freiburg.de>

Wolfgang May

unread,
Nov 20, 2002, 3:47:55 PM11/20/02
to
Paul Ebermann (Paul-E...@gmx.de) wrote:
> "Wolfgang May" skribis:

> > [LaTeX package für ER-Modelle]
> >
> > Ich habe mal sowas geschrieben:
> > http://www.informatik.uni-freiburg.de/~may/dbicons/

> Danke für den Tipp.
> Sieht ja richtig teuer aus.

> Der dunkle Hintergrund gefällt mir nicht so sehr.

Die Farben kann man beliebig setzen.

> Und von "Code Documentation"
> zu reden ist etwas übertrieben :-)

Wie immer ... zuwenig Zeit, zuviel zu tun.
Wegen dem ist es ja auch noch nicht auf CTAN.

Wolfgang

Wolfgang May

unread,
Nov 21, 2002, 2:21:57 PM11/21/02
to

Hirsch Andreas (a...@gaponline.de) wrote:

> >>[LaTeX package für ER-Modelle]
> >>Ich habe mal sowas geschrieben:
> >>http://www.informatik.uni-freiburg.de/~may/dbicons/

> Ich habe versucht, den Demotext mondial-er.tex zu "ubersetzen. Das

> l"auft zwar durch, im logfile steht jedoch ganz am Schluss der Fehler
> (\end occurred when \ifx on line 189 was incomplete)

unproblematisch (siehe Heiko's Mail).

> Beim Versuch, das ganze im GhostView anzuschauen bricht ghostscript mit
> einer Latte an Fehlermeldungen ab.

THX. Das war passiert, weil ich im gesamten Mondial-Projekt etwas
ersetzt (seated -> has_hq_in) habe, ohne darauf zu achten, dass am
Ende ein Programm mit dem underscore nicht zurechtkommt (dbicons
konnte das prinzipiell, aber ich haette ein zusaetzliches Argument
angeben muessen, um die Knoten-id getrennt vom Text zu halten).

> Ich bin dankbar, wenn du mich mit deinen Erfolgen auf dem laufenden h"alst.

Nach Ruecksprache mit Heiko habe ich dbicons passend erweitert, dass
es underscores in Namen auch ohne optionales Argument verarbeiten
kann.
Die neue Version ist auf
http://www.informatik.uni-freiburg.de/~may/dbicons/
zu finden.

Wolfgang

Hirsch Andreas

unread,
Nov 21, 2002, 4:06:22 PM11/21/02
to
Hi Wolfgang,
hi Heiko,

Wolfgang May schrieb, am 21.11.2002 20:21:

> Nach Ruecksprache mit Heiko habe ich dbicons passend erweitert, dass
> es underscores in Namen auch ohne optionales Argument verarbeiten
> kann.
> Die neue Version ist auf
> http://www.informatik.uni-freiburg.de/~may/dbicons/
> zu finden.

l"auft! :)

Danke!

0 new messages