A domain is a storage for some column attributes. Using domains you can create a column with all
the required properties already defined (e.g. data type, length, precision, etc.), and modify a number
of columns at once.
After you have created diagram domains, it becomes much easier to add columns to the diagram
tables - you can simply select the appropriate domain for the column within the
Column Editor, and this assigns all domain attributes to the
corresponding column attributes. It is also much more convenient to modify the domain-based columns
than usual columns. Modifying any of the domain attribute updates all the columns, based on this domain.
The composite type is specified by a list of attribute names and data types. This is essentially
the same as the row type of a table, but using UDT Manager avoids the need to create an actual table when
all that is wanted is to define a type. A stand-alone composite type is useful as the argument or return
type of a function.
The Domain & User Defined Type Manager allows creation of a new base type (scalar type). You must register two or
more functions (using Stored Procedure Editor) after
defining the type. A user-defined type must always have input and output functions. These functions determine how the type
appears in strings (for input by the user and output to the user) and how the type is organized in memory. The input function
takes a null-terminated character string as its argument and returns the internal (in memory) representation of the type.
The output function takes the internal representation of the type as argument and returns a null-terminated character string.
If we want to do anything more with the type than merely store it, we must provide additional functions to implement whatever
operations we'd like to have for the type.