Relation between type, format, internal format, base internal format

One would think that in order to work with textures, one needs notion of exactly two formats: The format of the texture (what is stored) and the format of what is provided (and is converted to the texture’s format).

I’m not sure I understood the point of four different format classes and what they mean. Could anyone link me to an explanation perhaps? Of why it is so and why two classes (as one would naively assume) do not suffice?

Edit: I think I figured it out: Base internal formats are just groups of internal formats.