Take the 2-minute tour ×

I learned at the University some steps to model a database:

  1. Model the problem using the Extended Entity-Relationship Model.
  2. Extract the functional dependencies
  3. Apply some algorithms to normalize the database (3NF or Boyce-Codd)
  4. Create the database

I'm studying Computer Science and since I received that course I'm wondering if I always need to do those steps when creating a complex database for an specified problem.

For example, do PHP / .NET / .. programmers always do that? or there are some tools to simplify that process, maybe using another way of represent the problem instead of the EERM?

share|improve this question
add comment

3 Answers

up vote 1 down vote accepted

Modeling a database is like putting the carriage before the horse. I'd say if anything stop at Entity-Relationship modeling. This is generic enough that you can move from there to Object Modeling which is where the meat of your application lies. The database is there for persistence. The most important thing is getting your class model correct, then you can map the database to support it.

share|improve this answer
add comment

I started using Object Role Modelling recently with the NORMA tool

It compresses points 1 to 3 above, and can generate the script/XSD for point 4.

share|improve this answer
add comment

You can use UML instead of ER diagram, if you are familiar with UML. I would suggest Database Modeling and Design: Logical Design book, it has an example how to convert your domain problem into SQL world.

share|improve this answer
would that simplify those steps? I mean, will I have a normalized database using UML?... –  Oscar Mederos Feb 8 '11 at 5:56
It's depends on your database plan, tools won't normalized for us. –  Kugathasan Abimaran Feb 8 '11 at 6:09
add comment

Your Answer


