
Моделирование данных и лакуны в нем
В основе архитектуры данных лежит моделирование данных. На удивление большая доля учебных материалов, посвящённых моделированию данных, содержит серьёзные ошибки, причём многие из них с течением времени начинают считать "исторически сложившейся картиной мира". Давайте вспомним, как птолемеевская картина мира затрудняла развитие физики и астрономии, а коперниковская - как упростила, так и дала импульс для развития. И подражая Альфонсу Мудрому мы можем воскликнуть "Если бы я присутствовал при сотворении моделей данных, я бы попросил Кодда устроить их попроще!". И что самое интересное, они устроены проще и логичней, причём в первоисточниках часто описаны куда лучше… Майкл Стоунбрейкер был абсолютно прав, когда иронично называл многих авторов "не встающими на плечи титанов, а отдавливающими им пальцы". Давайте разберём хотя бы некоторые популярные ошибки и мифы различных типов (терминологические, методологические, системные и инструментальные), посмотрев на вполне стройное здание моделирования данных, сложные части которого располагаются совсем не там, где это привыкли видеть… Мы рассмотрим принципы различения:
• Интерфейсов, протоколов, типов данных и языков сериализации.
• Концептуального, логического и физического уровней моделирования.
• Онтологических, инфологических и даталогических моделей.
• Сервисов, компонентов и приложений.
• Реляционных, расширенных реляционных и нереляционных моделей.
• Странных терминов sql, nosql и newsql.
• Согласованности, доступности и разделяемости.
Заодно попытаемся понять, можно и нужно ли бороться за "чистоту архитектуры данных" и как тут помогает развитие PostgreSQL?