Originally posted by Steve Chernyak:
Who is responsible for making decisions about the data model? Is it the developers, or the DBA?
My answer would be "wrong question". Data modeling is an area that is as deep as OO modeling. There are multiple kinds of data models, and different people care about different models (and there are assorted debates about the kinds of models
you should have).
A conceptual data model is essentially a pictorial representation of the scope of a project. It indicates the integration context for an application (system, service, whatever). It shows the fundamental interactions and data expectations of the application and the other systems it touches/is touched by/indirectly influences.
In other words, a conceptual data model is a bit like an I/T planning analog of use cases, prior to the use cases being elaborated. It is useful for uncovering fundamental world-view inconsistencies between systems that may not be apparent if you rely too much upon use cases to uncover requirements.
The project manager, and the key participants in providing or consuming data with this new application, all need to be in agreement with the conceptual data model. Developers and DBAs aren't relevant at this point.
At the next levels of refinement are logical and physical data models. A team should have somebody in the role of a database engineer who will work with developers and DBAs. The developers have needs that will tend to drive the logical model. The DBAs will know things about effective use of the technology that will tend to drive the physical model. The DBE tries to make all that information and need come together effectively.