Er-диаграммы. ER-моделирование

В начале 1980-х гг. были предложены новые подходы к мифологическому проектированию БД, в большей степени ориентированные на БД реляционного типа. Среди работавших в этом направлении исследователей можно назвать Р. Баркера (Richard Barker) и авторов нотации Information Engineering (сокр. IE) Дж. Мартина (James Martin) и К. Финкелыитейна (Clive Finkelstein).

В предложенных нотациях сущности изображаются сходным образом – в виде прямоугольника, содержащего в заголовке имя сущности, и далее идет перечень атрибутов. Ключевые атрибуты выделяются на диаграмме шрифтом, специальными символами или отделяются чертой от остальных.

Все связи являются бинарными (т.е. только с двумя участниками) и изображаются линией, соединяющей сущности. На рис. 6.2 представлены правила изображения связей в нотациях Баркера и Мартина .

Рис. 6.2.

а – нотация Баркера; 6 – нотация Мартина (IE)

Нужно отмстить, что из-за особенностей изображения связей нотации Баркера и Мартина в литературе иногда называют "crow"s foot notation" (дословно – "нотация вороньей лапки").

На рис. 6.3 приведен фрагмент диаграммы в нотации Мартина, изображающей две сущности ("Клиент" и "Заказ") и связь между ними. Первичные ключи на рисунке выделяются символом "#". Предполагается, что:

  • клиент может разместить один, несколько или ни одного заказа;
  • заказ может быть размещен одним и только одним клиентом.

Рис. 6.3.

В настоящее время также широкое распространение получила нотация, определенная стандартом IDEF1X (полное название на англ. – Integration Definition for Information Modeling), речь о которой пойдет в следующем параграфе.

Задача проектирования БД для современной информационной системы корпоративного уровня может быть достаточно трудоемкой и требовать совместной работы большой группы специалистов – аналитиков, разработчиков БД, разработчиков прикладного ПО, специалистов в предметной области, для которой разрабатывается БД. Для автоматизации этого процесса широко используются CASE-средства – программные средства, поддерживающие одну или несколько технологий проектирования БД (также есть средства проектирования ПО и т.д.). В качестве примера можно назвать программные продукты ERwin Data Modeler (разработчик – компания СА Technologies), ER/Studio (разработчик – Embarcadero Technologies), PowerDesigner (разработчик – компания Sybase, в настоящее время приобретенная SAP). Отчасти подобная функциональность реализована и в популярном офисном программном продукте Microsoft Visio.

ERwin и подобные ему CASE-средства позволяют решать как задачи прямого проектирования (англ. forward-engineering), т.е. получения структуры БД на основе построенной ER-диаграммы, так и обратного проектирования (англ. reverse-engineering), когда ER-диаграмма создается на основе анализа структуры существующей БД.

Далее рассмотрена методология проектирования и нотация (правила изображения) диаграмм IDEF1X, а приводимые примеры будут иллюстрироваться с использованием программного продукта ERwin Data Modeler v. 9 в версии Community Edition. Данная версия продукта свободно распространяется, ее можно получить через веб-сайт erwin.com. Наиболее существенным ограничением версии ERwin Community Edition является небольшое количество объектов в модели – не более 25, но для учебных целей это не является критичным. Для разработки БД со сложной структурой рекомендуется использовать другие версии продукта.

Наряду с нотацией IDEF1X, ERwin поддерживает нотацию 1Е, особенности современной версии которой описаны далее.

Основными понятиями метода сущность-связь являются следующие:

Сущность,

Атрибут сущности,

Ключ сущности,

Связь между сущностями,

Степень связи,

Класс принадлежности экземпляров сущности,

Диаграммы ER-экземпляров,

Диаграммы ER-типа.

Сущность представляет собой объект, информация о котором хранится в БД. Экземпляры сущности отличаются друг от друга и однозначно идентифицируются. Названиями сущностей являются, как правило, существительные, например: ПРЕПОДАВАТЕЛЬ, ДИСЦИПЛИНА, КАФЕДРА, ГРУППА.

