It's exactly as the relations implemented inside the database. I'll give you the simplest example, about a one-to-one relationship. Let's say you have two tables inside the database: Order and Shipping. One order can have only one Shipping and one Shipping belongs only to one Order. CMR comes into picture for example when loading the Order entity. In BMP, you may choose now between lazy or aggressive loading. Lazy loading means loading a related bean only when you need that data, and aggresive loading means loading all the related data into a single transaction. With CMP lazy loading happens automatically behind the scenes.
You have to keep in mind that the relationships are set inside ejbPostCreate. For example if inside table Order you have to set OrderNumber, CustomerID and ShippingID every time you insert a new Order, you will set first two inside ejbCreate and the ShippingID inside ejbPostCreate (of course, only if you have a relation between Order and Shipment).
These are some benefits of CMR.
Read more about this in
Ed Roman's "Mastering EJB 2nd Edition"
[ January 26, 2004: Message edited by: sergiu truta ]