You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Урок 22<br />
Расширенные возможности SQL<br />
В этом уроке мы рассмотрим несколько расширенных возможностей манипулирования<br />
данными: ограничения, индексы и триггеры.<br />
Что такое ограничения<br />
Было разработано много версий языка SQL, прежде чем он стал столь полноценным и<br />
мощным. Многие из наиболее эффективных инструментов манипуляции с данными<br />
основаны на таких методах, которые обеспечиваются с помощью ограничений.<br />
И реляционные таблицы, и целостность на уровне ссылок несколько раз упоминались в<br />
предыдущих уроках. В них, в частности, говорилось, что реляционные базы данных<br />
хранят данные во многих таблицах, каждая из которых содержит данные, связанные с<br />
данными из других таблиц.<br />
Для создания ссылок из одной таблицы на другие используются ключи (отсюда термин<br />
целостность на уровне ссылок).<br />
Чтобы реляционная база данных работала должным образом, необходимо удостовериться<br />
в том, что данные в ее таблицы введены правильно. Например, если в таблице Orders<br />
хранится информация о заказе, а в Order Items — его детальное описание, вы должны быть<br />
уверены, что все идентификаторы заказов, упомянутые в таблице OrderItems, существуют<br />
и в таблице Orders. Аналогично, каждый клиент, упомянутый в таблице Orders, не должен<br />
быть забыт и в таблице Customers.<br />
Хотя вы можете проводить соответствующие проверки, прежде чем вводить новые<br />
строки (выполняя оператор SELECT для другой таблицы, дабы удостовериться в том,<br />
что нужные значения правильны), лучше избегать такой практики по следующим<br />
причинам.<br />
Если правила, обеспечивающие целостность базы данных, принудительно<br />
осуществляются на клиентском уровне, их придется выполнять каждому клиенту<br />
(некоторые из клиентов наверняка не захотят этого делать).<br />
Вам придется принудительно ввести правила для выполнения операций UPDATE и<br />
DELETE.<br />
Выполнение проверок на клиентской стороне — процесс, отнимающий много<br />
времени.<br />
Заставить СУБД выполнять эти проверки — метод намного более эффективный.<br />
Ограничения<br />
Правила, регламентирующие ввод данных в базу данных и манипуляцию ими.<br />
СУБД принудительно обеспечивают целостность на уровне ссылок за счет ограничений,<br />
налагаемых на таблицы базы данных. Большинство ограничений вводится в определениях<br />
таблиц (с помощью операторов CREATE TABLE или ALTER TABLE, об этом<br />
рассказывалось в уроке 17, "Создание таблиц и работа с ними").<br />
Предупреждение<br />
Существует несколько типов ограничений, и каждая СУБД обеспечивает свой