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 состоит из нескольких схем — логических
групп таблиц.
-
Системные и обслуживающие таблицы: логи и ошибки. Для учебных задач обычно не нужны.
-
Кадровая схема (Human Resources): шесть таблиц. Описывает HR-отдел:
сотрудники, департаменты, история перемещений, смены, кандидаты и собеседования.
-
Персональная схема (Person): характеристики любой персоны — сотрудников
и покупателей. У онлайн-покупателей могут быть логин, пароль, регистрационные данные.
У розничных покупателей с картой — данные анкеты. В схеме есть базовая таблица Person
с ФИО и связанные таблицы с адресами, контактами, email, паролями.
Бизнес-сущность (BusinessEntity) указывает, что человек — сотрудник
компании, а не клиент.
-
Производственная схема (Production): самая большая. Посвящена товарам:
продукты, описания, категории, подкатегории, история цены
(ListPriceHistory), фотографии. Даёт информацию о товарном наполнении магазина.
-
Закупочная схема (Purchasing): учёт закупок и финансовые проводки,
соответствующие продажам.
-
Продажная схема (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. Как по задаче определить нужные таблицы?