> Matthew - partial functions aren't allowed if a database is a functor \$$F: \mathcal{C} \to \mathbf{Set}\$$, as it is in my puzzles. The morphisms in \$$\mathbf{Set}\$$ are functions! But there's another category where the morphisms are partial functions.

I am sorry for the confusion!

In that case the solution is \$$4^4 = 256\$$.

> You are considering a modified concept of database, which is a functor from \$$\mathbf{C}\$$ to that other category.

Sure, I would maybe write the category of partial functions between sets as \$$\bot \sqcup \mathbf{Set}\$$.

It's an uglier, less familiar category to pure mathematicians.

However, it is tragically a rather common situation in applied mathematics. For instance, a popular data set of chemical reactions in computational chemistry is derived from the US Patent registry. This data has a lot of errors and many missing fields. Other data sets, such as [CWEEDS](http://climate.weather.gc.ca/prods_servs/engineering_e.html) historical Canadian climate data also has many missing entries. The weather stations in that data set are sometimes offline for long periods of time. Dealing with incomplete data like this is a full time job.