Is there a function or mechanism in the bitcoin protocol that prevents someone from creating millions or billions of bitcoin addresses and just sitting on them? Do the addresses need a minimum balance of outputs? or Does that distributed DB save each address? (And if it is saved....what is saved? The base58 address or the full Public Key? I am also familiar with the ecdsa algorithm.)
The network doesn't require proven ownership to make an address valid, otherwise one would never be able to send bitcoins to a new address. Any address in the address space can receive a transaction at any time. Also see here: At what point is a new wallet known by the Bitcoin network?
Creating a great number of addresses is possible, but impractical, because the address space is simply too big for anyone to even store a significant portion of the addresses. See a more thorough explanation here:
Is it possible to brute force bitcoin address creation in order to steal money?
Assuming the "That distributed DB" refers to the Blockchain, the Blockchain stores every transaction ever made on the Bitcoin network. See What is the “blockchain”? and Where are the user's bitcoins actually stored?.