Системы управления базами данных
СУБД – совокупность программных и языковых средств общего и специализированного назначения, необходимых для создания БД на машинных носителях, поддержания их в актуальном состоянии и организации доступа к ним различных пользователей в условиях принятой технологии обработки данных. СУБД можно рассматривать как программную оболочку, которая находится между БД и пользователем.
Классификация СУБД
В качестве основных классификационных признаков можно использовать следующие: вид программы, характер использования, модель данных.
К СУБД относятся следующие виды программ:
· полнофункциональные СУБД;
· серверы БД;
· клиенты БД;
· средства разработки программ работы с БД.
Полнофункциональные СУБД (ПФСУБД) представляют собой традиционные СУБД, которые сначала появились для больших машин, затем для мини-машин и для ПЭВМ. Из числа всех СУБД современные ПФСУБД являются наиболее многочисленными и мощными по своим функциональным возможностям. К ПФСУБД относятся, например, такие пакеты, как Clarion Database Developer, DataEase, DataFlex, dBase IV, Microsoft Access, Microsoft FoxPro и Paradox R:BASE.
Обычно ПФСУБД имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуру таблиц, вводить данные, формировать запросы, разрабатывать отчеты и выводить их на печать. Для создания запросов не обязательно программирование, а можно воспользоваться языком QBE (Query By Example – запрос по образцу). Многие ПФСУБД включают средства программирования для профессиональных разработчиков.
Серверы БД предназначены для организации центров обработки данных в сетях ЭВМ. Эта группа ДБ в настоящее время менее многочисленна, но их количество постоянно растет. Серверы БД реализуют функции управления базами данных, запрашиваемые другими (клиентскими) программами обычно с помощью операторов SQL.
Примерами серверов БД являются следующие программы: NetWare SQL (Novell), MS SQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress).
В роли клиентских программ для серверов БД в общем случае могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты и т.д. при этом элементы пары «клиент-сервер» могут принадлежать одному или разным производителям программного обеспечения.
В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным «любой ценой». например, для сервера БД SQL Server (Microsoft) в роли клиентских программ могут выступать многие СУБД, такие как dBase IV, Paradox, Focus, DataEase и другие.
Средства разработки программ работы с БД могут использоваться для создания разновидностей следующих программ:
· клиентских программ;
· серверов ДБ и их отдельных компонентов;
· пользовательских приложений.
Программы первого и второго вида довольного малочисленны, так как предназначены, главным образом, для системных программистов. пакетов третьего вида гораздо больше, но меньше, чем полнофункциональных СУБД.
К средствам разработки пользовательских приложений относятся системы программирования, например Clipper, разнообразные библиотеки программ для различных языков программирования, а также пакеты автоматизации разработок. В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN (Computer Advisers Inc.), Erwin (LogicWorks).
По характеру использования СУБД делят на персональные и многопользовательские.
Персональные СУБД обычно обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними. персональные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиенткой части многопользовательских СУБД. К персональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access.
Многопользовательские СУБД включают в себя сервер БД и клиентскую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБД Oracle и Informix.
По используемой модели данных СУБД (как и БД) разделяют на иерархические, сетевые, реляционные, объектно-ориентированные и другие типы. Некоторые СУБД могут одновременно поддерживать несколько моделей данных.
Функции СУБД
СУБД должна выполнять следующие функции:
1. Организация и поддержание логической структуры данных. Обеспечивается средствами модели организации данных. Известны три основные модели организации данных: иерархическая, сетевая и реляционная. (Модель данных определяется способом организации данных, ограничениями целостности, множеством операций, допустимых над объектами организации данных);
2. Организация и поддержание физической структуры данных во внешней памяти (организация и поддержание внутренней структуры файлов БД, иногда называемой форматом файлов БД, а также создание и поддержание специальных структур (индексы, страницы) для эффективного и упорядоченного доступа к данным. Организация и поддержание физической структуры данных во внешней памяти может производиться как на уровне штатных средств файловых систем, так и на уровне непосредственного управления СУБД устройствами внешней памяти. Организация доступа к данным и их обработка в оперативной и внешней памяти осуществляется через реализацию процессов, получивших название транзакций.
Транзакцией называют последовательную совокупность операций, имеющую отдельное смысловое значение по отношению к текущему состоянию БД.
Транзакция – последовательность операций над БД, рассматриваемых СУБД как единое целое.
Понятие транзакции необходимо для поддержания логической целостности БД. Так, например, транзакция по удалению отдельной записи в БД последовательно включает:
1. определение страницы файла данных, содержащей указанную запись;
2. считывание и пересылку соответствующей страницы в буфер ОЗУ;
3. собственно удаление записи в буфере ОЗУ;
4. проверку ограничений целостности по связям и другим параметрам после удаления;
5. «выталкивание» и фиксацию в файле БД нового состояния соответствующей страницы данных.
Транзакции принято разделять на две разновидности:
1. изменяющие состояние БД после завершения транзакции;
2. изменяющие состояние БД лишь временно, с восстановлением исходного состояния данных после завершения транзакции.
Совокупность функций СУБД по организации и управлению транзакциями называется монитором транзакций. Транзакции в теории и практике СУБД по отношению к БД выступают внешними процессами, отождествляемыми с действиями пользователей. При этом источником, инициатором транзакций может быть как один пользователь, так и несколько пользователей сразу. По этому критерию СУБД классифицируются на однопользовательские (или так называемые «настольные») и многопользовательские («тяжелые», «промышленные») СУБД.
3. Управление буферами оперативной памяти. Непосредственная обработка и доступ в большинстве СУБД осуществляется через организацию в оперативной памяти штатными средствами ОС или собственными средствами системы буферов оперативной памяти, куда на время обработки и доступа помещаются отдельные компоненты файла БД (страницы).
4. Важная функция с точки организации доступа и обработки данных – журнализация всех текущих изменений БД. Журнализация представляет собой основное средство обеспечения сохранности данных при всевозможных сбоях и нарушениях данных. Во многих СУБД для нейтрализации подобных угроз создается журнал изменений БД с особым режимом хранения и размещения. Вместе с установкой режима периодического сохранения резервной копии БД журнал изменений, при сбоях и нарушениях данных позволяет восстановить данные по произведенным изменениям с момента последнего резервирования до момента сбоя.
5. Поддержка языков БД.
Для работы с БД используются специальные языки, в целом называемые языками БД. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка – язык определения схемы БД (SDL- Schema Definition Language) и язык манипулирования данными (DML – Data Manipulation Language). SDL служил для определения логической структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающей базовый пользовательский интерфейс с БД. Стандартным языком в реляционной СУБД является язык SQL (Structured Query Language). Язык SQL сочетает средства SDL и DML, т.е. позволяет определить схему реляционной БД и манипулировать данными.
При этом именование объектов БД (таблиц, их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.
Язык SQL содержит специальные средства определения ограничений целостности БД. Ограничения целостности хранятся в специальных таблицах-каталогах, и обеспечение контроля целостности БД производится на языковом уровне, т.е. при компиляции операторов модификации БД компилятор SQL на основании имеющихся ограничений целостности генерирует соответствующий программный код.
Специальные операторы языка SQL позволяют определить так называемые представления БД, фактически являющиеся хранимыми в БД запросами с именованными столбцами (результатом любого запроса к реляционной БД является таблица). Для пользователя представление является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить видимость БД для конкретного пользователя. Поддержание представлений производится также на языковом уровне.
Авторизация доступа к объектам БД производится также на основе специального набора операторов SQL. Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с этой таблицей. В число этих полномочий входит полномочие на передачу всех или части полномочий другим пользователям, включая полномочия на передачу полномочий. Полномочия пользователей описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.
Дата добавления: 2021-07-22; просмотров: 350;