I think the usage is loosely coupled to the size of the water body, with Ozean being the largest, Meer coming second, and then See*. For some contradictions of the definitions I give here (and that's why it's only "loosely coupled"), also consult Gigili's answer.
There are very few oceans (Wikipedia lists five of them) and their group is closed, i.e. there's little discussion about what else could be an ocean.
Meer can be used to describe almost any saltwater body that is not a lake. Unfortunately, some saltwater lakes are bearing names with "Meer" in them, such as the "Kaspisches Meer" (Caspian Sea) or the "Totes Meer" (Dead Sea). To add to the general confusion, "Meer" also means "lake" in Low German and Dutch, so there are some (a few) freshwater Meere such as the "Steinhuder Meer" or "Zwischenahner Meer". To most non-locals though, those names sound similarly strange as to non-native speakers.
For See*, there are two meanings: "Meer im allgemeinen Sprachgebrauch" and "Nebenmeer - einen durch Inselketten o.ä. abgegrenzten Randbereich eines Meeres", which doesn't help with the aforementioned confusion :-)
Concerning the difference between See* and Meer, I think most people don't bother, they just go with the main name for the water body in question and don't take offense if it's called the other way. Conversations like this are perfectly normal:
A: Wir fahren im Sommer ans Meer.
B: Wohin geht's?
A: An die Ostsee.
Personally, I would expect Meer to be larger than See* and wouldn't call the Mediterranean Sea(Mittelmeer) or the Pacific ocean (Pazifik) a See*, but that's just a gut feeling.
*female version: if it's not a lake, always use the female article: die See. See Hendrik's answer for more details on the gender of See.