Are they the same thing? Absolutely not, though both relate to resolving addresses on a network.
You can use DHCP (Dynamic Host Configuration Protocol)
when you connect your client computer
onto a network that it's not been pre-configured for. All computers on an IP network need to know:
a) an available local network address that they can use for themselves
b) where to pass information for the outside world
c) which computer(s) to ask for information when they need to translate a host name such as www.wellho.net into an IP address such as 18.104.22.168
and you can set the information manually if you like - however, if a network administrator is expecting to host visiting computers or wants to issue addresses from a pool, he'll run a DHCP server.
If you're going to be using a network that has a DHCP server on it, you can simply set your own system up to "DHCP" and it will send out a broadcast - a message to all machines on the local network - and the DHCP server will come pick up the broadcast, start a conversation, and issue the information that's needed. More? See the DHCP FAQ
DNS (The Domain Name Service)
is used to translate host names - usually server computer names
such as www.wellho.net into IP addresses such as 22.214.171.124.
The internet is a network of networks, numbered using the IP4 scheme which is four numbers each in the range 0 to 255. The earlier part of the sequence is used to indicate which particular network a computer is attached to, and the latter part resolves which particular computer it is in that network. All very well and good except that we want to be able to address computers by a name that fits into a logical naming scheme (office.wellho.net, www.wellho.net, dandelion.wellho.net) rather than based on where they are physically located. It's DNS that sorts this out for you.
As part of the configuration when you connect a computer to a network, you'll tell it the IP address of a DNS server (or it will find one out via DHCP - that's how the two technologies are both linked and confused) and your local computer will then ask that DNS server whenever it's given a host name that it's not come across before. DNS servers talk to each other so that the system administrator of each only has to look after his own logical area, and they cache (store) information so they can answer common enquiries quickly and without having to burn up bandwidth with the same enquiry thousands of times a day. More? See the DNS FAQ
(written 2005-11-27, updated 2006-06-09)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesA163 - Web Application Deployment - Network Configuration and Security 
Setting up your MacBook Air as a mobile broadband router - (2013-07-07) 
Checking all the systems on a subnet, using Expect and Tk - (2011-09-18) 
Parallel Pinging, using Python Threads or Expect spawn lists - (2009-11-02) 
How was my web site compromised? - (2009-02-24) 
Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23) 
As different as night and tyres - (2008-07-18) 
Slow boot and terminal start on Linux boxes - (2008-06-05) 
Wireless hotel tips - FTP and Skype connections failing - (2007-10-26) 
Heartbeat script in Perl - (2007-02-09) 
Domain Forwarding - 2 ways of doing it - (2005-11-29) 
Looking up IP addresses - (2005-06-01) 
Searching security holes - (2005-04-04) 
Security and Safety - (2004-09-03) 
A bolt of lightning on Multicasting - (2004-08-11)
Some other Articles
Dynamic Web presence - next generation web siteSnippets from GeekmasComment, please!Introduction to Object Oriented ProgrammingWhat are DHCP and DNS?Would you steal ... petrol? ... a training course?We are about Open Source programming courses in the UK10 years C# knowledge pleaseSELECT in MySQL - choosing the rows you want.css - using PHP to make dynamic style sheets