Лекция Введение в базы данных




Скачать 382.46 Kb.
НазваниеЛекция Введение в базы данных
страница1/4
Дата публикации05.03.2013
Размер382.46 Kb.
ТипЛекция
uchebilka.ru > Информатика > Лекция
  1   2   3   4

Лекция 1. Введение в базы данных



Краткая аннотация: Рассматриваются основные понятия информационных систем, баз данных и систем управления базами данных. Определяется место и роль баз данных и систем управления базами данных в информационных системах. Обсуждается состав пользователей и распределение обязанностей в информационных системах с базами данных. Дается обзор моделей баз данных. Приводится краткая история развития технологии баз данных и систем управления базами данных.

Список ключевых терминов. Информация. Данные Информационная система. Предметная область. Файловая система. База данных. Система управления базами данных. Транзакция. Блокировка. Пользователь базы данных. Администратор данных. Администратор баз данных. Разработчик баз данных. Прикладной программист. Конечный пользователь. Иерархическая модель данных. Сетевая модель данных. Реляционная модель данных.

^ Цель лекции. Изучение основных понятий в области информационных систем, баз данных и систем управления базами данных. Определение места и роли баз данных и систем управления базами данных в информационных системах. Обсуждение состава пользователей и распределение обязанностей в информационных системах с базами данных, знакомство с историей развития технологии баз данных и систем управления базами данных.

^ 1.1 Базы данных и системы управления базами данных
Изначально компьютеры были созданы для решения вычислительных задач, однако со временем они все чаще стали использоваться для построения систем обработки документов, а точнее, для обработки содержащейся в них информации. Информация – любые сведения о каком-либо событии, сущности, процессе и т.п., являющиеся объектом операций восприятия, передачи, преобразования, хранения или использования.

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

  • для обеспечения их работы нужны сравнительно низкие вычислительные мощности

  • данные, которые они используют, имеют сложную структуру

  • необходимы средства сохранения данных между последовательными запусками системы

Другими словами, информационная система требует создания в памяти ЭВМ динамически обновляемой модели предметной области: Предметная область – часть реального (или нереального) мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. Предметная область представляется множеством фрагментов, например, предприятие – цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область.

Каждый из объектов обладает определённым набором свойств (атрибутов), среди которых можно выделить существенные и малозначительные. Признание какого-либо свойства существенным носит относительный характер. Для упрощения процедуры формализации предметной области в большинстве случаев прибегают к разбиению всего множества объектов на группы объектов, однородных по структуре и поведению в пределах предметной области, называемых типами объектов. Экземпляры объектов одного типа обладают одинаковыми наборами атрибутов, но должны отличаться значением хотя бы одного атрибута для того, чтобы быть узнаваемыми.

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

Модель предметной области в информационных системах может реализовываться и поддерживаться разными способами. Соответственно, могут использоваться различные технологии и средства для накопления, хранения и обработки данных: бумажная технология и ручные картотеки, технология управления файлами и файловые системы, технология баз данных и системы управления базами данных.

Бумажная обработка и ручные картотеки позволяют успешно справляться с задачами накопления, хранения и обработки информации, если количество хранимых объектов невелико. Они также вполне годятся для работы с большим количеством объектов, которые нужно только хранить и извлекать. Однако они совершенно не подходят для тех случаев, когда нужно установить перекрестные связи или выполнить обработку сведений. Например, в типичном агентстве по сдаче в аренду объектов недвижимости может быть заведен отдельный файл для каждого сдаваемого в аренду или продаваемого объекта, для каждого потенциального покупателя или арендатора, а также для каждого сотрудника компании.

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

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

Все перечисленные выше ограничения файловых систем являются следствием двух факторов.

1) Определение данных содержится внутри приложений, а не хранится отдельно и независимо от них.

2) Помимо приложений не предусмотрено никаких других инструментов доступа к данным и их обработки.

Для повышения эффективности работы информационных систем в качестве средства хранения и обработки данных в настоящее время используется базы данных, или БД (DatabaseDB), и системы управления базами данных, или СУБД (Database Management SystemDBMS).

База данных – это единое, часто достаточно большое хранилище данных, которое однократно определяется, а затем используется одновременно многими пользователями из разных подразделений [14].

Вместо разрозненных файлов с избыточными данными, здесь все данные собраны вместе с минимальной долей избыточности. База данных уже не принадлежит какому-либо единственному отделу, а является общим корпоративным ресурсом.

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

