\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{datetime}
\usetheme{Madrid}  
\usecolortheme{crane}

% für Verbatim
\usepackage{fancyvrb}

\usepackage{array}

\title{Datenmodellierung}
\author{\href{https://kohnlehome.de}{Franz Kohnle}}
%\institute{\href{https://kohnlehome.de}{kohnlehome.de}}

\begin{document}
\maketitle
%\frame{\tableofcontents[currentsection]}

\section{Datenmodellierung}
\begin{frame} 
    \frametitle{1. Konzeptionelles Datenschema} 
    \begin{block}{Elemente des Datenschemas}
     \begin{itemize}
         \item Entitätstypen (Klassen)
         \item Attribute
         \item Beziehungen (Assoziationen) mit Kardinalitäten
     \end{itemize}                 
    \end{block}  
\end{frame}
  
\begin{frame} 
    \frametitle{1. Konzeptionelles Datenschema} 
    \begin{block}{ERM-Diagramm in Chen-Notation}
        \centering        
        \includegraphics[height=2.5cm]{erm-chen.png}                
    \end{block}  
    \begin{block}{UML-Klassendiagramm}
        \centering
        \includegraphics[height=2cm]{erm-uml.png}               
    \end{block}  
\end{frame}  

\begin{frame} 
    \frametitle{2. Datenbankschema für Relationale Datenbank} 
    \begin{block}{ERM / UML $\rightarrow$ Relationenmodell}
     \begin{itemize}
        \item jeder Entitätstyp 
        \begin{itemize}
           \item Primary Key (zusätzliches Attribut: id)
        \end{itemize}

        \item jedes Attribut 
        \begin{itemize}
           \item zum DBMS passender Datentyp
        \end{itemize}

        \item One-to-One
        \begin{itemize}
            \item Foreign Key (zusätzliches Attribut: tabelle\_id auf einer Seite)
        \end{itemize}

        \item One-to-Many
        \begin{itemize}
            \item Foreign Key (zusätzliches Attribut: tabelle\_id auf Many-Seite)
        \end{itemize}
        \item Many-to-Many           
        \begin{itemize}
            \item zusätzliche Beziehungstabelle
            \item zwei Foreign Keys (tabelle1\_id, tabelle2\_id)
        \end{itemize}
    \end{itemize}                 
    \end{block}  
\end{frame}

\begin{frame} 
    \frametitle{2. Datenbankschema für Relationale Datenbank} 
    \begin{block}{Datenbankschema für SQLite}
        \centering
        \includegraphics[height=3cm]{tabellen-uml.png}               
    \end{block} 
\end{frame}

\begin{frame}[fragile] 
    \frametitle{3. Umsetzung mit SQL} 
    \begin{block}{Tabellen erstellen}
     \begin{verbatim}

 CREATE TABLE schulklasse (
     id	             INTEGER PRIMARY KEY AUTOINCREMENT,
     name            TEXT
 );        
       
 CREATE TABLE schuelerin (
     id	             INTEGER PRIMARY KEY AUTOINCREMENT,
     vorname         TEXT,
     nachname        INTEGER,
     geburtsdatum    TEXT,
     schulklasse_id  INTEGER,
     FOREIGN KEY(schulklasse_id) REFERENCES schulklasse(id)
 );        
     \end{verbatim}                 
    \end{block}  
\end{frame}


\end{document}
     