Что называется связью между сущностями
BestProg
ER-модель. Понятие связи. Мощность связи. Типы связей. Примеры
Рекомендуется перед изучением данной темы ознакомиться с следующими темами:
Содержание
Поиск на других ресурсах:
1. Что такое связь в ER-модели? Пример
Между двумя сущностями может быть установлена связь. Отношения между сущностями характеризуются глаголом, который можно применить для взаимодействия между ними. Связь – это некое отношение между двумя типами сущностей.
2. Как связи обозначаются в ER-модели?
В ER-модели связи обозначаются в виде ромба. Внутри ромба указывается глагол, который определяет характер взаимодействия между типами сущностей.
3. Какие типы связей различают в ER-модели?
Между типами сущностей различают следующих 3 типа связей:
4. Пример связи типа «один ко многим» – 1:М
На рисунке 1 изображен фрагмент ER-модели, которая демонстрирует связь между типами сущностей Студент и Группа.
Рис. 1. Связь между типами сущностей Студент и Группа
5. Что такое мощность связи? Пример
Мощность связи – это значение максимального количества конкретных экземпляров сущностей, которые могут использоваться для данной связи. Мощность связи 5 говорит о том, что в данной связи может быть использовано не более 5 разных экземпляров сущностей. Или, иными словами, не более 5 отличных между собой значений.
Например. Студент учится в группе. Между типами сущностей Студент и Группа можно установить связь 1:30, как показано на рисунке 2. Число 30 означает, что в группе может учиться не более 30 студентов.
Рисунок 2. Связь между сущностями Студент и Группа
Если количество значений экземпляров сущностей произвольно, то мощность связи наиболее часто представляется символом M или знаком ∝ (бесконечность).
Использование конкретных числовых значений в мощности связи есть удобным при разработке программного обеспечения, поскольку можно более качественно реализовать структуры данных зная их максимальный размер.
6. Пример связи типа «много ко многим»
Рисунок 3. Отображение связи типа «много ко многим»
На рисунке 3 символами M и N обозначен тип связи «много ко многим». Этот тип связи выбран, так как один студент может изучать несколько (много) дисциплин, и, наоборот, одну дисциплину может изучать несколько студентов.
7. Какое характерное отличие типа связи «один к одному» 1:1 в сравнении с другими типами?
Связь «много ко многим» сложно реализовать программно, так как реляционные базы данных поддерживают связь «один ко многим». Чтобы решить эту проблему, разработчик базы данных создает искусственный тип сущности, которая выполняет функции коммутатора между двумя основными сущностями.
Пример. Для двух типов сущностей Студент и Дисциплина можно реализовать искусственный тип сущности, как показано на рисунке 4.
Рис. 4. Реализация связи «много ко многим» или M:N
Для обеспечения лучшей наглядности вышеприведенной схемы, часто реализуется упрощенный вариант, который изображен на рисунке 5. В этом случае, искусственный тип сущности изображают в виде ромба, вписанного в прямоугольник.
Рис. 5. Реализация упрощенного варианта искусственного типа сущности на ER-диаграмме
Что называется связью между сущностями
Модель «сущность-связь» основывается на некой важной семантической информации о реальном мире и предназначена для логического представления данных. Она определяет значения данных в контексте их взаимосвязи с другими данными. Важным для нас является тот факт, что из модели «сущность-связь» могут быть порождены все существующие модели данных (иерархическая, сетевая, реляционная, объектная), поэтому она является наиболее общей.
Отметим, что модель «сущность-связь» не является моделью данных в том смысле, как это было определено в параграфе 1.1.2, поскольку не определяет операций над данными и ограничивается описанием только их логической структуры.
2.1.2. Элементы модели.
В дальнейшем для определения сущности и ее атрибутов будем использовать обозначение вида
СОТРУДНИК (ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ, ВОЗРАСТ).
Например отделы,на которые подразделяется предприятие, и в которых работают сотрудники, можно описать как ОТДЕЛ(НОМЕР_ОТДЕЛА, НАИМЕНОВАНИЕ).
Связь также может иметь атрибуты. Например, для связи ОТДЕЛ-РАБОТНИК можно задать атрибут СТАЖ_РАБОТЫ_В_ОТДЕЛЕ.
Хотя, сторого говоря, понятия «связь» и «набор связей» различны (первая является элементом второго), их, тем не менее, очень часто смешивают. Поэтому, мы, не претендуя на академическую строгость, в дальнейшем также будем часто пользоваться терминами «связь» имея в виду «набор связей» и «сущность» имея в виду «набор сущностей».
Здесь также необходимо учитывать класс принадлежности сущностей. Каждый сотрудник должен работать в каком-либо отделе, но не каждый отдел (например, вновь сформированный) должен включать хотя бы одного сотрудника. Поэтому сущность «ОТДЕЛ» имеет обязательный, а сущность «СОТРУДНИК» необязательный классы принадлежности. Кардинальность бинарных связей степени n будем обозначать так:
Что называется связью между сущностями
При проектировании информационных систем с входящими в их состав базами данных удобно пользоваться классификацией моделей изображённой на рис. 1. Все модели данных делятся на три вида, используемые на трёх этапах проектирования. На первом этапе исследуется предметная область, выявляются в ней объекты и процессы, которые нужно будет отобразить в информационной системе при решении задач, для которых разрабатывается информационная система. Модель, используемая на этом этапе, служит для наглядного представления семантических связей в предметной области. Строгая формализация структуры данных на этом этапе не обязательна. Такие модели называются инфологическими. В настоящее время наиболее распространённой инфологической моделью является модель сущность-связь.
Рис. 1. Модели данных |
После того как закончено исследование предметной области и детально поставлена задача проектирования можно переходить ко второму этапу, на котором проектируется база данных. На этом этапе используются формальные модели данных, в которые нужно преобразовать инфологическую модель. Такие модели, непосредственно используемые в базах данных, называются даталогическими. На рис.1 показаны три вида датологических моделей: иерархические, сетевые и реляционные.
Иерархическая модель имеет древовидную структуру. Каждая ветвь в такой структуре имеет одну родительскую ветвь и много дочерних. Примерами иерархических систем служат завод, система каталогов с файлами в ЭВМ. Завод состоит из цехов, цеха из участков, участки из станков с рабочими.
В иерархической системе элементы одного уровня не связаны непосредственно между собой. В ней нельзя непосредственно указать, что участок механического цеха снабжает деталями участок сборочного цеха. Нужна горизонтальная связь между элементами одного уровня иерархии. Поэтому для завода лучше подходит сетевая модель, в которой можно указать непосредственную связь любого элемента с любым.
Наибольшее распространение получили реляционные модели баз данных, о которых подробно будет рассказано в следующей лекции.
Базу данных независимо от её даталогической модели можно по-разному разместить на разных внешних носителях. Например, можно использовать жёский диск или твёрдотельную внешнюю память. Для описания физического размещения базы даных служит физическая модель.
МОДЕЛЬ СУЩНОСТЬ-СВЯЗЬ
Инфологическое моделирование
Информационая система (ИС) создаётся для решения задач некоторой организации (завода, банка, вуза, библиотеки и т.д.). Для создания и эксплуатации ИС требуется её описание. Полное, исчерпывающее, описание ИС должно включать в себя не только саму ИС, но и окружающую среду, то есть, должно быть описанием предметной области.
Существенной, если не главной частью ИС являются хранящиеся в ней данные. При проектировании ИС данные нужно представить в виде простой модели, отображающей смысл данных, их взаимосвязь и не привязываться при этом к конкретному типу базы данных. Такие модели получили название инфологических.
Инфологическую модель можно построить, опираясь только на интуитивное представление о данных.
На рис. 2 приведён простой (вырожденный) пример инфологической модели.
Рис. 2. Инфологическая модель преподавателя |
Если нужно более подробно описать дисциплины и иметь возможность, зная дисциплину, найти ведущего её преподавателя, то модель придётся уcложнить, выделив дисциплину отдельно и связав её с преподавателем (рис. 3)
Рис. 3. Инфологическая модель преподаватель-дисциплина |
Один преподаватель может вести много дисциплин и одну дисциплину могут вести много преподавателей. Такая связь называется многие ко многим и обозначается как M:N, а на рисунках часто как ∞ ←→ ∞.
Рис. 4. Инфологическая модель для построения расписания занятий |
На рис. 5 изображена инфологическая модель библиотеки
Рис. 5. Инфологическая модель библиотеки |
В 1976 году Чен предложил термин сущность, а состоящая из связанных между собой сущностей модель получила название модель сущность-связь (entity-relation).
Определение
Сущность состоит из множества экземпляров, обладающих одинаковым набором свойств.
Совокупность свойств, необходимая для отличия одного экземпляра от других, называется идентификатором сущности.
Рассмотрим подробно, какими бывают сами сущности, их свойства и связи. В литературе часто вместо термина свойство сущности используют атрибут сущности. Но термин атрибут отношения (колонка, столбец таблицы) применяют в реляционной модели. При одновременном применении обеих моделей может возникнуть путаница.
Виды сущностей
Рис. 6. Тип и подтип |
Связи между сущностями
Рис. 7. Связь между детьми и родителями |
Полной связью между двумя сущностями называется такая связь, при которой каждому экземпляру одной сущности соответствует хотя бы один экземпляр другой сущности. Например, каждому студенту соответствует група (одна) и каждой группе соответствуют студенты.
При частичной связи некоторые экземпляры одной сущности не связаны ни с одним экземпляром другой сущности. Например, не все студенты живут в общежитии.
Связь типа 1:1 между сущностями встречается нечасто. Теоретически всегда такие сущности можно объединить в одну. Связь 1:1 создают для лучшего понимания модели. Напимер, директора и завод лучше рассматривать как разные сущности. Связь 1:1 коварна кажущейся очевидностью, Например, у государства один глава: император, президент, царь и т.д., но в древнем Риме правили два консула.
Связь типа M:N, M>1, N>1(или ∞ ←→ ∞) требует при переходе к реляционной модели строить дополнительное отношение (таблицу связей). Примеры связей типа M:N приведены на рисунках 3, 4, 5.
Рекурсивные связи между равноправными экземплярами сущности. На рис. 9 экземпляры сущности студенты, живущие в общежитии, объединены по признаку (свойству) номер комнаты, в которой они живут.
Рис. 9. Рекурсивные связи между студентами, живущими в одной комнате |
Рекурсивные связи между неравноправными экземплярами сущности. Так связаны между собой сотрудники и начальник отдела как экземпляры сущности Сотрудники института.
В одной сущности тип и подтип. Несколько экземпляров сущности, связанные одинаковым значением одного свойства, можно выделить в подтип, т.е. в новую сущность, являющуюся подтипом исходной. На рис. 6 в подтип выделены сотрудники, имеющие должность программист.
Примеры рекурсивных связей показывают, что между сущностями, связями и свойствами существуют очень сложные зависимости.
Свойства сущностей:
Простое свойство: фамилия.
Многозначные: награды, специальности.
Ключевое: номер зачётной книжки.
ПРЕОБРАЗОВАНИЕ МОДЕЛИ СУЩНОСТЬ-СВЯЗЬ
В РЕЛЯЦИОННУЮ МОДЕЛЬ
Связь один ко многим
Для задания связи один ко многим в отношеннии со стороны многие создаётся дополнительный атрибут внешний ключ (рис. 10). Внешний ключ принимает значения только из множества значений первичного ключа отношения со стороны один.
Рис. 10.Преобразование модели сущность-связь со свзью 1:N в реляционную модель |
Связь многие ко многим
Для задания связи многие ко многим необходимо создать дополнительную таблицу связей (рис. 11), атрибутами которой служат внешние ключи, соответствующие первичным ключам связываемых таблиц.
Рис. 11.Преобразование модели сущность-связь со свзью M:N в реляционную модель |
На рис. 12 показаны заполненные таблицы Prep, Disc и PrepDisс. Для того, чтобы указать, что преподаватель Андреев ведёт дисциплину Фортран, в таблице PrepDisc создана строка со значеиями KodP=1 и kodD=3.
Рис. 12. Пример заполнения таблицы связей в реляционной модели. |
Связь степени К
Для связи степени К в реляционной модели строится таблица связи с К внешними ключами. На рис. 13 построены модель сущность-связь и реляционная модель для связи степени К=5.
3. Модель «сущность–связь»
Предположим, что проектируется база данных, предназначенная для хранения информации о деятельности некоторого банка. Этот банк имеет филиалы. Филиалы управляются менеджерами. Клиенты имеют в филиалах счета разных типов – текущие, срочные, до востребования, депозитные, карточные. Филиалы обрабатывают эти счета. Описываемую предметную область назовем БАНК. В ней могут быть выделены четыре сущности: филиал, менеджер, счет, клиент.
В реальном мире существуют связи между сущностями. Связь представляет взаимодействие между сущностями. Она характеризуется мощностью, которая показывает, сколько сущностей участвует в связи. Связь между двумя сущностями называется бинарной, а связь между более чем с двумя сущностями – тернарной.
В рассматриваемой предметной области БАНК можно выделить три связи.
1. МЕНЕДЖЕР – УПРАВЛЯЕТ – ФИЛИАЛ
2. ФИЛИАЛ – ОБРАБАТЫВАЕТ – СЧЕТ
3. КЛИЕНТ – ИМЕЕТ – СЧЕТ
Важной характеристикой связи является тип связи (кардинальность). Рассмотрим типы связей 1–3.
Рассмотрим понятие класс принадлежности сущности.
Что называется связью между сущностями
Мы опишем работу с ER-диаграммами близко к нотации Баркера, как довольно легкой в понимании основных идей. Данная глава является скорее иллюстрацией методов семантического моделирования, чем полноценным введением в эту область.
Основные понятия ER-диаграмм
Каждая сущность должна иметь наименование, выраженное существительным в единственном числе.
Примерами сущностей могут быть такие классы объектов как «Поставщик», «Сотрудник», «Накладная».
Каждая сущность в модели изображается в виде прямоугольника с наименованием:
Например, представителем сущности «Сотрудник» может быть «Сотрудник Иванов».
Экземпляры сущностей должны быть различимы, т.е. сущности должны иметь некоторые свойства, уникальные для каждого экземпляра этой сущности.
Наименование атрибута должно быть выражено существительным в единственном числе (возможно, с характеризующими прилагательными).
Примерами атрибутов сущности «Сотрудник» могут быть такие атрибуты как «Табельный номер», «Фамилия», «Имя», «Отчество», «Должность», «Зарплата» и т.п.
Атрибуты изображаются в пределах прямоугольника, определяющего сущность:
Сущность может иметь несколько различных ключей.
Ключевые атрибуты изображаются на диаграмме подчеркиванием:
Связи позволяют по одной сущности находить другие сущности, связанные с нею.
Графически связь изображается линией, соединяющей две сущности:
Каждая связь имеет два конца и одно или два наименования. Наименование обычно выражается в неопределенной глагольной форме: «иметь», «принадлежать» и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.
Каждая связь может иметь один из следующих типов связи:
Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности.
Каждая связь может иметь одну из двух модальностей связи:
Модальность «может» означает, что экземпляр одной сущности может быть связан с одним или несколькими экземплярами другой сущности, а может быть и не связан ни с одним экземпляром.
Модальность «должен» означает, что экземпляр одной сущности обязан быть связан не менее чем с одним экземпляром другой сущности.
Связь может иметь разную модальность с разных концов (как на Рис. 4).
Описанный графический синтаксис позволяет однозначно читать диаграммы, пользуясь следующей схемой построения фраз:
Каждая связь может быть прочитана как слева направо, так и справа налево. Связь на Рис. 4 читается так:
Слева направо: «каждый сотрудник может иметь несколько детей».
Справа налево: «Каждый ребенок обязан принадлежать ровно одному сотруднику».
Пример разработки простой ER-модели
ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей является итерационным. Разработав первый приближенный вариант диаграмм, мы уточняем их, опрашивая экспертов предметной области. При этом документацией, в которой фиксируются результаты бесед, являются сами ER-диаграммы.
Предположим, что перед нами стоит задача разработать информационную систему по заказу некоторой оптовой торговой фирмы. В первую очередь мы должны изучить предметную область и процессы, происходящие в ней. Для этого мы опрашиваем сотрудников фирмы, читаем документацию, изучаем формы заказов, накладных и т.п.
Задав дополнительные вопросы менеджеру, мы выяснили, что фирма имеет несколько складов. Причем, каждый товар может храниться на нескольких складах и быть проданным с любого склада.
Куда поместить сущности «Накладная» и «Склад» и с чем их связать? Спросим себя, как связаны эти сущности между собой и с сущностями «Покупатель» и «Товар»? Покупатели покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара. Каждый покупатель может получить несколько накладных. Каждая накладная обязана выписываться на одного покупателя. Каждая накладная обязана содержать несколько товаров (не бывает пустых накладных). Каждый товар, в свою очередь, может быть продан нескольким покупателям через несколько накладных. Кроме того, каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных. Таким образом, после уточнения, диаграмма будет выглядеть следующим образом:
Точно также поступим со связью, соединяющей сущности «Склад» и «Товар». Введем дополнительную сущность «Товар на складе». Атрибутом этой сущности будет «Количество товара на складе». Таким образом, товар будет числиться на любом складе и количество его на каждом складе будет свое.
Теперь можно внести все это в диаграмму:
Концептуальные и физические ER-модели
Разработанный выше пример ER-диаграммы является примером концептуальной диаграммы. Это означает, что диаграмма не учитывает особенности конкретной СУБД. По данной концептуальной диаграмме можно построить физическую диаграмму, которая уже будут учитываться такие особенности СУБД, как допустимые типы и наименования полей и таблиц, ограничения целостности и т.п. Физический вариант диаграммы, приведенной на Рис. 9 может выглядеть, например, следующим образом:
Легко заметить, что полученные таблицы сразу находятся в 3НФ.
Выводы
Реальным средством моделирования данных является не формальный метод нормализации отношений, а так называемое семантическое моделирование.
Диаграммы сущность-связь позволяют использовать наглядные графические обозначения для моделирования сущностей и их взаимосвязей.
Различают концептуальные и физические ER-диаграммы. Концептуальные диаграммы не учитывают особенностей конкретных СУБД. Физические диаграммы строятся по концептуальным и представляют собой прообраз конкретной базы данных. Сущности, определенные в концептуальной диаграмме становятся таблицами, атрибуты становятся колонками таблиц (при этом учитываются допустимые для данной СУБД типы данных и наименования столбцов), связи реализуются путем миграции ключевых атрибутов родительских сущностей и создания внешних ключей.
При правильном определении сущностей, полученные таблицы будут сразу находиться в 3НФ. Основное достоинство метода состоит в том, модель строится методом последовательных уточнений первоначальных диаграмм.
В данной главе, являющейся иллюстрацией к методам ER-моделирования, не рассмотрены более сложные аспекты построения диаграмм, такие как подтипы, роли, исключающие связи, непереносимые связи, идентифицирующие связи и т.п.