Теория и практика построения баз данных (1088289), страница 18
Текст из файла (страница 18)
Взаимоотношения сущностей выражаются связями (ге!а|!опз!Црз). Модель «сущность — связь» включает в себя классы связей и экземпляры связей'. Классы связей (ге!аг!опз)ир с!авзез) — это взаимоотношения между классами сущностей, а экзелгпляры связи (ге!ацопз1цр |пз|апсез) — взаимоотношения между экземплярами сущностей.
У связей могут быть атрибуты. Класс связей может затрагивать несколько классов сущностей. Число классон сущностей, участвующих в связи, называется степенью связи (ге1а|юпвй|р г)едгее). Изображенная на рис. 3.2, а связь ПРОДАВЕЦ-ЗАКАЗ имеет степень 2, поскольку ' Лля краткости мы булем иногда спускать слоне,зкленюлр в тех случаях, когда ил контекста будет очевидно, что падрагумевается именно экземпляр сущности, а не класс суепюстей.
Элементы модели «сущность — связь» 85 в ней участвуют два класса сущностей: ПРОДАВЕЦ н ЗАКАЗ. Связь РОДИТЕЛЬ на рис. 3.2, б имеет степень 3, так как в ней участвуют три класса сущностей: МАТЬ, ОТЕЦ и РЕБЕНОК. Связи степени 2 весьма распространены, их часто называют еще бинарными связхьии (шпагу ге!а|)опзЬ)рз). Рис. 3.2. Различные степени связей: а — связь степени 2; б — связь степени 3 Три типа бинарных связей На рнс. З.З показаны три типа бинарных связей. В связи 1:1 («один к одномуь) одиночный экземпляр суп|ности одного типа связан с одиночным экземпляром сущности другого типа. На рис, 3.3, а связь СЛУЖЕБНЫЙ АВТОМОБИЛЬ связывает одиночную сущность класса СОТРУДНИК с одиночной сущностью класса АВТОМОБИЛЬ. В соответствии с этой диаграммой, нн за одним сотрудником не закреплено более одного автомобиля, и нп один автомобиль не закреплен более чем за одним сотрудником.
г Рис. 3.3. Три типа бинарных связей: а — бинарная связь 1;1; б — бинарная связь 1:Н; в — бинарная связь Н:М; г — представление связи с помощью разветвлений На рис, З.З, б изображен второй тип связи, 1:)чг («один к Х» или «один ко многимь). В этой связи, которая называется ОБЩЕЖИТИЕ-ЖИЛЕЦ, единичный экземпляр сущности класса ОБЩЕЖИТИЕ связан со многими экземплярами су|цно- 86 Глава 3. Модель «сущность — связь» Элементы модели сущность — связь» 87 сти класса СТУДЕНТ.
В соответствии с этим рисунком, в общежитии проживает много студентов, но каждый стулент живет только в одном общежитии. Г!озиция, в которой стоят 1 и Х, имеет значение. Единица стоит на той стороне связи, где располагается ОБЩЕЖИТИЕ, а Х стоит на той стороне связи, гле располагается СТУДЕНТ. Если бы 1 и Х располагались наоборот, и связь записывалась бы как Х:1, получилось бы, что в общежитии живет один студент, причем каждый студент живет в нескольких общежитиях. Это, разумеется, не так.
На рис. 3.3, в показан третий тип бинарной связи, Х:М (читастся «Х к М» или «многие ко многим»). Эта связь называется СТУДЕНТ-КЛУБ, и она связывает экземпляры сущностей класса СТУДЕНТ с экземплярами сущностей класса КЛУБ. Один стулент может быть членом нескольких клубов, а в одном клубе мажет состоять много студентов, Числа внутри ромба, символизирующего связь, обозначают максимальное количество сущностей па каждой стороне связи. Эти ограничения называкэтся максимальными кардипальпьини числаии, а совокупность из двух таких ограничений для обеих сторон связи называется люксимальпой кардинальпогтью (шахппшп сагйпарйу) связи.
Например, о связи, изображенной на рис. 3.3, б, говорят, что она абладаст максимальной кардннальностью 1:Х. Кардинальные числа могут иметь и другие значения, а не только 1 и Х. Например, связь между сущностягии БАСКЕТБОЛЬНАЯ КОМАНДА и ИГРОК может иметь кардинальнасть 1:5, что говорит нам о том, что в баскетбольной команде может быть нс более пяти игроков. Связи трех типов, представленных на рис.
3.3, называются иногда связями типа «ИМЕЕТ», или связями обладания (НА5-А ге!а11опэЬ1рэ). Такой термин используется потому, что одна сущность имеет (Ьаэ) связь с лругой сущностью. Например: сотрудник имеет автомобиль, студент имеет общежитие, клуб имеет студентов, Диаграммы «сущность — связь» Схемы, ььзабраженныс на рис. 3.3, называются диаграммалпг «сущность — связь», или ЕЛ-диаграммами (ептйу-гс!агюпэЬ)р йайгагоэ, ЕВ-йайгапгэ). Такие лиаграммы стандартизираваны, но не слишком жестка, В соответствии с этим стандартом, классы сущностей обозначаются прямоугольниками, связи обозначаются ромбами, а максимальное кардинальное числа каждой связи указывается внутри ромба'.
Имя сущности указывается внутри прямоугольника, а имя связи указывается рядом с ромбом. ОБЩЕЖИТИЕ-СТУДЕНТ Рис. Э.в. Связь с указанной минимальной кардинал»пастью ' Оп»сна»ение здесь графические си»волы, которые берут начало в этой модели, пе являются лучтин с в»гобои сл ображсп ия нод«лп в «потели г ~рафпчегким интерфейс«и поль»оп»геля, «олой»ой Маапгогь плп и!по»ой ЪПп«о«г» Фактически модель «сущность-саязь» бык р»зрабо гана з»долго до того, к»к какая-либо снеге»» гр»4тче< кого интерфейса приобрела по«улярпость. Символы языка ОЫ Ь которые будут пр«жгавя сии позже э этой главе л«гче использовать в графи«с«коя сред« Хотя в некоторых ЕВ-диаграммах имя связи указывается внутри ромба, получающаяся при этом лиаграмма может выглядеть ужасно, поскольку ромбы приходится делать большого размера и вне масштаба, чтобы в них поместилось нмя связи. Чтобы избежать этого, имена связей иногда пишут над ромбом.
Когда имя помещается внутрь или поверх рогиба, кардинальность связи изображается с помощью разветвлений на линиях, соединяющих сущность (или сущности) с множественной стороной связи. На рнс. 3,3, г показаны связи ОБЩЕЖИТИЕ- ЖИЛЕЦ и СТУДЕНТ-КЛУБ с такими разветвлениями.
Как мы уже говорили, максимальная кардинальность показывает максимальное число сущностей, которые могут участвовать в связи. Каково жс минимальное числа таких сущностей, приведенные диаграммы не сообщают. Например, рис. 3.3, б показывасц что студент может проживать максимум в одном общежитии, однако из него не ясно, обязан ли студент проживать в каком-либо общежитии.
Для указания минн»алькой кардинал»пасти (ш1пйпцш сагйпа1йу) существует несколько способов. Один из нпх, продемонстрированный на рнс. 3.4, заключается в след1пощсм: чтобы показать, что сущность обязана участвовать в связи, на лишпо связи помещают перпендикулярную черту, а чтобы показать, что сущ1юсть может (но не обязана) участвовать в связи, на линию связи помещают овал. Соответственно, рпс. 3.4 показывает, что сущность ОБЩЕЖИТИЕ должна быть связана как минимум с одной сущностью СТУДЕНТ, однако сущность СТУДЕНТ не обязана иметь связь с сущностью ОБЩЕЖИТИЕ.
Полный набор накладываемых на связь ограничений состоит в том, что ОБЩЕЖИТИЕ имеет минимальное карлинальнос число, равное единице, и максимальное кардинальное число, равное «многим» сущностям СТУДЕНТ. СТУДЕНТ имеет минимальное кардинальное число, равное нулю, и максимальное кардинальное число, равное одному экземпляру сущности ОБЩЕЖИТИЕ. Может существовать связь между сущностями одного и того жс класса.
Например, для сущностей класса СТУДЕНТ может быть определена связь СОСЕД ПО КОМНАТЕ, Такая связь показана на рис. 3.5. а, а на рис. 3.5, б изображены экземпляры сущностей, охваченных этой связью. Связи между сущностями алного и того же класса называются иногда рекурсивными связями (гесцгебуе ге!а11опэЬ1рэ). Изображение атрибутов в диаграммах «СУЩНОСТЬ вЂ” СВЯЗЬ» В некоторых версиях ЕК-диаграмм атрибуты обозначаются эллипсами, соединенными с сущностью или связью, которой они принадлежат.
На рис. 3.6, а показаны суп[ности ОБЩЕЖИТИЕ и СТУДЕНТ и связь ОБЩЕЖИТИЕ-ЖИЛЕЦ с принадлежащими пм атрибутами. Как видно из рисунка, сущность ОБЩЕЖИТИЕ имеет атрибуты Наэваниейбщежития, Местоположение и КоличепвоКомнат, а суьпность СТУДЕНТ имеет атрибуты НомерСтудента, ИмяСтудента и Курс.
Связь ОБЩЕЖИТИЕ-ЖИЛЕЦ имеет атрибут Плата, который показывает внесснну|о студентом плату за проживание в конкретном общежитии. Если сущность имеет много атрибутов, такое пх перечисление в ЕК-лиаграмме может сделать ее чересчур громоздкой и трудной для восприятия. В подобных случаях СОСЕД-ПО-КОМНАТЕ вегь вш Оагу нов гэ с! г пнв вщ г вагап б Рис. 3.5. Рекурсивная связь Идентификатор: (НазваниеДома НомерКвартиры) Идентификатор: НаэваниеДома ОБЩЕЖИТИЕ- ЖИЛЕЦ ОБЩЕЖИТИЕ содержит СТУДЕНТ содержит НазваниеОбщежития НомерСтудента Местоположение ИмяСтудента КоличествоКомнат Курс ОБЩЕЖИТИЕ-ЖИЛЕЦ содержит '(Ппага1 88 глава 3, модель «сущность — связь» список атрибутов сущностей дается отдельно, как показано на рнс. 3.6, б, Многие САЯЕ-средства показывают такие атрибуты в раскрывающихся окнах.
б Рис. 3.6. Иэображение свойств на диеграммех «сущность — свяэьж а — указание на диаграмме; б — отдельное перечисление Элементы модели «сущность — связь» 89 Слабые сущности В модели <сущность — связь» определен особый тип сущности, называемый слабой сущностью (ьуеак епВсу). К слабым сущностям относятся такие сущности, которые могут существовать в базе данных только в том случае, если в ней присутствует сущность некоторого другого типа. Сущность, не являющаяся слабой, называется сильной суиСггостью (зггопй епИСУ).