Ядром инфологической модели является описание объектов предметной области и связей между ними (сущность - связь). Для описания инфологической модели используют как языки аналитического(описательного) типа, так и графические средства. Графические средства являются более наглядными и простыми для восприятия. Для построения модели данных используется удобный инструмент – ERWin. ERwin - средство разработки структуры базы данных (БД). Обычно разработка модели базы данных состоит из двух этапов: составление логической модели и создание на ее основе физической модели. ERwin полностью поддерживает такой процесс, он имеет два представления модели: логическое (logical) и физическое (physical). Таким образом, разработчик может строить логическую модель базы данных, не задумываясь над деталями физической реализации, т.е. уделяя основное внимание требованиям к информации и бизнес-процессам, которые будет поддерживать будущая база данных.
При проектировании структуры новой базы данных определяют сущности (объекты, явления) предметной области, которые должны найти свое отражение в базе данных. Цель инфологического этапа проектирования состоит в получении семантических (концептуальных) моделей, отражающих предметную область и информационные потребности пользователей. В качестве инструмента для построения семантических моделей данных на этапе инфологического проектирования является неформальная модель "Сущность-Связь" (ER-модель - Entity-Relationship). Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность (объект) - это реальный или представляемый объект предметной области, информация о котором должна сохраняться и быть доступна. Различают такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных предметов, событий, личностей, выступающих как единое целое. Экземпляр сущности относится к конкретной вещи в наборе. В диаграммах ER-модели сущность представляется в виде прямоугольника (в нотации Баркера), содержащего имя сущности.
Атрибут - поименованная характеристика сущности, определяющая его свойства и принимающая значения из некоторого множества значений. Каждый атрибут обеспечивается именем, уникальным в пределах сущности.
Атрибуты могут классифицироваться по принадлежности к одному из трех различных типов: описательные, указывающие, вспомогательные. Описательные атрибуты представляют факты, внутренне присущие каждому экземпляру сущности. Указывающие атрибуты используются для присвоения имени или обозначения экземплярам сущности. Вспомогательные атрибуты используются для связи экземпляра одной сущности с экземпляром другого. Атрибуты подчиняются строго определенным правилам.
Множество из одного или нескольких атрибутов, значения которых однозначно определяют каждый экземпляр сущности, называются идентификатором. Каждый экземпляр сущности должен иметь хотя бы один идентификатор. Если идентификаторов несколько, один из них выбирается как привилегированный.
Связь (Relationship) - это поименованная графически изображаемая ассоциация, устанавливаемая между сущностями и представляющая собой абстракцию набора отношений, которые систематически возникают между различными видами предметов в реальном мире. Большинство связей относятся к категории бинарных и имеют место между двумя сущностями.
Среди бинарных связей существуют три фундаментальных вида связи: один-к-одному (1: 1), один-ко-многим (1: M), многие-ко-многим (M: M). Связь один-к-одному (1: 1) существует, когда один экземпляр одной сущности связан с единственным экземпляром другой сущности. Связь один-ко-многим (1: M) имеет место, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан только с одним экземпляром первой сущности. Связь многие-ко-многим (М: N) существует, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан с одним или более экземпляром первой сущности.
В условных связях в отличие от безусловных могут существовать экземпляры сущности, которые в связи не принимают участия. Если связь условная с обеих сторон, она называется биусловной.
Все связи требуют описания. Описание должно обеспечивать:
· идентификатор связи;
· формулировку имен связи с точки зрения каждой участвующей сущности;
· вид связи (множественность и условность);
· формулировку того, как связь была формализована.
Цель формализации связи состоит в том, чтобы позволить установить связь экземпляра одной сущности с экземпляром другого. Формализация связи выполняется размещением вспомогательных атрибутов в соответствующих сущностях модели.
Все сущности относятся к одному из четырех классов:
· стержневые;
· ассоциативные;
· характеристические;
· обозначающие.
Стержневая сущность (стержень) представляет собой независимую сущность.
Ассоциативная сущность (ассоциация) - это сущность, формализующая связь вида M: N между двумя или более сущностями или связь вида 1: 1 между экземплярами сущностей.
Характеристическая сущность (характеристика) представляет собой сущность, формализующую связь вида 1: M или 1: 1. Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности.
Обозначающая сущность (обозначение) - это сущность, также формализующая связь вида 1: M или 1: 1 между двумя сущностями, но отличающаяся от характеристики тем, что не зависит от обозначаемой сущности.
К числу более сложных элементов ER-модели относятся подтипы и супертипы сущностей. Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых имеет общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа должен относиться к некоторому подтипу. Аналогично языкам объектно-ориентированного программирования вводится возможность наследования типа сущности исходя из одного или нескольких супертипов. Как правило, каждому объекту в базе данных соответствует таблица, а его атрибутам – поля этой таблицы.
В результате анализа были выделены 8 объектов, которые описывают данную предметную область. Это:
Сущность “Заявки”. Она включает в себя основные сведения о заявках.
Сущность “Контрагенты”. Она включает в себя сведения о клиентах.
- Сущность “Отделы”, которая включает в себя сведения о всех отделах.
- Сущность “Простой Ремонт”. Она содержит сведения о простом ремонте. Простой ремонт-ремонт или замена какой-либо одной запчасти
- Сущность “Работники” содержит сведения о работках и его принадлежность к отделу.
- Сущность “Ремонт Узлов” содержит сведения о возможных ремонтируемых узлах, стоимость ремонта.
-Сущность “Сложный Ремонт” содержит заявку на сложный ремонт и сведения о ремонтируемом узле.
- Сущность “Состав Ремонта”. Она содержит сведения о виде ремонта, ремонтируемом узле и работнике, выполняющем данный вид работ.
Между объектами предметной области существуют связи, которые должны быть отражены в виде связей между объектами инфологической модели. Графически связь обозначается линией, соединяющей связываемые объекты. Связь снабжается алфавитно-цифровым идентификатором. В каждом направлении связи можно выделить главный объект, от которого идет связь, и подчиненный.
Различают идентифицирующую связь и не идентифицирующую связь. При установлении не идентифицирующей связи дочерняя сущность остается независимой. Экземпляр сущности родителя может существовать безотносительно к какому-либо экземпляру дочерней сущности.
В данной разработке все объекты связаны идентифицирующей связью.
Ссылочная целостность для всех связей одинакова: любые операции с дочерней сущностью никак не повлияют на родительскую. При удалении или обновлении родительской сущности – дочерние сущности удаляются или обновляются каскадом. При добавлении новой записи в родительские сущности реакция отсутствует.
Кроме того, при проектировании базы данных была проведена нормализация отношений до третьей нормальной формы, т.е. были устранены не ключевые столбцы, не зависящие от ключа.
Таким образом, все не ключевые атрибуты функционально полно зависят от ключа и отсутствуют транзитивные зависимости. Но имеется зависимость части составного ключа от не ключевого атрибута.
ER-диаграмма логического уровня
ER-диаграмма логического уровня
Даталогическое проектирование заключается в проектировании логической структуры БД, Таким образом, главное отличие даталогической модели от инфологической состоит в том, что инфологическая модель хранит в себе всю информацию о предметной области, необходимую и достаточную для проектирования базы данных, но она не привязана к определенной СУБД. Даталогическая модель может не отражать в явном виде все сущности, зафиксированные в инфологической модели, но она должна быть непременно привязана к СУБД, на которой разрабатывается база данных. При проектировании даталогической модели данных должно быть обеспечено однозначное соответствие между конструкциями языка описания данных и графическими обозначениями информационных единиц и связей между ними. Спроектировать логическую структуру базы данных означает определить все информационные единицы и связи между ними, задать их имена. Таким образом даталогическое проектирование сводится к следующим этапам: