Модель «Сущность - связь»




Проектирование реляционных БД на основе принципов нормализации

 

Проектирование реляционной БД - это набор взаимосвязанных отношений, в которых определены все атрибуты, заданы первичные ключи отношений и заданы еще некоторые дополнительные свойства отношений, которые относятся к принципам поддержки целостности. Этапы жизненного цикла базы данных изображены на рис.

 
 

Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой модели. В общем случае можно выделить следующие этапы проектирования:

  1. Системный анализ и словесное описание информационных объектов предметной области.
  2. Проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой семантической модели.
  3. Даталогическое или логическое проектирование БД, то есть описание БД в терминах принятой диалогической модели данных.

Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

Системный анализ предметной области

С точки зрения проектирования БД в рамках системного анализа, необходимо осуществить первый этап, то есть провести подробное словесное описание объектов предметной области и реальных связей, которые присутствуют между описываемыми объектами. Желательно, чтобы данное описание позволяло корректно определить все взаимосвязи между объектами предметной области.

В общем случае существуют два подхода к выбору состава и структуры предметной области:

  • Функциональный подход — он реализует принцип движения «от задач» и применяется тогда, когда заранее известны функции некоторой группы лиц и комплексов задач, для обслуживания информационных потребностей которых создается рассматриваемая БД. В этом случае мы можем четко выделить минимальный необходимый набор объектов предметной области, которые должны быть описаны.
  • Предметный подход — когда информационные потребности будущих пользователей БД жестко не фиксируются. Они могут быть многоаспектными и весьма динамичными. Мы не можем точно выделить минимальный набор объектов предметной области, которые необходимо описывать. В описание предметной области в этом случае включаются такие объекты и взаимосвязи, которые наиболее характерны и наиболее существенны для нее. БД, конструируемая при этом, называется предметной, то есть она может быть использована при решении множества разнообразных, заранее не определенных задач. Конструирование предметной БД в некотором смысле кажется гораздо более заманчивым, однако трудность всеобщего охвата предметной области с невозможностью конкретизации потребностей пользователей может привести к избыточно сложной схеме БД, которая для конкретных задач будет неэффективной.

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

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

Инфологическая модель предметной области.

Модель «Сущность - связь»

Одной из наиболее популярных средств формализованного пред­ставления предметной области является модель «сущ­ность — связь» (ER-модели).

Семантическую основу ER-модели составляют следующие пред­положения:

• та часть реального мира (совокупность взаимосвязанных объ­ектов), сведения о которых должны быть помещены в базу данных, может быть представлена как совокупность сущностей;

• каждая сущность обладает характеристическими свойствами (атрибутами), отличающими ее от других сущностей и позво­ляющими ее идентифицировать;

сущности можно классифицировать по типам сущностей: каждый экземпляр сущности (представляющий некоторый объект) может быть отнесен к классу — типу сущностей, каж­дый экземпляр которого обладает общими для них и отличающими их от сущностей других классов свойствами;

• систематизация представления, основанная на классах, в об­щем случае предполагает иерархическую зависимость типов: сущность типа является подтипом сущности В, если каждый экземпляр типа A является экземпляром сущности типа В;

• взаимосвязи объектов могут быть представлены как связи — сущности, которые служат для фиксирования (представле­ния) взаимозависимости двух или нескольких сущностей.

ER-модель должна опреде­лить объекты и взаимосвязи между ними, т. е. установить связи сле­дующих двух типов.

1.Связи между объектами и наборами характеристических свойств, и таким образом определить сами объекты.

2.Связи между объектами, задающие характер и функциональ­ную природу их взаимозависимости.

ER-моделирование предметной облас­ти базируется на использовании графических диаграмм.

 
 

Рис. 10 Пример ER-диаграммы

Сущность. Сущность, с помощью которой моделируется класс однотипных объектов, определяется как «предмет, который может быть четко идентифицирован». Сущность должна определяться таким набором атрибутов, который позволял бы различать отдельные экземпляры сущности. Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности. Например, для од­нозначной идентификации каждого экземпляра сущности «Сотруд­ник» вводится атрибут «Табельный номер», который вследствие сво­ей природы будет всегда иметь уникальное значение в рамках пред­приятия. Уникальным идентификатором сущности может являться атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, однозначно отличающая любой эк­земпляр сущности от других экземпляров сущности того же типа.

