<?xml version='1.0' encoding='utf-8'?>
<mxfile host="app.diagrams.net">
  <diagram id="star-schema-design-article" name="Article">
    <mxGraphModel page="1" pageScale="1" pageWidth="1600" pageHeight="1000" background="#F6F6F8" grid="1" gridSize="10">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="2" parent="1" vertex="1" value="DATA DIVE CRAFT  /  DATA MODELING" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=17;fontStyle=1;fontColor=#2B6CEE;">
          <mxGeometry as="geometry" x="64" y="37" width="1450" height="29" />
        </mxCell>
        <mxCell id="3" parent="1" vertex="1" value="Star schema design" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=40;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="64" y="93" width="1472" height="60" />
        </mxCell>
        <mxCell id="4" parent="1" vertex="1" value="One grain. Clear relationships. Reliable measures." style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=22;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="64" y="154" width="1472" height="36" />
        </mxCell>
        <mxCell id="5" parent="1" vertex="1" value="" style="rounded=1;arcSize=28;absoluteArcSize=1;fillColor=#FFFFFF;strokeColor=#DCE4F0;strokeWidth=2;">
          <mxGeometry as="geometry" x="588" y="335" width="425" height="341" />
        </mxCell>
        <mxCell id="6" parent="5" vertex="1" value="" style="rounded=1;arcSize=4;absoluteArcSize=1;fillColor=#2B6CEE;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="1.0" y="12.0" width="5" height="317" />
        </mxCell>
        <mxCell id="7" parent="5" vertex="1" value="F_TransactionLine" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=23;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="20.0" y="17.0" width="385" height="37" />
        </mxCell>
        <mxCell id="8" parent="5" vertex="1" value="" style="rounded=1;arcSize=0;absoluteArcSize=1;fillColor=#E2EAF0;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="14.0" y="58.0" width="397" height="2" />
        </mxCell>
        <mxCell id="9" parent="5" vertex="1" value="PK  Transaction_Line_Key : bigint" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="66.0" width="385" height="30" />
        </mxCell>
        <mxCell id="10" parent="5" vertex="1" value="FK  Date_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="97.0" width="385" height="30" />
        </mxCell>
        <mxCell id="11" parent="5" vertex="1" value="FK  Customer_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="128.0" width="385" height="30" />
        </mxCell>
        <mxCell id="12" parent="5" vertex="1" value="FK  Product_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="159.0" width="385" height="30" />
        </mxCell>
        <mxCell id="13" parent="5" vertex="1" value="FK  Location_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="190.0" width="385" height="30" />
        </mxCell>
        <mxCell id="14" parent="5" vertex="1" value="Quantity : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="221.0" width="385" height="30" />
        </mxCell>
        <mxCell id="15" parent="5" vertex="1" value="Unit_Price : decimal(10,2)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="252.0" width="385" height="30" />
        </mxCell>
        <mxCell id="16" parent="5" vertex="1" value="Discount_Amount : decimal(12,2)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="283.0" width="385" height="30" />
        </mxCell>
        <mxCell id="17" parent="5" vertex="1" value="Net_Revenue : decimal(12,2)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="314.0" width="385" height="30" />
        </mxCell>
        <mxCell id="18" parent="1" vertex="1" value="" style="rounded=1;arcSize=28;absoluteArcSize=1;fillColor=#FFFFFF;strokeColor=#DCE4F0;strokeWidth=2;">
          <mxGeometry as="geometry" x="64" y="265" width="395" height="155" />
        </mxCell>
        <mxCell id="19" parent="18" vertex="1" value="" style="rounded=1;arcSize=4;absoluteArcSize=1;fillColor=#2B6CEE;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="1.0" y="12.0" width="5" height="131" />
        </mxCell>
        <mxCell id="20" parent="18" vertex="1" value="D_Date" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=23;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="20.0" y="17.0" width="355" height="37" />
        </mxCell>
        <mxCell id="21" parent="18" vertex="1" value="" style="rounded=1;arcSize=0;absoluteArcSize=1;fillColor=#E2EAF0;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="14.0" y="58.0" width="367" height="2" />
        </mxCell>
        <mxCell id="22" parent="18" vertex="1" value="PK  Date_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="66.0" width="355" height="30" />
        </mxCell>
        <mxCell id="23" parent="18" vertex="1" value="Full_Date : date" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="97.0" width="355" height="30" />
        </mxCell>
        <mxCell id="24" parent="18" vertex="1" value="Year / Quarter / Month : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="128.0" width="355" height="30" />
        </mxCell>
        <mxCell id="25" parent="1" vertex="1" value="" style="rounded=1;arcSize=28;absoluteArcSize=1;fillColor=#FFFFFF;strokeColor=#DCE4F0;strokeWidth=2;">
          <mxGeometry as="geometry" x="64" y="610" width="395" height="186" />
        </mxCell>
        <mxCell id="26" parent="25" vertex="1" value="" style="rounded=1;arcSize=4;absoluteArcSize=1;fillColor=#2B6CEE;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="1.0" y="12.0" width="5" height="162" />
        </mxCell>
        <mxCell id="27" parent="25" vertex="1" value="D_Customer" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=23;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="20.0" y="17.0" width="355" height="37" />
        </mxCell>
        <mxCell id="28" parent="25" vertex="1" value="" style="rounded=1;arcSize=0;absoluteArcSize=1;fillColor=#E2EAF0;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="14.0" y="58.0" width="367" height="2" />
        </mxCell>
        <mxCell id="29" parent="25" vertex="1" value="PK  Customer_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="66.0" width="355" height="30" />
        </mxCell>
        <mxCell id="30" parent="25" vertex="1" value="BK  Customer_ID : varchar(50)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="97.0" width="355" height="30" />
        </mxCell>
        <mxCell id="31" parent="25" vertex="1" value="Customer_Name : varchar(100)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="128.0" width="355" height="30" />
        </mxCell>
        <mxCell id="32" parent="25" vertex="1" value="Segment / Region : varchar(50)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="159.0" width="355" height="30" />
        </mxCell>
        <mxCell id="33" parent="1" vertex="1" value="" style="rounded=1;arcSize=28;absoluteArcSize=1;fillColor=#FFFFFF;strokeColor=#DCE4F0;strokeWidth=2;">
          <mxGeometry as="geometry" x="1137" y="265" width="399" height="186" />
        </mxCell>
        <mxCell id="34" parent="33" vertex="1" value="" style="rounded=1;arcSize=4;absoluteArcSize=1;fillColor=#2B6CEE;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="1.0" y="12.0" width="5" height="162" />
        </mxCell>
        <mxCell id="35" parent="33" vertex="1" value="D_Product" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=23;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="20.0" y="17.0" width="359" height="37" />
        </mxCell>
        <mxCell id="36" parent="33" vertex="1" value="" style="rounded=1;arcSize=0;absoluteArcSize=1;fillColor=#E2EAF0;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="14.0" y="58.0" width="371" height="2" />
        </mxCell>
        <mxCell id="37" parent="33" vertex="1" value="PK  Product_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="66.0" width="359" height="30" />
        </mxCell>
        <mxCell id="38" parent="33" vertex="1" value="BK  Product_ID : varchar(50)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="97.0" width="359" height="30" />
        </mxCell>
        <mxCell id="39" parent="33" vertex="1" value="Product_Name : varchar(100)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="128.0" width="359" height="30" />
        </mxCell>
        <mxCell id="40" parent="33" vertex="1" value="Category / Brand : varchar(50)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="159.0" width="359" height="30" />
        </mxCell>
        <mxCell id="41" parent="1" vertex="1" value="" style="rounded=1;arcSize=28;absoluteArcSize=1;fillColor=#FFFFFF;strokeColor=#DCE4F0;strokeWidth=2;">
          <mxGeometry as="geometry" x="1137" y="610" width="399" height="186" />
        </mxCell>
        <mxCell id="42" parent="41" vertex="1" value="" style="rounded=1;arcSize=4;absoluteArcSize=1;fillColor=#2B6CEE;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="1.0" y="12.0" width="5" height="162" />
        </mxCell>
        <mxCell id="43" parent="41" vertex="1" value="D_Location" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=23;fontStyle=1;fontColor=#0F172A;">
          <mxGeometry as="geometry" x="20.0" y="17.0" width="359" height="37" />
        </mxCell>
        <mxCell id="44" parent="41" vertex="1" value="" style="rounded=1;arcSize=0;absoluteArcSize=1;fillColor=#E2EAF0;strokeColor=none;strokeWidth=2;">
          <mxGeometry as="geometry" x="14.0" y="58.0" width="371" height="2" />
        </mxCell>
        <mxCell id="45" parent="41" vertex="1" value="PK  Location_Key : int" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="66.0" width="359" height="30" />
        </mxCell>
        <mxCell id="46" parent="41" vertex="1" value="BK  Store_ID : varchar(50)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="97.0" width="359" height="30" />
        </mxCell>
        <mxCell id="47" parent="41" vertex="1" value="Store_Name : varchar(100)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="128.0" width="359" height="30" />
        </mxCell>
        <mxCell id="48" parent="41" vertex="1" value="City / Country : varchar(100)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=18;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="20.0" y="159.0" width="359" height="30" />
        </mxCell>
        <mxCell id="49" parent="1" edge="1" source="18" target="5" style="edgeStyle=none;rounded=0;strokeWidth=3;strokeColor=#2B6CEE;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="50" parent="1" vertex="1" value="1 : many" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=16;fontStyle=0;fontColor=#2B6CEE;">
          <mxGeometry as="geometry" x="423.5" y="391.0" width="200" height="28" />
        </mxCell>
        <mxCell id="51" parent="1" edge="1" source="25" target="5" style="edgeStyle=none;rounded=0;strokeWidth=3;strokeColor=#2B6CEE;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="52" parent="1" vertex="1" value="1 : many" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=16;fontStyle=0;fontColor=#2B6CEE;">
          <mxGeometry as="geometry" x="423.5" y="571.25" width="200" height="28" />
        </mxCell>
        <mxCell id="53" parent="1" edge="1" source="33" target="5" style="edgeStyle=none;rounded=0;strokeWidth=3;strokeColor=#2B6CEE;endArrow=block;endFill=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="54" parent="1" vertex="1" value="1 : many" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=16;fontStyle=0;fontColor=#2B6CEE;">
          <mxGeometry as="geometry" x="975.0" y="398.75" width="200" height="28" />
        </mxCell>
        <mxCell id="55" parent="1" edge="1" source="41" target="5" style="edgeStyle=none;rounded=0;strokeWidth=3;strokeColor=#2B6CEE;endArrow=block;endFill=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="56" parent="1" vertex="1" value="1 : many" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=16;fontStyle=0;fontColor=#2B6CEE;">
          <mxGeometry as="geometry" x="975.0" y="571.25" width="200" height="28" />
        </mxCell>
        <mxCell id="57" parent="1" vertex="1" value="Grain: one receipt line per transaction.&lt;br&gt;Net revenue = quantity × unit price&lt;br&gt;minus line discount." style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=20;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="588" y="758" width="470" height="87" />
        </mxCell>
        <mxCell id="58" parent="1" vertex="1" value="Illustrative schema • PK = primary key • FK = foreign key • BK = business key • No dimension-to-dimension joins" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;spacing=0;fontFamily=Arial;fontSize=16;fontStyle=0;fontColor=#475569;">
          <mxGeometry as="geometry" x="64" y="952" width="1472" height="28" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>