Причем база данных хранит не только рабочие данные этой организации, но и их описания. По этой причине базу данных еще называют набором интегрированных записей с самоописанием. В совокупности, описание данных называется системным каталогом (system catalog), или словарем данных (data dictionary), а сами элементы описания принято называть метаданными (meta-data), т.е. «данными о данных». В современных системах баз данных метаданные содержат также информацию о пользователях, форматы отображения, статистику обращения к данным и др. сведения. Именно наличие самоописания данных в базе данных обеспечивает в ней независимость между программами и данными (program-data independence).

^ База данных – совместно используемый набор логически связанных данных и описание этих данных, предназначенный для удовлетворения информационных потребностей пользователей или организации [23].

Подход, основанный на применении баз данных, где определение данных отделено от приложений, очень похож на подход, используемый при разработке современного программного обеспечения, когда наряду с внутренним определением объекта существует его внешнее определение. Пользователи объекта видят только его внешнее определение и не заботятся о том, как он определяется и как функционирует. Одно из преимуществ такого подхода, а именно абстрагирования данных (data abstraction), заключается в том, что можно изменить внутреннее определение объекта без каких-либо последствий для его пользователей, при условии, что внешнее определение объекта остается неизменным. Аналогичным образом, в подходе с использованием баз данных, структура данных отделена от приложений и хранится в базе данных. Добавление новых структур данных или изменение существующих никак не влияет на приложения, при условии, что они не зависят непосредственно от изменяемых компонентов. Например, добавление нового поля в запись или создание нового файла никак не повлияет на работу имеющихся приложений. Однако удаление поля из используемого приложением файла повлияет на это приложение, а потому его также потребуется соответствующим образом модифицировать.

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

СУБД взаимодействует с прикладными программами пользователя и базой данных и обладает следующими возможностями:

  • управляет хранимыми данными во внешней памяти (на внешних запоминающих устройствах);

  • управляет данными в оперативной памяти в процессе обработки;

  • осуществляет журнализацию изменений и восстановление базы данных после сбоев;

  • позволяет определять базу данных, что обычно осуществляется с помощью языка определения данных (DDLData Definition Language);

  • позволяет вставлять, обновлять, удалять и извлекать информацию из базы данных, что обычно осуществляется с помощью языка управления данными (DMLData Manipulation Language);

  • предоставляет контролируемый доступ к базе данных со стороны пользователей или прикладных программ.

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

^ Управление данными в оперативной памяти. СУБД обычно работают с БД значительного размера; по крайней мере, этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.

Существует отдельное направление СУБД, которое ориентировано на постоянное присутствие в оперативной памяти всей БД. Это направление основывается на предположении, что в будущем объем оперативной памяти компьютеров будет настолько велик, что позволит не беспокоиться о буферизации. Пока эти работы находятся в стадии исследований.

^ Журнализация изменений и восстановление базы данных после сбоев. На основе журнала изменений СУБД позволяет восстановить базу данных до предыдущего непротиворечивого состояния, нарушенного в результате сбоя аппаратного или программного обеспечения;

^ Определение объектов базы данных. Язык DDL предоставляет пользователям средства указания типа данных и их структуры, а также средства задания ограничений для информации, хранимой в базе данных.

^ Манипулирование данными. Наличие централизованного хранилища всех данных и их описаний позволяет использовать язык DML как общий инструмент организации запросов, который иногда называют языком запросов (query language). Наличие языка запросов позволяет устранить присущие файловым системам ограничения, при которых пользователям приходится иметь дело только с фиксированным набором запросов или постоянно возрастающим количеством программ, что порождает другие, более сложные проблемы управления программным обеспечением.

Существует две разновидности языков DML – процедурные (procedural) и непроцедурные (non-procedural) языки, – которые отличаются между собой способом извлечения данных. Основное отличие между ними заключается в том, что процедурные языки обычно обрабатывают информацию в базе данных последовательно, запись за записью, а непроцедурные оперируют сразу целыми наборами записей. Поэтому с помощью процедурных языков DML обычно указывается, как можно получить желаемый результат, тогда как непроцедурные языки DML используются для описания того, что следует получить. Наиболее распространенным типом непроцедурного языка является язык структурированных запросов (Structured Query LanguageSQL), который в настоящее время определяется специальным стандартом и фактически является обязательным языком для любых реляционных СУБД.

