1.2. Пример перехода от ER-модели к таблицам (“ссылка”)

Для того, чтобы перейти от ER-модели к таблицам, давайте внесем следующие изменения в ER-схему “сотрудник↔подразделение” из предыдущей главы:

1) Во-первых, выделим области для каждой Сущностей и для Связи. См. рисунок ниже.

2) во-вторых, перерисуем схему в виде прямоугольников, а все атрибуты впишем в виде строк

3) в третьих, дадим прямоугольникам названия: Сотрудник, Назначение, Подразделение.

4) в-четвертых, добавим в прямоугольник “Назначение” поля “Сотрудник” и “Подразделение”.

5) в-пятых, соединим линией “Сотрудника-с-Сотрудником”, и “Подразделение-с-Подразделением”.

То, что получилось после этих преобразований можно увидеть на рисунке ниже. Принципиально такой вариант нарисованной схемы ничем не отличается от схемы ER-модели, за исключением того, что мы вписали поле Сотрудник и поле Подразделение в таблицу Связи (выделены синим). См. рисунок ниже.

Если посмотреть на схему внимательно, то можно увидеть, что мы уже получили три таблицы, связанные между собой. Правда эти таблицы пока перевернуты на бок (транспонированы). Давайте поместим таблицы в привычное положение перевернув их на бок. Подкрасим поля связи (красным и синим), чтобы их легче было увидеть на рисунке. См. рисунок ниже.

Теперь совсем просто перейти к знакомому виду таблиц. Каждая колонка - отдельный столбец в плоской таблице. См. рисунок ниже.

Рассмотрим отдельно каждую таблицу.

В таблице “Сотрудник”  (Таблица 1) – сущность Сотрудник и все его атрибуты.

В таблице “Подразделение” (Таблица 2)– сущность Подразделение и все его Атрибуты.

А в таблице связи “Назначение” все атрибуты связи (дата приказа, номер приказа и прочие) и два поля из других таблиц: поле “Сотрудник” и “Подразделение”. Такие поля называются Ссылками.

Это идея очень важна. Мы реализовали Связь поместив ссылки на поля “Сотрудник” и “Подразделение” в таблицу “Назначение”. См. рисунок выше.


(!)  Ссылка - это специальный термин. Если говорить простыми словами, то Ссылка - это то, что информационная система воспринимает, как одно и тоже. Можно сказать, что поле Иванов в “Сотруднике” и в “Назначении” - это одна и та же ячейка памяти. Вернее, это ссылка на одну и туже ячейку памяти. И информационная система понимает это как одно и тоже.


Чтобы проиллюстрировать термин Ссылка, давайте проведем мысленный эксперимент.

Войдем в таблицу Сотрудники ипереименуем “Иванова Ивана Ивановича“ в “И.И.И. Что в этом случае произойдет? А произойдет то, что во всех таблицах вместо “Иванова Ивана Ивановича”, мы будем видеть “И.И.И.”. Потому что это ссылка на “одну и ту же ячейку памяти”. См. рисунок ниже.

Теперь вы можете спросить: “мы получили связанные таблицы, а как мы можем это использовать”?

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

Например, вам нужно провести исследование, и сравнить долю мужчин и женщин в составе руководителей в зависимости от функций подразделения и его географического расположения. Считаем, что сотрудников в компании очень много и вручную это сделать невозможно.

Для решения таких задач и других подобных и используются связанные таблицы. Сейчас попробуем визуально в схематичном виде продемонстрировать, как это делается.

Мысленно поместим таблицу “Назначение” в центр. А слева и справа “подтянем” данные из других таблиц.


(!)  Подтянуть поле” или “подтянуть данные”- это такой профессиональный жаргонный термин из области информационных систем. Он означает, что по Ссылке, как по веревочке мы вытягиваем связанные данные из других таблиц. Скорее всего такой термин возник из ассоциативного ряда: “ссылка→связь→связано→веревочка→потянуть-за-веревочку→подтянуть”.

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


Через связь с таблицей “Сотрудник” мы можем получить пол сотрудника (красная стрелка). А через связь с таблицей “Подразделение” мы можем получить местоположение и функцию подразделения (синяя стрелка). См. рисунок ниже.

Исключая ненужные нам поля, и используя уже известный нам метод “Сводных таблиц” мы можем получить любой отчет из аналитических разрезов, которые есть в этой таблице. Например, искомое соотношение руководителей мужчин/женщин по филиалам (регионам) и функциям подразделений. См. рисунок ниже.

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