Нормализация базы данных и ее быстрый поиск - PullRequest
4 голосов
/ 04 января 2011

Я работаю над технической архитектурой для интеграции контентного решения. Данные от поставщика решений выполняются в миллионы строк и нормализуются до 3NF. Он обновляется по регулярному графику (скорее всего, ежедневно), и его данные разбиты до очень детального уровня атомарности.

Мне нужно искать и запрашивать эти данные, и в настоящее время я склонен оставить нормализованные данные в покое и создать денормализованную базу данных из их данных (OLAP - OLTP). «Перенос» может представлять собой специально созданную программу, которая может содержать необходимую бизнес-логику в дополнение к возможностям копирования и запускаться с установленным графиком по мере необходимости. Затем денормализованная база данных уменьшит атомарность и позволит эффективно выполнять поиск по ключевым словам и запросы. Я искал использование Lucene .NET для работы с ключевыми словами в денормализованной базе данных.

Поэтому, прежде чем я громко пою с холмов, что это путь вперед, я хотел бы получить некоторое экспертное мнение по этому поводу и какова воспринимаемая «лучшая практика». Является ли метод, который я предложил, лучшим способом продвижения вперед, учитывая данные, которые мне будут предоставлены? Было предложено, что, возможно, я мог бы использовать «поисковую систему» ​​для поиска нормализованных данных. Это чертовски напугало меня, но подняло вопрос; какой поисковик и как?

Мнения, пламя, плохой язык и помощь оценили:)

Ответы [ 2 ]

2 голосов
/ 04 января 2011

Я построил базы данных отчетов и хранилища данных на основе данных, хранящихся в нормализованной форме.Существует довольно много работы, связанной с программой передачи (ETL).Учитывая ваше описание потока данных, возможно, часть этой работы была проделана за вас фидером.

Миллионы строк - это не много, в наши дниВозможно, вам удастся сойти с ориентированных на отчет представлений в существующей базе данных.Попробуйте и посмотрите.

Самым большим преимуществом построения базы данных, ориентированной на OLAP, является не скорость.Это гибкость.«Нам нравится этот отчет, но теперь мы хотим видеть его еженедельно и ежеквартально, а не ежемесячно. Бэм! Готово!»"Можете ли вы разбить его по категориям маркетинга вместо категории производства? Бам! Готово!"И так далее.

0 голосов
/ 04 января 2011

Резонансно нормализованная модель (3NF / BCNF) обеспечивает наилучшую среднюю производительность и минимальное количество аномалий модификации для наибольшего числа сценариев. Это большое, поэтому я бы начал с этого. Поскольку ваши требования нечеткие, это кажется наиболее разумным вариантом.

На самом деле, наиболее разумно было бы пересмотреть требования, пока они не станут немного более "четкими";)

Кроме того, если бы вы могли получить в свое распоряжение несколько ранних выдержек от своего поставщика данных, вы могли бы поэкспериментировать с ними и почувствовать распределение данных (не все люди живут в одной стране, и в некоторых странах больше людей, чем в других Не у всех людей есть дети, и количество детей на человека сильно отличается в зависимости от страны). Это важный момент, и крайне важно, чтобы оптимизатор мог принимать правильные решения.

Кроме этого, я согласен со всем, что сказал Уолтер, и также дал ему мой голос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...