The Dataclass construct defines what a file looks like. The Dataclass ACS routine is always invoked, even if a file is not SMS managed. The Dataclass is one of those constructs that can be used very powerfully, or it can be almost ignored.
A file is described by its
Dataset organisation
Record format
Record length
Space allocation
How many volumes it can span over
and that's just flat files. VSAM files have lots of other attributes. If you define a Dataclass for every combinations of these attributes, the list would become difficult to manage. The record length, is a good example, you probably have hundreds of different record lengths in your organisation, and you don't want to have to add a dataclass every time someone wants a new one.
A suggestion is to define a dataclass for each common combination of dataset organisation and record format, and let your users specify record length and space. So the combinations you would specify are
DSORG / RECFM ->
FB
FBA
FBS
VB
VBS
PS
x
x
x
x
x
PO
x
x
x
x
x
PDSE
x
x
x
x
x
Another use of the dataclass is to force a file to go multi-volume. When setting a dataclass up in ISMF, you can specify a number between 1 and 59 in the 'volume count' field. By default, a VSAM file will look for its primary allocation, when it extends to a new volume. If you want it to use the secondary allocation, specify 'SECONDARY' in the 'Additional Volume Amount' Field.
Its probably not worth setting up a dataclass for every variant of VSAM files, but it is a good idea to define some multi-volume dataclasses for VSAM.