defines the type of data you intend to store in a variable [integer (whole number), real (decimal number), string (series of characters)]
the way the field will be recognized by the system (integer, string, real or boolean)
a way in which software is developed that allows access to the source code of an application or software and is free to update and use