It's easy to get a tad confused between the concept of a "domain", "DNS" and the concept of "hosting". We've explained below.
A domain is a URL or website address that an individual or company has purchased. It serves no purpose other than to reserve the use of that Website Address for the owner. It can be considered a purely administrative concept.
If you owned the domain "example.co.za", all that means is you get to determine what happens when someone types "www.example.co.za" into their browser.
Hosting is the physical web space or web server where your Website, Emails and other services reside. When someone "hosts" your website, it means their servers have the physical copy and information about your site, email and web services. They would tell their domain (mentioned above) where to find their hosting (this concept).
DNS is a behind the scenes service that tells computers where to go to find your email server, your web server, your blog, whatever. A human would never need to look at the services DNS covers, but computers on the Internet cannot operate without it.
... put simply ...
Think of a book. The cover of the book, i.e. the name of the book, is the "Domain". Without it, you have no idea what you're looking at and cannot proceed. The Index of the book is DNS, this tells your computer what page to turn to for different chapters, and roughly what the chapter is about. The actual chapters, the meat of the book, is the Hosting. It's the main reason people actually wanted the book in the first place, but without the Domain and DNS to guide them to this point, it would be useless.