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

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

    прикладные программы баз данных;

    клиентские компоненты;

    серверы баз данных;

    собственно базы данных.

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

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

Возможности СУБД

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

    разнообразные пользовательские интерфейсы;

    физическую независимость данных;

    логическую независимость данных;

    оптимизацию запросов;

    целостность данных;

    управление параллелизмом;

    резервное копирование и восстановление;

    безопасность баз данных.

Все эти возможности вкратце описываются в следующих далее разделах.

Разнообразные пользовательские интерфейсы

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

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

Физическая независимость данных

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

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

Логическая независимость данных

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

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

Оптимизация запросов

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

Целостность данных

Одной из стоящих перед системой баз данных задач является идентифицировать логически противоречивые данные и не допустить их помещения в базу данных. (Примером таких данных будет дата "30 февраля" или время "5:77:00".) Кроме этого, для большинства реальных задач, которые реализовываются с помощью систем баз данных, существуют ограничения для обеспечения целостности (integrity constraints) , которые должны выполняться для данных. (В качестве примера ограничения для обеспечения целостности можно назвать требование, чтобы табельный номер сотрудника был пятизначным целым числом.)

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

Управление параллелизмом

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

    На общем банковском счете № 3811 в банке X имеется $1500.

    Владельцы этого счета, госпожа А и господин Б, идут в разные отделения банка и одновременно снимают со счета по $750 каждый.

    Сумма, оставшаяся на счету № 3811 после этих транзакций, должна быть $0, и ни в коем случае не $750.

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

Резервное копирование и восстановление

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

Безопасность баз данных

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

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

Системы реляционных баз данных

Компонент Database Engine сервера Microsoft SQL Server является системой реляционных баз данных. Понятие систем реляционных баз данных было впервые введено в 1970 г. Эдгаром Ф. Коддом в статье "A Relational Model of Data for Large Shared Data Banks". В отличие от предшествующих систем баз данных (сетевых и иерархических), реляционные системы баз данных основаны на реляционной модели данных, обладающей мощной математической теорией.

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

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

Используемая в наших статьях база данных SampleDb представляет некую компанию, состоящую из отделов (department) и сотрудников (employee). Каждый сотрудник принадлежит только одному отделу, а отдел может содержать одного или нескольких сотрудников. Сотрудники работают над проектами (project): в любое время каждый сотрудник занят одновременно в одном или нескольких проектах, а над каждым проектом может работать один или несколько сотрудников.

Эта информация представлена в базе данных SampleDb (находится в исходниках) посредством четырех таблиц:

Department Employee Project Works_on

Организация этих таблиц показана на рисунках ниже. Таблица Department представляет все отделы компании. Каждый отдел обладает следующими атрибутами (столбцами):

Department (Number, DepartmentName, Location)

Атрибут Number представляет однозначный номер каждого отдела, атрибут DepartmentName - его название, а атрибут Location - расположение. Таблица Employee представляет всех работающих в компании сотрудников. Каждый сотрудник обладает следующими атрибутами (столбцами):

Employee (Id, FirstName, LastName, DepartmentNumber)

Атрибут Id представляет однозначный табельный номер каждого сотрудника, атрибуты FirstName и LastName - имя и фамилию сотрудника соответственно, а атрибут DepartmentNumber - номер отдела, в котором работает сотрудник.

Все проекты компании представлены в таблице проектов Project, состоящей из следующих столбцов (атрибутов):

Project (ProjectNumber, ProjectName, Budget)

В столбце ProjectNumber указывается однозначный номер проекта, а в столбцах ProjectName и Budget - название и бюджет проекта соответственно.

В таблице Works_on указывается связь между сотрудниками и проектами:

Works_on (EmpId, ProjectNumber, Job, EnterDate)

В столбце EmpId указывается табельный номер сотрудника, а в столбце ProjectNumber - номер проекта, в котором он принимает участие. Комбинация значений этих двух столбцов всегда однозначна. В столбцах Job и EnterDate указывается должность и начало работы сотрудника в данном проекте соответственно.

На примере базы данных SampleDb можно описать некоторые основные свойства реляционных систем баз данных:

    Строки таблицы не организованы в каком-либо определенном порядке.

    Также не организованы в каком-либо определенном порядке столбцы таблицы.

    Каждый столбец таблицы должен иметь однозначное имя в любой данной таблице. Но разные таблицы могут содержать столбцы с одним и тем же именем. Например, таблица Department содержит столбец Number и столбец с таким же именем имеется в таблице Project.

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

    Каждая таблица содержит, по крайней мере, один столбец, значения которого определяют такое свойство, что никакие две строки не содержат одинаковой комбинации значений для всех столбцов таблицы. В реляционной модели данных такой столбец называться потенциальным ключом (candidate key) . Если таблица содержит несколько потенциальных ключей, разработчик указывает один из них, как первичный ключ (primary key) данной таблицы. Например, первичным ключом таблицы Department будет столбец Number, а первичными ключами таблиц Employee будет Id. Наконец, первичным ключом таблицы Works_on будет комбинация столбцов EmpId и ProjectNumber.

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

