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

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

• Oracle (44,3%),

• IBM (21%),

• Microsoft (18,5%),

• Sybase (3,5%),

• Teradata (3,2%)[1].

Консалтинговая компания Forrester Research в 2009 г. подтвердила доминирующее положение продуктов – IBM DB2, Microsoft SQL Server и Oracle; в сумме на их долю приходится 88% поставок[2]. По оценкам, общий объем рынка СУБД в 2009 г. составил около 27 млрд долл., и к 2013 г. вырастет до 32 млрд долл. Консалтинговая компания Forrester Research выделяет на рынке корпоративных СУБД три основные категории продуктов:

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

• Хранилища данных, применяемые для систем принятия решений вместе с бизнес-аналитикой. Базовые требования: средства извлечения и преобразования больших объемов данных.

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

Классификацию СУБД можно также выполнить по следующим признакам:

• функциональность СУБД ("настольные" – DeskTop и "промышленные" крупномасштабные СУБД);

• режимы работы – однопользовательский или многопользовательский режимы;

• степень универсальности: СУБД общего и специального назначения;

• тип модели данных: иерархические, сетевые и реляционные;

• объектные технологии: объектно-ориентированные и объектно-реляционные;

• место хранения базы данных: централизованное и распределенное;

• архитектура сети: файловый сервер или сервер баз данных;

• класс вычислительных машин и др.

Современные СУБД должны обеспечивать выполнение

правил АСID:

Atomicity (атомарность). Поддержка транзакций – наименьших, неделимых блоков приложения, обеспечивающих изменение базы данных. Выполняется "откат" транзакции (rollback), если ее не удается полностью завершить.

Consistency (непротиворечивость). Обеспечение целостности данных по завершении транзакций.

Isolation (изоляция). Во время выполнения транзакции другие процессы не должны фиксировать данные в промежуточном состоянии.

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

Языки СУБД

Большинство СУБД поддерживает:

• язык описания структур данных на уровне концептуальной, внешних и внутренней моделей;

• язык манипулирования данными, включая языки запросов, алгоритмические языки программирования, языки генератора отчетов.

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

• реляционную алгебру, основанную на теории множеств;

• реляционное исчисление, основанное на исчислении предикатов первого порядка.

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

Реляционные операторы объединены в две группы:

• теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение;

специальные реляционные операторы, выборка, проекция, соединение и деление.

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

1.Объединение (UNION) отношений одной схемы

В результате образуется множество кортежей, принадлежащих одному из отношений или обоим одновременно (рис. 10.27).

Рис. 10.27. Объединение отношений

2. Пересечение (INTERSECT) отношений одной схемы I

Пересечение двух отношений одной схемы дает отношение той же схемы, состоящей из кортежей, принадлежащих одновременно отношениям R1 и R2 (рис. 10.28).

Рис. 10.28. Пересечение отношений

3. Разность (MINUS) отношений одной схемы . Разностью отношений одинаковой схемы данных называется множество кортежей, принадлежащих R1, но не принадлежащих R2 (рис. 10.29).

Рис. 10.29. Разность отношений

4. Декартово произведение (TIMES) отношений разных схем

Декартовым произведением называется отношение с объединенной схемой , в котором множество кортежей получено путем взаимосвязи кортежей отношения R1 со всеми кортежами отношения R2 (рис. 10.30).

Рис. 10.30. Декартово произведение отношений

5. Проекция (PROJECT) схемы R1 в виде новой схемы

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

Рис. 10.31. Проекция отношения

6. Выборка/Селекция (WHERE) кортежей отношения по условию

На основе исходного отношения R1 выбирается подмножество кортежей для нового отношения R2 той же схемы, условия выборки задаются для доменов (рис. 10.32).

Рис. 10.32. Выборка (селекция) кортежей отношений

7. Общая операция соединения (TIMES, WHERE) отношений R1 и R2 (по условию).

Новое отношение R формируется на основе декартова произведения и выборки (селекции) кортежей (рис. 10.33).

Рис. 10.33. Соединение отношений

Различают несколько видов соединений:

1. θ-соединение (тэта-соединение). Логическое условие задастся в виде выражения для сравнения значений их атрибутов (>, >=, <, <=).

2. Эквисоединение. Для сравнения значений атрибутов разных отношений используется знак равно.

3. Естественное соединение (JOIN) отношений по одинаковым атрибутам. Результат соединения – отношение, объединяющее все атрибуты и множество кортежей. Можно выполнять последовательное соединение нескольких отношений (рис. 10.34).

Рис. 10.34. Естественное объединение отношений

8. Деление отношения (DEVIDEBY) на отношение с совпадающими атрибутами (остаток от деления) – рис. 10.35.

Рис. 10.35. Деление отношения

При этом существует несколько типов запросов, которые нельзя выразить средствами только реляционной алгебры:

• запросы, требующие дать в ответе список атрибутов, удовлетворяющих определенным условиям;

• построение транзитивного замыкания отношений;

• построение кросс-таблиц.

Типичным информационно-логическим языком, основанным на реляционной алгебре, является язык структурированных запросов – SQL (Structured Query Language)[3], который содержит группы операторов:

• операторы определения данных (Data Definition Language – DDL);

• операторы языка манипулирования данными (Data Manipulation Language – DML);

• операторы языка управления данными (Data Control Language – DCL);

• операторы управления транзакциями (Transaction Control Language – TCL).

Реляционное исчисление – прикладная ветвь формального механизма исчисления предикатов первого порядка. Предикат представляет собой функцию с областью значений {0,1}, определенную на я-й декартовой степени множества М (если n-ка принадлежит отношению, то предикат будет возвращать на ней значение 1). Используются понятия "переменной" с определенной для нее областью допустимых значений и понятие "формула", которая построена на основе переменных, предикатов и кванторов (квантор – общее название для логических операций, ограничивающих область истинности какого-либо предиката).

Типы кванторов:

квантор всеобщности (для всех", "для любого" - (например, высказываниеозначает, что область истинности предиката совпадает с областью значений переменной х);

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

Различают исчисление кортежей и исчисление доменов. Для исчисления кортежей используется определение кортежной переменной:

RANGE ИмяПеременной IS ИмяОтношения

Правильно построенная формула (Well-Formed Formula – WFF) служит для выражения условий, накладываемых на кортежные переменные. Простые условия представляют собой операции сравнения скалярных значений:

Сложные условия строятся с помощью логических связок NOT, AND, OR и IF... THEN с учетом обычных приоритетов операций (NOT > AND > OR) и возможности расстановки скобок:

NOT Формула

Условие AND Формула

Условие OR Формула

IF Условие THEN Формула