It got nothing to do with database, when you create a new object it reserves some space or memory in RAM.
It is per object, for example when you use SPSite site = new SPSite(URL);
it creates a object SPSite
in memory.
There was a scenario when I had to go through hundred of sub-webs of a site collection and I forgot to dispose SPWeb
and it crashed development server.
I would suggest you to use SPDisposeCheck tool for Visual studio to find out if your code is disposing all objects it should.
Why Dispose?
Several of the Windows SharePoint Services objects,
primarily the SPSite class and SPWeb class objects, are created as
managed objects. However, these objects use unmanaged code and memory
to perform the majority of their work. The managed part of the object
is much smaller than the unmanaged part. Because the smaller managed
part does not put memory pressure on the garbage collector, the
garbage collector does not release the object from memory in a timely
manner. The object's use of a large amount of unmanaged memory can
cause some of the unusual behaviors described earlier. Calling
applications that work with IDisposable objects in Windows SharePoint
Services must dispose of the objects when the applications finish
using them. You should not rely on the garbage collector to release
them from memory automatically.
Best Practices: Using Disposable Windows SharePoint Services Objects
Edit
The blog you are providing reference to, if you read the comments on blog post you will figure out the author accepts that he was providing some wrong and created a new blog post, hence I won't recommend you to go through that blog post, but MSDN article I gave you link to is enough for understandings.