Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КонспектЛекций

.pdf
Скачиваний:
15
Добавлен:
14.05.2015
Размер:
1.73 Mб
Скачать

Конспект лекций по курсу «Базы данных». В.Пикулев.

2003 год. Home edition.

Базовым является только вариант лекций, прочитанных в аудитории.

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

Глава 1. Теоретические основы баз данных.

1.1 Информационные системы.

Можно выделить две основные области использования вычислительной техники. Первая область – выполнение численных расчетов, которые слишком долго или вообще невозможно производить вручную. Вторая область – это так называемые информационные системы, предназначенные для обработки информации. ”Практически все окружающие человека системы в той или иной степени связаны с функциями долговременного хранения и обработки информации. Фактически информация становится фактором, определяющим эффективность любой сферы деятельности.”

Информационная система (ИС) – взаимосвязанная совокупность средств, методов и персонала, используемая для хранения, обработки и представления информации.

Кфункциям информационных систем относятся:

-хранение информации

-ввод и редактирование информации

-просмотр и поиск информации

-выборка информации по заданным критериям

-подготовка отчётов

-контроль правильности информации

Различают два основных класса ИС: информационно-поисковые (развитой поиск данных по определённому критерию), системы обработки данных (пользователя интересует результат обработки, а не сами исходные данные).

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

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

Конечному пользователю не нужно знать:

-о физическом размещении в памяти данных и их описаний

-об особенностях реализации механизмов поиска запрашиваемых данных

-о способах разрешения конфликтов, возникающих при одновременном запросе одних и тех же данных многими пользователями

-об организации защиты данных от некорректных обновлений или несанкционированного доступа

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

1

1.2 Терминология СУБД.

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

Вшироком смысле база данных:

-Это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.

-Это массив связанной информации.

Вболее узком (прикладном) смысле база данных:

-Именованная совокупность взаимосвязанных данных, находящихся под управлением СУБД.

-Файлы, снабжённые описанием хранимых в них данных и находящиеся под управлением СУБД.

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

Назначение СУБД:

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

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

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

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

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

Распределённая БД состоит из нескольких серверов, хранимых в различных ЭВМ, связанных сетями между собой. В таких БД может храниться пересекающаяся или дублирующаяся информация. Для работы с такой базой данных используется система управления распределёнными базами данных (СУРБД).

Файловый сервер – на одном из компьютеров располагается банк данных – файлы, которые могут совместно обрабатывать несколько различных СУБД пользователей. После обработки на компьютерах клиентов, файлы копируются обратно на сервер.

2

Технология «клиент-сервер» подразумевает, что помимо хранения базы данных центральный компьютер (сервер базы данных) должен ещё и обеспечивать выполнение основного объёма обработки этих данных. Запрос клиента (программы-клиента) на выполнение какой-либо операции с данными провоцирует на сервере поиск и извлечение данных. Клиентская часть (Front-End) обеспечивает графический интерфейс и находится на компьютере пользователя; серверная часть (Back-End) обеспечивает управление данными, разделение информации, администрирование и безопасность. Примерами СУБД, работающих по технологии клиент-

сервер, являются MS SQL Server, Oracle, IBM DB2, SyBase.

Функции СУБД:

-Непосредственное управление данными во внешней памяти.

-Управление буферами оперативной памяти (собственный набор буферов и протоколов буферизации данных)

-Управление транзакциями

-Журнализация (способность восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя)

-Поддержка языков баз данных

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

1.3 Модели данных и этапы проектирования баз данных.

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

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

2.Проектирование инфологической модели предметной области в терминах некоторой семантической модели.

3.Выбор конкретной СУБД и даталогическое или логическое проектирование БД. Декомпозиция отношений.

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

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

Предметная область – часть реального мира, отражаемая в БД.

Инфологическая (внешняя) модель данных – обобщённое, не привязанное к какой-либо ЭВМ или СУБД описание предметной области. Иногда говорят о нескольких внешних моделях данных, по-разному представляющих одну концептуальную модель. Отражает в удобной для разработчиков форме информационно-логический уровень абстрагирования, связанный с фиксацией и описанием объектов предметной области, их свойств и взаимодействий.