Сущность имеет имя, уникальное в пределах модели. При этом имя сущности — это имя типа, а не некоторого конкретного экземп­ляра.

Сущности подразделяются на сильные и слабые. Сущность явля­ется слабой, если ее существование зависит от другой сущности — сильной по отношению к ней. Например, сущность «Подчиненный» является слабой по отношению к сущности «Сотрудник»: если будет удалена запись, соответствующая некоторому сотруднику, имеюще­му подчиненных, то сведения о подчинении также должны быть удалены.

Свойства. Свойство может быть множественным или единичным — т. е. ат­рибут, задающий свойство, может одновременно иметь несколько значений или, соответственно, только одно. Например, сотрудник может иметь несколько специальностей, но единственное значе­ние — «Табельный номер».

Свойство может быть простым (не подлежащим дальнейшему делению с точки зрения прикладных задач) или составным — если его значение составляется из значений простых свойств. Например, свойство «Год рождения» является простым, а свойство «Адрес» — составным, так как включает значения простых свойств «Город», «Улица», «Дом».

В некоторых случаях полезно различать базовые и производные свойства. Например, «Поставщик» может иметь свойство «Общее количество поставляемых деталей», которое вычисляется суммиро­ванием количества деталей, поставляемых им по проекту.

Если наличие некоторого свойства для всех экземпляров сущно­сти не является обязательным, то такое свойство называется услов­ным. Например, не все сотрудники обладают свойством «ученая сте­пень».

Значения свойств могут быть статическими или динамическими, т. е. меняться со временем. Например, свойство «Табельный номер» является статическим, а «Адрес» — динамиче­ским. Свойство может быть неопределенным, если оно является ди­намическим, но его текущее значение еще не задано.

Свойство может рассматриваться как ключевое, если его значе­ние уникально и, возможно, в определенном контексте, однозначно идентифицирует сущность. Например, подчиненный некоторого определенного сотрудника.

Связи. Кроме связей между объектом и его свойствами, модель отражает связи между объектами разных классов. Связь определяется как «ассоциация, объединяющая несколь­ко сущностей». Эта ассоциация всегда может существовать между разными сущностями или между сущностью и ею же самой (рекур­сивная связь).

Сущности, объединяемые связью, называются участниками. Степень связи определяется количеством участников связи.

Если каждый экземпляр сущности участвует, по крайней мере, в одном экземпляре связи, то такое участие этой сущности называет­ся полным (или обязательным); в противном случае — неполным (или необязательным).

Количественный характер участия экземпляров сущностей задается типом связи (или мощностью связи). Возможны следующие типы: «один к одному» (1:1), «один ко многим» (1:М), «многие к одному» (М:1), «многие ко многим» (М:М).

Следует отметить, что инструмент связей — это средство пред­ставления сложных объектов, каждый из которых может рассматри­ваться как множество некоторым образом взаимосвязанных про­стых объектов. Деление на простые и сложные объекты, также как и характер взаимосвязи, является условным и определяется осо­бенностями анализа предметной области, т. е. в конце концов — характером использования данных о предметах в решаемых прикладных задачах. При этом с точки зрения, например, конструкто­ра, ДЕТАЛЬ является сложным объектом, а с точки зрения Постав­щика — простым.

Среди многих разновидностей взаимосвязей наиболее частыми являются такие отношения иерархического типа, как «часть — це­лое», «род — вид».

Отношение «часть — целое» используются для представления составных объектов. Например, МАШИНЫсостоят из УЗЛОВ, УЗЛЫсостоят из ДЕТАЛЕЙ. Здесь возможны как отношения «один ко многим», так и «многие ко многим».

Отношение «род — вид» — для представления обобщенных объек­тов. Например, СОТРУДНИКИ подразделяются по профессии на КОНСТРУКТОРОВ, ПРОГРАММИСТОВ, РАБОЧИХ; ПРОГРАМ­МИСТЫ- на ПРИКЛАДНЫХ ПРОГРАММИСТОВ и СИСТЕМ­НЫХ ПРОГРАММИСТОВ. Иерархические отношения, и в частно­сти — «родовидовые», обычно используются как основа классифи­кации объектов по наборам характеристических признаков. Причем, «видовые» объекты наследуют свойства «родовых».

Другой широко используемой разновидностью взаимосвязи яв­ляется агрегирование — объединение простых объектов в сложный по принципу их принадлежности агрегату или их совместного уча­стия в некотором процессе. Агрегирование, рассматриваемое здесь как более общий случай иерархических отношений, объединяет объекты разной природы с единственным общим свойством «совме­стное участие». Агрегированные объекты именуются обычно отгла­гольными существительными, например, «Состав»: ПОДРАЗДЕЛЕ­НИЕ состоит из СОТРУДНИКОВ; «Поставка»: ПОСТАВЩИК по­ставляет ДЕТАЛИ.

Супертипы и подтипы. Сущность может быть расщеплена на два или более взаимоисключающих подтипов, каждый из которых включает общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В под­типах могут определяться собственные атрибуты и/или связи. В принципе выделение подтипов может продолжаться на более низ­ких уровнях, но в большинстве случаев оказывается достаточно двух-трех уровней.

Сущность, на основе которой определяются подтипы, называет­ся супертипом. Подтипы должны образовывать полное множество, т. е. любой экземпляр супертипа должен относиться к некоторому подтипу. Иногда для полноты множества надо определять дополни­тельный подтип, например, ПРОЧИЕ.

Подтип наследует свойства и связи супертипа. Например, тип сущности ПРОГРАММИСТ является подтипом сущности СОТРУД­НИК. Программисты обладают всеми свойствами сотрудников и участвуют во всех связях, однако обратные утверждения неверны.

Тип сущности, его подтипы, подтипы этих подтипов и т. д. обра­зуют иерархию типов сущности, пример которой приведен на рис. 11.

 

 
 

Рис. 11 Пример иерархии типов сущности

ER-диаграмма

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

Сущности. Каждый тип сущности в ER-диаграммах представля­ется в виде прямоугольника, содержащего имя сущности. В качестве имени обычно используются существительные (или обороты суще­ствительного) в единственном числе. Для отражения сущностей сла­бых типов используются прямоугольники, стороны которых рису­ются двойными линиями. Например, в рассматриваемой далее ER-диаграмме, приведенной на рис. 5.4, ПОДЧИНЕННЫЙ — сущ­ность слабого типа.

Свойства. Свойства служат для уточнения, идентификации, ха­рактеристики или выражения состояния сущности или связи. Свой­ства отображаются в виде эллипсов, содержащих имя свойства. Эл­липс соединяется с соответствующей сущностью или связью линией.

Имена ключевых свойств подчеркиваются, например, свойство «Табельный номер» сущности СОТРУДНИК.

Контур эллипса рисуется двойной линией, если свойство мно­гозначное, например, свойство «Специальность» сущности СОТ­РУДНИК.

Контур эллипса рисуется штриховой линией, если свойство про­изводное, например, свойство «Кол-во» сущности ПОСТАВЩИК.

Эллипс соединяется пунктирной линией, если свойство условное, например, свойство «Иностранный язык» сущности СОТРУДНИК.

Если свойство составное, то составляющие его свойства отобра­жаются другими эллипсами, соединенными с эллипсом составного, например, свойство «Адрес» сущности СОТРУДНИК состоит из простых свойств «Город», «Улица», «Дом».

Связи. Связь — это графически изображаемая ассоциация, уста­навливаемая между сущностями. Каждый тип связи на ER-диаграмме отображается в виде ромба с именем связи внутри. В качестве имени обычно используются отглагольные существительные.

Стороны ромба рисуют двойными линиями, если это связь сущ­ности слабого типа с сущностью, от которой она зависит. Например, связь «Подчинение», связывающая сущность слабого типа ПОДЧИ­НЕННЫЙ с сущностью СОТРУДНИК, от которой она зависит.

Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны. Напри­мер, связь «Подчинение» со стороны сущности ПОДЧИНЕННЫЙ.

Связь может быть модифицирована указанием роли. Напри­мер, для рекурсивной связи «Состав» указаны роли: «Деталь состо­ит из...» и «Деталь входит в состав...».

Тип связи указывается индексами «1» или «М» над соответст­вующей линией. Например, связь «Руководство» имеет тип «один ко многим»: один сотрудник может руководить многими проектами; связь «Участие» имеет тип «многие ко многим»: один сотрудник мо­жет участвовать во многих проектах, и в проекте могут участвовать многие сотрудники.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: