I am wondering whether it is possible to define business rules for content personalization based on data from an external database in CQ5. Most probably data will be stored in customer-specific relational database tables. What kind of flexibility does CQ5 provide to show content based on such datasets?
"business rules" or segments are based on data showing in the client context, to have whatever data showing in the client context, you have to create your customized context store (http://dev.day.com/docs/en/cq/current/developing/client_context_detail.html#Creating%20a%2 0Customized%20context%20store%20component).
Then the challenge will be communication between http & your database :-)
Either the system wrapping your database offers http api, and you can poll data from there, either you could create a servlet in CQ that jumps in your database to fetch the data.