marimo-learn / sql /public /06_concepts.svg
Greg Wilson
feat: overhaul for relaunch
aaef24a
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="621px" height="356px" viewBox="0 0 621 356" content="&lt;mxfile host=&quot;Electron&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.5.2 Chrome/142.0.7444.265 Electron/39.6.1 Safari/537.36&quot; version=&quot;29.5.2&quot;&gt;&#10; &lt;diagram name=&quot;Page-1&quot; id=&quot;ByKeiZXm40MUItRrX5b6&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;786&quot; dy=&quot;602&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;1100&quot; pageHeight=&quot;850&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-29&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;tables&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;70&quot; x=&quot;70&quot; y=&quot;220&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-30&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;can have&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;180&quot; y=&quot;180&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-31&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;primary key&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;95&quot; x=&quot;305&quot; y=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-32&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;foreign key&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;95&quot; x=&quot;305&quot; y=&quot;250&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-33&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-29&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-30&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;170&quot; y=&quot;365&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;220&quot; y=&quot;315&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-34&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-30&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-31&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;170&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;270&quot; y=&quot;110&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-35&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-30&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-32&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;170&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;220&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-37&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;is&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;50&quot; x=&quot;327.5&quot; y=&quot;50&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-38&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-31&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-37&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-39&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;unique&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;70&quot; x=&quot;220&quot; y=&quot;55&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-40&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;not null&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;70&quot; x=&quot;430&quot; y=&quot;55&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-41&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-37&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-39&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;310&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;290&quot; y=&quot;30&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-42&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-37&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-40&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;460&quot; y=&quot;147&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;501&quot; y=&quot;120&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-43&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;refers to&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;312.5&quot; y=&quot;180&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-44&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-32&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-43&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;360&quot; y=&quot;270&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-45&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-43&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-31&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-46&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;used in&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;425&quot; y=&quot;185&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-47&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-31&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-46&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;320&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;270&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-48&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-32&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-46&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;440&quot; y=&quot;220&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;521&quot; y=&quot;274&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-49&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;join&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;70&quot; x=&quot;540&quot; y=&quot;190&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-50&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-46&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-49&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;320&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;270&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-51&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;can be&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;65&quot; y=&quot;270&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-52&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;join tables&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;90&quot; x=&quot;60&quot; y=&quot;340&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-53&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;capture&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;180&quot; y=&quot;365&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-54&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;one-to-many&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;90&quot; x=&quot;450&quot; y=&quot;310&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-56&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;many-to-many&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;112.5&quot; x=&quot;296.25&quot; y=&quot;370&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-57&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-29&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-51&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;200&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;150&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-58&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-51&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-52&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;180&quot; y=&quot;290&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;120&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-59&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-52&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-53&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;180&quot; y=&quot;430&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;180&quot; y=&quot;465&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-61&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-53&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-56&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;200&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;150&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-62&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;express&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;312.5&quot; y=&quot;305&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-63&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-62&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-54&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;200&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;150&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-64&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-32&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-62&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;450&quot; y=&quot;366&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;508&quot; y=&quot;360&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-65&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-62&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-56&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;410&quot; y=&quot;330&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;410&quot; y=&quot;350&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-66&quot; parent=&quot;1&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;can be&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;80&quot; x=&quot;455&quot; y=&quot;365&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-67&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-66&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-54&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;280&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;230&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-68&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-66&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-56&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;280&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;230&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-69&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=14;&quot; value=&quot;relationship&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;90&quot; x=&quot;590&quot; y=&quot;370&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;muvEFCMYNb4cUMf2mB6c-70&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;muvEFCMYNb4cUMf2mB6c-69&quot; style=&quot;endArrow=classic;html=1;rounded=0;&quot; target=&quot;muvEFCMYNb4cUMf2mB6c-66&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;370&quot; y=&quot;280&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;420&quot; y=&quot;230&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="muvEFCMYNb4cUMf2mB6c-29"><g transform="translate(0.5,0.5)"><rect x="10" y="170" width="70" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 185px; margin-left: 11px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">tables</div></div></div></foreignObject><text x="45" y="189" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">tables</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-30"><g transform="translate(0.5,0.5)"><ellipse cx="160" cy="150" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 150px; margin-left: 121px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">can have</div></div></div></foreignObject><text x="160" y="154" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">can have</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-31"><g transform="translate(0.5,0.5)"><rect x="245" y="70" width="95" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 93px; height: 1px; padding-top: 85px; margin-left: 246px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><i><b>primary key</b></i></div></div></div></foreignObject><text x="293" y="89" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">primary key</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-32"><g transform="translate(0.5,0.5)"><rect x="245" y="200" width="95" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 93px; height: 1px; padding-top: 215px; margin-left: 246px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><i><b>foreign key</b></i></div></div></div></foreignObject><text x="293" y="219" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">foreign key</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-33"><g transform="translate(0.5,0.5)"><path d="M 80 174.35 L 119.74 162.25" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 124.76 160.72 L 119.08 166.11 L 119.74 162.25 L 117.05 159.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-34"><g transform="translate(0.5,0.5)"><path d="M 181.89 133.26 L 239.94 88.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 244.11 85.68 L 240.68 92.71 L 239.94 88.87 L 236.43 87.15 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-35"><g transform="translate(0.5,0.5)"><path d="M 181.89 166.74 L 239.94 211.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 244.11 214.32 L 236.43 212.85 L 239.94 211.13 L 240.68 207.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-37"><g transform="translate(0.5,0.5)"><ellipse cx="292.5" cy="20" rx="25" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 20px; margin-left: 269px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">is</div></div></div></foreignObject><text x="293" y="24" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">is</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-38"><g transform="translate(0.5,0.5)"><path d="M 292.5 70 L 292.5 46.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 292.5 41.12 L 296 48.12 L 292.5 46.37 L 289 48.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-39"><g transform="translate(0.5,0.5)"><rect x="160" y="5" width="70" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 20px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">unique</div></div></div></foreignObject><text x="195" y="24" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">unique</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-40"><g transform="translate(0.5,0.5)"><rect x="370" y="5" width="70" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 20px; margin-left: 371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">not null</div></div></div></foreignObject><text x="405" y="24" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">not null</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-41"><g transform="translate(0.5,0.5)"><path d="M 267.5 20 L 236.37 20" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 231.12 20 L 238.12 16.5 L 236.37 20 L 238.12 23.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-42"><g transform="translate(0.5,0.5)"><path d="M 317.5 20 L 363.63 20" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 368.88 20 L 361.88 23.5 L 363.63 20 L 361.88 16.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-43"><g transform="translate(0.5,0.5)"><ellipse cx="292.5" cy="150" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 150px; margin-left: 254px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">refers to</div></div></div></foreignObject><text x="293" y="154" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">refers to</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-44"><g transform="translate(0.5,0.5)"><path d="M 292.5 200 L 292.5 176.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 292.5 171.12 L 296 178.12 L 292.5 176.37 L 289 178.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-45"><g transform="translate(0.5,0.5)"><path d="M 292.5 130 L 292.5 106.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 292.5 101.12 L 296 108.12 L 292.5 106.37 L 289 108.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-46"><g transform="translate(0.5,0.5)"><ellipse cx="405" cy="155" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 155px; margin-left: 366px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">used in</div></div></div></foreignObject><text x="405" y="159" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">used in</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-47"><g transform="translate(0.5,0.5)"><path d="M 316.64 100 L 374.6 136.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 379.06 138.79 L 371.27 138.07 L 374.6 136.02 L 374.96 132.13 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-48"><g transform="translate(0.5,0.5)"><path d="M 320.67 200 L 372.09 172.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 376.72 170.15 L 372.19 176.53 L 372.09 172.61 L 368.9 170.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-49"><g transform="translate(0.5,0.5)"><rect x="480" y="140" width="70" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 155px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">join</div></div></div></foreignObject><text x="515" y="159" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">join</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-50"><g transform="translate(0.5,0.5)"><path d="M 445 155 L 473.63 155" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 478.88 155 L 471.88 158.5 L 473.63 155 L 471.88 151.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-51"><g transform="translate(0.5,0.5)"><ellipse cx="45" cy="240" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 240px; margin-left: 6px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">can be</div></div></div></foreignObject><text x="45" y="244" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">can be</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-52"><g transform="translate(0.5,0.5)"><rect x="0" y="290" width="90" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 305px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">join tables</div></div></div></foreignObject><text x="45" y="309" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">join tables</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-53"><g transform="translate(0.5,0.5)"><ellipse cx="160" cy="335" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 335px; margin-left: 121px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">capture</div></div></div></foreignObject><text x="160" y="339" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">capture</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-54"><g transform="translate(0.5,0.5)"><rect x="390" y="260" width="90" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 275px; margin-left: 391px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">one-to-many</div></div></div></foreignObject><text x="435" y="279" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">one-to-many</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-56"><g transform="translate(0.5,0.5)"><rect x="236.25" y="320" width="112.5" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 111px; height: 1px; padding-top: 335px; margin-left: 237px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">many-to-many</div></div></div></foreignObject><text x="293" y="339" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">many-to-many</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-57"><g transform="translate(0.5,0.5)"><path d="M 45 200 L 45 213.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 45 218.88 L 41.5 211.88 L 45 213.63 L 48.5 211.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-58"><g transform="translate(0.5,0.5)"><path d="M 45 260 L 45 283.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 45 288.88 L 41.5 281.88 L 45 283.63 L 48.5 281.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-59"><g transform="translate(0.5,0.5)"><path d="M 90 316.74 L 118.37 324.14" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 123.45 325.47 L 115.8 327.09 L 118.37 324.14 L 117.56 320.31 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-61"><g transform="translate(0.5,0.5)"><path d="M 200 335 L 229.88 335" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 235.13 335 L 228.13 338.5 L 229.88 335 L 228.13 331.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-62"><g transform="translate(0.5,0.5)"><ellipse cx="292.5" cy="275" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 275px; margin-left: 254px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">express</div></div></div></foreignObject><text x="293" y="279" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">express</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-63"><g transform="translate(0.5,0.5)"><path d="M 332.5 275 L 383.63 275" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 388.88 275 L 381.88 278.5 L 383.63 275 L 381.88 271.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-64"><g transform="translate(0.5,0.5)"><path d="M 292.5 230 L 292.5 248.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 292.5 253.88 L 289 246.88 L 292.5 248.63 L 296 246.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-65"><g transform="translate(0.5,0.5)"><path d="M 292.5 295 L 292.5 313.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 292.5 318.88 L 289 311.88 L 292.5 313.63 L 296 311.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-66"><g transform="translate(0.5,0.5)"><ellipse cx="435" cy="335" rx="40" ry="20" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 335px; margin-left: 396px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">can be</div></div></div></foreignObject><text x="435" y="339" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">can be</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-67"><g transform="translate(0.5,0.5)"><path d="M 435 315 L 435 296.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 435 291.12 L 438.5 298.12 L 435 296.37 L 431.5 298.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-68"><g transform="translate(0.5,0.5)"><path d="M 395 335 L 355.12 335" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 349.87 335 L 356.87 331.5 L 355.12 335 L 356.87 338.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-69"><g transform="translate(0.5,0.5)"><rect x="530" y="320" width="90" height="30" fill="none" stroke="#000000" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 335px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">relationship</div></div></div></foreignObject><text x="575" y="339" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="14px" text-anchor="middle">relationship</text></switch></g></g></g><g data-cell-id="muvEFCMYNb4cUMf2mB6c-70"><g transform="translate(0.5,0.5)"><path d="M 530 335 L 481.37 335" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 476.12 335 L 483.12 331.5 L 481.37 335 L 483.12 338.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>