русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Использование ролей


Дата добавления: 2013-12-23; просмотров: 623; Нарушение авторских прав


Пример проектирования с использованием связей более высокого порядка

Правило 7

 

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

 

 

Если применить правило номер 7 к рассмотренному на рисунке 7.51 примеру, то мы получим следующие отношения:

 

Проводник (Фам,…)

Озеро (Озеро,…)

Рыба (Вид,…)

П_О_Р (Фам, Озеро, Вид,…) – первичный ключ не может быть определен до тех пор, пока не будут рассмотрены все другие атрибуты.

 

Если взять атрибуты из примера, то П_О_Р будет выглядеть: П_О_Р (Пфам, Нозеро, вид), то есть в данное отношение не будут добавленны дополнительные атрибуты.

Если каждый проводник предпочитает ловить в каждом озере только один вид рыбы, то

П_О_Р (Фам, Озеро, Вид). Если проводник может указать несколько предпочтительных видов для каждого озера, то П_О_Р (Фам, Озеро, Вид).

Если проводник мог бы указать время года когда он предпочтитает данный вид рыбы в каждом озере, то тогда набор атрибутов <Фам, Озеро, Вид> не мог бы быть первичным ключом, так как возможны были бы подобные кортежи:

<Иванов, Ладога, Лещь, Осень> Иванов предпочитает ловить осенью в Ладоге леща.

<Иванов, Ладога, Лещь, Лето> Иванов предпочитает ловить летом в Ладоге леща.

 

 

 

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



В качестве примера предположим, что для небольшого предприятия-поставщика автомобилей необходимо хранить информацию о производственном персонале. Различают две категории служащих: Мастеров и Сборщиков. Мастера получают фиксированный оклад, в то время как у сборщиков почасовая оплата. Мастера руководят процессом сборки. У каждый мастера в подчинении от 1 до N сборщиков. У каждого сборщика должен быть только один руководитель.

Определим атрибуты представляющие для нас интерес:

Слфам - фамилия служащего
Ртел - рабочий телефон мастера
Дтел - домашний телефон служащего
Адр.сл. - адрес служащего
Тставка - почасовая тарифная ставка сборщика
Оклад - Месячный оклад мастера
Код.сб. - Код сборщика
Сф.ком - сфера компетенции мастера

 

 

Построим Диаграмма ER-типа связи “Руководит” соединяющей две сущности Мастер и Сборщик:

 

Правило 4
Рис. 7.52 Диаграмма ER-типа связи “Руководит”

 

 

По диаграмме ER-типа связи “Руководит” отображенной на рисунке 7.52 формируем отношения используя правило 6

 

Мастер (Таб.ном.маст.,…)

Сборщик (Таб.ном.сборщ.,…,Таб.ном.маст.)

 

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

К отнощению Мастер можно однозначно отнести: Ртел, Оклад, Сф.ком.

К отнощению Сборщик можно однозначно отнести: Тставка, Код.сб.

Легко распределить почти все атрибуты, кроме Слфам, Дтел и Адр.сл.

 

 

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

 

Рис. 7.53 Разбиение общих атрибутов Слфам, Дтел и Адр на две части

 

Но количество атрибутов увеличивается, следовательно, возникнет дублирование.

Лучшим решением данной ситуации является следующее:

 

· Все Мастера и Сборщики рассматриваются как служащие

· Мастера и Сборщики это те роли, которые может играть данный служащий (некоторые служащие являются Мастерами, другие Сборщиками).

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

· Два ролевых набора Мастер и Сборщик соединяются связью “Руководит”.

 

На рисунке 7.54 показано использование ролей для данного примера

 

   
Правило 4
Рис. 7.54 Диаграмма ER-типа связи “Руководит” с использованием ролей  
     

 

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

 



<== предыдущая лекция | следующая лекция ==>
Связи более высокого порядка | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.