Этот вопрос периодически мне задают. У нормальности есть разные критерии и формы. И, немного отодвинув в сторону тему творожков из Поста1 и Поста2 я вам расскажу, что такое нормальный.
Андрей Васильевич - работает директором фирмы “Костромские дилдо”
Елена Афиногенова - жена Андрея Васильевича, домохозяйка
Виталий Тимофеевич - работает директором фирмы “Костромской лубрикат”.
Алевтина Сергеевна - жена Виталия Тимофеевича, работает секретарем в фирме “Костромские дилдо”.
Василий Петрович - техник в фирме “Костромской лубрикат”.
Василиса Рубиковна - курьер в компании “Костромской лубрикат”.
Елена Афиногенова - немолодая женщина требующая от мужа выполнения супружеских обязанностей. По этой причине Андрей Васильевич вынужден поебывать ее в домашних условиях долгими костромскими вечерами. Но при этом ему намного приятнее поебывать также и Алевтину Сергеевну в своем уютном офисе.
Виталию Тимофеевичу изредка перепадает женской ласки от Алевтины Сергеевны.
Василиса Рубиковна недавно устроилась курьером, и мотается с документами между фирмами, разводя шашни с местным персоналом и периодически ебется в офисах то с Андреем Васильевичем, то с холостяком Василием Петровичем.
Ну а Василий Петрович периодически захаживает домой к ненасытной Елене Афиногеновне, пока ее муж снова "задерживается на совещании".
Все данные выше можно свести в табличку с данными о том, кто кого ебет.
С точки зрения реляционной базы данных перечисление через запятую или другой разделитель в одной строке - это полная залупа, так как чтобы вытащить данные о том, с кем ебется например Елена Афиногенова - нужно будет расшивать каждую ячейку в столбце. И это с любой точки зрения не нормально. Точнее не нормализовано. Поэтому избавляемся от запятых.
Теперь те кто ебет и те кого ебут находятся в соответствии один к одному. Это называется первая нормальная форма.
В следующей таблице данных все акты соития по датам.
В этой таблице избыточная информация, потому что имена ебырей и названия фирм в которых они работают зависят от ключа ID, такая же хуйня и с именами блядей.
Поэтому для ебырей и блядей создаем отдельные таблички.
Это называется вторая нормальная форма.
Однако, в табличке с ебырями у нас от ID зависит имя ебыря, а от него зависит название фирмы ебыря (по научному транзитивная зависимость). В третьей форме такой хуйни быть не должно. Поэтому создаем табличку с фирмами. Это будет третья форма. Рисовать впадлу и так вроде все понятно.
Есть еще Бойс-Кодд нормальная форма (та же третья форма, только более жесткая), где все зависимости должны быть от ключа.
Есть еще четвертая форма, где избавляются от многозначных зависимостей. Типа если Василий Петрович ебется с Василисой Рубиковна в офисе, а с Еленой Афиногеновной дома - то это нужно тоже разносить по разным таблицам.
Есть еще пятая нормальная форма, где если Елена Афиногеновна ебется только дома, а Алевтина Сергеевна и дома и в офисе, то это тоже должно быть вынесено в отдельную таблицу кто где ебется.
Но это уже не так важно как первые три формы.
Вобщем есть две крайности. Первая - это невъебовая таблица где хранится вообще все, вторая - это куча таблиц атомизированных до ключ-значение. И то и другое хуево, потому что в первом случае хуй отмасштабируешь, а во втором заебешься обслуживать. Везде нужно искать золотую середину.
А вообще сильно связанные данные типа “Вася ебется с Леной - Лена ебется с Колей и все вместе они учатся в одном ПТУ” - лучше всего хранить в графовой базе. Но об этом как-нибудь в другой раз.
P.S. Все персонажи вымышленные, все совпадения случайны, Кострома - охуенный город.