Язык структурированных запросов SQL. Использование SQL в прикладном программировании


Скачать 63.18 Kb.


Дата23.01.2019
Размер63.18 Kb.
Типкурсовая работа

Скачать 63.18 Kb.

ОГЛАВЛЕНИЕ Введение 1. Базы данных и системы управления базами данных 1.1 Основные определения и свойства баз данных 1.2 Системы управления базами данных 1.3 Реляционные БД: отношения, реляционные операции, ключи 1.4 Проектирование базы данных. Язык UML 2. Структурированный язык запросов SQL 2.
Язы́к запро́сов - это искусственный язык, на котором делаются запросы к базам данных и другим информационным системам, особенно к информационно-поисковым системам.
1 Введение в SQL. Основные понятия 2.2 Создание и управление базой данных 2.3 Создание и управление таблицами. Основные запросы SQL 2.4 Работа с SQL в различных СУБД (MySQL, MS Access, Firebird) 3. Использование SQL в прикладном программировании 3.1 Возможность интеграции SQL в программный код. Потенциальные преимущества от его использования 3.2 Использование SQL в Pascal (на примере Pascal Lazarus) 3.3 Использование SQL в C (на примере MS Visual Studio) 3.4 Использование SQL в ABAP (на примере SAP GUI) 3.5 Сравнение результатов использования SQL в различных языках программирования Заключение Список использованной литературы Приложения ВВЕДЕНИЕ Актуальность темы курсовой работы заключается в том, что использование баз данных и, как следствие, систем управления базами данных в рамках различных информационных систем и сервисов было и остается повсеместным.
Систе́ма управле́ния - систематизированный (строго определённый) набор средств сбора сведений о подконтрольном объекте и средств воздействия на его поведение, предназначенный для достижения определённых целей.
Информационная система (ИС) - система, предназначенная для хранения, поиска и обработки информации, и соответствующие организационные ресурсы (человеческие, технические, финансовые и т. д.), которые обеспечивают и распространяют информацию (ISO/IEC 2382:2015).
Систе́ма управле́ния ба́зами да́нных (СУБД) - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Более того, на момент написания работы сформировалась тенденция к увеличению роли баз данных - в особенности, удаленных от конечного пользователя (веб-приложения, «облачные» сервисы), - что повышает важность изучения всего, с базами данных связанного.
Ба́за да́нных - представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
Пользователь - лицо или организация, которое использует действующую систему для выполнения конкретной функции.
Кроме того, еще одна тенденция вынуждает информационную науку искать возможности объединять и делать доступными для использования в рамках друг друга различные технологии и стандарты. Это тенденция к интеграции, универсализации как информационных систем в целом, так и компонента front-end (доступного конечному пользователю), так и различных сред разработки. Современное приложение среднего или крупного масштаба не может существовать в границах одной технологии, стандарта или языка, и для того чтобы связать между собой различные компоненты, необходимо глубокое знание как теоретической части предмета, так и прикладных решений. Одним из наиболее популярных средств обращения к реляционным базам данных является язык структурированных запросов SQL (Structured Query Language).
Интегри́рованная среда́ разрабо́тки, ИСP (англ. Integrated development environment - IDE), также единая среда разработки, ЕСР - комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).
Реляционная база данных - база данных, основанная на реляционной модели данных.
На его основе было создано множество СУБД (систем управления базами данных), в том числе масштабные решения от Microsoft и Oracle. Именно язык SQL выполняет роль связки между программной частью системы, использующей базу данных, и СУБД, написанной для этого языка запросов. В силу высокого уровня развития SQL, большого количества СУБД, использующих его, и обширных возможностей использования SQL внутри современных языков программирования высокого уровня, изучение не только семантики языка как такового, но и возможностей использования его в рамках внешних технологий является критичным для любого специалиста информационных технологий.
Информацио́нные техноло́гии (ИТ, также - информационно-коммуникационные технологии) - процессы, методы поиска, сбора, хранения, обработки, предоставления, распространения информации и способы осуществления таких процессов и методов (ФЗ № 149-ФЗ); приёмы, способы и методы применения средств вычислительной техники при выполнении функций сбора, хранения, обработки, передачи и использования данных (ГОСТ 34.003-90); ресурсы, необходимые для сбора, обработки, хранения и распространения информации (ISO/IEC 38500:2008).
Развитие - это процесс упрощения удовлетворения потребностей. Также ещё даётся такое определение: развитие - это движение от низшего к высшему, от простого к сложному.
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Язык SQL является сформированным стандартом обращения к базам данных, потому знание его сильно упрощает разработку и поддержку систем, написанных на любом языке программирования, в рамках которого используется SQL. Кроме того, все чаще крупные проекты формируются из нескольких компонентов, одним из которых является СУБД. В таком случае, разные части системы, способные составлять обращения на SQL, формируют своего рода кластер, а язык структурированных запросов становится связкой между ними. Это повышает универсальность системы в целом, увеличивает ее эффективность в контексте ресурсов, требуемых на создание и поддержание системы, а также в определенной мере повышает гибкость проекта. Объектом исследования курсовой работы являются «Базы данных», а предметом исследования - «Использование SQL в прикладном программировании». Целью курсовой работы является изучение особенностей языка структурированных запросов при использовании его в прикладном программировании, сравнение реализации связи между SQL и языками программирования высокого уровня, практические выводы. В ходе работы для достижения поставленной цели будут выполнены следующие задачи: 1) дать определения баз данных и СУБД, перечислить и раскрыть важнейшие их особенности; составить классификацию баз данных и, соответственно, систем управления базами данных по различным признакам; 2) описать различные модели данных, перечислить характеристики БД (базы данных) и СУБД (отношения, операции, ключи и так далее). Дать краткое описание языка UML (Unified Modeling Language), использующегося для проектирования реляционной БД, а также описать процесс проектирования базы данных; 3) дать характеристику языку SQL; перечислить его особенности в рамках теории; затем перейти к прикладной части: дать поэтапное описание (с примерами) создания базы данных и таблицы, перечислить основные операторы языка; указать особенности использования SQL в различных СУБД; 4) изучить теоретическую возможность использования SQL в прикладном программировании; перечислить достоинства и недостатки такой концепции; 5) более подробно описать практическое использование SQL в различных языках программирования, продемонстрировать примеры, дать сравнительную характеристику. При написании курсовой работы использовались научные труды следующих авторов: Баженова И.Ю [2], Баканов В.М. [3], Бураков П.В. [4], Гудов А.М [5], Дьяков И.А [6], Зиборов В.В. [7], Кетков Ю.Л. [8], Копейкин М.В. [9], и другие. 1. БАЗЫ ДАННЫХ И СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 1.1 Основные определения и свойства баз данных Прежде чем давать определение базе данных и описывать характеристики данной сущности, необходимо указать значимость баз данных в современной информационной науке, пояснить разницу между базами данных и файловыми системами и в целом объяснить концепцию БД.
Фа́йловая систе́ма (англ. file system) - порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п.
Информационная наука[источник не указан 800 дней] - это междисциплинарная область, которая связана с анализом, сбором, классификацией, манипулированием, хранением, поиском, движением, распространением и защитой информации..
До появления повсеместно используемых стандартов баз данных и систем управления БД пользователи всякой информационной системы, содержащей в себе большое количество связанных данных (это могли быть данные предприятия, информация о клиентах, адресах, товарах - любых объектах, которые можно абстрагировать до некоего множества, связанного по признаку), вынуждены были обрабатывать эти данные без удобной модели общего доступа и связей между различными кластерами данных.
Linked Data (связанные данные) - в информатике это коллекция взаимосвязанных наборов данных во Всемирной паутине. Под этим термином может также пониматься описание методов публикования связанных между собой структурированных данных.
Происходило это по той причине, что единственным компонентом информационных систем, способным хранить, упорядочивать и предоставлять доступ к большим объемам структурированных данных, являлись файловые системы. Всякое сложное действие, которое необходимо было выполнить с данными - в особенности, если данные хранились одновременно в разных частях системы, либо если были связаны с другим множеством данных по некоему полю, - приходилось дублировать для успешной синхронизации и стабильной работы системы. Кроме того, за неимением универсального, абстрагированного средства обработки данных такая обработка должна была быть реализована в рамках общего кода системы - как правило, процедурально, что не только замедляло работу системы, но и вносило излишнюю комплексность в код. По причине этих недостатков при работе с файловыми системами была разработана концепция баз данных - систем данных, существенно облегчающих работу с большим объемом информации в рамках некоей информационной системы. На данный момент абсолютное большинство информационных продуктов используют базы данных в явном или скрытом виде. Примером явного для конечного пользователя обращения к базе данных является работа с неким электронным справочником. Скрытое обращение к базе данных - это, например, использование имени пользователя и пароля для входа на веб-страницу. Таким образом актуальность использования баз данных только растет вместе с их развитием. Итак, говоря общими словами, концепция баз данных представляет собой развитие идеи файловой системы, только в случае БД возможности обработки данных, особенно массовой, облегчение доступа к данным, ускорение работы с ними существенно возрастают. На уровне теории это обеспечивается так называемыми моделями данных, о которых будет сказано ниже. На уровне практики облегчение работы с данными достигается реализацией модели данных, а также множеством средств, реализованных для данного типа БД и СУБД - системы управления базами данных. Также немаловажной особенностью, которая отличает базы данных от более примитивных объектов для работы с данными, является возможность удаленного и параллельного доступа к данным нескольких пользователей. Кроме этого базы данных могут быть распределенными - в таком случае данные размещаются на нескольких физических хранителях, находящихся в разных локациях (технически, одна база данных может быть распределена по всему Земному шару, если подобное распределение оправдано).
Земля́ - третья от Солнца планета. Пятая по размеру среди всех планет Солнечной системы. Она является также крупнейшей по диаметру, массе и плотности среди планет земной группы.
Данная особенность БД существенно облегчает создание информационных систем, работа с которыми должна вестись многими пользователями одновременно. Перейдем к строгому определению понятия «База данных». Современные стандарты и научные работы в этой области выделяют несколько похожих определений: «База данных - совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных» [1, c. 3].
Научное исследование - процесс изучения, эксперимента, концептуализации и проверки теории, связанной с получением научных знаний.
«База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области» [4, с. 6] «База данных - набор сведений, хранящихся некоторым упорядоченным способом» [24]. Как можно заметить, определения, данные в разных источниках, отличаются друг от друга строгостью, полнотой и некоторыми признаками, которые должны содержаться в БД по одному определению, но не должны по другому. Из всех определений, однако, можно вывести общую и самую важную часть, которая является минимальным условием принадлежности некоей информационной сущности к базам данных: база данных всегда является набором данных, либо сведений, либо информации. Некоторые источники, посвященные изучению БД, опускают важность определения данных, однако в большинстве случаев база данных, конечно, должна содержать данные, а не просто «информацию». «Данные - зарегистрированная информация; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств» [25]. Исходя из этого определения, можно увидеть, что в сравнении с информацией данные являются более узким понятием; тогда как информация может быть беспорядочным набором сведений, данные всегда должны быть представлены в понятном, доступном для дальнейшей обработки виде. Вернемся к понятию базы данных. Так как, исходя из большинства определений, БД содержит в себе данные, отдельный акцент следует сделать на то, что база данных - это именно структурированная, построенная по определенным правилам (модели) сущность. Тем не менее, всякое определение базы данных обречено быть размытым и неполным, так как концепция баз данных является достаточно гибкой, а значит - способной к развитию. Можно также отметить, что наиболее важное определение базы данных неявно содержится в цели, с которой создается каждая БД: хранить в себе некое множество данных, схожих по определенным признакам, давая возможность пользователям получать, обрабатывать, добавлять и удалять данные, а также давать гарантию на то, что данные не будут потеряны. Перейдем к более подробному описанию конкретных характеристик баз данных. Основополагающей характеристикой БД, от которой зависит, в том числе, перечень СУБД, способных с ней работать, а также сам принцип связей между данными, является модель данных. За время развития науки о базах данных было построено несколько успешных моделей данных, из которых одна заняла главенствующую позицию в контексте применения на практике. Основные модели данных и их особенности представлены в таблице 1: Таблица 1 - Основные модели данных Название Особенности Преимущества и недостатки Иерархическая Представление данных в виде древовидной структуры. Входом является корень дерева - первый файл, к которому привязаны остальные Значительно сокращаются затрачиваемые ресурсы памяти и быстродействия; реализация сложна в техническом плане; необходимо подробное знание структуры БД Сетевая Данные представлены в виде сетевой структуры (развитие иерархической модели: у дочерних объектов может быть любое количество предков) Реализация сетевой модели не требует больших ресурсов памяти и времени, однако сложность реализации очень высока Реляционная Основной компонент, отличающий реляционную от других моделей - отношение.
Сетевая модель - теоретическое описание принципов работы набора сетевых протоколов, взаимодействующих друг с другом. Модель обычно делится на уровни, так, чтобы протоколы вышестоящего уровня использовали бы протоколы нижестоящего уровня (точнее, данные протокола вышестоящего уровня передавались бы с помощью нижележащих протоколов - этот процесс называют инкапсуляцией, процесс извлечения данных вышестоящего уровня из данных нижестоящего - деинкапсуляцией). Модели бывают как практические (использующиеся в сетях, иногда запутанные и/или не полные, но решающие поставленные задачи), так и теоретические (показывающие принципы реализации сетевых моделей, приносящие в жертву наглядности производительность/возможности).
Реляционная БД представляет собой набор таких отношений, на практическом уровне называемых таблицами Реляционные базы данных более понятны для пользователя, чем иерархические и сетевые; физическая и логическая независимость таких БД очень высока (без изменения программы можно редактировать организацию данных); однако создание связей между таблицами вызывает избыточность по полям Менее распространенными моделями данных являются объектные, объектно-ориентированные и функциональные, однако в силу предмета данной курсовой работы нет смысла останавливаться на них подробно. Из вышеописанных моделей наибольшее развитие и масштаб применения получила реляционная модель данных.
Реляционная модель данных (РМД) - логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики, как теория множеств и логика первого порядка.
Основное преимущество данной модели - простоту использования и понимания организационной структуры - с лихвой компенсирует главный недостаток - избыточность полей.
Организационная структура (англ. Organizational structure) - документ, схематически отражающий состав и иерархию подразделений предприятия. Организационная структура устанавливается исходя из целей деятельности и необходимых для достижения этих целей подразделений, выполняющих функции, составляющие бизнес-процессы организации.
Современный уровень развития устройств долговременного хранения данных сводит на нет все возможные проблемы с нехваткой места на данные базы. Другой характеристикой баз данных является содержимое БД. Хотя первые БД содержали в себе исключительно текстовую информацию, со временем возможности электронно-вычислительной техники расширились, и теперь существуют следующие виды баз данных (рисунок 1): Рисунок 1 - классификация баз данных по содержанию и хранимой информации Следующая характеристика баз данных - это степень распределенности. Централизованными базами данных называют такие, все данные которых хранятся в памяти одной вычислительной системы.
Компью́тер (англ. computer, МФА: [kəmˈpjuː.tə(ɹ)] - «вычислитель») - устройство или система, способная выполнять заданную, чётко определённую, изменяемую последовательность операций. Это чаще всего операции численных расчётов и манипулирования данными, однако сюда относятся и операции ввода-вывода.
Распределенные базы данных состоят из нескольких частей, хранимых в памяти разных ЭВМ вычислительной сети [10, с. 6]. Распределенные, в свою очередь, подразделяются на однородные (БД управляется одной СУБД), неоднородные (используются разные СУБД), фрагментированные (распределение достигается путем секционирования) и тиражированные (распределение достигается путем реплицирования). Перечислив основные характеристики баз данных, а также моделей данных, на которых они основываются, обратимся к предмету управления базами данных - СУБД. 1.2 Системы управления базами данных Нередко допускаются грубые ошибки в различии между базами данных как таковыми и их системами управления. Чтобы строго разграничить два понятия, следует сразу отметить, что база данных является только набором данных и схемой их организации (а в более широком смысле - еще и набором правил работы с данными), тогда как система управления базами данных (СУБД) - это набор языковых и программных средств, предназначенных для работы с БД (создание, редактирование, удаление) [6, с. 5].
Програ́ммное обеспе́чение (допустимо также произношение обеспече́ние) (ПО) - все или часть программ, процедур, правил и соответствующей документации системы обработки информации (ISO/IEC 2382-1:1993).
Другими словами, в более узком и очевидном смысле, система управления базами данных - это программа, включающая в себя возможности работы с определенными БД [4, с. 11]. За время развития баз данных и систем их управления было создано множество различных СУБД. Многие из них уже устарели технически и были заменены новыми продуктами. Тем не менее, можно разделить все СУБД на две глобальные категории: СУБД общего назначения и специализированные системы. Как исходит из названия, при разработке СУБД общего назначения не делается акцент на какой-либо стороне работы СУБД, так же как программа не создается только для некоего узкого круга баз данных. СУБД общего назначения являются многофункциональными продуктами, которые уже в ходе создания либо эксплуатации БД могут быть модифицированы (кастомизированы) под нужды пользователя либо администратора системы. В связи с широкими возможностями СУБД общего назначения, часто это коммерческие продукты, поставляемые пользователям, которые в дальнейшем могут использовать в полной мере те специфические особенности данной СУБД, которые им нужны [10, с. 18]. К группе СУБД общего назначения относится большинство известных продуктов (MS Access, MySQL, Oracle и так далее). В редких случаях, когда по некоторым причинам использование СУБД общего назначения невозможно или не оправдано, создаются специализированные системы, выполняющие лишь некоторые функции поддержки базы данных. Например, такое возможно в условиях нехватки вычислительных ресурсов у вычислительной техники, использующей СУБД (портативные ЭВМ, специализированная техника с элементами ЭВМ). Возможности современных СУБД (в первую очередь, общего назначения) включают, но не ограничиваются следующими: 1) Выполнение основных функций как с БД, так и с содержащимися в ней данными: создание, редактирование архитектуры, удаление БД; добавление отношений, заполнение отношений данными, удаление данных, считка, редакция. 2) Вышеописанные функции, в зависимости от СУБД, могут быть выполнены пользователем либо посредством графического интерфейса, поддерживаемого большинством СУБД, либо прямым заданием сценариев на языке определения данных (например, SQL).
Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) - разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.)
Соответственно, СУБД поддерживает один из таких языков. 3) Все крупные СУБД имеют версии для ЭВМ с разной архитектурой и для разных операционных систем.
Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) - комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.
Это позволяет использовать один продукт в работе с БД, даже если компьютеры в системе значительно отличаются программно и архитектурно. К примеру, имея сервер с ОС семейства Unix и несколько пользовательских компьютеров с Windows, можно использовать одну и ту же СУБД на всех узлах системы. 4) Так как в большинстве случаев доступ к базе данных имеют несколько узлов системы, СУБД имеют широкие возможности в контроле доступа к данным (система защиты данных через проверку привилегий пользователя и так далее; контроль параллельного доступа к БД для упорядочивания редакции данных; системы восстановления утерянных данных) [4, с. 12] Все вышеописанные возможности исходят из функций, возможность выполнения которых требуется от полноценной СУБД: l Поддержка языков баз данных. Всякая СУБД должна поддерживать один (как правило) язык управления базами данных. l Управление данными БД.
Управление данными (англ. data management) - процесс, связанный с созданием, изменением и удалением данных, организацией их хранения и поиска.
Одна из основополагающих функций СУБД - добавление, изменение и удаление данных из БД. Данная функция расширяется управлением транзакциями, которые могут содержать в себе более одного действия над данными БД (например, сначала отсортировать данные отношения по признаку, затем удалить первое из них, затем добавить новую запись) l Восстановление БД. Как и всякий программный продукт, СУБД должны иметь в себе средства минимизации рисков при работе с ними. Основной риск при работе с БД - это потеря данных. Дабы иметь возможность восстановить максимум потерянных данных, независимо от причины, СУБД должны иметь соответствующие средства: ведение журнала изменений, дублирование БД в фоновом режиме, создание версий, ведение распределенной БД. l Управление параллельным доступом. В случае доступа к БД сразу нескольких пользователей, СУБД должна иметь средства для отсекания вероятности ошибок на этапе доступа к данным и перезаписи. Считывание данных в таком случае реализуется без блокировки оригинальной записи, а перезапись, как правило, делается либо через копии, возвращаемые от пользователя и накладываемые друг на друга в порядке их поступления, либо через блокировку изменяемых данных на время редакции. l Управление буферами в оперативной памяти. l Контроль доступа к БД.
Система контроля и управления доступом (СКУД) - совокупность программно-аппаратных технических средств безопасности, имеющих целью ограничение и регистрацию входа-выхода объектов (людей, транспорта) на заданной территории через «точки прохода»: двери, ворота, КПП.
l Наличие словаря данных - так называемого системного каталога. Данный каталог содержит в себе данные о схемах, приложениях, пользователях и является частью концепции трехуровневых СУБД. Трехуровневая концепция систем управления базами данных является частью архитектуры большинства СУБД и состоит из трех уровней, изображенный на рисунке 2. Рисунок 2: Три уровня архитектуры СУБД Как видно из схемы на рисунке 2, СУБД включает в себя все три уровня архитектуры: внешний, отвечающий за пользовательские представления (ПП1, ПП2 и так далее на рисунке), внутренний уровень работает напрямую с банком данных, то есть, с данными БД, а концептуальный уровень реализует трансляцию запросов, полученных с внешнего уровня, на внутренний и преобразует данные, возвращаемые с внутреннего уровня, в такой вид, который затем внешним уровнем может быть представлен в понятном для пользователя формате [4, с. 16]. Наиболее распространенные СУБД (работающие с реляционными базами данных) включают: MS Access, MySQL, SQLite, Firebird и другие. На рисунках 3-5 приведен внешний вид основного окна некоторых из этих СУБД. Рисунок 3: Основное окно MS Access 2013 (с открытой базой данных) Рисунок 4: главное окно FlameRobin - популярного графического интерфейса СУБД Firebird Рисунок 5: Главное окно MySQL Workbench - средства работы с MySQL В дальнейшем будет рассматриваться только реляционная модель данных и СУБД, работающие с ней, так как язык SQL создан именно для работы с реляционными БД. 1.
MySQL Workbench - инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.
3 Реляционные БД: отношения, реляционные операции, ключи Главным элементом реляционных БД, вынесенным, собственно, в название, является отношение (англ. relation). Математически отношение - это подмножество декартова произведения. Следует отметить, что глубокая связь с теорией множеств у реляционных БД на этом не исчерпывается - сама реляционная алгебра черпает многие свои элементы именно из теории множеств.
Реляционная алгебра - замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями.
Прямое или декартово произведение двух множеств - это множество, элементами которого являются все возможные упорядоченные пары элементов исходных множеств.
Тео́рия мно́жеств - раздел математики, в котором изучаются общие свойства множеств - совокупностей элементов произвольной природы, обладающих каким-либо общим свойством. Создана во второй половине XIX века Георгом Кантором при значительном участии Рихарда Дедекинда, привнесла в математику новое понимание природы бесконечности, была обнаружена глубокая связь теории с формальной логикой, однако уже в конце XIX - начале XX века теория столкнулась со значительными сложностями в виде возникающих парадоксов[⇨], поэтому изначальная форма теории известна как наивная теория множеств[⇨]. В XX веке теория получила существенное методологическое развитие, были созданы несколько вариантов аксиоматической теории множеств[⇨], обеспечивающие универсальный математический инструментарий, в связи с вопросами измеримости множеств тщательно разработана дескриптивная теория множеств[⇨].
Однако на практике термин «отношение» почти не используется и заменяется на «таблицу». Однако в случае реляционных БД различие несущественно, и по сути отношение можно принять за таблицу в контексте практики: некое количество m комбинаций n различных признаков образует отношение. В таком случае n признаков будут столбцами таблицы, а m комбинаций - ее строками [11, с. 32]. Таблицы в реляционных БД содержат различные данные. То, что наглядно нам представляется столбцами, именуется полями, а то, что представляется строками таблицы, - записями. Поля представляют отдельные признаки, а записи - отдельные экземпляры, состоящие из множества элементов данных, каждый из которых соответствует одному и только одному полю. Данные в таблицах должны удовлетворять следующим условиям: l Каждое значение, лежащее на пересечении строки и столбца, должно являться атомарным (не разбиваемым на несколько значений). l Все значения в одной колонке должны принадлежать к одному типу данных.
Тип данных (тип) - множество значений и операций на этих значениях (IEEE Std 1320.2-1998).
l Каждая запись в таблице должна быть уникальна. l Название каждого поля должно быть уникально. Вернемся теперь к реляционной алгебре - имея некоторые отношения внутри базы данных, для корректной и полноценной ее работы между отношениями должны быть выстроены связи, а из каждого отношения, так же как из их связок, должна быть возможность сделать выборку (получить некоторые записи, соответствующие интересующим нас признакам). Все реляционные операции (операторы) являются аналогами операций в теории множеств: 1) Объединение отношений - выражается формулой R = R1R2, где R1 и R2 - два отношения, а R - результирующее отношение, содержащее все записи, которые есть в R1 и в R2. 2) Пересечение отношение - выражается формулой R = R1R2, где R1 и R2 - два отношения, а R - результирующее отношение, содержащее только те записи, которые есть и в R1, и в R2 одновременно. 3) Разность отношений - выражается формулой R = R1|R2, где R1 и R2 - два отношения, а R - результирующее отношение, содержащее только те записи, которые есть в R1, но отсутствуют в R2. 4) Произведение отношений - выражается формулой R = R1ЧR2, где R1 и R2 - два отношения, а R - результирующее отношение, содержащее все возможные комбинации записей из первого отношения и второго отношения. Порядок полей при этом не играет роли. 5) Проекция отношения на компоненты - это операция, заключающаяся в выборке определенных столбцов из отношения R1 и построения из них нового отношения R со столбцами в указанном порядке. 6) Выборка или селекция из отношения - это удаление некоторых записей из отношения на основании определенного условия. Условие строится как логическое выражение (посредством логических операторов и арифметических операторов сравнения) [11, с.
Логическое выражение в программировании - конструкция языка программирования, результатом вычисления которой является «истина» или «ложь».
35] Кроме основных понятий реляционных БД и реляционных операций следует иметь представление о других важных характеристиках таких баз данных: Первичный ключ является сочетанием столбцов отношения (в вырожденном и наиболее частом случае это лишь один столбец), которые уникальным образом определяют каждую запись отношения. То есть значения первичного ключа должны быть разными во всех строках. Нередко для первичного ключа создают отдельное поле - некий абстрактный номер записи.
В узелковой письменности Инков - кипу в I-II тысячелетии н. э. применялись в том числе аналоги первичных ключей.
Наличие первичного ключа является необходимым условием любого отношения в корректно построенной реляционной БД..
Перви́чный ключ (англ. primary key) - в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
Необходимое условие и достаточное условие - виды условий, логически связанных с некоторым суждением. Различие этих условий используется в логике и математике для обозначения видов связи суждений.
Кроме первичного ключа у отношений, добавленных в БД с более чем одной таблицей, может также быть внешний (вторичный) ключ. Этим ключом является поле или комбинация полей отношения, значения которых соответствуют значениям тех же столбцов другого отношения в БД. Внешний ключ необходим для связывания двух и более отношений.
Вне́шний ключ (англ. foreign key) - понятие теории реляционных баз данных, относящееся к ограничениям целостности базы данных.
Кроме ключей, у отношения могут существовать индексы. Индекс - это элемент реляционных БД, существующий в рамках отношения и предоставляющий быстрый доступ к записям. Процесс индексирования представляет собой составление списка строк отношения и того, какое значение в них принимает тот или иной столбец (индексирование делается для одного столбца). Изучив основные понятия баз данных в целом, реляционных баз данных и систем управления базами данных, можно переходить к основному предмету работы - языку SQL и возможностям использования его в программировании, но перед этим следует сделать отступление, дабы получить представление о теоретической части проектирования реляционной БД. 1.4 Проектирование базы данных. Язык UML прикладной программирование язык база Перед тем как приступать к созданию реальной базы данных, всегда проводится концептуальное проектирование.
Концептуальное проектирование технических систем - начальная стадия проектирования, на которой принимаются определяющие последующий облик решения, и проводится исследование и согласование параметров созданных технических решений с возможной их организацией.
Кроме того, что проектирование БД упорядочивает знания о ней и уменьшает вероятность ошибки на этапе построения фактической БД, также процесс концептуального проектирования помогает разработчику найти пути эргономизации и ускорения работы базы данных, еще до того как база создана. Главной задачей на этапе проектирования является наиболее точное отражение реалий тех объектов, которые будут отражены в базе данных. Для этого используются так называемые «семантические модели». Одной из популярных семантических моделей является «сущность - связь». Главными элементами такой модели являются сущности, их атрибуты и типы связей. Модель «сущность - связь» оказалась чрезвычайно эффективным инструментом трансляции абстрагированных объектов реального мира, которые должны быть перенесены в базу данных, на уровень концепции, дабы затем концептуальную модель трансформировать в реальную БД.
Реа́льность (от лат. realis - вещественный, действительный) - философский термин, употребляющийся в разных значениях как существующее вообще; объективно явленный мир; фрагмент универсума, составляющий предметную область соответствующей науки; объективно существующие явления, факты, то есть существующие действительно.
Эффективность этого подхода заключается в том, что элементы его подробно отражают как фактическую, так и логическую суть нужных объектов. Сущность в таком случае выступает образом некоего объекта реального мира, который можно мысленно представить как единое целое, но, тем не менее, разделяемое на свойства (в модели это атрибуты сущности). При наличии более двух сущностей в нашей системе, между ними может и, скорее всего, возникнет связь, которая также проецируется на концептуальную модель. Затем модель совершенствуется, и на этапе перевода концепции в фактическую базу данных сущности становятся отношениями, атрибуты - полями отношений, а связи - такими же связями, но уже между таблицами. При построении графической модели сущность указывается как прямоугольник, атрибут сущности - как прямоугольник со скругленными краями, а связь - как ромб. При этом атрибуты и связи соединены с сущностями прямыми линиями (рисунок 6) [4, с.36]. Рисунок 6: Графическое представление концептуальной модели «сущность - связь» В концепции «сущность - связь» используются следующие важные параметры: Мощность связи - это максимальное количество экземпляров сущности, связанных с одним экземпляром другой сущности.
Концептуа́льная моде́ль (англ. conceptual model) - это модель, представленная множеством понятий и связей между ними, определяющих смысловую структуру рассматриваемой предметной области или её конкретного объекта.
Иногда максимальное количество таких экземпляров не установлено строго и заменяется символом . Также иногда указывается минимальное количество таких экземпляров. Показатель кардинальности - это количество возможных связей для каждого экземпляра, который участвует в связи сущности. Показатель кардинальности может принимать следующие значения: один к одному (1:1), один ко многим (1:N), многие к одному (N:1), многие ко многим (M:N) [4, с. 37]. Для проектирования реляционных баз данных с помощью концептуальной модели «сущность - связь» было создано множество инструментов, которые часто бывают интегрированы с СУБД, однако остановимся на еще одном, схожем с этим, способе концептуального проектирования. Он заключается в использовании семантики UML. UML (унифицированный язык моделирования) - это язык графического описания для объектного моделирования во множестве областей проектирования информационных систем.
UML (англ. Unified Modeling Language - унифицированный язык моделирования) - язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
В том числе, этот язык подходит для проектирования БД и, по сути, такое проектирование мало чем отличается от концепции «сущность - связь». Для проектирования реляционных БД UML предлагает классовые диаграммы, которые содержат в себе классы (аналог сущности), атрибуты этих классов (аналог атрибута сущности) и связи между классами. Пример простейшей концептуальной модели, созданной на языке UML (программа Violet UML Editor), представлен на рисунке 7: Рисунок 7: Простейшая концептуальная модель реляционной БД на языке UML 2. СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL 2.1 Введение в SQL. Основные понятия Говоря о реляционных базах данных, невозможно не уделить внимание языку структурированных запросов SQL, который являет одним из наиболее популярных, многофункциональных и удобных инструментов обращения к реляционным БД. Хотя SQL называется и является языком, важно понимать, что это не привычный язык программирования, а язык обращения к данным. В структуре SQL нет средств написания программ, составления форм и отчетов, также там нет функций управления выполнением программы (ветвление, циклы). В чистом виде SQL представляет только инструменты для работы с кортежами (записями) отношений реляционной базы данных, однако за время развития языка и СУБД, использующих его, появились как диалекты SQL, добавляющие в него операторы, часто отличающиеся от всего, что есть в этом языке, так и функции самих СУБД, которые позволяют приблизить составление запросов SQL к более удобному виду с возможностью пользоваться некоторыми стандартными средствами языков программирования [9, с. 30]. Говоря о диалектах SQL, следует отметить, что многие крупные компании, занимающиеся разработкой СУБД, создали свои диалекты для спецификации языка SQL под свой продукт. Среди наиболее известных диалектов можно выделить: l PLSQL - используется в СУБД Oracle l Transact-SQL - используется в СУБД Microsoft SQL l Jet SQL - используется Microsoft Access Популярная бесплатная СУБД Firebird имеет несколько диалектов SQL, которые можно использовать для разных БД под ее управлением. Словарь SQL состоит, в основном, из операторов запросов, однако данные, с которыми работают эти запросы, необходимо хранить в понятном системе виде, поэтому всякая СУБД имеет собственный набор типов данных (язык описания схем - DDL), которые содержат в себе такие типы как INTEGER, CHAR и так далее. Набор типов, как правило, совпадает у разных СУБД на большую часть, а также соответствует некоторым типам данных в тех языках прикладного программирования, которые могут использоваться с данной СУБД.
Прикладная программа или приложение - программа, предназначенная для выполнения определённых задач и рассчитанная на непосредственное взаимодействие с пользователем. В большинстве операционных систем прикладные программы не могут обращаться к ресурсам компьютера напрямую, а взаимодействуют с оборудованием и другими программами посредством операционной системы.
Это закладывает основу использования SQL в программировании на других языках, что немаловажно в современных условиях интеграции различных технологий [9, с. 31]. Как уже было сказано, основным компонентом SQL являются операторы, из которых составляются запросы к базе данных. Однако, прежде чем выполнить запрос, любая СУБД выполняет несколько проверок: 1) Имеется ли у пользователя разрешение на то, чтобы выполнить запрос 2) Имеется ли у пользователя доступ к необходимым данным 3) Верен ли синтаксис введенного запроса [18, с. 41] Очевидно, что такие проверки выполняются в целях обеспечения безопасности базы данных. SQL и СУБД, использующие его, содержат в себе множество средств повышения безопасности данных. Это и другие достоинства, а также недостатки языка SQL перечислены в таблице 2 [27]. Таблица 2: Достоинства и недостатки языка SQL Достоинства Недостатки Универсальность: несмотря на существование разных диалектов языка, в большой степени SQL не зависит от СУБД, на которой он используется Изначально SQL разрабатывался как язык, максимально приближенный по виду к английскому, однако со временем развился в достаточно сложный инструмент, малопонятный для среднего пользователя Стандарты: будучи высоко развитым языком с более чем двадцатилетней историей, SQL имеет стандарты, которые сохраняют устойчивость языка в контексте новых разработок Некоторые особенности языка SQL создают возможность для ошибок при работе с реляционными БД: SQL разрешает повторяющиеся строки в таблицах, неопределенные значения записей (NULL), колонки таблиц пронумерованы, разрешены пустые и повторяющиеся имена полей Декларативность: при отправлении SQL-запроса, пользователь не должен определять технически, каким образом будут получены данные из БД - система управления базой данных самостоятельно переведет операторы SQL на технический язык более низкого уровня В некоторых случаях отступления от стандарта все же становятся достаточно сильными, что мешает при разработке решения для разных систем Несмотря на недостатки, SQL остается мощным средством работы с реляционными БД. С помощью этого языка можно выполнять множество действий с базой данных на всех этапах ее существования - от создания до удаления. Очевидно, что основной задачей SQL при этом является работа с уже существующими таблицами. В следующих подразделах рассмотрено создание базы данных посредством языка SQL, а также основные запросы к созданной БД. 2.2 Создание и управление базой данных Прежде чем переходить к практическим аспектам работы с языком SQL, следует отметить главные особенности его синтаксиса. Каждый запрос в SQL завершается символом «точка с запятой» - «;». Без этого символа обработчик команд не сможет определить выражение. Различные параметры запроса, как правило, разделяются запятой. Регистр, в котором записаны операторы, не имеет значения, но принято служебные слова записывать в верхнем регистре, а значения параметров - в нижнем.
Служе́бные слова́ - лексически несамостоятельные слова, не имеющие в языке номинативной функции (не называют предметов, свойств или отношений) и выражающие различные семантико-синтаксические отношения между словами, предложениями и частями предложений.
Для создания и заполнения базы данных в большинстве диалектов SQL используются одинаковые операторы, поэтому непринципиальна СУБД, в рамках которой будет рассмотрен этот этап работы с языком (хотя необходимо отметить, что в большинстве случаев развитые графические оболочки СУБД имеют большой инструментарий для создания базы данных без ручного введения запросов SQL). В данном случае будет использована графическая оболочка MySQL Workbench, подключенная к СУБД MySQL с запущенным локальным сервером (инструмент SQL Editor).
Среда́ рабо́чего стола́ (также графическое окружение рабочего стола, англ. desktop environment) - это разновидность графических интерфейсов пользователя, основанная на метафоре рабочего стола.
В СУБД MySQL основным SQL-оператором создания новой базы данных является CREATE DATABASE. Общий вид этого оператора такой: CREATE DATABASE [CHARACTER SET ] [COLLATE ]; Технически, обязательной частью оператора являются только первые два слова и название БД. Если кодировка и порядок сортировки не введены, будут использованы значения по умолчанию [18]. При создании БД система не выбирает эту базу данных автоматически. В каждой СУБД необходимо выбрать созданную базу данных посредством соответствующего оператора - только после этого можно работать с ней. В MySQL этим оператором является USE (вид: USE ). Для проверки (и открытия в графической оболочке) выбранной БД можно использовать функцию SELECT DATABASE(). При введении трех запросов, описанных выше, в том же порядке, как они перечислены, и запуске получившегося скрипта, MySQL Workbench отобразит следующий результат (рисунок 8): Рисунок 8: Окно программы MySQL Workbench с созданной БД Test_SQL_1 Для получения полного списка баз данных, находящихся на сервере, к которому в данный момент подключена СУБД MySQL, можно использовать команду SHOW DATABASES. Для получения списка таблиц в выбранной на данный момент БД можно воспользоваться командой SHOW TABLES. Для удаления базы данных используется команда DROP DATABASE . Для выполнения этой команды необходимо иметь привилегию DROP в MySQL (включена в привилегии администратора). Данный запрос необходимо использовать с предельной осторожностью, так как он очищает и удаляет все таблицы из базы данных и удаляет саму БД [28]. Создав базу данных, можно переходить к созданию таблиц, заполнению их данными и обработке этих данных. 2.3 Создание и управление таблицами. Основные запросы SQL Подключившись к базе данных и обладая необходимыми привилегиями (в случае подключения в качестве администратора все такие привилегии даны), можно создавать таблицы. Для создания таблиц в MySQL используется стандартное выражение CREATE TABLE следующего вида: CREATE TABLE ( [DEFAULT ], [DEFAULT ], ... [DEFAULT ]> [CONSTRAINT PRIMARY KEY ()] ); Выражения, представленные в квадратных скобках, не являются обязательными.
Ско́бки - парные знаки, используемые в различных областях.
Оператором DEFAULT можно задать значение по умолчанию для всех записей соответствующего столбца. Оператором CONSTRAINT можно задать ограничение по столбцу, либо по таблице (например, задать первичный ключ, как указано в примере) [5, с. 67]. В случае, если необходимо поменять тип какого-то из полей таблицы, можно воспользоваться оператором ALTER [18, с. 31]: ALTER []. При успешном создании таблицы в нее можно добавлять данные в соответствии с типами заданных полей. Для этого используется команда INSERT: INSERT INTO (, ,…, ) VALUES (, ,…, ); Листинг SQL-запросов, в результате выполнения которых MySQL создаст тестовую базу данных с таблицами «person», «favorite_food» и несколькими записями, приведен в приложении А. Имея базу данных с одной или несколькими таблицами, в которых есть некоторые записи, можно перейти к изучению одного из наиболее основных запросов в SQL - SELECT. На этапе создания БД его можно было использовать, чтобы узнать, какая база данных выбрана системой управления БД на данный момент, но чаще всего этот оператор используется в контексте таблиц. По сути, команда SELECT просто выводит некоторые данные из необходимого отношения, которые актуальны на данный момент. Технически, само служебное слово SELECT инструктирует базу данных о том, что после него будет идти тело запроса [9, с. 71]. В наиболее простом случае с помощью данной команды можно вывести все записи таблицы (вывод будет произведен в зависимости от используемой программной оболочки). Для того чтобы вывести все записи таблицы, необходимо составить выражение следующего вида: SELECT FROM ; Служебный символ «» может быть заменен одним или несколькими полями таблицы, перечисленными через запятую. В таком случае выведенные данные будут содержать лишь те столбцы, которые были указаны в запросе. Кроме этого запрос с оператором SELECT можно обогатить множеством уточняющих служебных слов: AND, OR; перед каждым выражением также может стоять отрицание NOT. WHERE - ограничивает выборку только теми записями, значения которых в поле соответствуют требуемому выражению. Выражений может быть несколько, между ними должна стоять одна из логических операций. Также с оператором WHERE могут использоваться служебные слова IN, BETWEEN, LIKE. IN (,…, ) указывает на то, что значение результата должно быть в множестве значений, заключенных в скобки. BETWEEN AND указывает на то, что результирующее значение должно быть больше или равно и меньше либо равно . Служебное слово LIKE (используется только с полями CHAR или VARCHAR) сообщает базе данных, что в результирующей выборке должны быть только те записи, значение необходимого поля которых соответствует маске, указанной после оператора LIKE. ORDER BY ,…, DESCASC - сортирует результат выборки по указанным полям и по убыванию, либо возрастанию DISTINCT - данное ключевое слово сообщает базе данных, что выборка не должна содержать повторяющиеся данные.
Ключевое слово - слово в тексте, способное в совокупности с другими ключевыми словами дать высокоуровневое описание содержания текстового документа, позволяющее выявить его тематику. В вебе используется главным образом для поиска.
Ставится сразу после SELECT [9, с. 77]. Кроме этих служебных слов существуют и другие, однако перечислять их все в рамках данной работы не представляется оправданным. Важно, однако, отметить возможность выборки из нескольких таблиц (объединение или join) в том случае, если эти таблицы связаны. Как можно видеть, оператор SELECT является мощным средством для выборки необходимых данных из таблицы. Тот факт, что любой запрос подобного вида можно составить автоматически (как простую текстовую строку, используя, например, программу с графической оболочкой, написанную специально для этого), подтверждает разнообразие возможностей, которые предоставляет SQL в рамках прикладного программирования. Листинг некоторых выборок из созданной ранее базы данных указан в приложении А. Более полный список основных операторов и служебных слов SQL можно найти в приложении Б. 2.4 Работа с SQL в различных СУБД (MySQL, MS Access, Firebird) Как уже было отмечено, основные реляционные СУБД, использующие язык SQL, имеют между собой немалые отличия.
Реляционная система управления базами данных (РСУБД), реже - система управления реляционными базами данных (СУРБД) - СУБД, управляющая реляционными базами данных.
Более того, сам SQL, используемый такими СУБД, может отличаться от стандартов. Особенности некоторых СУБД будут продемонстрированы на трех примерах: MySQL (программная оболочка MySQL Workbench); MS Access и Firebird (программная оболочка FlameRobin). 1) MySQL является сильно развитым продуктом с большим сообществом разработчиков и пользователей. Частично эта популярность вызвана тем, что данное решение распространяется по свободной лицензии (программа бесплатна), однако нельзя не отметить большое удобство пользования, высокую мощность и разнообразие дополнительных утилит в рамках MySQL, наличие сервера, поставляемого сразу с СУБД, и многих других преимуществ перед конкурентами.
Свободная лицензия (англ. free license) - такой лицензионный договор (ранее - «авторский договор»), условия которого содержат разрешения пользователю от правообладателя на конкретный перечень способов использования его произведения, которые дают ему четыре важнейшие свободы (или свободы, основанные на них и их включающие - согласно разным критериям и видам произведений).
Также MySQL портирована на большинство существующих платформ. Диалект SQL, используемый в MySQL, является надмножеством диалекта СУБД mSQL. Если говорить об особенностях этого диалекта, то он слабо отличается от стандарта SQL. Графическая оболочка MySQL Workbench позволяет быстро выполнять многие действия, на выполнение которых посредством составления SQL-запросов ушло бы гораздо больше времени. Это создание и редакция баз данных и таблиц, настройка базы данных, настройка соединения с сервером, создание и редактирование пользователей, мониторинг системных переменных и так далее. Кроме того, в современных версиях MySQL добавлены широкие возможности оптимизации: использование кэша запросов (наиболее частые запросы кэшируются, и их вызов происходит быстрее), хранение части кода на сервере MySQL (процедур, функций), использование подготовленных команд, пользовательские функции и так далее [14, с. 261]. Особенности работы с SQL в MySQL заключаются в наличии удобного редактора кода, автоматизации многих функций, возможности сохранять запросы и так далее. В новых версиях также была добавлена возможность объединять SQL-запросы в транзакции, создавать события, триггеры и хранимые процедуры[19]. 2) Microsoft Access, являясь частью пакета офисных приложений MS Office, предназначена, в первую очередь, для пользователей и продвинутых пользователей. Большинство функций реализовано посредством «мастеров» - графических утилит внутри основной программы, которые за несколько шагов выполняют создание определенной сущности с заданными параметрами. Использование SQL минимизировано - отсюда легкость в использовании данной СУБД. При этом текстовый редактор SQL-запросов содержит минимум полезных функций, что делает ручное написание запросов затруднительным Диалект SQL, с которым работает MS Access, - JetSQL - был создан фирмой Microsoft специально для своих программных решений. Также для полноценной работы с MS Access необходимо знание языка VBA - Visual Basic for Applications. Многие функции можно реализовать только через прямое редактирование кода, однако плюсом является некоторая интеграция JetSQL в этот язык [15]. 3) Firebird, в силу полной бесплатности продукта и относительной новизны, является наименее развитой из приведенных примеров СУБД. Без установки дополнительного программного обеспечения (графической оболочки) единственной возможностью управлять СУБД является командная строка Firebird. Однако существующие графические оболочки предоставляют некоторые полезные функции. Тем не менее, большая часть действий с базами данных должна быть выполнена посредством ручного написания SQL-запросов (в утилите ISQL либо в редакторе графической оболочки), что сильно замедляет работу. Все дальнейшие действия в рамках практической части этой работы будут произведены с использованием базы данных, построенной в MySQL в силу широты возможностей и простоты использования данной СУБД. 3. Использование SQL в прикладном программировании 3.1 Возможность интеграции SQL в программный код. Потенциальные преимущества от его использования Теоретически, имея программу, разработанную на любом современном (или даже устаревшем) языке прикладного программирования высокого уровня, разработчик имеет возможность использовать язык SQL внутри своего продукта для обращения к внешней базе данных. Для интеграции SQL в свой продукт необязательно даже иметь специальное расширение языка, которое подключает «официальную» поддержку SQL в рамках продукта. Причина этого заключается в том, что все запросы SQL представляют собой простые текстовые строки или таких строк наборы, с которыми может работать любой применяемый на практике язык программирования высокого уровня. Тем не менее, если среда разработки не поддерживает облегченные средства обращения к базе данных (через подключение к определенной СУБД), реализация отправки SQL-запросов может представиться сложным, если вообще выполнимым заданием. Дело в том, что программа должна отправлять каждый запрос к СУБД по определенному подключению, а создать такое подключение можно, лишь имея специфические знания в области. Для того чтобы облегчить задачу программистам, было создано множество расширений для различных СУБД и языков программирования высокого уровня. В случае языков программирования такие расширения обычно представляют собой библиотеки (классов либо методов), с помощью которых, введя одну стандартную функцию в тело программы, разработчик может подключиться к СУБД [16, с. 219]. В практических примерах будут рассмотрены именно языки с уже готовыми расширениями (для СУБД MySQL), так как подключение к СУБД вручную, во-первых, может занять большое количество времени, во-вторых, если используется на практике, то лишь в исключительных случаях - например, при работе с самописным языком. Потенциальные преимущества при работе с SQL исходят из самой природы этого языка структурированных запросов - будучи универсальным средством обращения к реляционным БД под управлением большинства СУБД, этот язык позволяет значительно сократить ресурсные и временные затраты на обращение к внешней базе данных из тела программы, написанной на каком-либо языке программирования. То, что можно реализовать технически без SQL, например, в рамках C , уже реализовано в стандарте SQL и может быть выполнено посредством добавления нескольких стандартных функций и запросов в тело программы. Также большим преимуществом является возможность интегрировать SQL сразу в несколько компонентов одной системы, написанной с использованием разных языков программирования - например, WEB-компонент системы, написанный на Javascript, и внутренняя, инкапсулированная от пользователей часть на C , могут использовать SQL в равной степени, создавать запросы, подключаться в БД по мере необходимости и так далее. Эта возможность еще сильнее повышает универсальность системы. В трех следующих подразделах будут представлены практические примеры использования SQL в рамках трех языков: Pascal (выбран как наиболее хорошо демонстрирующий возможности программирования для начинающих специалистов), C (выбран как язык с чрезвычайно широкими возможностями, использующийся повсеместно и породивший множество родственных языков), Object ABAP (данный специфический пример позволит увидеть, каким образом SQL можно интегрировать в язык напрямую, без использования расширений). 3.2 Использование SQL в Pascal (на примере Pascal Lazarus) Pascal, не являясь популярным языком разработки коммерческих приложений, тем не менее, очень распространен в учебных заведениях по причине наглядности многих его аспектов. Поэтому первым языком, в рамках которого будет рассмотрено использование SQL, выбран именно Pascal. Технически, однако, в данном примере будет показан не Pascal в чистом виде, а его объектная версия, используемая в графической среде разработки Lazarus. Lazarus является бесплатным аналогом популярного инструмента Delphi, потому работа с ним может также дать представление об устройстве этого продукта. Для подробного разбора механики соединения с базой данных MySQL посредством языка Pascal все операторы необходимо прописывать вручную (подключение к хосту и так далее). Однако Lazarus существенно облегчает задачу программиста посредством множества готовых классов, объекты которых можно разместить на форме программы по аналогу с Delphi и получить в свое распоряжение мощные инструменты для подключения к базам данных различных СУБД и для других задач. На рисунке 9 показаны строки с объектами, предназначенными для подключения к различным СУБД в программе Lazarus и для управления данными, полученными из баз данных: