Основные понятия баз данных
Оглавление
Введение- 3
1. Основные понятия баз данных- 4
2. Функции СУБД- 9
3. Архитектура СУБД- 14
Заключение- 20
Список литературы- 21
Системы баз данных сегодня являются основой построения большинства информационных систем и используются при автоматизации практически всех сфер человеческой деятельности. Например, доступ к базе данных необходим при работе с библиотечной информационной системой, содержащей сведения обо всех книгах, имеющихся в библиотеке, ее читателях, заявках на бронирование книг и т.д. В ней обычно содержатся средства, позволяющие читателям находить нужную им книгу по названию, фамилиям авторов или указанной тематике. С помощью такого рода систем организуется учет движения книг, другие операции, необходимые в библиотечной деятельности.
В ВУЗе могут существовать базы данных с информацией о студентах, профессорско-преподавательском составе, факультетах и кафедрах, др. данные, необходимые для функционирования так называемых комплексных информационно-аналитических систем и их подсистем (учета кадров, бухгалтерской, документооборота, информационного обеспечения учебной деятельности и т.п.).
Базы данных по народонаселению содержат сведения о жителях города, региона и т.п., необходимые для функционирования систем налогообложения, здравоохранения, образования, социальной защиты, др.
Банк данных
— это автоматизированная система, представляющая совокупность информационных, программных, технических средств и персонала, обеспечивающих хранение, накопление, обновление, поиск и выдачу данных. Главными составляющими банка данных являются база данных и программный продукт, называемый системой управления базой данных (СУБД).
База данных
— это специальным образом организованное хранение информационных ресурсов в виде интегрированной совокупности файлов, обеспечивающей удобное взаимодействие между ними и быстрый доступ к данным.
База данных — это динамичный объект, меняющий значения при изменении состояния отражаемой предметной области (внешних условий по отношению к базе). Под предметной областью понимается часть реального мира (объектов, процессов), которая должна быть адекватно, в полном информационном объеме представлена в базе данных. Данные в базе организуются в единую целостную систему что обеспечивает более производительную работу пользователей с большими объемами данных.
Система управления базой данных
(СУБД) – это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ. СУБД взаимодействует с прикладными программами пользователя и базой данных и обладает приведенными ниже возможностями:
· Позволяет определять базу данных, что обычно осуществляется с помощью языка определения данных (DDL - Data Definition Language). Язык DDL предоставляет пользователям средства указания типа данных и их структуры, а также средства задания ограничений для информации, хранимой в базе данных.
· Позволяет вставлять, обновлять, удалять и извлекать информацию из базы данных, что обычно осуществляется с помощью языка управления данными (DML - Data Manipulation Language). Наличие централизованного хранилища всех данных и их описаний позволяет использовать язык DML как общий инструмент организации запросов, который иногда называют языком запросов.
· Предоставляет контролируемый доступ к базе данных с помощью: системы обеспечения безопасности, предотвращающей несанкционированный доступ к базе данных со стороны пользователей; системы поддержки целостности данных, обеспечивающей непротиворечивое состояние хранимых данных; системы управления параллельной работой приложений, контролирующей процессы их совместного доступа к базе данных; системы восстановления, позволяющей восстановить базу данных до предыдущего непротиворечивого состояния, нарушенного в результате сбоя аппаратного или программного обеспечения; доступного пользователям каталога, содержащего описание хранимой в базе данных информации.
Кроме важнейших составляющих базы данных и СУБД, банк данных включает и ряд других составляющих. Остановимся на их рассмотрении.
Языковые средства
включают языки программирования, языки запросов и ответов, языки описания данных.
Методические средства
— это инструкции и рекомендации по созданию и функционированию банка данных, выбору СУБД.
Технической основой
банка данных является ЭВМ, удовлетворяющая определенным требованиям по своим техническим характеристикам.
Обслуживающий персонал
включает программистов, инженеров по техническому обслуживанию ЭВМ, административный аппарат, в том числе администратора базы данных. Их задача — контроль за работой банка данных, обеспечение совместимости и взаимодействия всех составляющих, а также управление функционированием банка данных, контроль за качеством информации и удовлетворение информационных потребностей. В минимальном варианте все эти функции для пользователя могут обеспечиваться одним лицом или выполняться организацией, поставляющей программные средства и выполняющей их поддержку и сопровождение.
Особую роль играет администратор
базы или банка данных. Администратор управляет данными, персоналом, обслуживающим банк данных. Важной задачей администратора базы данных является защита данных от разрушения, несанкционированного и некомпетентного доступа. Администратор предоставляет пользователям большие или меньшие полномочия на доступ ко всей или части базы. Для выполнения функций администратора в СУБД предусмотрены различные служебные программы. Администрирование базой данных предусматривает выполнение функций обеспечения надежной и эффективной работы базы данных, удовлетворение информационных потребностей пользователей, отображение в базе данных динамики предметной области.
Главными пользователями баз и банков данных являются конечные пользователи
, т.е. специалисты, ведущие различные участки экономической работы. Их состав неоднороден, они различаются по квалификации, степени профессионализма, уровню в системе управления: главный бухгалтер, бухгалтер, операционист, начальник кредитного отдела и т.д. Удовлетворение их информационных потребностей — это решение большого числа проблем в организации внутримашинного информационного обеспечения.
Специальную группу пользователей банка данных образуют прикладные программисты. Обычно они играют роль посредников между базой данных и конечными пользователями, так как создают удобные пользовательские программы на языках СУБД. Централизованный характер управления данными вызывает необходимость администрирования такой сложной системы, как банк данных.
Преимущества работы с банком данных для пользователя окупают затраты и издержки на его создание, так как:
• повышается производительность работы пользователей, достигается эффективное удовлетворение их информационных потребностей;
• централизованное управление данными освобождает прикладных программистов от организации данных, обеспечивает независимость прикладных программ от данных;
• развитая организация базы данных позволяет выполнять разнообразные нерегламентированные запросы, новые приложения;
• снижаются затраты не только на создание и хранение данных, но и на их поддержание в актуальном и динамичном состоянии; уменьшаются потоки данных, циркулирующих в системе, сокращается их избыточность и дублирование.
Как банк данных, так и база данных могут быть сосредоточены на одном компьютере или распределены между несколькими компьютерами. Для того чтобы данные одного исполнителя были доступны другим и наоборот, эти компьютеры должны быть соединены в единую вычислительную систему с помощью вычислительных сетей.
Банк и база данных, расположенные на одном компьютере, называются локальными, а на нескольких соединенных сетями ПЭВМ называются распределенными. Распределенные банки и базы данных более гибки и адаптивны, менее чувствительны к выходу из строя оборудования.
Назначение локальных баз и банков данных организации более простого и дешевого способа информационного обслуживания пользователей при работе с небольшими объемами данных и решении несложных задач.
Локальные базы данных эффективны при работе одного или нескольких пользователей, когда имеется возможность согласования их деятельности административным путем. Такие системы просты и надежны за счет своей локальности и организационной независимости.
Назначение распределенных баз и банков данных состоит в предоставлении более гибких форм обслуживания множеству удаленных пользователей при работе со значительными объемами информации в условиях географической или структурной разобщенности. Распределенные системы баз и банков данных обеспечивают широкие возможности по управлению сложных многоуровневых и многозвенных объектов и процессов.
Распределенная обработка данных позволяет разместить базу данных (или несколько баз) в различных узлах компьютерной сети. Таким образом, каждый компонент базы данных располагается по месту наличия техники и ее обработки. Например, при организации сети филиалов какой-либо организационной структуры удобно обрабатывать данные в месте расположения филиала. Распределение данных осуществляется по разным компьютерам в условиях реализации вертикальных и горизонтальных связей для организаций со сложной структурой.
Объективная необходимость распределенной формы организации данных обусловлена требованиями, предъявляемыми конечными пользователями:
• централизованное управление рассредоточенными информационными ресурсами;
• повышение эффективности управления базами и банками данных и уменьшение времени доступа к информации;
• поддержка целостности, непротиворечивости и защиты данных;
• обеспечение приемлемого уровня в соотношении «цена — производительность — надежность».
Распределенная система баз данных (или частей базы) позволяет в широких возможностях варьировать и поддерживать информационные ресурсы, избегая узких мест, сдерживающих производительность пользователя, и добиваться максимальной эффективности использования информационных ресурсов.
В этом разделе мы рассмотрим типы функций и служб (сервисов), которые должна обеспечивать типичная СУБД.
Хранение, извлечение и обновление данных.
СУБД должна предоставлять пользователям возможность сохранять, извлекать и обновлять данные в базе данных. Это самая фундаментальная функция СУБД. Из предыдущего ясно, что способ реализации этой функции в СУБД должен позволять скрывать от конечного пользователя внутренние детали физической реализации системы (например, файловую организацию или используемые структуры хранения).
Каталог, доступный конечным пользователям.
СУБД должна иметь доступный конечным пользователям каталог, в котором хранится описание элементов данных. Ключевой особенностью архитектуры ANSI-SPARC является наличие интегрированного системного каталога с данными о схемах, пользователях, приложениях и т.д. Предполагается, что каталог доступен как пользователям, так и функциям СУБД. Системный каталог, или словарь данных, является хранилищем информации, описывающей данные в базе данных (по сути, это - метаданные). В зависимости от типа используемой СУБД количество информации и способ ее применения могут варьироваться. Обычно в системном каталоге хранятся следующие сведения:
· имена, типы и размеры элементов данных;
· имена связей;
· накладываемые на данные ограничения поддержки целостности;
· имена санкционированных пользователей, которым предоставлено право доступа к данным;
· внешняя, концептуальная и внутренняя схемы и отображения между ними;
· статистические данные, например частота транзакций и счетчики обращений к объектам базы данных.
Системный каталог позволяет достичь определенных преимуществ, перечисленных ниже.
· Информация о данных может быть централизованно собрана и сохранена, что позволит контролировать доступ к этим данным, как и к любому другому ресурсу.
· Можно определить смысл данных, что поможет другим пользователям понять их предназначение.
· Упрощается сообщение, так как сохраняются точные определения смысла данных. В системном каталоге также могут быть указаны один или несколько пользователей, которые являются владельцами данных или обладают правом доступа к ним.
· Благодаря централизованному хранению избыточность и противоречивость описания отдельных элементов данных могут быть легко обнаружены.
· Внесенные в базу данных изменения могут быть запротоколированы.
· Последствия любых изменений могут быть определены еще до их внесения, поскольку в системном каталоге зафиксированы все существующие элементы данных, установленные между ними связи, а также все их пользователи.
· Меры обеспечения безопасности могут быть дополнительно усилены.
· Появляются новые возможности организации поддержки целостности данных.
· Может выполняться аудит сохраняемой информации.
Поддержка транзакций.
СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них. Транзакция представляет собой набор действий, выполняемых отдельным пользователем или прикладной программой с целью доступа или изменения содержимого базы данных. Примерами простых транзакций может служить добавление в базу данных, удаление из нее или обновление сведений о том или ином объекте. Если во время выполнения транзакции произойдет сбой, база данных попадает в противоречивое состояние, поскольку некоторые изменения уже будут внесены, а остальные - еще нет. Поэтому все частичные изменения должны быть отменены для возвращения базы данных в прежнее, непротиворечивое состояние.
Сервисы управления параллельностью.
СУБД должна иметь механизм, который гарантирует корректное обновление базы данных при параллельном выполнении операций обновления многими пользователями. При этом параллельный доступ сравнительно просто организовать, если все пользователи выполняют только чтение данных, поскольку в этом случае они не могут помешать друг другу. Однако, когда несколько пользователей одновременно получают доступ к БД, конфликт с нежелательными последствиями легко может возникнуть, например, если хотя бы один из них попытается обновить данные.
СУБД должна гарантировать, что при одновременном доступе к базе данных многих пользователей подобных конфликтов не произойдет.
Сервисы восстановления.
При обсуждении поддержки транзакций упоминалось, что при сбое транзакции база данных должна быть возвращена в непротиворечивое состояние, что должно гарантироваться возможностями СУБД.
Сервисы контроля доступа к данным.
СУБД должна иметь механизм, гарантирующий возможность доступа к базе данных только санкционированных пользователей. Термин "безопасность" относится к защите базы данных от преднамеренного или случайного несанкционированного доступа. Предполагается, что СУБД обеспечивает механизмы подобной защиты данных.
Поддержка обмена данными.
СУБД должна обладать способностью к интеграции с коммуникационным программным обеспечением с целью организации доступа удаленных пользователей к централизованной БД (в рамках системы распределенной обработки).
Службы поддержки целостности данных.
СУБД должна обладать инструментами контроля за тем, чтобы данные и их изменения соответствовали заданным правилам.
Целостность базы данных означает корректность и непротиворечивость хранимых данных и выражается в виде ограничений или правил сохранения непротиворечивости данных, которые не должны нарушаться в базе.
Службы поддержки независимости от данных.
СУБД должна обладать инструментами поддержки независимости программ от структуры базы данных.
Понятие независимости от данных уже рассматривалось выше. Обычно она достигается за счет реализации механизма поддержки представлений или подсхем. Физическая независимость от данных достигается довольно просто, так как обычно имеется несколько типов допустимых изменений физических характеристик базы данных, которые никак не влияют на представления. Однако добиться полной логической независимости от данных сложнее. Как правило, система легко адаптируется к добавлению нового объекта, атрибута или связи, но не к их удалению. В некоторых системах вообще запрещается вносить любые изменения в уже существующие компоненты логической схемы.
Вспомогательные службы.
СУБД должна предоставлять некоторый набор различных вспомогательных служб. Вспомогательные утилиты обычно предназначены для оказания помощи АБД в эффективном администрировании базы данных. Одни утилиты работают на внешнем уровне, а потому они, в принципе, могут быть созданы самим АБД, тогда как другие функционируют на внутреннем уровне системы и потому должны быть предоставлены самим разработчиком СУБД. Ниже приводятся некоторые примеры подобных утилит.
· Утилиты импортирования, предназначенные для загрузки базы данных из плоских файлов, а также утилиты экспортирования, которые служат для выгрузки базы данных в плоские файлы.
· Средства мониторинга, предназначенные для отслеживания характеристик функционирования и использования базы данных.
· Программы статистического анализа, позволяющие оценить производительность или степень использования базы данных.
· Инструменты реорганизации индексов, предназначенные для перестройки индексов и обработки случаев их переполнения.
· Инструменты сборки мусора и перераспределения памяти для физического устранения удаленных записей с запоминающих устройств, объединения освобожденного пространства и перераспределения памяти в случае необходимости.
В данном разделе рассмотрим различные типовые архитектурные решения, используемые при реализации многопользовательских СУБД, а именно: с телеобработкой, файл-серверными и клиент-серверными системами.
Телеобработка.
Традиционной архитектурой многопользовательских систем раньше считалась схема, получившая название "телеобработки", при которой один компьютер был соединен с несколькими "неинтеллектуальными" терминалами так, как показано на рис. 1. С терминалов посылались сообщения пользовательским приложениям, в свою очередь, приложения обращались к необходимым службам СУБД. Таким же образом сообщения возвращались назад на пользовательский терминал. При такой архитектуре вся нагрузка возлагалась на центральный компьютер, который должен был выполнять не только действия прикладных программ и СУБД, но и значительную работу по обслуживанию терминалов (например, форматирование данных, выводимых на экраны терминалов).
В настоящее время в связи с развитием информационно-вычислительных сетей получили широкое распространение файл-серверные и клиент-серверные СУБД.
Рис 1. Топология архитектуры телеобработки
Файл - серверные системы.
Системы данного типа функционируют в рамках локальных вычислительных сетей (ЛВС), управляемых ОС соответствующего типа. При этом файловый сервер содержит файлы, необходимые для работы приложений и самой СУБД. Однако пользовательские приложения и сама СУБД размещены и функционируют на отдельных рабочих станциях, и обращаются к файловому серверу только по мере необходимости получения доступа к нужным им файлами - как показано на рис. 2. Таким образом, файловый сервер функционирует просто как совместно используемый жесткий диск.
Рис 2. Архитектура с использованием файлового сервера
Очевидно, что архитектура с использованием файлового сервера обладает следующими основными недостатками:
· Большой объем сетевого трафика.
· На каждой рабочей станции должна находиться полная копия СУБД.
· Управление параллельностью, восстановлением и целостностью усложняется, поскольку доступ к одним и тем же файлам могут осуществлять сразу несколько экземпляров СУБД.
Клиент-серверные системы.
При данном подходе предполагается существование клиентского процесса, требующего определенных ресурсов, а также серверного процесса, который эти ресурсы предоставляет. При этом совсем необязательно, чтобы они находились на одном и том же компьютере. На практике системы данного типа реализуются в рамках информационно-вычислительных сетей (не обязательно ЛВС) под управлением клиент-серверных ОС (см. рис. 3).
В контексте базы данных клиентская часть управляет пользовательским интерфейсом и логикой приложения, действуя как интеллектуальная рабочая станция, на которой выполняются приложения баз данных. Клиент принимает от пользователя запрос, проверяет синтаксис и генерирует запрос к базе данных на SQL или другом языке БД, который соответствует логике приложения. Затем он передает сообщение серверу, ожидает поступления ответа и форматирует полученные данные для представления их пользователю. Сервер принимает и обрабатывает запросы к базе данных, а затем передает полученные результаты обратно клиенту. Такая обработка включает проверку полномочий клиента, обеспечение требований целостности, поддержку системного каталога, а также выполнение запроса и обновление данных. Помимо этого, поддерживается управление параллельностью и восстановлением. Выполняемые клиентом и сервером операции приведены ниже.
Рис 3. Общая схема построения систем с архитектурой "клиент/сервер"
Клиент:
· Управляет пользовательским интерфейсом;
· Принимает и проверяет синтаксис введенного пользователем запроса;
· Выполняет приложение;
· Генерирует запрос к базе данных и передает его серверу;
· Отображает полученные данные пользователю.
Сервер:
· Принимает и обрабатывает запросы к базе данных со стороны клиентов;
· Проверяет полномочия пользователей;
· Гарантирует соблюдение ограничений целостности;
· Выполняет запросы/обновления и возвращает результаты клиенту;
· Поддерживает системный каталог;
· Обеспечивает параллельный доступ к базе данных;
· Обеспечивает управление восстановлением.
Этот тип архитектуры обладает приведенными ниже преимуществами.
· Обеспечивается более широкий доступ к существующим базам данных.
· Повышается общая производительность системы. Поскольку клиенты и сервер находятся на разных компьютерах, их процессоры способны выполнять приложения параллельно.
· Стоимость аппаратного обеспечения снижается. Достаточно мощный компьютер с большим устройством хранения нужен только серверу - для хранения и управления базой данных.
· Сокращаются коммуникационные расходы. Приложения выполняют часть операций на клиентских компьютерах и посылают через сеть только запросы к базе данных, что позволяет существенно сократить объем пересылаемых по сети данных.
· Повышается уровень непротиворечивости данных. Сервер может самостоятельно управлять проверкой целостности данных, поскольку все ограничения определяются и проверяются только в одном месте.
· Эта архитектура хорошо согласуется с архитектурой открытых систем.
· Данная архитектура может быть использована для организации средств работы с распределенными базами данных, т.е. с набором нескольких баз данных, логически связанных и распределенных в компьютерной сети.
Необходимо заметить, что в настоящее время данная архитектура рассматривается обычно в трехуровневом варианте, при котором функциональная часть прежнего, толстого (интеллектуального) клиента разделяется на две части. В трехуровневой архитектуре тонкий (неинтеллектуальный) клиент на рабочей станции управляет только пользовательским интерфейсом, тогда как средний уровень обработки данных управляет всей остальной логикой приложения. Третьим уровнем здесь является сepвep базы данных. Эта трехуровневая архитектура оказалась более подходящей для некоторых сред - например, для сетей Internet и intranet, где в качестве клиента может использоваться обычный Web-броузер.
Таким образом, база данных – организованная структура, предназначенная для хранения информации. С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации. Банк данных является разновидностью информационной системы, в которой реализованы функции централизованного хранения и накопления обрабатываемой информации. Главными составляющими банка данных являются база данных и системы управления базами данных.
Основными пользователями баз и банков данных являются специалисты, ведущие различные участки экономической работы. Их состав неоднороден, они различаются по квалификации, степени профессионализма, уровню в системе управления: главный бухгалтер, бухгалтер, операционист, начальник кредитного отдела и т.д. Удовлетворение их информационных потребностей — это решение большого числа проблем в организации внутримашинного информационного обеспечения.
В данной работе рассмотрены функции, которые должна обеспечивать типичная СУБД, а также различные типовые архитектурные решения, используемые при реализации многопользовательских СУБД, а именно: с телеобработкой, файл-серверными и клиент-серверными системами.
1. http://cit.vvsu.ru/portal/cifr/1/lek19.htm
2. http://do.bti.secna.ru/lib/book_it/istor_razv.html
3. http://do.bti.secna.ru/lib/book_it/ogr_file.html
4. http://www.lib.csu.ru/dl/bases/prg/kompress/articles/2000_05_dbms3/
5. Microsoft Access 2000: справочник /под ред. Ю. Колесникова. – СПб.: Питер, 2001.
6. Автоматизированные информационные технологии в экономике /под ред. проф. Г.А. Титоренко. – М.: ЮНИТИ, 2005. – 399с.
7. Информатика для юристов и экономистов /под ред. С.В. Симоновича. – СПб.: Питер, 2005. – 688с.
8. Информатика. Базовый курс. /Симонович С.В. и др. — Спб.: Питер, 2006. — 640 с.
9. Леонтьев В.П. Новейшая энциклопедия персонального компьютера 2005. – М.:ОЛМА-ПРЕСС Образование, 2005. – 800с.
10. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных/ под ред. проф. А.Д. Хомоненко. – СПб.: КОРОНА, 2000. – 416с.
11. Экономическая информатика и вычислительная техника./ Под ред. В.П. Косарева. М.: Финансы и статистика, 2005. –592с.
|