Функция управления данными во внешней памяти заключается

Обновлено: 07.07.2024

Основные функции СУБД- управление данными во внешней памяти на дисках; управление данными в операт

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

· управление данными во внешней памяти (на дисках);

· управление данными в оперативной памяти с использованием дискового кэша;

· журнализация изменений, резервное копирование и восстановление базы данных после сбоев;

· поддержка языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты:

· ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

· процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,

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

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

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

По типу управляемой базы данных СУБД разделяются на:

Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами.

· Сетевые . К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Сетевые базы данных подобны иерархическим , за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию.

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

Объектно-реляционные реляционная СУБД ( РСУБД ), поддерживающая некоторые технологии, реализующие объектно-ориентированный подход .

Объектно-ориентированные Эта система управления обрабатывает данные как абстрактные объекты , наделённые свойствами , в виде неструктурированных данных, и использующие методы взаимодействия с другими объектами окружающего мира.

По архитектуре организации хранения данных

· локальные СУБД (все части локальной СУБД размещаются на одном компьютере)

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

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

вопрос №17.Основные понятия Баз данных

Развития вычислительной техники осуществлялось по двум основным направлениям:

 применение вычислительной техники для выполнения численных расчетов;

 использование средств вычислительной техники в информационных системах.

Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами.

Основные понятия реляционных БД: нормализация, связи и ключи

1. Принципы нормализации :

 В каждой таблице БД не должно быть повторяющихся полей;

 В каждой таблице должен быть уникальный идентификатор (первичный ключ);

 Каждому значению первичного ключа должна соответствовать достаточная информация о типе сущности или об объекте таблицы (например, информация об успеваемости, о группе или студентах);

 Изменение значений в полях таблицы не должно влиять на информацию в других полях (кроме изменений в полях ключа).

II . Сетевые . К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Сетевые базы данных подобны иерархическим , за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию.

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

III . Объектно-реляционные реляционная СУБД ( РСУБД ), поддерживающая некоторые технологии, реализующие объектно-ориентированный подход .

IIII . Объектно-ориентированные Эта система управления обрабатывает данные как абстрактные объекты , наделённые свойствами , в виде неструктурированных данных, и использующие методы взаимодействия с другими объектами окружающего мира.

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

Вопрос. 18 Создание БД. Этапы проектирования

Создание БД начинается с проектирования.
Этапы проектирования БД:

 Исследование предметной области;

 Анализ данных (сущностей и их атрибутов);

 Определение отношений между сущностями и определение первичных и вторичных (внешних) ключей.

В процессе проектирования определяется структура реляционной БД (состав таблиц, их структура и логические связи). Структура таблицы определяется составом столбцов, типом данных и размерами столбцов, ключами таблицы.

вопрос №19.Современное субд.

Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать возможности персональной ЭВМ, нежели среда DOS.

Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер».

Принципы организации данных, лежащие в основе современных СУБД

Современные СУБД являются объектно-ориентированными и реляционными. Основной единицей является объект, имеющий свойства, и связи между объектами. СУБД используют несколько моделей данных: иерархическую и сетевую (с 60-х годов) и реляционную (с 70-х). Основное различие данных моделей в представлении взаимосвязей между объектами.

Иерархическая модель данных строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие - подчиненными. Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные - порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым. Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора). Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных. Объект (Сущность) - элемент какой-либо системы, информация о котором сохраняется. Объект может быть как реальным (например, человек), так и абстрактным (например, событие - поступление человека в стационар).

Атрибут - информационное отображение свойств объекта. Каждый объект характеризуется набором атрибутов.

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

Напротив, альтернативный ключ - атрибут (или группа атрибутов), не совпадающая с позволяющий первичным ключом и однозначным образом определяющий каждую строку в таблице.

Современные технологии, используемые в работе с данными

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

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

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

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

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

В целом, за последние 40 лет в области управления данными была выполнена громадная исследовательская работа, результаты которой можно успешно применять как для развития универсальных СУБД, так и для разработки специализированных систем. К настоящему моменту индустрия СУБД добилась значительного прогресса в технологиях обработки и хранения данных. Современные технологии позволяют работать с базами данных петабайтного размера, при этом выполнять обработку анализ данных в реальном времени. Очевидно, что подобные возможности найдут достойное применение во всех отраслях мировой экономики.

Диплом на заказ

Узнать стоимость написания работы -->

Более точно, к числу функций СУБД принято относить следующие:

1. Непосредственное управление данными во внешней памяти

Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для ускорения доступа к данным в некоторых случаях (обычно для этого используются индексы). В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти . Но подчеркнем, что в развитых СУБД пользователи в любом случае не обязаны знать, использует ли СУБД файловую систему, и если использует, то как организованы файлы. В частности, СУБД поддерживает собственную систему именования объектов БД .

2. Управление буферами оперативной памяти

СУБД обычно работают с БД значительного размера; по крайней мере, этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти . Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX ), этого недостаточно для целей СУБД , которая располагает гораздо большей информацией о полезности буферизации той или иной части БД . Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.

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

3. Управление транзакциями

Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое.

Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД , произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД .

Понятие транзакции необходимо для поддержания логической целостности БД . Приведем пример информационной системы с файлами СОТРУДНИКИ и ОТДЕЛЫ, единственным способом не нарушить целостность БД при выполнении операции приема на работу нового сотрудника является объединение элементарных операций над файлами СОТРУДНИКИ и ОТДЕЛЫ в одну транзакцию. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД ). Но понятие транзакции гораздо более важно в многопользовательских СУБД .

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

4. Журнализация

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

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

Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД ), иногда - минимальной внутренней операции модификации страницы внешней памяти; в некоторых системах одновременно используются оба подхода.

Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД . Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

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

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

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

  • язык определения схемы БД (SDL - Schema Definition Language) и
  • язык манипулирования данными ( DML - Data Manipulation Language ).

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

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

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

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

Наконец, авторизация доступа к объектам БД производится также на основе специального набора операторов SQL . Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь , создавший таблицу БД , обладает полным набором полномочий для работы с этой таблицей. В число этих полномочий входит полномочие на передачу всех или части полномочий другим пользователям, включая полномочие на передачу полномочий. Полномочия пользователей описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.

Функциональные возможности СУБД

По степени универсальности различают два класса СУБД :

  • системы общего назначения - реализованные как программный продукт, способный функционировать на ЭВМ в определённой операционной системе и поставляемый пользователям как коммерческое изделие;
  • специализированные системы - создаваемые в случаях невозможности или не целесообразности использования СУБД общего назначения.

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

Рынок программного обеспечения ПК располагает большим числом разнообразных по своим функциональным возможностям коммерческих систем СУБД общего назначения.

СУБД - лидеры на рынке программ:

  • dBASE IV, компании Borland International;
  • Microsoft Access 2007;
  • Microsoft FoxPro 2.6 for DOS;
  • Microsoft FoxPro for Windows, Microsoft Corp:
  • Paradox for DOS 4.5:
  • Paradox for Windows, версия 4.5 Borland.

Производительность СУБД оценивается:

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

На производительность СУБД оказывают влияния 2 фактора:

  • правильное проектирование
  • построения БД.

СУБД , которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие программы;

Целостность данных подразумевает наличие средств, позволяющих удостовериться, что информация в БД всегда остаётся корректной и полной.

Операции , обеспечивающие безопасность :

  • шифрование прикладных программ;
  • шифрование данных;
  • защита паролем;
  • ограничение уровня доступа

Хороший уровень безопасности в СУБД dBase IV, Access

Для сохранения информации используется двойной подход. Некоторые операции сохранения происходят в обход операционной системы

Целостность должна обеспечиваться независимо от того, каким образом данные заносятся в память , не конкретных действий пользователей, пробоев сети и т.п.

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

Краткие итоги

Рассмотрены вопросы классификации БД и СУБД .

По технологии обработки данных БД делятся на централизованные БД и распределённые БД . Централизованные БД могут быть с сетевым доступом. Архитектуры систем централизованных БД с сетевым доступом подразделяются на файл-сервер и клиент- сервер . Распределённая БД разделяется по способу доступа к данным БД с локальным и удаленным доступом.

СУБД - классифицируются по языкам общения и по выполняемым функциям.

Для системы управления базой данных сложились три языка: язык описания данных (ЯОД), язык манипулирования данными (ЯМД), язык запросов .

