Реляционная модель данных


) Если условие Θ содержит только операцию сравнения по равенству (=), то имеет место соединение по эквивалентности. 3)


Download 372 Kb.
bet4/21
Sana28.12.2022
Hajmi372 Kb.
#1023068
1   2   3   4   5   6   7   8   9   ...   21
Bog'liq
Conn&Begg

2) Если условие Θ содержит только операцию сравнения по равенству (=), то имеет место соединение по эквивалентности.
3) R ▷◁ S — операция естественного соединения. Реализуется как соединение по эквивалентности с учетом всех общих атрибутов в таблицах R и S. В результирующей таблице каждый общий атрибут присутствует только в единственном экземпляре. Следовательно, степень естественного соединения таблиц R и S равна сумме степеней этих таблиц за вычетом количества общих атрибутов.
4) R ◁ S — левое внешнее соединение. При выполнении этой операции в результирующую таблицу включаются также кортежи таблицы R, не имеющие совпадающих значений в общих столбцах таблицы S.
Для обозначения отсутствующих значений атрибутов в записях, полученных с помощью левого внешнего соединения, используется значение NULL. Преимуществом такой операции является то, что после ее выполнения сохраняются кортежи из таблицы R, которые были бы потеряны при других видах соединения.


Глава 11. Модель «сущность-связь»
Одна из наиболее сложных проблем при проектировании БД связана с тем, что проектировщики, программисты и конечные пользователи должны иметь единое представление обо всех бизнес-процессах, которыми будет управлять разрабатываемая информационная система. Чтобы добиться полного и однозначного понимания характера данных и способов их использования в конкретной организации, необходимо в процессе совместной работы разных специалистов применять общую модель, которая не усложнена техническими подробностями и не допускает неоднозначных толкований.
Один из примеров такой модели — это модель «сущность-связь», называемая также ER-моделью (Entity-Relationship model). ER-модель относится к технологии нисходящего проектирования баз данных, когда моделирование начинается с выявления наиболее важных элементов, которые должны присутствовать в модели данных — это сущности (entities) и связи (relationships) между ними. Затем в модель вносятся дополнительные сведения о сущностях и связях, т.е. указываются атрибуты (attributes) и все ограничения, относящиеся к сущностям, связям и атрибутам. ER-моделирование — это важный метод, которым должен владеть любой проектировщик баз данных.
Хотя к настоящему времени уже достигнуто общее понимание отдельных понятий, относящихся к ER-моделированию, существует несколько различных способов графического обозначения этих понятий. В данной книге для схематического изображения ER-моделей применяется система обозначений универсального языка моделирования UML (Unified Modeling Language).
Основным элементом ER-модели является тип сущности (entity type), который представляет собой группу объектов реального мира, обладающих одинаковыми свойствами. Тип сущности характеризуется независимым существованием в предметной области и может иметь физическую (реальную) или концептуальную (абстрактную) природу.
Каждый однозначно идентифицируемый объект, который относится к сущности определенного типа, называется экземпляром сущности (entity occurrence). Каждый тип сущности обозначается своим именем и характеризуется определенным списком свойств.
Каждый тип сущности графически изображается в виде прямоугольника с именем сущности внутри него. В качестве имени обычно применяется существительное в единственном числе. В языка UML принято использовать заглавные (прописные) буквы в начале каждого слова, составляющего имя сущности: например, Staff и PropertyForRent.
Тип связи (relationship type) — это осмысленный набор ассоциаций между типами сущностей, участвующих в рассматриваемой связи. Каждому типу связи присваивается имя, которое должно описывать назначение связи. Экземпляр связи включает в себя по одному экземпляру сущности из каждого типа, участвующего в связи.
Для изучения примеров отдельных экземпляров связи может применяться так называемая семантическая сеть. В такой сети экземпляры сущностей обозначаются символом •, а связи отображаются символом ◇.
Каждый тип связи изображается в виде линии, соединяющей соответствующие типы сущностей. Для обозначения имени связи принято использовать глагол (или короткую фразу, содержащую глагол). По возможности в каждой конкретной ER-модели все имена связей должны быть уникальными. После выбора имени связи рядом с ним на схеме размещается стрелка, которая показывает направление действия связи.

Сущности, охваченные некоторой связью, называются участниками этой связи. Количество участников связи называется степенью (degree) этой связи. Связь со степенью 2 называется двухсторонней (binary).


