Mandatory columns as NOT NULL constraints
When defining attributes for an entity, the question of which ones are mandatory and which are optional inevitably arises. As with most modeling decisions, the answer depends on the business context more than any technical database property. The same attribute, for example, the email address for CUSTOMER
, may be mandatory for an online store but optional for a brick-and-mortar retailer. In the latter case, not having an email address means missing sales announcements, while in the former, it may mean being unable to access the website.
When moving from a conceptual model to a physical Snowflake design, mandatory columns can be defined through the NOT NULL
constraint. The NOT NULL
constraint is declared inline next to the corresponding column and does not need to be given a name. Due to this, it is not possible to declare NOT NULL
constraints out of line.
The format for adding a NOT NULL
constraint to a column is as follows:
<col1_name...