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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Функции СУБД.

План:

  1. управление данными во внешней памяти
  2. управление БД
  3. потребительские качества СУБД.

История.

70–первая половина 80-х – распространение иерархических и сетевых СУБД на ЕС ЭВМ.

Конец 80-х – начало 90-х – широкое распространение псевдо-реляционных СУБД на ПЭВМ, развитие локальных вычислительных сетей.

Середина 90-х – распространение реляционно полных серверов на рабочих станциях SUN, DEC, ПЭВМ. Развитие корпоративных вычислительных сетей, технологии «клиент-сервер».

Конец 90-х – внедрение ОО подхода в технологию БД, появление ОР СУБД и ОО СУБД.

Начало 2000-х – соединение баз данных с Интернет-технологиями, распространение корпоративных порталов, организация хранения XML-документов.

За исключением первого этапа, актуальны все направления.

Основные функции СУБД:

  • Управление данными во внешней памяти, организация метода доступа к дисковому пространству.
  • Управление базой данных с поддержанием её целостности (сохранности и актуальности в любой момент времени). Это санкционирование доступа, копирование восстановления, управление параллелизмом.
  • Поддержание языков работы с БД: язык описания данных, язык манипулирования, описание ограничений целостности. Базовым языком является SQL.
  • Администрирование БД – набор утилит администратора БД.
  • Автоматизированная разработка приложений – CASE-средства, которые ориентированы на проектирование БД, генерацию форм и отчетов, конструктор запросов, средства информационной поддержки принятия решений.

Управление данными во внешней памяти (физическая модель БД).

С точки зрения ОС БД представляет собой один или несколько файлов. Форматирован на блоки (за один шаг доступа к диску считывается один блок памяти, который называется страницей (2, 4, 8, 16, 32 Кб)), объем страницы определяется в конфигурации сервера, страницы объединяются в экстенты – целое число страниц. Таким образом, физическая модель БД определяется понятиями «файл, экстент, страница» (существует и логический уровень для больших серверов БД). Например, для MS SQL Server существует CREATE DATABASE sample ON PRIMARY (NAME = Sample_data, FILENAME = ‘C:\mssql7\data\sample.mdf, SIZE = 10 MB, MAXSIZE = 15 MB, FILE GROWTH = 20 %) LOG ON (NAME = Sample_log, FILENAME = ‘C:\mssql7\data\Sample.ldf, SIZE = 3 MB, MAXSIZE = 5 MB, FILEGROWTH = 1 MB).

Действие, выполняемое при сохранении или извлечении записи и файла, называется методом доступа. Различают 3 метода: последовательный, прямой и индексный. При последовательном доступе страницы в ОЗУ выбираются одна за другой последовательно от начала файла. На одной странице может быть расположено несколько логических записей базы, при этом поиск нужной записи идет последовательно. Одновременно в ОЗУ может находиться несколько страниц, с которыми работают информационные системы. Процесс обработки информации в буфере ОЗУ с периодическим сбрасыванием изменений на диск называется кэшированием. Настройку объема кэш-памяти задает администратор.

В основе прямого метода лежит прямое обращение к конкретной странице, при этом по ключу искомой записи строго определяется номер страницы. Если в конкретном приложении отсутствуют ключи, соответствующие определенным номерам страниц, то место все равно выделяется. Но в реальной практике сложно установить однозначное соответствие между ключом и номером страницы. Существуют методы алгоритмического определения номера страницы по ключу. Это методы хеширования, то есть задается хеш-функция, которая по ключу определяет номер страницы (в случае коллизии предусмотрена область переполнения). Прямой метод доступа в серверах является основой выборки информации, но для преобразования ключа в адрес страницы в настоящее время применяются индексы. Индексный метод доступа основан на создании специальных наборов, посредством которых устанавливается соответствие между ключом и номером страницы. Индексы хранятся в файле базы данных вместе с таблицами и состоят из двух полей: упорядоченный ключ поиска и номер страницы. Индексы автоматом создаются по всем первичным, альтернативным и вторичным ключам. Поиск осуществляется методом половинного деления. Кроме того, создаются бинарные деревья, при этом поиск по индексу осуществляется с помощью указателей. Индекс компактный, весь помещается в ОЗУ, поиск по нему идет очень быстро, в случае больших индексов поддерживаются деревья из индексов. Поиск включает 3 этапа:

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

Индексы по указанию проектировщика могут быть созданы по любому полю или группе полей (CREATE INDEX).

