Обзор современных СУБД: Oracle 10g, Microsoft SQL 2005, Access 2003, MySQL, Cashe

Разговор о базах данных будет неполным без упоминания о состоянии дел на настоящий момент. Поэтому в качестве заключения рассмотри наиболее известные и распространенные сегодня СУБД.

Oracle 10g в настоящее время является одним из лидеров коммерческих СУБД, использующихся в крупных информационных системах.

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

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

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

Физически табличное пространство состоит из одного или нескольких файлов данных. Один файл может принадлежать только одному табличному пространству. В Oracle 10g появилась возможность использовать табличные пространства большого файла – до нескольких тысяч терабайт.

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

Автоматическое управление отменой действий предлагает мощный механизм поддержки транзакций. В версии Oracle 10g появилась даже возможность выполнения ретроспективных версий запросов, чтобы увидеть различные версии строки в определенные моменты времени.

Также в Oracle 10g появилась концепция мусорной корзины, позволяющая быстро восстанавливать удаленные таблицы. Теперь по умолчанию при удалении таблицы ее дисковое пространство не освобождается, и она может быть просмотрена с помощью представления словаря данных RECYCLEBIN. Данная архитектура упрощает восстановление случайно удаленных таблиц, но и предъявляет особые требования к дисковой памяти.

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

Microsoft SQL Server 2005 является решением следующего поколения компании Microsoft для управления и анализа данных, которое предоставляет повышенную безопасность, стабильность данным предприятия и аналитическим приложениям, облегчая их построение, развёртывание и управление.

Платформа данных SQL Server включает реляционную базу данных, Replication Services (сервис для репликация данных и интеграция с разнородными системами, включая существующие базы данных Oracle), Analysis Services (аналитическая обработка в реальном времени (OLAP) для быстрого, сложного анализа больших и смешанных наборов данных, использующая многомерное хранение), инструменты управления и разработки, а также многие другие компоненты.

SQL Server 2005 также содержит много новых и улучшенных возможностей, относящихся к следующим областям:

21. Управляемость

22. Доступность

23. Масштабируемость

24. Безопасность

SQL Server 2005 упрощает развертывание, управление и оптимизацию данных предприятия и аналитических приложений. SQL Server 2005 предоставляет более 70 новых мер внутренней производительности базы данных и использования ресурсов от памяти, блокировок и планирования до транзакций и операций сетевого и дискового ввода-вывода. Зеркалирование базы данных позволяет непрерывно передавать содержимое журнала транзакций исходного сервера на один целевой сервер. В случае сбоя основной системы приложения могут немедленно соединиться с базой на вспомогательном сервере. Кластеры с восстановлением после отказа являются решением высокой готовности, которое использует службы кластеризации Microsoft Windows для создания устойчивых к сбоям виртуальных серверов, обеспечивающих быстрое восстановление в случае сбоя сервера баз данных. SQL Server 2005 дает администраторам баз данных возможность создавать мгновенные, доступные только для чтения снимки базы данных. Моментальный снимок базы данных предоставляет устойчивый снимок без накладных расходов на время и хранение на создание полной копии базы данных. Когда основная база данных расходится со снимком, последний добавляет свои собственные копии страниц, по мере того, как они изменяются.

SQL Server 2005 имеет существенные улучшения в модели безопасности платформы базы данных:

44. Применение политик для паролей учётных записей SQL Server в области аутентификации

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

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

Как и любой другой продукт компании Microsoft, SQL Server 2005 обязательно содержит множество новых технологий, интегрирующих его с другими продуктами компании и существенно увеличивающих продуктивность разработчиков. Начиная с поддержки .NET Framework и заканчивая тесной интеграцией с Visual Studio, эти функции предоставляют разработчикам возможность проще создавать безопасные, сильные приложения баз данных при меньших затратах.

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

Для работы с базой данных система использует Microsoft Jet database engine – систему управления базами данных, извлекающую и сохраняющую данные в пользовательских и системных задачах. Ядро базы данных Microsoft Jet можно рассматривать как компонент диспетчера данных, с помощью которого строятся остальные системы доступа к данным, такие как Microsoft Access и Microsoft Visual Basic. Язык написания программных модулей для работы с базой данных – Microsoft Visual Basic for Applications (VBA).

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

Microsoft Access имеет собственные средства для разграничения прав доступа пользователей к базе данных. Простейшим способом ограничения доступа к базе данных является установка пароля для открытия базы данных (*.mdb). После установки пароля при каждом открытии базы данных будет появляться диалоговое окно, в которое требуется ввести пароль. Этот способ достаточно надежен (Microsoft Access шифрует пароль, поэтому к нему нет доступа при непосредственном чтении файла базы данных), но он действует только при открытии базы данных. Есть и еще одно ограничение. Использовать установку пароля на базу данных нельзя, если предполагается выполнять репликацию базы. Реплицированные базы данных не могут быть синхронизированы, если установлен пароль базы данных.

После открытия базы все объекты становятся доступными для пользователя, пока не определены другие типы защиты. Защита на уровне пользователей имеет большие возможности по разграничению прав. Этот способ подобен способам, используемым в большинстве сетевых систем. При запуске Microsoft Access от пользователя требуется идентифицировать себя и ввести пароль. Microsoft Access по умолчанию создает две группы: администраторы (группа Admins) и простые пользователи (группа Users). Допускается определение других групп и пользователей.

