Domain name belongs to you as long as it is renewed by you. I recommend you use auto renewal services. Most domain name registrars can offer that for you.
You cannot buy a domain indefinitely. To all extents and purposes you “rent” the domain, normally renewing it each year that you want to keep it - that is just how the domain registration system works.
You can register a domain for 10 years at a time, and then renew that registration every 10 years to keep the domain.
I tend to use Namecheap for my domains and highly recommend them.
It depends on the particular top level domain. Some allow you to select anywhere from one to ten years at a time while others have more specific limits. There are a number of top level domains where two years at a time is the only available option.
You owns that if you register it and no one else. It’s called domain name registration. Usually it’s for one year and you can renew it anytime for longer (in your case it’s 2 years it probably co.uk or .de am I right? certain domain tlds like .co.uk require 2 years registration) Just always remember to renew it before the expiration time otherwise you may loose it.