A database is an object that answers to commands. Every database speaks a language, for example "SQL". Here is a simple DB language: insert "hello" delete "hello" list With "hello" obviously being a place holder for your actual data. OK, we'll give it one more: has "hello"? Aaand we'll give it one further super-command: list "pattern" With pattern being a matching pattern in some useful language, like "regular expressions". Or even something more straight-forward than that particular language. And to make it a little more interesting, we'll allow a limiting argument for the list commands: list max 5 list "pattern" max 5 And here's an optional command: how many? Giving the total count of objects in the database. Why optional? Because it may not be that easy to get that number. Maybe we have something like an "open database" constructed and maintained by multiple people at the same time. Then individual commands would turn into broadcasts to a group, with answers flowing back as a broadcast too. Interesting, eh? =) Now someone should make that database!