СУБД поддерживают уникальные физические модели баз данных. Рассмотрим 3 уникальные модели:

  1. MS SQL Server –поддерживает файлы БД с расширением mdf. Отдельно поддерживается журнал транзакций (ldf). Данные хранятся в страницах (8 Кб). По умолчанию размер журнала составляет 25% от размера БД.
  2. InterBase – поддерживает fdb-файлы. Этот файл включает и таблицы, и страницы учета транзакций. Примечание: в файле базы данных хранятся страницы таблиц, индексов, триггеров, присоединенных процедур, ограничений целостности. Кроме того, в отдельном страничном пространстве хранится системный каталог (системные метаданные СУБД – совокупность таблиц, в которой хранится вся структура БД).
  3. кроссплатформенные сервера БД поддерживают большие базы, имеют развитую структуру базы и включают логический уровень. Рассмотрим систему Informix: chank – непрерывная область дисковой памяти, которая отводится серверу для создания БД, это неструктурированный файл UNIX (Linux), она может состоят из нескольких серверов, расположенных на нескольких территориях; page – страница; extent – совокупность страниц; Db space – логическая единица памяти, объединяющая несколько областей памяти; Database – база данных; Table space – совокупность логически объединенных таблиц.

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

  1. защита базы данных. БД представляет собой важный корпоративный ресурс, который должен быть надлежащим образом защищен. Защита БД – это обеспечение её охраны против любых предумышленных и непредумышленных угроз с помощью компьютерных и некомпьютерных средств. Угрозы: похищение и фальсификация данных, утрата конфиденциальности, нарушение неприкосновенности данных, утрата целостности и потеря доступности. Перечислим основные мероприятия, связанные с защитой БД: авторизация пользователей – предоставление прав (привилегий), позволяющих владельцу иметь законный доступ к БД, каждому пользователю системный администратор присваивает уникальный идентификатор и связанный с ним пароль, при чем есть идентификатор и пароль для входа в ОС, а также для входа в конкретную автоматизированную систему. Они могут совпадать. Последний пароль выдает администратор информационной системы. Привилегии на доступ к отдельным объектам БД задаются на языке SQL посредством 2 команд: REVOKE, GRANT. Представление – это виртуальный запрос к БД, позволяющий обеспечить доступ к определенной совокупности таблиц или их фрагментов конкретных пользователей. Резервное копирование и восстановление – получение копий БД. Кроме того, в промежутках между копиями поддерживается логический журнал, содержащего сведения обо всех изменениях с момента её копирования. Шифрование – кодирование данных с использованием специальных алгоритмов, в результате чего база недоступна для чтения любой программой, которая не имеет код дешифрования.
  2. обработка запросов. За оптимальное выполнение запросов отвечает оптимизатор запросов. Он выбирает из нескольких вариантов план выполнения запроса, в котором в виде дерева определены порядок перебора индексов и тип соединения таблиц на каждом шаге выполнения запроса.

 

Оптимизатор запросов логически выводит код программы, оптимизируя его: относительная стоимость запросов оценивается из предполагаемого количества операций с дисками и операций сравнения в памяти. Используется системный каталог, в котором хранится информация о структуре БД, а также статистика базы (количество кортежей, количество блоков памяти, количество уникальных значений атрибутов, число уровней индексов). Для примера рассмотрим варианты выполнения запроса на выборку сведений по деталям, сделанным из стали, весом больше 10 единиц:

SELECT *

FROM DETAIL d, MATERIAL m

WHERE (d.MATERIAL_CODE = m.MATERIAL_CODE) AND (d.DETAIL_WEIGHT>10 AND m.MATERIAL_NAME = ‘Сталь’). Имеют место 3 варианта выполнения:

  1. чтение исходных отношений, декартово произведение, вывод на диск результирующего отношения, считывание его и выборка результата: (4+4)+2*(4*4) = 40 операций.
  2. соединение отношений по полю MATERIAL_CODE, запись результирующего отношения и его считывание для выборки результата: 2*4+(4+4) = 16 операций.
  3. обработка раздельно таблиц в соответствии с заданными условиями (первая таблица содержит 2 записи, вторая – одну), соединение укороченных таблиц (при этом выполняется сначала запись, потом считывание): 4+4+2+1+2+1 = 14 операций.

Чтобы принять решение оптимизатор по системному каталогу оценивает объем таблиц, участвующих в запросе.

В современных информационных системах поддерживается еще один уровень метаданных, который позволяет переформулировать запрос в терминах концептуальной модели предметной области в SQL. Преобразование SQL в код программы для доступа к серверу осуществляет СУБД, а переформулирование запроса SQL в концептуальную модель посредством метаданных выполняет информационная система.

  1. Управление транзакциями. Транзакция – действие или серия действий, выполняемых пользователем или программой, которые осуществляют доступ к БД или изменяют её содержание. Это логическая единица работы с БД, которое переводит из одного согласованного состояния в другое. Сервер сам управляет транзакциями, в случае успешного завершения результаты фиксируются в БД (обработка идет в кэш-памяти). Если произошел сбой, то осуществляется откат. Принцип работы с транзакциями – «или всё, или ничего». Если пользователю необходимо оформить логическую порцию действий работы с базой, то он сам должен оформить транзакции. Для выполнения транзакции СУБД поддерживает логический журнал транзакций. Сервер поддерживает фиксацию контрольной точки – это момент синхронизации между состоянием кэш-памяти и физического диска. Контрольные точки выполняются через заданные моменты времени и включают выполнение следующих действий: запись на диск; запись всех модифицированных блоков; помещение в логический журнал контрольной точки (идентификаторы всех транзакций, которые были активны в момент создания контрольной точки). На основе логического журнала выполняется откат (ROLLBACK) базы в исходное состояние.
  2. управление параллельностью – это процесс одновременного выполнения в БД различных операций, гарантирующий исключение их взаимного влияния, это реализуется посредством блокировки, когда некоторая транзакция получает доступ к данным механизм блокировки позволяет отклонить попытки доступа к ним другими транзакциями. По умолчанию осуществляется полная блокировка, и открыт режим только для чтения. Но сервера поддерживают режим манипулирования уровнем изоляции транзакций.

Потребительские качества СУБД.

Сервер БД ориентирован на удовлетворение информационных потребностей и работает в многозадачном, многопользовательском режиме. Рассмотрим несколько аспектов работоспособности сервера в таком режиме:

· Масштабируемость – свойство ВС, обеспечивающее предсказуемый рост характеристик при возникновении потребностей без отключения работы сервера. Сервер поддерживает конфигурационный файл, посредством которого без остановок можно наладить объем используемой ОП, число занятых процессоров, количество параллельных потоков, выполняющихся на одном процессоре, объем внешней дисковой памяти.

· Производительность – достигается поддержкой параллелизма и организация многопоточной архитектуры. Любой запрос делится на атомарные операции, которые выполняются параллельно, и каждый из которых начинает работу не дожидаясь окончания предыдущей (например, считывание записи с диска, выборка по фильтру нужной записи, запись на диск результатов выборки). Этим процессом можно управлять, увеличивая размер буферного пула. При этом большое количество параллельных операций может выполняться в памяти.

· Возможность смешанной загрузки разными типами задач – информационные системы решают 3 типа задач: оперативная обработка транзакций – это задачи оперативной обработки данных (расчет зарплаты, кадровый учет); DSS (Decision Support System) – задачи, связанные со стратегическим менеджментом; пакетная обработка. Работа сервера в разных режимах имеет особенности. Работа сервера OLTP можно охарактеризовать следующим образом: часто используются короткие транзакции, которые не использует одинаковые данные, запрос затрагивает небольшое число строк таблицы, используется несколько таблиц большого размера. Пример: получить информацию о регистрационных сведениях поставщика, внести в справочник новую деталь. Требования к серверу: небольшой объем кэш-памяти, простой оптимизатор, с точки зрения приложений исключить конкуренцию запросов. Работа сервера DSS: объем таблиц неограничен, часто требуется просмотр всех строк таблицы, число таблиц, участвующих в транзакции, может быть очень велико, транзакция работает только на чтение, высока вероятность разделения ресурсов между разными задачами. Для такого сервера нужен мощный оптимизатор, эффективная методика сканирования и соединения таблиц, разный механизм параллельного доступа. Сервер пакетной обработки: обрабатывает большие и сверхбольшие таблицы, преобладает значительная продолжительность транзакций, часто используется просмотр и/или модификация всех строк таблицы, преобладает запуск очень небольшого числа задач с высокой загрузкой процессора при заполнении ОП. Перечисленные особенности надо учитывать при определении конфигурации ВС.

· Постоянная доступность данных, включая зеркалирование и тиражирование (репликация). Зеркалирование БД осуществляется на другом сервере, в случае аппаратного сбоя работа автоматически переходит на зеркало. Тиражирование поддерживается удаленно, это по сути копирование базы для дистанционного доступа к информации. Если обновление сервера незначительное, то можно поддерживать репликацию, то есть в определенное время во всех филиалах будут доступны все обновления.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 381; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.114.94 (0.01 с.)