Введение в OLAP и хранилища данных

ETL процедура. Описание источника данных. Часть 2

Рассматривается табличная структура учебной базы данных AdventureWorks 2017: системные таблицы, схемы Human Resources, Person, Production, Purchasing и Sales. Показано, какие данные относятся к сотрудникам, людям и адресам, товарам, закупкам и продажам. Объясняется, как по назначению схем выбирать нужные таблицы для решения практической задачи.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. перечислять основные схемы учебной базы данных и их назначение;
2. объяснять, какие данные хранятся в системных таблицах и почему они обычно не нужны для учебных задач;
3. различать кадровые, персональные, товарные, закупочные и продажные данные;
4. анализировать практическую задачу и определять, к какой предметной области она относится;
5. подбирать нужные схемы и таблицы для решения задачи;
6. оценивать, какие сведения о человеке могут быть в базе и чем отличаются роли сотрудника, покупателя и продавца.
Показывать лекцию целиком
Краткое изложение

1. Общий обзор базы данных

Мы начинаем работу с учебной базой данных AdventureWorks 2017. Прежде всего нужно понять, как устроены таблицы. В базе есть несколько групп таблиц, или схем (schema).

2. Системные таблицы

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

3. Кадровая схема (Human Resources)

В схеме Human Resources (Human Resources) шесть таблиц. Они описывают HR-отдел (Human Resources): список сотрудников, департаменты, историю перемещений сотрудников между департаментами, смены и работу сотрудников, а также кандидатов и их собеседования.

4. Персональная схема (Person)

Таблицы схемы Person (Person) хранят характеристики любой персоны в базе. Это могут быть сотрудники компании и покупатели.

По покупателям также может быть информация. При онлайн-покупке человек обычно указывает логин, пароль и регистрационные данные. При продаже в розничном магазине покупатель может иметь карту магазина, а при её получении заполняется анкета. Поэтому по части покупателей есть более подробные сведения.

В схеме есть адреса, контакты, email и пароли. Базовая таблица Person содержит людей и их фамилию, имя, отчество без детальной информации. Адреса, email и другие данные находятся в связанных таблицах.

Есть понятие бизнес-сущность (BusinessEntity). Оно означает, что человек является сотрудником компании, а не клиентом.

5. Производственная схема (Production)

Самая большая и объёмлющая схема — Production (Production). Она посвящена товарному наполнению магазина. Здесь есть продукты, их описание, категории, подкатегории, история цены (ListPriceHistory), фотографии и другие данные. Через эту схему мы получаем информацию о товарах, которыми торгует компания.

6. Закупочная и продажная схемы (Purchasing, Sales)

Схема Purchasing (Purchasing) отвечает за учёт закупок и финансовые проводки, которые соответствуют продажам. Сами продажи находятся в схеме Sales (Sales). Там хранится много характеристик зарегистрированной продажи.

Среди таблиц Sales есть SalesPerson (SalesPerson). В ней перечислены продавцы, работающие в компании. В схеме Human Resources есть информация о сотрудниках, но без специализации и конкретной должности. В SalesPerson указаны именно продавцы.

7. Выбор таблиц под задачу

Глядя на перечень таблиц и на поставленную задачу, можно начать формировать список конкретных таблиц, которые понадобятся для её решения. Далее переходим к практике.

Краткие итоги