Важнейшим свойством СУБД является возможность поддерживать два независимых взгляда на базу данных – «взгляд пользователя», воплощаемый в логическом представлении данных, и его отражения в прикладных программах; и «взгляд системы» – физическое представление данных в памяти ЭВМ. Обеспечение логической независимости данных предоставляет возможность изменения (в определенных пределах) логического представления базы данных без необходимости изменения физических структур хранения данных. Таким образом, изменение логического представления данных в прикладных программах не приводит к изменению структур хранения данных. Обеспечение физической независимости данных предоставляет возможность изменять (в определенных пределах) способы организации базы данных в памяти ЭВМ не вызывая необходимости изменения «логического» представления данных. Таким образом, изменение способов организации базы данных не приводит к изменению прикладных программ.

Развитая СУБД должна также обладать следующими возможностями:

  • поддержка логической и физической целостности данных, обеспечивающей непротиворечивое состояние хранимых данных;

  • системы управления параллельной работой приложений, контролирующей процессы их совместного доступа к базе данных;

  • обеспечение многопользовательской работы с базой данных;

  • обеспечения безопасности, предотвращающей несанкционированный доступ к базе данных со стороны пользователей и приложений;

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

^ Поддержка логической целостности базы данных. Основной целью реализации этой функции является повышение достоверности данных в базе данных. Достоверность данных может быть нарушена при их вводе в БД или при неправомерных действиях процедур обработки данных, получающих и заносящих в БД неправильные данные. Для повышения достоверности данных в системе объявляются так называемые ограничения целостности, которые в определенных случаях «отлавливают» неверные данные. Так, во всех современных СУБД проверяется соответствие вводимых данных их типу, описанному при создании структуры. Система не позволит ввести символ в поле числового типа, не позволит ввести недопустимую дату и т.п. В развитых системах ограничения целостности описывает программист, исходя из содержательного смысла задачи, и их проверка осуществляется при каждом обновлении данных. Более подробно разные аспекты логической целостности базы данных будут рассматриваться в последующих разделах.

^ Поддержка физической целостности базы данных. При работе ЭВМ возможны сбои в работе, повреждение машинных носителей данных. При этом могут быть нарушены связи между данными, что приводит к невозможности дальнейшей работы. Развитые СУБД имеют средства восстановления базы данных. Важнейшим используемым понятием является понятие «транзакции». Транзакция – это единица действий, производимых с базой данных. В состав транзакции может входить несколько операторов изменения базы данных, но либо выполняются все эти операторы, либо не выполняется ни один. СУБД, кроме ведения собственно базы данных, ведет также журнал транзакций.

Необходимость использования транзакций в базах данных проиллюстрируем на упрощенном примере. Предположим, что база данных используется в некотором банке и один из клиентов желает перевести деньги на счет другого клиента банка. В базе данных хранится информация о количестве денег у каждого из клиентов. Необходимо сделать два изменения в базе данных – уменьшить сумму денег на счете одного из клиентов и, соответственно, увеличить сумму денег на другом счете. Конечно, реальный перевод денег в банке представляет собой гораздо более сложный процесс, затрагивающий много объектов данных, а возможно, и много баз данных. Однако суть остается та же – нужно либо совершить все действия (увеличить счет одного клиента и уменьшить счет другого), либо не выполнить ни одно из этих действий. Нельзя уменьшить сумму денег на одном счете, но не увеличить сумму денег на другом. Предположим также, что после выполнения первого из действий – уменьшения суммы денег на счете первого клиента – произошел сбой. Например, могла прерваться связь клиентского компьютера с базой данных или на клиентском компьютере мог произойти системный сбой, что привело к перезагрузке операционной системы. Что в этом случае стало с базой данных? Команда на уменьшение денег на счете первого клиента была выполнена, а вторая команда – на увеличение денег на другом счете – нет, что привело бы к противоречивому, неактуальному состоянию базы данных.

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

В приведенном примере, поскольку оператор фиксации транзакции не был выдан, база данных вернется (откатится) в первоначальное состояние – иными словами, суммы на счетах клиентов останутся те же, что и были до начала транзакции. Администратор базы данных может отслеживать состояние транзакций и в необходимых случаях вручную «откатывать» транзакции. Кроме того, в очевидных случаях СУБД самостоятельно принимает решение об «откате» транзакции.

