
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Базы данных
Вопрос 29 Основные функции систем управления базами данных
Первые системы баз данных были разработаны в шестидесятых годах прошлого столетия. Они прошли сложный путь развития и привели к появлению развитой индустрии баз данных, практически затрагивающих каждую более или менее серьёзную организацию в мире. Без развитой системы баз данных невозможно хранить и пользоваться огромными массивами данных, накопленных в любой отрасли хозяйства.
В настоящее время система управления базами данных (СУБД) составляет основу большинства компьютерных информационных систем. Обычно объёмы информации, с которыми приходится работать в информационных системах, достаточно велики, а сама информация имеет довольно сложную структуру. Информационная система представляет собой программный комплекс, функции которого состоят в надёжном хранении информации в компьютерах, выполнении специфических её преобразований и предоставлении пользователю удобного и легко осваиваемого интерфейса. Попытки использования традиционных файловых систем при создании информационных систем .вызывают порой непреодолимые затруднения, связанные с поддержанием логически согласованного набора файлов, параллельной работой нескольких пользователей, восстановлением информации после разного рода сбоев и пр. СУБД устранили многие недостатки традиционных файловых систем, такие как несвязанность, несогласованность и избыточность данных.
Основными функциями системы управления базами данных являются:
- непосредственное управление данными во внешней памяти, предусматривающее такую структуру внешней памяти, которая позволяет хранить не только данные, непосредственно входящие в базу данных, но и данные для служебных целей, например, для убыстрения доступа к данным. Для этих целей СУБД обычно поддерживает собственную систему именования объектов баз данных (БД);
-управление буферами оперативной памяти. СУБД обычно работает с базами данных значительных размеров, превышающих допустимый объём оперативной памяти. Если при обращении к элементу БД потребуется всякий раз обращаться к внешней памяти, вся система базы данных будет работать со скоростью работы внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. Следует отметить, что некоторые операционные системы предусматривают общесистемную буферизацию (например, ОС UNIX), но для целей СУБД этого оказывается недостаточно. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов;
- управление транзакциями. Транзакция - это последовательность операций над базами данных, рассматриваемых СУБД как единое целое. Если транзакция выполнена полностью, СУБД фиксирует изменение данных во внешней памяти. Например, в институте создана единая база данных студентов, и студентка вышла замуж и поменяла фамилию. Изменение фамилии необходимо зафиксировать не только в отделе кадров, но и в каждой ведомости ранее сданных экзаменов (в электронных версиях этих ведомостей), в списках студентов на каждой кафедре, в общежитии и даже в студенческой поликлинике. База данных будет считаться целостной, если изменения фамилии будет без ошибок занесено во все списки. Если по каким либо причинам выполнение транзакции не может быть завершено, произведённые изменения данных не отражаются во внешней памяти. Понятие транзакции необходимо для поддержания целостности базы данных. Каждая транзакция начинается при целостном состоянии БД, после её завершения база данных остаётся целостной. С управлением транзакциями в многопользовательских СУБД связаны важные понятия сериализации транзакций и сериального плана выполнения смеси транзакций. Под сериализацией параллельно выполняющихся транзакций понимается такой порядок планирования их работы, при котором суммарный эффект смеси транзакций эквивалентен эффекту их последовательного выполнения. Сериальный план выполнения смеси транзакций -это такой план, который приводит к сериализации транзакций. Понятно, что если удастся добиться действительно сериального выполнения смеси транзакций, то для каждого пользователя присутствие других пользователей будет незаметно (если не считать некоторого замедления работы по сравнению с однопользовательским режимом);
- журнал изация. Одним из основных требований к СУБД является надёжность хранения данных во внешней памяти, под которой понимается возможность восстановления последнего согласованного состояния БД после любого программного или аппаратного сбоя. При этом рассматриваются два вида сбоев: мягкие сбои (например, внезапная остановка компьютера) и жёсткие сбои, характеризуемые потерей информации на носителях внешней памяти. При мягком сбое требуется ликвидировать последствия только одной транзакции, которая не была закончена в момент сбоя. При жёстком сбое приходится восстанавливать все транзакции, которые были закончены до наступления сбоя. Очевидно, в любом случае для восстановления БД нужно располагать некоторой дополнительной информацией, при чём эта избыточная часть информации должна храниться особо надёжно. Наиболее распространённым методом поддержания такой избыточной информации является ведение журнала изменений БД (чаще всего ведётся два журнала, расположенных на разных физических дисках). При этом осуществляется "упреждающая" запись в журнал (в журнал, находящийся во внешней памяти, записывается информация раньше, чем изменённая запись попадёт во внешнюю память БД). При мягком сбое во внешней памяти могут находиться записи, модифицированные транзакциями, но не закончившимися в момент сбоя, и могут отсутствовать записи, модифицированные закончившимися транзакциями, но не попавшими во внешнюю память (остались в оперативной памяти). Процесс восстановления заключается в том, что сначала осуществляется откат незавершенных транзакций, а потом повторно воспроизводят все закончившиеся, но не попавшие во внешнюю память транзакции. Для восстановления последствий жёсткого сбоя необходимо иметь архивную копию БД, находящуюся на другом физическом диске. Восстановление БД после жёсткого сбоя состоит в том, что по архивной копии журнала воспроизводится работа всех транзакций, которые были завершены до начала сбоя;
- поддержка языков БД. Для работы с базами данных используются специальные языки, называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего использовались два языка: язык определения схемы БД (SDL -Schema Definition Language), который используется для создания логической структуры БД, определяемой пользователем, и язык манипулирования данными (DML - Data Manipulation Language), содержащий набор операторов манипулирования данными, позволяющих заносить данные в БД, удалять, модифицировать или выбирать ранее занесённые данные. В современных БД обычно поддерживается единый интегрированный язык, выполняющий функции как языка SDL, так и языка DML. Стандартным языком наиболее распространённых реляционных СУБД является язык SQL (Structured Query Language). Прежде всего, он сочетает средства SDL и DML, т.е. позволяет определить схему реляционных данных и манипулировать ими. Кроме того, этот язык содержит специальные средства ограничений целостности БД, т.е. целостность данных контролируется программным способом. Специальные операторы языка SQL позволяют определить так называемые представления БД, фактически являющиеся хранимыми в БД запросами (результатом любого запроса к реляционной БД является таблица) с именованными столбцами. Для пользователя представление данных является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить видимость БД для конкретного пользователя. Наконец, авторизация доступа к записям БД производится также на основе набора специальных операторов SQL. Для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с таблицей. В число этих полномочий входит также и полномочие на передачу всех или части полномочий другим пользователям, включая и полномочие на передачу полномочий. Полномочия описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.