Файл: Учебное пособие СанктПетербург 2017.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 180

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

39
Таблица6 – Типы связей стандарта IDEF1X
Необходимо отметить, что связей типа «многие-ко-многим» следует избегать при создании БД. Пример связи типа «многие-ко-многим» показан на рис. 19. Эта связь порождает чрезмерное дублирование данных, а самое главное, существенно затрудняет обеспечение целостности по ссылкам. Раз- решение связей данного типа показано на рис. 20.
Рисунок 19 – Связь типа «многие-ко-многим»
Рисунок 20 – Разрешение связей типа «многие-ко-многим»

40
В стандарте IDEF1X, как, например, в языках программирования раз- витыми механизмами типов данных, имеется возможность наследования ти- па сущности, исходя из одного или нескольких супертипов.
Возможны следующие типы связей супертипа с подтипами:

взаимоисключающие (Exclusive Subtype) полные и неполные;

входящие (Inclusive Subtype) полные и неполные.
Для подтипа Inclusive Subtype каждый экземпляр в супертипе может быть связан с одним или несколькими входящими подтипами.
На рис. 21 и 22 представлены примеры использования взаимоисклю- чающих подтипов.
Рисунок 21 – Взаимоисключающие полные подтипы

41
Рисунок 22 – Взаимоисключающие неполные подтипы
Однако связь супертипа с подтипами может быть трансформирована в соответствии с одним из вариантов, показанных на рис. 23.
Рисунок 23 – Разрешение связей супертипа с подтипами
Средства метода IDEF1X в полном объеме реализуют семантическую модель данных. Вместе с этим, IDEF1Xориентирован, в основном, на даль-

42 нейшую физическую реализацию реляционной БД в соответствующей СУБД.
Поэтому между объектами IDEF1X-модели и объектами реляционной модели данных существует определенная взаимосвязь. Соответствие объектов
IDEF1X и реляционной модели данных показано в табл. 7.
Таблица 7 – Соответствие объектов IDEF1X объектам реляционной модели
Существующая взаимосвязь между компонентами семантической и ре- ляционной моделью позволяют преобразовывать ER-модель в реляционную схему следующей последовательностью действий.
1. Каждая сущность, не являющаяся подтипом и не имеющая подтипов, становится таблицей. Имя сущности становится именем таблицы.
2. Каждый атрибут становится столбцом с тем же именем в таблице.
3. Атрибуты первичного ключа становятся первичным ключом таблицы.
4. Связи «многие-ко-многим» разрешаются посредством введения ассо- циативной таблицы.
5. Индексы создаются для первичного (уникальный индекс) и внешних ключей.
6. Если в ER-модели присутствовали подтипы, то они либо сводятся в одну таблицу, либо для каждого подтипа создается отдельная таблица.


43
1   2   3   4   5   6   7   8   9   ...   12

4.3 Структурная схема автоматизированного проектирования базы
данных
Большинство современных CASE-средств, включающих функции ав- томатизированного проектирования баз данных, реализуют схему проекти- рования, показанную на рис. 24.
Рисунок 24 – Уровни автоматизированного проектирования базы данных
В представленной структурной схеме можно выделить три уровня:
1-й уровень. На данном уровне, на основе анализа предметной области визуально строится семантическая модель данных (логическая структура бу- дущей базы данных);
2-й уровень. Здесь устанавливается конкретная структура таблиц базы данных, определяются характеристики атрибутов и связей между таблицами в терминах целевой СУБД (формируется физическая структура будущей ба- зы данных);
3-й уровень. На этом уровне осуществляется генерация физической мо- дели данных в физическую базу данных целевой СУБД. На рис. 23 видно, что современные CASE-средства поддерживают несколько целевых СУБД
(как правило, наиболее распространенных), что обеспечивается конкретным видом физической модели данных.
Для более детального анализа предметной области 1-й уровень (логи- ческий уровень) может быть разбит на ряд подуровней:
1) Уровень Entity Relationships Diagram (ERD). Модель этого верхнего
(на1) уровень Entity Relationships Diagram (ERD). Модель этого верхне- го (начального) уровня включает только сущности и связи между ними, а также описание основных правил взаимодействия данных. Эта мо- дель никак не оптимизирована (с точки зрения нормальных форм) и служит в качестве первоначальной;

44 2) уровень Key Based Model (KB). Модель данного уровня представляет оптимизированные сущности с детализацией их описания до ключевых атрибутов;
3) уровень Fully Attributed Model (FA). Полная атрибутная модель этого уровня представляет сущности в 3NF и включает все их атрибуты и связи.
В CASE-средствах поддерживается возможность прямого и обратного проектирования (рис. 25).
Рисунок 25 – Прямое и обратное проектирование
Прямое проектирование (Forward Engineering) – это процесс преобра- зования (трансформации) физической модели данных в реальную схему базы данных целевой СУБД.
Обратное проектирование (Reverse Engineer) – процесс преобразова- ния физической схемы базы данных в физическую модель, а затем и в логи- ческую.
Такая двунаправленность проектирования дает большие возможности по модернизации и развитию базы данных.
5 БАЗИСНЫЕСРЕДСТВА МАНИПУЛИРОВАНИЯ ДАННЫМИ
5.1 Эквивалентность механизмов реляционной алгебры и реляци-
онного исчисления
Как отмечалось, в манипуляционной составляющей определяются два базовых механизма манипулирования реляционными данными – основанная на теории множеств реляционная алгебра и базирующееся на математической логике (точнее, на исчислении предикатов первого порядка) реляционное ис-
числение. В свою очередь, обычно рассматриваются два вида реляционного исчисления – исчисление доменов и исчисление предикатов.
Все эти механизмы обладают одним важным свойством: они замк-
нуты относительно понятия отношения. Это означает, что выра-
жения реляционной алгебры и формулы реляционного исчисления оп-


45
ределяются над отношениями реляционных БД и результатом вычис-
ления также являются отношения.
В результате любое выражение или формула могут интерпретироваться как отношения, что позволяет использовать их в других выражениях или формулах.
Реляционная алгебра и исчисление обладают большой выразительной мощностью: очень сложные запросы к базе данных могут быть выражены с помощью одного выражения реляционной алгебры или одной формулы ре- ляционного исчисления.
Механизмы реляционной алгебры и реляционного исчисления эквива- лентны, т. е. для любого допустимого выражения реляционной алгебры мож- но построить эквивалентную (т. е. производящую такой же результат) фор- мулу реляционного исчисления и наоборот. Однако эти механизмы различа- ются уровнем процедурный. Выражения реляционной алгебры строятся на основе алгебраических операций (высокого уровня), и подобно тому, как ин- терпретируются арифметические и логические выражения, выражение реля- ционной алгебры также имеет процедурную интерпретацию. Для формулы реляционного исчисления однозначная интерпретация, вообще говоря, отсут- ствует. Формула только устанавливает условия, которым должны удовлетво- рять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными.
Заметим, что крайне редко алгебра или исчисление принимаются в ка- честве полной основы какого-либо языка БД. Обычно язык БД (как, напри- мер, SQL) основывается на некоторой смеси алгебраических и логических конструкций. Тем не менее, знание алгебраических и логических основ язы- ков баз данных часто бывает полезно на практике.
5.2 Элементы реляционной алгебры
Основная идея реляционной алгебры состоит в том, что, коль скоро от- ношения являются множествами, то средства манипулирования отношения- ми могут базироваться на традиционных теоретико-множественных операци- ях, дополненных некоторыми специальными операциями, специфичными для баз данных.
Рассмотрим расширенный начальный вариант алгебры, который был предложен Коддом. В этом варианте набор основных алгебраических опера- ций состоит из восьми операций, которые делятся на два класса – теоретико- множественные операции и специальные реляционные операции.
В состав теоретико-множественных операций входят операции:

объединения отношений;

пересечения отношений;

взятия разности отношений;

прямого произведения отношений.


46
Специальные реляционные операции включают:

ограничение отношения;

проекцию отношения;

соединение отношений;

деление отношений.
Кроме того, в состав алгебры включается операция присваивания, по- зволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
Хотя в основе теоретико-множественной части реляционной алгебры лежит классическая теория множеств, соответствующие операции реляцион- ной алгебры обладают некоторыми особенностями.
Рассмотрим операцию объединения (все, что будет говориться по пово- ду объединения, переносится на операции пересечения и взятия разности) .
Смысл операции объединения в реляционной алгебре в целом остается тео- ретико-множественным. Но если в теории множеств операция объединения осмысленна для любых двух множеств-операндов, то в случае реляционной алгебры результатом операции объединения должно являться отношение.
Все это приводит к понятию совместимости отношений по объединению.
Два отношения совместимы по объединению в том и только в том
случае, когда обладают одинаковыми заголовками. Более точно это
означает, что в заголовках обоих отношений содержится один и тот
же набор имен атрибутов, и одноименные атрибуты определены на
одном и том же домене.
Если два отношения совместимы по объединению, то при обычном вы- полнении над ними операций объединения, пересечения и взятия разности результатом операции является отношение с корректно определенным заго- ловком, совпадающим с заголовком каждого из отношений-операндов.
Два отношения «почти» совместимы по объединению, т. е. совмес-
тимы во всем, кроме имен атрибутов, то до выполнения операции
эти отношения можно сделать полностью совместимыми по объе-
динению путем применения операции переименования.
Операция пересечения двух отношений производит отношение, вклю- чающее все кортежи, входящие в оба отношения-операнды.
Отношение, являющееся разностью двух отношений, включает все кортежи, входящие в отношение – первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом.
Примеры, иллюстрирующие выполнение операций объединения, пре- сечения и взятие разности, приведены на рис. 26.

47
Рисунок 26 – Операции объединения, пересечения и разности
Другие проблемы связаны с операцией взятия прямого произведения двух отношений. В теории множеств прямое произведение может быть полу-