- •1Информатика Определение. Предмет и задачи
- •2Основные направления в информатике
- •3Формальная постановка задачи. Отображение.
- •4Типовые (простые) схемы алгоритмов
- •5 Программирование вложенных циклов
- •6Алгоритмизация. Абстрактный вычислительный алгоритм
- •7Способы задания алгоритмов
- •8Структурный подход к проектированию алгоритмов и программ
- •9Теорема о структуризации
- •10Обращение неструктурированных программ в структурированные
- •11Метод дублирования процессов
- •12Метод булевского признака
- •13Программирование. Общие понятия
- •14Основные этапы решения задач на эвм, пример.
- •15Состав языков программирования: алфавит,синтаксис, семантика
- •17Простейшие типы данных: номинальный, перечислимый, ограниченный (???)(нужен номинальный)
- •18Векторы и алгебра векторов
- •19Конструктор-селектор вектора в различных языках программирования
- •20Матрицы и матричное исчисление
- •21Конструктор-селектор матриц в различных языках программирования
- •22Множества и алгебра множеств
- •16Типы и структуры данных. Конструктор-селектор
- •25Символьный тип данных
- •26Строковый тип. Операция конкатенации
- •23Операции над множествами и их свойства
- •24Множественный тип данных
- •27Функции и процедуры над строковыми данными
- •28Математическая модель комбинированного типа данных
- •29Записи. Вариантные записи
- •32Понятие модели данных
- •33Иерархическая модель данных
- •34Сетевая модель данных
- •35Реляционная модель данных
- •36Реляционная алгебра. Основные операции
- •37Пример программирования треугольника Паскаля
36Реляционная алгебра. Основные операции
Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями.
Первоначальный набор из 8 операций был предложен Э. Коддом в 1970-е годы и включал как операции, которые до сих пор используются (проекция, соединение и т.д.), так и операции, которые не вошли в употребление (например, деление отношений).
Замкнутость реляционной алгебры
Реляционная алгебра представляет собой набор таких операций над отношениями, что результат каждой из операций также является отношениям. Это свойство алгебры называется замкнутостью.
Операции над одним отношением называются унарными, над двумя отношениями — бинарными, над тремя — тернарными (таковые практически неизвестны).
Пример унарной операции — проекция, пример бинарной операции — объединение.
Реляционную операцию f можно представить функцией с отношениями в качестве аргументов:
R = f(R1, R2, …, Rn)
Поскольку реляционная алгебра является замкнутой, в качестве операндов в реляционные операции можно подставлять другие выражения реляционной алгебры (подходящие по типу):
R = f(f1(R11, R12, …), f2(R21, R22,…),…)
В реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры.
Ограничения на операции
Некоторые реляционные операции, в частности, операции объединения, пересечения и вычитания, требуют, чтобы отношения имели совпадающие (одинаковые) заголовки (схемы). Это означает, что совпадают количество атрибутов, названия атрибутов и тип (домен) одноимённых атрибутов.
Некоторые отношения формально не являются совместимыми из-за различия в названиях атрибутов, но становятся таковыми после применения операции переименования атрибутов.
Операции реляционной алгебры
а) Переименование
В результате применения операции переименования получаем новое отношение, с измененными именами атрибутов.
Синтаксис:R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2, …гдеR — отношение, Atr1, Atr2, … — исходныеименаатрибутов, NewAtr1, NewAtr2, … — новыеименаатрибутов
б) Объединение
Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям.
Синтаксис:A UNION B
в) Пересечение
Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B.
Синтаксис:A INTERSECT B
г) Вычитание
Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B.
Синтаксис:A MINUS B
д) Декартово произведение
Отношение (A1, A2, …, Am, B1, B2, …, Bm), заголовок которого является сцеплением заголовков отношений A(A1, A2, …, Am) и B(B1, B2, …, Bm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B:(a1, a2, …, am, b1, b2, …, bm)таких, что (a1, a2, …, am)∈A, (b1, b2, …, bm)∈B.
Синтаксис:A TIMES B
е) Выборка (ограничение)
Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. c представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения.
Синтаксис:A WHERE c
ж) Проекция
Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов.
Синтаксис:A[X, Y, …, Z]илиPROJECT A {x, y, …, z}
з) Соединение
Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
Синтаксис:(A TIMES B) WHERE c
и) Деление
Отношение с заголовком (X1, X2, …, Xn) и телом, содержащим множество кортежей (x1, x2, …, xn), таких, что для всех кортежей (y1, y2, …, ym) ∈ B в отношении A(X1, X2, …, Xn, Y1, Y2, …, Ym) найдется кортеж (x1, x2, …, xn, y1, y2, …, ym).Синтаксис:A DIVIDEBY B