Каковы способы представления сущности

Каковы способы представления сущности

Модель «сущность-связь» основывается на некой важной семантической информации о реальном мире и предназначена для логического представления данных. Она определяет значения данных в контексте их взаимосвязи с другими данными. Важным для нас является тот факт, что из модели «сущность-связь» могут быть порождены все существующие модели данных (иерархическая, сетевая, реляционная, объектная), поэтому она является наиболее общей.

Отметим, что модель «сущность-связь» не является моделью данных в том смысле, как это было определено в параграфе 1.1.2, поскольку не определяет операций над данными и ограничивается описанием только их логической структуры.

Модель «сущность-связь» была предложена в 1976 г. Питером Пин-Шэн Ченом, русский перевод его статьи ‘Модель «сущность-связь» — шаг к единому представлению данных’ опубликован в журнале «СУБД» N 3 за 1995 г.

2.1.2. Элементы модели.

Любой фрагмент предметной области может быть представлен как множество сущностей , между которыми существует некоторое множество связей . Дадим определения:

Сущность (entity) — это объект, который может быть идентифицирован неким способом, отличающим его от других объектов. Примеры: конкретный человек, предприятие, событие и т.д.

Набор сущностей (entity set) — множество сущностей одного типа (обладающих одинаковыми свойствами). Примеры: все люди, предприятия, праздники и т.д. Наборы сущностей не обязательно должны быть непересекающимися. Например, сущность, принадлежащая к набору МУЖЧИНЫ, также принадлежит набору ЛЮДИ.

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

Пример:
рассмотрим множество работников некого предприятия. Каждого из них можно описать с помощью характеристик табельный номер, имя, возраст . Поэтому, сущность СОТРУДНИК имеет атрибуты ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ, ВОЗРАСТ. Используя нотацию языка Pascal этот факт можно представить как:

В дальнейшем для определения сущности и ее атрибутов будем использовать обозначение вида

СОТРУДНИК (ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ, ВОЗРАСТ).

Например отделы,на которые подразделяется предприятие, и в которых работают сотрудники, можно описать как ОТДЕЛ(НОМЕР_ОТДЕЛА, НАИМЕНОВАНИЕ).

Множество значений (область определения) атрибута называется доменом . Например, для атрибута ВОЗРАСТ домен (назовем его ЧИСЛО_ЛЕТ) задается интервалом целых чисел больших нуля, поскольку людей с отрицательным возрастом не бывает.

В упомянутой статье П.Чена атрибут определяется как функция, отображающая набор сущностей в набор значений или в декартово произведение наборов значений . Так атрибут ВОЗРАСТ производит отображение в набор значений (домен) ЧИСЛО_ЛЕТ. Атрибут ИМЯ производит отображение в декартово произведение наборов значений ИМЯ, ФАМИЛИЯ и ОТЧЕСТВО.

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

Связь (relationship) — это ассоциация, установленная между несколькими сущностями. Примеры:

  • поскольку каждый сотрудник работает в каком-либо отделе, между сущностями СОТРУДНИК и ОТДЕЛ существует связь «работает в» или ОТДЕЛ-РАБОТНИК;
  • так как один из работников отдела является его руководителем, то между сущностями СОТРУДНИК и ОТДЕЛ имеется связь «руководит» или ОТДЕЛ-РУКОВОДИТЕЛЬ;
  • могут существовать и связи между сущностями одного типа, например связь РОДИТЕЛЬ — ПОТОМОК между двумя сущностями ЧЕЛОВЕК;

(В скобках здесь следует отметить, что в методике проектирования данных есть своеобразное правило хорошего тона, согласно которому сущности обозначаются с помощью имен существительных, а связи — глагольными формами. Данное правило, однако, не является обязательным)

К сожалению, не существует общих правил определения, что считать сущностью, а что связью. В рассмотренном выше примере мы положили, что «руководит» — это связь. Однако, можно рассматривать сущность «руководитель», которая имеет связи «руководит» с сущностью «отдел» и «является» с сущностью «сотрудник».

Связь также может иметь атрибуты. Например, для связи ОТДЕЛ-РАБОТНИК можно задать атрибут СТАЖ_РАБОТЫ_В_ОТДЕЛЕ.

Роль сущности в связи — функция, которую выполняет сущность в данной связи. Например, в связи РОДИТЕЛЬ-ПОТОМОК сущности ЧЕЛОВЕК могут иметь роли «родитель» и «потомок». Указание ролей в модели «сущность-связь» не является обязательным и служит для уточнения семантики связи.

Набор связей (relationship set) — это отношение между n (причем n не меньше 2) сущностями, каждая из которых относится к некоторому набору сущностей.

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

В случае n=2 , т.е. когда связь объединяет две сущности, она называется бинарной. Доказано, что n -арный набор связей ( n>2 ) всегда можно заменить множеством бинарных, однако первые лучше отображают семантику предметной области.

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


    один к одному (обозначается 1 : 1 ). Это означает, что в такой связи сущности с одной ролью всегда соответствует не более одной сущности с другой ролью. В рассмотренном нами примере это связь «руководит», поскольку в каждом отделе может быть только один начальник, а сотрудник может руководить только в одном отделе. Данный факт представлен на следующем рисунке, где прямоугольники обозначают сущности, а ромб — связь. Так как степень связи для каждой сущности равна 1, то они соединяются одной линией. Другой важной характеристикой связи помимо ее степени является класс принадлежности входящих в нее сущностей или кардинальность связи. Так как в каждом отделе обязательно должен быть руководитель, то каждой сущности «ОТДЕЛ» непременно должна соответствовать сущность «СОТРУДНИК». Однако, не каждый сотрудник является руководителем отдела, следовательно в данной связи не каждая сущность «СОТРУДНИК» имеет ассоциированную с ней сущность «ОТДЕЛ».

Таким образом, говорят, что сущность «СОТРУДНИК» имеет обязательный класс принадлежности (этот факт обозначается также указанием интервала числа возможных вхождений сущности в связь, в данном случае это 1,1), а сущность «ОТДЕЛ» имеет необязательный класс принадлежности (0,1). Теперь данную связь мы можем описать как 0,1:1,1 . В дальнейшем кардинальность бинарных связей степени 1 будем обозначать следующим образом:

один ко многим ( 1 : n ). В данном случае сущности с одной ролью может соответствовать любое число сущностей с другой ролью. Такова связь ОТДЕЛ-СОТРУДНИК. В каждом отделе может работать произвольное число сотрудников, но сотрудник может работать только в одном отделе. Графически степень связи n отображается «древообразной» линией, так это сделано на следующем рисунке. Данный рисунок дополнительно иллюстрирует тот факт, что между двумя сущностями может быть определено несколько наборов связей.

Здесь также необходимо учитывать класс принадлежности сущностей. Каждый сотрудник должен работать в каком-либо отделе, но не каждый отдел (например, вновь сформированный) должен включать хотя бы одного сотрудника. Поэтому сущность «ОТДЕЛ» имеет обязательный, а сущность «СОТРУДНИК» необязательный классы принадлежности. Кардинальность бинарных связей степени n будем обозначать так:

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

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

Если существование сущности x зависит от существования сущности y , то x называется зависимой сущностью (иногда сущность x называют «слабой», а «сущность» y — сильной). В качестве примера рассмотрим связь между ранее описанными сущностями РАБОЧАЯ_ГРУППА и КОНТРАКТ. Рабочая группа создается только после того, как будет подписан контракт с заказчиком, и прекращает свое существование по выполнению контракта. Таким образом, сущность РАБОЧАЯ_ГРУППА является зависимой от сущности КОНТРАКТ. Зависимую сущность будем обозначать двойным прямоугольником, а ее связь с сильной сущностью линией со стрелкой: Заметим, что кардинальность связи для сильной сущности всегда будет (1,1). Класс принадлежности и степень связи для зависимой сущности могут быть любыми. Предположим, например, что рассматриваемое нами предприятие пользуется несколькими банковскими кредитами, которые представляются набором сущностей КРЕДИТ(НОМЕР_ДОГОВОРА,СУММА, СРОК_ПОГАШЕНИЯ, БАНК). По каждому кредиту должны осуществляться выплаты процентов и платежи в счет его погашения. Этот факт представляется набором сущностей ПЛАТЕЖ(ДАТА, СУММА) и набором связей «осуществляется по». В том случае, когда получение запланированного кредита отменяется, информация о нем должна быть удалена из базы даных. Соответственно, должны быть удалены и все сведения о плановых платежах по этому кредиту. Таким образом, сущность ПЛАТЕЖ зависит от сущности КРЕДИТ.

