Проектирование базы данных на основе модели типа объект- отношение
Имеется целый ряд методик создания информационно-логических моделей. Наиболее популярна в настоящее время методика с использованием ERD (диаграммы, которые в русскоязычной литературе называют объект — отношение, либо сущность—связь) . Модель с использованием ERD была предложена Членом в 1976 г. К настоящему времени разработано несколько ее разновидностей, но все они базируются на графических диаграммах, предложенных Членом, которые конструируются из небольшого числа компонентов и благодаря наглядности представления широко используются.
Рассмотрим используемые при проектировании терминологию и обозначения.
Сущность — реальный либо воображаемый объект, имеющий существенное значение для рассматриваемой предметной области, информация о котором подлежит хранению.
Каждая сущность должна обладать уникальным идентификатором. Каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других экземпляров данного типа, т. е. каждая сущность должна:
• иметь уникальное имя, причем это имя должно всегда однозначно интерпретироваться (определять сущность), и наоборот, одна интерпретация не может применяться к различным именам, если только они не являются псевдонимами;
• обладать одним или несколькими атрибутами, которые либо принадлежат ей, либо наследуются ею через связь;
• обладать одним или несколькими атрибутами, которые однозначно идентифицируют каждый ее экземпляр.
Сущность может быть зависимой и независимой.
Признаком зависимой сущности служит наличие у нее наследуемых через связь атрибутов. Каждая сущность может обладать любым количеством связей с другими сущностями модели.
Связь — поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области. При этом одна из участвующих в связи сущностей — независимая — называется родительской, а другая — зависимая — называется дочерней, или сущностью-потомком. Как правило, каждый экземпляр родительской сущности ассоциирован с произвольным (в том числе нулевым) числом экземпляров дочерней сущности. Каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности родителя.
Связи дается имя, выражаемое глаголом и помещаемое возле линии связи. Имя каждой связи между двумя данными сущностями должно быть уникальным, но имена связей в модели не обязаны быть уникальными. Каждая связь имеет определение. Определение связи образуют соединением имени сущности-родителя, имени связи, выражения степени связи и имени сущности-потомка.
Например, связь продавца с контрактом может быть определена следующим образом:
• продавец может получить вознаграждение за один или более контрактов;
• контракт должен быть инициирован одним продавцом.
На диаграммах связь изображается отрезками. Концы этих отрезков с помощью специальных обозначений указывают степень связи. Кроме того, характер линии (штриховая или сплошная) указывает обязательность связи.
Атрибут — любая характеристика сущности, значимая для рассматриваемой предметной области. Он предназначен для квалификации, идентификации, классификации, количественной характеристики или выражения состояния сущности. Атрибут представляет собой тип характеристик (свойств), ассоциированных с множеством реальных или абстрактных объектов (людей, мест, событий, состояний, идей, пар предметов и т.д.). Экземпляр атрибута — это определенная характеристика конкретного экземпляра сущности. Экземпляр атрибута определяется типом характеристики (например, цвет) и ее значением (например, лиловый), называемым значением атрибута. В ЕRD-модели атрибуты ассоциируются с конкретными сущностями. Каждый экземпляр сущности должен обладать одним конкретным значением для каждого своего атрибута.
Атрибут может быть либо обязательным, либо необязательным. Обязательность означает, что атрибут не может принимать неопределенных значений. Атрибут может быть либо описательным (т. е. обычным дескриптором сущности), либо входить в состав уникального идентификатора (первичного ключа).
Уникальный идентификатор — это атрибут или совокупность атрибутов и/или связей, однозначно характеризующая каждый экземпляр данного типа сущности. В случае полной идентификации экземпляр данного типа сущности полностью идентифицируется своими собственными ключевыми атрибутами, в противном случае в идентификации участвуют также атрибуты сущности-родителя.
Каждый атрибут идентифицируется уникальным именем, выражаемым существительным, описывающим представляемую атрибутом характеристику. Атрибуты изображаются в виде списка имен внутри блока ассоциированной сущности, причем каждый атрибут занимает отдельную строку. Атрибуты, определяющие первичный ключ, размещаются вверху списка.
Каждая сущность должна обладать хотя бы одним возможным ключом. Возможный ключ сущности — это один или несколько атрибутов со значениями, однозначно определяющими каждый ее экземпляр. При существовании нескольких возможных ключей один из них обозначается в качестве первичного, а остальные — как альтернативные.
Большинство связей относятся к категории бинарных и имеют место между двумя сущностями.
Среди бинарных связей существуют три фундаментальных вида связи: один-к-одному (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:1?
- Как формализуется связь 1:M?
- Как формализуется связь M:N?
- Что такое подтип и супертип?
- Что такое композиция связей?
Задания
1. Выделить необходимый набор сущностей, отражающих предметную область и информационные потребности пользователей.
2. Определить необходимый набор атрибутов каждой сущности, выделив идентифицирующие атрибуты.
3. Классифицировать атрибуты каждой сущности (описательные, указывающие, вспомогательные).
4. Определить сущности вида подтип/супертип, где это необходимо.
5. Определить связи между сущностями.
6. Проанализировав структуру связей, исключить избыточные.
7. Определить множественность и условность связей.
8. Дать формулировку связей с точки зрения каждой участвующей сущности.
9. Формализовать связи вида 1:1, 1:M, M:N.
10. Классифицировать сущности, разделив их на стержневые, ассоциативные, характеристические, обозначающие.
11. Построить ER-диаграмму модели базы данных.
12. Описать модель базы данных на языке инфологического проектирования.
Дата добавления: 2016-02-04; просмотров: 3682;