ИНФОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
ЛАБОРАТОРНАЯ РАБОТА 12
ИНФОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
Цель работы
Выполнить этап инфологического проектирования базы данных.
Содержание работы и методические указания
к ее выполнению
Цель инфологического этапа проектирования состоит в получении семантических (концептуальных) моделей, отражающих предметную область и информационные потребности пользователей. В качестве инструмента для построения семантических моделей данных на этапе инфологического проектирования является неформальная модель "Сущность-Связь" (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-модели относятся подтипы и супертипы сущностей. Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых имеет общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экзем-пляр супертипа должен относиться к некоторому подтипу. Аналогично языкам объектно-ориентированного программирования вводится возможность наследова-ния типа сущности исходя из одного или нескольких супертипов.
В случае очень большого числа сущностей и связей между ними применяется менее наглядный, чем язык ER-диаграмм, но более содержательный язык инфологического моделирования, в котором сущности и связи представляются предложениями вида
СУЩНОСТЬ (атрибут 1, атрибут 2 , ..., атрибут n)
СВЯЗЬ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...] (атрибут 1,..., атрибут n).
Последовательность выполнения лабораторной работы:
1. Выделить необходимый набор сущностей, отражающих предметную область и информационные потребности пользователей.
2. Определить необходимый набор атрибутов каждой сущности, выделив идентифицирующие атрибуты.
3. Классифицировать атрибуты каждой сущности (описательные, указывающие, вспомогательные).
4. Определить сущности вида подтип/супертип, где это необходимо.
5. Определить связи между сущностями.
6. Проанализировав структуру связей, исключить избыточные.
7. Определить множественность и условность связей.
8. Дать формулировку связей с точки зрения каждой участвующей сущности.
9. Формализовать связи вида 1:1, 1:M, M:N.
10. Классифицировать сущности, разделив их на стержневые, ассоциативные, характеристические, обозначающие.
11. Построить ER-диаграмму модели базы данных.
12. Описать модель базы данных на языке инфологического проектирования.
13. Оформить раздел отчета "Инфологическое проектирование модели базы данных", включив в него информацию из пп. 1 - 12.
Контрольные вопросы