\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{er,positioning}
%https://texample.net/tikz/examples/er-diagram/
%https://tex.stackexchange.com/questions/27222/draw-an-arc-between-2-nodes-and-label-it-in-tikz
%https://stuff.mit.edu/afs/athena/contrib/tex-contrib/beamer/pgf-1.01/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse12.html

\begin{document}
\begin{tikzpicture}[auto,node distance=1cm]
	\node[entity, fill=blue!10!white] (studiengang) {studyProgramme} [grow=up]
		child {node[attribute] {id}}
		child {node[attribute] {title}}
		child[grow=left, level distance=4cm] {node[attribute] {hasEducationLevel}};
\node[relationship] (studyProgramme-stupo) [below = of studiengang] {specializationOf};
	\node[entity, fill=blue!10!white] (stupo) [below = of studyProgramme-stupo]	{stupo} [grow=left]
		child {node[attribute] {id}}
		child {node[attribute] {title}};
\node[relationship] (stupo-studySection) [below = of stupo] {specializationOf};
	\node[entity, fill=blue!10!white] (studiengangsbereich) [below = of stupo-studySection] {studySection} [grow=left]
		child {node[attribute] {id}}
		child {node[attribute] {title}};
\node[relationship] (studySection-studySection) [right = of studiengangsbereich] {specializationOf};
\node[relationship] (studySection-modulversion) [below = of studiengangsbereich] {hasPart};
	\node[entity, fill=blue!10!white] (modulversion) [below = of studySection-modulversion] {modulSpecialization} [grow'=right, level distance=12cm, sibling distance=1cm, edge from parent path={(\tikzparentnode.east) .. controls +(5,0) and +(-2,0) .. (\tikzchildnode.west)}]
		child[anchor=west] {node[attribute] {identifier}}
		child[anchor=west] {node[attribute] {title}}
		child[anchor=west] {node[attribute] {type = "course"}}
		child[anchor=west] {node[attribute] {definition}}
		child[anchor=west] {node[attribute] {homepage}}
		child[anchor=west] {node[attribute] {supplementaryDocument (= PIM-URL)}}
		child[anchor=west] {node[attribute] {ectsCreditPoints}}
		child[anchor=west] {node[attribute] {volumeOfLearning (= Stunden)}}
		child[anchor=west] {node[attribute] {language}}
		child[anchor=west] {node[attribute] {mode (= “blended”)}}
		child[anchor=west] {node[attribute] {duration (= \#Semester * 6Monate)}}
		child[anchor=west] {node[attribute] {targetGroup}}
		child[anchor=west] {node[attribute] {entryRequirementsNote}}
		child[anchor=west] {node[attribute] {additionalNote (Skript)}}
		child[anchor=west] {node[attribute] {additionalNote (Anmeldeformalitäten)}}
		child[anchor=west] {node[attribute] {additionalNote (Gültigkeitszeitraum)}};
	\node[entity, fill=blue!10!white] (modul) [left = 13cm of modulversion] {modul} [grow=left, level distance=10cm, sibling distance=1cm, edge from parent path={(\tikzparentnode.west) .. controls +(-5,0) and +(2,0) .. (\tikzchildnode.east)}]
		child[anchor=east] {node[attribute] {identifier}}
		child[anchor=east] {node[attribute] {altLabel (= Kennungsstring)}}
		child[anchor=east] {node[attribute] {title}}
		child[anchor=east] {node[attribute] {type = "programModule"}}
		child[anchor=east] {node[attribute] {definition}}
		child[anchor=east] {node[attribute] {homepage}}
		child[anchor=east] {node[attribute] {supplementaryDocument (= PIM-URL)}}
		child[anchor=east] {node[attribute] {ectsCreditPoints}}
		child[anchor=east] {node[attribute] {volumeOfLearning (= Stunden)}}
		child[anchor=east] {node[attribute] {language}}
		child[anchor=east] {node[attribute] {mode (= “blended”)}}
		child[anchor=east] {node[attribute] {duration (= \#Semester * 6Monate)}}
		child[anchor=east] {node[attribute] {targetGroup}}
		child[anchor=east] {node[attribute] {entryRequirementsNote}}
		child[anchor=east] {node[attribute] {additionalNote (Skript)}}
		child[anchor=east] {node[attribute] {additionalNote (Anmeldeformalitäten)}}
		child[anchor=east] {node[attribute] {additionalNote (Gültigkeitszeitraum)}};
\node[relationship] (modul-modul) [below = of modul] {specializationOf};
	\node[entity] (lernergebnis) [above right = 5cm of modul] {learningOutcome} [grow'=up, sibling distance=6cm]
		child {node[attribute] {id}}
		child {node[attribute] {prefLabel (wie in modulSpecialization)}}
		child[grow=left, level distance=6cm] {node[attribute] {description (= Lernergebnisse-String)}};
\node[relationship] (modulversion-modul) [below = 2.5cm of lernergebnis] {specializationOf};
	\node[entity] (pruefung) [below = 5cm of modulversion] {assessmentSpecification} [grow=left, level distance=5cm, sibling distance=1cm]
		child {node[attribute] {id}}
		child {node[attribute] {title}}
		child {node[attribute] {description}}
		child {node[attribute] {language}}
		child[grow=down] {node[attribute] {type (= "continuousEvaluation" for sub-assessments)}};
	\node[entity] (bewertung) [right = 3cm of pruefung] {scoringScheme} [grow'=right, level distance = 2cm]
		child[grow=right] {node[attribute] {title}}
		child[grow=down, level distance=1cm] {node[attribute] {description}};
\node[relationship] (pruefung-teilpruefung) [below right = 1.5cm of pruefung] {hasPart};
	\node[entity] (teilpruefung) [below right = 1.5cm of pruefung-teilpruefung] {(sub-)assessmentSpecification}
		child[grow=right, level distance=3cm] {node[attribute] {id}}
		child {node[attribute] {title}}
		child {node[attribute] {type}};
\node[relationship] (modulversion-lernveranstaltung) [left = 10cm of pruefung] {hasPart};
	\node[entity, fill=blue!10!white] (lernveranstaltung) [below = 3.5cm of modulversion-lernveranstaltung] {learningEvent} [grow'=right, level distance=5cm, sibling distance=1cm]
		child {node[attribute] {identifier}}
		child {node[attribute] {altLabel (= LvNummer)}}
		child {node[attribute] {title}}
		child {node[attribute] {type (= "class")}};
	\node[entity] (lernaktivitaet) [below = 3cm of lernveranstaltung] {learningActivitySpecification} [grow'=right, level distance=5cm, sibling distance=1cm]
		child {node[attribute] {identifier}}
		child {node[attribute] {title (= der wie eben)}}
		child {node[attribute] {type (= "workShop", "classroom" oder "lab")}};
	\node[entity] (awarding) [left = of modulversion-lernveranstaltung] {awardingOpportunity} [grow=left, level distance=4cm, sibling distance=1cm]
		child {node[attribute] {location}}
		child {node[attribute] {startedAtTime}}
		child {node[attribute] {endedAtTime}};
\node[relationship] (awarding-organization) [below = of awarding] {awardingBody};
	\node[entity] (organization) [below = of awarding-organization] {organization} [grow=left, level distance=5cm, sibling distance=1cm]
		child {node[attribute] {id}}
		child {node[attribute] {prefLabel}}
		child {node[attribute] {type (= "academic institution")}}
		child {node[attribute] {location}}
		child {node[attribute] {registration (dummy)}};
\node[relationship] (organization-organization) [below = of organization] {unitOf};
	% draw relationship lines:
	\draw (studiengang) edge node{1 (or n)} (studyProgramme-stupo);
	\draw (studyProgramme-stupo) edge node{m} (stupo);
	\draw (stupo) edge node{1} (stupo-studySection);
	\draw (stupo-studySection) edge node{n} (studiengangsbereich);
	\draw[bend left] (studiengangsbereich) edge (studySection-studySection);
	\draw[bend left] (studySection-studySection) edge node{n} (studiengangsbereich);
	\draw (studiengangsbereich) edge node{n} (studySection-modulversion);
	\draw (studySection-modulversion) edge node{m} (modulversion);
	\draw (modul) edge node{1} (modulversion-modul);
	\draw (modulversion-modul) edge node{n} (modulversion);
	\draw (modul) edge node{1} (lernergebnis);
	\draw[bend left] (modul) edge (modul-modul);
	\draw[bend left] (modul-modul) edge node{n} (modul);
	\draw (modulversion) edge node{1} (lernergebnis);
	\draw (modulversion) edge node{1} (awarding);
	\draw (modulversion) edge node{1} (pruefung);
	\draw (awarding) edge node{n} (awarding-organization);
	\draw (awarding-organization) edge node{1} (organization);
	\draw[bend left] (organization) edge (organization-organization);
	\draw[bend left] (organization-organization) edge node{n} (organization);
	\draw (modulversion) edge node{1} (modulversion-lernveranstaltung);
	\draw (modulversion-lernveranstaltung) edge node{n} (lernveranstaltung);
	\draw (lernveranstaltung) edge node{1} (lernaktivitaet);
	\draw (pruefung) edge node{gradingScheme} (bewertung);
	\draw (pruefung) edge node{1} (pruefung-teilpruefung);
	\draw (pruefung-teilpruefung) edge node{n} (teilpruefung);
\end{tikzpicture}
\end{document}