Операция ВЫЧИТАНИЕ (С3=А-В). Все три отношения строятся по одной схеме. В результирующее отношение С3 включаются только те кортежи из А, которых нет в отношении В.
Операция ДЕКАРТОВО ПРОИЗВЕДЕНИЕ (С4=А X В). Ее важное отличие от предшествующих состоит в том, что отношения А и В могут быть построены по разным
схемам, а схема отношения С4 включает все атрибуты отношении А и В.
Операция ВЫБОРКА (горизонтальное подмножество). На входе операции используется одно отношение. Результат выборки есть новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.
Операция ПРОЕКЦИЯ (вертикальное подмножество). На входе операции используется одно отношение. Результирующее отношение включает подмножество атрибутов исходного. Каждому кортежу исходного отношения соответствует такой кортеж в результирующем отношении, что значения одинаковых атрибутов этих двух кортежей совпадают. Но при этом в результирующем отношении кортежи-дубликаты устраняются, в связи с чем мощность результирующего отношения может быть меньше мощности исходного.
Операция СОЕДИНЕНИЕ. На входе операции используется два отношения; обозначим их А и В. В каждом из отношений выделен атрибут, по которому будет осуществляться соединение; предположим, это атрибуты А1 и Б2). Оба атрибута должны быть определены на одном и том же домене. Схема результирующего отношения включает все атрибуты А и все атрибуты отношения В. Допускается, чтобы в схеме результирующего отношения вместо двух атрибутов, по которым выполняется соединение, был представлен только один.
Операция СОЕДИНЕНИЕ похожа на декартово произведение. Отличие состоит в том, что декартово произведение предполагает сцепление, каждого кортежа из А с каждым кортежем из В, а в операции соединения кортеж из отношения А сцепляется только с теми кортежами из В, для которых выполнено условие: В1=А1.
Операция ДЕЛЕНИЕ. На входе операции используется два отношения А и В. Пусть отношение А, называемое делимым, содержит атрибуты (А1,А2, ...,Аn). Отношение В – делитель -содержит подмножество атрибутов А; положим, (А1,А2, ...,Аk), где (k<n). Результирующее отношение С определено на атрибутах отношения А, которых нет и В, т.е.
Аk+1, Аk+2 , ..., Аn.
Кортеж включается в результирующее отношение только, если его декартово произведение с отношением В содержится в делимом-отношении А.
Операции реляционной модели данных предоставляют возможность произвольно манипулировать отношениями, позволяя обновлять БД, а также выбирать подмножества хранимых данных и представлять их в нужном виде.
Рассмотренные нами операции реляционной алгебры или алгебры отношений, позволяют пошагово описать процесс получения результирующего отношения.
Отметим особенности реляционной модели данных:
• множество объектов реляционной модели данных однородно - структура данных определяется только в терминах отношений;
• основная единица обработки в операциях реляционной модели данных не запись (как в сетевых и иерархических моделях данных), а множество записей - отношение.
НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ
Одна из важнейших проблем проектирования схемы БД заключается в выделении типов записей (отношений), определении состава их атрибутов. Группировка атрибутов должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления.
Сначала эти вопросы решались интуитивно. Однако интуиция может подвести даже опытного специалиста, поэтому Коддом был разработан в рамках реляционной модели данных аппарат, называемый нормализацией отношений. И хотя идеи нормализации сформулированы в терминологии реляционной модели данных, они в равной степени применимы и для других моделей
данных.
Коддом выделено три нормальных формы отношений. Самая совершенная из них - третья. Предложен механизм, позволяющий любое отношение преобразовать к третьей нормальной форме. В процессе таких преобразований могут выделяться новые отношения.
Вначале введем понятие простого и сложного атрибута. Простым назовем атрибут, если значения его атомарны, т. е. неделимы. В противовес ему сложный атрибут может иметь значение, представляющее собой конкатенацию нескольких значений одного или разных доменов. Аналогами сложного атрибута может быть вектор, агрегат данных, повторяющийся агрегат.
Первая нормальная форма. Отношение называется нормализованным или приведенным к первой нормальной форме (1НФ), если все его атрибуты простые.
Ненормализованное отношение легко сделать нормализованным. Такое преобразование может привести к увеличению мощности отношения и изменению ключа.
Функциональная зависимость. Пусть Х и Y - два атрибута некоторого отношения, Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более чем одно значение атрибута Y. Функциональную зависимость можно обозначить так: Х>Y.
Полная функциональная зависимость. Говорят, что неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Вторая нормальная форма. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждый неключевой атрибут функционально полно зависит от составного ключа.
Чтобы отношение привести ко второй нормальной форме, необходимо:
а) построить его проекцию, исключив атрибуты, которые не находятся в полной функциональной зависимости от составного ключа;
б) построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа.
Транзитивная зависимость. Пусть X, Y, Z - три атрибута некоторого отношения. При этом Х>Y и Y>Z, но обратное соответствие отсутствует, т. е. Z не> или Y не>Х. Тогда говорят, что Z транзитивно зависит от X.
Третья нормальная форма. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Основное достоинство реляционного подхода - его простота и доступность. Пользователи абстрагированы от физической структуры памяти. Это позволяет эксплуатировать БД без знания методов и способов ее построения. Основные достоинства РМД следующие: простота, независимость данных; гибкость; непроцедурные запросы, теоретическое обоснование на основе теории отношений. Это дает возможность пользователям формировать их запросы более компактно, в терминах более крупных агрегатов.
Большинство СУБД для персональных ЭВМ составляют системы, поддерживающие реляционную модель данных. К этому классу следует отнести самую распространенную на ПЭВМ систему dBase фирмы Ashton-Tate Corp.(версии dBaseП, dBaseШ, dBaseШ PLUS, dBaseIV) и многочисленное семейство совметимых с нею программных продуктов - FoxBase+ и FoxPro фирмы Fox Software, Clipper'87 фирмы Nantucket Corp., QuickSilver и dBXL фирмы Wordtech, User Interfase фирмы WallSoft Systems Inc., dBFast фирмы dBFast Inc. Широко распространены также реляционные системы Oracle фирмы Oracle Corp., Paradox фирмы Borland International, ряд версий системы R:base 4000, R:base 5000, R:base System V, R:base for DOS, R:base 3.0)фирмы Microrim, система DB2 фирмы IBM Corp.
Как уже говорилось выше, в реляционной модели данных есть возможность определения одного атрибута или их множества в качестве ключа отношения. Это свойство позволяет формировать запросы к базе данных очень компактно с использованием терминов реляционной алгебры и реляционного счисления, что делает реляционную модель очень простой для разработчика прикладного программного обеспечения.
С другой стороны, вся информация, которая будет храниться и использоваться в ИИСОД представляется в табличной форме, что является характерной чертой представления информации в реляционных базах данных, а в частности, в их разновидности табличных базах данных.
С учетом вышеизложенного можно сделать вывод, что для разработки системы наиболее подходит СУБД, основанная на использовании реляционной модели данных.
Из всего многообразия реляционных СУБД, представленных на рынке в настоящее время (DBASE IV, Clipper IV, V и т.д.) сразу можно выделить СУБД FoxPro 2.0 фирмы FoxSoftware Inc СУБД FoxPro II включает в себя все лучшие функциональные возможности СУБД FoxBase+ версии 2.11. Вместе с тем она обладает лучшими возможностями по сравнению с DBASE IV по производительности. Требования к ресурсам памяти на стадии выполнения значительно снижены.
FoxPro 2.0 имеет графический многооконный интерфейс с поддержкой манипулятора "мышь" и клавиатуры. Он реализует элементы объектно-ориентированного подхода, при этом за различными окнами одновременно открытыми окнами могут быть закреплены различные процедуры (например: генерация отчета, просмотр файла и т.д.). Развитый генератор отчетов позволяет формировать отчеты не только табличной, но и ленточной формы.
Язык программирования полностью включат язык СУБД DBASE IV. Дополнительно в него включено более 140 различных расширений. При этом сохранена полная программная совместимость с младшими версиями системы.
СУБД FoxPro 2.0 обладает возможностями поддержки разработки и отладки программ, средствами отслеживания изменений исходных текстов программных модулей с их автоматической перекомпиляцией. Предусмотрены специальные окна для отладчика программ, работающего в терминах исходного текста. Окно трассировки позволяет анализировать логику выполнения программы. Эта информация мож использоваться и при работе в пошаговом режиме. Отдельное окно предусмотрено для просмотра значений переменных по ходу выполнения программы.