I plan to make an web application using XPages for the design (plus the Lotus Notes Elements), but instead of storing the data in Lotus Notes, I will store the data in a RDBMS (specifically an Oracle Database). As you can see, I want to create a clear separation between the design and data. Is there a way I can do this? I mean, is there a way I can use Oracle as the data source and XPages/Lotus Notes for the UI only? Thanks a lot!

XPages is JDBC compliant, so you can connect to anything, including Oracle. The snag is, you'll probably have to write the code yourself. Apparently there are plans to open source a JDBC-based Relational Database XPages DataSource but there's been no activity as such. Find out more

The XPages environment doesn't have any particular support for relational data sources, but there are two viable options depending on how cautious your organization is about using recent and beta software and how much support code you're willing to write.

For the former case, the XPages Extension Library (http://extlib.openntf.org/) is adding in relational database support for the 8.5.3 release of Domino, which is scheduled to come out at the beginning of next month. I'm not in the 8.5.3 beta, so I haven't seen this in action, but the video on their page looks promising and the Extension Library is high-quality in general. So if you're willing to deploy 8.5.3 when it comes out and use the Extension Library, it'll likely do just what you want.

If you won't be immediately upgrading or don't want to deploy the Library, you can write your own code using JDBC drivers; there's an example of this technique here: http://www-10.lotus.com/ldd/ddwiki.nsf/dx/xpage_integration_rdb.htm . While you can't, for example, just pass a RecordSet to a Repeat control on an XPage, if you're willing to write your own ORM, you could make your objects implement the List interface use Java-Bean-style naming, which would let you use them in standard controls and write expression language like "#{someRecord.someField}".