Encapsulation of data and logic (a fundamental concept of OOP) isn’t the greatest strength of DataSets. They contain pure relational data and business logic has to be implemented outside of DataSet object.
It may work well in a .NET application, but it’s much less useful in the “shared nothing” world of PHP. You can build an in-memory representation of your relational data (Yii’s ActiveRecord does) but it will be destroyed after the execution of your code, and has to be rebuilt from scratch on the next HTTP request.