So utxo db can be assembled from, or verified by the blockchain then?
Yes.
UTXO db is in fact the state of the blockchain, at a specific block in time.
In theory the number of UTXOs doesn't need to grow.
I'm sure there were periods of time when it was actually decreasing.
It has mostly been growing during some kind of attacks on the network, like the recent ones when someone was trying to inflate the mining fees, to prove whatever crazy point he had.
Unfortunately (transaction fee wise) creating new utxo records is very cheap and I haven't heard yet of any ideas to make it more expensive, so the odds are that the UTXO db will be growing.
I would like to see how the number of utxo grows with the accumulated no of transactions. If it is linear or different. Where can I find those numbers?
You can get the numbers yourself.
There is an RPC command in the recent bitcoin core that shows you number of unspent outputs*. Don't remember it's name, but you should be able to easily find it.
Run the command while downloading the block chain (preferably from scratch) to observe the number of records around a specific block height.
At block #411453 you have:
15536189.79530316 BTC in 38514940 outs from 11016826 txs
EDIT:
* - the command is
gettxoutsetinfo. It gives output like this:
{
"height": 743838,
"bestblock": "000000000000fbba412ba83c0c9d4f14872c05764322a318193e23681765cab6",
"transactions": 2917520,
"txouts": 10699376,
"bytes_serialized": 370667910,
"hash_serialized": "3c470a4a203d236a9ea85a9282a2400265577d5169263eb9b077adf5a77b482f",
"total_amount": 19085882.74182811
}