Главная страница
Навигация по странице:

  • Тип связи Пример связи

  • База данных-понятия. Классификация по


    Скачать 0.55 Mb.
    НазваниеКлассификация по
    АнкорБаза данных-понятия.docx
    Дата17.07.2018
    Размер0.55 Mb.
    Формат файлаdocx
    Имя файлаБаза данных-понятия.docx
    ТипДокументы
    #21614
    страница18 из 23
    1   ...   15   16   17   18   19   20   21   22   23

    5.5.Правила порождения реляционных отношений из модели "сущность-связь"



    5.5.1.Бинарные связи


    Тип связи

    Пример связи

    Правило построения отношений

    Отношения

    (1,1):(1,1)

    http://www.mstu.edu.ru/study/materials/zelenkov/1111.gif

    Требуется только одно отношение. Первичным ключом данного отношения может быть ключ любой из сущностей.

    http://www.mstu.edu.ru/study/materials/zelenkov/r1111.gif

    (1,1):(0,1)

    (1,1):(0,n)

    http://www.mstu.edu.ru/study/materials/zelenkov/1101.gif

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

    http://www.mstu.edu.ru/study/materials/zelenkov/r1101.gif

    (0,1):(0,1)

    http://www.mstu.edu.ru/study/materials/zelenkov/0101.gif

    Необходимо использовать три отношения: по одному для каждой сущности (ключи сущностей служат первичными ключами отношений) и одно отношение для связи. Отношение, выделенное для связи, имеет два атрибута - внешних ключа - по одному от каждой сущности.

    http://www.mstu.edu.ru/study/materials/zelenkov/r0101.gif

    (0,1):(0,n)
    (0,1):(1,n)

    http://www.mstu.edu.ru/study/materials/zelenkov/010n.gif

    Формируются три отношения: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соттветствующего отношения, и одно отношение для связи. Отношение, выделенное для связи, имеет два атрибута - внешних ключа - по одному от каждой сущности.

    http://www.mstu.edu.ru/study/materials/zelenkov/r010n.gif

    n : m

    http://www.mstu.edu.ru/study/materials/zelenkov/nm.gif

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

    http://www.mstu.edu.ru/study/materials/zelenkov/r010n.gif


    5.5.2.N - арные связи.


    Общее правило: для представления n-сторонней связи всегда требуется n+1 отношение. Например, в случае трехсторонней связи необходимо использовать четыре отношения, по одному для каждой сущности (причем ключ сущности служит первичным ключом соответствующего отношения), и одно для связи. Отношение, порождаемой для связи, будет иметь среди своих атрибутов ключи от каждой сущности.
    http://www.mstu.edu.ru/study/materials/zelenkov/n-ar1.gif

    5.5.3.Иерархические связи.


    К сожалению, надо признать, что реляционная модель мало подходит для отображения отношений наследования между сущностями (иерархических связей). Напомним, что в таких связях дочерние сущности наследуют все атрибуты родительской, и каждая из них обладает своим уникальным набором дополнительных атрибутов. В параграфе 2.2 приведен пример такой связи между родительской сущностью ЗАКАЗЧИК и дочерними - ЗАРУБЕЖНОЕ_ПРЕДПРИЯТИЕ и ОТЕЧЕСТВЕННОЕ_ПРЕДПРИЯТИЕ.

    В этом случае возможны два варианта построения реляционных отношений. Согласно первому для иерархической структуры создается одно отношение, которое содержит атрибуты связи и всех сущностей. Для примера из параграфа 2.2 мы должны создать отношение ЗАКАЗЧИК(НАЦ_ПРИНАДЛЕЖНОСТЬ, ВАЛЮТА, ЯЗЫК, ФОРМА_СОБСТВЕННОСТИ). Недостаток такого способа - для каждого кортежа часть атрибутов всегда будет неопределена. Т.е. для отечественного предприятия всегда будут иметь значения NULL атрибуты ВАЛЮТА и ЯЗЫК, а для зарубежного атрибут ФОРМА_СОБСТВЕННОСТИ. Более того, этот факт является требованием целостности сущности, следовательно для СУБД должны быть явно указаны несколько списков атрибутов (по числу дочерних сущностей), причем определенные значения могут быть присвоены только членам одного из них. Реляционная модель не поддерживает такого ограничения, на практике его реализуют с помощью триггеров.

    По второму способу генерируется по одному отношению для каждой дочерней сущности. Каждое из этих отношений включает атрибуты родительской сущности и связи кроме атрибутов - дискриминантов т.е. ЗАРУБЕЖНОЕ_ПРЕДПРИЯТИЕ(ВАЛЮТА, ЯЗЫК) и ОТЕЧЕСТВЕННОЕ_ПРЕДПРИЯТИЕ( ФОРМА_СОБСТВЕННОСТИ ). Недостатком данного способа является невозможность получить в одном запросе список всех заказчиков.

    Оба описанных способа представлены на рисунке:

    http://www.mstu.edu.ru/study/materials/zelenkov/rierarch.gif

    Следует отметить, что построенные таким образом реляционные отношения, не являются окончательной схемой базы данных. Их необходимо проверить на избыточные функциональные зависимости и привести к NFBK или нормальной форме более высокого порядка.

    Применив все эти правила к модели "сущность-связь" базы данных publications, построенной в предыдущем параграфе, получим следующую реляционную структуру:

    http://www.mstu.edu.ru/study/materials/zelenkov/struct.gif

    Синим цветом на диаграмме выделены первичные ключи, красным - внешние. Отношения, созданные для представления связей, обозначены серыми прямоугольниками, для сущностей - желтыми прямоугольниками.
    1   ...   15   16   17   18   19   20   21   22   23


    написать администратору сайта