Лекция. Базы данных. Модели представления данных (832420), страница 5
Текст из файла (страница 5)
Например, адреса студентов иадреса преподавателей совместноиспользуют домен всех возможныхадресов.Первичные ключи• Первичные ключи (Primary Key, РК) на ERдиаграммах подчеркиваются.• Ключевые атрибуты также подчеркиваютсяпри текстовой записи табличных структурПервичные ключи• В идеальном случае первичный ключ (РК)состоит из единственного атрибута.• Однако можно использовать и составнойключ, т.
е. первичный• ключ, состоящий более чем из одногоатрибута.Первичные ключиСоставные и простые атрибуты• Атрибуты подразделяются на простые исоставные.• Составной атрибут это атрибут, которыйможет быть в дальнейшем разделен нанесколько дополнительных атрибутов.Составные и простые атрибуты• Чтобы облегчить детализацию запроса,обычно стоит заменить составные атрибутына несколько простых.Однозначные атрибуты• Однозначный атрибут (single-valuedattribute) это атрибут, который можетпринимать единственное значение.• однозначные атрибуты не обязательноявляются простыми атрибутами.Многозначные атрибуты• Многозначный атрибут (multivaluedattribute) это атрибут, который можетпринимать множество значений.• В ER-модели Чена многозначные атрибутыпоказываются двойной линией,связывающей атрибут и сущность.Многозначные атрибутыМногозначные атрибуты• если имеются многозначные атрибуты,проектировщик должен предпринять одноиз следующих действий:– создать внутри данной сущности нескольконовых атрибутов, по одному на каждыйкомпонент многозначного атрибута.– создать новую сущность, состоящую изкомпонентов многозначного атрибутаМногозначные атрибутыМногозначные атрибутыМногозначные атрибутыПроизводные атрибуты• Производный атрибут (derived attribute)это атрибут, который не нужно хранить вбазе данных; вместо этого его получают спомощью некоторого алгоритма.• Производный атрибут в модели Ченаобозначается штриховой линией,соединяющей атрибут и сущностьПроизводные атрибутыСвязи• Связь (relationship) это ассоциированиесущностей.
Сущности, участвующие в связи,называются участниками (participants).• Каждая связь идентифицируетсяописательным названием, в качествекоторого используется глагол в активнойили пассивной форме.Связи• Связи между сущностями всегда действуютв обоих направлениях:– клиент (CUSTOMER) может создать несколькосчетов (INVOICE);– каждый счет (INVOICE) создается однимклиентом (CUSTOMER).Связность и мощность связи• Для обозначения типов связей используетсятермин связность (connectivity).• Мощность связи (cardinality) выражаетопределенное число экземпляровсущностей, связанных с однимэкземпляром связанной сущности.Связность и мощность связи• СУБД не может оперировать с мощностьюсвязи на уровне таблиц — эта возможностьпредоставляется программнымобеспечением или триггерами.Связность и мощность связиСвязность и мощность связи• В стандартной модели "птичья лапка"числовой диапазон значений мощности неотображается на ER-диаграммах.• Связность и мощность связи определяютсяочень лаконичными утверждениямибизнес-правиламиСила связей• Если сущность зависит от существованияодной или более других сущностей, тоговорят, что она зависима отсуществования (existence-dependent).• Если сущность может существовать внеодной или более связанных сущностей, тоговорят, что она независима отсуществования (existence-independent).Слабые (неидентифицируемые)связи• Если одна сущность независима отсуществования другой сущности, связьмежду ними называется слабой связью(weak relationship), также называемойнеидентифицируемой связью (nonidentifying relationship).Слабые (неидентифицируемые)связиС точки зрения проектирования БД слабыесвязи имеют место, если РК связаннойсущности не содержит первичныекомпоненты порождающей сущности.Слабые (неидентифицируемые)связиСильные (идентифицируемые)связи• Сильная связь (strong relationship), такженазываемая идентифицируемой связью(identifying relationship), имеет место, еслисвязанные сущности зависимы отсуществования.• сильная связь между двумя сущностямиимеет место всякий раз, когда РК связаннойсущности содержит компонент РКпорождающей сущности.Сильные (идентифицируемые)связиСильные (идентифицируемые)связи• порядок, в котором таблицы создаются изагружаются, имеет существенноезначение.• чтобы избежать нарушения целостности науровне ссылки, в связи 1:М вы должны,прежде всего, загружать сторону "1",независимо от того, является ли связьсильной или слабой.Участие в связи• Участие сущности необязательно (optionalparticipation), если один экземплярсущности не требует наличиясоответствующего экземпляра сущности вотдельной связи.• Существование необязательности(optionality) указывает на то, что длянеобязательной сущности минимальноезначение мощности связи равно 0.Участие в связи• Участие сущности в связи обязательно(mandatory participation), если одинэкземпляр сущности обязательно требуетсоответствующего экземпляра сущности вотдельной связи.Участие в связи• Если около сущности не изображен никакойдополнительный символ, то это означает,что данная сущность участвует вобязательной связи со связаннойсущностью.• Наличие обязательной связи указывает нато, что для обязательной сущностиминимальная мощность связи равна 1.Участие в связиНеобязательная связьОбязательная связьУчастие в связи• Для обеспечения целостности данных СУБДдолжна обеспечивать, чтобы сторона"многие" ассоциировалась ссоответствующей таблицей через правилавнешнего ключа.• СУБД поддерживает ограниченияцелостности данных, представленные вбизнес-правилах.Сила связи и слабые сущности• В терминах проектирования БДсуществование сильной связи междупорождающей сущностью и связанной сней сущностью (или сущностями)ассоциируется со слабыми сущностями.Сила связи и слабые сущности• Слабой сущностью (weak entity)называется сущность, котораяудовлетворяет двум условиям:– условию зависимости от существования, т.
е.она не может существовать без сущности, скоторой она связана;– ее первичный ключ (РК) частично или целикомпроизведен из порождающей сущности даннойсвязи.Сила связи и слабые сущности• В модели "птичья лапка" слабые сущностиизображаются небольшими сегментами вкаждом из четырех углов прямоугольникасущности CLASS.• В модели Чена слабые сущностиотображаются с помощью двойнойокантовки прямоугольника, которыйобозначает сущностьСила связи и слабые сущности• Слабая сущность наследует все частипервичного ключа своего сильногопартнера по связи.Сила связи и слабые сущностиСтепень связи• Степень связи (relationship degree)указывает на число ассоциированныхсущностей или участников (participants).• Унарная связь (unary relationship)существует тогда, когда ассоциацияподдерживается внутри единственнойсущности.Степень связи• Бинарная связь (binary relationship)существует тогда, когда ассоциируются двесущности.• Тернарная связь (ternary relationship) имеетместо тогда, когда связываются трисущности.Степень связиСтепень связиСтепень связи• В случае унарной связи курс внутрисущности COURSE являетсяпредварительным.• Наличие предваряющего курса означает,что сущность COURSE требует наличиясущности COURSE — т.
е. сущность COURSEимеет связь сама с собой.• Такую связь называют также рекурсивнойсвязью.Степень связи• Бинарные связи имеют наибольшеераспространение.• Для упрощения концептуальногопроектирования большинство связейвысокой степени (тернарные и выше) повозможности разбиваются насоответствующие эквиваленты бинарныхсвязей.Степень связи• Люди или учреждения, входящие всущность CONTRIBUTOR (спонсоры),жертвуют средства в специальныйисследовательский фонд (FUND).• Исследователи, входящие в сущностьRECIPIENT (получатели), финансируются изфонда (FUND).Степень связи• Все связи здесь можно отнести к типу M:N.• Спонсоры могут делать вклады в несколькофондов.• Фонд может иметь множество спонсоров.• Фонд может поддерживать множествоисследователей, которые являютсяполучателями средств (RECEPIENT), аисследователи могут получать помощь отнескольких фондов.Степень связи• Три сущности (CONTRIBUTOR, RECIPIENT иFUND) связаны тернарной связью, которуюмы обозначили CFR.• Поскольку тернарную связь невозможновыразить одним глаголом, мы используемакроним CFR для обозначения связи междусущностями CONTRIBUTOR, FUND иRECIPIENT.Степень связиРекурсивные связи• Рекурсивная связь (recursive relationship)имеет место, когда есть связь междуэкземплярами одного и того же наборасущностей.Рекурсивные связиРекурсивные связиРекурсивные связиРекурсивные связиРекурсивные связиСоставные сущности• Переходная промежуточная сущность(bridge entity) состоит из первичных ключейкаждой из соединяемых сущностей.• Промежуточную сущность называют такжесоставной сущностью (composite entity).• Составная сущность в модели Ченаизображается ромбом в прямоугольнике.Составные сущности• Составная сущность ENROLL зависит отсуществования двух других сущностей; в ееоснове — первичные ключи сущностей,соединяемые с помощью составнойсущности.• Составная сущность может также содержатьдополнительные атрибуты, не играющиесущественной роли в связи.Составные сущностиСоставные сущности.