ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 1594
Скачиваний: 23
76
В
задаваемых
в
предложении
WHERE
условиях
могут
использоваться
и
операторами
: = (
равно
), >
<= (
меньше
или
равно
), <> (
не
огические
операторы
AND
,
OR
и
NOT
.
дентов
,
обучающихся
и
получающих
стипендию
(
размер
стипендии
больше
нуля
)
аким
образом
,
STIPEND
>
0
;
яционной
ры
средствами
языка
SQL.
я
полнота
SQL
разделах
,
посвященных
рассмотрению
реляционной
й
из
важных
сторон
наличия
в
реляционной
о
аппарата
является
возможность
оценки
и
практически
используемых
языков
сти
языка
SQL.
Для
того
,
чтобы
показать
,
что
,
что
любой
оператор
ми
SQL.
На
самом
деле
ост
NION
SELECT
*
FROM
B
;
Оператор
пересечения
Реляционная
алгебра
:
A INTERSECT B
операции
сравнения
,
задаваемые
следующим
ньше
), >= (
больше
или
равно
),
(
больше
), < (
ме
равно
),
а
также
л
Например
,
запрос
для
получения
имен
и
фамилий
сту
на
третьем
курсе
будет
выглядеть
т
SELECT
NAME SURNAME
FROM
STUDENT
E E
KURS
=
3
AND
WH R
8.5.
Реализация
операций
рел
алгеб
Реляционна
В
предыдущих
алгебры
,
говорилось
,
что
одно
и еског
модели
такого
математ ч
о
доказательства
реляционн й
полноты
частно
запросов
к
базам
данных
,
в
ио
язык
SQL
является
реляц нно
полным
,
нужно
показать
реляционной
алгебры
может
быть
выражен
средства
д
аточно
показать
,
что
средствами
SQL
можно
выразить
любой
из
примитивных
реляционных
операторов
.
Ниже
приведены
примеры
реализации
реляционных
операторов
с
помощью
языка
SQL.
Оператор
объединения
Реляционная
алгебра
:
A UNION B
Оператор
SQL:
SELECT
*
FROM
A
U
77
Оператор
SQL:
SELECT
A
.
ПОЛЕ
1
,
A
.
ПОЛЕ
2
, …,
ROM
A
,
B
.
.
.
.
F
WHERE
A
ПОЛЕ
1=B
ПОЛЕ
1
AND
A
ПОЛЕ
2=B
ПОЛЕ
2
AND
…;
или
SELECT
A.*
FROM
A, B
SELE
и
SEL
Реля
О
S
WHERE
A.pk =B.pk;
где
A.pk
и
B.pk
первичные
ключи
таблиц
A
и
B
Оператор
вычитания
Реляционная
алгебра
:
A MINUS B
Оператор
SQL:
SELECT
*
FROM
A
WHERE
A.pk
NOT
IN
(
SELECT
pk
FROM
B);
где
A.pk
и
B.pk
первичные
ключи
таблиц
A
и
B
Оператор
декартового
произведения
Реляционная
алгебра
:
A TIMES B
Оператор
SQL:
CT
A
.
ПОЛЕ
1
,
A
.
ПОЛЕ
2
, …,
B
.
ПОЛЕ
1
,
B
.
ПОЛЕ
2
, …
FROM
A
,
B
;
ли
ECT
A
.
ПОЛЕ
1
,
A
.
ПОЛЕ
2
, …,
B
.
ПОЛЕ
1
,
B
.
ПОЛЕ
2
, …
FROM
A
CROSS
JOIN
B
;
Оператор
проекции
Реляционная
алгебра
:
A[X, Y, …, Z]
Оператор
SQL:
SELECT
DISTINCT
X
,
Y
, …,
Z
FROM
A
;
Оператор
выборки
ционная
алгебра
:
A WHERE
θ
ператор
SQL:
ELECT
*
FROM
A
WHERE
θ
;
78
Оператор
θ
-
соединения
Реляционная
алгебра
:
(A TIMES B) WHERE
θ
Оператор
SQL:
SELECT
A
.
ПОЛЕ
1
,
A
.
ПОЛЕ
2
, …,
B
.
ПОЛЕ
1
,
B
.
ПОЛЕ
2
, …
FROM
A
,
B
WHERE
θ
;
или
SELECT
A
.
ПОЛЕ
1
,
A
.
ПОЛЕ
2
, …,
B
.
ПОЛЕ
1
,
B
.
ПОЛЕ
2
, …
FROM
A
CROSS JOIN
B
WHERE
θ
;
Оператор
деления
Реляционная
алгебра
:
A(X,Y) DEVIDE BY B(Y)
Оператор
SQL:
SELECT
DISTINCT
A
.
X
F
(
SELECT
*
FROM B
WHERE
NOT
EXIST
(
SELECT
*
FROM
A A1
WHERE
A1
.
X=A
.
X
AND
A1
.
Y=B
.
Y
));
Таким
образом
,
приведенные
выражения
доказывают
,
что
язык
SQL,
как
и
реляционная
алгебра
,
является
реляционно
полным
.
Следует
обратить
внимание
на
то
,
если
в
приведенных
запросах
в
таблицах
будут
присутствовать
NULL
-
значения
(
см
.
ниже
раздел
то
все
вышеперечисленные
запросы
могут
отработать
неверно
,
т
.
к
.
NULL
< >
NULL
и
NULL
=
NULL
–
есть
ложь
.
Это
,
однако
,
не
опровергает
сделанного
вывода
о
реляционной
полноте
SQL,
так
ка
ROM
A
WHERE
NOT
EXIST
к
NULL
-
значения
реляционной
моделью
не
поддерживаются
.
9.
ти
к
е
Эт
ут
выполняться
над
данными
,
и
ограничения
целостности
данных
.
Первые
две
компоненты
были
рассмотрены
выше
в
разделах
и
соответственно
.
В
м
третью
составляющую
модели
–
ограничения
целостности
.
щих
к
ч
нных
,
в
си
д
вий
,
Ограничения
целостнос
в
реляционной
модели
Ка уже
говорилось
,
реляционная
модель
включает
в
себя
три
составны
части
.
о
–
описание
структуры
данных
,
описание
операций
,
которые
мог
данном
разделе
рассмотри
Очевидно
,
что
база
данных
представляет
для пользователя
какую
-
либо
ценность
до
тех
пор
,
пока
хранимые
в
ней
данные
будут
правильными
,
то
есть
будут
корректно
отражать
информацию
о
соответствующей
предметной
области
.
В
связи
с
этим
,
в
СУБД
желательно
наличие
средств
,
позволяю
онтролировать
корректность
хранимых
данных
.
Должно
быть
также
понятно
,
то
для
того
,
чтобы
можно
было
осуществлять
проверку
корректности
да
стеме
необходимо
наличие
ополнительной
информации
,
указывающей
,
какие
данные
считать
правильными
,
а
какие
нет
.
В
реляционной
модели
такого
рода
информация
указывается
в
ограничениях
целостности
данных
.
Ограничения
целостности
базы
данных
определяют
набор
усло
логических
ограничений
,
которым
должны
удовлетворять
данные
,
хранимые
в
базе
данных
.
Любое
ограничение
елостности
является
семантическим
понятием
,
т
.
е
.
относится
к
смыслу
,
а
не
форме
представления
данных
.
Оно
отражает
определенные
свойства
объектов
-
сущностей
предметной
области
,
информация
о
которых
не
может
быть
получена
из
анализа
самих
хранимых
в
базе
значений
данных
.
Например
,
из
анализа
фактически
присутствующих
в
отношении
значе
ц
ний
атрибута
нельзя
сделать
вывод
о
том
,
какие
значения
должны
считаться
правильными
.
То
,
что
,
например
,
значение
атрибута
Возраст
не
может
быть
отрицательным
числом
,
является
внешним
ограничением
,
накладываемым
на
значения
атрибута
исходя
из
семантики
(
смысла
)
предметной
области
.
Говорят
,
что
база
данных
находится
в
согласованном
или
целостном
состоянии
,
если
все
находящиеся
в
ней
данные
удовлетворяют
заданным
для
этой
базы
данных
ограничениям
целостности
данных
.
Следует
обратить
внимание
,
что
для
самой
базы
данных
,
для
СУБД
ограничения
целостности
являются
формальным
свойством
,
одним
из
видов
хранимой
в
базе
информации
о
предметной
области
.
СУБД
не
понимает
смысла
80
данных
.
Имеющая
средства
поддержки
ограничений
целостности
СУБД
реализует
проверку
и
обеспечение
согласованности
и
целостности
хранимых
данных
лишь
в
той
мере
,
в
которой
эти
данные
удовлетворяют
заданным
в
системе
ограничениям
целостности
.
Поэтому
более
точно
следует
говорить
,
что
СУБ
ще
,
а
выпо
жняется
тем
,
что
данн
н
к
ы
два
варианта
реакции
системы
:
можно
отвергнуть
попытку
нарушения
целостности
,
а
можно
выполнить
какие
-
либо
действия
,
компенсирующие
нарушение
целостности
.
сти
можно
Д
обеспечивает
не
целостность
или
согласованность
данных
вооб
лнение
заданных
в
базе
данных
ограничений
целостность
данных
.
Проблема
обеспечения
целостности
базы
данных
усло
ые
в
ней
не
являются
зафиксированными
,
неизменными
,
а
напротив
могут
изменяться
во
времени
.
Вследствие
этого
,
с
ограничениями
целостности
должен
быть
связан
абор
правил
и
определенных
действий
,
оторые
должны
выполняться
при
модификации
данных
,
для
того
,
чтобы
в
процессе
работы
с
базой
данных
обеспечивалась
корректность
хранимых
в
ней
данных
.
Другими
словами
,
чтобы
любые
действия
по
модификации
данных
переводили
базу
данных
из
одного
целостного
(
согласованного
)
состояния
в
другое
целостное
состояние
.
В
связи
с
этим
возникает
понятие
реакции
системы
на
попытку
нарушения
целостности
данных
.
При
этом
возможн
Действия
системы
по
проверке
ограничений
целостно
представить
в
следующем
виде
(
рисунок
По ытка
выполнить
операцию
(INSERT, UPDATE, DELETE)
п
Проверка
ограничений
Операция
выполняется
Ограничения
не
нарушаются
Ограничения
нарушаются
Операция
выполняется
.
Дополнительно
выполняются
компенси ующие
операции
Операция
отвергает я
р
с
Пользователь
или
приложение
Сообщение
об
отк зе
операции
а
ни
зависит
от
вида
затрагиваемых
этими
дейс
у
о
•
ограничения
целостности
уровня
атрибута
,
Рис
. 9.1.
Работа
системы
по
проверке
ограничений
целостности
Очевидно
,
что
реакция
системы
в
случае
осуществления
действий
по
модификации
данных
в
большой
степе
твиями
ограничений
целостности
.
В
зависимости
от области
действия
ограничений
целостности
их
можно
разделить
след ющим бразом
: