Basically, the DNS "architecture" over the web is a tree. The root node is called "." (dot) and holds all the information about the Top-Level Domains (.com, .de, .ninja (generic TLD), and so on). These nameservers are officially registered and managed by various companies / countries, thus there can be only one "real" zone for each of these TLDs.
Registrars are other companies that handle the rent of subdomains (google.com, yahoo.de, ...) to customers (individuals and companies alike). That is where you have to go if you want to make sure that your domain is reachable by everyone on the web without any specific action on your side. Since your domain name is officially registered, anyone trying to create a duplicate of your domain would end up with no one being able to query it (well, no DNS server are linked to it or even know about it so basically its like it is non-existent). This architecture would create a new "leaf" to that tree.
"." -> .com -> google.com
| -> yahoo.com
|-> .de -> google.de
If your domain name is meant to be used only by you and other people who know its address without the need to query for it other DNS servers, you do not have to officially register it anywhere. In that case, anyone could try to duplicate it but as long as nobody does lookup on it you are fine.
Finally, to answer your question:
- if you want it to be publicly reachable you have to pay for your domain and see a registar (GoDaddy, 1&1, ...)
- if its for another more private purpose, you do not need that. In that case you just have to manually edit your clients / servers to resolve your specific domain on your own DNS server (resolv.conf on Debian Linux for example).
Be aware though that if the domain name you want is already taken, you will not be able to register it.