Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Реляционные языки

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

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

Рассмотрим основы реляционной алгебры и реляционного исчисления, которые предложены Коддом (1971) в качестве основы для создания реляционных языков.

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

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

Реляционная алгебра и реляционное исчисление эквивалентны друг другу, т.е. для каждого выражения алгебры существует эквивалентное выражение в реляционном исчислении (и наоборот).

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

Реляционно-полный язык – язык, позволяющий получить любое отношение, которое можно вывести с помощью реляционного исчисления.

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

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

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

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

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

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

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

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

Пять основных операций реляционной алгебры (выполняют большинство операций извлечения данных):

  • выборка (selection),

  • проекция (рrojection),

  • декартово произведение (сartesian product),

  • объединение (union),

  • разность (set difference).

На основании пяти основных операций можно также вывести дополнительные операции, такие как операции:

  • соединения (join),

  • пересечения (intersection),

  • деления (division).

Функции этих операций схематически показаны на рис. 5.1.

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

В приведенных ниже определениях S и R – это два отношения, определенные над атрибутами A=(a1, a2, …aN); B=(b1, b2, …,bM) соответственно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]