이다 is the unconjugated form of the verb. 이다 means "to be". You don't say "This to be a good song", do you? We must say "This IS a good song". 예요 and 이에요 are two of the present tense forms of 이다.
We use 이에요 when the noun ends with a consonant and 예요 when it ends with a vowel.
I am a student. 저는 학생(이에요.)
My father is a doctor. 우리 아버지는 의사(예요)
그렇다 means "to be so" and 맞다 means "to be right", "to be correct". 맞아요 and 그렇지 않다 (the negative form of 그렇다) are just conjugated forms of those verbs!
For example, when you decide to go to a park on a sunny day with your friends, one of them might say:
- 오늘은 날씨가 진짜 좋아요! The weather is really good today!
- 맞아요. That's right! - You are agreeing with them, you also think the weather is good.
On the other hand:
- 저는 감기에 걸린 것 같아요.. I think I got a cold...
- 그래요? Really? Is that so?