Характеристика связей и язык моделирования
Между двумя сущностям, например, А и В, возможны четыре вида связей. · один к одному, · один ко многим, · многие к одному, · многие ко многим. Связь ОДИН-К-ОДНОМУ (1:1) предполагает, что в каждый момент времени каждому представителю (эк земпляру) сущности А соответствует 1 или 0 представителей сущности В. Например, работник может получать зарплату, притом только одну. С вязь ОДИН-К-ОДНОМУ Связь ОДИН-КО-МНОГИМ (1:М) состоит в том, что в каждый момент времени одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В. Например, в доме приживает много жильцов. В частности, дом может быть незаселенным.
Связь ОДИН-КО-МНОГИМ Связь МНОГИЕ-К-ОДНОМУ предполагает, что в каждый момент времени множеству элементов А соответствует один элемент В. Например, несколько студентов представляют собой студенческую учебную группу С вязь МНОГИЕ-К-ОДНОМУ Наконец, связь МНОГИЕ-КО-МНОГИМ состоит в том, что в каждый момент времени множеству элементов А соответствует множество элементов В. Этот тип связи в реляционных БД непосредственно не поддерживается. Примером такой связи может служить тот факт, что у студентов учебные занятия по дисциплинам ведут множество преподавателей. Связь МНОГИЕ-КО-МНОГИМ Характер связей между сущностями не ограничивается перечисленными. Существуют и более сложные связи: · множественные связи между одними и теми же сущностями (учебные занятия у студентов ведут несколько преподавателей, один из студентов имеет несколько научных руководителей); · тренарные связи (преподаватель ведут учебные занятия со студентами по одному расписанию занятий в различных аудиториях).
Классификация сущностей Настал момент разобраться в терминологии. Определяются три основные класса сущностей: стержневые, ассоциативны е и характеристические, а также подкласс ассоциативных сущностей – обозначения. Стержневая сущность (стержень) – это независимая сущность. Такие сущности имеют независимое существование. В рассмотренных ранее примерах стержни – это «Работник», «Зарплата», «Студент», «Преподаватель», «Расписание занятий», «Аудитория». Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" ("один-ко-многим" и т.д.) между двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как полноправные сущности: · они могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности; · могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. Характеристическая сущность (характеристика) – это связь вида " многие-к-одному " или " одна-к-одному " между двумя сущностями (частный случай ассоциации). Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности. Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Например, книга может иметь несколько характеристик переиздания (исправленное, дополненное, переработанное) и т.д. Существование характеристики полностью зависит от характеризуемой сущности. Описание характеристики на языке инфологического моделирования в общем случае можно представить в виде: ХАРАКТЕРИСТИКА (атрибут 1, атрибут 2,...) {СПИСОК ХАРАКТЕРИЗУЕМЫХ СУЩНОСТЕЙ}.Обозначающая сущность или обозначение – это связь вида " многие-к-одной " или " одна-к-одной " между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности.
Рассмотрим пример, связанный с зачислением сотрудников в различные отделы организации. При отсутствии жестких правил (сотрудник может быть зачислен одновременно в несколько отделов или не зачислен ни в один отдел) необходимо создать описание с ассоциацией Зачислени е: Отделы (Номер отдела, Название отдела,...) Служащие (Табельный номер, Фамилия,...) Зачисление [Отделы M, Служащие N] (Номер отдела, Табельный номер, Дата зачисления).Однако, при условии, что каждый из сотрудников должен быть обязательно зачислен в один из отделов, можно создать описание с обозначением Служащие: Отделы (Номер отдела, Название отдела,...) Служащие (Табельный номер, Фамилия,..., Номер отдела, Дата зачисления)[Отделы]В данном примере служащие имеют независимое существование (если удаляется отдел, то из этого не следует, что также должны быть удалены служащие такого отдела). Поэтому они не могут быть характеристиками отделов и названы обозначениями. Обозначения используют для хранения повторяющихся значений больших текстовых атрибутов: "кодификаторы" изучаемых студентами дисциплин, наименований организаций и их отделов, перечней товаров и т.п. Описание обозначения внешне отличается от описания характеристики только тем, что обозначаемые сущности заключается не в фигурные скобки, а в квадратные: ОБОЗНАЧЕНИЕ (атрибут 1, атрибут 2,...)[СПИСОК ОБОЗНАЧАЕМЫХ СУЩНОСТЕЙ].Как правило, обозначения не рассматриваются как полноправные сущности, хотя это не привело бы к какой-либо ошибке. Обозначения и характеристики не являются полностью независимыми сущностями, поскольку они предполагают наличие некоторой другой сущности, которая будет "обозначаться" или "характеризоваться". Однако они все же представляют собой частные случаи сущности и могут, конечно, иметь свойства, могут участвовать в ассоциациях, обозначениях и иметь свои собственные (более низкого уровня) характеристики. Подчеркнем также, что все экземпляры характеристики должны быть обязательно связаны с каким-либо экземпляром характеризуемой сущности. Однако допускается, чтобы некоторые экземпляры характеризуемой сущности не имели связей.
При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово " много ") и необходимое пояснение. Элементы языка ER-диаграмм Рассмотрим пример построения инфологической модели базы данных "Питание", где должна храниться информация о блюдах, их ежедневном потреблении, продуктах, из которых приготавливаются эти блюда, и поставщиках этих продуктов. Информация будет использоваться поваром и руководителем небольшого предприятия общественного питания, а также его посетителями. Пример рецепта Лобио по-грузински При анализе предметной области выделены следующие объекты и характеристики проектируемой базы: 1. Блюда, для описания которых нужны данные, входящие в их кулинарные рецепты: номер блюда (например, из книги кулинарных рецептов), название блюда, вид блюда (закуска, суп, горячее и т.п.), рецепт (технология приготовления блюда), выход (вес порции), название, калорийность и вес каждого продукта, входящего в блюдо. 2. Для каждого поставщика продуктов: наименование, адрес, название поставляемого продукта, дата поставки и цена на момент поставки. 3. Ежедневное потребление блюд (расход): блюдо, количество порций, дата. Анализ объектов позволяет выделить: · Стержни: Блюда, Продукты и Города; · Ассоциации: Состав (связывает Блюда и Продукты),
Поставки (связывает Поставщиков с Продуктами); · Обозначение: Поставщики; · Характеристики: Рецепты и Расход. ER-диаграмма модели показана на рисунке, а модель на языке инфологического моделирования имеет следующий вид: Блюда (БЛ, Блюдо, Вид) Продукты (ПР, Продукт, Калорийность) Поставщики (ПОС, Город, Поставщик) [Город] Состав [Блюда M, Продукты N] (БЛ, ПР, Вес (г)) Поставки [Поставщики M, Продукты N] (ПОС, ПР, Дата_П, Цена, Вес (кг)) Города (Город, Страна) Рецепты (БЛ, Рецепт) {Блюда} Расход (БЛ, Дата_Р, Порций) {Блюда}В этих моделях Блюдо, Продукт и Поставщик – наименования, а БЛ, ПР и ПОС – цифровые коды блюд, продуктов и организаций, поставляющих эти продукты. Инфологическая модель базы данных "Питание" Для наиболее распространенных реляционных баз данных можно предложить язык инфологического моделирования "Таблица-связь". Пример использования этого языка приведен на нижеследующем рисунке. В нем все сущности изображаются таблицами, каждая из которых содержит только один столбец с заголовком, состоящим из имени и типа сущности. Строки таблицы – это перечень атрибутов сущности, а те из них, которые составляют первичный ключ, располагаются рядом и обводятся рамкой. Связи между сущностями указываются стрелками, направленными от первичных ключей или их составляющих. Инфологическая модель базы данных "Питание", построенная с помощью языка "Таблицы-связи" База данных «Библиотека»
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|