ObjectSpaces and other OR mapping tools has it's own implementation and features, but basically they all do the same for you. It lets you map the properties and fields of your business objects directly to your database tables, columns and views. It is a framework that lets you totally avoid SQL and stored procedures. All of your data is transferred between objects and data sources transparently. That means that you can concentrate on writing business logic, not database access code. Your business objects doesn't directly depend on the datasource. It eliminates the need to embed SQL statements into business layer code and separates the business layer from database provider and schema changes which improves maintainability.