Транзакции не обязательно могут быть короткими. Бывают транзакции, которые длятся несколько часов или даже несколько дней. Увеличение количества действий в рамках одной транзакции требует увеличения занимаемых системных ресурсов. Поэтому желательно делать транзакции по возможности короткими. В журнал транзакций заносятся все транзакции – и зафиксированные, и завершившиеся «откатом». Ведение журнала транзакций совместно с созданием резервных копий базы данных позволяет достичь высокой надежности базы данных.

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

^ Синхронизация работы нескольких пользователей. Достаточно часто может иметь место ситуация, когда несколько пользователей одновременно выполняют операцию обновления одних и тех же данных. Такие коллизии могут привести к нарушению логической целостности данных, поэтому система должна предусматривать меры, не допускающие обновление данных другим пользователям, пока работающий с этими данными пользователь полностью не закончит с ними работать. Основным понятием в этом случае является понятие «блокировка». Блокировка необходима для того, чтобы запретить различным пользователям возможность одновременно работать с объектами базами данных базой данных, поскольку это может привести к ошибкам.

Для реализации этого запрета СУБД устанавливает блокировку на объекты, которые использует транзакция. Существуют разные типы блокировок – табличные, страничные, строчные и другие, которые отличаются друг от друга количеством заблокированных записей. Чаще других используется строчная блокировка – при обращении транзакции к одной строке блокируется только эта строка, остальные строки остаются доступными для изменения.

Таким образом, процесс внесения изменений в базу данных состоит из следующей последовательности действий: выдается оператор начала транзакции, выдается оператор изменения данных, СУБД анализирует оператор и пытается установить блокировки, необходимые для его выполнения, в случае успешной блокировки оператор выполняется, затем процесс повторяется для следующего оператора транзакции. После успешного выполнения всех операторов внутри транзакции выполняется оператор фиксации транзакции. СУБД фиксирует изменения, сделанные транзакцией, и снимает блокировки. В случае неуспеха выполнения какого-либо из операторов транзакция «откатывается», данные получают прежние значения, блокировки снимаются.

^ Управление полномочиями пользователей на доступ к базе данных. Разные пользователи могут иметь разные полномочия по работе с данными (некоторые данные должны быть недоступны; определенным пользователям не разрешается обновлять данные и т.п.). В СУБД предусматриваются механизмы разграничения полномочий доступа, основанные либо на принципах паролей, либо на описании полномочий.

^ Поддержка деятельности системного персонала. При эксплуатации базы данных может возникать необходимость изменения параметров СУБД, выбора новых методов доступа, изменения (в определенных пределах) структуры хранимых данных, а также выполнения ряда других общесистемных действий. СУБД предоставляет возможность выполнения этих и других действий для поддержки деятельности БД обслуживающему БД системному персоналу, называемому администратором БД

Если информационная система имеет в своем составе базу данных, то подразделения используют собственные приложения для доступа к общей базе данных, организованной с помощью СУБД (рисунок 1.2). Набор приложений каждого подразделения обеспечивает ввод и корректировку данных, а также генерацию необходимых отчетов. Однако, в отличие от варианта с файловой системой, физическая структура и способ хранения данных в этом случае контролируются с помощью СУБД.


Рисунок 1.2 – Схема обработки данных с помощью СУБД
Таким образом, система управления базой данных – важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор. Обычно современная СУБД содержит следующие компоненты:

  • процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных, и создание, как правило, машинно-независимого исполняемого внутреннего кода;

  • подсистему поддержки времени исполнения, которая интерпретирует отдельные запросы и группы запросов манипулирования данными;

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию;

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

На самом деле реальный объем функциональных возможностей, предлагаемых конкретной СУБД, а, следовательно, и набор ее компонент, отличается от продукта к продукту. Например, в СУБД для персонального компьютера может не поддерживаться параллельный совместный доступ, а управление режимом безопасности, поддержанием целостности данных и восстановлением будет присутствовать только в очень ограниченной степени. Однако современные мощные многопользовательские СУБД предлагают все перечисленные выше функциональные возможности и многое другое. На рисунке 1.3 приведена типовая архитектура современной системы управления базами данных.

^ Процессор языка базы данных включает в себя компилятор запросов (query compiler). Подсистема поддержки времени исполнения включает в себя исполняющую машину (execution engine), менеджер транзакций (transaction manager), процессор транзакций (transaction processor). Ядро СУБД включает менеджеры ресурсовменеджер буферов (buffer manager) и менеджер хранения данных (storage manager).

