Читайте также:
|
|
Степень участия ( по Джексону - Класс принадлежности) – Определяет, зависит ли существование некоторой сущности от участия в связи некоторой другой сущности.
Существует два варианта участия сущности в связи: полное (total) и частичное (partial). Степень участия является полной, если для существования некоторой сущности требуется существование другой сущности, связанной с ней определенной связью. В противном случае степень участия является частичной.
Если экземпляры данной сущности должны участвовать в связи, то участие называется полным (Класс принадлежности обязательным) и этот факт отмечается помещением маленького сплошного кружка в блок, смежный с блоком сущности. Если экземпляры данной сущности могут не участвовать в связи, то участие называется частичным (Класс принадлежности необязательным) и кружок внутрь маленького блока не заносится. Единицы в обеих частях связей, показанных на рис. 6.4, говорят о том, что показатели кардинальности всех связей относятся к типу 1:1. Возможны и отличные от 1:1. В диаграммах ER-типа непосредственно под блоком каждой сущности выписывается и выделяется подчеркиванием ключ этой сущности: нп (номер—преподавателя) для сущности ПРЕПОДАВАТЕЛЬ и нк (номер-курса) для сущности КУРС. Точки, расположенные вслед за каждым из этих атрибутов, указывают на то, что никакие другие возможно имеющиеся атрибуты соответствующей сущности не могут быть частью ее ключа. Эти другие атрибуты будут добавлены после разработки отношений.
Рис. 6.4. Диаграммы ER-типа, соответствующие диаграммам экземпляров, приведенных на рис. 6.3
Ни одно из правил, регламентирующих работу организации и используемых при составлении диаграмм представленных на рис. 6.1 - 6.4, не допускает чтения преподавателем более одного курса, а также чтение одного курса более чем одним преподавателем. Для большинства учебных заведений дело обстоит иначе. Ниже приводятся другие наборы правил, принятых во многих учебных заведениях.
СЛУЧАЙ 1. Каждый преподаватель может читать одновременно несколько курсов, но каждый курс читается не более чем одним преподавателем.
СЛУЧАЙ 2. Каждый преподаватель читает не более одного курса, но каждый курс может читаться сразу несколькими преподавателями.
СЛУЧАЙ 3. Каждый преподаватель может читать несколько курсов и каждый курс может читаться несколькими преподавателями.
Каждый из этих случаев имеет несколько подвариантов, а именно степень участия может быть полной или частичной - для одной из двух, ни для одной или для обеих сущностей. Возможные формы для каждого случая будут обсуждаться отдельно. Отметим, что случаи 1 и 2 симметричны по форме. На рис. 6.5 показаны различные диаграммы экземпляров для СЛУЧАЯ 1, а на рис. 6.6 - эквивалентные им диаграммы типа. В примерах (а) ни одна из степеней участия не является полной.
В примерах (б) и (в) степень участия является полной для одной из двух сущностей. На рис. 6.7 показаны различные диаграммы экземпляров для случая 2, на рис. 6.8 показаны эквивалентные им диаграммы типа. В примерах (а) степень участия не является полной для сущностей как левой, так и правой частей. В примерах (б) и (в) степень участия является полной (класс принадлежности обязательным) для сущности либо левой, либо правой частей. В примерах (г) степень участия является полной (класс принадлежности является обязательным) для обеих сущностей. Связи на этих рисунках имеют показатель кардинальности n:1 (n к 1), так как экземпляр курса может быть связан с более чем одним экземпляром преподавателя (получаем n), а каждый экземпляр преподавателя связывается с не более чем одним экземпляром курса (имеем 1).
|
Показатель кардинальности 1:n и степень участия всех сущностей – частичная.
Показатель кардинальности 1:n и степень участия сущности ПРЕПОДАВАТЕЛЬ – полная.
|
Показатель кардинальности 1:n и степень участия сущности КУРС – полная.
|
Показатель кардинальности 1:n и степень участия всех сущностей – полная.
Рис. 6.6. Диаграммы ER-типа, соответствующие диаграммам экземпляров, приведенных на рис. 6.5
|
Показатель кардинальности n:1 и степень участия всех сущностей – частичная.
|
Показатель кардинальности n:1 и степень участия сущности ПРЕПОДАВАТЕЛЬ – полная.
|
|
Показатель кардинальности n:1 и степень участия всех сущностей – полная.
Рис. 6.8. Диаграммы ER-типа, соответствующие диаграммам экземпляров, приведенных на рис. 6.7
На рис. 6.9 показаны различные диаграммы экземпляров для случая 3, а на рис. 6.10 показаны им эквивалентные диаграммы типа. В примерах (а) класс принадлежности не является обязательным ни для одной из сущностей. В примерах (б) и (в) класс принадлежности является обязательным для одной из сущностей. В примерах (г) класс принадлежности является обязательным для обеих сущностей. Связь в каждом из этих рисунков имеет показатель кардинальности m:n (m к п), так как каждый экземпляр курса может быть связан более чем с одним экземпляром преподавателя (отсюда т) и каждый экземпляр преподавателя может быть связан более чем с одним экземпляром курса (получаем п).
Некоторые замечания по поводу графического представления (из Джексона)
Единого общепризнанного формата для • графического представления диаграмм сущность-связь не установлено. Хотя методы, предложенные разными авторами, схожи по существу, они имеют как мелкие, так и крупные различия. Выбранное в книге Джексона графическое представление и терминология предложены Хау1'. Фактически стандартный способ представления избран Ульманом2', в то время как более сложный подход, основанный на использовании семантических сетей, был избран Хавришкевичем3). Читателю рекомендуется изучить также другие методы и применять тот, который в наибольшей степени его устраивает. Думается, что описанный в книге метод прост и удобен для использования.
Рис. 6.9 Примеры диаграмм экземпляров для случая показателя кардинальности m:n. Всюду кардинальность m:n
|
|
Степень участия сущности ПРЕПОДАВАТЕЛЬ полная, КУРС – частичная.
|
|
Степень участия обеих сущностей полная.
Рис.6.10. Диаграммы ER-типа, соответствующие диаграммам экземпляров, приведенных на рис. 6.9
Предварительные отношения для бинарных связей степени 1:1
Предварительные отношения для данной бинарной связи могут быть получены путем просмотра нескольких логических альтернатив и выбора среди них наиболее подходящей. Перечень общих правил генерации отношений из диаграмм ER-типа можно получить, опираясь на степень участия и показатель кардинальности как на определяющие факторы. С целью упрощения вывода этих правил будет использована ситуация ПРЕПОДАВАТЕЛЬ ЧИТАЕТ КУРС (обсуждавшаяся в гл. 6) вместе с приблизительными ссылками на диаграммы, приведенные там же. Обсуждение будет ограничено случаями, в которых степень бинарной связи равна 1:1.
При попытке определить, как много отношений необходимо для размещения информации, содержащейся в бинарных связях степени 1:1, подобных приведенным на диаграммах ER-типа (см. рис. 6.4), простейшим решением, на которое можно надеяться, является необходимость одного отношения. Пусть это отношение называется ПРЕПОДАВАТЕЛЬ и все атрибуты помещаются в это одно отношение. На рис. 7.2 приведен экземпляр такого отношения в том случае, когда класс принадлежности является обязательным для обеих сущностей (см. рис. 6.3(г) и 6.4(г)). В этом отношении сущность ПРЕПОДАВАТЕЛЬ была пополнена двумя типичными атрибутами: имя—преподавателя (пфам) и телефон—преподавателя (птел). Один атрибут добавлен к сущности КУРС: предыдущий—курс (предкурс).
ПРЕПОДАВАТЕЛЬ (нп, пфам, птел, нк, предкурс)
ПРЕПОДАВАТЕЛЬ
нп | пфам | птел | нк | предкурс |
П1 | Смит | ИПУ | ИПСОИ | |
П2 | Джонс | АП | ТММ | |
П3 | Хопп | ОМИТ | ТОЭ | |
П4 | Аппл | ЭФУ | Нет |
Рис. 7.2. Экземпляр единичного отношения, в котором содержатся данные, приведенные на рис. 6.3 (г) и 6.4 (г)
В этом специальном случае одно отношение - это все, что требуется. Так как показатель кардинальности здесь 1:1 и степень участия является полной как для сущности ПРЕПОДАВАТЕЛЬ, так и для сущности КУРС, гарантируется однократное появление каждого значения нп и каждого значения нк в любом экземпляре отношения. Это значит, что отношение никогда не будет содержать ни пустой информации, ни повторяющихся групп избыточных данных. Ключ сущности ПРЕПОДАВАТЕЛЬ был избран в качестве первичного ключа для отношения, но также может быть использован ключ сущности КУРС.
Итак, можно сформулировать первое правило генерации отношений.
ПРАВИЛО 1. Если показатель кардинальности бинарной связи равен 1:1 и степень участия обеих сущностей является полной (класс принадлежности обязательный), то требуется только одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей.
Если показатель кардинальности равен 1:1 и степень участия одной сущности является полной (класс принадлежности является обязательным), а другой – частичной (необязательный класс принадлежности), то одного отношения недостаточно. На рис. 7.3 приведен экземпляр отношения в том случае, когда класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности КУРС - необязательным (см. рис. 6.3(6) и 6.4(6)). В этом случае пробелы появляются во всех кортежах, содержащих информацию о курсах, не читаемых ни одним из преподавателей. Пробелы обозначаются знаками "—".
ПРЕПОДАВАТЕЛЬ (нп, пфам, птел, нк, предкурс)
ПРЕПОДАВАТЕЛЬ
| Пример использования только 1 отношения |
Рис, 7.3. Экземпляр единичного отношения, в котором.содержатся данные, приведенные на рис. 6.3(6) и 6.4(6)
После некоторых раздумий можно заключить, что способ исключения пробелов состоит в использовании вместо одного отношения двух. Каждое отношение будет содержать информацию, касающуюся одной сущности. Кроме того, ключ сущности, класс принадлежности которой является необязательным, необходимо поместить в качестве атрибута в отношение, содержащее информацию о сущности, класс принадлежности которой является обязательным. Этот случай иллюстрируется рис. 7.4. Причиной отсутствия пробелов в отношении ПРЕПОДАВАТЕЛЬ, приведенном на рис. 7.4, является то обстоятельство, что каждый преподаватель должен вести только один курс. (Заметьте, что если бы преподаватель мог читать более одного курса, то в отношении появилась бы повторяющиеся значения в полях пфам и птел для всех тех преподавателей, которые читают более одного курса). Важно подчеркнуть, что слово NONE, появляющееся в качестве значения поля предкурс (см. рис. 7.4), есть действительное значение, а не пробел.
После преобразования:
ПРЕПОДАВАТЕЛЬ (нп, пфам, птел, нк,), КУРС (нк, предкурс)
ПРЕПОДАВАТЕЛЬ
| КУРС
| Пример использования 2 отношений |
Рис. 7.4. Экземпляры двух отношений, в которых содержатся данные, приведенные на рис. 6.3(6) и 6.4(6)
Настало время для формулирования второго правила генерации отношений.
ПРАВИЛО 2. Если показатель кардинальности бинарной связи равна 1:1 и степень участия одной сущности является полной, а другой - частичной, то необходимо построение двух отношений. Под каждую сущность необходимо выделение одного отношения, при этом ключ сущности должен служить первичным ключом для соответствующего отношения. Кроме того, ключ сущности, для которой степень участия является частичной, добавляется в качестве атрибута в отношение, выделенное для сущности с полной степенью участия.
Воспользовавшись этим правилом в ситуации, описанной на рис. 6.3(в) и 6.4(в), где класс принадлежности сущности КУРС является обязательным, а сущности ПРЕПОДАВАТЕЛЬ - необязательным, получаем следующие отношения:
ПРЕПОДАВАТЕЛ(нп, пфам, птел) КУРС(нк, предкурс, нп).
В том случае, когда показатель кардинальности бинарной связи равен 1:1 и класс принадлежности ни одной из сущностей не является обязательным, одного отношения недостаточно. При использовании только одного отношения возможны два пути возникновения пробелов. Также недостаточным является использование двух отношений, так как возникают проблемы в связи с внесением ключа одной сущности в отношение, выделенное под другую сущность. Единственное решение заключается в выделении трех отношений: по одному для каждой сущности и одного для связи. На рис. 7.5 приведены типичные экземпляры отношений, получаемые при использовании одного, двух и трех отношений (см. рис. 6.3(а) и 6.4(а)). Пробелы возникают везде, за исключением случая использования трех отношений.
ПРЕПОДАВАТЕЛЬ
| Пример использования только одного отношения | ||||||||||||||||||||||||||||||||||||
ПРЕПОДАВАТЕЛЬ
|
КУРС
| Пример разнесения данных по 2 отношениям. | |||||||||||||||||||||||||||||||||||
ПРЕПОДАВАТЕЛЬ
|
КУРС
|
ЧИТАЕТ
| Пример разнесения данных по 3 отношениям | ||||||||||||||||||||||||||||||||||
Рис. 7.5. Возможные реляционные формы для случая бинарной связи с показателем кардинальности 1:1, когда ни одна из степеней участия не является полной.
В отношении ЧИТАЕТ на рис. 7.5(в) любые значения как номера—преподавателя, так и номера—курса могут появиться только однажды, так как кардинальность равна 1:1. Кроме того, отношение ЧИТАЕТ содержит номера—курсов только тех, которые читаются, и номера—преподавателей только тех, которые читают курс. Отношение ПРЕПОДАВАТЕЛЬ содержит информацию о всех преподавателях и отношение КУРС содержит информацию обо всех курсах.
Теперь можно сформулировать третье правило генерации отношений.
ПРАВИЛО 3. Если степень бинарной связи равна 1:1 и класс принадлежности ни одной сущности не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности, ключи которых служат в качестве первичных в соответствующих отношениях, и одного для связи. Среди своих атрибутов отношение, выделяемое связи, будет иметь по одному ключу сущности от каждой сущности.
В обсуждаемом нами случае отношение ЧИТАЕТ, исходной точкой генерации которого послужила связь, не имеет других атрибутов, кроме тех, которые требует ключ. Так обстоит дело не всегда. Например, если бы каждому читаемому курсу придавался тьютор (наставник), фамилия последнего могла бы быть атрибутом отношения ЧИТАЕТ.
. Предварительные отношения для бинарных связей с показателем кардинальности 1:N
Для случая бинарных связей с кардинальностью 1:1 устанавливаются три отдельных правила генерации соответствующего набора предварительных отношений. Для случая бинарных связей 1:n требуется только два правила. Фактором, определяющим выбор и использование одного из этих двух правил, является степень участия n-связной сущности; степень участия 1-связной сущности не влияет на конечный результат в обоих случаях.
На рис. 7.9(6) показан экземпляр отношения КУРС, содержащего данные, приведенные на рис. 6.5(в) и 6.6(в). Диаграмма типа из рис. 6.6(в) здесь повторена для ясности. Это случай степени 1:n с частичной степенью участия 1-связной сущности и полной - n-связной сущности. Отчетливо вырисовываются две проблемы, связанные с этим отношением. Пробелы обнаруживаются в тех полях атрибутов курса, где преподаватель не читает курс; повторение полей данных о преподавателях наблюдается там, где преподаватель читает более одного курса. (В частности, трижды появляется информация о преподавателе П5.) Если бы степнь участия 1-связной сущности была полной, то исчезли бы пробелы, но повторяющиеся группы данных в полях атрибутов преподавателя сохранились.
КУРС
| Пример использования одного отношения |
КУРС
| ПРЕПОДАВАТЕЛЬ
| Данные из предыдущего примера после их разнесения по 2 отношениям |
Рис.7.9. Пример использования одного отношения для бинарной связи типа 1:n в том случае, когда степень участия n-связной сущности является полной,
а 1-связной – частичной.
ПРАВИЛО 4. Если показатель кардинальности бинарной связи равен 1:n и степень участия n-связной сущности является полной, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ сущности каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое n-связной сущности.
На рис. 7.10 приведены примеры двух отношений, построенных с помощью этого правила и содержащие ту же информацию, которая представлена на рис. 7.9. Обратите внимание, что все пробелы и повторяющиеся группы данных исчезли.
КУРС
| ПРЕПОДАВАТЕЛЬ
| Данные из предыдущего примера после их разнесения по 2 отношениям |
Рис. 7.10. Данные, приведенные на рис 7.9, после их разнесения по двум отношениям с помощью ПРАВИЛА 4.
На рис. 7.11(6) показан экземпляр отношения КУРС, содержащего данные из рисунков 6 5(а) и 6.6(а). Диаграмма типа из рис. 6 6(а) повторена для большей ясности. Это случай связи степени 1:n с необязательным классом принадлежности обеих сущностей. В связи с этим отношением отчетливо вырисовываются три проблемы. Пробелы возникают в полях атрибутов курса там, где преподаватель не читает курс, и в тех полях атрибутов преподавателя, где курс не читается ни одним из преподавателей. Кроме того, повторяются поля данных о преподавателях в тех случаях, когда преподаватель читает более одного курса. (В частности, информация о преподавателе П2 повторяется дважды, о преподавателе П5 - трижды.
Если бы класс принадлежности 1-связной сущности был обязательным, тогда пробелы в полях атрибутов курса исчезли бы, однако пробелы и повторяющиеся группы данных в полях атрибутов преподавателей остались.
КУРС
| Пример использования одного отношения |
Рис. 7.11. Использование одного отношения для бинарной связи типа 1:n в случае, когда степень участия обеих сущностей является частичной.
Если применить ПРАВИЛО 4 в этом случае и сформировать два отношения, подобные тем, которые приведены на рис. 7.10, то все проблемы будут решены за исключением одной: не исчезнут пробелы в полях номера—преподавателя в новом отношении КУРС во всех тех местах, где курс не читается. Соответствующий пример показан на рис. 7.12.
КУРС
| ПРЕПОДАВАТЕЛЬ
| Данные из предыдущего примера после их разнесения по 2 отношениям |
Рис. 7.12. Данные, приведенные на рис. 7.11, после их разнесения по двум отношениям с помощью ПРАВИЛА 4.
Решить все эти проблемы вне зависимости от степени участия 1-связной сущности можно, следуя этому правилу.
ПРАВИЛО 5. Если показатель кардинальности бинарной связи равна 1:n и степень участия n-связной сущности является частичной, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Связь должна иметь среди своих атрибутов ключ сущности от каждой сущности.
На рис. 7.13 приводятся экземпляры трех отношений, построенных с помощью этого правила, содержащих ту же информацию, что представлена на рис. 7.11. Обратите внимание, что все пробелы и повторяющиеся группы данных исключены.
| ПРЕПОДАВАТЕЛЬ
| ЧИТАЕТ
| Данные из предыдущего примера после их разнесения по 3 отношениям |
Рис. 7.13. Размещение данных, приведенных на рис. 7.11, в трех отношениях с помощью ПРАВИЛА 5
Предварительные отношения для бинарных связей степени M:N
Если степень бинарной связи равна m:n, то для хранения данных требуются три отношения вне зависимости от степни участия как первой, так и второй сущностей. При использовании одного или двух отношений неизбежно возникновение пробелов и/или повторяющихся групп данных в экземплярах этих отношений; какая из двух проблем возникнет при использовании двух отношений зависит от степени участия двух сущностей. Предлагается следующее правило генерации предварительных отношений для случая степени m:n.
ПРАВИЛО 6. Если показатель кардинальности бинарной связи равен m:n, то для хранения данных необходимо три отношения: по одному для каждой сущности, причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения, и одного отношения для связи. Последнее отношение должно иметь в числе своих атрибутов ключ сущности каждой сущности.
На рис. 7.14 приведены экземпляры отношений, содержащих данные из рис. 6.9 (а) (степень равна m:n, и ни один класс принадлежности не является обязательным). Обратите внимание, что в этих экземплярах отсутствуют как пробелы, так и повторяющиеся группы данных. Аналогичными будут экземпляры отношений, содержащие те же данные в тех случаях, когда одна или обе степени участия являются полными. Читателю рекомендуется начертить экземпляры двух отношений, содержащих эти данные, с целью иллюстрации причин, обуславливающих необходимость использования трех отношений.
Дата добавления: 2015-07-08; просмотров: 429 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Показатель кардинальности | | | ПРИМЕРЫ ER-ПРОЕКТИРОВАНИЯ |