DataSet holds DataTables (like a database), DataView is a view for a DataTable which can control how the underlying DataTable can be viewed by restricting columns, etc. In a database views are usually used to both increase performance and also restrict access to certain columns, while in .NET via code they can be used to restrict access to certain columns as well, but also gives more flexibility on how you can present data (as far as I know they dont give any performance increase via code).