Основные функции СУБД : непосредственное управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями , журнализация , поддержка языков БД .

По степени универсальности различают два класса СУБД : системы общего назначения , специализированные системы.

В ИТ-инфраструктуре предприятия СУБД играет роль универсального хранилища данных, предоставляющего средства построения запросов к сведениям, поступающим от приложений более высокого уровня – аналитических, бухгалтерских систем и т.д. К настоящему моменту индустрия СУБД добилась значительного прогресса в области обработки и хранения информации. Современные технологии позволяют работать с базами данных петабайтного размера, выполняя при этом анализ данных в реальном времени.

В современном деловом мире с его огромными объемами информации наличие информационной системы становится жизненно необходимым условием успешной деятельности любой организации. Основными задачами информационной системы являются эффективное хранение, обработка и анализ данных. Для их решения применяются системы управления базами данных (СУБД).

Базовой предпосылкой для создания специализированных средств по работе с данными стала потребность в расширении возможностей файловых систем по хранению сложных структурированных данных, а также необходимость поддержки специальных языковых средств по формированию информационных запросов пользователей и возможность многопользовательской работы. Традиционная СУБД – это программный комплекс, выполняющий функции структуризации, хранения и поиска данных. В ИТ-инфраструктуре современной компании СУБД играет роль универсального хранилища данных, предоставляющего инструментальные средства построения запросов к сведениям, которые поступают через стандартные интерфейсы от приложений более высокого уровня, таких как аналитические или бухгалтерские системы.

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

Во-вторых, управление буферами оперативной памяти. СУБД обычно работают с большими объемами данных, которые значительно превышают доступный объем оперативной памяти (ОЗУ). Для ускорения процессов обмена с внешней памятью практически все СУБД используют буферизацию данных в ОЗУ. Также существует отдельный класс СУБД, размещающий БД полностью в ОЗУ (так называемые in-memory СУБД)

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

Четвертая функция - это журнализация. Одним из основных требований к любой СУБД является надежность хранения данных во внешней памяти. Это означает, что СУБД должна уметь восстанавливать рабочее состояние БД после любого программного или аппаратного сбоя. Надежность хранения данных обеспечивается за счет создания дополнительной информации, используемой для восстановления – журнала изменений БД. При ведении журнала используется механизм "упреждающей" записи в журнал, позволяющий фиксировать данные об изменении объекта БД в журнале раньше, чем сам объект сохраняется во внешней памяти. Данный подход позволяет восстановить рабочее состояние БД после любого сбоя.

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

Реляционные СУБД

Многие современные коммерческие СУБД основаны на так называемой реляционной модели данных, основы которой были заложены в 70-х годах Э.Коддом. В процессе совершенствования реляционные СУБД приобретали все большее распространение и к середине 80-х годов практически полностью вытеснили с рынка баз данных более ранние системы. Реляционная теория базируется на мощном математическом аппарате, описывающем правила эффективной организации данных. Вся информация в реляционных БД представляется в виде двумерных таблиц (отношений), над которыми определена формальная система манипулирования. Реляционная модель требует, чтобы используемые в отношениях данные были простыми, т.е. не обладали внутренней структурой (например, число, строка, дата). Важнейший принцип организации информации в реляционной базе данных – так называемая нормализация таблиц, основной целью которой является устранение избыточности и дублирования информации.

В современных реляционных СУБД логически можно выделить несколько подсистем: ядро СУБД, компилятор языка БД (обычно SQL), подсистема поддержки выполнения команд и набор утилит.

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Это основная часть СУБД. Ядро обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в подсистеме поддержки выполнения команд, производимых компилятором языка БД и утилитами БД.

Основной функцией компилятора языка БД является компиляция выражений языка БД во внутренний машинно-независимый код. Реальное выполнение операторов производится при помощи подсистемы поддержки выполнения команд.

Утилиты используются для выполнения операций по поддержке и обслуживанию БД (сохранение и восстановление БД из архивной копии, проверка целостности, сбор статистики).

Несмотря на ряд недостатков, среди которых чаще всего называют ограниченные возможности по моделированию сложных структур данных и невозможность адекватно отражать предметную область, плоские нормализованные реляционные таблицы универсальны и теоретически достаточны для представления данных любой предметной области. Реляционная модель за долгие годы своего существования доказала свою эффективность при решении типовых задач и по сей день остается одним из наиболее востребованных средств управления данными.

