Dì is an archaic form, coming from the latin dies,ei and distantly related to the English day. It is essentially used in the same way as giorno but it is far rarer. It is sometimes used in opposition with notte, night.
Giorno and giornata are essentially synonyms, with slight differences of usage. Giornata is often used when referring to the length of time corresponding to a single day (e.g. Sembra che questa giornata non finisca mai, It feels like this day will never end; È tutta la giornata che lavoro, I've been working all day) or when speaking about weather or other special characteristics of the day (È una bella giornata, it's a beautiful day; Che giornataccia che ho avuto, What a horrible day I've had).
Giorno is a more generic term, the default so to speak. It is often the one used when speaking about multiple days, or to specify durations (Le vacanze dureranno dieci giorni, the holidays will last for ten days) or dates (Verrà un giorno... A day will come).
There are many more subtleties, but this should cover the most common usages. For more information consult a good monolingual dictionary.