Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BakalVoprosy - KC-2010_pre_Answers.doc
Скачиваний:
2
Добавлен:
07.07.2019
Размер:
1.01 Mб
Скачать
  1. Операції реляційної алгебри та їх реалізація на мові sql.

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

  • Традиционные операции над множествами: объединение, пересечение, вычитание и декартовое произведение.

  • Специальные реляционные операции: селекция, проекция, соединение, деление. Задачей разработчика СУБД является реализация этих операций, а задачей прикладного программиста – их использование для решения каких-то задач.

Операции над множествами.

Объединением двух отношений А и В называется множество всех кортежей, принадлежащих либо А, либо В, либо им обоим.

Пересечением двух отношений А и В называется множество всех кортежей, каждый из которых принадлежит как А, так и В.

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

Декартовым произведением двух отношений А и В называется множество всех кортежей, таких, что каждый их них является конкатенацией кортежей..

Специальные реляционные операции.

Селекцией (SELECT) отношения А по атрибуту x,y (A(x,y)) называется множество всех кортежей из А таких, что истинно утверждение A*X Q A*Y, где Q = { :=, ≠, <, >, >=, <= } (одна из операций сравнения).

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

Проэкцией (PROJECT) отношения А – выборка из каждого картежа отношения указанных атрибутов с последующим исключением (если это необходимо) повторяющихся строк.

Cоединение (JOIN) отношение А по атрибуту x с отношением В по атрибуту y - множество всех картежей, таких, что они являются конкатенацией (сочетаний) всех картежей принадлежащих А с картежами, принадлежащими В, для которых утверждение A.x Q B.y принимает истинное значение. Операция сравнения имеет сходство с декартовым произведением, но в результате отношения попадают только те же картежи, которые удовлетворяют заданному условию.

Имеется несколько вариантов операции JOIN:

  • Если Q := (равенство), то соединение называется эквисоединением.

  • Если из результатирующего отношения, полученного в результате эквисоединения один из общих атрибутов отбрасывается, то такое соединение называется естественным соединением.

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

Операция деления (DIVIDE) делит отношение А степени 2 на отношение В степени 1 и результатом является отношение С степени 1 с атрибутом, т.е. частное состоит из тех Х компонент делимого, где соответствующая y компоненты делимого включает каждый компонент делителя.

Реляционной модели присущи 2 ограничения целостности:

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

  • Целостность по ссылкам. Внешний ключ отношения всегда должен совпадать со значением первичного ключа связанного с ним отношения. Имеет важное значение при вводе даннных.

С помощью предложения SELECT можно реализовать любую операцию реляционной алгебры.

Селекция (горизонтальное подмножество) таблицы создается из тех ее строк, которые удовлетворяют заданным условиям. Пример:

SELECT *

FROM Блюда

WHER Основа = 'Молоко'

AND Выход > 200;

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

SELECT DISTINCT Блюдо, Выход, Основа

FROM Блюда;

Объединение двух таблиц содержит те строки, которые есть либо в первой, либо во второй, либо в обеих таблицах. Пример:

SELECT Блюдо, Основа, Выход FROM Блюда WHER Основа = 'Овощи'

UNION

SELECT Блюдо, Основа, Выход FROM Блюда WHER В = 'Г';

Пересечение двух таблиц содержит только те строки, которые есть и в первой, и во второй. Пример:

SELECT БЛ

FROM Состав

WHERE БЛ IN ( SELECT БЛ FROM Меню);

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

SELECT БЛ

FROM Состав

WHERE БЛ NOT IN ( SELECT БЛ FROM Меню);

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

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