SQL - язык реляционной базы данных

Язык реляционной базы данных в системе SQL Server называется Transact-SQL . Это разновидность самого значимого на сегодняшний день языка базы данных - языка SQL (Structured Query Language - язык структурированных запросов) . Происхождение языка SQL тесно связано с проектом, называемым System R, разработанным и реализованным компанией IBM еще в начале 80-х годов прошлого столетия. Посредством этого проекта было продемонстрировано, что, используя теоретические основы работы Эдгара Ф. Кодда, возможно создание системы реляционных баз данных.

В отличие от традиционных языков программирования, таких как C#, C++ и Java, язык SQL является множество-ориентированным (set-oriented) . Разработчики языка также называют его запись-ориентированным (record-oriented) . Это означает, что в языке SQL можно запрашивать данные из нескольких строк одной или нескольких таблиц, используя всего лишь одну инструкцию. Это одно из наиболее важных преимуществ языка SQL, позволяющее использовать этот язык на логически более высоком уровне, чем традиционные языки программирования.

Другим важным свойством языка SQL является его непроцедурность. Любая программа, написанная на процедурном языке (C#, C++, Java), пошагово описывает, как выполнять определенную задачу. В противоположность этому, язык SQL, как и любой другой непроцедурный язык, описывает, что хочет пользователь. Таким образом, ответственность за нахождение подходящего способа для удовлетворения запроса пользователя лежит на системе.

Язык SQL содержит два подъязыка: язык описания данных DDL (Data Definition Language) и язык обработки данных DML (Data Manipulation Language) . Инструкции языка DDL также применяются для описания схем таблиц баз данных. Язык DDL содержит три общие инструкции SQL: CREATE, ALTER и DROP. Эти инструкции используются для создания, изменения и удаления, соответственно, объектов баз данных, таких как базы данных, таблицы, столбцы и индексы.

В отличие от языка DDL, язык DML охватывает все операции по манипулированию данными. Для манипулирования базами данных всегда применяются четыре общие операции: извлечение, вставка, удаление и модифицирование данных (SELECT, INSERT, DELETE, UPDATE).

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

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

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

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

Производительность

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

Поддержка безопасности

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

По данным ряда аналитических отчетов, наиболее высоко ценятся средства поддержки безопасности СУБД Oracle, DB2 и PostgreSQL.

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

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

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

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

Корректная обработка транзакций

Еще одним важным требованием является корректная обработка транзакций - групп последовательных операций, представляющих собой логические единицы работы с данными. Правила корректной обработки транзакций впервые были описаны автором реляционной модели данных Эдгаром Коддом в виде аббревиатуры ACID (Atomicity, Consistency, Isolation, Durability).

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

Свойство Consistency (непротиворечивость) означает, что завершенная транзакция оставляет данные в непротиворечивом состоянии.

Свойство Isolation (изоляция) означает, что во время выполнения транзакции другие процессы не должны «видеть» данные в промежуточном состоянии. Например, если транзакция изменяет сразу несколько полей в базе данных, то другой запрос, произведенный во время выполнения транзакции, не должен вернуть одни из этих полей с новыми значениями, а другие - с исходными.

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

По данным ряда аналитических отчетов, разработчики и администраторы наиболее высоко оценивают средства корректной обработки транзакций СУБД компаний Oracle и IBM. Впрочем, Microsoft SQL Server с этой точки зрения также оценивается очень высоко.

Другие требования

Для разработки структур баз данных и проектирования запросов принято использовать специализированные инструменты - средства моделирования данных. Такие инструменты могут выпускаться как производителями СУБД, так и независимыми поставщиками. Поддержка СУБД производителями подобных инструментов, как и наличие их в ассортименте программного обеспечения производителя СУБД, считается важным требованием к современным системам управления базами данных. Например, наличие в огромном ассортименте компании Oracle таких продуктов, как средство моделирования Oracle Designer и содержащее инструменты моделирования бесплатное средство разработки JDeveloper, высоко ценится разработчиками решений на основе СУБД Oracle, равно как и наличие поддержки моделирования данных в Visio - разработчиками решений на основе Microsoft SQL Server.

Многие современные СУБД содержат средства администрирования в комплекте поставки. Помимо этого нередко доступны и средства администрирования СУБД независимых производителей, таких как Embarcadero и Quest Software. Чем более популярна СУБД и чем более гибкой является политика работы с партнерами ее производителя, тем, как правило, больше средств администрирования этой СУБД доступно на рынке. С этой точки зрения лидерами являются Oracle и Microsoft - данные компании поставляют неплохие средства администрирования вместе со своими СУБД, да и средств администрирования этих СУБД от независимых производителей на рынке более чем достаточно. Неплохо обстоят дела с инструментами и у MySQL и PostgreSQL - будучи СУБД с открытым кодом, они поддерживаются сообществами разработчиков, производящими инструменты администрирования.

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

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

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

Корпоративные СУБД ведущих производителей

Informix Dynamic Server

Первая версия реляционной СУБД Informix (INFORMation on unIX) была выпущена в 1981 году. Современные версии этой СУБД (нынешнее название которой - Informix Dynamic Server) характеризуются высокой скоростью обработки транзакций, большой надежностью и простотой администрирования.

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

Сейчас Informix Dynamic Server принадлежит IBM. Последняя версия этой СУБД обладает высокими производительностью, масштабируемостью, доступностью, развитыми средствами поддержки репликаций, а также поддержкой кластеров, баланса загрузки, средствами обработки конкурирующих транзакций, средствами контроля доступа к данным на основе меток безопасности (вплоть до значений отдельных ячеек), средствами поддержки XML и создания SOA-решений. Сервер баз данных поставляется вместе с инструментом IBM Data Studio, включающим средства создания форм Informix 4GL, средства поддержки Blade-серверов, объектно-ориентированные средства создания клиентских приложений.

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

IBM DB2

Первая версия DB2 была создана компанией IBM в 1983 году для мэйнфреймов MVS и стала первой СУБД, поддерживающей язык SQL, который был разработан автором реляционной модели данных Э.Ф. Коддом.

Современная версия DB2 является объектно-реляционной СУБД и поддерживает операционные системы Linux, UNIX и Windows на различных аппаратных платформах, а также разные операционные системы IBM. Она поддерживает средства сжатия данных, предсказания возможных проблем и поддержки XML.

Несмотря на то что и Informix Dynamic Server и DB2 предназначены для крупных предприятий и принадлежат одной и той же компании IBM, они отлично сосуществуют за счет того, что созданы для решения разных задач. Если Informix Dynamic Server предназначен в первую очередь для создания решений, требующих высокопроизводительной обработки транзакций, то основные задачи, которые решаются с помощью DB2, - это создание и эксплуатация хранилищ данных и обработка сложных запросов.

Средства обеспечения безопасности DB2 высоко оцениваются ее пользователями наряду с производительностью и масштабируемостью.

Microsoft SQL Server

СУБД Microsoft SQL Server была создана в результате совместного проекта компаний Microsoft и Sybase в 1990 году. Через несколько лет эти компании на основе совместно созданного кода начали разрабатывать собственные СУБД, и версия 7.0 этого продукта была создана уже без участия Sybase. Версии этой СУБД существуют только для операционных систем производства Microsoft.

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

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

MySQL

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

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

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

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

Oracle Database 10g и 11g

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

Последние версии этой СУБД отличаются высокой надежностью, доступностью, безопасностью и производительностью, удобными средствами администрирования. Эта СУБД в первую очередь предназначена для крупных предприятий, а также для компаний, для которых критичны обработка транзакций и построение хранилищ данных, в том числе для предприятий среднего и малого бизнеса. Отметим также активную поддержку компанией Oracle разработчиков, использующих технологии.NET и Java, а также наличие инструмента Application Express для создания веб-приложений на основе СУБД Oracle.

PostgreSQL

СУБД PostgreSQL, как и СУБД компании Oracle, можно отнести к ветеранам - первые версии продукта, ставшего впоследствии тем, что ныне известно как PostgreSQL, появились еще в 80-х годах. С 1996 года PostgreSQL является СУБД с открытым кодом.

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

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

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

Sybase Adaptive Server Enterprise

СУБД компании Sybase первоначально была результатом совместного проекта компаний Microsoft и Sybase, начатого в 80-х годах. В последующем эти компании начали отдельные проекты по дальнейшему развитию этого совместного продукта, а в середине 90-х годов Sybase SQL Server был переименован в Adaptive Server Enterprise.

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

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

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

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

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

Интеграция с Интернетом позволила использовать SQL Servers 2005 как основу для создания систем электронной коммерции с простым и защищенным доступом к данным через популярные браузеры с использованием встроенного Firewall Версия Enterprise поддерживала параллельные вычисления на неограниченном количестве процессоров.

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

Transact-SQL

С 1992 года SQL является стандартом доступа к базам данных. Практически все языки программирования для доступа к БД используют именно его, даже если пользователю кажется, что он работает с информацией напрямую. Базовый синтаксис языка остается неизменным для обеспечения совместимости, но каждый производитель систем управления базами данных старался пополнить SQL дополнительными функциями. Компромисса найти не удалось, и после «войны стандартов» остались два лидера: PL/SQL компании Oracle и Transact-SQL в Microsoft Servers SQL.

T-SQL процедурно расширяет SQL для доступа к Microsoft Servers SQL. Но это не исключает разработку приложений на «стандартных» операторах.

Автоматизируйте бизнес с помощью SQL Server 2008 R2

Надежная работа бизнес-приложений чрезвычайно важна для современного бизнеса. Малейший простой базы данных может привести к огромным убыткам. Сервер баз данных Microsoft SQL Server 2008 R2 позволяет надежно и безопасно хранить информацию практически неограниченного объема, используя знакомые всем администраторам средства управления. Поддерживается вертикальное масштабирование до 256 процессоров.

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

Анализируйте данные

Для быстрого анализа в режиме реального времени потоков данных используется компонент SQL Server StreamInsight, оптимизированный под данный тип задач. Возможна разработка собственных приложений на основе.NET.

Бесперебойная работа и безопасность данных

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

Неограниченный размер базы данных

Хранилище данных можно масштабировать быстро и безопасно. Пользователи могут использовать готовые шаблоны Fast Track Date Warehouse для поддержки дисковых массивов до 48 Тб. Базовая конфигурация поддерживает оборудование ведущих фирм, таких как HP, EMC и IBM. Функции сжатия информации по стандарту UCS 2 позволяют более экономно расходовать дисковое пространство.

Повышение эффективности работы разработчиков и администраторов

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

Инструменты для персонального бизнес-анализа

В компаниях никогда не было единого мнения относительно того, кто должен заниматься аналитикой - IT-отделы или непосредственно пользователи. Система создания персональных отчетов решает эту проблему посредством современных инструментов безопасного и эффективного построения, анализа и моделирования бизнес-процессов. Поддерживается прямой доступ к базам данных в Microsoft Office и SharePoint Server. Корпоративная информация может интегрироваться с материалами других типов, таких как карты, графика и видео.

Удобная среда для совместной работы

Предоставьте своим сотрудникам доступ к информации, совместной разработке и анализу данных при помощи приложения PowerPivot для электронной таблицы Excel. Программа позволяет производить анализ информации и моделирование бизнес-процессов и публиковать отчеты для общего доступа в Интернете или системе SharePoint.

Для наглядного создания внутренних отчетов предлагается система Report Builder 3.0, поддерживающая множество форматов и широкий набор предустановленных шаблонов.

Работайте с базами данных бесплатно

Компания предоставляет небольшим проектам и начинающим разработчикам специальную бесплатную версию Microsoft SQL Server Express. Сюда включены те же технологии баз данных, что и у «полных» версий SQL Server.

Поддерживаются среды разработки Visual Studio и Web Developer. Создавайте сложные таблицы и запросы, разрабатывайте интернет-приложения с поддержкой баз данных, получайте прямой доступ к информации из PHP.

Пользуйтесь всеми возможностями Transact-SQL и самыми передовыми технологиями доступа к данным ADO.NET и LINQ. Поддерживаются хранимые процедуры, триггеры и функции.

Сконцентрируйтесь на элементах бизнес-логики, а оптимизацию структуры базы данных система сделает самостоятельно.

Создавайте насыщенные отчеты любой степени сложности. Пользуйтесь подсистемой поиска, интегрируйте отчеты с приложениями Microsoft Office и добавляйте в документы информацию о географическом положении.

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

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

SQL Server 2008 R2 Express Edition идеально подходит для быстрого развертывания сайтов и интернет-магазинов, программ для персонального использования, малого бизнеса. Это отличный вариант для начала работы и обучения.

Управляйте базами данных, используя SQL Server Management Studio

Microsoft SQL Server Management представляет собой специализированную среду для создания, доступа и управления базами данных и всеми элементами SQL Server, включая службы отчетов.

Система объединяет в одном интерфейсе все возможности программ администрирования из ранних версий, таких как Query Analyzer и Enterprise Manager. Администраторы получают софт с большим набором графических объектов разработки и управления, а также расширенный язык создания сценариев работы с БД.

Редактор кода Microsoft Server Management Studio заслуживает отдельного внимания. Он позволяет разрабатывать скриптовые сценарии на Transact-SQL, программировать многомерные запросы доступа к данным и проводить их анализ с поддержкой сохранения результатов в XML. Создание запросов и сценариев возможно без подключения к сети или серверу, с последующим выполнением и синхронизацией. Имеется широкий выбор предустановленных шаблонов и система управления версиями.

Модуль «Обозреватель объектов» позволяет просматривать и управлять любыми встроенными объектами Microsoft Servers SQL на всех серверах и экземплярах баз данных. Легкий доступ к нужной информации чрезвычайно важен для быстрой разработки приложений и контроля версий.

Система построена на базе системы Visual Studio Isolated Shell, которая поддерживает расширяемые настройки и расширения сторонних разработчиков. В сети Интернет имеется множество сообществ, на которых можно найти всю необходимую информацию и примеры кода для разработки собственных инструментов управления и обработки данных.

По данным исследовательской компании Forrester Research, сервер баз данных Microsoft SQL Server 2012 вошел в тройку лидеров рынка корпоративных информационных хранилищ по итогам 2013 года. Эксперты отмечают, что быстрый рост доли рынка Microsoft обусловлен комплексным подходом корпорации к автоматизации бизнес-процессов. Microsoft SQL Server является современной платформой для управления и хранения данных любых типов, дополненной инструментами аналитики и разработки. Отдельно стоит отметить простоту интеграции с другими продуктами компании, такими как Office и SharePoint.

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

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


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

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

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

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

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

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

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

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

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


  • Сетевые

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

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

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

  • Объектно-ориентированные
По архитектуре организации хранения данных:

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

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

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

На данный момент файл-серверные СУБД считаются устаревшими.

Примеры: MS Access, Borland Paradox.


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

Примеры: Firebird, Interbase, MS SQL Server, Oracle, PostgreSQL, MySQL.


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

Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact.


Чаще всего используемые системы управления базами данных:

  • Oracle

  • Interbase

  • MS SQL Server

  • MS Access

  • Visual FoxPro

  • SyBase

  • Paradox

  • MySQL

Oracle Corporation (NASDAQ: ORCL) - одна из крупнейших американских компаний, разработчик систем управления базами данных, инструментов для разработки баз данных, а также ERP-систем. Ведёт свою историю с 1977 года, имеет подразделения в более чем 145 странах по всему миру. По состоянию на 2005 год, насчитывала более 50 000 служащих.

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

Interbase

Interbase - СУБД от компании Borland.

Основой InterBase был проект, разработанный Джимом Старки (Jim Starkey) во время работы над СУБД Datatrive. Джим создал его как реализацию своей идеи базы данных с многоверсионной архитектурой. В то время (1984) она называлась JRD (Jim’s Relational Database). По видимому, за основу была взята архитектура Rdb, т.к. Джим Старки был одним из разработчиков этой СУБД в DEC.

В 1985 Джим Старки, его жена Анн Харрисон и Дон ДеПалма (Don Depalma) основали компанию Groton Database Systems (именно поэтому базы данных InterBase до последнего времени имели традиционное расширение gdb - Groton DataBase).

После ряда перепродаж и изменения наименования компании в InterBase Software Corporation в 1986 году был выпущен InterBase 2.

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

В 1988 году компания Ashton-Tate приобретает 51 % акций Interbase, а в 1991 году Ashton-Tate приобретает Borland. В том же году выходит InterBase 3.

Большую популярность InterBase приобрел с выходом версии 4 в 1994 году. Для того времени это была очень мощная СУБД, конкурировавшая по возможностям и производительности с MSSQL (6.5?) и SyBase (5?).

В 1997 году выходит InterBase 5, а в 1998 InterBase 5.1.1 был включен в дистрибутив Delphi 4, что в значительной мере предопределило его популярность среди разработчиков на Delphi и C++ Builder.

В конце 1999 года 3 ключевых человека в InterBase (Bill Karwin, Paul Beach и Wayne Ostiguy) увольняются из отдела Interbase. В конференциях Borland начинаются волнения. Австралийская активистка Хелен Борри (Helen Borrie) создает список людей в защиту IB под названием «Спасем InterBase», с целью не допустить закрытия IB. Образуется группа IBDI (IB Developer’s Initiative) для защиты разработчиков-пользователей Interbase, основатели - Helen Borrie, Jason Wharton и Dalton Calford.

Но самое интересное происходит в 2000 году. Компания Borland выпустила версию InterBase 6.0 в открытых кодах - InterBase 6 Open Source Edition, под InterBase Public License (IPL). Не было выпущено ни документации, ни системы тестирования, ни системы сборки проекта - просто груда некомпилируемых исходников. Фактически Borland в тот момент отказался от дальнейшего развития InterBase.

31 июля 2000 года инициативная группа, отчаявшись добиться от Borland поддержки или хотя бы внятной позиции, скопировала исходные коды InterBase 6 и образовала проект Firebird - полностью Open Source проект, основанный на кодах InterBase 6 Open Source.

В 2001 году компания Borland снова решила развивать InterBase. Директором подразделения Interbase стал Джон Артур (John Arthur), а ведущим разработчиком - Чарли Каро (Charlie Caro). В следующей версии InterBase (6.5) компания Borland очевидно отказалась от модели бизнеса на основе Open Source. Чуть позже официально полностью была прекращена поддержка InterBase Open Source Edition.

В настоящее время последней версией является InterBase 2007. InterBase 7.5/2007 и Firebird 1.5/2.0 похожи, но уже далеки от полной совместимости - то есть миграция между их форматами баз данных легче, чем между форматами совсем «чужих» баз данных, но все же сопряжена с определенными проблемами.

Основными достоинствами последней версии InterBase являются низкие требования к системе, с одновременной масштабируемостью на несколько процессоров, плюс развитая система мониторинга, временные таблицы, встраиваемая аутентификация пользователей, журналирование. Традиционным достоинством считается кросс-платформенность - InterBase поддерживает GNU/Linux, Microsoft Windows, Unix и Solaris.
MS SQL Server

Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для небольших и средних по размеру баз данных, и в последние 5 лет - для крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.

Исходный код MS SQL Server (до версии 7.0) основывался на коде Sybase SQL Server, и это позволило Microsoft выйти на рынок баз данных для предприятий, где конкурировали Oracle, IBM, и, позже, сама Sybase. Microsoft, Sybase и Ashton-Tate первоначально объединились для создания и выпуска на рынок первой версии программы, получившей название SQL Server 1.0 для OS/2 (около 1989 года), которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix, VMS и др. Microsoft SQL Server 4.2 был выпущен в 1992 году и входил в состав операционной системы Microsoft OS/2 версии 1.3. Официальный релиз Microsoft SQL Server версии 4.21 для ОС Windows NT состоялся одновременно с релизом самой Windows NT (версии 3.1). Microsoft SQL Server 6.0 был первой версией SQL Server, созданной исключительно для архитектуры NT и без участия в процессе разработки Sybase.

К тому времени, как вышла на рынок ОС Windows NT, Sybase и Microsoft разошлись и следовали собственным моделям программного продукта и маркетинговым схемам. Microsoft добивалась исключительных прав на все версии SQL Server для Windows. Позже Sybase изменила название своего продукта на Adaptive Server Enterprise во избежание путаницы с Microsoft SQL Server. До 1994 года Microsoft получила от Sybase три уведомления об авторских правах как намёк на происхождение Microsoft SQL Server.

После разделения компании сделали несколько самостоятельных релизов программ. SQL Server 7.0 был первым сервером баз данных с настоящим пользовательским графическим интерфейсом администрирования. Для устранения претензий со стороны Sybase в нарушении авторских прав, весь наследуемый код в седьмой версии был переписан.

Текущая версия - Microsoft SQL Server 2005 - была представлена в ноябре 2005 года. Запуск версии происходил параллельно запуску Visual Studio 2005. Существует также «урезанная» версия Microsoft SQL Server - Microsoft SQL Server Express; она доступна для скачивания и свободно распространяется с использующим её программным обеспечением.

С момента выпуска предыдущей версии SQL Server (SQL Server 2000) было осуществлено развитие интегрированной среды разработки и ряда дополнительных подсистем, входящих в состав SQL Server 2005. Изменения коснулись реализации технологии ETL (извлечение, преобразование и загрузка данных), входящей в состав компонента SQL Server Integration Services (SSIS), сервера оповещения, средств аналитической обработки многомерных моделей данных (OLAP) и сбора релевантной информации (обе службы входят в состав Microsoft Analysis Services), а также нескольких служб сообщений, а именно Service Broker и Notification Services. Помимо этого, были произведены улучшения в производительности.
MS Access

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


Visual FoxPro

Visual FoxPro (VFP) - визуальная среда разработки систем управления реляционными базами данных, выпускаемая в настоящее время корпорацией Майкрософт. Последней версией является 9.0. Использует язык программирования FoxPro. Среда разработки версии 7.0 может работать в операционных системах Windows 9x и ядра NT, версии 8.0 и 9.0 - только в Windows XP, 2000, 2003. Среда исполнения (runtime) версий 8.0 и 9.0 работает под любой версией Windows, начиная с 98.

Первоначально FoxPro (первоначальное название - FoxBASE) разрабатывалась Fox Software, начиная с 1984 года. В 1992 году Fox Technologies объединилась с Microsoft, новые версии продукта обрели ряд новых функций и приставку «Visual». Последняя версия оригинального FoxPro - версия 2.6 - работала под Mac OS, DOS, Windows и Unix; уже в версии Visual FoxPro 3.0 список поддерживаемых платформ сократился до Mac OS и Windows, а в более поздних версиях - уже только до Windows. Текущая версия Visual FoxPro основана на COM, и Microsoft утверждает, что.NET-версии продукта не будет. Существует проект Sedna, который должен обеспечить возможность взаимодействия Visual FoxPro с.NET.

Разработка продукта прекращена с выходом SP2 для версии 9.0, поддержка продукта будет осуществляться до 2015 года


SyBase

Sybase Inc. - пионер среди компаний, специализирующихся на разработке реляционных баз данных, а также других продуктов, связанных со сбором, обработкой и хранением данных. Кроме названия компании, слово «Sybase» также часто используется как наименования наиболее широко известного ее продукта - системы управления базами данных Adaptive Server Enterprise.

Архитекторами Sybase были доктор Роберт Эпштейн (Dr. Robert Epstein) и Том Хаггин (Tom Haggin), - оба они работали на Бритон-Ли и Университет Калифорния, Беркли, - в департаменте вычислительной техники. В Беркли впервые была разработана реляционная СУБД «University Ingres», которая стала эталоном таких СУБД как Ingres (Computer Associates), Informix (IBM) и NonStop SQL (Tandem), а также для большинства сегодняшних SQL-систем.

Sybase оказалась на втором месте среди используемых в мире баз данных, сразу за Oracle, после подписания договора о предоставлении исходного кода базы в Microsoft для выведения на рынок продукта на базе платформы OS/2 под названием «SQL Server». В это же время Sybase стала называть свою СУБД «Sybase SQL Server». Вплоть до версии 4.9, Sybase SQL Server и Microsoft SQL Server были практически идентичными. Однако в связи с возникшими разногласиями между компаниями, связанными с вопросами разделения доходов, Sybase и Microsoft приняли решение прекратить совместное развитие продукта несмотря на очевидное наличие общего наследия в виде процедурного языка Transact-SQL (T-SQL) и одинаковой архитектуры. Существенное отличие заключается в том, что Sybase была основана на базе UNIX-архитектуры, в то время как Microsoft практически сразу ушел с UNIX и целиком сконцентрировался на платформе Windows NT. В настоящее время, Sybase продолжает поддерживать и развивать версии для семейства Windows, и различных UNIX-платформ (IBM AIX, HP-UX, Sun Solaris, GNU/Linux и другие).

Sybase испытала серьезный удар в конце 1990-х, когда на рынок вышла компания Informix. Сегодня Informix больше не является независимой компанией (она была приобретена IBM). Если судить по объему продаж, то IBM стала лидером на рынке баз данных, Oracle находится очень близко, но все-таки на втором месте. Третье место занимает потомок Sybase - Microsoft SQL Server. Сегодня Sybase сильно отстает от своих основных конкурентов на рынке баз данных (по информации InformationWeek, в марте 2005 года у компании было 3 % рынка). Sybase вернулась к жизни под руководством Джона Чена, который провозгласил новое направление развития компании под названием «Unwired Enterprise». «Unwired Enterprise» - идея, в рамках которой реализуется концепция доставки информации в любое время и в любое место, - будь то мобильное устройство сотрудника, находящегося «в поле», или его офисный или домашний компьютер. Для реализации этой концепции Sybase предлагает использовать комбинацию из линейки своих традиционных продуктов по управлению данными и ее новых «мобильных» продуктов. Sybase провела широкую экспансию в сторону рынка мобильных и беспроводных устройств за счет покупки небольших компаний, работающих в этой области, таких как AvantGo и за счет активного продвижения на азиатский рынок, особенно в Китай. С помощью своего мобильного подразделения, запущенного в 2000 году - iAnywhere Solutions, Sybase стала лидером на рынке мобильных баз данных со своим продуктом SQLAnywhere Studio.

Sybase производит целую линейку других продуктов, связанных с обработкой данных, включая Sybase IQ - информационное хранилище данных, PowerBuilder - среда разработки клиент-серверных n-звенных приложений, Sybase EAServer - J2EE и CORBA сервер приложений, M-Business Server - сервер для обеспечения работы мобильных приложений, базирующихся на сервисе AvantGo и ReplicationServer - сервер репликации данных между серверами различных поставщиков. Sybase имеет сильные позиции в здравоохранении и финансовой отрасли.


Paradox

Paradox - реляционная СУБД, ныне выпускаемая компанией Corel. Входит в пакет WordPerfect Office.

СУБД Paradox для DOS первоначально разрабатывалась компанией Ansa-Software, которая была поглощена фирмой Borland в сентябре 1987 года. Наиболее распространены были версии 3.5 и 4.5. Версии до 3.5 включительно основывались на исходной 1.0; версии 4.0 и 4.5 были созданы заново с использованием Borland C++, и включали новую схему использования памяти.

Paradox для Windows, несмотря на то, что использует часть кода DOS-версии - другой продукт, разрабатываемый другой командой программистов.


MySQL

MySQL - свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

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

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

О происхождении MySQL

MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM - подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL. Откуда происходит название «MySQL» - доподлинно не известно. Разработчики дают два варианта: либо потому, что практически все наработки компании начинались с префикса My, либо в честь девочки по имени My, дочери Майкла Монти Видениуса, одного из разработчиков системы.

Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено Open Source-разработчиком Ambrose Twebaze.

Microsoft SQL Server 2008 .

10.1 Общая структура СУБД

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

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

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

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

Физический уровень (внутреннее представление данных в памяти ЭВМ - физическая структура базы данных) . Данный уровень рассмотрения подразумевает изучение базы данных на уровне файлов, хранящихся на жестком диске. Структура этих файлов – особенность каждой конкретной СУБД , в т.ч. и Microsoft SQL Server .


Рис. 10.1.

10.2. Архитектура базы данных. Логический уровень

Рассмотрим логический уровень представления базы данных (http://msdn.microsoft.com). Microsoft SQL Server 2008 представляет собой реляционную СУБД (данные представляются в виде таблиц). Таким образом, основной структурой модели данных этой СУБД являются таблицы.

Таблицы и типы данных

Таблицы содержат данные о всех сущностях концептуальной модели базы данных. При описании каждого столбца (поля) пользователь должен определить тип соответствующих данных. Microsoft SQL Server 2008 поддерживает как уже ставшие традиционными типы данных (символьная строка с разным представлением, число с плавающей точкой длиной 8 или 4 байта, целое число длины 2 или 4 байта, дата и время, поле примечаний, булево значение и т. д.), так и новые типы данных. Кроме этого Microsoft SQL Server 2008 предоставляет специальный аппарат для создания пользовательских типов данных .

Рассмотрим краткую характеристику некоторых новых типов данных, значительно расширяющих возможности пользователя (http://www.oszone.net).

Тип данных hierarchyid

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

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

Пространственные данные – это данные, определяющие географические расположения и формы, преимущественно на Земле. Это могут быть ориентиры, дороги и даже расположение фирмы. В SQL Server 2008 есть географические (geography) и геометрические ( geometry ) типы данных для работы с этой информацией. Тип данных geography работает с информацией для шарообразной земли. Модель шарообразной земли использует при расчетах кривизну земной поверхности. Информация о положении задается широтой и долготой. Эта модель хорошо годится для приложений, связанных с морскими перевозками, военным планированием и краткосрочными приложениями, имеющими привязку к земной поверхности. Эту модель нужно использовать, если данные хранятся в виде широт и долгот.

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

Типы geography и geometry создаются из векторных объектов, заданных в форматах Well-Known Text (WKT) или Well-Known Binary (WKB). Это форматы для перенесения пространственных данных, описанные в простых функциях открытого геопространственного консорциума (Open Geospatial Consortium ( OGC ) Simple Features) для спецификаций SQL (SQL Specification).

Ключи

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

Кроме таблиц, в модель данных Microsoft SQL Server 2008 входит еще целый ряд компонентов. Дадим краткую характеристику основным из них.

Индексы

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

Представления

Представление - это виртуальная таблица, содержимое которой определяется запросом . Представление формируется на основе SQL-запроса SELECT, формируемого по обычным правилам. Таким образом, представление есть поименованный запрос SELECT.

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

Сборки

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

Ограничения

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

Правила

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

Значения по умолчанию

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