Атрибут представляет собой свойство сущности. Это понятие аналогично понятию атрибута в отношении. Так, атрибутами сущности ПРЕПОДАВАТЕЛЬ может быть его Фамилия, Должность, Стаж (преподавательский) и т. д.

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

Связь двух или более сущностей - предполагает зависимость между атрибутами этих сущностей. Название связи обычно представляется глаголом. Примерами связей между сущностями являются следующие: ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ (Иванов ВЕДЕТ «Базы данных»), ПРЕПОДАВАТЕЛЬ ПРЕПОДАЕТ-В ГРУППЕ (Иванов ПРЕПОДАЕТ-В 256 группе), ПРЕПОДАВАТЕЛЬ РАБОТАЕТ-НА КАФЕДРЕ (Иванов РАБОТАЕТ-НА 25 кафедре).

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

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

диаграммы ER-экземпляров,

диаграммы ER-muna, или ER-диаграммы.

На рис. 1 приведена диаграмма ER-экземпляров для сущностей ПРЕПОДАВАТЕЛЬ и ДИСЦИПЛИНА со связью ВЕДЕТ.

Рисунок 1 - Диаграмма ER-экземпляров

Диаграмма ER-экземпляров показывает, какую конкретно дисциплину (СУБД, ПЛ/1 и т.д.) ведет каждый из преподавателей. На рисунок 2 представлена диаграмма ER-типа, соответствующая рассмотренной диаграмме ER-экземпляров.

Рисунок 2 - Диаграмма ER-типа

На начальном этапе проектирования БД выделяются атрибуты, составляющие ключи сущностей.

На основе анализа диаграмм ER-типа формируются отношения проектируемой БД. При этом учитывается степень связи сущностей и класс их принадлежности, которые, в свою очередь, определяются на основе анализа диаграмм ER-экземпляров соответствующих сущностей.


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

Класс принадлежности (КП) сущности может быть: обязательным и необязательным.

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

Варьируя классом принадлежности сущностей для каждого из названных типов связи, можно получить несколько вариантов диаграмм ER-типа. Рассмотрим примеры некоторых из них.

Пример 1. Связи типа 1:1 и необязательный класс принадлежности.

В приведенной на рис. 1 диаграмме степень связи между сущностями 1:1, а класс принадлежности обеих сущностей необязательный. Действительно, из рисунка видно следующее:

Каждый преподаватель ведет не более одной дисциплины, а каждая дисциплина ведется не более чем одним преподавателем (степень связи 1:1);

Некоторые преподаватели не ведут ни одной дисциплины и имеются дисциплины, которые не ведет ни один из преподавателей (класс принадлежности обеих сущностей необязательный).

Пример 2. Связи типа 1:1 и обязательный класс принадлежности.

На рис. 3 приведены диаграммы, у которых степень связи между сущностями 1:1, а класс принадлежности обеих сущностей обязательный.

В этом случае каждый преподаватель ведет одну дисциплину и каждая дисциплина ведется одним преподавателем.

Рисунке 3 - Диаграммы для связи 1:1 и обязательным КП обеих сущностей

Возможны два промежуточных варианта с необязательным классом принадлежности одной из сущностей. Замечания.

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

При необязательном участии экземпляров сущности в связи дополнительный блок к блоку сущности не пристраивается, а точка размещается на линии связи (рис. 6.2).

Символы на линии связи указывают на степень связи.

Под каждым блоком, соответствующим некоторой сущности, указывается ее ключ, выделяемый подчеркиванием. Многоточие за ключевыми атрибутами означает, что возможны другие атрибуты сущности, но ни один из них не может быть частью ее ключа. Эти атрибуты выявляются после формирования отношений.

На практике степень связи и класс принадлежности сущностей при проектировании БД определяется спецификой предметной области. Рассмотрим примеры вариантов со степенью связи 1:М или М:1.

Пример 3. Связи типа 1:М.

Каждый преподаватель может вести несколько дисциплин, но каждая дисциплина ведется одним преподавателем.

