The blog for Oracle Data Integrator ( ODI )

Context, Logical And Physical Schema – How does it work?

Hi people,

Let me try to explain a subject that I already got a lot of emails asking me about how it works:

  • Data Server
    • Physical Schema
  • Logical Schema
  • Context

It’s very common doubts raises from this combination because it is based in 3 concepts that I call “The three bases”.

The most important is: one doesn’t exist without other.

Topology Engine

Topology Engine








It’s good remember that Data Server can be understood as the higher level of Physical Schema and that one Physical Schema is linked to one, and no more than one Data Server.

To a better understanding, take a look in the following flow:

Logical Schema, Context and Physical Schema inter-relashionship

Logical Schema, Context and Physical Schema inter-relationship








How does this flow wok?

  •  Data Server
    • Object that defines the connection to database. It storage the IP, User and Password for instance
  • Physical Schema
    • Defines 2 database schema’s (Oracle definition), one to read the data and other to ODI works (work area where the C$, I$ tables could be created if necessary)
  • Context:
    • Defines an “environment”, a particular instance for code execution. The most common example is Development, Test and Production environments but there are several possible other possibilities.
  • Logical Schema
    • It is an alias to a “Logic Structure”, I mean, when a code is developed in a Development environment (a single interface in ODI as example) it is expected (and necessary) that any database structure table and column used at it must be at any new environment where this code could be deployed because, if not, a database error will be raised.

Logical Schema is the final dot to understand the flow. The idea behind its existence is allow the same code be used at any environment once it is an alias.

But this alias, the Logical Schema, can not work alone, once it only represents the a Logical Structure not the connection itself, I mean, User, IP, etc… For that, exists the Physical Schema. It will complete the Logical Schema with physical characteristics to connection.

Because of that, one Logical Schema is linked to one, and just one, Physical Schema.

But why to have an alias to the user, IP, password??? Because then there is no need to include these physicals characteristics into the scenario (“compiled code”) allowing that if, for instance, a password is changed there is no need of a scenario regeneration!!!

Well, after understand the link between Physical and Logical Schema how to add the Context in this equation?

It is to determine, at execution moment, to which hardware the Logical Schema that points to a Physical schema it will be executed. A hardware here can be understood as Development, Test or Production.

If you take a look into the users and schema’s used at the figure you will see differences between the environments. I will explain those differences in another post, about “Connection Architecture”.

Friends, I hope to be helpful in the understanding of all this concepts!

See you soon.


Cezar Santos


Leave a Reply

Required fields are marked *.

This site uses Akismet to reduce spam. Learn how your comment data is processed.