a CNAME is another name that is allways linked to another server...
You can have the CNAMEs cached with f.e. 86400 seconds (1 day) and have an A record that has a TTL of 60 seconds, in that way you can create a failover within 60 seconds of address change (World Wide).
A domain is identified by a SOA (Start of Authority ) record.
Anything that can contain a set of RR's (A, AAA, CNAME, MX etc) records is a DOMAIN identified by a SOA.
A server can serve for 1 or more domains.
A domain allways has a primary and optionally many slave servers.
Servers of a domains are to be found through NS records.
Dig is the weapon of choice to grope the DNS system. It shows hte query done and the response received for your query.
dig -t soa google.com
dig -t ns google.com
dig -t ns . (a ., meaning the root)
dig . not the NS records.
See also:
http://en.wikipedia.org/wiki/Domain_Name_System