Пример 4. Связи типа М:1.

Каждый преподаватель может вести одну дисциплину, но каждую дисциплину могут вести несколько преподавателей.

Примеры с типом связи 1:М или М:1 могут иметь ряд вариантов, отличающихся классом принадлежности одной или обеих сущностей. Обозначим обязательный класс принадлежности символом «О», а необязательный - символом «Н», тогда варианты для связи типа 1:М условно можно представить как: О-О, ОН, Н-О, Н-Н. Для связи типа М:1 также имеются 4 аналогичных варианта.

Пример 5. Связи типа 1:М вариант Н-О.

Каждый преподаватель может вести несколько дисциплин или ни одной, но каждая дисциплина ведется одним преподавателем (рис. 4).

По аналогии легко составить диаграммы и для остальных вариантов.

Пример 6. Связи типа М:М.

Каждый преподаватель может вести несколько дисциплин, а каждая дисциплина может вестись несколькими преподавателями.

Как и в случае других типов связей, для связи типа М:М возможны 4 варианта, отличающиеся классом принадлежности сущностей.

Пример 7. Связи типа М:М и вариант класса принадлежности О-Н.

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

Рисунок 4 - Диаграммы для связи типа 1:М варианта Н-О

Выявление сущностей и связей между ними, а также формирование на их основе диаграмм ER-типа выполняется на начальных этапах метода сущность-связь. Рассмотрим этапы реализации метода.

Рисунок 5 - Диаграммы для связи типа М: М и варианта О-Н

0

(Лекция 8)

Разработка концептуального уровня БД

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

Инфологическая модель предметной области

Исходными данными для построения ИЛМ предметной области являются результаты анализа предметной области, представленные в виде описания классов объектов и связей между ними. Чаще всего ИЛМ предметной области представляют в терминах семантической модели данных, в виде ER - диаграммы предметной области.

Необходимо отметить, что выявление в предметной области классов объектов, связей, описание и отображение их в диаграмме происходит параллельно.

Методологии построения ER-диаграмм

В настоящее время существуют разнообразные методологий (нотации) построения ER-модели.

1 Методология Питера Чена. В 1976 году Питером Ченом была предложена семантическая модель "сущность-связь" - ER-модель, которая в настоящее время стала самой распространенной.

Соглашения, используемые при изображении диаграммы:

Классы объектов отображаются прямоугольником, свойства эллипсами, связи ромбами;

Уникальный идентификатор (первичный ключ) отображается в виде эллипса, обведенного двойной линией;

Мощность связи «один» отображается линией, «много» - линией со стрелкой.

Особенности этой методологии:

Метод позволяет показать связь между двумя, тремя и более классами объектов (сущностями);

Связь может иметь собственные атрибуты;

Нет возможности отображения взаимоисключающих связей и непереносимости связей;

Взаимоисключающие связи неявно реализуются в виде супертипов и подтипов;

Нельзя выразить опциональность атрибутов и связей.

На рисунке 6 приведен пример фрагмента ER-диаграммы в методологии Питера Чена.


Рисунок 6 - Пример фрагмента ER-диаграммы в методологии Питера Чена

На диаграмме отображены следующие бизнес-правила предприятия: «Каждому заказу, имеющему такие свойства как номер и дата, должна соответствовать одна или более позиций заказа, имеющей такие свойства, как номер, цену за единицу товара, количество товара»; с другой стороны - «Каждая позиция товара должна относиться к одному и только одному заказу».

Необходимо отметить, что в примере приведен фрагмент описания предметной области. В ней также должны существовать такие классы объектов, как «Товар», «Единица измерения» и другие.

2 Методология IDEF1. Используется в CASE-средствах ERwin, Design/IDEF. В методологии используются следующие соглашения:

Каждому классу объектов присваивается уникальное имя и номер;

Обязательная связь отображается сплошной линией, необязательная -пунктирной;

Мощность связи "один" отображается линией, "много" - точкой;

