Приложение 1. Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL).
Для того, чтобы показать, что язык SQL является реляционно полным, нужно показать, что любой реляционный оператор может быть выражен средствами SQL. На самом деле достаточно показать, что средствами SQL можно выразить любой из примитивных реляционных операторов.
Оператор декартового произведения
Реляционная алгебра: (R S),
Оператор SQL:
SELECT R.*, S.*
FROM R, S;
или
SELECT R.*, S.*
FROM R CROSS JOIN S;
Оператор проекции
Реляционная алгебра: ( [X, Y,…, Z](R)),
Оператор SQL:
SELECT DISTINCT X, Y, …, Z
FROM R;
Оператор выборки
Реляционная алгебра: ( ,
Оператор SQL:
SELECT * FROM R
WHERE ;
Оператор объединения
Реляционная алгебра: (R S) ,
Оператор SQL:
SELECT * FROM R
UNION
SELECT * FROM S;
Оператор вычитания
Реляционная алгебра: (R S) ,
Оператор SQL:
SELECT * FROM R
EXCEPT
SELECT * FROM S;
Некоторые СУБД не поддерживают данный синтаксис, поэтому оператор вычитания может быть реализован с помощью предиката NOT IN. Пусть отношение R имеет первичный ключ PK1, а отношение S — PK2, тогда отрицание представляется:
SELECT * FROM R
WHERE PK1 NOT IN (SELECT PK2 FROM S);
Оператор пересечения
Реляционная алгебра: (R S)
Оператор SQL:
Do'stlaringiz bilan baham: |