Файл: Современные языки программирования (Теоретические аспекты и техническое предназначение языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 447

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

На настоящий момент используются три варианта встраивания запросов на языке SQL в прикладную программу (программного SQL): 

  1. статический SQL;
  2. Динамический SQL;
  3.  Метод, основанный на различных интерфейсах программирования приложений ( API ) [6, c. 100].

Статический SQL – разновидность программного SQL, предназначенная для встраивания SQL-операторов в текст программы на языке программирования высокого уровня.

Основная особенность статического SQL определяется его названием: встраиваемые запросы должны быть четко определены на стадии написания прикладной программы, так как именно конкретный текст запросов вставляется в прикладную программу.

Рассмотрим два основных этапа, связанных с работой статического SQL, – компиляция программы и работа (выполнение) программы [1, c. 4].

На рисунке 5 представлена схема компиляции и сборки программы.

Рисунок 4 - Схема компиляции и сборки программы

Также, стоит отметить, некоторые особенности данной схемы:

  • Программа, включающая операторы языка программирования высокого уровня (ЯПВУ) вместе с операторами SQL, подается на вход специального препроцессора, который выделяет из нее части, связанные с SQL;
  • Вместо инструкций встроенного SQL препроцессор подставляет вызовы специальных функций СУБД. Библиотеки таких функций для связи с языками программирования существуют для всех распространенных серверных СУБД. Стоит особо отметить, что эти библиотеки имеют закрытый интерфейс, то есть разработчики библиотеки могут менять его по своему усмотрению, соответственно обновив препроцессор. Все это говорит о том, что программист не должен вмешиваться в этот процесс;
  • Сами инструкции SQL препроцессор выделяет в отдельный файл;
  • Программа поступает на вход обычного компилятора языка программирования, после чего получаются объектные модули. Далее эти объектные модули вместе с библиотеками СУБД собираются в один исполняемый модуль – приложение;
  • Наряду с этими операциями происходит работа с файлом, содержащим SQL-инструкции. В литературе этот модуль часто носит название «модуль запросов к базе данных» (Database Request Module, DBRM). Обработку этого модуля осуществляет специальная утилита, которая обычно носит название BIND. Для каждой инструкции SQL утилита выполняет следующие действия:
    • осуществляет синтаксический анализ запроса (проверяет, является ли запрос корректным);
    • проверяет, существуют ли в базе данных те объекты, на которые ссылается запрос;
    • выбирает, каким образом осуществлять выполнение запроса – план выполнения запроса;
  • Все планы выполнения запросов сохраняются в СУБД для последующего использования [2, c. 448].

Программа запускается на выполнение обычным образом. При необходимости выполнить запрос программой осуществляется вызов специальной функции СУБД, которая отыскивает уже сформированный ранее план выполнения запроса. СУБД выполняет запрос в соответствии с выбранным планом. Результат выполнения запроса поступает в приложение [12, c. 156]. Схема выполнения программы, представленная на рисунке 6.

Рисунок 5 - Схема выполнения программы

Использование описанной выше схемы позволяет пользователю воспроизводить в своей деятельности следующие действия:

  • Использовать SQL совместно с программой на языке программирования высокого уровня;
  • Заранее осуществлять проверку синтаксиса запросов и оптимизацию их выполнения (выбор плана). Понятно, что проверка синтаксиса выполняется быстро, но выбор плана выполнения – весьма трудоемкая процедура. Тот факт, что она выполняется один раз на этапе компиляции, позволяет говорить о существенном уменьшении накладных расходов [1, c. 192].

Однако статическая разновидность программного SQL имеет некоторые существенные ограничения. Так, переменные в запросах могут использоваться только в тех местах, где в запросах обычно стоят константы. Например, нельзя задавать имя таблицы, из которой производится выборка, а также названия столбцов, как параметр. В связи с этим при использовании статического варианта вложенного (программного) SQL необходимо на этапе написания программы точно знать состав запросов, которые необходимо будет выполнять в прикладной программе. Во многих случаях это ограничение является существенным. Для его устранения была введена новая разновидность программного SQL – динамический SQL.

Динамический SQL – разновидность программного SQL, предназначенная для встраивания SQL-операторов в текст программы на языке программирования высокого уровня, допускающая динамическое формирование и выполнение запросов во время работы программы.

Учитывая относительно низкую производительность динамического SQL, представляется правильным, там, где только возможно, рекомендовать использование статической разновидности SQL, применяя аппарат динамического SQL где это действительно необходимо [3, c. 208].

Динамический SQL также должен содержать дополнительные операторы (по сравнению с интерактивным SQL). Схема функционирования динамического SQL представлена на рисунке 7.


Рисунок 6 - Схема функционирования динамического SQL

Схема выполнения инструкции подразумевает:

  • динамическое формирование команды SQL в строковом виде во время работы программы;
  • передачу строкового вида инструкции в СУБД при помощи команды EXECUTE IMMEDIATE;
  • выполнение инструкции системой управления БД, включающее синтаксический анализ, проверку параметров, оптимизацию (выбор плана) и выполнение этого плана [8, c. 123].

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

Двухэтапное выполнение инструкций основано на следующем соображении: команда динамического SQL в таком виде, как она поступает на выполнение, будет выполняться неоднократно. При этом могут меняться какие-то конкретные детали. А это значит, что инструкцию можно параметризовать. Использование параметризованных инструкций позволяет сделать схему выполнения двухэтапной, разделив процесс на «подготовку инструкции» и «выполнение инструкции» [6, c. 140].

Рассматривая теоретические примеры интеграции языка SQL в программный код на каком либо программном продукте или языке, то можно отметить тот факт, что у разработчика использующего данный набор операций, существует возможность использования SQL запросов внутри используемого им программного продукта и его языка, с целью обращения к базе данных. Стоит отметить, что для достижения данной цели, совершенно не обязательно наличие расширения, в используемом программном продукте, языка SQL, который бы в свою очередь, обеспечивал официальную поддержку данного языка в рамках используемого программного продукта разработчиком. Данный факт обусловлен тем, что в основе своей, запросы сформированные на языке SQL представляют собой обычные строки в программировании, а точнее наборы таких строк, с которыми может быть совмещен любой язык программирования [8, c. 123].

Однако, стоит отметить, что данное действие так может быть и недоступным, в связи с тем фактом, что среда разработки используемого программного продукта пользователем, может не поддерживать облегченные средства обращения к базе данных (через подключение к определенной СУБД), реализация отправки SQL-запросов может представиться сложным, если вообще выполнимым заданием [3, c. 80].


С целью облегчение задачи для разработчиков и специалистов, работающих в данной области, было создано дополнительное расширение в различных системах управления базами данных, а также и языков программирования, которые в них используются. К примеру, рассматривая созданные расширение на примере языков программирования, то данные расширения проявляются в наличии библиотек, которые так же содержат в себе классы и методы программирования. Так, с помощью данных библиотек, пользователь, введя единственную стандартную функцию имеет возможность в подключении к системе управлением базой данных [19, c. 169].

Так, можно отметить, что язык структурированных запросов SQL, является универсальным языком, а точнее средством обращения к внешней базе данных. Также, по своей структуре, данный язык позволяет пользователю значительно экономить временные ресурсы для достижения определенных целей в работе с базой данных, при этом выполняя все операции в теле другого программного продукта. Так, к примеру, пользователю требуется реализовать определенные операции над данными, путем подключения к базе данных, на языке С++. Для достижения данной цели, пользователю нет необходимости тратить большое количество времени на программирование, а достаточно лишь добавить несколько стандартных функций в тело программы [8, c. 123].

Также большим преимуществом является возможность интегрировать SQL сразу в несколько компонентов одной системы, написанной с использованием разных языков программирования - например, WEB-компонент системы, написанный на Javascript, и внутренняя, инкапсулированная от пользователей часть на C++, могут использовать SQL в равной степени, создавать запросы, подключаться в БД по мере необходимости и так далее. Эта возможность еще сильнее повышает универсальность системы [4, c. 432].

По данной главе можно сделать вывод о том, что язык структурированных запросов SQL не является отдельным языком программирования, скорее данный язык является одним из методов современного программирования, при необходимости обращения к базе данных, что обосновывает актуальность выбранного примера при описании методов современного программирования.

Заключение.

В заключении необходимо отметить, что эффективное использование языков программирования, а именно их методы, являются основой удобства и автоматизации современной жизни человечества. В рамках данной курсовой работы было выявлено, что данная необходимость у людей возникла практически с начала прошлого столетия, также необходимо отметить, что большинство разработанных языков программирования и методов их использование практикуются и современными программистами, и разработчиками. Целью настоящей работы был анализ методов современного программирования.


Для достижения поставленной цели, в первой главе курсовой работы были представлены исторические предпосылки и теоретические основы методов программирования. Первоначально, в данной главе автором была представлена теоретическая характеристика основы данной темы, а именно языка программирования. Из исторических источников было выявлено, что основной целью в разработке языков программирования было совершенствование и более эффективное взаимодействия человека и ЭВМ. Сегодня, основной целью использования современных языков программирования является усовершенствование и автоматизация (за счет разработки программного обеспечения) всех сфер деятельности человека. Далее, в данной главе была отмечена необходимость эффективного использование разработанных языков программирования, а именно необходимость в разработке эффективных методов их использования. Таким образом, далее в данной главе был представлен перечень и краткая характеристика современных методов языков программирования.

Во второй главе курсовой работы представлен метод современного программирования с использованием языка структурированных запросов SQL. При обосновании данного выбора примера, необходимо отметить, что на сегодняшний день, язык структурированных запросов используется при разработке достаточно большого количества программного обеспечения, а также при их использовании, что подтверждает его популярность среди современных программистов. Также в данной главе были отмечены преимущества и недостатки в использовании данного языка программирования и методов его использования. В заключении главы был представлен перечень возможностей данного метода современного программирования.

Список использованной литературы.

  1. Абрамов, С.А. Математические построения и программирование / С.А. Абрамов. - М.: Наука, 2016. - 192 c
  2. Баженова, И.Ю. Языки программирования: Учебник / И.Ю. Баженова. - М.: Академия, 2018. - 448 c.
  3. Головин, И.Г. Языки и методы программирования: Учебник / И.Г. Головин. - М.: Академия, 2014. - 208 c.
  4. Голицына, О.Л. Основы алгоритмизации и программирования: Учебное пособие / О.Л. Голицына, И.И. Попов. - М.: Форум; Издание 2-е, 2015. - 432 c.
  5. Гребенников, Л.К. Программирование микропроцессорных систем на языке ПЛ/М / Л.К. Гребенников, Л.А. Летник. - М.: Финансы и статистика, 2014. - 160 c.
  6. Дейт, К. Дж. SQL и реляционная теория. Как грамотно писать код на SQL / К.Дж. Дейт. - М.: Символ-плюс, 2016. - 100 c.
  7. Дунаев, В.В. Базы данных. Язык SQL для студента / В.В. Дунаев. - М.: БХВ-Петербург, 2015. - 120 c.
  8. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. - 134 c.
  9. Кнут, Д.Э. Искусство программирования. В 3-х т. Т. 2. Получисленные алгоритмы (методы) / Д.Э. Кнут. - М.: Вильямс, 2013. - 832 c.
  10. Карпов, В.Я. Алгоритмический язык Фортран / В.Я. Карпов. - М.: Наука, 2014. - 192 c.
  11. Кригель, А. SQL. Библия пользователя / А. Кригель. - М.: Диалектика / Вильямс, 2016. - 175 c.
  12. Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. - 184 c
  13. Макаровских, Т.А. Языки и методы программирования: Создание простых GUI-приложений с помощью Visual С++ / Т.А. Макаровских, А.В. Панюков. - М.: Ленанд, 2018. - 144 c.
  14. Мартишин, С.А. Проектирование и реализация баз данных в СУБД MySQL с использованием MySQL Workbench: Методы и средства проектирования информационных систем и технолог / С.А. Мартишин, В.Л. Симонов, М.В. Храпченко. - М.: Форум, 2017. - 62 c.
  15. Мюллер, Р.Д. Проектирование баз данных и UML / Р.Д. Мюллер; Пер. с англ. Е.Н. Молодцова. - М.: Лори, 2013. - 420 c.
  16. Макаровских, Т.А. Языки и методы программирования: Путеводитель по языку С++ / Т.А. Макаровских, А.В. Панюков. - М.: Ленанд, 2018. - 216 c
  17. Маркин, А. В. Построение запросов и программирование на SQL. Учебное пособие / А.В. Маркин. - М.: Диалог-Мифи, 2014. - 384 c.
  18. Скотт, Т. Основы программирования. Курс программированного обучения / Т. Скотт. - М.: Советское радио, 2016. - 490 c.
  19. Стружкин, Н.П. Базы данных: проектирование. практикум: Учебное пособие для академического бакалавриата / Н.П. Стружкин, В.В. Годин. - Люберцы: Юрайт, 2016. - 291 c.
  20. Стивенс, У. UNIX: разработка сетевых приложений / У. Стивенс. - М.: СПб: Питер, 2015. - 400 c.
  21. Фаронов, В.В. Основы Турбо-Паскаля / В.В. Фаронов. - М.: МВТУ-Фесто дидактик, 2015. - 304 c.