Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_MIUS_gotov_2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
441.86 Кб
Скачать

Базы данных

Вопрос 29 Основные функции систем управления базами данных

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

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

Основными функциями системы управления базами данных являются:

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

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

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

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

- поддержка языков БД. Для работы с базами данных используются специальные языки, называемые языками баз данных. В ранних СУБД под­держивалось несколько специализированных по своим функциям языков. Чаще всего использовались два языка: язык определения схемы БД (SDL -Schema Definition Language), который используется для создания логической структуры БД, определяемой пользователем, и язык манипулирования дан­ными (DML - Data Manipulation Language), содержащий набор операторов манипулирования данными, позволяющих заносить данные в БД, удалять, модифицировать или выбирать ранее занесённые данные. В современных БД обычно поддерживается единый интегрированный язык, выполняющий функции как языка SDL, так и языка DML. Стандартным языком наиболее распространённых реляционных СУБД является язык SQL (Structured Query Language). Прежде всего, он сочетает средства SDL и DML, т.е. позволяет оп­ределить схему реляционных данных и манипулировать ими. Кроме того, этот язык содержит специальные средства ограничений целостности БД, т.е. целостность данных контролируется программным способом. Специальные операторы языка SQL позволяют определить так называемые представления БД, фактически являющиеся хранимыми в БД запросами (результатом любо­го запроса к реляционной БД является таблица) с именованными столбцами. Для пользователя представление данных является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить видимость БД для конкретного пользо­вателя. Наконец, авторизация доступа к записям БД производится также на основе набора специальных операторов SQL. Для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномо­чий для работы с таблицей. В число этих полномочий входит также и полно­мочие на передачу всех или части полномочий другим пользователям, вклю­чая и полномочие на передачу полномочий. Полномочия описываются в спе­циальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]