Я начал новую роль, которая имеет дело с большим количеством связанных данных. Наш источник всех этих данных - различные дампы Excel, извлеченные из баз данных, к которым у нас нет доступа. Предыдущий человек, исполнявший эту роль, использовал около десятка файлов Excel, чтобы собирать эти файлы данных, манипулировать ими и создавать отчеты.
Я начал перемещать дампы в базу данных Access. Я заметил, что многие данные Excel связаны и, вероятно, должны быть нормализованы. В настоящее время я занимаюсь созданием таблиц для каждого дампа данных, их импортом в Access и использованием ряда запросов для репликации десятков манипуляций с данными и составления отчетов.
Есть ли еще преимущества для нормализации данных, где мой единственный источник - дампы Excel со склада?
Как бы я нормализовал данные, если у меня нет возможности изменить формат отправки мне дампов?
Кроме того, мой план (в зависимости от бюджета) состоит в том, чтобы перейти от доступа к базе данных MS SQL.
Ответы:
Да, у нормализации данных есть существенные преимущества, если вы готовы выполнять работу по ее достижению и поддержанию. Два фундаментальных преимущества для нормализации:
Простой подход к нормализации - создать таблицу для каждого человека, места, вещи, концепции или события. Делая это, вы получаете каждую характеристику каждого человека, места, вещи, концепции или события, представляющих интерес для вас в одном и только одном месте в базе данных. Преимущество целостности данных достигается при вставке и обновлении данных. Поскольку вы нормализовали, у вас нет избыточных копий одной и той же характеристики во многих местах базы данных, каждая из которых имеет свое значение, которое вы должны помнить, чтобы обновлять и поддерживать синхронизацию. Во-вторых, у вас есть только одно место в базе данных для программирования проверок при вставке или обновлении данных, чтобы убедиться, что данные действительны. Поскольку ваши данные поступают из многих таблиц Excel, нормализация ваших данных дает вам возможность осуществлять проверку целостности данных в нагрузке, чтобы убедиться, что ваш анализ основан на точных данных. Преимущество гибкости запросов достигается тогда, когда вы хотите прочитать и проанализировать данные. Поскольку вы нормализовали данные, вы можете гибко соединить таблицы, основываясь на вопросе о данных, на которые вы хотите получить ответы, включая только то, что вам нужно для ответа на конкретный вопрос. Во-вторых, это позволяет базе данных возвращать ответы на ваши вопросы гораздо быстрее, чем если бы она сканировала все данные, включая данные, не относящиеся к вашему вопросу, в ваших ненормализованных таблицах. Поскольку вы нормализовали данные, вы можете гибко соединить таблицы, основываясь на вопросе о данных, на которые вы хотите получить ответы, включая только то, что вам нужно для ответа на конкретный вопрос. Во-вторых, это позволяет базе данных возвращать ответы на ваши вопросы гораздо быстрее, чем если бы она сканировала все данные, включая данные, не относящиеся к вашему вопросу, в ваших ненормализованных таблицах. Поскольку вы нормализовали данные, вы можете гибко соединить таблицы, основываясь на вопросе о данных, на которые вы хотите получить ответы, включая только то, что вам нужно для ответа на конкретный вопрос. Во-вторых, это позволяет базе данных возвращать ответы на ваши вопросы гораздо быстрее, чем если бы она сканировала все данные, включая данные, не относящиеся к вашему вопросу, в ваших ненормализованных таблицах.
Доступ является упрощенной СУБД и включает в себя базовый процессор SQL, который позволяет писать запросы и, таким образом, пользоваться преимуществами нормализованных данных. Если вы в конечном итоге собираетесь перейти на SQL Server, который является полнофункциональной СУБД, то нормализация ваших данных теперь облегчит переход и позволит вам воспользоваться всеми возможностями SQL Server и его очень богатой реализацией SQL.
Как я уже упоминал в начале, для достижения этих преимуществ вы должны быть готовы выполнить предварительное программирование, чтобы преобразовать данные, поступающие из ваших различных дампов Excel, и отобразить строки и столбцы в этих таблицах в нормализованные таблицы. Это не тривиальное упражнение, но выполнимое с использованием программирования Access. Один из подходов заключается в создании таблиц, которые копируют данные как в источнике, и загружают в них данные. Они известны как этапстолы. Если у вас есть ненормализованные данные в таблицах Access, вы сможете легче писать код доступа с использованием SQL для извлечения данных из этих таблиц этапов, нормализации их, выявления проблем с качеством данных (скажем, одна и та же характеристика в двух разных дампах Excel, которые должны иметь то же значение, но не), и загрузите его в свои нормализованные таблицы. Это распространенный метод нормализации данных, поступающих из ненормализованного источника, очень распространенный в хранилищах данных на основе предметной области.
Вы обнаружите, что этот дополнительный уровень усилий стоит того, хотя, как только вы получите высококачественные нормализованные данные в своей базе данных доступа. Вы сообщаете, что потребители увидят, что вы настоящий профессионал в области данных, когда покажете им примеры, где качество данных было низким, и вы обнаружили этот факт, чтобы его можно было исправить в источниках. Аналогично, когда они запрашивают новый отчет, который анализирует данные совершенно другим способом, вы можете быстро создать новый отчет, используя SQL, чтобы объединить данные в нормализованных таблицах таким совершенно другим способом, который изначально не ожидался. Они будут очень впечатлены, что вы можете сделать это быстро и легко!
Я надеюсь, что это поможет объяснить, почему нормализация будет полезна для вас.
источник