Современные информационные технологии/3 Программное обеспечение

 

Костюченко Г.Л., Ашарчук Л.М.

Белорусский торгово-экономический университет

потребительской  кооперации, Беларусь

 

Алгоритм построения логической модели баз данных

 

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

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

В данной работе на практическом примере (для небольшой и несложной предметной области) рассмотрена методика построения концептуальной модели "Сущность-связь" (ER-модель) и алгоритм перехода от ER-модели к логической модели базы данных, созданной на основе реляционной модели организации данных. Переход от ER-модели к логической модели базы данных выполнен с использованием правил генерации отношений, которые в авторском варианте представлены графически. Вопросы физического проектирования в работе не затрагиваются.

Модель "сущность-связь" (Entity-Relationship model, или ER-модель) – это высокоуровневая концептуальная модель данных, которая была разработана с целью упрощения задачи проектирования баз данных. ER-модель предлагает графический инструмент моделирования данных для представления сущностей и связей в структуре базы данных. Существует большое число методик построения данных моделей. ER-модель представляет собой набор концепций, которые описывают структуру базы данных. Основные концепции включают сущность, связь и атрибуты. Сущность ‑ это совокупность объектов реальности с одинаковыми свойствами (например, Товары, Накладные). Графически сущность изображается в виде прямоугольника с именем сущности внутри него. Экземпляры сущности обладают одинаковыми наборами атрибутов (например, один любой Товар или одна любая Накладная). Каждый экземпляр сущности уникален. Уникальность обеспечивается идентификатором (атрибутом или несколькими атрибутами) который называется ключом (например, Код товара). Связь – это осмысленная ассоциация между разными сущностями. Каждая связь изображается в виде ромбика с указанным на нем именем связи. Атрибут – это свойство сущности или связи (например, Наименование товара). Значения атрибутов представляют основную часть сведений, сохраняемых в базе данных. Эти понятия могут быть представлены графически в виде диаграммы ER-типа.

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

Сущность Товар описана атрибутами: Код товара (ключевой атрибут), Наименование товара, Единица измерения, Цена за единицу. Сущность Контрагент (КА) содержит атрибуты: Код КА (ключевой атрибут), Наименование КА, Адрес, Наименование банка, Расчетный счет. Сущность Накладная имеет атрибуты: Код накладной (ключевой атрибут), Дата, Наименование КА, Наименование товара и Количество. Сущности Контрагент и Накладная ассоциированы связью Выписывает, а Товар и Накладная ассоциированы связью Поставляется.

Для применения правил генерации отношений требуется определить показатель кардинальности между сущностями и класс принадлежности сущностей. Кардинальность — это количество экземпляров сущностей, которые охвачены данной связью или один экземпляр данной сущности, сколько имеет связей с экземплярами другой сущности. Один экземпляр сущности Накладная имеет одну (1) связь с экземплярами сущности Контрагент так как одна накладная выписывается одним контрагентом. Один экземпляр сущности Контрагент имеет много (n) связей с экземплярами сущности Накладная, так как Накладные от Контрагентов поступают регулярно (рис.1).

Дневная выручка

 

Накладная

 

Выписывает

 

Контрагент

 
n                                                          1

 


Рис.1. Связь между сущностями Накладная и Контрагент.

 

Определим показатели кардинальности  между сущностями Накладная и Товар и отобразим их на диаграмме ER-типа (рис.2). Один экземпляр сущности Накладная имеет много (m) связей с экземплярами сущности Товар, так как по одной накладной может быть поставлено несколько наименований товара. Один экземпляр сущности Товар имеет много (n) связей с экземплярами Накладная, так как товар поставляется регулярно.

 

Поставляется

 

Товар

 

 

Накладная

 
n                                                           m

 

Рис.2. Связь между сущностями Товар и Накладная

 

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

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

Чтобы разобраться с тем, как экземпляры сущностей связаны между собой через существующие между ними связи, проще представить всю ситуацию наглядно, в виде диаграммы ER-типа (рис.3).

 


подписывает

 

поставляется

 

Накладная

 

Товар

 

Контрагент

 
n                               m                     n                                1

 

Рис.3. Общий вид диаграммы ER-типа

 

На основании диаграммы ER-типа и используя правила генерации, определим набор отношений и их атрибутов.

Основные 6 правил генерации отношений:

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

Правило 2. Если показатель кардинальности бинарной связи равен 1 : 1 и класс принадлежности одной сущности является обязательным, а другой ‑ необязательным, то необходимо построение двух отношений. Под каждую сущность нужно выделение одного отношения, при этом ключ сущности должен служить первичным ключом для соответствующего отношения. Кроме того, ключ сущности, для которой класс принадлежности является необязательным, добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности.

Правило 3. Если показатель кардинальности бинарной связи равен 1 : 1 и класс принадлежности ни одной сущности не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности, ключи которых служат в качестве первичных в соответствующих отношениях, и одно отношение для связи. Среди своих атрибутов отношение выделяемой связи будет иметь по одному ключу каждой сущности.

Правило 4.Если показатель кардинальности бинарной связи равен 1 : n и класс принадлежности n-связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое для n-связной сущности.

Правило 5. Если показатель кардинальности бинарной связи равен 1 : n и класс принадлежности n-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Связь должна иметь среди своих атрибутов ключ каждой сущности.

Правило 6. Если показатель кардинальности бинарной связи равен m : n, то для хранения данных необходимо три отношения: по одному для каждой сущности, причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения, и одно отношение для связи. Последнее отношение должно иметь в числе своих атрибутов ключ каждой сущности.

 


Подпись: Номер правилаДля студенческой аудитории правила генерации удобнее представить графически.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В соответствии с правилами генерации отношений для связи Контрагент и Накладная (рис.3) выбирается правило 4, которое требует построение двух отношений для соответствующих сущностей, причем ключ 1-связной сущности (КодКА) добавляется как простой атрибут в отношение, отводимое для n-связной сущности (Накладная) (рис.5.). Для связи Накладная и Товар выбирается правило 6, которое требует построения трех отношений: по одному для каждой сущности (Накладная и Товар) и одного для связи (Поставки товара). Отношение Поставки товара должно иметь в числе своих атрибутов ключи сущностей Накладная (КодНакладной) и Товар (КодТовара).

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

 

Поставки

товаров

·         НомерЗаписи

КодНакладной

КодТовара

Количество

 

1

 
 


              

 

 

 
 

 


Рис. 5. Логическая модель данных

 

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

 

Литература:

1.          Диго, С.М. Базы данных: проектирование и использование: Учеб-

ник. – М. : Финансы и статистика, 2005. – 592 с.

2.          Коннолли, Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-ое изд. : Пер. с англ. : Уч. пос. – М. : ИД "Вильямс", 2000. ‑ 1120 с.

3.          Рудикова, Л.В. Проектирование баз данных: учеб. пособие для студентов высш. учеб. заведений по специальностям "Программное обеспечение информационных технологий", "Экономическая кибернетика", "Прикладная математика", "Информационные системы и технологии / Л.В. Рудикова. ‑ Минск : ИВЦ Минфина, 2009. – 352 с.**