Связь может дополнительно определяться с помощью указания мощности (типа) связи. Мощность может принимать следующие значения: N - ноль, один или более (принимается по умолчанию); Z - ноль или один, P - один или более.

Свойства класса объектов отображаются в виде списка имен внутри блока, отображающего класс объектов;

Атрибуты первичного ключа изображаются вверху и отделяются от других.

Пример представления ER-диаграммы в методологии IDEF1 приведен на рисунке 7.


Рисунок 7 - Пример представления ER-диаграммы в методологии IDEF1.

На рисунке 7 отображена та же ситуация в предметной области, что и на рисунке 6.

3 Методология Ричарда Баркера. Используемые в методологии элементы: класс объектов, свойство класса объектов, уникальные идентификаторы, опциональность свойств, связи, мощность (тип), опциональность и переносимость связей, уникальность объекта из связи, супертипы, подтипы, арки.

Используются следующие соглашения:

Класс объектов отображается в виде четырехугольника с закругленными углами. Имя класса объектов указывается внутри четырехугольника, это имя существительное в единственном числе, отображенное заглавными буквами;

Свойства записываются внутри четырехугольника, отображающего класс объектов строчными буквами, это имя существительное в единственном числе;

Четырехугольник, отображающий класс объектов, можно увеличивать до любых размеров, четырехугольники могут быть разных размеров;

Опциональность свойств помечается: обязательное свойство - звездочкой (*), необязательное - кружочком (о);

Уникальный идентификатор помечается #, если уникальных идентификаторов несколько, тогда каждый помечается номером, указанным в скобках, например, # (1), #(2);

Обязательная связь помечается сплошной линией, необязательная -пунктирной;

Тип (мощность) связи «один» помечается линией, «много» - «вороньей лапой».

Более сложные элементы, используемые в ER-диаграмме, построенной по методологии Ричарда Баркера, рассмотрим далее в примерах.

Шаблоны моделирования

Любая рассматриваемая предметная область имеет свои особенности. Но в тоже время обладает и общими для всех предметных областей элементами. Так, в основной массе решаемых задач автоматизации обязательно фигурируют такие классы объектов, как предприятие (организация), структурная единица предприятия (цех, отдел, факультет, отделение и т.п.), люди, или физические лица, разного рода материальные объекты. Все процессы, происходящие в предметной области и которые необходимо учитывать в базе данных, осуществляются на основе документов, которые в свою очередь фиксируют сбор, перемещение, расход каких- либо данных. Таким образом, многие ситуации можно смоделировать, применяя существующие шаблоны. Мы рассмотрим шаблоны моделирования на примере построения фрагментов ER - диаграмм по методологии Ричарда Баркера.