Компилятор запросов транслирует запрос во внутренний формат системы – план запроса (query plan). План запроса описывает последовательность инструкций, подлежащих выполнению. Часто инструкции плана запроса представляют собой реализации операций «реляционной алгебры», которые будут рассмотрены в лекции 4 «Базовые понятия реляционной модели данных». Компилятор запросов, в свою очередь, состоит из трех частей:

  • синтаксического анализатора запросов (query parser), создающего на основе текста запроса древовидную структуру данных;

  • препроцессора запросов (query preprocessor), выполняющего семантический анализ запроса - проверку того, что все отношения и атрибуты, упомянутые в запросе, действительно существуют в БД – и функции преобразования дерева, построенного анализатором, в дерево алгебраических операторов, отвечающих исходному плану запроса;

  • оптимизатора запросов (query optimizer), осуществляющего трансформацию плана запроса в наиболее эффективную последовательность фактических операций над данными.

Компилятор запросов, принимая решение о том, какая из последовательностей операторов с большей вероятностью окажется самой оптимальной по быстродействию, пользуется метаданными и статистической информацией, накопленной СУБД. Например, наличие индекса (index) – специальной структуры данных, обслуживающей процессы доступа к информации отношений посредством хранения определенных значений, которые соответствуют порциям содержимого отношения, – способно существенным образом повлиять на выбор наиболее эффективного плана.

^ Исполняющая машина (execution engine) несет ответственность за осуществление каждой из операций, предусмотренной выбранным планом запроса. В процессе своей работы она взаимодействует с большинством других компонентов СУБД – либо напрямую, либо при посредничестве буферов данных.


Рисунок 1.3 – Типовая структура СУБД
Чтобы получить возможность обрабатывать данные, исполняющая машина считывает их с носителя и переносит в буферы. При этом она взаимодействует с планировщиком заданий, чтобы избежать обращения к блокированным порциям информации, а также с менеджером протоколирования, обеспечивающим гарантии того, что все изменения, внесенные в базу данных, должным образом зафиксированы в протоколе.

Обычно одна или несколько операций над базой данных оформляются в виде транзакции (transaction) – единицы работы, которая должна быть выполнена атомарным образом и изолированно от других транзакций. Часто каждый отдельный запрос или операция по изменению данных является самостоятельной. СУБД обязана удовлетворять требованию устойчивости транзакций, т.е. результат выполнения завершенной транзакции не должен быть утрачен не при каких обстоятельствах. Менеджер транзакций (transaction manager) воспринимает от приложения команды транзакций (transaction command), которые определяют начало и завершение транзакции, а также передают информацию о предпочтениях приложения относительно параметров транзакций. Например, приложение может отказаться от свойства атомарности транзакций. Процессор транзакций (transaction processor) выполняет такие функции, как протоколирование (logging), управление параллельными заданиями (concurrency control), разрешение взаимоблокировок (deadlock resolution). Процессор транзакций включает две основные компонентов:

  • планировщика заданий (scheduler), или менеджера параллельных заданий (concurrency-control manager), ответственного за обеспечение атомарности и изолированности транзакций;

  • менеджера протоколирования и восстановления (logging and recovery manager), гарантирующего выполнение требования устойчивости транзакций.

Обычно информация, хранимая в базе данных, располагается на носителях вторичных устройств хранения, т.е. жестких дисках. Для выполнения операций над данными их необходимо перенести в оперативную память. Задача управления размещением информация на диске и обмена ею между диском и оперативной памятью возлагается на менеджер хранения данных (storage manager). В простой системе управления базами данных роль менеджера хранения может выполнять непосредственно файловая система, обслуживаемая соответственно операционной системой. Часто СУБД самостоятельно управляет размещением данных на диске. В ответ на запрос со стороны менеджера буферов менеджер хранения данных определяет положение файлов на диске и получает набор блоков диска, содержащих требуемый файл или его часть.

^ Менеджер буферов (buffer manager) отвечает за разбиение доступной оперативной памяти на буферы – участки-страницы, куда может быть помещено содержимое дисковых блоков. Все компоненты СУБД, обращающиеся к дисковой информации, взаимодействуют с буферами и менеджеров буферов – либо непосредственно, либо при помощи исполняющей машины.

Данные, требуемые компонентами системы, могут относиться к одной из следующих категорий:

  • собственно данные – содержимое баз данных как таковой;

  • метаданные – описание схемы, или логической структуры, базы данных, введенных ограничений и т.д.;

  • статистика – информация о свойствах данных, таких как размеры различных отношений, о вероятностных распределениях хранящихся значений и т.п., собранная СУБД;

  • индексы – структуры данных, обеспечивающие эффективный доступ к информации в базе данных.

