WebRazrab

WebRazrab

Ваш помощник в обучении

Array

leafleafleafDocy banner shape 01Docy banner shape 02

Системы управления базами данных​

Вопрос 1. Основные понятия и классификация СУБД.

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

Построение информационной системы с использованием СУБД.

Логическая независимость – возможность изменения приложений.
Физическая независимость – возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности приложений.

СУБД и информационная система (Рис. 1).

Рис. 1. Взаимодействие СУБД и ИС

Классификация СУБД.

По способу доступа к БД:

  1. Файл-серверные. В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми
    нагрузками на БД. На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком. Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.
  2. Клиент-серверные. Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент- серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.
  3. Встраиваемые. Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы (API). Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.

По количеству пользователей:

  • Персональные.
  • Многопользовательские.

По степени распределённости:

  • Локальные (все части локальной СУБД размещаются на одном компьютере).
  • Распределённые (части СУБД могут размещаться на двух и более компьютерах).

По модели данных:

  1. Иерархические. Используется представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней. Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами (в программировании применительно к структуре данных дерево устоялось название братья). Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов. Примеры: Caché, Google App Engine Datastore API.
  2. Сетевые. Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются  указатели в обоих направлениях, которые соединяют родственную информацию. Примеры: Caché.
  3. Реляционные. Практически все разработчики современных приложений, предусматривающих связь с системами баз данных, ориентируются на реляционные СУБД. По оценке Gartner в 2013 году рынок реляционных СУБД составлял 26 млрд долларов с годовым приростом около 9%, а к 2018 году рынок реляционных СУБД достигнет 40 млрд долларов. В настоящее время абсолютными лидерами рынка СУБД являются компании Oracle, IBM и Microsoft, с общей совокупной долей рынка около 90%, поставляя такие системы как Oracle Database, IBM DB2 и Microsoft SQL Server.
  4. Объектно-ориентированные. Управляют базами данных, в которых данные моделируются в виде объектов, их атрибутов, методов и классов. Этот вид СУБД позволяет работать с объектами баз данных так же, как с объектами в программировании в объектно-ориентированных языках программирования. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.

Классификация СУБД по масштабу приложений.

Критерии:

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

Крупные корпоративные системы:

  • Oracle, IBM DB2, MS SQL.

Средние системы:

  • InterBase, PostgreeSQL.

Малые системы и персональные БД:

  • MySQL, MS Access, Paradox, FoxPro.

СУБД на Российском рынке (Рис. 2).

Рис. 2. Распределение СУБД корпоративного класса на рынке РФ

Вопрос 2. Высокоуровневые функции СУБД.

  1. управление базой данных;
  2. поддержка языков БД;
  3. поддержка среды разработки программ;
  4. пользовательский интерфейс.

Управление базой данных.

  • Администрирование.
  • Управление пользователями.
  • Управление доступом.
  • Обслуживание.
  • Регламентные работы.

Поддержка языков БД.

  • Поддержка языков:
    • стандарт SQL;
    • расширения SQL.
  • Оптимизация запросов.
  • Составление плана выполнения запроса.

Поддержка среды разработки программ.

  • собственная среда разработки;
  • поддержка языков программирования:
    • 1С;
    • VisualBasic в MS Access;
    • Java;
  • интеграция с веб-сервером.

Интерфейсы к БД.

  • GUI – графический;
  • API – программный;
  • SQL – языковой.

Интерфейсы пользователей.

  • Ввод, редактирование и просмотр базы.
  • Экспорт и импорт данных в различные форматы.
  • Визуализация результатов (отчеты, формы).
  • Конструктор запросов.
    • Визуальный.
    • SQL (проверка, подсветка синтаксиса, подсказки).
  • Средства отладки.
  • Построение схемы данных.

Вопрос 3. Низкоуровневые функции СУБД.

  1. управление данными во внешней памяти;
  2. управление данными в оперативной памяти (буферизация);
  3. обеспечение целостности данных;
  4. обеспечение совместного доступа к данным;
  5. ведение журналов изменений;
  6. резервное копирование и восстановление базы данных после сбоев.

Управление данными во внешней памяти:

  • обеспечение необходимых структур внешней памяти:
    • для хранения данных БД;
    • для служебных целей;
  • возможности файловой системы;
  • система именования объектов БД.

Управление данными в оперативной памяти:

  • Объем БД значительно превышает объем оперативной памяти.
  • Буферизация:
    • средствами ОС;
    • собственные средства СУБД.

Обеспечение целостности данных:

  • целостность типов;
  • целостность сущностей;
  • целостность ссылок.

Обеспечение совместного доступа к данным:

  • Контроль доступа.
  • Поддержка транзакций.

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

Целостность данных в системах с транзакциями.

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).

Литература:

  1. Осипов Д.Л. InterBaseи Delphi. Клиент-серверные базы данных [Электронный ресурс]/ Осипов Д.Л.— Электрон. текстовые данные.— Саратов: Профобразование, 2017.— 536 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».
  2. Швецов В.И. Базы данных [Электронный ресурс]/ Швецов В.И.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 218 c.
  3. Карпова Т.С. Базы данных. Модели, разработка, реализация [Электронный ресурс]/ Карпова Т.С.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 403 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».
  4. Кузнецов С.Д. Введение в реляционные базы данных [Электронный ресурс]/ Кузнецов С.Д.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 247 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».