Язык запросов SQL

Ограничения



Ограничения

Ограничения вы устанавливаете на данные, вводимые кем-либо в таблицу базы данных. Например, известно, что значения, вводимые в определенный числовой столбец, должны находиться в пределах определенного диапазона. А если кто-то вводит число, которое не попадает в этот диапазон, то такой ввод будет ошибочным. От таких ошибок и защищает установленное на столбец ограничение — вводить в него только значения из определенного диапазона.

Традиционно сложилось так, что если прикладная программа использует базу данных, то она и накладывает на эту базу любые ограничения. Однако в самых последних продуктах у вас есть возможность устанавливать ограничения на данные непосредственно из СУБД. Этот подход дает несколько преимуществ. Если одна и та же база данных используется множеством приложений, то вам придется устанавливать ограничения только один раз, а не столько, сколько имеется приложений. Кроме того, устанавливать ограничения на уровне базы данных обычно проще, чем на уровне приложения. Во многих случаях вам будет достаточно только добавить предложение в свой оператор CREATE (создать).

Об ограничениях и утверждениях (assertions), которые тоже являются ограничениями, но применяются к более чем одной таблице, подробно рассказывается в главе 5.

Использование SQL в системе клиент/сервер

SQL — это подъязык данных, который работает в одно- или многопользовательской системе. Особенно хорошо SQL работает в системе клиент/сервер. В такой системе пользователи работают на множестве клиентских машин, соединенных с серверным компьютером. И эти пользователи могут иметь доступ — через локальную сеть или другие каналы связи — к базе данных, расположенной на сервере, с которым соединены их машины. В прикладной программе, работающей на клиентском компьютере, создаются команды SQL. Та часть системы СУБД, которая находится на клиентском компьютере, передает эти команды на сервер по каналу связи, соединяющему сервер с клиентом. А та часть СУБД, которая находится на сервере, интерпретирует и выполняет полученную команду SQL, а затем по каналу связи отправляет результаты назад, клиенту. В виде SQL можно закодировать очень сложные операции, а затем на сервере декодировать их и выполнить. Такого рода система позволяет эффективнее всего использовать пропускную способность канала связи.

Если вы с помощью SQL получаете данные через систему клиент/сервер, то по каналу связи от сервера на клиентский компьютер попадут только нужные вам данные. И наоборот, простая система с разделением ресурсов и с минимальным "интеллектом" сервера должна гонять туда-сюда по каналу связи огромные блоки данных. И все это ради того, чтобы вы смогли получить крохотное количество нужной информации. Не приходится и говорить, что такого рода пересылки данных могут очень замедлить работу. Архитектура клиент/сервер, дополняя характеристики SQL, дает возможность в малых, средних и больших сетях получать хорошую производительность при умеренных расходах.



Содержание раздела