Источник

Представление сущностей

Уровень 2. Структура информации

Здесь рассматривается представление концептуальных объектов – сущностей, связей и значений, которые существовали в нашем воображении.

Представление значений не требует специального рассмотрения, так как существует непосредственное их представление, например, значения чисел – 12, 45, …; значения строк – «красный», «зеленый», …

Рассмотрим представление сущностей и связей, т.е. как организовать информацию о сущностях и связях. Информацию о сущностях и информацию о связях полезно разделять для идентификации функциональных зависимостей между данными.

Мы определили сущности как объекты, которые можно идентифицировать и отличать от других объектов; поэтому представление сущности означает ее идентификацию.

Для идентификации сущности в множестве сущностей выделяется ключ сущности – атрибут или группа атрибутов, такая, что однозначно определяет сущность. Например, в множестве сущностей СОТРУДНИК в качестве ключа сущности может быть выбран атрибут Номер сотрудника.

Если существует несколько ключей, обычно определяют первичный ключ сущности (primary key – PK) и выбирают для него семантически значимый ключ.

Таким образом, представление сущности может быть организовано следующим образом:

Информацию о сущностях удобно представлять в виде таблицы. Каждая строка таблицы относится к одной и той же сущности, а каждый столбец относится к множеству значений, которое, в свою очередь, относится к атрибуту. Порядок строк и столбцов не важен.

Источник

Атрибуты

Все предметы в реальном мире имеют некоторые характеристики (например, высота, температура, возраст, координаты и т.п.).

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

Например, для сущности Студент обращение к его атрибуту Фамилия имеет вид:

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

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

Например, для сущности Студент атрибут Фамилия является удовлетворительным идентификатором, если в университете нет однофамильцев. В более общем случае идентификатор сущности Студент будет состоять из трех атрибутов (Фамилия, Имя, Отчество), а возможно и более (например, при наличии полных однофамильцев могут быть добавлены атрибуты Домашний_адрес, Номер_группы или Дата_рождения).

Сущность может иметь несколько идентификаторов. Например, для сущности Аэропорт атрибут Код_аэропорта является идентификатором. Комбинация атрибутов Долгота и Широта является другим идентификатором сущности Аэропорт.

Если сущность имеет несколько идентификаторов, один из них выбирается как привилегированный.

Для упрощения структуры информационной модели и облегчения работы с ней рекомендуется в качестве идентификатора использовать номер экземпляра сущности(идентификационный номер, ID). Это позволяет исключить необходимость обработки составных идентификаторов.

Атрибуты, не являющиеся идентификаторами, называются вторичными ключами. Например, для сущности Аэропорт вторичным ключом является атрибут Вид_аэропорта, поскольку может существовать достаточно большое количество аэропортов одного вида.

Способы представления сущностей с атрибутами

Сущности с атрибутами могут быть представлены различными способами:

При графическом способе (Рисунок 4 .55) сущность изображается прямоугольником, содержащим имя, ключевой литерал сущности, ее номер в информационной модели, имена атрибутов. Имя сущности, ее номер и ключевой литерал (на данном рисунке буква С в скобках) могут записываться внутри, в верхней части прямоугольника (Рисунок 4 .55,а) или снаружи, над прямоугольником (Рисунок 4 .55,б).

Атрибуты, составляющие привилегированный идентификатор сущности, некоторым образом выделяются. Например, в классическом информационном моделировании они отмечаются * (см. Рисунок 4 .55,а), в CASE-средстве ERwin они записываются первыми среди атрибутов и отделяются от остальных чертой (на Рисунок 4 .55,б атрибуты Фамилия, Имя, Отчество).

Источник

Читайте также:  Как убавить шапку английской резинкой спицами способы
Оцените статью
Разные способы