Большинство современных ведущих реляционных СУБД, таких как Oracle, DB2, MS SQL Server уже не являются в чистом виде реляционными, поскольку их функционал значительно расширен за пределы традиционной реляционной модели (например, использованием "ненормализованных" данных и различных объектных расширений). Современные СУБД позволяют хранить в БД не только данные простых типов, но и более сложные объекты: массивы, изображения, объекты мультимедиа, а также большие фрагменты текстов, по которым может производиться полнотекстовый поиск.

Развитие современных технологий управления данными

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

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

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

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

В целом, за последние 40 лет в области управления данными была выполнена громадная исследовательская работа, результаты которой можно успешно применять как для развития универсальных СУБД, так и для разработки специализированных систем. К настоящему моменту индустрия СУБД добилась значительного прогресса в технологиях обработки и хранения данных. Современные технологии позволяют работать с базами данных петабайтного размера, при этом выполнять обработку анализ данных в реальном времени. Очевидно, что подобные возможности найдут достойное применение во всех отраслях мировой экономики.

Александр Куров:

Операторам необходимы решения, способные предоставлять информацию в виде сводных отчетов

На вопросы CNews ответил коммерческий директор компании «Балтик Софт» Александр Куров.

CNews: Насколько изменились в телеком-отрасли подходы к СУБД в контексте распространения новых технологий на рынке ИТ (например, "облаков"), по вашим ощущениям?

Александр Куров: Достаточно сложно говорить обо всем телеком-сегменте. В нашем частном случае все оборудование для оказания услуг – централизованное, оно не требует построения территориально-распределенной системы обработки.

У операторов мобильной связи серверы баз данных, как правило, всегда были разнесены. Эту группу условно-независимых серверов с "общей" точки зрения можно было бы назвать "облаком". Но раньше задачу объединения множества систем в единое "облако" каждый из операторов решал самостоятельно, с использованием собственных наработок и протоколов взаимодействия. То же самое можно сказать и в отношении других "новых" технологий (например, StreamInsight), которые широко применялись и ранее.

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

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

  • управление данными во внешней памяти (на дисках);
  • управление данными в оперативной памяти с использованием дискового кэша;
  • журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
  • поддержка языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты:

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

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

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

Иерархические¶

Используется представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней.

Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами (в программировании применительно к структуре данных дерево устоялось название братья).

Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов.

Примеры: Caché, Google App Engine Datastore API.

Сетевые¶

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

Реляционные¶

Практически все разработчики современных приложений, предусматривающих связь с системами баз данных, ориентируются на реляционные СУБД. По оценке Gartner в 2013 году рынок реляционных СУБД составлял 26 млрд долларов с годовым приростом около 9%, а к 2018 году рынок реляционных СУБД достигнет 40 млрд долларов. В настоящее время абсолютными лидерами рынка СУБД являются компании Oracle, IBM и Microsoft, с общей совокупной долей рынка около 90%, поставляя такие системы как Oracle Database, IBM DB2 и Microsoft SQL Server.

Объектно-ориентированные¶

Управляют базами данных, в которых данные моделируются в виде объектов, их атрибутов, методов и классов.

Этот вид СУБД позволяет работать с объектами баз данных так же, как с объектами в программировании в объектно-ориентированных языках программирования. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.

Объектно-реляционные¶

Этот тип СУБД позволяет через расширенные структуры баз данных и язык запросов использовать возможности объектно-ориентированного подхода: бъекты, классы и наследование.

Зачастую все те СУБД, которые называются реляционными, являются, по факту, объектно-реляционными.

В данном курсе мы будем, в первую очередь, гооврить об этом виде СУБД.

Примеры: PostgreSQL, DB2, Oracle, Microsoft SQL Server.

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

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

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

Файл-серверные¶

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД.

На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком.

Примеры: 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, ЛИНТЕР.

Стратегии работы с внешней памятью¶

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

СУБД с отложенной записью — это СУБД, в которых изменения аккумулируются в буферах внешней памяти до наступления любого из следующих событий:

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

Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД.

Читайте также: