- •Министерство образования Республики Беларусь уо “Барановичский государственный университет”
- •Понятие и классификация субд.
- •Типы моделей данных. Архитектура субд.
- •Обзор существующих субд
- •1. Понятие и классификация субд.
- •1. Файл-серверные – Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro и др.
- •2. Клиент-серверные – Oracle, Firebird, Interbase, ibm db2, ms sql Server, Sybase, PostgreSql, MySql, mdbs, линтер и др.
- •3. Встраиваемые субд – OpenEdge, sqLite, BerkeleyDb, Microsoft sql Server Compact, Sav Zigzag и др.
- •2.Архитектура субд
- •1 Запросы — вопросы по поводу данных могут генерироваться двумя способами:
- •2. Модификации — это операции по изменению данных. Они также могут выполняться либо с помощью общего интерфейса, либо через интерфейс прикладной программы;
- •3. Модификации схемы — это команды администраторов бд, которые имеют право изменять схему бд или создавать новую бд.
- •3.Краткий обзор существующих субд.
- •2. Другие популярные субд – Paradox, Clarion, db_Vista. Эти системы разработаны для ms dos, однако имеют усовершенствованные версии для Windows.
- •4. Мощные субд с так называемым sql-доступом – Oracle, Microsoft sql Server 2000 и т.Д. Эти субд поддерживают технологию “клиент-сервер”.
- •Основная литература
- •Дополнительная литература
2.Архитектура субд
Данные, метаданные — содержат не только данные, но и информацию о структуре данных (метаданные). В реляционной СУБД метаданные включают в себя системные таблицы (отношения), имена отношений, имена атрибутов этих отношений и типы данных этих атрибутов.
Часто СУБД поддерживает индексы данных. Индекс — это структура данных, которая помогает быстро найти элементы данных при наличии части их значения (например, индекс, который находит кортежи конкретного отношения, имеющие заданное значение одного из атрибутов). Индексы — часть хранимых данных, а описания, указывающие, какие атрибуты имеют индексы — часть метаданных.
Менеджер памяти — получает требуемую информацию из места хранения данных и изменяет в нем информацию по требованию расположенных выше уровней системы.
В простых системах БД менеджером памяти может служить система файлов операционной системы. Однако для повышения эффективности, СУБД обычно осуществляет прямой контроль памяти. Менеджер памяти состоит из двух компонентов:
· Менеджер файлов контролирует расположение файлов на диске и получает блок или блоки, содержащие файлы, по запросу менеджера буфера (диск в общем случае делится на дисковые блоки — смежные области памяти, содержащие от 4000 до 16000 байт).
· Менеджер буфера управляет основной памятью. Он получает блоки данных с диска через менеджер файлов и выбирает страницу основной памяти для хранения конкретного блока. Он может временно сохранять дисковый блок в основной памяти, но возвращает его на диск, когда страница основной памяти нужна для другого блока. Страницы также возвращаются на диск по требованию менеджера транзакций.
Процессор «запроса» — обрабатывает запросы и запрашивает изменения данных или метаданных. Он предлагает лучший способ выполнения необходимой операции и выдает соответствующие команды менеджеру памяти.
Процессор (менеджер) запросов превращает запрос или действие с БД, которые могут быть выполнены на очень высоком уровне (например, в виде запроса SQL), в последовательность запросов на хранимые данные типа отдельных кортежей отношения или частей индекса на отношении. Часто самой трудной частью обработки запроса является его организация, т. е. выбор хорошего плана запроса или последовательности запросов к системе памяти, отвечающей на запрос.
Менеджер транзакций — отвечает за целостность системы и должен обеспечить одновременную обработку многих запросов, отсутствие интерференции запросов (сложение, min, max) и защиту данных в случае выхода системы из строя. Он взаимодействует с менеджером запросов, т. к. должен знать, на какие данные воздействуют текущие запросы (для избежания конфликтных ситуаций), и может отложить некоторые запросы и операции для избежания конфликтов. Менеджер транзакций взаимодействует также с менеджером памяти, т. к. схемы защиты данных обычно включают в себя хранение файла регистрации изменений данных. При правильном порядке выполнения операции файл регистрации будет содержать запись изменений, поэтому можно заново выполнить даже те изменения, которые не достигли диска из-за сбоя в системе.
Типичные СУБД позволяют пользователю сгруппировать несколько запросов и/или изменений в одной транзакции. Транзакция — это группа операций, которые необходимо выполнить последовательно, как одно целое.
Как правило, система БД поддерживает одновременно множество транзакций. Именно правильное выполнение всех таких транзакций и обеспечивает менеджер транзакций. Правильное выполнение транзакций обеспечивается ACID-свойствами (atomicity, consistency, isolation, durability):
· атомарность — выполнение либо всех транзакций, либо ни одной из них (например, изъятие денег из банкомата и внесение соответственного дебета в счет клиента должны быть единственной атомарной транзакцией, не допускается выполнение каждой из этих операций по отдельности);
· непротиворечивость — состояние, при котором данные соответствуют всем возможным ожиданиям (например, условие непротиворечивости для БД авиационных линий состоит в том, что ни одно из мест в самолете не бронируется для двух пассажиров);
· изоляция — при параллельном выполнении двух или более транзакций их результаты должны быть изолированы друг от друга. Одновременное выполнение двух транзакций одновременно не должно привести к результату, которого не было бы, если они выполнялись последовательно (например, при продаже билетов на один и тот же рейс в случае свободного последнего места при одновременном запросе двух агентов, запрос одного должен быть выполнен, другого — нет);
· долговременность — после завершения транзакции результат не должен быть утрачен в случае сбоя системы, даже если этот сбой происходит сразу после завершения транзакции.
Рассмотрим также 3 типа обращения к СУБД:
