Who should be in charge of designing the database – team members, who understand the application requirements, or a database design expert, who may not understand the problem domain issues but does understand good database design? How can the team verify that the solution is correct and, more difficult, that it is efficient?
Another interesting combination of both database and integrity is how to design and implement so that the database is secure? What kind of encryption should be used within the database? What data needs to be secure?