I have a question, I'll try to abstract from the real problem to not lose people. What I'm really looking for is the name of the algorithm or class of problem to find my solution. I feel that this is some kind of partitioning problem, but that's as far as I have gotten. Here goes.
I've got a table with 10 baskets of fruit. There are only 3 types of fruit that can be in a basket in any combination: Apple(A), Orange(O), Banana(B). My goal, is to make all the baskets contain one and only one kind of fruit. Concerning the baskets, I can have less than I started with but no new baskets can be added.
What is the class of problem this resides in or what algorithm am I looking for.
Real World Information: My company is splitting up and we have 8 database servers(N). On each of these database servers are databases(duh) which can have three types of ownership Company A, Company B, Shared. The issue is that the servers contain a mix of differently owned databases, so we can't pack up one box/vm and send it on its way. So I have been tasked with planning out how to move the servers. That brings me to the partitioning issue, where I want to move the least dbs possible to achieve uniform ownership on any given server, even if that means I have an empty server.
EDIT: Constraints: Each server has a maximum size (GB) of data it can hold.