ОГЛАВЛЕНИЕ
Введение
. Базы данных и системы управления базами данных
1.1 Основные определения и свойства баз данных
.2 Системы управления базами данных
.3 Реляционные БД: отношения, реляционные операции, ключи
.4 Проектирование базы данных. Язык UML
2. Структурированный язык запросов SQL
2.1 Введение в SQL. Основные понятия
.2 Создание и управление базой данных
.3 Создание и управление таблицами. Основные запросы SQL
.4 Работа с SQL в различных СУБД (MySQL, MS Access, Firebird)
3. Использование SQL в прикладном программировании
3.1 Возможность интеграции SQL в программный код. Потенциальные преимущества от его использования
.2 Использование SQL в Pascal (на примере Pascal Lazarus)
.3 Использование SQL в C++ (на примере MS Visual Studio)
.4 Использование SQL в ABAP (на примере SAP GUI)
.5 Сравнение результатов использования SQL в различных языках программирования
Заключение
Список использованной литературы
Приложения
ВВЕДЕНИЕ
Актуальность темы курсовой работы заключается в том, что использование баз данных и, как следствие, систем управления базами данных в рамках различных информационных систем и сервисов было и остается повсеместным. Более того, на момент написания работы сформировалась тенденция к увеличению роли баз данных - в особенности, удаленных от конечного пользователя (веб-приложения, «облачные» сервисы), - что повышает важность изучения всего, с базами данных связанного. Кроме того, еще одна тенденция вынуждает информационную науку искать возможности объединять и делать доступными для использования в рамках друг друга различные технологии и стандарты. Это тенденция к интеграции, универсализации как информационных систем в целом, так и компонента front-end (доступного конечному пользователю), так и различных сред разработки. Современное приложение среднего или крупного масштаба не может существовать в границах одной технологии, стандарта или языка, и для того чтобы связать между собой различные компоненты, необходимо глубокое знание как теоретической части предмета, так и прикладных решений.
Одним из наиболее популярных средств обращения к реляционным базам данных является язык структурированных запросов SQL (Structured Query Language). На его основе было создано множество СУБД (систем управления базами данных), в том числе масштабные решения от Microsoft и Oracle. Именно язык SQL выполняет роль связки между программной частью системы, использующей базу данных, и СУБД, написанной для этого языка запросов. В силу высокого уровня развития SQL, большого количества СУБД, использующих его, и обширных возможностей использования SQL внутри современных языков программирования высокого уровня, изучение не только семантики языка как такового, но и возможностей использования его в рамках внешних технологий является критичным для любого специалиста информационных технологий. Язык SQL является сформированным стандартом обращения к базам данных, потому знание его сильно упрощает разработку и поддержку систем, написанных на любом языке программирования, в рамках которого используется SQL. Кроме того, все чаще крупные проекты формируются из нескольких компонентов, одним из которых является СУБД. В таком случае, разные части системы, способные составлять обращения на SQL, формируют своего рода кластер, а язык структурированных запросов становится связкой между ними. Это повышает универсальность системы в целом, увеличивает ее эффективность в контексте ресурсов, требуемых на создание и поддержание системы, а также в определенной мере повышает гибкость проекта.
Объектом исследования курсовой работы являются «Базы данных», а предметом исследования - «Использование SQL в прикладном программировании».
Целью курсовой работы является изучение особенностей языка структурированных запросов при использовании его в прикладном программировании, сравнение реализации связи между SQL и языками программирования высокого уровня, практические выводы.
В ходе работы для достижения поставленной цели будут выполнены следующие задачи:
) дать определения баз данных и СУБД, перечислить и раскрыть важнейшие их особенности; составить классификацию баз данных и, соответственно, систем управления базами данных по различным признакам;
) описать различные модели данных, перечислить характеристики БД (базы данных) и СУБД (отношения, операции, ключи и так далее). Дать краткое описание языка UML (Unified Modeling Language), использующегося для проектирования реляционной БД, а также описать процесс проектирования базы данных;
) дать характеристику языку SQL; перечислить его особенности в рамках теории; затем перейти к прикладной части: дать поэтапное описание (с примерами) создания базы данных и таблицы, перечислить основные операторы языка; указать особенности использования SQL в различных СУБД;
) изучить теоретическую возможность использования SQL в прикладном программировании; перечислить достоинства и недостатки такой концепции;
) более подробно описать практическое использование SQL в различных языках программирования, продемонстрировать примеры, дать сравнительную характеристику.
При написании курсовой работы использовались
научные труды следующих авторов: Баженова И.Ю [2], Баканов В.М. [3], Бураков
П.В. [4], Гудов А.М [5], Дьяков И.А [6], Зиборов В.В. [7], Кетков Ю.Л. [8], Копейкин
М.В. [9], и другие.
1. БАЗЫ ДАННЫХ И СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ
ДАННЫХ
.1 Основные определения и свойства баз данных
Прежде чем давать определение базе данных и описывать характеристики данной сущности, необходимо указать значимость баз данных в современной информационной науке, пояснить разницу между базами данных и файловыми системами и в целом объяснить концепцию БД.
До появления повсеместно используемых стандартов баз данных и систем управления БД пользователи всякой информационной системы, содержащей в себе большое количество связанных данных (это могли быть данные предприятия, информация о клиентах, адресах, товарах - любых объектах, которые можно абстрагировать до некоего множества, связанного по признаку), вынуждены были обрабатывать эти данные без удобной модели общего доступа и связей между различными кластерами данных. Происходило это по той причине, что единственным компонентом информационных систем, способным хранить, упорядочивать и предоставлять доступ к большим объемам структурированных данных, являлись файловые системы. Всякое сложное действие, которое необходимо было выполнить с данными - в особенности, если данные хранились одновременно в разных частях системы, либо если были связаны с другим множеством данных по некоему полю, - приходилось дублировать для успешной синхронизации и стабильной работы системы. Кроме того, за неимением универсального, абстрагированного средства обработки данных такая обработка должна была быть реализована в рамках общего кода системы - как правило, процедурально, что не только замедляло работу системы, но и вносило излишнюю комплексность в код.
По причине этих недостатков при работе с файловыми системами была разработана концепция баз данных - систем данных, существенно облегчающих работу с большим объемом информации в рамках некоей информационной системы. На данный момент абсолютное большинство информационных продуктов используют базы данных в явном или скрытом виде. Примером явного для конечного пользователя обращения к базе данных является работа с неким электронным справочником. Скрытое обращение к базе данных - это, например, использование имени пользователя и пароля для входа на веб-страницу. Таким образом актуальность использования баз данных только растет вместе с их развитием.
Итак, говоря общими словами, концепция баз данных представляет собой развитие идеи файловой системы, только в случае БД возможности обработки данных, особенно массовой, облегчение доступа к данным, ускорение работы с ними существенно возрастают. На уровне теории это обеспечивается так называемыми моделями данных, о которых будет сказано ниже. На уровне практики облегчение работы с данными достигается реализацией модели данных, а также множеством средств, реализованных для данного типа БД и СУБД - системы управления базами данных.
Также немаловажной особенностью, которая отличает базы данных от более примитивных объектов для работы с данными, является возможность удаленного и параллельного доступа к данным нескольких пользователей. Кроме этого базы данных могут быть распределенными - в таком случае данные размещаются на нескольких физических хранителях, находящихся в разных локациях (технически, одна база данных может быть распределена по всему Земному шару, если подобное распределение оправдано). Данная особенность БД существенно облегчает создание информационных систем, работа с которыми должна вестись многими пользователями одновременно.
Перейдем к строгому определению понятия «База данных». Современные стандарты и научные работы в этой области выделяют несколько похожих определений:
«База данных - совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных» [1, c. 3].
«База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области» [4, с. 6]
«База данных - набор сведений, хранящихся некоторым упорядоченным способом» [24].
Как можно заметить, определения, данные в разных источниках, отличаются друг от друга строгостью, полнотой и некоторыми признаками, которые должны содержаться в БД по одному определению, но не должны по другому. Из всех определений, однако, можно вывести общую и самую важную часть, которая является минимальным условием принадлежности некоей информационной сущности к базам данных: база данных всегда является набором данных, либо сведений, либо информации. Некоторые источники, посвященные изучению БД, опускают важность определения данных, однако в большинстве случаев база данных, конечно, должна содержать данные, а не просто «информацию».
«Данные - зарегистрированная информация; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств» [25].
Исходя из этого определения, можно увидеть, что в сравнении с информацией данные являются более узким понятием; тогда как информация может быть беспорядочным набором сведений, данные всегда должны быть представлены в понятном, доступном для дальнейшей обработки виде.
Вернемся к понятию базы данных. Так как, исходя из большинства определений, БД содержит в себе данные, отдельный акцент следует сделать на то, что база данных - это именно структурированная, построенная по определенным правилам (модели) сущность.
Тем не менее, всякое определение базы данных обречено быть размытым и неполным, так как концепция баз данных является достаточно гибкой, а значит - способной к развитию. Можно также отметить, что наиболее важное определение базы данных неявно содержится в цели, с которой создается каждая БД: хранить в себе некое множество данных, схожих по определенным признакам, давая возможность пользователям получать, обрабатывать, добавлять и удалять данные, а также давать гарантию на то, что данные не будут потеряны.
Перейдем к более подробному описанию конкретных характеристик баз данных.
Основополагающей характеристикой БД, от которой
зависит, в том числе, перечень СУБД, способных с ней работать, а также сам
принцип связей между данными, является модель данных. За время развития науки о
базах данных было построено несколько успешных моделей данных, из которых одна
заняла главенствующую позицию в контексте применения на практике. Основные
модели данных и их особенности представлены в таблице 1:
Таблица 1 - Основные модели данных
|
Название |
Особенности |
Преимущества и недостатки |
|
Иерархическая |
Представление данных в виде древовидной структуры. Входом является корень дерева - первый файл, к которому привязаны остальные |
Значительно сокращаются затрачиваемые ресурсы памяти и быстродействия; реализация сложна в техническом плане; необходимо подробное знание структуры БД |
|
Сетевая |
Данные представлены в виде сетевой структуры (развитие иерархической модели: у дочерних объектов может быть любое количество предков) |
Реализация сетевой модели не требует больших ресурсов памяти и времени, однако сложность реализации очень высока |
|
Реляционная |
Основной компонент, отличающий реляционную от других моделей - отношение. Реляционная БД представляет собой набор таких отношений, на практическом уровне называемых таблицами |
Реляционные базы данных более понятны для пользователя, чем иерархические и сетевые; физическая и логическая независимость таких БД очень высока (без изменения программы можно редактировать организацию данных); однако создание связей между таблицами вызывает избыточность по полям |
Менее распространенными моделями данных являются объектные, объектно-ориентированные и функциональные, однако в силу предмета данной курсовой работы нет смысла останавливаться на них подробно. Из вышеописанных моделей наибольшее развитие и масштаб применения получила реляционная модель данных. Основное преимущество данной модели - простоту использования и понимания организационной структуры - с лихвой компенсирует главный недостаток - избыточность полей. Современный уровень развития устройств долговременного хранения данных сводит на нет все возможные проблемы с нехваткой места на данные базы.
Другой характеристикой баз данных является
содержимое БД. Хотя первые БД содержали в себе исключительно текстовую
информацию, со временем возможности электронно-вычислительной техники
расширились, и теперь существуют следующие виды баз данных (рисунок 1):
Рисунок 1 - классификация баз данных по
содержанию и хранимой информации
Следующая характеристика баз данных - это степень распределенности. Централизованными базами данных называют такие, все данные которых хранятся в памяти одной вычислительной системы. Распределенные базы данных состоят из нескольких частей, хранимых в памяти разных ЭВМ вычислительной сети [10, с. 6]. Распределенные, в свою очередь, подразделяются на однородные (БД управляется одной СУБД), неоднородные (используются разные СУБД), фрагментированные (распределение достигается путем секционирования) и тиражированные (распределение достигается путем реплицирования).
Перечислив основные характеристики баз данных, а
также моделей данных, на которых они основываются, обратимся к предмету
управления базами данных - СУБД.
.2 Системы управления базами данных
Нередко допускаются грубые ошибки в различии между базами данных как таковыми и их системами управления. Чтобы строго разграничить два понятия, следует сразу отметить, что база данных является только набором данных и схемой их организации (а в более широком смысле - еще и набором правил работы с данными), тогда как система управления базами данных (СУБД) - это набор языковых и программных средств, предназначенных для работы с БД (создание, редактирование, удаление) [6, с. 5]. Другими словами, в более узком и очевидном смысле, система управления базами данных - это программа, включающая в себя возможности работы с определенными БД [4, с. 11].
За время развития баз данных и систем их управления было создано множество различных СУБД. Многие из них уже устарели технически и были заменены новыми продуктами. Тем не менее, можно разделить все СУБД на две глобальные категории: СУБД общего назначения и специализированные системы. Как исходит из названия, при разработке СУБД общего назначения не делается акцент на какой-либо стороне работы СУБД, так же как программа не создается только для некоего узкого круга баз данных. СУБД общего назначения являются многофункциональными продуктами, которые уже в ходе создания либо эксплуатации БД могут быть модифицированы (кастомизированы) под нужды пользователя либо администратора системы. В связи с широкими возможностями СУБД общего назначения, часто это коммерческие продукты, поставляемые пользователям, которые в дальнейшем могут использовать в полной мере те специфические особенности данной СУБД, которые им нужны [10, с. 18]. К группе СУБД общего назначения относится большинство известных продуктов (MS Access, MySQL, Oracle и так далее). В редких случаях, когда по некоторым причинам использование СУБД общего назначения невозможно или не оправдано, создаются специализированные системы, выполняющие лишь некоторые функции поддержки базы данных. Например, такое возможно в условиях нехватки вычислительных ресурсов у вычислительной техники, использующей СУБД (портативные ЭВМ, специализированная техника с элементами ЭВМ). Возможности современных СУБД (в первую очередь, общего назначения) включают, но не ограничиваются следующими: