While defining the various properties for an item type, we need to define many things about the property itself.
For example, for customer, mobile number is a property. Now mobile number itself could have many properties. Like whether it is mandatory property? How many digits it will have? Is customer is allowed to change the mobile number?
So basically we need a data structure again for the properties. In hybris the properties or characteristics of an item type are known as attributes. The attribute itself could be of primitive type (like string, or integer) or it could be of type like that of any other item type.
It is defined within the definition of item type in items.xml
it corresponds to column of database.