Члены группы Admins имеют разрешения на доступ ко всем объектам базы данных. Другим группам и пользователям могут предоставляться разрешения на доступ только к отдельным объектам базы данных. Типовые разрешения на доступ для группы Users могут включать "Чтение данных" и "Обновление данных" для таблиц и запросов, а также "Открытие/запуск" для форм и отчетов.

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

MySQL – это очень быстрый, многопоточный, многопользовательский, поддерживающий SQL (Structured Query Language) сервер баз данных. Особенностью MySQL является то, что он распространяется бесплатно (для некоммерческого внутреннего использования) и лицензируется по GNU GENERAL PUBLIC LICENSE.

MySQL представляет собой очень популярную систему управления базами данных с открытыми исходными текстами, разрабатываемую MySQL AB. MySQL AB является коммерческой компанией, строящей свой бизнес на сервисах, сосредоточенных на базе данных MySQL.

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

Основные возможности MySQL следующие:

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

• Интерфейсы для языков C, C++, Eiffel, Java, Perl, PHP, Python и Tcl.

• Возможность смешивать таблицы из разных баз данных в одном запросе.

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

• Поддержка поистине огромных объемов данных. Известен случай использования MySQL на 60000 таблиц, хранящих около 5000000000 строк.

• Для переносимости использованы GNU Automake, Autoconf и Libtool.

• Пакет написан на C и C++. Оттестирован на всех распространенных компиляторах этих языков.

• Очень быстрая поточно-безопасная система управления памятью.

• Никаких утечек памяти. MySQL тестировался с помощью Purify, коммерческого детектора утечек памяти.

• Клиенты могут соединяться с сервером MySQL, используя все допустимые в современных сетях технологии: сокеты TCP/IP, сокеты Unix (под Unix) или даже именованные каналы (под NT).

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

• объектный,

• реляционный (на основе SQL),

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

Кроме того, Cache обеспечивает быструю и эффективную разработку web-приложений, поддержку механизма транзакций при работе с данными, легкую масштабируемость приложений, предъявляя, при этом, крайне скромные требования к аппаратным ресурсам, используемым системой и администрированию. Cache поддерживает большинство платформ, используемых для создания промышленных приложений – от Windows, OpenVMS, Unix/Linux до Mac OS X. На ее основе разработаны различные системы, оперирующие как малыми, так и большими массивами данных (порядка нескольких терабайт), с которыми одновременно могут работать до 50 000 пользователей.

Cache позволяет разработчикам использовать знакомые им языки и инструменты программирования: Java, .Net, Active X, C++, Delphi, SQL, XML и HTML. Cache также поддерживает полноценную концепцию объектного программирования, позволяющую в короткие сроки как разрабатывать новые, так и вносить улучшения в уже существующие приложения. Особый интерес для программистов, занимающихся созданием Web-приложений, представляют технологии Cache Server Pages и ZEN — простой и удобный способ создания высокопроизводительных Web-приложений.

Многомерное представление данных на сервере Cache позволяет ускорить выполнение таких обычно длительных операций, как «объединение таблиц». Скорость доступа к данным в Cache практически не зависит от размера базы данных, что позволяет увеличить размер транзакционного приложения без потери производительности.

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

Cache полностью поддерживает объектную архитектуру, в частности, такие ее основы, как множественное наследование, полиморфизм и коллекции. Используя эти возможности, разработчики могут моделировать предметную область реалистическими, понятными способами, ускоряя таким образом, процесс разработки приложений. Cache реализует не только все основные идеи объектной архитектуры, но и позволяет использовать современные технологии объектного моделирования и реинжиниринга, такие как Rational Rose.

В InterSystems принят подход «define once — use anywhere» (определено однажды — используется везде) к управлению данными. В Cache данные любого объекта можно получить как SQL-таблицу, a каждую таблицу — как объект. Данные Cache автоматически могут быть представлены на любом из объектно-ориентированных языков программирования и в SQL. Вам больше не надо заниматься утомительным отображением объектов в реляционные таблицы, больше не нужен дополнительный «трансляционный» слой между логикой приложения и базой данных.

Cache Server Pages предоставляет изящные средства создания быстродействующих, хорошо масштабируемых web-приложений за короткое время. При этом облегчается как дальнейшее сопровождение, так и развитие таких приложений. Технология Cache’ Server Pages позволяет создавать динамическое web-содержимое в зависимости от времени, пользовательского ввода, отношений между сохраненными данными и тому подобного. В ее основе лежат HTML-страницы – так называемые CSP-страницы, содержащие специальные теги, которые выполняются на сервере Cache’ каждый раз, когда происходит обращение к ним, и которые возвращают индивидуальное содержимое.

Технология ZEN, по сути, является надстройкой над технологией CSP, делая разработку web-приложений более простой и удобной, при этом используя все преимущества CSP, такие как быстродействие, доступ к данным, безопасность, и дополняя ее возможностью сборки web-страниц из встроенных объектных компонентов.