Conclusion
If ADO's Recordset object represents table-like data, the DataSet object represents database-like data, and the DataTable class represents table-like data. This article briefly explains how to load data into DataSet and DataTable objects, and how to define some constraints and relationships for the DataTables.
The DataSet's family of related classes is actually quite a bit larger than this. It includes DataRow, DataRelation, DataView, and other classes. Using all these classes, you can define parent/child relations between DataTables to build complex hierarchical DataSets, and you can make updates and deletes cascade automatically from one table to another.
This article barely scratches the surface of what you can do with the DataSet family of objects. For more information on working with databases in Visual Basic .NET, get a six-pack of your favorite beverage, and dig into the online documentation. Or try my book Visual Basic .NET Database Programming (Que, 2002, http://www.vb-helper.com/vbdb.htm).