I also prefer the database metaphor. Bitcoin is a set of rules that lets everyone take part in (in fact this is required) the creation of a database of transactions that has happened. To make sure there are no mistakes, every single node runs the transactions to verify their validity.