Современные системы управления базами данных представляют собой чрезвычайно сложное программное обеспечение, состоящее из миллионов строк кода и многих томов документации. Таков результат стремления получить программное обеспечение, которое могло бы удовлетворять требованиям все более общего характера. Более того, в настоящее время использование СУБД предполагает почти 100-процентную надежность и готовность даже при сбоях в аппаратном и программном обеспечении. Программное обеспечение СУБД постоянно совершенствуется и должно все больше и больше расширяться, чтобы удовлетворять все новым требованиям пользователей. Например, в некоторых приложениях теперь требуется хранить графику, видео, звук и т.д. Для охвата этой части рынка СУБД должна эволюционировать, причем со временем ей, вероятно, потребуется выполнять какие-то новые функции, а потому функциональная часть СУБД никогда не будет статичной. Более подробно узнать о внутреннем устройстве систем управления базами данных можно в [6].

СУБД обладают как многообещающими потенциальными преимуществами и достоинствами, так и недостатками, которые мы кратко рассмотрим в этом разделе. К преимуществам и достоинствам можно отнести:

  • Контроль избыточности данных;

  • Непротиворечивость данных;

  • Больше полезной информации при том же объеме хранимых данных;

  • Совместное использование данных;

  • Поддержка целостности данных;

  • Повышенная безопасность;

  • Применение стандартов;

  • Повышение эффективности с ростом масштабов системы;

  • Возможность нахождения компромисса при противоречивых требованиях;

  • Повышение доступности данных и их готовности к работе;

  • Улучшение показателей производительности;

  • Упрощение сопровождения системы за счет независимости от данных;

  • Улучшенное управление параллельностью;

  • Развитые службы резервного копирования и восстановления.

Не смотря на неоспоримые достоинства и преимущества перед файловыми системами, СУБД обладают рядом недостатков и ограничений:

  • Сложность организации;

  • Размер занимаемого пространства во внешней и оперативной памяти;

  • Стоимость СУБД;

  • Дополнительные затраты на аппаратное обеспечение;

  • Затраты на преобразование;

  • Производительность;

  • Более серьезные последствия при выходе системы из строя.

Тем не менее, большинство современных информационных систем построено на основе баз данных и систем управления базами данных.


  1   2   3   4

Добавить документ в свой блог или на сайт

Похожие:

Лекция Введение в базы данных iconЛабораторная работа №12
Для создания новой базы данных нужно при открытии ms access выбрать опцию Новая база данных. В появившемся диалоговом окне указать...

Лекция Введение в базы данных iconСоздание базы данных, состоящей из двух таблиц
Проектирование структуры базы данных. Создадим вариант базы данных с двумя таблицами: «Список учеников» и «Группы»

Лекция Введение в базы данных iconЛекция Введение в теорию баз данных Лекция посвящена рассмотрению...
Цель: выявить основные структурные элементы баз данных и основные принципы, используемые при их разработке

Лекция Введение в базы данных iconИспользование списка в качестве базы данных
В microsoft Excel в качестве базы данных можно использовать список. При выполнении обычных операций с данными, например, при поиске,...

Лекция Введение в базы данных iconЛекция 14 Транзакции и восстановление баз данных
Одним из основных средств восстановления базы данных после сбоев является журнал транзакций. Для восстановления данных с помощью...

Лекция Введение в базы данных iconЛекция 1 (2 часа)
Базы данных являются одной из основных составляющих информационных технологий предприятий. В настоящее время без применения баз данных...

Лекция Введение в базы данных iconПрограммный комплекс
Перед установкой обновлений базы данных и программных модулей пк «Организатор» необходимо сохранить копию базы данных

Лекция Введение в базы данных icon6 Засоби структурування, аналізу та обробки даних в ms excel Табличні бази даних
Список может использоваться как база данных, в которой строки выступают в качестве записей, а столбцы являются полями базы данных....

Лекция Введение в базы данных iconПрактическая работа №13 Тема : Проектирование базы данных «Колледж»
Тема: Проектирование базы данных «Колледж». Заполнение базы данными. Создание подчинённых форм

Лекция Введение в базы данных iconСамостоятельная работа Указание
Теоретический материал: перед выполнением лабораторной работы рекомендуется изучить лекцию №7 «Структура баз данных в ms sql server»,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<