DNS or domain name service uses a hierarchical tree like structure to provide a method of naming computers tied to networks; the Internet being one big network. At the root level you have the TLDs or top level domains such as .com, .net, and some newer ones like even .biz, .info. Underneath these you have the second level, for example yahoo, which becomes yahoo.com and this can be even further refined such as mail.yahoo.com.
The DNS system works with records that are mappings of the names and addresses. A forward record maps a 'zone' (which I would describe as a named sub net) address set to names and a reverse zone does the opposite. So when you do a dns lookup for mail.yahoo.com (or rather your mail server does), it first goes to the . or (root) server and queries for the address of the com server. Once it has this, it goes to the com. server and asks what is the address of yahoo and it gets the address of the name servers for yahoo. It then goes there and asks for the address of mail.yahoo.com.
The world is broken into big zones of roughly the Americas, Europe and Asia and there are governing bodies for the domain registration in each area. There are registrars that handle the protocols of registering domains and zones with the these bodies (like ARIN for the Americas) and they charge a fee to provide this service.
At this level, most of the addresses are statically assigned and are not controlled by DHCP. Your ISP, especially a large one may have a block of these addresses and dole them out to their customers by DHCP.
At the LAN level you can also have public and private address ranges and even a local DNS. A local DNS can provide name resolution for the computers tied to a LAN and provide address - name mappings for these. Typically here one would have dynamic DNS updates where the DHCP and DNS programs talk to each other co-ordinating which machine is tied to which device.
Hopefully this answers some of your questions. If you have any more, just post.