Without going into a dissertation on data modeling(itself a subject of many full-length treatises), tables should follow basic rules of normalization:
Avoid duplicate data, avoid repeating groups in tables, and only put data in tables where the information is directly relevant.Remove
Unnormalized relation ->(Remove repeating and multivalued atrributes)->
First normal form relation ->(Remove partially dependent attributes)->
Second normal form relation ->(Remove transitively dependent attributes)->
Thrid normal form relation ->(Apply additional normal forms) ->
Fully normalized relation
The need for Normalization:
– Insert Anomaly
– Delete Anomaly
– Update Anormaly
-> The mantra of the skilled database designer and data modeler is this:
For each attribute, capture it once, store it once, and use that one copy everywhere.
The process of normalization provides a certain degree of data protection by ensuring that repeating information is not duplicated to a great degree.
However, this process also make the queries written to retrieve the data more complex and potentially harder to write since the addition of tables to a query requires more JOIN statements or WHERE clauses.
So we use VIEW to simply the writing of SQL.