
- •1.2. Обзор реляционной алгебры
- •Глава 1 Введение в базы и банки данных
- •1.1. Понятие базы и банка данных
- •1.2. Компоненты банка данных
- •1.2.1. Информационная база
- •1.2.2. Лингвистические средства
- •1.2.3. Программные средства
- •1.2.4. Технические средства
- •1.2.5. Организационно-административные подсистемы
- •1.3. Пользователи баз данных
- •1.4. Типология баз данных
- •1.4.1. Типология баз данных с точки зрения информационных процессов
- •1.5. Семантика баз данных
- •1.6. Типология моделей
- •Глава 2. Базовые технологии и основные этапы развития машинной обработки данных
- •2.1. Введение в технологии машинной обработки данных и основные определения
- •2.2. Примерная схема организации файлового ввода-вывода
- •2.3. Эволюция концепций обработки данных
- •2.3.1. Простые (линейные) файлы данных (начало 60-х гг.)
- •2.3.2. Методы доступа к записям (конец 60-х гг.)
- •2.3.3. Первые системы управления базами данных (начало 70-х гг.)
- •2.3.4. Системы управления базами данных
- •2.4. Схема управления данными в субд
- •2.5. Данные и управление их обработкой
- •2.5.1. Типы, форматы, структуры данных
- •2.5.2. Описание и обработка файлов
- •2.6. Особенности и компромиссы реализаций баз данных
- •Глава 3. Модели и структуры данных
- •3.1. Многоуровневые модели предметной области
- •3.2. Идентификация объектов и записей
- •3.3. Поиск записей
- •3.4. Представление предметной области и модели данных
- •3.5. Структуры данных
- •3.5.1. Линейные структуры
- •3.5.2. Нелинейные структуры
- •3.5.3. Сетевые структуры
- •3.6. Реляционная модель данных
- •3.6.1. Основные понятия реляционной модели данных
- •3.6.2. Основы реляционной алгебры
- •Глава 4. Физические модели баз данных
- •4.1. Организация данных на машинных носителях
- •4.1.1. Типы записей
- •4.1.2. Организация файлов — способ размещения записей
- •4.1.3. Способы адресации и методы доступа к записям
- •4 1.4. Схемы организации данных на внешних носителях
- •4.2. Физическое представление иерархических структур
- •4.2.1. Физически последовательное размещение
- •4.2.2. Левосписковые структуры с переполнениями
- •4.2.3. Использование указателей на «подобные» и «порожденные»
- •4.3. Физическое представление сетевых структур
- •4.3.1. Физически последовательное размещение
- •4.3.2. Использование указателей
1.2. Обзор реляционной алгебры
В основе реляционной алгебры лежит идея о том, что так как отношение – это множество кортежей, то и средства манипулирования отношениями должны быть такими же, как традиционные теоретико–множественные операции, дополненные специфическими для баз данных операциями.
Расширенный начальный вариант алгебры, опеределенный Коддом, состоит из восьми алгебраических операций, которые делятся на два класса – теоретико–множественные операции и специальные реляционные операции.
В состав теоретико–множественных операций входят:
объединение отношений;
пересечение отношений;
взятие разности отношений;
декартово произведение отношений.
Специальные реляционные операции включают:
проекцию отношения;
соединение отношений;
деление отношений;
выборка или ограничение отношения.
Приведем общую интерпретацию этих реляционных операций:
Выборка: возвращает отношение, содержащее кортежи из заданного отношения, которые удовлетворяют указанным условиям;
Проекция: возвращает отношение, содержащее все кортежи заданного отношения, которые остались в этом отношении после исключения из него некоторых атрибутов;
Произведение: возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям;
Объединение: возвращает отношение, содержащее все кортежи, которые принадлежат либо одному, либо обоим из заданных отношений;
Пересечение: возвращает отношение, содержащее кортежи, которые принадлежат одновременно двум заданным отношениям;
Разность: возвращает отношение. содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму;
Соединение: возвращает отношение, кортежи которого – это сочетания двух кортежей (принадлежащих соответственно двум определенным отношениям), имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений ( и такие общие значения в результирующем кортеже появляются только один раз, а не дважды).
Деление: для двух отношений, бинарного и унарного, возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют (в другом атрибуте) всем значениям в унарном отношении.
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения:
Операция переименования производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.
Операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.
Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.
Для алгебры, у которой операции замкнуты относительно понятия отношения, каждая операция должна производить отношение с двумя составляющими: телом и заголовком. Только в этом случае будет действительно возможно строить вложенные выражения. Операции объединения, пересечения взятия разности (вычитания) требуют от отношений-операндов совместимых по типу. Два отношения называются совместимыми по типу, если каждое из них имеет одинаковое множество имен атрибутов и если соответствующие атрибуты определены на одном и том же домене. Если необходимо выполнить операцию объединения, пересечения или вычитания двух отношений, которые почти совместимы по типу, за исключением некоторых различий в именах атрибутов, можно использовать оператор переименования, чтобы сделать эти отношения полностью совместимыми по типу, прежде чем выполнить необходимую операцию.
Теперь можно приступить к определениям отдельных операций начальной алгебры. В дальнейшем изложении будем предполагать применение операции переименования во всех конфликтных случаях.
В рассмотренных ниже примерах используются следующие отношения:
P(D1,D2,D3) |
|
Q(D4,D5) |
|
R(M,P,Q,T) |
|
S(A,B) |
||||||||||||
1 |
11 |
x |
|
x |
1 |
|
x |
101 |
5 |
a |
|
5 |
a |
|||||
2 |
11 |
y |
|
x |
2 |
|
y |
105 |
3 |
a |
|
10 |
b |
|||||
3 |
11 |
z |
|
y |
1 |
|
z |
500 |
9 |
a |
|
15 |
c |
|||||
4 |
12 |
x |
|
|
|
|
w |
50 |
1 |
b |
|
2 |
d |
|||||
|
|
|
|
|
|
|
w |
10 |
2 |
b |
|
6 |
a |
|||||
|
|
|
|
|
|
|
w |
300 |
4 |
b |
|
1 |
b |
При этом будут приведены традиционное обозначение операции (левое поле таблицы) и обозначение, принятое в книге Дейта (правое поле).