Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[конспект] Технологии баз данных [v0.8.1].pdf
Скачиваний:
79
Добавлен:
21.03.2016
Размер:
1.3 Mб
Скачать

2.3. Манипулирование данными

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

Для реляционной модели существует несколько формальных моделей для манипулирования данными (на базе которых реализуются реляционные или близкие к ним языки запросов):

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

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

Реляционная алгебра Кодда — первоначально предложена Э. Коддом в 1970-ые годы и включает 8 операций. В большей степени алгебра базируется на теории множеств. Базовыми операциями являются переименование атрибутов, объединение, пересечение, взятие разности, декартово произведение, проекция и ограничение. Операция соединения общего вида, хотя и включается в алгебру, является вторичной и явно представляется через другие операции.

Реляционная алгебра A — предложена Кристофером Дейтом и Хью Дарвеном [1]. В качестве базиса используются реляционные аналоги логических операций (реляционные отрицание, конъюнкция, дизъюнкция, удаление атрибута) на основе обычных теоретикомножественных операций и позволяют выражать напрямую операции пересечения, декартова произведения, естественного соединения, объединения отношений и т. д. Алгебра A позволяет лучше осознать логические основы реляционной модели, хотя является в меньшей степени ориентированной на практическое применение, чем алгебра Кодда, но зато красива и элегантна.

Реляционное исчисление

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

Строго говоря, реляционная алгебра и реляционное исчисление эквивалентны друг другу, т. е. для каждого выражения алгебры существует выражение реляционного исчисления, представляющие одно и то же отношения, и наоборот.

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

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

1 Вообще говоря, назначение агрегирующих функций состоит в получении единственного скалярного значения из всех значений, присутствующих в некотором указанном атрибуте некоторого указанного отношения. Например, таковыми являются COUNT, SUM, MAX, MIN и прочие. Но обычно в реализациях они имеют гораздо больше возможностей, например, выполнение вычислений в каждой отдельной группе кортежей отношения.

13