Как следствие этого вопроса Мне было интересно, если бы были хорошие сравнительные исследования, я мог бы проконсультироваться и рассказать о преимуществах использования RDMBS, делать оптимизацию соединения по сравнению с систематической денормализацией, чтобы всегда иметь доступ к один стол за раз.
В частности, я хочу информацию о:
- Производительность или нормализация в сравнении с денормализацией.
- Масштабируемость нормализованной и денормализованной систем.
- Вопросы сопровождения денормализации.
- проблемы согласованности модели с денормализацией.
Немного истории, чтобы понять, куда я иду: наша система использует внутренний уровень абстракции базы данных, но он очень старый и не может обрабатывать более одной таблицы. Таким образом, все сложные объекты должны быть созданы с использованием нескольких запросов к каждой из связанных таблиц. Теперь, чтобы убедиться, что система всегда использует одну таблицу, в таблицах используется систематическая денормализация, иногда сглаживая два или три уровня глубины. Что касается n-n-отношений, они, кажется, обходили их, тщательно создавая свою модель данных, чтобы избежать таких отношений и всегда прибегали к 1-n или n-1.
Конечный результат - запутанная чрезмерно сложная система, в которой клиенты часто жалуются на производительность. Анализируя такую бутылочную горловину, они никогда не подвергают сомнению эти основные предпосылки, на которых основана система, и всегда ищут другое решение.
Я что-то пропустил? Я думаю, что вся идея ошибочна, но почему-то не хватает неопровержимых доказательств, чтобы доказать (или опровергнуть) ее, именно здесь я обращаюсь к вашей коллективной мудрости, чтобы указать мне на хорошую, хорошо принятую литературу, которая может убедить других в моей команде неправильный подход (убедить меня в том, что я слишком параноик и догматичен в отношении согласованных моделей данных).
Мой следующий шаг - создание собственного тестового стенда и сбор результатов, так как я ненавижу изобретать велосипед, я хочу знать, что уже есть на эту тему.
---- РЕДАКТИРОВАТЬ
Примечания: система сначала была построена из плоских файлов без системы баз данных ... только позже она была портирована в базу данных, потому что клиент настаивал на системе, использующей Oracle. Они не осуществили рефакторинг, а просто добавили поддержку реляционных баз данных в существующую систему. Позднее поддержка плоских файлов была прекращена, но мы все еще ожидаем рефакторинга, чтобы воспользоваться преимуществами базы данных.