Учебная база данных строится как система взаимосвязанных схем, каждая из которых обслуживает отдельный участок предметной области. Практическая ценность такой организации проявляется в том, что аналитик или разработчик сначала определяет смысл задачи, затем выбирает подходящую схему и только после этого уточняет таблицы и связи. Такой маршрут снижает риск обращения к служебным данным, уменьшает число лишних соединений и делает запросы прозрачнее. Разделение кадровых, персональных, товарных, закупочных и продажных сущностей позволяет независимо развивать учётные контуры и одновременно связывать их через общие идентификаторы. Особенно важно различать роли одной и той же персоны: сотрудник, покупатель, продавец. Это влияет на выбор таблиц и интерпретацию результатов. Если задача касается товаров, ключевой становится производственная схема; если продаж — продажная; если кадровых процессов — кадровая. Ошибка на уровне выбора схемы приводит к неверным метрикам, дублированию или пропуску данных. Поэтому перед написанием запроса полезно сформулировать бизнес-вопрос, определить сущности, затем сопоставить их с таблицами. Понимание логики базы также помогает оценивать полноту данных: по одним покупателям сведения подробнее, по другим минимальны, а часть данных относится только к сотрудникам. Это требует осторожности в выводах и явного указания ограничений. В итоге структура базы становится не просто справочником, а инструментом декомпозиции задачи: от предметной области к схеме, от схемы к таблицам, от таблиц к связям и метрикам. Такой маршрут обеспечивает воспроизводимость анализа и снижает вероятность технических ошибок.

Учебная база AdventureWorks 2017 состоит из нескольких схем — логических групп таблиц.

  1. Системные и обслуживающие таблицы: логи и ошибки. Для учебных задач обычно не нужны.
  2. Кадровая схема (Human Resources): шесть таблиц. Описывает HR-отдел: сотрудники, департаменты, история перемещений, смены, кандидаты и собеседования.
  3. Персональная схема (Person): характеристики любой персоны — сотрудников и покупателей. У онлайн-покупателей могут быть логин, пароль, регистрационные данные. У розничных покупателей с картой — данные анкеты. В схеме есть базовая таблица Person с ФИО и связанные таблицы с адресами, контактами, email, паролями. Бизнес-сущность (BusinessEntity) указывает, что человек — сотрудник компании, а не клиент.
  4. Производственная схема (Production): самая большая. Посвящена товарам: продукты, описания, категории, подкатегории, история цены (ListPriceHistory), фотографии. Даёт информацию о товарном наполнении магазина.
  5. Закупочная схема (Purchasing): учёт закупок и финансовые проводки, соответствующие продажам.
  6. Продажная схема (Sales): сами продажи и их характеристики. Таблица SalesPerson (SalesPerson) содержит продавцов компании. В Human Resources сотрудники есть, но без специализации; в SalesPerson — именно продавцы.

Для решения задачи нужно по её смыслу выбрать схемы и таблицы: товары — Production, сотрудники — Human Resources, люди и адреса — Person, продажи и продавцы — Sales и SalesPerson, закупки — Purchasing. Системные таблицы обычно исключают.

Выводы

1. AdventureWorks 2017 состоит из схем, которые группируют таблицы по назначению.
2. Системные и обслуживающие таблицы содержат логи и ошибки и обычно не нужны для учебных задач.
3. Human Resources описывает сотрудников, департаменты, перемещения, смены, кандидатов.
4. Person хранит характеристики людей: сотрудников и покупателей.
5. В Person есть базовая таблица с ФИО и связанные таблицы с адресами, email, паролями.
6. BusinessEntity позволяет отличить сотрудника компании от клиента.
7. Production описывает товары, категории, подкатегории, историю цен, фотографии.
8. Purchasing отвечает за закупки и финансовые проводки.
9. Sales содержит продажи, а SalesPerson — именно продавцов.
10. Выбор таблиц определяется задачей и назначением схем.

Вопросы для самопроверки

1. Что такое схема в базе данных?
2. Какие таблицы относятся к системным и почему они обычно не нужны?
3. Какие данные описывает схема Human Resources?
4. Какие таблицы в Human Resources помогают отслеживать перемещения сотрудников?
5. Чем базовая таблица Person отличается от связанных таблиц?
6. Какие сведения о покупателях могут храниться в Person?
7. Что означает BusinessEntity?
8. Какие данные можно получить из Production?
9. Для чего нужна таблица ListPriceHistory?
10. Чем Purchasing отличается от Sales?
11. Что хранится в SalesPerson и чем эта таблица отличается от HR?
12. Как по задаче определить нужные таблицы?
Вернуться к учебному плану