Работа с неструктурированными данными: обработка и импорт в базу данных

Программные решения для бизнеса

Пришло время экспериментов: давайте познакомимся с разными способами импорта данных и узнаем, каким образом можно обработать неструктурированные данные.
Глоссарий
Для успешного освоения материала рекомендуем вам изучить следующие понятия:
База данных
DB (Database), БД. Организованная структура, предназначенная для хранения, изменения и обработки взаимосвязанной информации, преимущественно больших объемов
ТЗ или Техническое задание
Документ, содержащий требования заказчика к объекту закупки, определяющие условия и порядок ее проведения для обеспечения государственных или муниципальных нужд, в соответствии с которым осуществляются поставка товара, выполнение работ, оказание услуг и их приемка
Первичный ключ
PK, Primary Key. Минимальный набор атрибутов, совокупность значений которых однозначно определяет кортеж в отношении
Внешний ключ
FK, Foreign Key. Столбец или комбинация столбцов, значения которых соответствуют Первичному ключу в другой таблице
SQL
Structured Query Language (язык структурированных запросов). Декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных
Видеолекция
Конспект

Часто информация хранится в неструктурированном виде, т. е. не имеет заранее определенной структуры данных, либо не организована в установленном порядке. Такие данные, как правило, представлены в форме текста или больших неупорядоченных таблиц. Это приводит к трудностям анализа, особенно в случае использования традиционных программ, предназначенных для работы со структурированными данными.

Помимо ручного добавления данных в базу может возникнуть необходимость обработки данных и импорта. Для импорта могут быть представлены файлы и данные в разном формате. Например, сейчас у нас есть:
  • список типов туров в описании предметной области
  • страны в формате csv
  • список отелей в формате xls
  • туры в формате xlsx
  • список фотографий туров в виде изображений
В этом уроке мы протестируем несколько разных способов импорта данных, предварительно почистив базу данных
Работа с текстовыми данными
1. Копируем перечисление в Excel таблицу
2. Разбиваем текст по столбцам с помощью функции Text to Columns на вкладке Data
3. Указываем разделитель
4. Finish
5. Получаем каждую запись в отдельной ячейке
6. Теперь каждый тип списка изменяем на вертикальный. Для этого копируем значения и с помощью функции Past special транспонируем данные
7. Далее было бы неплохо эти данные отформатировать. Например, избавиться от пробелов с помощью функции Trim()
8. Отформатируем текст, чтобы название каждого типа начиналось с заглавной буквы. Для этого воспользуемся встроенными функциями Word. На вкладке Home — Change keys — Sentence keys
9. Выделяем сущности в описании заказчика
10. Вставляем столбец для указания кодов
11. Копируем нашу базу данных в таблицу Type
Работа с текстовыми данными
Импорт списка стран
Переходим к списку стран и воспользуемся мастером импорта и экспорта.

1. Кликаем по названию базы данных Tasks — Import data
2. В качестве источника данных выбираем неструктурированный файл
3. Тип csv files
4. На Preview мы можем увидеть, как они будут представлены
5. Убираем пункт о том, что первая строка — это заголовок
6. Далее выбираем, куда мы хотим импортировать данные — нашу базу
7. После чего выбираем таблицу, где данные будут размещены
8. Далее — Далее — Финиш. 252 строки было импортировано. Можем их увидеть в таблице
Импорт списка отелей

1.
Приступаем к импорту отелей
2. В таблицах могут встречаться дубликаты, поэтому желательно проверять этот момент и удалять их. Выделяем все данные — Data — Remove duplicates
3. Выбираем столбцы, по которым мы ищем уникальные значения. ОК
4. Три дубликата было удалено
Для импорта в базу данных нам нужен столбец с кодами стран вместо названий. Для замены мы будем использовать функцию LOOKUP
5. Сначала добавляем список стран на отдельный лист
6. Для использования функции LOOKUP лучше, если данные отсортированы в алфавитном порядке
7. Воспользуемся функцией. Первый аргумент — это значение, по которому мы происходит поиск. Второй — это столбец, где мы будем сравнивать значения. Третий – то, что мы вернем в итоге
8. Можем скопировать и с помощью специальной функции вставки добавить значения
9. Добавляем столбец для кодов и вставляем в таблицу Hotel
Импорт таблицы туров
Последняя таблица для импорта — туры. Так как структура данных сложная: список типов через запятую, связи «многие-ко-многим», папки с картинками, которые также должны храниться в базе данных, предлагаем выполнить импорт с помощью кода С# в Visual Studio

1. Воспользуемся существующим проектом, и в Mail windows создаем метод для импорта туров. Можем сразу вызвать его при запуске
2. Прежде чем работать в коде с файлом туров, сохраняем его как unicode text и удаляем в итоговом файле первую строку с заголовком. File — Save as — Unicode text
3. Удаляем строку с заголовками
4. Создаем две переменные
5. Пробежимся по строкам в файле, разделив данные с помощью табов, и создаем экземпляр класса, заполнив свойства соответствующими значениями, и не забывая про типы данных
6. Заполняем коллекцию типов тура, выполнив поиск типов по названиям, перечисленным через запятую в файле
7. Записываем изображение в базу данных с помощью метода ReadAllBytes()
8. Добавляем тур в базу и сохраняем
9. Вызываем метод в конструкторе MainWindow и проверяем результат в базе данных. Список туров и типы импортированы
Мы рассмотрели некоторые полезные функции для обработки неструктурированных данных, а также различные способы импорта в базу данных.
А теперь проверьте полученные знания на практике.
Интерактивное задание
Тест
Для закрепления полученных знаний пройдите тест
Стартуем!
Каким образом НЕ был реализован импорт данных в рамках данного видеокурса?
Дальше
Проверить
Узнать результат
К сожалению, вы ответили неправильно
Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз
Неплохо!
Но можно лучше. Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз
Отлично!
Вы отлично справились. Теперь можете ознакомиться с другими компетенциями
Пройти еще раз