3

Концептуальная модель данных – способ логического упорядочения данных (модели данных иерархическая, сетевая, реляционная, объектно-ориентированная).

Даталогическая (внутренняя) модель данных – описание данных на языке конкретной СУБД.

Физическая модель данных – описание расположения хранимых данных и методов доступа к ним (логическая структура файлов, работа с аппаратными средствами хранения данных)

Модели данных:

Инфологические модели

Даталогические модели

Физические модели

Диаграммы Бахмана

Модели «сущность-связь» (ER)

Документальные модели

Ориентированные на формат документа

Дескрипторные модели

Тезаурусные модели

Фактографические

Теоретико-графовые

Иерархическая

Сетевая

Теоретико-множественные

Реляционная Бинарных ассоциаций

Объектно-ориентированные

Основанные на файловых структурах

Основанные на сегментно-страничной адресации

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

4

1.4 Инфологическое моделирование. ER-диаграммы.

Цель инфологического моделирования (ИМ) – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Инфологическое моделирование прежде всего связано с попыткой представления семаники предметной области в модели БД.

Основным инструментом разработки инфологических моделей (прежде всего для реляционных баз данных) в настоящий момент являются диаграммы «сущность-связь» (Entity-Relationship). Предложен этот способ моделирования в 1976 г. Питером Пин-Шэн Ченом. В настоящее время используются различные нотации этой модели. Мы будем рассматривать ER-диаграммы в нотации Баркера.

Конструктивные элементы инфологического моделирования:

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

Сущность на диаграммах изображается в виде прямоугольника с наименованием.

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

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

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

Атрибуты, входящие в ключ на диаграмме, выделяются подчёркиванием.

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

Связи делятся на три типа по множественности:

-один-к-одному (1:1) – экземпляр одной сущности связан только с одним экземпляром другой сущности;

-один-ко-многим (1:М) – один экземпляр сущности может быть связан с несколькими экземплярами другой сущности;

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

5

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

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

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

– нижняя связь на рисунке: студент, пишущий диплом, всегда имеет научного руководителя, а преподаватель может иметь одного или несколько дипломников, или вовсе их не иметь.

Графически связь изображается линией, соединяющей две сущности. Над линией помещается имя связи или два имени у каждого конца связи. Конец линии со стороны «многие» отмечается её растраиванием. В случае возможной связи линия пунктирная, в случае обязательной – сплошная.

 

Студент

 

 

Лекции

 

Преподаватель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Слушает

Читает

 

 

 

 

номер зач книжки

 

лекции

лекции

 

таб. номер

 

 

ФИО

 

Дипломное проектирование

 

ФИО

 

 

группа

 

Пишет

Руководит

 

кафедра

 

 

 

 

 

 

 

 

 

 

диплом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

Втерминах ИМ:

База данных – даталогическое представление информационной модели предметной области, а СУБД – система, с помощью которой реализуется централизованное

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

1.5 Модели доступа к данным.

Помимо разделения баз данных по методам обработки, можно классифицировать их по используемой модели (или

 

 

 

структуре) данных. С помощью модели данных

 

 

 

можно наглядно представить структуру объектов и

 

 

 

установленные между ними связи. Модель данных

предок

Отдел

 

непосредственно определяет наименование СУБД.

Начальник

 

Сотрудник

6

потомки

Иерархическая модель. БД состоит из упорядоченного набора древовидных структур данных. Организационные структуры, списки материалов, оглавления в книгах, планы проектов и многие другие совокупности данных могут быть представлены в иерархическом виде. При этом автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя, причём потомок имеет единственного родителя. Недостатком модели является сложность реорганизации данных и невозможность выполнения «горизонтальных» запросов к данным, не связанных с иерархической структурой.

Иерархическая модель появилась первой среди всех даталогических моделей: именно эту модель поддерживала первая из зарегистрированных промышленных СУБД IMS (Information Management System) IBM (1968 год). Каждая физическая база описывается набором операторов, определяющих как её логическую структуру, так и структуру хранения баз данных.

Сетевая модель. Является расширением иерархической модели. Здесь каждый порождённый

Назначение

 

 

 

 

элемент (потомок) может иметь более одного

потомок

 

 

 

порождающего элемента (предка). Сетевая

начальника

 

 

 

 

Отдел

 

 

 

 

 

 

БД может представлять непосредственно все

 

 

 

 

 

предок

 

 

потомок

виды связей, присущих данным. По этим

 

 

предок

 

 

 

 

 

 

данным можно перемещаться, исследовать и

Начальник

 

 

 

 

 

 

 

 

 

запрашивать их всевозможными способами.

 

 

Работает в

 

 

Однако любой

запрос к

сетевой БД

 

 

отделе

 

 

 

 

 

 

предполагает

выработку

собственного

 

 

 

 

 

Состоит из

 

 

 

предок механизма навигации по этой базе. При этом

сотрудников

 

 

 

 

 

 

 

автоматически целостность данных СУБД не

 

потомок

Сотрудник

 

 

 

поддерживается.

 

 

 

 

 

 

 

 

 

Базовыми понятиями модели являются:

Элемент данных – минимальная информационная единица, доступная пользователю с использованием СУБД.

Агрегат – поименованный набор данных. Агрегат данных типа «вектор» - линейный набор элементов данных (например агрегат «Адрес: город, улица, дом, квартира»). Агрегат данных типа «повторяющаяся группа» соответствует совокупности векторов данных. Например, агрегат «Зарплата: месяц, сумма (х 12)».

Записью называется совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Для записи вводятся понятия типа записи и экземпляра записи. Связь или набор – двухуровневый граф, связывающий отношением «один-ко-многим» два типа записи. Связи именуются. Для любых двух типов записей может быть задано любое количество связей.

Некоторые правила и термины построения сетевой модели:

Тип связи L определяется для типа записи предка P и потомка C. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. При этом (1) каждый экземпляр типа P является предком только в одном экземпляре L;

(2)Каждый экземпляр C является потомком не более чем в одном экземпляре L.

Следствия таких правил таковы:

(1)Тип записи С в связи L1 может быть типом записи P в связи L2 (обычная иерархическая модель).

(2)Тип записи P может быть таковым в любом числе типов связи.

(3)Тип записи P может фигурировать как тип записи C в любом числе типов связи.

(4)Может существовать любое число типов связи с одним и тем же типом записи P и типом записи C.

7

(5)Одни и те же типы записей могут быть предком и потомком в связи L1 и потомком и предком в связи L2.

Стандарт сетевой модели впервые был определен в 1975 году организацией CODASYL (Conference of Data System Language), которая определила базовые понятия модели и формальный язык описания. Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc.

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

Примеры широко известных реляционных БД: MS FoxPro, MS Access.

Объектно-ориентированная модель. Её структура описывается с помощью трёх ключевых понятий:

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

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

-Полиморфизм – различные объекты в зависимости от внешних событий могут вызывать

одинаково названные методы, но по-разному реализованные.

Особенностью ООБД является невозможность применения к хранимым объектам понятий и алгоритмов реляционной модели. В этой связи необходим некоторый процедурный язык для оформления запросов и обработки данных. Обеспечение целостности данных заключается в (1) автоматической поддержке отношений наследования; (2) возможности объявлять поля и методы объекта как «скрытые» (т.е. невидимые для других объектов); (3) реализовывать процедуры контроля целостности данных внутри объектов.

Примеры ООБД: Caché, FastObjects, GemStone/S, Jasmine, к ним примыкает объектно-

реляционная СУБД PostgeSQL.

1.6 Теория модели реляционных баз данных.

Теоретической основой модели стала теория отношений, основу которой заложили Ч.С. Пирс и Э. Шрёдер. Основоположником теории реляционных баз данных считается сотрудник фирмы IBM доктор A. Codd, опубликовавший в 1970 г. статью «Реляционная модель данных для больших коллективных банков данных». Кодд, будучи математиком по образованию, предложил использовать для обработки данных аппарат теории множеств и предикативной логики для того, чтобы внести в область управления базами данных строгие математические принципы. Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен премии Тьюринга в области теоретических основ вычислительной техники.

Термины реляционной модели и теории множеств:

Домен (Domain) – некоторое конечное множество. Обозначение: Di , где i – номер домена. Отдельный элемент домена обозначим di с тем же смыслом i.

Полное декартово произведение множеств – набор всевозможных сочетаний из n элементов каждое, где каждый элемент берётся из своего домена. Описание:

D1D2 …Dn.

Отношение (relation) R – подмножество декартова произведения множеств D1, D2, … Dn (n≥1), необязательно различных. Описание: R D1D2 …Dn.

8

Число n называется степенью отношения (n = 1 – унарное, n = 2 – бинарное, в общем случае n-арное).

Атрибутом (Attribute) называют домен, входящий в отношение. Степень отношения определяет количество атрибутов в отношении.

Кортежем (Tuple) называют декартово произведение элементов множеств d1d2 …dn.

Атрибуты, значения которых однозначно идентифицируют кортежи, называются ключевыми. Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным (primary key), его значения не могут обновляться. Все остальные ключи отношения называются возможными (потенциальными) ключами.

Схемой отношения S называется перечень имён атрибутов данного отношения с указанием домена, к которому они относятся. Описание: SR= (A1, A2, …, An), Ai Di.

Набор именованных схем отношений представляет собой схему базы данных.

Отношения удобно представлять в виде таблиц.

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

Инфологическая модель

Реляционная модель

Описание реляционной СУБД

Сущность

Отношение

Таблица

Атрибут

Атрибут

Поле (названия столбцов)

Экземпляр сущности

Кортеж

Запись (строка таблицы)

???

Домен

Общая совокупность

 

 

допустимых значений

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

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

1.В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение.

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

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

Свойства реляционных баз данных (вытекают из определения отношения и кортежа как множеств):

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

2.Отсутствие упорядоченности кортежей (таблица с переставленными строками остаётся той же самой таблицей).

3.Отсутствие упорядоченности атрибутов (таблица с переставленными столбцами остаётся той же самой таблицей).

9

4. Все значения атрибутов отношения атомарные (в каждой позиции на пересечении столбца и строки расположено только одно значение).

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

Реляционная алгебра:

Алгеброй называется множество объектов с заданной на нём совокупностью операций, замкнутых относительного этого множества. Коддом было предложено 8 операций, хотя это множество избыточное, так как некоторые операции могут быть представлены друг через друга.

Теоретико-множественные операции:

1.Объединение отношений. Результатом объединения двух отношений является отношение, включающее все кортежи, входящие хотя бы в одно из отношенийоперандов. Обозначение: R3 = R1 R2. Операция коммутативна.

2.Пересечение отношений. Результатом пересечения двух отношений является отношение, включающее все кортежи, входящие в оба отношения-операнда. Обозначение: R3 = R1 R2. Операция коммутативна.

3.Разность отношений. Отношение, являющееся разностью двух отношений включает все кортежи, входящие в отношение-первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом. Обозначение: R3 = R1 \ R2. Операция некоммутативна.

Пример на первые три операции:

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

R1 = (Номер зачетки, ФИО, Группа) – список студентов, сдававших экзамен в сентябре; R2 = (Номер зачетки, ФИО, Группа) – список студентов, сдававших экзамен в декабре;

R3 = (Номер зачетки, ФИО, Группа) – список студентов, сдавших экзамен по курсу до января месяца;

Ударим реляционной алгеброй по следующим вопросам:

а) Какие студенты сдавали два раза, но так и не сдали экзамен?

Ответ: R = R1 R2 \ R3.

б) Какие студенты сдавали экзамен только один раз, и сдали его?

Ответ: R = (R1 \ R2 R3) (R2 \ R1 R3).

в) Какие студенты смогли сдать экзамен только со второго раза?

Ответ: R = R1 R2 R3.

г) Какие студенты сдавали экзамен один раз, не сдали, и больше не появлялись?

Ответ: R = (R1 \ R2) (R2 \ R1) \ R3.

Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.

4.Прямое произведение отношений (расширенное декартово произведение).

Результатом прямого произведения двух отношений является отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов. Обозначение: R1 R2. Операция коммутативна. Операция используется для получения

10