Процесс регистрации клиента сотрудником, который относится к определенному филиалу фирмы, описывается трехсторонней (ternary) связью. Такая связь, как и любая другая со степенью больше 2, называется сложной связью. В системе обозначений языка UML для сложных связей применяется ромб, внутри которого указывается название связи.



«Сотрудник филиала компании регистрирует клиента»

Связь, в которой участвуют сущности одного и того же типа, выполняя при этом разные роли, называется рекурсивной связью. Например, сущность Staff участвует в связи Supervises дважды: первый раз — в качестве инспектора, а второй раз — в качестве рядового сотрудника, которым управляют. Такие связи иногда называют односторонними (unary).


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

Ролевые имена могут также использоваться в случае, когда две сущности связаны несколькими связями.


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


Отдельные свойства сущностей называются атрибутами. Атрибуты имеют значения, которые описывают каждый экземпляр сущности и составляют основную часть информации, сохраняемой в БД.
Каждый атрибут связан с набором значений, который называется доменом. Домен определяет все потенциальные значения, которые могут быть присвоены атрибуту. Различные атрибуты могут совместно использовать один и тот же домен. Например, атрибуты address для типов сущностей Branch, Staff и Client разделяют один и тот же домен, который включает все возможные адреса.
Домен может также представлять собой комбинацию, состоящую из нескольких других доменов. Например, домен для атрибута address состоит из таких подчиненных доменов: street, city и postcode.
Атрибут, состоящий из одного компонента с независимым существованием, называется простым атрибутом. Такой атрибут, который невозможно разделить на более мелкие компоненты, иногда называют элементарным или атомарным (например, position, salary и т.п.).
Если атрибут состоит из нескольких компонентов, каждый из которых характеризуется независимым существованием, то имеет место составной атрибут. Например, атрибут включает в себя следующие компоненты: street, city и postcode. Решение о необходимости разбиения такого атрибута на совокупность простых атрибутов принимается с учетом пользовательских представлений относительно рассматриваемых данных.
В большинстве случаев атрибут содержит одно значение для каждого экземпляра рассматриваемой сущности, т.е. является однозначным (например, ФИО или Дата рождения). Многозначный атрибут допускает наличие определенного количества значений для каждого экземпляра сущности (например, несколько номеров телефонов для одного отделения компании).
Производный атрибут представляет значение, которое вычисляется на основании значений других атрибутов, в том числе для нескольких сущностей разных типов. Например, атрибут duration является производным от атрибутов rentStart и rentFinish. Другой пример: атрибут totalStaff (общее количество сотрудников) для сущности типа Branch можно найти путем подсчета общего количества соответствующих экземпляров сущности Staff.
Чтобы сущность определенного типа отобразить на схеме вместе со своими атрибутами, нужно прямоугольник, представляющий эту сущность, разделить на две части. В верхней части прямоугольника отображается имя сущности, а в нижней — список имен атрибутов. В начале списка должен размещаться первичный ключ для сущности данного типа. Имя каждого атрибута первичного ключа дополняется дескриптором {PK} (сокращение от primary key). Кроме того, на схемах может применяться дескриптор для обозначения альтернативного ключа — {AK} (сокращение от alternate key).
За составным атрибутом следует список составляющих его простых атрибутов (с отступом вправо). Имя многозначного атрибута дополняется обозначением диапазона, указывающего количество возможных значений этого атрибута. Например, диапазон [1:*] означает, что допускается одно или несколько значений. Вместо символа * можно указать конкретное число для максимального количества значений, если это число известно.

Связям также могут приписываться атрибуты. Например, сведения о дате публикации рекламного объявления, содержащего данные о стоимости аренды, удобно приписать к связи между сущностями Newspaper и PropertyForRent (рис. ХХ). Для отображения атрибутов, относящихся к типу связи, применяется такое же условное обозначение, как и для типа сущности. При этом прямоугольник, содержащий перечень атрибутов, соединяется штриховой линией с той линией связи, к которой относятся рассматриваемые атрибуты.


Важно отметить следующее обстоятельство: если на схеме появляется связь с одним или несколькими атрибутами, то это может свидетельствовать о наличии невыявленного типа сущности, который скрывается за рассматриваемой связью. Например, атрибуты dateAdvert и cost у связи Advertises свидетельствуют о наличии скрытой сущности Advert (Рекламное объявление).



Download 372 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling