Введение
Информация в жизни общества играет очень важную роль. Сегодня с помощью информации можно достичь каких-либо целей или развести информационную войну. Кто работает с информацией правильно и хранит ее по всем условиям – у того возникает меньше проблем. Структурированность информации – это очень значимый вопрос. Чтобы структурировать какие-либо данные нужны средства. Этими средствами являются базы данных. Они появились более 50 лет назад.
Чтобы управлять базами данных, обрабатывать вызовы-запросы пользователей необходимы некоторые системы. На сегодня они так и называются СУБД – системы управления базами данных. СУБД может содержать множество информации в одном месте. Данные могут храниться в самых разных целях, и многие из нас ежедневно используют СУБД, не осознавая этого. Номера сотовых телефонов, перечисленные в алфавитном порядке, являются формой СУБД. На рабочем месте СУБД может использоваться для хранения большого количества важной, а иногда и конфиденциальной информации, такой как записи о заработной плате и личные данные.
Внесём также понятие базы данных. Это определённая именованная целая система данных, которая несёт в своём представлении состояние объектов и их отношений в некоторой изучаемой предметной области [1].
Их число на рынке с каждым годом растет, но основная их задача – обеспечение правильного хранения информации в базе данных.
Тема курсовой работы посвящена система управления базами данных. А именно - их настройка, обработка запросов, оптимизация.
Актуальность темы обусловлена тем, что при правильной настройки и обработки СУБД, будет правильно функционировать и отвечать на запросы пользователей база данных.
Объектом исследования курсовой работы являются «Базы данных», а предметом исследования – «Система управления базами данных».
Целью курсовой работы является изучение систем управления базами данных, а именно - их настройка, обработка запросов, оптимизация.
Чтобы выполнить поставленную цель в курсовой работе нужно решить следующие задачи:
1) изучить основные понятия и свойства СУБД;
2) понять основы языков СУБД;
3) изучить преимущества использования СУБД;
4) описать настройку, обработку запросов и оптимизацию СУБД;
5) создать небольшую БД в программном продукте MSAccess.
При написании курсовой работы использовались научные труды следующих авторов: Голицина О.Л., Партыка Т.Л., Попов И.И., Грошев А.С., Ермолаева Е.К, Темботова М.М., Лафишева М.М., Зафиевский А.В., Короткин А.А., Лататуев А.Н., Илюшечкин В.М., Карпова Т.С., Катеринина С.Ю., Усков Ю.И., Кирилов В.В., Громов Г.Ю. и другие авторы.
Теоретические основы систем управления базами данных
Основные понятия и свойства
На данный момент в мире применяется довольно много многофункциональных производственных систем управления баз данных (СУБД). В их числе можно выделить три ярко выраженных лидера (как по уровню развития технологий, так и на рынке их общий объём составляет более чем 90% всех СУБД). Системы управления БД, которые заняли первые ряды на мировом рынке: Microsoft SQL Server, Oracle и IBM DB2. СУБД, находящиесявовторомряду: Sybase, Informix, Ingress, Adabas, Interbase, Progress, Postgres, Cache, Linter, Firebird, Teradata итд[10].
Есть еще и маленькие СУБД для узконаправленных (специальных) решений и регулярно выпускаются прототипы новых специализированных СУБД (объектно-ориентированные СУБД, ХML СУБД, СУБД для обработки потоковых данных, СУБД для работы с текстами и т.д.).
СУБД – это комплекс программных и языковых инструментов, обеспечивающих управление, разработку и применение БД[5].
Традиционных функций файловых систем, по-настоящему, мало для создания даже простых информационных систем.
При построении информационной системы нужно обеспечивать:
- сохранение логически связанной группы данных;
- наличие языка манипулирования информацией;
- восстановление данных после различных сбоев;
- по-настоящему параллельная одновременная работа двух и более пользователей.
Для реализации совершенно всех этих функций выделяется группа программ, консолидированных в общий программный комплекс[2]. Этот комплекс и называется системой управления БД. Рассмотрение этих ключевых функций по отдельности.
Важнейшей функцией СУБД является ведение реестра (журнализация). Это популярный способ поддержания лишней информации – ведение реестра (журнала) обновлений БД[3].
На рисунке 1 представлен состав компонентов СУБД.
Рисунок 1 – Комплект СУБД
СУБД может содержать множество информации в одном месте. Данные могут храниться в самых разных целях, и многие из нас ежедневно используют СУБД, не осознавая этого. Номера сотовых телефонов, перечисленные в алфавитном порядке, являются формой СУБД. На рабочем месте СУБД может использоваться для хранения большого количества важной, а иногда и конфиденциальной информации, такой как записи о заработной плате и личные данные[4].
Таблицы могут быть созданы с использованием данных, и эти данные можно разделить на поля. Затем этим полям может быть назначен первичный ключ, который позволяет пользователю легко и эффективно искать информацию. Вторичные ключи также могут применяться к полям, и, создавая эти поля, пользователи могут искать данные, которые применимы только к двум полям, о которых идет речь. Реестр – это особый элемент БД, скрытый от пользователей СУБД и обеспечиваемой особо детально (в определённых случаях обеспечиваются копии реестра, размещённые на двух разнообразных физических носителях), в который поступают записи об совершенно всех обновлениях основной части БД. В разных СУБД обновления БД заносятся в реестр на разных уровнях в определённых случаях запись в реестре (журнале) соответствует определённому логическому действию обновления БД (например, действия удаления строки из таблицы реляционной БД), а иногда запись соответствует примитивному внутреннему действию обновления страницы внешней памяти[1].
База данных – это самое популярное приложение в мире информационных систем. Она используется в комплекте сложных встроенных IT-систем, так же как обыкновенная однопользовательская программа. Базы данных реализуются множеством инструментов. Одновременно масштабы БД и содержимые в них данные растут, необходимы качественные методы защиты информации. При этом требуется работа с информацией, размещённой в этой БД средствами системы управления БД[6].
С увеличением объёмов информации требуется обеспечение конфиденциальности, целостности и доступности. К тому же решения защиты информации не должны быть ограничены лишь пределами СУБД. Обеспечить полную защиту информации практически невозможно. Но с ростом объёмов данных должна расти и степень их защиты. В таком случае уровень доступности и быстрота работы.
Достоинства и недостатки применения СУБД сторонних разработчиков, т.е. системы управления БД, предназначенные для широкого применения в структурах IT-систем. Главными достоинствами таких СУБД является поддержка многофункционального и многопользовательского режимов, система безопасности, резервное копирование, обеспечение транзакционных механизмов, контроль целостности информации, соответствие стандартам, расширяемость, наличие инструментов администрирования информации[7]. Недостатками таких систем управления БД является сложность обслуживания, размер СУБД, цена, высокие требования к аппаратуре, низкая производительность, сложности перехода на СУБД.
Во множестве СУБД можно определить список основных функций. Все функции разделены на две группы: функции разработки и функции времени исполнения. Функции первой категории применяются на стадии создания IT-системы, а функции второй нужны для обеспечения правильной работы приложения информационной системы. К таким функциям относится поддержка транзакционных технологий, инструменты возобновления данных после сбоев, средства организации функционирования с внешней памятью, поддержка языков управления БД и языков разработки, инструменты построения БД, обеспечение системного каталога, управление параллельным доступом, управление ресурсами ОЗУ, гарантирование целостности данных, обеспечение обмена информацией, гарантирование автономности данных, вспомогательные функции[9].
Помимо традиционных функций в СУБД должны присутствовать механизмы функционирования с данными, специально созданные для анализа информации научного типа. Благодаря этому, у учёных есть возможность работать с информацией в одной среде, например, настраивая аналитические алгоритмы на ПК и применяя небольшую сортировку данных, а настроенные запросы без изменений запускать на высокоэффективных кластерах[8].
В некоторых системах независимо друг от друга применяются два подхода. Во всех вариантах без исключения нужно придерживаются стратегии «предварительной» записи в реестр протокола Write Ahead Log – WAL. Если в общем, то эта политика заключается в том, что запись об обновлении каждой сущности БД должна попасть во внешнюю память реестра перед тем, как обновлённый объект будет размещён во внешней памяти основной части БД.
Инсталлировано, в случае если СУБД в точностью соблюдает протокол WAL, то с поддержкой журнала есть возможность решить все трудности возобновления БД после различных сбоев. Типичная картина возобновления – выборочный откат транзакции. Если точней, то для этого совсем не нужен общесистемный журнал обновлений БД. Для любых транзакций достаточно вести локальный журнал действий изменения БД, сделанных в этой транзакции, и выполнять откат транзакции исполнением обратных действий, руководствуясь от конца локального журнала. В некоторых СУБД так и осуществляют, но множество систем не поддерживают журналы локального типа, а выборочный откат транзакции реализуется согласно с общесистемным журнале, для чего все записи от одной транзакции консолидируют обратным перечнем (о завершения к началу)[10].
Специализированные языки баз данных
Для обеспечения эффективной работы с БД используются специализированные языки, в общем называемые языками БД. Первые СУБД поддерживали ряд специальных по своим функциям языков. Два из них больше всего отличались – это язык распознания схемы (SDL) и язык манипулирования данными (DML).
Язык SDL функционировал в основном для устройства логической структуры БД, т.е. в таком виде, в котором она представлена пользователю. Язык манипулирования данными состоял из набора операторов манипулирования информацией, т. е. операторов, предоставляющих возможность вносить сведения в базу данных, удалять, обновлять или выделять имеющиеся данные[15].
Рисунок 2 – Структура языка SQL
В современных СУБД, как правило, обеспечен единый интегрированный язык, обладающий всеми без исключения необходимыми для функционирования с БД функциями, начиная с её разработки и гарантирующий прямую связь пользователя с базой данных. Традиционным языком в самых известных на сегодняшний день реляционных системах управления БД признан язык запросов SQL. Основные функции реляционной СУБД, обеспечиваемые при реализации связи между пользователем и БД на языковом уровне[17].
Для начала язык SQL обеспечивает средства SDL и DML, т.е. предоставляет возможность определять структуру РБД и манипулировать данными. Во время этого название объектов БД (для РБД – название таблиц и их полей) обеспечивается на уровне языка в том значении, что компилятор языка SQL интегрирует обновления наименований объектов в их внутренние идентификаторы на базе особо поддерживаемых служебных таблиц-каталогов. Внутренняя составляющая СУБД в общем не работает с наименованиями таблиц и их полей.
Язык SQL содержит специальные инструменты выставления ограничений целостности БД. И снова ограничения целостности содержаться в специализированных таблицах-каталогах, и предоставление контроля целостности базы данных выполняется на уровне языка, а именно, во время компиляции операторов обновления БД компилятор SQL, основываясь установленными в БД ограничениями целостности пропишет код программы.
Специальные операторы языка SQL позволяют формулировать так называемые определения БД, реально представляющие содержащиеся в БД запросами (результатом всех запросов к РБД является таблица) с назваными колонками. Для пользователя это определение считается такой же таблицей, как и любая другая основная таблица, содержащаяся в БД, однако с обеспечением определений можно снизить или наоборот повысить уровень видимости БД для определённого пользователя. Сохранение определений реализуется также языковыми средствами[16].
В конечном результате, получение доступа к сущностям БД осуществляется на базе специального набора операторов SQL. Идея заключается в том, что для реализации операторов SQL разнообразного типа, пользователю нужно обладать всеми полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с этой таблицей. В их число входит возможность передачи всех или части полномочий другим пользователям, к тому же право на делегирование полномочий. Полномочия пользователей обозначаются в специальных таблицах-каталогах, формулирование полномочий выполняется средствами языка SQL.