Wednesday 12 November 2008

Entity Relationship diagrams using Oracle SQL Developer Data Modeling

Finally, the early adopter release of Oracle SQL Developer Data Modelling tool is out. It is easy to use and I quickly managed to reverse engineer a database schema from an Oracle 10g database.

All you have to do is to connect to a database, specify which schema and which tables you want to include in your ER Model, and then just press the button. It even connects to Microsoft SQL Server 2000 database and extracts the ER Models. Pretty impressive!

I use ubuntu 8.04 and the install was easy, just unzip the downloaded file to a directory and run the script. See instructions below.

It was about time for Oracle to come with a solution like this and for FREE, well almost. Still not clear! But I downloaded the early adopter version to try it.

You can download Oracle SQL Developer Data Modeling from:

Here are the instructions to reverse engineer a schema using the tool.

1. Go to directory where you unziped the download (in my case the download like this:

cd /opt/osdm1/osdm/bin

2. Run the file like this


3. When the application starts from the menu, go to:

File > Import > DB Catalog

4. The "DB Metadata Extraction Wizard" starts.

Just follow the instructions and provide your login credentials like you would do with any other tool connecting to a database and choose the tables you want to model.

Enjoy modeling in your
universe of discourse!

You can also read my other post on this topic which shows you how to create a database with OSDM here


Anonymous said...

I tried to make a connection, but I want to connect with a Service, not with the SID. How can I do this?

Kubilay said...


I can't see a way to connect via a service name either. Can't you not find out the SID? Ask the DBA.

Again this is an "Early Adopter" tool so you are welcome to drop a comment about the lack of this connection method on the Oracle OSDM developers feedback forum here:

I am sure they will appreciate it.

There is good post about service_name versus SID here: