• Системы управления базами данных ведущих производителей. Базы данных SQL, NoSQL и различия в моделях баз данных

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

    • MS Access,
    • Visual FoxPro,
    • MySQL,
    • PostgreSQL,
    • Sybase,
    • SQL Server,
    • Oracle,
    • и др.

    Рассмотрим наиболее распространенные из них.

    СУБД MS Access

    Программа Access функционирует под управлением операционной системы Windows и обладает стандартизованным интерфейсом приложений Windows.

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

    Обработка информации в процессе работы с БД осуществляется с помощью макросов или VBA программ.

    Открытая БД может обмен иваться данными с внешними БД. Внешней базой данных может быть любая БД, которая поддерживает протокол ODBC и расположена на удаленном сервере, или одна из БД СУБД Access, dBASE или Paradox.

    Access позволяет создавать и выполнять запросы на выборку, добавление данных, удаление и обновление.

    Запрос можно создать с помощью QBE или SQL . Программой Access поддерживается механизм OLE (связывание и встраивание объектов) и механизм DDE (динамический обмен данными).

    СУБД Visual FoxPro

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

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

    Visual FoxPro характеризует высокая скорость обслуживания БД.

    С помощью стандарта ODBC и SQL -запросов для выборки данных Visual FoxPro может работать с базами данных dBase, Paradox, Access и т. д., с серверами баз данных – Oracle MS SQL Server и др.

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

    Visual FoxPro поддерживает механизмы OLE и DDE работы с Windows приложениями.

    Visual FoxPro позволяет создавать сетевые приложения, которые функционируют в сетях под управлением MS LAN Manager, MS Windows и др.

    MS SQL Server

    Microsoft SQL Server широко используется в области БД и для анализа данных, позволяет быстро создавать масштабируемые решения электронной коммерции, приложений для бизнеса и хранилищ данных. SQL Server поддерживает язык XML и протокол HTTP , средства повышения доступности и быстродействия, которые позволяют обеспечить бесперебойную работу и распределить нагрузку, функции улучшения настройки и управления.

    Платформа анализа данных SQL Server, которая интегрирована с MS Office, позволяет открыть доступ к необходимой бизнес-информации с помощью интерфейса MS Word и MS Excel.

    В SQL Server входит развитая, удобная и функциональная среда программирования, которая включает средства для работы с веб-службами, технологии доступа к данным.

    Oracle

    Oracle включает СУБД и средства разработки и анализа данных.

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

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

    Реляционные базы данных уже давно используются в программировании. В своё время они обрели популярность благодаря простоте и удобству реляционной модели работы с данными.

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

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

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

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

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

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

    Отношения и типы данных

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

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

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

    Примечание : Базы данных NoSQL не имеют таких строгих ограничений, поскольку они не выстраивают таких отношений между данными. Чтобы узнать больше о NoSQL, читайте .

    Популярные реляционные базы данных

    В данной статье мы рассмотрим три наиболее важные и популярные СУБД с открытым исходным кодом.

    • SQLite: встроенная мощная система управления базами данных.
    • MySQL: самая популярная и широко распространённая БД.
    • PostgreSQL: продвинутая SQL-совместимая объектная СУБД с открытым исходным кодом.

    Примечание : Приложения с открытым исходным кодом почти всегда дают пользователям право на свободное использование и изменение кода. Ответвляя код, вы можете создать совершенно новое приложение. Одним из ответвлений MySQL, например, является MariaDB .

    SQLite

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

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

    Типы данных SQLite

    • NULL: пустое значение.
    • INTEGER: целочисленное значение (зависимо от объёма значение хранится в 1, 2, 3, 4, 6 или 8 байтах).
    • REAL: число с плавающей точкой, хранится в виде 8-байтного IEEE.
    • TEXT: текстовая строка, хранится в зашифрованном виде (UTF-8, UTF-16BE или UTF-16LE).
    • BLOB: бинарные данные, хранятся в том виде, в котором были введены.

    Преимущества SQLite

    • Простое строение на основе файлов: вся база данных состоит всего из одного файла, что увеличивает её портативность.
    • Стандарты: несмотря на простоту, система SQLite основана на SQL. Некоторые функции опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), однако вместо них добавлены другие.
    • SQLite отлично подходит для разработки или тестирования. На этих этапах почти всегда необходимо простое, но масштабируемое решение.

    Недостатки SQLite

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

    Когда лучше использовать SQLite

    • Простые встроенные приложения, которым нужна портативность, например, однопользовательские локальные приложения, мобильные приложения, игры.
    • Замена диска. Обычно приложения, которым необходимо читать или записывать файлы на диск, могут использовать SQLite для получения дополнительных функций.
    • Тестирование.

    Когда лучше не использовать SQLite

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

    MySQL

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

    Примечание : Учитывая популярность MySQL, для этой системы было разработано большое количество сторонних приложений, инструментов и библиотек.

    MySQL не реализует полный стандарт SQL. Несмотря на это, MySQL предлагает множество функциональных возможностей для пользователей: автономный сервер баз данных, взаимодействие с приложениями и сайтами и т.п.

    Типы данных MySQL

    • TINYINT: целое число в диапазоне от -128 до 127 (1 байт).
    • SMALLINT: целое число от -32768 до 32767 (2 байта).
    • MEDIUMINT: число от -8388608 до 8388608 (3 байта).
    • INT или INTEGER: число в диапазоне от -2147683648 до 2147683648 (4 байта).
    • BIGINT: число от -2 63 до 2 63 -1 (8 байт).
    • FLOAT: число с плавающей точкой (4 байта).
    • DOUBLE, DOUBLE PRECISION, REAL: число с двойной точностью и плавающей точкой.
    • DECIMAL, NUMERIC: величины повышенной точности.
    • DATE: дата.
    • DATETIME: дата и время.
    • TIMESTAMP: временная метка.
    • TIME: время в формате hh:mm:ss.
    • YEAR: год (по умолчанию хранится в виде 4 цифр, но можно настроить и 2).
    • CHAR: строка фиксированной длины.
    • VARCHAR: строки переменных.
    • TINYBLOB, TINYTEXT: Тип TEXT позволяет хранить текст, а BLOB — изображения, звук, электронные документы и т.п. Максимальная длина – 225 символов.
    • BLOB, TEXT: большие объемы текста, максимум 65535 символов.
    • MEDIUMBLOB, MEDIUMTEXT: аналогично предыдущему, но максимум до 16777215 символов.
    • LONGBLOB, LONGTEXT: аналогично предыдущему, но максимум до 4294967295 символов.
    • ENUM: принимает только одно из значений заданного множества.
    • SET: принимает любой или все элементы из значений заданного множества.

    Преимущества MySQL

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

    Недостатки MySQL

    • Ограничения: структура MySQL накладывает некоторые ограничения, из-за которых не смогут работать продвинутые приложения.
    • Уязвимости: метод обработки данных, применяемый в MySQL, делает эту СУБД немного менее надёжной по сравнению с другими СУБД.
    • Медленное развитие: хотя MySQL является продуктом с открытым исходным кодом, он очень медленно развивается. Однако тут следует заметить, что на MySQL основано несколько полноценных баз данных (например, MariaDB).

    Когда использовать MySQL

    • Распределенные операции: автономный сервер баз данных MySQL поддерживает множество операций и предоставляет несколько дополнительных функций.
    • Высокая безопасность данных: MySQL предлагает высокую защиту данных.
    • Веб-сайты и веб-приложения: несмотря на ограничения MySQL может поддерживать работу почти любого сайта и веб-приложения. Этот гибкий и масштабируемый инструмент прост в использовании.
    • Пользовательские решения: MySQL можно подогнать под строгие требования сайта или приложения.

    Когда лучше не использовать MySQL

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

    PostgreSQL

    PostgreSQL – это продвинутая открытая объектно-ориентированная СУБД. PostgreSQL реализует SQL-стандарты ANSI/ISO.

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

    Основанная на надёжной технологии СУБД PostgreSQL может одновременно обрабатывать большое количество задач. Поддержка согласованности достигается без блокирования операций чтения благодаря MVCC.

    Хотя СУБД PostgreSQL не так популярна, как MySQL, для неё тоже разработано большое количество дополнительных инструментов и библиотек, которые упрощают работу с данными и увеличивают производительность СУБД.

    Типы данных PostgreSQL

    • bigint: знаковое восьмибайтное целое число.
    • bigserial: восьмибайтное целое число с автоинкрементом.
    • bit [(n)]: битовая строка фиксированной длины.
    • bit varying [(n)]: битовая строка с переменной длиной.
    • boolean: логическое значение (true/false).
    • box: четырёхугольник на плоскости.
    • bytea: бинарные данные.
    • character varying [(n)]: строка символов с переменной длиной.
    • character [(n)]: строка символов с фиксированной длиной
    • cidr: адрес сети IPv4 или IPv6.
    • circle: круг на плоскости.
    • date: дата (год, месяц, день).
    • double precision: число с плавающей точкой двойной точности (8 байт).
    • inet: адрес хоста IPv4 или IPv6.
    • integer: знаковое четырёхбайтовое целое число.
    • interval [(p)]: промежуток времени.
    • line: бесконечная линия на плоскости.
    • lseg: сегмент линии на плоскости.
    • macaddr: MAC (Media Access Control) адрес.
    • money: валюта.
    • numeric [(p, s)]: точное числовое значение с выбранной точностью.
    • path: геометрический путь на плоскости.
    • point: геометрическая точка на плоскости.
    • polygon: закрытый геометрический путь на плоскости (полигон)
    • real: число с плавающей точкой одинарной точности (4 байта).
    • smallint: знаковое двухбайтное целое число.
    • serial: четырёхбайтное целое число с автоинкрементом.
    • text: строка символов с переменной длиной.
    • time [(p)] : время дня (без часового пояса).
    • time [(p)] with time zone: время дня и часовой пояс.
    • timestamp [(p)] : временная метка (дата и время) без часового пояса.
    • timestamp [(p)] with time zone: временная метка с часовым поясом.
    • tsquery: запрос текстового поиска.
    • tsvector: документ текстового поиска.
    • txid_snapshot: снапшот ID-транзакции уровня пользователя.
    • uuid: универсальный уникальный идентификатор.
    • xml: данные XML.

    Преимущества PostgreSQL

    • Система управления базами данных PostgreSQL открытая, SQL-совместимая, свободная.
    • Активное сообщество PostgreSQL поможет найти решение любой проблемы, связанной с СУБД, в любое время суток.
    • Поддержка сторонних инструментов: помимо встроенных продвинутых функций, PostgreSQL поддерживает множество открытых сторонних инструментов для проектирования, управления данными и т.п.
    • Масштабируемость и расширяемость.
    • Объектно-ориентированность.

    Недостатки PostgreSQL

    • Производительность: в некоторых ситуациях производительность PostgreSQL ниже, чем у MySQL.
    • Невысокая популярность.
    • В связи с вышеперечисленными недостатками не все хостинг-провайдеры поддерживают PostgreSQL.

    Когда использовать PostgreSQL

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

    Когда лучше не использовать PostgreSQL

    • Если приложению нужны быстрые операции чтения.
    • Если приложению не нужна абсолютная целостность данных, ACID или сложная структура, PostgreSQL может стать слишком сложным решением.
    • Репликация данных сложнее, чем в MySQL, потому в кластерах PostgreSQL лучше не использовать.
    Tags:

    18.03.2014

    Источник: Журнал "Технологии Защиты" № 1, 2014

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

    Терминология

    Частая ошибка многих специалистов по безопасности - некорректное использование термина «база данных» (БД) вместо термина «система управления базами данных» (СУБД). Давайте разберёмся, что к чему.

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

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

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

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

    Требования к СУБД, применяемым в СКУД

    Какие же особенные требования следует предъявить к СУБД, используемой в СКУД с точки зрения пользователя?

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

    Виды СУБД

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

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

    1. Клиент-серверные СУБД
    2. Файл-серверные СУБД
    3. Встраиваемые СУБД

    В клиент-серверных СУБД (Microsoft SQL Server, Oracle, Firebird, PostgreSQL, InterBase, MySQL и др.) вся обработка данных ведётся в одном месте, на сервере, в том же месте, где хранятся (обычно) данные, при этом к файлам данных имеет доступ только один сервер, одна система - это сама СУБД. Приложения-клиенты при этом посылают запросы на обработку и получение данных из СУБД и получают ответы; приложения-клиенты не имеют непосредственного доступа к файлам данных. Все промышленные СУБД на данный момент являются именно клиент-серверными.

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

    Встраиваемые СУБД (SQLite, Firebird Embedded, Microsoft SQL Server Compact и др.) поставляются в составе готового программного продукта, не требуя процедуры самостоятельной установки. Встраиваемые СУБД предназначены для локального хранения данных приложения и не рассчитаны на коллективное использование в сети. К примеру, встраиваемая бесплатная СУБД SQLite широко используется в известной мобильной ОС Android, разработанной в компании Google, и во многих мобильных приложениях.

    Схема лицензирования:

    1. Бесплатные СУБД
    2. Коммерческие промышленные СУБД (большинство производителей предлагают также бесплатную ограниченную версию)

    Файл-серверные и встраиваемые СУБД практически все являются бесплатными, из бесплатных клиент-серверных СУБД наиболее известные: Firebird, PostgreSQL и MySQL.

    Чисто коммерческий продукт, разработанный компанией Borland: СУБД InterBase. Ранее у этой СУБД была бесплатная версия с открытым исходным кодом: InterBase 6.0, но проект InterBase 6.0 Open Source Edition перестал поддерживаться компанией Borland. В 2001 году группа энтузиастов создала отдельный Open source проект СУБД Firebird, упомянутой выше, который получил широкую известность и множество поклонников среди разработчиков.

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

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

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

    Плюсы коммерческих СУБД: хорошая задокументированность, высокая производительность, масштабируемость, надёжность, поддерживаемость, наличие встроенных инструментов для разработки и администрирования. Вероятность того, что компания Oracle, Microsoft или IBM перестанут поддерживать свои системы, стремится к нулю.

    Минусы : они более требовательны к ресурсам, чем бесплатные аналоги, стоят денег и немалых.

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

    Компания-производитель Бесплатные версии Ограничения
    Microsoft SQL Server 2005 Express Edition (2005, 2008, 2008 R2, 2012) Размер базы данных - до 4 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows 2005 – только x86, 2008 – x86 и x64.
    SQL Server 2008 Express Edition
    SQL Server 2008 R2 Express Edition Размер базы данных - до 10 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows x86 и x64.
    SQL Server 2012 Express Edition
    Oracle Oracle Database 11g Express Edition, (Oracle Database XE) Суммарно до 11Гб пользовательских данных, использует не более 1Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: Windows x86, Linux x64.
    IBM IBM DB2 Express-C Размер базы не ограничен, используется до 4Гб оперативной памяти и до 2-х процессоров. Поддерживаемые платформы: Windows x86 и x64, Linux x86 и x64, Unix x86 и x64, Solaris x86 и x64, Mac OS X

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

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

    СУБД в СКУД

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

    Производитель СКУД СУБД
    Parsec ParsecNET 3 Microsoft SQL Server (в поставке 2005 Express, поддерживаются также версии 2008, 2008 R2, 2012) – центральная БД; SQLite - локальные базы рабочих станций.
    Elsys Бастион 2 Oracle (в поставке 11g Express)
    Perco S20 Firebird
    НВП Болид Орион ПРО MS SQL Server (в поставке 2005 Express)
    РусГард RusGuard MS SQL Server (в поставке 2008 R2 Express)
    Равелин ЛТД Gate Microsoft Access
    ПромАвтоматика Сервис Сфинкс MySQL
    Кодос ИКБ Кодос Firebird
    TSS Семь Печатей Firebird
    Bosсh Building Integration System BIS Microsoft SQL Server (в поставке 2008 Express Edition)
    Honeywell NexWatch (Honeywell Security) Microsoft SQL Server
    Siemens SiPass Microsoft SQL Server
    ААМ Системз Apacs Microsoft SQL Server, Firebird
    Lyrix Oracle, Microsoft SQL Server, Borland InterBase

    Как видно, большинство производителей СКУД поставляют бесплатную версию промышленной клиент-серверной СУБД Microsoft SQL Server Express Edition и свободную (бесплатную) кроссплатформенную СУБД Firefird (примерно 50 на 50).

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

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

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

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

    • При выборе СКУД обратите внимание на то, какая СУБД поставляется совместно с системой.
    • Если вы эксплуатируете СКУД, то выясните, какая СУБД в ней используется.
    • Оцените трафик данных и нагрузку в вашей системе, чтобы определиться с требуемыми аппаратными ресурсами сервера СУБД и нужной редакцией СУБД (проконсультируйтесь у производителя вашей СКУД при необходимости).
    • Если в вашей СКУД используется Express-версия Microsoft SQL Server или Oracle, то необходимо задаться вопросом: «Насколько нам хватит бесплатного объёма базы?». Настройте периодическое удаление из базы старых событий средствами СКУД (если таковые имеются) либо же рассмотрите вопрос о миграции на платную неограниченную версию СУБД.
    • Настройте резервное копирование баз данных средствами СКУД или же средствами СУБД и регулярно проверяйте его выполнение.
    • Найдите специалиста по СУБД (администратора), к которому можно будет обратиться в случае повреждения базы данных, узнайте в технической поддержке производителя СКУД возможность предоставления такого рода услуг.

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

    Чтобы лучше разобраться в СУБД, ознакомьтесь с .

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

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

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

    Отношения и типы данных

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

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

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

    Популярные РСУБД

    В этой статье мы расскажем о 3 наиболее популярных РСУБД:

    • SQLite: очень мощная встраиваемая РСУБД.
    • MySQL: самая популярная и часто используемая РСУБД.
    • PostgreSQL: самая продвинутая и гибкая РСУБД.

    SQLite

    SQLite - это изумительная библиотека, встраиваемая в приложение, которое её использует. Будучи файловой БД, она предоставляет отличный набор инструментов для более простой (в сравнении с серверными БД) обработки любых видов данных.

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

    Поддерживаемые типы данных

    • NULL: NULL-значение.
    • INTEGER: целое со знаком, хранящееся в 1, 2, 3, 4, 6, или 8 байтах.
    • REAL: число с плавающей запятой, хранящееся в 8-байтовом формате IEEE.
    • TEXT: текстовая строка с кодировкойUTF-8, UTF-16BE или UTF-16LE.
    • BLOB: тип данных, хранящийся точно в таком же виде, в каком и был получен.

    Note: для получения более подробной информации ознакомьтесь с документацией .

    Преимущества

    • Файловая: вся база данных хранится в одном файле, что облегчает перемещение.
    • Стандартизированная: SQLite использует SQL; некоторые функции опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), однако, есть и некоторые новые.
    • Отлично подходит для разработки и даже тестирования: во время этапа разработки большинству требуется масштабируемое решение. SQLite, со своим богатым набором функций, может предоставить более чем достаточный функционал, при этом будучи достаточно простой для работы с одним файлом и связанной сишной библиотекой.

    Недостатки

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

    Когда стоит использовать SQLite

    • Встроенные приложения: все портируемые не предназначенные для масштабирования приложения - например, локальные однопользовательские приложения, мобильные приложения или игры.
    • Система доступа к дисковой памяти: в большинстве случаев приложения, часто производящие прямые операции чтения/записи на диск, можно перевести на SQLite для повышения производительности.
    • Тестирование: отлично подойдёт для большинства приложений, частью функционала которых является тестирование бизнес-логики.

    Когда не стоит использовать SQLite

    • Многопользовательские приложения: если вы работаете над приложением, доступом к БД в котором будут одновременно пользоваться несколько человек, лучше выбрать полнофункциональную РСУБД - например, MySQL.
    • Приложения, записывающие большие объёмы данных: одним из ограничений SQLite являются операции записи. Эта РСУБД допускает единовременное исполнение лишь одной операции записи.

    MySQL

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

    Поддерживаемые типы данных

    • TINYINT: очень маленькое целое.
    • SMALLINT: маленькое целое.
    • MEDIUMINT: целое среднего размера.
    • INT или INTEGER: целое нормального размера.
    • BIGINT: большое целое.
    • FLOAT: знаковое число с плавающей запятой одинарной точности.
    • DOUBLE, DOUBLE PRECISION, REAL: знаковое число с плавающей запятой двойной точности.
    • DECIMAL, NUMERIC: знаковое число с плавающей запятой.
    • DATE: дата.
    • DATETIME: комбинация даты и времени.
    • TIMESTAMP: отметка времени.
    • TIME: время.
    • YEAR: год в формате YY или YYYY.
    • CHAR: строка фиксированного размера, дополняемая справа пробелами до максимальной длины.
    • VARCHAR: строка переменной длины.
    • TINYBLOB, TINYTEXT: BLOB- или TEXT-столбец длиной максимум 255 (2^8 — 1) символов.
    • BLOB, TEXT: BLOB- или TEXT-столбец длиной максимум 65535 (2^16 — 1) символов.
    • MEDIUMBLOB, MEDIUMTEXT: BLOB- или TEXT-столбец длиной максимум 16777215 (2^24 — 1) символов.
    • LONGBLOB, LONGTEXT: BLOB- или TEXT-столбец длиной максимум 4294967295 (2^32 — 1) символов.
    • ENUM: перечисление.
    • SET: множества.

    Преимущества

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

    Недостатки

    • Известные ограничения: по определению, MySQL не может сделать всё, что угодно, и в ней присутствуют определённые ограничения функциональности.
    • Вопросы надёжности: некоторые операции реализованы менее надёжно, чем в других РСУБД.
    • Застой в разработке: хотя MySQL и является open-source продуктом, работа над ней сильно заторможена. Тем не менее, существует несколько БД, полностью основанных на MySQL (например, MariaDB). Кстати, подробнее о родстве MariaDB и MySQL можно из нашего с создателем обеих РСУБД - Джеймсом Боттомли.

    Когда стоит использовать MySQL

    • Распределённые операции: когда вам нужен функционал бо́льший, чем может предоставить SQLite, стоит использовать MySQL.
    • Высокая безопасность: функции безопасности MySQL предоставляют надёжную защиту доступа и использования данных.
    • Веб-сайты и приложения: большая часть веб-ресурсов вполне может работать с MySQL, несмотря на ограничения. Этот инструмент весьма гибок и прост в обращении, что только на руку в длительной перспективе.
    • Кастомные решения: если вы работаете над очень специфичным продуктом, MySQL подстроится под ваши потребности благодаря широкому спектру настроек и режимов работы.

    Когда не стоит использовать MySQL

    • SQL-совместимость: поскольку MySQL не пытается полностью реализовать стандарты SQL, она не является полностью совместимой с SQL. Из-за этого могут возникнуть проблемы при интеграции с другими РСУБД.
    • Конкурентность: хотя MySQL неплохо справляется с операциями чтения, одновременные операции чтения-записи могут вызвать проблемы.
    • Недостаток функций: в зависимости от выбора движка MySQL может недоставать некоторых функций.

    PostgreSQL

    PostgreSQL - это самая продвинутая РСУБД, ориентирующаяся в первую очередь на полное соответствие стандартам и расширяемость. PostgreSQL, или Postgres, пытается полностью соответствовать SQL-стандартам ANSI/ISO.

    PostgreSQL отличается от других РСУБД тем, что обладает объектно-ориентированным функционалом, в том числе полной поддержкой концепта ACID (Atomicity, Consistency, Isolation, Durability).

    Будучи основанным на мощной технологии Postgres отлично справляется с одновременной обработкой нескольких заданий. Поддержка конкурентности реализована с использованием MVCC (Multiversion Concurrency Control), что также обеспечивает совместимость с ACID.

    Хотя эта РСУБД не так популярна, как MySQL, существует много сторонних инструментов и библиотек для облегчения работы с PostgreSQL.

    Поддерживаемые типы данных

    • bigint: знаковое 8-байтное целое.
    • bigserial: автоматически инкрементируемое 8-битное целое.
    • bit [(n)]: битовая строка фиксированной длины.
    • bit varying [(n)]: битовая строка переменной длины.
    • boolean: булевская величина.
    • box: прямоугольник на плоскости.
    • bytea: бинарные данные.
    • character varying [(n)]: строка символов фиксированной длины.
    • character [(n)]:
    • cidr: сетевой адрес IPv4 или IPv6.
    • circle: круг на плоскости.
    • date: календарная дата.
    • double precision: число с плавающей запятой двойной точности.
    • inet: адрес хоста IPv4 или IPv6.
    • integer: знаковое 4-байтное целое.
    • interval [(p)]: временной промежуток.
    • line: бесконечная прямая на плоскости.
    • lseg: отрезок на плоскости.
    • macaddr: MAC-адрес.
    • money: денежная величина.
    • path: геометрический путь на плоскости.
    • point: геометрическая точка на плоскости.
    • polygon: многоугольник на плоскости.
    • real: число с плавающей запятой одинарной точности.
    • smallint: знаковое 2-байтное целое.
    • serial: автоматически инкрементируемое 4-битное целое.
    • text: строка символов переменной длины.
    • time [(p)] : время суток (без часового пояса).
    • time [(p)] with time zone: время суток (с часовым поясом).
    • timestamp [(p)] : дата ивремя (без часового пояса).
    • timestamp [(p)] with time zone: дата и время (с часовым поясом).
    • tsquery: запрос текстового поиска.
    • tsvector: документ текстового поиска.
    • txid_snapshot: снэпшот ID пользовательской транзакции.
    • uuid: уникальный идентификатор.
    • xml: XML-данные.

    Преимущества

    • Полная SQL-совместимость .
    • Сообщество: PostgreSQL поддерживается опытным сообществом 24/7.
    • Поддержка сторонними организациями: несмотря на очень продвинутые функции, PostgreSQL используется в многих инструментах, связанных с РСУБД.
    • Расширяемость: PostgreSQL можно программно расширить за счёт хранимых процедур.
    • Объектно-ориентированность: PostgreSQL - не только реляционная, но и объектно-ориентированная СУБД.

    Недостатки

    • Производительность: В простых операциях чтения PostgreSQL может уступать своим соперникам.
    • Популярность: из-за своей сложности инструмент не очень популярен.
    • Хостинг: из-за вышеперечисленных факторов проблематично найти подходящего провайдера.

    Когда стоит использовать PostgreSQL

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

    Когда не стоит использовать PostgreSQL

    • Скорость: если всё, что нужно - это быстрые операции чтения, не стоит использовать PostgreSQL.
    • Простые ситуации: если вам не требуется повышенная надёжность, поддержка ACID и всё такое, использование PostgreSQL - это стрельба из пушки по мухам.

    Функционирование практически любого современного предприятия немыслимо без манипуляции данными, связанными с его производственной деятельностью. Нередко эффективность его деятельности и конкурентоспособность на рынке товаров или услуг непосредственно связаны с тем, актуальны ли эти данные и доступны ли они обращающимся к ним пользователям (причем нередко не только пользователям локальной сети, но и посетителям корпоративного Web-сервера и сотрудникам, обращающимся к ним с помощью мобильных устройств). С этой целью применяются различные архитектуры физического хранения данных, такие как Storage Area Network (SAN) или Network Attached storage (NAS), а также системы управления базами данных, предназначенные для логической организации данных и осуществления доступа к ним. Корпоративные данные большинства компаний сейчас хранятся в реляционных СУБД, о которых и пойдет речь в данной статье.

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

    Требования к корпоративным СУБД

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

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

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

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

    Говоря о различном назначении реляционных баз данных, в первую очередь отметим, что существует два их типа:

    • оперативные, или OLTP-базы данных (OLTP - On-Line Transaction Processing) - обычно в эти базы данных осуществляется интенсивный ввод данных, а вот число адресованных к ним запросов невелико;
    • хранилища данных, применяемые, как правило, в аналитических приложениях и системах поддержки принятия решений - к ним обычно адресуется большое число запросов, но ввод данных в них не столь интенсивен.

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

    DB2 Universal Database и Informix Dynamic Server (IBM)

    Семейство серверных СУБД фирмы IBM, известное под названием DB2 Universal Database (DB2 UDB), впервые появилось в 1996 году и предназначалось для платформ UNIX, OS/2 и Microsoft Windows NT. Последняя версия этого продукта, DB2 UDB 7.2, функционирует под управлением операционных систем AS/400AIX, S/390, Windows NT/2000, Windows 95/98, OS/2, AIX, HP-UX, SCO UnixWare, Linux, NUMA-Q и Sun Solaris.

    Из механизмов доступа к данным DB2 UDB поддерживает ODBC, JDBC и ADO/OLE DB, а для пользователей Microsoft Visual Studio доступны включаемые в среду дополнительные модули, такие как Stored Procedure Builder. Windows-версии DB2 Universal Database 7.2 позволяют также создавать хранимые процедуры на языке Visual Basic. Cредства разработки Borland поддерживают доступ к DB2 не только с помощью ADO/OLE DB и ODBC, но и посредством собственных универсальных механизмов доступа к данным - Borland Database Engine и dbExpress.

    DB2 Universal Database поддерживает создание хранилищ данных и, помимо средств переноса данных в хранилище, содержит в составе клиентской части Data Warehouse Center, позволяющий управлять всеми процессами, связанными с созданием и поддержкой хранилищ данных, включая создание схемы хранилища, определение источников исходных данных для него, создание расписаний обновления данных в хранилище, проверку и исправление некорректных данных. Для поддержки OLAP-хранилищ в состав сервера DB2 Universal Database входит OLAP Starter Kit, основанный на OLAP-сервере Hyperion Essbase.

    DB2 UDB 7.2 поддерживает хранение и поиск XML-документов по их элементам и атрибутам. С помощью протокола SOAP можно обращаться к Web-сервисам, предоставляющим доступ к хранимым процедурам и данным DB2 Universal Database (сами Web-сервисы могут управляться сервером приложений IBM WebSphere).

    К другим важнейшим техническим характеристикам DB2 Universal Database следует отнести поддержку реляционных и комплексных данных с помощью объектных расширений, возможность работы на мультипроцессорных платформах, поддержку кластеров, 64-разрядную архитектуру памяти, распараллеливание запросов, наличие средств для гетерогенного администрирования и обработки данных, поддержку выполнения распределенных транзакций.

    Ведущим продуктом фирмы Informix до приобретения ее компанией IBM являлся Informix Dynamic Server (IDS), поддерживающий платформы UNIX и Microsoft Windows NT и обеспечивающий эффективную работу как на одно-, так и на многопроцессорных системах, а также в кластерах. Этот продукт обладает мощными средствами параллельной обработки данных. В числе основных характеристик Informix Dynamic Server следует отметить следующие: использование для управления дисковым пространством как средств операционной системы; так и собственных функций, позволяющих обойти ограничения операционной системы, управление разделением памяти; динамическое управление потоками; поддержку фрагментации таблиц и индексов на нескольких дисках; распараллеливание запросов; зеркалирование данных. IDS поддерживает двухфазное завершение транзакций, а также гетерогенные транзакции (в этом случае в транзакциях может принимать участие и не-Informix сервер). Особо следует отметить поддержку этим сервером временных рядов, что делает его незаменимым в биржевых системах, а также в приложениях для брокеров и трейдеров.

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

    Из механизмов доступа к данным IDS поддерживает ODBC, JDBC и ADO/OLE DB. Cредства разработки Borland поддерживают доступ к IDS с помощью механизмов Borland Database Engine и dbExpress. В ближайшее время ожидается появление поддержки Microsoft .NET.

    После приобретения корпорацией IBM части бизнеса компании Informix, связанного с созданием систем управления базами данных, была выпущена версия 9.30 этого продукта, а в период до 2006 года ожидается выпуск еще нескольких версий. Тем не менее при создании новых проектов IBM настоятельно рекомендует ориентироваться на применение DB2.

    Для создания хранилищ данных существовал другой продукт Informix - Red Brick Warehouse. В IBM планируют дальнейшее развитие Red Brick, а некоторые используемые в нем технологии будут применены в последующих версиях DB2.

    Oracle9i (Oracle)

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

    Отметим, что Oracle была первой компанией, создавшей СУБД, использовавшую предоставляемые некоторыми серверными платформами средства параллельных вычислений, - Oracle Parallel Server (до ее появления параллельные вычисления использовались только для решения научных задач).

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

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

    Из механизмов доступа к данным Oracle9i поддерживает ODBC, JDBC и ADO/OLE DB. Из средств разработки Borland можно осуществлять доступ к Oracle9i с помощью механизма dbExpress. Клиентская часть Oracle содержит также набор COM-объектов для доступа к данным (Oracle Objects for OLE). Отметим, что и многие другие компании производят ODBC-драйверы и OLE DB-провайдеры для доступа к Oracle (в частности, Microsoft).

    Помимо этого Oracle поставляет на рынок собственный набор средств разработки Oracle9i Developer Suite для быстрого создания Интернет-приложений, настраиваемых Web-порталов, а также Web-сервисов.

    Из готовых информационных систем на базе Oracle следует особо отметить несколько крупных систем управления предприятием, в частности SAP/R3. На Западе также нередко используются готовые решения от самой Oracle Corporation, объединенные под общим названием Oracle Applications, такие как Oracle Financials, Oracle Human Resources, Oracle Market Management, Oracle Project Systems и др., - собственно, продажа и поддержка именно этих приложений и составляют основную часть бизнеса компании.

    SQL Server 2000 (Microsoft)

    Корпорация Microsoft до 1987 года не имела никакого отношения к производству корпоративных СУБД. Первая версия Microsoft SQL Server - совместный продукт компаний Microsoft и Sybase, выпущенный в 1988 году, - была разработана для платформы OS/2. Последующие версии этого сервера баз данных предназначались для платформы Windows NT и со временем были тесно интегрированы с этой операционной системой. Для других платформ версии этого сервера не выпускались и не выпускаются. Поэтому популярность SQL Server определяется в первую очередь популярностью платформы, которую он поддерживает, в данный момент это Windows 2000, в ближайшем будущем - Windows .NET Server. Эта СУБД настолько связана с операционной системой, что ее надежность, масштабируемость и производительность определяются надежностью, масштабируемостью и производительностью самой платформы и положение SQL Server на рынке будет зависеть от выпуска новых версий Windows.

    Последняя версия этой СУБД - Microsoft SQL Server 2000 - отличается повышенной масштабируемостью и производительностью. Она позволяет использовать на одном компьютере несколько одновременно работающих серверов, поддерживает создание кластеров, параллельные вычисления в многопроцессорных системах, распределенные запросы, создание индексов для представлений (Indexed Views), что в ряде случаев существенно повышает скорость выполнения запросов. Этот сервер поддерживает хранение и извлечение XML-данных, представление в виде XML результатов запросов, представление хранимых процедур в виде Web-сервисов (для реализации этой возможности существует свободно доступный продукт под названием XML for SQL Server, или SQLXML).

    Средства администрирования Microsoft SQL Server 2000 считаются одними из самых простых и удобных. Помимо средств решения стандартных задач администрирования (создание баз данных и их объектов, манипуляция пользователями и группами, резервное копирование и восстановление, подключение к другим серверам, средства репликаций), они включают утилиты обмена данными с другими СУБД и хранилищами данных (Data Transformation Services). В состав этого продукта, начиная с версии 7.0, входит и OLAP-сервер (собственно, этот шаг Microsoft вынудил других производителей СУБД включать OLAP-средства, прежде поставлявшиеся отдельно и стоившие довольно дорого, в состав своих серверов баз данных).

    Из механизмов доступа к данным этот продукт поддерживает ODBC, OLE DB/ADO, ADO .NET. Имеется также JDBC-драйвер производства самой компании Microsoft. Кроме того, для работы с этим сервером пользователи Borland Delphi 7 могут использовать механизм доступа к данным dbExpress. Средства разработки Microsoft при работе с Microsoft SQL Server обладают рядом дополнительных возможностей, таких как отладка серверного кода, интеграция средств администрирования в среду разработки и т.д.

    Adaptive Server Enterprise и Adaptive Server IQ (Sybase)

    Серверные продукты компании Sybase происходят от двух «предков». Первым из них является одна из ранних версий Microsoft SQL Server, созданная совместно Microsoft и Sybase. Начиная с 1994 года Microsoft и Sybase разрабатывают свои серверные продукты независимо друг от друга, и результатом деятельности компании Sybase в этом направлении является продукт Adaptive Server Enterprise (ASE), последняя версия которого, 12.5, существует для Windows NT/2000 и некоторых версий UNIX (включая Linux).

    В настоящее время Adaptive Server Enterprise поддерживает упреждающее асинхронное чтение, что повышает скорость выполнения сложных запросов, создание кластеров, распределенную обработку запросов, в том числе к базам данных других производителей, расширенные хранимые процедуры, позволяющие осуществить легкий доступ к не-SQL-функциям (Java, 3GL-системы, функции операционной системы и т.д.), параллельную обработку запросов в многопроцессорных системах, параллельную работу утилит администрирования, динамическую конфигурацию сервера и резервное копирование данных с компрессией, поддержку XML-запросов.

    Из универсальных механизмов доступа к данным ASE поддерживает ODBC, JDBC, OLE DB/ADO. Пользователи средств разработки Borland для работы с этим сервером могут также использовать механизм доступа к данным dbExpress. Отметим, что нередко вместе с ASE используются средства разработки и проектирования данных самой компании Sybase.

    Для создания многомерных хранилищ данных у Sybase существует еще один серверный продукт - Adaptive Server IQ, позволяющий создавать хранилища на основе данных из СУБД не только производства Sybase, но и других производителей. Высокая скорость выполнения запросов в этом продукте обусловлена нестандартным способом хранения данных. Отметим также, что существует ряд продуктов под общим названием Sybase Industry Warehouse Studio, ориентированных на обслуживание конкретных предметных областей: торговли (Retail Warehouse Studio), здравоохранения (Healthcare Warehouse Studio), страхования (Life Insurance Warehouse Studio) и др.

    Teradata Database V2R4.1 (Teradata)

    В течение последних нескольких лет СУБД компании Teradata считаются лидирующими продуктами среди СУБД, предназначенных для создания хранилищ данных. Последняя версия этой СУБД, Teradata Database V2R4.1, доступна для Microsoft Windows 2000 Server, Windows 2000 Advanced Server, Windows .NET Server и ряда версий UNIX.

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

    Для создания клиентских приложений, использующих Teradata Database, существуют ODBC-драйвер, документированный клиентский API, совместимый с IBM DB2 (это означает, что клиентские приложения, использующие DB2, могут выполняться и c Teradata), и ряд других интерфейсов. Средства администрирования этой СУБД включают средства резервного копирования и восстановления, просмотра и редактирования данных, мониторинга производительности и нагрузки, а также утилиту администрирования для управления всеми перечисленными задачами, доступную для Windows NT Workstation 4.0, Windows 2000 Professional, Windows 98.

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

    КомпьютерПресс 10"2002