1 Моделирование семейного положения. Например, ситуацию предметной области, описанную следующими предложениями: «каждое ФИЗИЧЕСКОЕ ЛИЦО (мужского пола) может являться супругом другого ФИЗИЧЕСКОГО ЛИЦА (женского пола)» и, с обратной стороны, «каждое ФИЗИЧЕСКОЕ ЛИЦО (женского пола) может являться супругой другого ФИЗИЧЕСКОГО ЛИЦА (мужского пола», можно смоделировать, используя рекурсивную связь. Это связь между объектами одного класса объектов. Такая связь может обладать всеми свойствами, присущими любой другой связи. Пример приведен на рисунке 8. На рисунке 8 изображена рекурсивная связь, имеющая с обеих сторон одинаковый тип («один») и опциональность «необязательная». В методологии Ричарда Баркера на ER- диаграмме можно отображать и названия связей.


Рисунок - Пример рекурсивной связи - «необязательное свиное ухо»

2 Моделирование иерархии данных. Иерархия данных наблюдается, если в модели предметной области присутствует:

Произвольное число иерархий классов объектов;

Одинаковые свойства у классов объектов, входящих в иерархию;

Связи между такими классами объектов одинаковые.

На рисунке 9 представлен фрагмент ER-диаграммы, выполненный по методологии Ричарда Баркера и отображающий пример иерархии данных.


Рисунок - Пример иерархии данных

На любом предприятии организационная структура обычно бывает иерархическая. Так и в этом примере представлена организационная структура высшего учебного заведения. Классы объектов отображают структурные единицы вуза, располагающиеся на разных уровнях иерархической структуры подчинения. Классы объектов имеют одинаковые свойства, между классами объектов, расположенных на разных уровнях иерархии присутствуют одинаковые связи. Прочитав фрагмент такой предметной области, можно убедиться в её адекватности. Однако такое представление имеет некоторый недостаток - при добавлении ещё одного уровня иерархии, например, добавления структурной единицы «Лаборатория» в подчинение какой-либо кафедре потребует добавления ещё одного класса объектов в модель, то есть любое изменение в организационной структуре предприятия потребует корректировки модели.

Для моделирования подобной иерархии данных можно использовать шаблон модели - рекурсивную связь. При этом рекурсивная связь должна иметь тип 1:М и должна быть необязательной в обоих направлениях. Сторона «один» отображает правило «имеет в подчинении», сторона «много» - «подчиняется». Самый верхний элемент иерархии никому «не подчиняется», самый нижний элемент никого «не имеет в подчинении». Использование шаблона позволяет добавлять и удалять уровни иерархии в соответствии с требованиями предметной области, не меняя базовую модель.

Замена иерархии данных рекурсивной связью осуществляется по следующему алгоритму:

Создается один класс объектов, содержащий свойства, присущие каждому классу объектов в иерархии данных;

Классу объектов присваивается общее имя (в иерархии подчинения подразделений предприятия это может быть, например, класс объектов с именем «СТРУКТУРНАЯ ЕДИНИЦА ПРЕДПРИЯТИЯ»;

Создается дополнительный класс объектов, который будет отображать название для отличия каждого узла иерархии данных, например, класс объектов «ТИП СТРУКТУРНОЙ ЕДИНИЦЫ ПРЕДПРИЯТИЯ».

Как вывод, необходимо сделать следующие замечания:

Шаблон имеет один недостаток: классы объектов, находящиеся на всех уровнях иерархии должны иметь одинаковые свойства;

Иерархия, смоделированная как рекурсивная связь, должна быть необязательной в обоих направлениях. Обязательная ветвь, направленная вверх или вниз, создает бесконечную иерархию, не имеющую применения в реальном мире;

Если при преобразовании модели предметной области происходит слияние частей диаграммы в одну, то необходимо найти в предметной области класс объектов «ТИП», который позволит отобразить уникальность каждой части

Пример использования шаблона, моделирующего иерархию данных, приведен на рисунке.


Рисунок - Пример использования шаблон для моделирования иерархии данных.

3 Разрыв связей M:M. Наличие связи M:M в ER - диаграмме допустимо, но необходимо помнить, что это не адекватное отображение предметной области, есть предметная область не дообследована. Необходимо найти класс объектов (сущность), который разорвет такую связь. Как правило, это какой-либо документ, или позиция документа. Например, связь «многие ко многим» между классами объектов «ПОСТАВЩИК» и «ТОВАР» («каждый ПОСТАВЩИК может поставлять много ТОВАРОВ» и «каждый ТОВАР может поставляться разными ПОСТАВЩИКАМИ») может быть разорвана с помощью таких классов объектов, как «ПОЗИЦИЯ НАКЛАДНОЙ», «ПОЗИЦИЯ ПРАЙС - ЛИСТА», «ПОЗИЦИЯ ДОГОВОРА» и другие. На рисунке 11 приведен пример разрыва связи М:М. В роли поставщика в примере выступает юридическое лицо.


Рисунок - Разрыв связи М:М

Необходимо отметить, что классы объектов, разрывающие связь М:М, как правило, содержат свойства, значения которых динамически меняется. Это такие свойства, как «количество», «цена».

Разрыв рекурсивной связи М:М. (Моделирование сетевой структуры)

Такая структура очень распространена в предметной области на первых этапах поектировнаия. Пример 1

Каждый КОМПОНЕНТ может состоять из нескольких КОМПОНЕНТОВ Каждый КОМПОНЕНТ может входить в один или несколько КОМПОНЕНТОВ


Для моделирования использована необязательная рекурсивная связь типа М:М.

Каждое ЮРИДИЧЕСКОЕ ЛИЦО может пользоваться многими ЮРИДИЧЕСКИМИ ЛИЦАМИ для осуществления перевозок

Каждое ЮРИДИЧЕСКОЕ ЛИЦО может оказывать много услуг ЮРИДИЧЕСКИМ ЛИЦАМ по осуществлению перевозок.


Рекурсивную связь "многие_ко_многим" необходимо разбивать, т.к. негде разместить, например, такие свойства как "количество компонентов одного вида для сборки компонента более высокого уровня", "дата перевозки", "количество перевезенных вещей" и т.п., т.е. при более тщательном анализе предметной области можно увидеть такие классы объектов как "Правило сборки" и "Перевозка".


Каждое ПРАВИЛО СБОРКИ применяется к одному

КОМПОНЕНТ для сборки

Каждое ПРАВИЛО СБОРКИ применяется к одному КОМПОНЕНТ, входящему в сборку другого

КОМПОНЕНТ.

Каждый КОМПОНЕНТ может включать много ПРАВИЛО СБОРКИ для входящих в него компонентов.

Каждый Компонент может входить во много

ПРАВИЛО СБОРКИ.

Пример 2


Каждая ПЕРЕВОЗКА должна осуществляться ЮРИДИЧЕСКИМ ЛИЦОМ

Каждая ПЕРЕВОЗКА должна осуществляться для ЮРИДИЧЕСКОГО ЛИЦА Каждое ЮРИДИЧЕСКОЕ ЛИЦО может осуществлять много ПЕРЕВОЗОК Каждое ЮРИДИЧЕСКОЕ ЛИЦО может участвовать во многих ПЕРЕВОЗКАХ как клиент.

Параллельные связи м.б. разной опциональности и типа.

Замечание: с помощью рекурсивных связей моделируются сетевые структуры и их частные случаи

Иерархии.

4 Моделирование ролей. Под ролями человека или организации в предметной области понимаются должности, обязанности, прозвища. В разных классах объектов, представляющих роли объекты могут перекрывать, дублировать друг друга. Например, класс объектов «ВРАЧ» и класс объектов «ПАЦИЕНТ» отображают разные роли человека - один лечит, другой лечится. Но в случае, если врач становится пациентом в той же предметной области, то информация о нем должна быть отображена в классе объектов «ПАЦИЕНТ», два объекта в двух классах объектов будут информационно дублировать, перекрывать друг друга. Роли должны моделироваться с помощью связей, необходимо чтобы объект одного и того же класса объектов мог выступать в нескольких ролях.

Пример неправильного и правильного моделирования ролей приведен на рисунках.


Рисунок - Неправильное моделирование ролей


Рисунок - Правильное моделирование ролей

На рисунке с неправильным моделированием ролей классы объектов «ПОСТАВЩИК» и «ПОТРЕБИТЕЛЬ» выделены отдельно. При возникновении ситуации, что какое-то юридическое лицо станет выступать как в роли поставщика, так и в роли потребителя, модель будет неадекватно отображать предметную область - информация будет продублирована. Правильным моделированием ситуации будет выделение одного класса объектов «ЮРИДИЧЕСКОЕ ЛИЦО», а роли «поставщик» и «потребитель» отобразить в виде соответствующих связей (рисунок с правильным моделированием ролей).

Примеры предметных областей, где необходимо моделировать роли, приведены в таблице 9.

Таблица 9 - Примеры моделирования ролей.

Предметная область

Неправильное моделирование

Правильное моделирование

Купля-продажа, поставка товара

Классы объектов: ПОКУПАТЕЛЬ, ПРОДАВЕЦ, ПОСТАВЩИК

Классы объектов: ЮРИДИЧЕСКОЕ ЛИЦО или ФИЗИЧЕСКОЕ ЛИЦО.

Связи (роли): покупает, продает, поставляет

Образовательное учреждение, обучение

Классы объектов: АБИТУРИЕНТ, СТУДЕНТ, ПРЕПОДАВАТЕЛЬ, АСПИРАНТ

Классы объектов: ФИЗИЧЕСКОЕ ЛИЦО, РАБОТА ФИЗИЧЕСКОГО ЛИЦА, ОБУЧЕНИЕ ФИЗИЧЕСКОГО ЛИЦА, ТИП ОБУЧЕНИЯ ФИЗИЧЕСКОГО ЛИЦА, ТИП ПЕРЕМЕЩЕНИЯ ФИЗИЧЕСКОГО ЛИЦА.

Связи (роли): сдает документы, работает, обучается.

Документооборот

Классы объектов: ВХОДЯЩИЙ ДОКУМЕНТ, ИСХОДЯЩИЙ ДОКУМЕНТ, ПРИКАЗ, РАСПОРЯЖЕНИЕ

Классы объектов: ДОКУМЕНТ, ПОЗИЦИЯ ДОКУМЕНТА, ТИП ДОКУМЕНТА, ТИП ПЕРЕМЕЩЕНИЯ ДОКУМЕНТА.

Связи (роли): относится (к типу)

На рисунке приведен фрагмент ER-диаграммы, отображающей предметную область «Кадры предприятия». Класс объектов «ПОЗИЦИЯ ПРИКАЗА О ПЕРЕМЕЩЕНИИ» отображает сведения о перемещениях сотрудников (физических лиц) на предприятии, класс объектов «ВИД ПЕРЕМЕЩЕНИЯ» - виды кадровых перемещений - прием, перевод, увольнение и тому подобное. Между классами объектов «ПРИКАЗ О ПЕРЕМЕЩЕНИИ» и «ПОЗИЦИЯ ПРИКАЗА О ПЕРЕМЕЩЕНИИ» присутствуют три связи, две из них - моделируют роли:

- «каждый ПРИКАЗ О ПЕРЕМЕЩЕНИИ должен быть подписан одним сотрудником, являющимся начальником отдела кадров, о чем есть соответствующая информация в классе объектов ПОЗИЦИЯ ПРИКАЗА О ПЕРЕМЕЩЕНИИ», начальник отдела кадров может подписывать много приказов»;


Рисунок - Пример моделирования ролей

- «каждый ПРИКАЗ О ПЕРЕМЕЩЕНИИ должен быть подписан одним сотрудником, являющимся руководителем предприятия, о чем есть соответствующая информация в классе объектов «ПОЗИЦИЯ ПРИКАЗА О ПЕРЕМЕЩЕНИИ», руководитель предприятия может подписывать много приказов».

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

Скачать лекцию: У вас нет доступа к скачиванию файлов с нашего сервера.

ER-модель базы данных

Модель сущность-связь (англ. entity-relationship model, ERM, ER-модель) позволяет описывать концептуальные схемы предметной области.

ER-модель используется при высокоуровневом проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями. ER-модель это формальная конструкция, не определяющая графических средств её представления. В качестве стандартного графического представления ER-модели, была разработана диаграмма сущность-связь ER-диаграмма (Entity Relationship Diagram - ER - диаграмма). При проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных.

Как известно, базовым понятием реляционных БД является таблица (отношение). Таблица используется для структуризации и хранения информации. В реляционных БД каждая ячейка таблицы содержит одно значение. Кроме того, внутри одной БД существуют взаимосвязи между таблицами, каждая из которых задает совместное пользование данными таблицы.

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

Взаимосвязь показывает, что данные одной сущности ссылаются или связаны с данными другой.

Степень конца связи указывается графически, множественность связи изображается в виде "вилки" на конце связи. Модальность связи так же изображается графически - необязательность связи помечается кружком на конце связи. Именование связи выражается одним глаголом (рис.13).

Рис.13.

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

Среди атрибутов выделяется ключ сущности. При создании сущности необходимо выделить группу атрибутов, которые могут быть первичным ключом, затем произвести отбор атрибутов для включения в состав первичного ключа:

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

· Никакой из атрибутов первичного ключа не должен иметь нулевое значение.

· Значения атрибутов первичного ключа не должны меняться. Если значение изменилось, значит, это уже другой экземпляр сущности.

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

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

Первым шагом при создании логической модели БД является построение ER-диаграммы, состоящей из трех частей: сущностей, атрибутов и взаимосвязей.

Разработано множество инструментов визуального создания ER - диаграмм для различны платформ. В настоящем проекте использовалась разработка MySQL Workbench .

Этот инструмент упрощает проектирование баз данных и обслуживание, автоматизирует, отнимающие много времени и подверженные ошибкам задачи и улучшает связь среди команд разработчиков и архитекторами БД. Он позволяет архитекторам данных визуализировать требования, общаться с заинтересованными лицами по вопросам проектирования прежде, чем будут сделаны инвестиции в проект. Это обеспечивает управляемое моделью проектирование баз данных, которое является самой эффективной методологией для того, чтобы создать реальные и хорошо продуманные базы данных. ER - диаграмма базы данных системы дистанционного тестирования (control_tests ) изображена на рисунке (рис.14). Две вертикальные черточки с одной стороны и "трезубец" с другой обозначают соответственно "связь один ко многим".

Рис. 14. ER - диаграмма базы данных control_test системы дистанционного тестирования


Нормализация базы данных

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

Тем не менее, некоторые каноны, правила все-таки существуют. К таким правилам относятся правила нормализации, т.е. приведения отношений к нормальной форме.

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

Рис. 2. Пример ER-диаграммы

Сущность изображается в виде прямоугольника, вверху которого располагается имя сущности (например, TITLES). В прямоугольнике могут быть перечислены атрибуты сущности; атрибуты ER-диаграмм, набранные полужирным шрифтом1, являются ключевыми (так Title Identity - ключевой атрибут сущности TITLES, остальные атрибуты ключевыми не являются).

Отношение изображается линией между двумя сущностями (синие линии на рисунке).

Одиночная линия справа (рис. 3) означает «один», «птичья лапка» слева - «многие», а отношение читается вдоль линии, например «один ко многим». Вертикальная черта означает «обязательно», кружок - «не обязательно», например для каждого издания в TITLE обязательно должен быть указан издатель в PUBLISHERS, а один издатель в PUBLISHERS может выпускать несколько наименований изданий в TITLES. Следует отметить, что связи всегда комментируются (надпись на линии, изображающей связь).

Рис. 3. Элемент ER-диаграммы

Приведем также пример (рис. 4) изображения рефлексивного отношения «сотрудник», где один сотрудник может руководить несколькими подчиненными и так далее вниз по иерархии должностей.

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

Рис. 4. ER-диаграмма рефлексивного отношения

Атрибуты сущностей могут быть ключевыми - они выделяются полужирным шрифтом; обязательными - перед ними ставится знак «*», то есть их значение всегда известно, необязательными (optional) - перед ними ставится О, то есть значения этого атрибута в какие-то моменты могут отсутствовать или быть неопределенными.

Если сущность имеет набор взаимоисключающих отношений с другими сущностями, то говорят, что такие отношения находятся в дуге. Например, банковский счет может быть оформлен или для юридического лица, или для физического лица. Фрагмент ER-диаграммы для такого типа отношений приведен на рис. 5.

Рис. 5. Дуга

В этом случае атрибут ВЛАДЕЛЕЦ сущности СЧЕТ имеет особое значение для данной сущности - сущность делится на типы по категориям: «для физического лица» и «для юридического лица». Полученные в результате сущности называют подтипами, а исходная сущность становится супертипом. Чтобы понять, нужен супертип или нет, надо установить, сколько одинаковых свойств имеют различные подтипы. Следует отметить, что злоупотребление подтипами и супертипами является довольно распространенной ошибкой. Изображают их так, как показано на рис. 6.

Рис. 6. Подтипы (справа) и супертип (слева)