10.01.2017 Views

sql

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 />

Существует несколько типов ограничений, и каждая СУБД обеспечивает свой

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!