Системы управления базами данных
Вопрос 1. Основные понятия и классификация СУБД.
- Система управления базами данных (СУБД) – совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
- Язык описания данных – высокоуровневый непроцедурный язык декларативного типа, предназначенный для описания логической структуры данных.
- Язык манипулирования данными – совокупность конструкций, обеспечивающих выполнение основных операций по работе с данными: ввод, модификацию и выборку по запросам.
Построение информационной системы с использованием СУБД.
Логическая независимость – возможность изменения приложений.
Физическая независимость – возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности приложений.
СУБД и информационная система (Рис. 1).
Рис. 1. Взаимодействие СУБД и ИС
Классификация СУБД.
По способу доступа к БД:
- Файл-серверные. В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми
нагрузками на БД. На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком. Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro. - Клиент-серверные. Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент- серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.
- Встраиваемые. Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы (API). Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.
По количеству пользователей:
- Персональные.
- Многопользовательские.
По степени распределённости:
- Локальные (все части локальной СУБД размещаются на одном компьютере).
- Распределённые (части СУБД могут размещаться на двух и более компьютерах).
По модели данных:
- Иерархические. Используется представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней. Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами (в программировании применительно к структуре данных дерево устоялось название братья). Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов. Примеры: Caché, Google App Engine Datastore API.
- Сетевые. Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию. Примеры: Caché.
- Реляционные. Практически все разработчики современных приложений, предусматривающих связь с системами баз данных, ориентируются на реляционные СУБД. По оценке Gartner в 2013 году рынок реляционных СУБД составлял 26 млрд долларов с годовым приростом около 9%, а к 2018 году рынок реляционных СУБД достигнет 40 млрд долларов. В настоящее время абсолютными лидерами рынка СУБД являются компании Oracle, IBM и Microsoft, с общей совокупной долей рынка около 90%, поставляя такие системы как Oracle Database, IBM DB2 и Microsoft SQL Server.
- Объектно-ориентированные. Управляют базами данных, в которых данные моделируются в виде объектов, их атрибутов, методов и классов. Этот вид СУБД позволяет работать с объектами баз данных так же, как с объектами в программировании в объектно-ориентированных языках программирования. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.
Классификация СУБД по масштабу приложений.
Критерии:
- ограничения по размеру отдельных объектов и базы в целом;
- производительность;
- возможность параллельной обработки данных;
- распределенное хранение.
Крупные корпоративные системы:
- Oracle, IBM DB2, MS SQL.
Средние системы:
- InterBase, PostgreeSQL.
Малые системы и персональные БД:
- MySQL, MS Access, Paradox, FoxPro.
СУБД на Российском рынке (Рис. 2).
Рис. 2. Распределение СУБД корпоративного класса на рынке РФ
Вопрос 2. Высокоуровневые функции СУБД.
- управление базой данных;
- поддержка языков БД;
- поддержка среды разработки программ;
- пользовательский интерфейс.
Управление базой данных.
- Администрирование.
- Управление пользователями.
- Управление доступом.
- Обслуживание.
- Регламентные работы.
Поддержка языков БД.
- Поддержка языков:
- стандарт SQL;
- расширения SQL.
- Оптимизация запросов.
- Составление плана выполнения запроса.
Поддержка среды разработки программ.
- собственная среда разработки;
- поддержка языков программирования:
- 1С;
- VisualBasic в MS Access;
- Java;
- интеграция с веб-сервером.
Интерфейсы к БД.
- GUI – графический;
- API – программный;
- SQL – языковой.
Интерфейсы пользователей.
- Ввод, редактирование и просмотр базы.
- Экспорт и импорт данных в различные форматы.
- Визуализация результатов (отчеты, формы).
- Конструктор запросов.
- Визуальный.
- SQL (проверка, подсветка синтаксиса, подсказки).
- Средства отладки.
- Построение схемы данных.
Вопрос 3. Низкоуровневые функции СУБД.
- управление данными во внешней памяти;
- управление данными в оперативной памяти (буферизация);
- обеспечение целостности данных;
- обеспечение совместного доступа к данным;
- ведение журналов изменений;
- резервное копирование и восстановление базы данных после сбоев.
Управление данными во внешней памяти:
- обеспечение необходимых структур внешней памяти:
- для хранения данных БД;
- для служебных целей;
- возможности файловой системы;
- система именования объектов БД.
Управление данными в оперативной памяти:
- Объем БД значительно превышает объем оперативной памяти.
- Буферизация:
- средствами ОС;
- собственные средства СУБД.
Обеспечение целостности данных:
- целостность типов;
- целостность сущностей;
- целостность ссылок.
Обеспечение совместного доступа к данным:
- Контроль доступа.
- Поддержка транзакций.
Транзакция – группа последовательных операций,. которая представляет собой логическую единицу работы с данными.
Целостность данных в системах с транзакциями.
ACID:
Atomicity – Атомарность.
Consistency – Согласованность.
Isolation – Изолированность.
Durability – Долговечность.
Ведение журналов изменений.
Журнал – это особая часть БД, недоступная пользователям СУБД, в которую поступают записи обо всех изменениях основной части БД. Средство обеспечения надежности хранения данных (за счет избыточности).
Резервное копирование и восстановление.
- Полное резервное копирование.
- Дифференциальное резервное копирование.
- Резервная копия журнала.
Вопрос 4. Физические модели баз данных.
Физические модели баз данных определяют способы размещения данных в среде хранения и способы доступа к этим данным, которые поддерживаются на физическом уровне.
- Файловые структуры.
- Бесфайловая организация.
Рис. 3. Файловые структуры баз данных
Индексные файлы.
Индексация – позволяет повысить скорость поиска записей.
- Файлы с плотным индексом, или индексно-прямые файлы.
- Файлы с неплотным индексом, или индексно-последовательные файлы.
Рис. 4. Индексно-прямые файлы
Рис. 5. Индексно-последовательные файлы
Рис. 6. В – деревья
Иерархия хранения при бесфайловой организации данных.
- База данных.
- Файл.
- Страница.
- Блоки.
Типы страниц.
- страница данных (Data page);
- индексные страницы (Index page);
- страницы журнала транзакций (Log page);
- текстовые страницы (Text/image page);
- карты распределения блоков (Global allocation map page);
- карты свободного пространства (Page free space page);
- индексные карты размещения (Index allocation map page).
Литература:
- Осипов Д.Л. InterBaseи Delphi. Клиент-серверные базы данных [Электронный ресурс]/ Осипов Д.Л.— Электрон. текстовые данные.— Саратов: Профобразование, 2017.— 536 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».
- Швецов В.И. Базы данных [Электронный ресурс]/ Швецов В.И.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 218 c.
- Карпова Т.С. Базы данных. Модели, разработка, реализация [Электронный ресурс]/ Карпова Т.С.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 403 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».
- Кузнецов С.Д. Введение в реляционные базы данных [Электронный ресурс]/ Кузнецов С.Д.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 247 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».