Appendix A – Data Model Diagram

digraph G {
fontname="ROBOTO" fontsize="10pt"
node [fontname="ROBOTO" fontsize="8pt"]
edge [fontname="ROBOTO" fontsize="8pt"]
rankdir=LR

graph [pad="0.5", ranksep="0.75", nodesep="0.65"];

subgraph cluster_property { label="Electoral Boundaries"
    graph[style="dashed,rounded"  color="#EA6B66"]

comm_electoral_polygon [shape=plain
label=<<TABLE BGCOLOR="#7EA6E0"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">COMM_ELECTORAL_POLYGON</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >COMM_ELECTORAL_POLYGON_PID: varchar (15)  </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_CREATED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_RETIRED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >COMM_ELECTORAL_PID: varchar (15) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >GEOMETRY: Polygon </TD>
</TR>

</TABLE>>];

comm_electoral [shape=plain
label=<<TABLE BGCOLOR="#FFD966"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">COMM_ELECTORAL</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >COMM_ELECTORAL_PID: varchar (15)    </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_CREATED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_RETIRED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >COMM_ELECTORAL_NAME: varchar (50) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_GAZETTED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_PID: varchar (15) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >REDISTYEAR: number (4) </TD>
</TR>
</TABLE>>];

state_electoral_polygon [shape=plain
label=<<TABLE BGCOLOR="#7EA6E0"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">STATE_ELECTORAL_POLYGON</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ELECTORAL_POLYGON_PID: varchar (15)  </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_CREATED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_RETIRED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ELECTORAL_PID: varchar (15) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >GEOMETRY: Polygon </TD>
</TR>

</TABLE>>];

state_electoral [shape=plain
label=<<TABLE BGCOLOR="#FFD966"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">STATE_ELECTORAL</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ELECTORAL_PID: varchar (15)    </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_CREATED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_RETIRED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ELECTORAL_NAME: varchar (50) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_GAZETTED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >EFFECTIVE_START_DATE: date </TD>
</TR>


<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >EFFECTIVE_END_DATE: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_PID: varchar (15) </TD>
</TR>


<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ELECTORAL_CLASS_CODE: varchar (10) </TD>
</TR>
</TABLE>>];

state_electoral_class_aut [shape=plain
label=<<TABLE BGCOLOR="#FFB570"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">STATE_ELECTORAL_CLASS_AUT</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >CODE: varchar (10)    </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >NAME: varchar (50) </TD>
</TR>

<TR>
<TD BGCOLOR="white" >FK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DESCRIPTION: varchar (200) </TD>
</TR>
</TABLE>>];

comm_electoral_polygon -> comm_electoral [arrowhead=nonetee dir=both arrowtail=crownonetee]
state_electoral_polygon -> state_electoral [arrowhead=nonetee dir=both arrowtail=crownonetee]
state_electoral_class_aut -> state_electoral [arrowhead=crownonetee dir=both arrowtail=nonetee]
{rank = same;comm_electoral; state_electoral;state_electoral_class_aut}

}

  subgraph cluster_state {
    graph[style="dashed,rounded" color ="#7EA6E0" label="State Boundaries" ]

state [shape=plain
label=<<TABLE BGCOLOR="#FFD966"
BORDER="1"
CELLBORDER="0"
style="rounded"
CELLSPACING="0"
CELLPADDING="5">

<TR>
<TD  COLSPAN="2">STATE</TD>
</TR>

<TR>
<TD BGCOLOR="white" >PK</TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_PID: varchar (15) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_CREATED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >DATE_RETIRED: date </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_NAME: varchar (50) </TD>
</TR>

<TR>
<TD BGCOLOR="white" ></TD>
<TD BGCOLOR="white" ALIGN="LEFT" >STATE_ABBREVIATION: varchar (3) </TD>
</TR>

</TABLE>>];

}

comm_electoral -> state [arrowhead=nonetee dir=both arrowtail=crownone]
state_electoral -> state [arrowhead=nonetee dir=both arrowtail=crownone]

subgraph cluster_legend {
    graph[style="" label="Legend", ranksep="0.2", nodesep="0.2"];

legend [shape=plain
        label=<<TABLE
            CELLBORDER="0"
            Border="0">
        <TR>
            <TD BGCOLOR="#7EA6E0" BORDER="1">     </TD>
            <TD>Spatial Attribute Table</TD>
        </TR>

        <TR>
            <TD BGCOLOR="#FFD966" BORDER="1">     </TD>
            <TD>Textual Attribute Table</TD>
        </TR>

         <TR>
            <TD BGCOLOR="#FFB570" BORDER="1">     </TD>
            <TD>Authority Code Table</TD>
        </TR>

        </TABLE>>]


key [shape=plain  label=<<table border="0" cellpadding="1" cellspacing="0" cellborder="0">
      <tr><td port="i1"> One </td> </tr>
      <tr><td port="i2"> Many </td> </tr>
      <tr><td port="i3"> One or Many </td> </tr>
      </table>>]

key2 [shape=plain label=<<TABLE border="0" cellpadding="1" cellspacing="0" CELLBORDER="0">
      <tr><td port="i1"> </td></tr>
      <tr><td port="i2"> </td></tr>
      <tr><td port="i3"> </td></tr>
      </TABLE>>]

key:i1 -> key2:i1 [arrowhead=nonetee]
key:i2 -> key2:i2 [arrowhead=crown]
key:i3 -> key2:i3 [arrowhead=crownonetee]

legend -> key[style = invis]

}

}