К задаче разработки структуры базы данных любой информационной системы, прежде всего, подходят со стороны информационного моделирования: необходимо провести анализ предметной области с целью выявления всех информационных сущностей, их атрибутов, ограничений, и связей между ними. При этом бóльшее внимание уделяется тем из них, которые должны найти отображение в проектируемой системе. Результатом этого этапа проектирования является разработка инфологических или концептуальных моделей, описывающих необходимый «разрез» предметной области, безотносительно к архитектуре системы управления базами данных. На данном этапе проектирования набор задач, которые необходимо решить, носит аналитический характер, а именно:

  • найти, выделить и описать все сущности (entities) предметной области;
  • описать атрибуты (attributes) сущностей, их смысл и назначение;
  • определить ключевые атрибуты (keys) – первичные (primary) и альтернативные (alternative);
  • выявить и описать все существующие связи и отношения (relations) между сущностями, их тип, мощность (cardinality) и связанность (mandatory).

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

Следующим этапом проектирования базы данных является разработка её физической структуры. Физическая структура данных определяет то, каким именно образом необходимо адаптировать информационную модель к средствам описания, хранения и обработки данных, предоставляемым конкретной СУБД. На этом этапе первоначальная информационная модель может претерпеть значительные изменения с целью адаптации к архитектуре выбранной СУБД с тем, чтобы обеспечить выполнение предъявляемых требований к функциональности, объёмам обрабатываемых и хранимых данных, общей производительности информационной системы. На стадии проектирования структуры БД решаются следующие задачи:

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

Основной метод проектирования структуры БД заключается в моделировании – создании концептуальной и физической моделей данных. Наиболее широко для этого используются диаграммы типа «сущность–связь» или ER-диаграммы (Entity-Relationship Diagramms – ERD), наглядно показывающие атрибутный состав и взаимоотношение между отдельными сущностями предметной области.

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

Сущность – это объект любой природы, данные о котором хранятся в базе данных и обрабатываются информационной системой. Объекты одного типа являются кортежами сущности. Сущности обладают следующими свойствами:

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

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

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

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

Между двумя или более таблицами (сущностями) базы данных могут существовать отношения подчинённости (связи), которые определяют, что для каждой записи главной таблицы (называемой ещё родительской) возможно наличие одной или нескольких записей в подчинённой таблице (называемой ещё дочерней).

Связь – это взаимоотношение между сущностями, которая имеет смысл в предметной области. Связи обладают следующими свойствами:

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

Выделяют три разновидности связи между таблицами базы данных: «один – к – одному», «один – ко – многим» и «многие – ко – многим».

Типы связей между таблицами базы данных

Связь типа «один – к – одному» означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой).

Связь типа «один – ко – многим» означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи. Левая сущность (со стороны «один») называется родительской, правая (со стороны «многие») – дочерней.

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

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

Каждая связь может иметь одну из двух модальностей связи:

– «может» («необязательно»);

– «должен» («обязательно»).

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

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

Последнее изменение: Понедельник, 30 января 2023, 19:09