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