Настоящая книга является практико-ориентированным учебником
и написана в соответствии с разделом действующих программ дисциплин по базам данных специальности 09.00.00 «Информатика и вычислительная техника» среднего профессионального образования. Она
содержит основы построения запросов и программирования на языке
структурированных запросов SQL (
Structured Query Language).
В связи с тем, что многие задачи, которые стоят перед современными специалистами, занимающимися созданием и сопровождением
информационных систем различного назначения, требуют развития
профессиональных компетенций, выходящих за пределы дисциплин,
в некоторых главах материал несколько расширен по сравнению с программами курсов. Он рассчитан на самостоятельную проработку, что
является вполне оправданным в связи с современной тенденцией увеличения объема внеаудиторной работы студентов. В то же время автор
не ставил перед собой задачу рассмотреть все вопросы программирования на SQL для современных реляционных систем управления базами
данных (РСУБД). Однако, несмотря на это, он надеется, что учебник
облегчит читателям восприятие материала, содержащегося в других
многочисленных источниках.
Учебник адресован в первую очередь студентам и начинающим
пользователям систем реляционных баз данных в архитектуре «клиентсервер» (как программистам, так и администраторам, а также конечным пользователям) и содержит всю необходимую информацию для
эффективного применения SQL на практике.
По базам данных вообще и по SQL в частности издано большое количество учебной и специальной литературы, в Интернет рекламируются
многочисленные очные и online-курсы. Однако по SQL нет единого
отечественного учебника с поддержкой дистанционным курсом и комплексным Интернет-тестированием. Настоящий учебник в некоторой
степени восполняет имеющийся пробел и в сравнительно небольшом
объеме решает основные вопросы построения запросов и программирования на SQL. Данный учебник — система знаний, умений и навыков, отражающая специфику программирования на SQL и обеспечивающая освоение компетенции в рамках профессионального модуля
по реляционным базам данных информационных систем.
Все примеры запросов и скриптов в учебнике выполнены на SQL
СУБД firebird 3.0 в среде IBExpert. Эти компоненты выбраны прежде всего потому, что их последние версии без всяких материальных

7
затрат и особых затруднений можно получить, установить на личном компьютере и использовать для самостоятельного изучения SQL
и последующей профессиональной разработки баз данных коммерческих информационных систем. Несмотря на то, что примеры разработаны для реализаций SQL конкретной системы управления базами
данных (СУБД), они также, за некоторым исключением, будут работать
в любой из современных промышленных реляционных СУБД в архитектуре «клиент-сервер».
Учебник рекомендован для студентов учреждений среднего профессионального образования и дополнительного профессионального
образования по направлениям, связанным с разработкой, эксплуатацией, администрированием и сопровождением реляционных баз данных информационных систем.
Изложение материала настоящего учебника строится в соответствии
с рекомендуемым порядком изучения языка SQL. Описываются самые
последние версии запросов SQL, соответствующие стандарту SQL:2014.
В гл. 1 даны общие минимальные сведения из систем реляционных
баз данных, необходимые для понимания всего последующего материала. Здесь изложены основные понятия и принципы организации реляционных баз данных на примере учебной, кратко описывается процесс
проектирования, рассматриваются особенности работы с базами данных в архитектуре «клиент-сервер».
Глава 2 является кратким введением в язык SQL. В ней приведены
определения основных объектов базы данных, описаны функции
и достоинства структурированного языка запросов, дана классификация запросов, проанализированы различные формы языка, рассмотрены особенности функционирования и состав СУБД firebird.
В гл. 3 рассмотрены возможности SQL по выборке данных из базы
данных. Здесь изучены практически все указанные в стандарте SQL
средства выборки данных и, кроме того, представлены некоторые
дополнительные возможности, реализованные в СУБД firebird.
В гл. 4 описан язык определения данных ddL, который позволяет
создавать, изменять и удалять основные объекты базы данных.
В гл. 5 объясняется, каким образом с помощью языка dmL осуществляется манипулирование данными в уже созданной базе данных.
Глава 6 знакомит читателей с особенностями использования процедурных расширений SQL. На процедурном SQL создаются хранимые
процедуры, функции, триггеры, пакеты и выполняемые блоки, позволяющие реализовать многие бизнес-задачи в рамках СУБД, не обращаясь
к прикладному программированию в другой среде.
В гл. 7 рассмотрены вопросы защиты данных. Изложены общие правила разграничения прав доступа пользователей к объектам базы данных, изучены методы управления доступом к данным.
Глава 8 посвящена описанию транзакций. Рассмотрены механизмы
управления параллельностью работы в многопользовательских системах.

8
В конце каждой главы приведены контрольные вопросы, с помощью которых можно проверить усвоение теоретического материала.
Также имеется описание лабораторного практикума по всем главам
учебника. Материал сопровождается большим количеством как простых, так и довольно сложных примеров запросов и скриптов на учебной базе данных, являющейся весьма сокращенным вариантом базы
данных расчетно-аналитической информационной системы «Абонент».
Система «Абонент» эффективно используется во многих регионах
РФ для информационного обеспечения деятельности ресурсоснабжающих и газораспределительных организаций, управляющих компаний,
единых расчетно-кассовых центров и других жилищно-коммунальных
предприятий.
Предметной областью, используемой в примерах построения запросов и программирования на SQL, является расчет с абонентами за оказанные жилищные услуги и израсходованные ими коммунальные
ресурсы. Данная область хорошо знакома практически каждому гражданину нашей страны. Поэтому освоение читателем данной предметной области, во-первых, не составит особого труда и, во-вторых, позволит лучше понять тонкости постоянно усложняющихся алгоритмов
расчета платы за жилищно-коммунальные услуги.
Изучив данный курс, читатели, кроме теоретических знаний, могут
приобрести практические навыки построения запросов и программирования, выполнив предлагаемый лабораторный практикум по всем
разделам учебника. Лабораторный практикум содержит восемь работ.
В лабораторных работах 1,6—8 контроль знаний ведется с помощью
традиционного тестирования. В работах 2—5 необходимо согласно
предлагаемым заданиям различной сложности построить, ввести
в консоль и выполнить SQL-запросы под контролем информационной
системы.
В приложении А дано описание учебной базы данных, а в приложении Б — скрипт для создания учебной базы данных.
В рамках учебника разработан сетевой консольный SQL-тренажер 
1,
с помощью которого любой желающий может самостоятельно проверить и закрепить полученные теоретические знания, зарегистрировавшись на сайте https://rgrty.ru/sqltest/ в группе
Гости.
Все запросы и скрипты, приведенные в учебнике, а также приложение Б можно скопировать со страницы учебника на сайте https://rgrty.
ru. Здесь также предоставляется возможность обратной связи с автором. Все конструктивные замечания и предложения приветствуются.
Все обнаруженные ошибки и опечатки будут рассматриваться, устра-
1 1. Маркин А. В., Аникеев Д. В, Паршин В. И. Система дистанционного обучения «SQLTest». Свидетельство о государственной регистрации программы для ЭВМ.
№ 2018611782, 07.02.2018.
2 Маркин А. В., Аникеев Д. В, Паршин В. И. База данных системы дистанционного
обучения «SQLTest». Свидетельство о государственной регистрации программы для
ЭВМ. № 2018670015, 01.06.2018.

няться и публиковаться на соответствующей странице сайта вместе
с нашими примечаниями и благодарностями.
По итогам изучения материала учебника студент должен:
знать
возможности SQL в системах управления базами данных;
принципы построения запросов к реляционным базам данных;
синтаксис запросов и основы процедурного программирования
на SQL;
принципы извлечения и обновления данных;
основы разработки и использования программируемых объектов
баз данных для реализации логики и поддержки бизнес-правил предметной области;
механизмы обеспечения безопасности и ограничений целостности данных;
основные особенности и отличительные признаки декларативного и процедурного программирования на SQL в различных СУБД;
уметь
решать задачи, связанные с созданием объектов реляционных баз
данных, с хранением и обработкой информации;
использовать SQL для построения запросов на создание, удаление, и модификацию объектов базы данных; на выборку и модификацию данных;
разрабатывать хранимые процедуры, функции и триггеры;
реализовывать на SQL механизмы разграничения прав доступа
и защиты данных;
выбирать и реализовывать необходимые методы обеспечения
безопасности и ограничений целостности данных;
владеть
методами и приемами декларативного и процедурного программирования на SQL;
навыками построения, программирования, выполнения и отладки
запросов на SQL к базам данных информационных систем с использованием современных технологий и инструментальных средств;
навыками поиска информации, необходимой для принятия решений;
методами обеспечения безопасности и реализации ограничений
целостности данных;