Design a database model

May include but is not limited to: normalization, entities, entity relationships

Much could be said and has been said already about this subject. I don’t really think that I could show anything new, but here is some topology.

Normalization is the process of making an effective database solution. There are five normal forms, of which we’ll discuss the first four:

  • 1NF: quite basic rules, eliminate duplicate columns from the very same table (a rule which isn’t hard to implement) and separate related data into different tables, and identify them with a primary key.
  • 2NF: remove data that apply to multiple rows of a table from that, and create separate tables for them, linking to the predecessors with a foreign key. And of course, 1NF.
  • 3NF: the first two plus removing the columns which aren’t dependent on the primary key.
  • 4NF: the first three and a new definition for relations: a relation is in 4NF when it has no multi-valued dependencies.

Now the concept of entities. I must confess that the word entity is too abstract for me. I’d like to map English words to their Hungarian counterparts, but entity lacks one. So I can’t really describe what an entity is- I can only say that it is an entity.

Continue reading “Design a database model”