Модель Чена.

advertisement
Постановка задачи.
Задача заключается в автоматизации процесса продажи билетов на ж. д. вокзале.
Основному пользователю (продавцу билетов) должна быть предоставлена возможность
добавления, удаления, изменения данных, а главное, возможность удобного, расширенного
поиска требуемой информации. Эта задача несколько осложняется тем, что нельзя точно
выделить набор критериев, по которым будет осуществляться поиск: могут понадобиться
данные обо всех поездах на определенную дату, или промежуток времени; или информация
о поездах, идущих по определенному маршруту или через отдельный пункт. Часто
требуются данные о свободных местах и их типах (купе - плацкарт), а также время прибытия
и стоянки поезда на каждой остановке. Некоторым пассажирам может быть предоставлены
льготы в связи с их социальным положением или возможность бронирования мест. Иногда
требуется информация об обслуживающем персонале. Желательно также предусмотреть
возможность автоматизированного подсчета цены билета, в зависимости от выбранных
критериев. Многих трудностей можно избежать, если грамотно спроектировать структуру
базы данных (определить сущности, отношения между ними, наложить ограничения и т.д.).
Если весь мой проект разделить на логические части, то в результате получится следующее:
1. Построение семантической модели данных.
2. Разработка реляционной структуры данных.
3. Определение ограничений, триггеров, процедур, функций.
4. Разработка приложения.
Остановимся подробнее на первом пункте
Построение семантической модели данных.
Семантическое моделирование представляет собой моделирование структуры данных,
опираясь на смысл этих данных. В качестве инструмента семантического моделирования
используются различные варианты диаграмм сущность-связь (ER - Entity-Relationship).
Первый вариант модели сущность-связь был предложен в 1976 г. Питером Пин-Шэн Ченом.
В дальнейшем многими авторами были разработаны свои варианты подобных моделей
(нотация Мартина, нотация IDEF1X, нотация Баркера и др.). По сути, все варианты диаграмм
сущность-связь исходят из одной идеи - рисунок всегда нагляднее текстового описания. Все
такие диаграммы используют графическое изображение сущностей предметной области, их
свойств (атрибутов), и взаимосвязей между сущностями.
Рассмотрим особенности этих нотаций (Чена, Баркера и IDEF1X).
Модель Чена.
Сущность представляет собой множество экземпляров реальных или абстрактных объектов
(людей, событий, состояний, идей, предметов и т.п.), обладающих общими атрибутами или
характеристиками.
Отношение в самом общем виде представляет собой связь между двумя и более
сущностями. Именование отношения осуществляется с помощью грамматического оборота
глагола (ИМЕЕТ, ОПРЕДЕЛЯЕТ, МОЖЕТ ВЛАДЕТЬ и т.п.).
Символы ERD, соответствующие сущностям и отношениям, приведены ниже.
1
Независимая сущность представляет данные, которые не зависят от других сущностей в
системе. При этом отношения с другими сущностями могут как существовать, так и
отсутствовать. В свою очередь зависимая сущность представляет данные, зависящие от
других сущностей в системе. Поэтому она должна всегда иметь отношения с другими
сущностями.
Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" между двумя
или более сущностями. Ассоциации рассматриваются как полноправные сущности: они
могут участвовать в других ассоциациях точно так же, как независимые сущности; могут
обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для
указания связей, но и любое число других атрибутов, характеризующих связь.
Неограниченное отношение представляет собой отношение, между независимыми
сущностями. Ограниченное отношение представляет собой отношение между зависимой
и независимой сущностями. Существенно-ограниченное отношение используется, когда
соответствующие сущности взаимно-зависимы в системе.
Каждая сущность обладает одним или несколькими атрибутами, которые однозначно
идентифицируют каждый экземпляр сущности. При этом любой атрибут может быть
определен как ключевой. Для идентификации ключевого атрибута используется
подчеркивание имени атрибута.
Сущность может быть разделена и представлена в виде двух или более сущностейкатегорий, каждая из которых имеет общие атрибуты и/или отношения, которые
определяются однажды на верхнем уровне и наследуются на нижнем. Сущности-категории
могут иметь и свои собственные атрибуты и отношения, а также, в свою очередь, могут быть
декомпозированы своими сущностями-категориями на следующем уровне. Расщепляемая на
категории сущность получила название общей сущности (отметим, что на промежуточных
уровнях декомпозиции одна и та же сущность может быть как общей сущностью, так и
сущностью-категорией).
Для демонстрации декомпозиции сущности на категории используются диаграммы
категоризации. Такая диаграмма содержит общую сущность, две и более сущности2
категории и специальный узел-дискриминатор, который описывает способы декомпозиции
сущностей.
Существуют 4 возможных типа дискриминатора:
1. Полное и обязательное вхождение E/M - сущность должна быть одной и только
одной из следуемых категорий. Это означает, что, например, ПРЕПОДАВАТЕЛЕМ
является ФИЗИК, или ХИМИК, или МАТЕМАТИК.
2. Полное и необязательное вхождение E/O - сущность может быть одной и только
одной из следуемых категорий. Это означает, что ПРЕПОДАВАТЕЛЕМ является
ФИЗИК, или ХИМИК, или МАТЕМАТИК, или преподаватель какой-либо другой
дисциплины (например, ИСТОРИК).
3. Неполное и обязательное вхождение I/M - сущность должна быть по крайней мере
одной из следуемых категорий. Это предполагает в дополнение к 1) задавать
следующую ситуацию: ПРЕПОДАВАТЕЛЕМ является одновременно и ФИЗИК и
ХИМИК
4. Неполное и необязательное вхождение I/O - сущность может быть по крайней мере
одной из следуемых
категорий. В дополнение к 2) ПРЕПОДАВАТЕЛЕМ
является преподаватель какой-либо другой дисциплины (например, ИСТОРИК).
3
IDEF1X-модель.
Сущности.
Сущности- предметы (реальные или абстрактные) , к которым относятся данные, т.е. люди,
места, идеи, события и т.д.
Сущность называется независимой от идентификаторов сущности или просто независимой,
если каждый экземпляр сущности может быть однозначно идентифицирован без
определения его отношений с другими сущностями и зависимой от идентификаторов или
просто зависимой, в противном случае.
Синтаксис сущностей.
Сущности изображаются блоками. Если сущность зависима, то концы у блока закругляются.
Каждой сущности присваивается имя (грамматический оборот существительного в ед. числе)
и номер (положительное целое число), разделяемые косой чертой ”/” и помещаемые над
блоком.
Служащий/44
Проект/56
Отношения связи.
Специфическое отношение связи или просто отношение связи –это ассоциация, при
которой каждый экземпляр одной сущности (родительской) связан с произвольным (в том
числе и нулевым) количеством экземпляров второй сущности (потомка), а каждый
экземпляр сущности потомка ассоциирован в точности с одним экземпляром сущности
родителя.
Отношение может дополнительно определяться с помощью указания мощности (какое
количество экземпляров сущности потомка м.б. связано с каждым экземпляром сущностиродителя).
1. 0, 1 или более
2. 1 или более
3. 0, 1
4. некоторое фиксированное число
Если экземпляр сущности-потомка однозначно определяется своей связью с родителем,
отношение называется идентифицирующим связь. В противном случае – отношение, не
идентифицирующее связь.
Синтаксис отношения связи.
Специфическое отношение связи изображается линией, проводимой между сущностьюродителем и потомком с точкой на конце линии у сущности-потомка. Мощность по
умолчанию – “0, 1 или много”.
4
Идентифицирующее отношение изображается сплошной линией. В нем сущность-потомок
всегда является зависимой сущностью. Неидентифицирующее отношение изображается
пунктирной линией.
Отношения категоризации.
Как некоторые реально существующие объекты являются категориями др. реально
существующих объектов, так и некоторые сущности д.б. категориями др. сущностей.
Пусть служащие это объекты, о которых необходима информация. Но, например,
информация о зарплате штатных служащих и служащих-почасовиков будет отличаться. В
IDEF1X-модели они связаны друг с другом через категориальное отношение.
Отношение полной категоризации - отношение между 2 или более сущностями, в котором
каждый экземпляр одной сущности (общей) связан в точности с одним экземпляром одной и
только одной из других сущностей (категорий). Каждый экземпляр общей сущности и
связанный с ним экземпляр одной из категорных сущностей изображают один и тот же
предмет реального мира и поэтому обладают одним и тем же уникальным идентификатором.
Сущности – категории, связанные с одной общей сущностью всегда являются
взаимоисключающими. IDF1X – синтаксис допускает, однако, существование неполного
множества категорий. Если существует экземпляр общей сущности, не связанный ни с каким
экземпляром из сущностей – категорий, то такое отношение называется отношением
неполной категоризации. Значение некоторого атрибута (дискриминатора) в экземпляре
общей сущности показывает, с каким из возможных сущностей - категорий он связан.
(Например, тип служащего). Сущности – категории всегда зависимы от идентификатора.
5
Синтаксис отношений категоризации.
Неспецифические отношения.
Неспецифические отношения (многое ко многим) – это связь между двумя сущностями, при
которой каждый экземпляр первой сущности связан с произвольным (в том числе и
нулевым) количеством экземпляров второй сущности, а каждый экземпляр второй сущности
связан с произвольным (в том числе и нулевым) количеством экземпляров первой сущности.
При дальнейшей разработке модели неспецифическое отношение должно быть заменено на
специфическое посредством введения третьей сущности, которая называется сущностью –
пересечения или ассоциативной сущностью. Неспецифическое отношение может быть
определено с помощью указания мощности на обоих направлениях отношения. Может
использоваться любая комбинация мощностей. Если на любом из концов отношения имеется
мощность “ровно один”, то отношение является специфическим.
Синтаксис неспецифических отношений.
Изображается линией, соединяющей 2 связанные сущности и имеющей точки на обоих
концах отношения. Рядом с каждой из точек помещается мощность. (По умолчанию 0, 1 или
много). Неспецифическому отношению дается двойное имя. Первое имя выражает
отношение либо от левой сущности к правой (расположены горизонтально), либо от верхней
сущности к нижней (расположены вертикально). Второе имя выражает отношение в
противоположном направлении. Первое и второе имена выражаются грамматическими
оборотами глаголов и разделены косой чертой. Отношение называется таким образом,
чтобы при соединении имен сущности с именами отношения получались предложения.
Атрибуты.
Атрибут представляет тип характеристик или свойств, ассоциированных с множеством
реальных или абстрактных объектов.
Возможный ключ сущности – это один или несколько атрибутов, чьи значения однозначно
определяют каждый экземпляр сущности. Каждая сущность должна обладать хотя бы одним
возможным ключом, если же их несколько, то один обозначается в как первичный ключ, а
остальные – как альтернативные.
Если атрибуты, входящие в первичный ключ родительской или общей сущности,
наследуются в качестве атрибутов сущностью – потомком или категорной сущностью
соответственно, то они называются внешними ключами. Если все атрибуты первичных
6
ключей сущности – родителя наследуются в качестве части первичного ключа сущности –
потомка, то отношение, через которое эти атрибуты были унаследованы, называется
идентифицирующим отношением. В противном случае отношение называется
неидентифицирующим. Для всех сущностей – категорий первичный ключ наследуется через
отношение категоризации из первичного ключа общей сущности.
В некоторых случаях сущность – потомок может иметь несколько отношений с одной и той
же сущностью – родителем. Первичный ключ сущности – родителя появится для каждого
отношения в качестве наследуемых атрибутов в сущности – потомке. Для данного
экземпляра сущности – потомка значения наследуемых атрибутов могут быть различными
для различных отношений, т.е. может быть ссылка на два различных экземпляра сущности –
родителя. Например, спецификация некоторого устройства может изображаться двумя
сущностями: “деталь” и “узел”. Сущность деталь в качестве сущности – родителя обладает
двойным отношением с сущностью узел. (Одна и та же деталь может служить как
компонентой, из которой производится узел, так и быть узлом, в который собираются
компоненты). Если номер – детали является первичным ключом для сущности деталь, то
номер – детали дважды появится в сущности узел в качестве наследуемого атрибута. Когда
отдельный атрибут наследуется более одного раза, для каждого случая должно назначаться
имя роли. (В предыдущем примере могут назначаться имена ролей номер – компоненты и
номер – узла). Имена ролей могут использоваться и при единственном появлении
наследуемого атрибута для более точного выражения его смысла в контексте сущности –
потомка, но это не является обязательным.
Синтаксис атрибутов.
Каждый атрибут идентифицируется уникальным именем, выражаемым грамматическим
оборотом существительного в единственном числе. Атрибуты изображаются в виде списка
их имен внутри блока ассоциированной сущности, причем каждый атрибут занимает
отдельную строку. Атрибуты, определяющие первичный ключ, размещаются наверху списка
и отделяются от др. горизонтальной чертой.
Каждому альтернативному ключу присваивается целый уникальный номер “(АК N%)”.
Отдельный атрибут может входить в качестве компоненты в более чем один альтернативный
ключ. Атрибут первичного ключа может служить также частью альтернативного ключа.
Внешний ключ изображается с помощью помещения внутрь блока сущности имен
наследуемых атрибутов, после которых следуют буквы F.K. в скобках.
Имена ролей, как и имена атрибутов, являются грамматическими оборотами
существительного. За именем роли следует имя наследуемого атрибута, отделенное точкой.
Имя роли. имя атрибута (F.K)
7
Модель Баркера.
Дальнейшее развитие ER-подход получил в работах Баркера.
Сущность представляется прямоугольником любого размера, содержащим внутри себя имя
сущности, список имен атрибутов (возможно, неполный) и указатели ключевых атрибутов.
Каждый атрибут занимает отдельную строку. Атрибуты, определяющие первичный ключ,
размещаются наверху списка и выделяются знаком "#".
Атрибут может быть либо обязательным, либо необязательным Обязательность означает,
что атрибут не может принимать неопределенных значений (null values).
Все связи являются бинарными и представляются линиями с двумя концами (соединяющими
сущности), для которых должно быть определено имя, степень множественности (один или
много объектов участвуют в связи) и степень обязательности (т.е. обязательная или
необязательная связь между сущностями).
Для множественной связи линия присоединяется к прямоугольнику сущности в трех точках,
а для одиночной связи - в одной точке. При обязательной связи рисуется непрерывная линия
до середины связи, при необязательной - пунктирная линия.
[Продавец может иметь несколько контрактов.
У контракта д.б. один продавец. ]
8
Помимо перечисленных основных конструкций модель данных может содержать ряд
дополнительных.
Подтипы и супертипы: одна сущность является обобщающим понятием для группы
подобных сущностей. (н-р: супертип - летательный аппарат, подтип – самолет.)
Взаимно исключающие связи: каждый экземпляр сущности участвует только в одной связи
из группы взаимно исключающих связей.
Рекурсивная связь: сущность может быть связана сама с собой.
Неперемещаемые (non-transferrable) связи: экземпляр сущности не может быть перенесен
из одного экземпляра связи в другой.
9
Модель Мартина.
Корпоративная модель данных (EDM - enterprise data model) содержит сущности,
атрибуты и отношения, которые представляют информационные потребности корпорации.
EDM обычно подразделяется в соответствие с предметными областями, которые
представляют группы сущностей. Некоторые предметные области могут покрывать такие
специфические бизнес-функции, как управление контрактами, другие - объединять
сущности, описывающие продукты или услуги.
Информационный инжиниринг
Клайва Финклештейна часто называют отцом информационного инжиниринга, хотя
подобные же концепции излагал вместе с ним и Джеймс Мартин (Martin, James. Managing the
Database Environment. Upper Saddle River, New Jersey: Prentice Hall, 1983). Информационный
инжиниринг использует для управления информацией подход, направляемый бизнесом.
IE служит расширением и развитием нотации и базовых концепций методологии ER,
предложенной Питером Ченом.
IE позволяет более тесно увязать управление информационными ресурсами с
долговременными стратегическими перспективами корпорации. Этот подход, направляемый
требованиями бизнеса, приводит многих разработчиков моделей к выбору IE вместо других
методологий, которые, в основном, концентрируют внимание на решении сиюминутных
задач разработки.
.
10
Рассмотрим представленные модели данных на примере нашей задачи.
Выделим основные сущности.
 “Поезд”- характеризуется лишь типом, т.е. либо скорый, либо пассажирский. Каждый
поезд имеет некоторый набор вагонов, идет по определенному маршруту, кот. не
меняется в течение длительного промежутка времени( например сезона), его
[промежуток времени] мы и рассматриваем.
 “Вагон” - характеризуется также типом: купе или плацкарт, местом формирования, т.е.
где прицепляется к поезду. В каждом вагоне соответственно есть места, которые
представляются зависимой сущностью “Место”.
 Поездом управляет машинист, а в каждый вагон обслуживает проводник. Данные о
машинистах и проводниках находятся в одной сущности “Персонал”, где для их
различения используется флаг “машинист/проводник”.
 Поскольку маршрут поезда не меняется, то он всегда останавливается на одних и тех же
остановках, лишь в разные дни (в зависимости от даты отправления). Т.о. сущность
“Остановки” (характеризующаяся названием пункта и вокзалом, поскольку в некоторых
городах м.б. несколько вокзалов) связана с поездом посредством связи многие-комногим, в которой определяется время прибытия и стоянки поезда в каждом пункте
маршрута.
 Отдельно определяется “справочник льгот”, содержащий данные о скидках ( в %) для
каждой социальной группы.
 И, наконец, “покупка” в которой храниться вся требуемая информация для регистрации
и оформления заказа (т.е. дата покупки, пункты отбытия и прибытия, персональная
информация о человеке, место, наличие льгот, цена и флаг - куплен или забронирован).
11
1. Модель Чена:
12
2. Модель Баркера:
13
3. IDEF1X- модель:
14
Download