Операции
Реляционной модели баз данных сопутствует реляционная алгебра, в которой определено много операций над отношениями. Три типичные операции - это выбор (selection), проекция (projection) и соединение (join).
Выбор выдает отношение, содержащее подмножество строк данного отношения, удовлетворяющее некоторому условию на значения полей. Применяя условие выбора "pages меньше, чем 400" к BOOKS, получим отношение, состоящее из первой, второй и последней строки BOOKS.
Проекция отношения на один или несколько атрибутов получается пропуском всех других полей и устранением повторяющихся строк в получившемся результате. Если спроектировать наше отношение на последний атрибут, то получим отношение с одним полем и с тремя кортежами: "STENDHAL", "FLAUBERT" и "BALZAC". Если же спроектировать его на три первых атрибута, то получится отношение с тремя полями, полученное из исходного вычеркиванием последнего столбца.
Соединение двух отношений это комбинированное отношение, полученное путем выбора атрибутов с согласованными типами в каждом из них и объединением строк с одинаковыми (в общем случае, согласованными) значениями этих атрибутов. Предположим, что у нас имеется еще отношение AUTHORS (АВТОРЫ):
"BALZAC" | "Honore_ de Balzac" | 1799 | 1850 |
"FLAUBERT" | "Gustave Flaubert" | 1821 | 1880 |
"PROUST" | "Marcel Proust" | 1871 | 1922 |
"STENDHAL" | "Henry Beyle" | 1783 | 1842 |
Тогда соединение отношений BOOKS и AUTHORS по согласованным атрибутам author и name будет следующим отношением:
"The Red and the Black" | 1830 | 341 | "STENDHAL" | "Henry Beyle" | 1783 | 1842 |
"The Charterhouse of Parma" | 1839 | 307 | "STENDHAL" | "Henry Beyle" | 1783 | 1842 |
"Madame Bovary" | 1856 | 425 | "FLAUBERT" | "Gustave Flaubert" | 1821 | 1880 |
"Euge_nie Grandet" | 1833 | 346 | "BALZAC" | "Honore_ de Balzac" | 1799 | 1850 |