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

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

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

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

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

одну или несколько баз данных;

систему управления базами данных (СУБД);

персонал, обеспечивающий работу банка данных.

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

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

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

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



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

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

каждый элемент таблицы - один элемент данных

все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.)

каждый столбец имеет уникальное имя

одинаковые строки в таблице отсутствуют

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

Такая модель хранения данных обеспечивает удобство использования базы данных на ЭВМ. Учитывая, что таблицы базы данных могут быть связаны определенными отношениями, такая модель обеспечивает целостность данных и отсутствие избыточности хранения. Поэтому она и используется в большинстве современных баз данных.

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

иерархической

реляционной

объектно-реляционной

объектно-ориентированной

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

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

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

СУБД Microsoft SQL server

Одной из самых распространенных СУБД, используемых в крупных организациях, является Microsoft SQL server, СУБД от компании Microsoft. Она использует реляционную модель данных. Microsoft SQL server является клиент-серверной СУБД, что делает ее хорошей для использования в крупных организациях, имеющих мощный сервер. Платформа данных MS SQL Server 2005 включает следующие инструменты для работы с базой данных:

Поддержка структурированных и неструктурированных (XML) данных.

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

Notification Services: развитые возможности уведомлений для разработки и внедрения масштабируемых приложений, способных доставлять персонализированные, своевременные обновления информации множеству соединённых и мобильных устройств.

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

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

Reporting Services: исчерпывающее решение для создания, управления и доставки как традиционных бумажных отчётов, так и интерактивных, основанных на технологии WWW отчётов.

Инструменты управления: SQL Server включает средства управления для развитого управления и настройки баз данных, также как и тесную интеграцию с такими инструментами, как Microsoft Operations Manager (MOM) и Microsoft Systems Management Server (SMS). Стандартные протоколы доступа к данным существенно уменьшают время, необходимое для интеграции данных SQL Server с существующими системами. В дополнение, поддержка Web служб встроена для обеспечения взаимодействия с другими приложениями и платформами.

Инструменты разработки: SQL Server предлагает интегрированные инструменты разработки для ядра базы данных, извлечения, трансформации и загрузки данных, извлечения информации, OLAP и отчётности, которые тесно интегрированы с Microsoft Visual Studio® для предоставления сквозных возможностей разработки приложений. Каждая главная подсистема SQL Server поставляется со своей собственной объектной моделью и набором API для расширения системы данных в любом направлении, которое уникально для вашего бизнеса.

Особенностью данной СУБД являются следующие средства:

SQL Server Management Studio. SQL Server упрощает управление путём предоставления единой интегрированной консоли управления для мониторинга и управления реляционной базой данных SQL Server, Integration Services, Analysis Services, Reporting Services, Notification Services и SQL Mobile на большом числе распределённых серверов и баз данных. Администраторы баз данных могут выполнять несколько задач одновременно, включая следующие: создание и выполнение запроса, просмотр серверных объектов, управление объектом, отслеживание активности системы и просмотр оперативной справки. SQL Server Management Studio содержит среду разработки для создания, редактирования и управления сценариев и хранимых процедур, используя Transact-SQL, многомерные выражения (MDX), XMLA и SQL Server Mobile Edition. Management Studio легко интегрируется с системой контроля версий. Management Studio также содержит инструменты для планирования задач Агента SQL Server и управления Планами Технического Обслуживания для автоматизации ежедневных задач обслуживания. Объединение задач управления и создания в одном инструменте в соединении со способностью управлять всеми типами серверов обеспечивает улучшенную производительность для администраторов баз данных.

Упреждающий мониторинг и настройка производительности SQL Server предоставляет более 70 новых мер внутренней производительности базы данных и использования ресурсов от памяти, блокировок и планирования до транзакций и операций сетевого и дискового ввода-вывода. Эти Динамические Представления Управления (Dynamic Management Views - DMV) обеспечивают большую прозрачность и видимость состояния базы данных и мощную инфраструктуру для упреждающего мониторинга жизнеспособности и производительности базы данных.

Объекты Управления SQL (SQL Management Objects) Объекты Управления SQL (SMO) являются новым набором объектов для программирования, которые предоставляет полную функциональность для управления базой данных SQL Server. Фактически, Management Studio построена на Объектах Управления SQL. SMO реализована в виде сборки Microsoft .NET Framework. SMO можно использовать для автоматизации распространённых задач администрирования SQL Server, таких как программное получение конфигурационных настроек, создание баз данных, выполнение сценариев Transact-SQL, создание заданий Агента SQL Server и планирование резервного копирования. Объектная модель SMO является более безопасной, надёжной и масштабируемой заменой Распределённым Объектам Управления (DMO), которые входят в состав предыдущих версий SQL Server.

Выделенное административное соединение SQL Server привносит выделенное административное соединение для доступа к серверу даже если он не отвечает или недоступен по иной причине. Это позволяет вам выполнять диагностические функции или операторы Transact-SQL для разрешения проблем на сервере. Административное соединение активируется членами фиксированной серверной роли sysadmin и доступно только через утилиту командной строки SQLCMD либо локально, либо с удалённой машины.

Поддержка Web служб В SQL Server можно разрабатывать Web службы XML в уровне базы данных, используя SQL Server в качестве слушателя HTTP. Это даёт новый способ доступа к данным приложениям, которые сосредоточены вокруг Web служб. В SQL Server 2005 можно использовать HTTP для прямого доступа к SQL Server, без применения слушателя промежуточного уровня, такого как Microsoft Internet Information Services (IIS). SQL Server предоставляет интерфейс Web службы для выполнения SQL выражений и вызова функций и процедур. Результаты запросов возвращаются в XML формате и здесь можно воспользоваться преимуществами инфраструктуры Web служб Visual Studio.

Важно отметить, что MS SQL Server рассчитана на работу именно на платформе Windows. Это ограничивает ее использование в различных сферах деятельности. Кроме того, компания Microsoft ориентируется на снижение стоимости СУБД, что приводит к уменьшению эффективности средств обеспечения надежности и безопасности. Это является важным фактором при выборе СУБД для организации.

СУБД Oracle

Другой распространенной СУБД является система от компании Oracle. Данная СУБД также является клиент-серверной, следовательно она предназначена для компаний, имеющих информационную сеть с мощным сервером. Эта СУБД использует тоже реляционную модель данных, но содержит элементы объектно-ориентированной модели данных. На 2009 год самой новой является версия Oracle 11g Release 2. Рассмотрим особенности этой программы.

Масштабируемость приложений. Модуль Oracle Real Application Clusters, следующее поколение продукта Oracle Parallel Server, обеспечивает прозрачную масштабируемость приложений за счет быстрого и эффективного совместного использования кластерного кэша для согласованного доступа к данным. Oracle Real Application Clusters предоставляет следующие возможности:

Коробочные приложения, которые можно масштабировать практически линейно и совершенно прозрачно

Совместимость со всеми приложениями без необходимости их перестройки

Быстрое увеличение кластеров, возможность быстрого добавления узлов и дисков

Аварийное восстановление Oracle Data Guard обеспечивает клиентов системой быстрого восстановления из аварийных ситуаций. Операции восстановления в Data Guard предусматривают возможные случаи, просты в использовании и полностью автоматизированы.

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

Логическая резервная база данных В Oracle Data Guard появился новый механизм резервирования базы данных – логическая резервная база данных (Logical Standby Database), отличающаяся от физической способом реализации. Материалом для обеих резервных баз данных служат журналы операций, но вместо прямого их применения логическая база данных экстраполирует из них операторы SQL и выполняет их на резервном сервере, как обычные SQL-команды. В итоге резервная база данных доступна для нормальных операций чтения и записи.

Передача журналов без потери данных Oracle Data Guard обладает способностью синхронно или асинхронно переписывать обновления журналов операций напрямую из основной базы данных в резервную. Это позволяет предложить всеобъемлющее решение аварийного восстановления без опоры на сторонние продукты для хранения оперативных копий журналов восстановления. Таким образом, в любой ситуации клиенты могут быть уверены, что их резервная база данных сохранит все операции, сделанные вплоть до момента сбоя.

Data Guard Broker Модуль Oracle выполняет функции контроля, управления и автоматизации, необходимые для поддержки логической и физической резервных баз данных. Например, он может восстановить основную базу данных в любую из резервных за одну операцию.

Восстановление после системных сбоев

Система Cache Fusion, обеспечивает быстрое восстановление после сбоя, что приводит к непрерывной доступности данных и приложений.

Real Application Clusters Кластерная архитектура обеспечивает более высокий уровень доступности, чем одноузловая конфигурация, поскольку устраняется единый источник сбоев – сервер. В кластерной конфигурации с двумя узлами при аварии системы на одном узле приложение продолжит работу на оставшемся.

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

Быстрое восстановление через заданный интервал времени В Oracle применяется технология быстрого восстановления Fast-Start Time-Based Recovery, позволяющая администраторам баз данных задавать требуемый верхний предел для времени восстановления (в секундах). При перезагрузке после сбоя или аварии системы пользователи будут вновь подключены к их приложению не позднее этого времени.

Снимок состояния системы и возобновление работы Часто у администраторов баз данных возникает проблема выбора: разобраться в причине сбоя или быстрее восстановить работу системы. С помощью Flash Freeze администратор может сделать «снимок» состояния системы в момент сбоя, быстро перезапустить базу данных, а затем в автономном режиме проанализировать полученные данные.

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

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

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

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

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

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

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

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

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

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

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

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

Главная > Программа

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

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

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

По типу управляемой базы данных СУБД разделяются на:
    Сетевые Иерархические Реляционные Объектно-реляционные Объектно-ориентированные
По архитектуре организации хранения данных:
    локальные СУБД (все части локальной СУБД размещаются на одном компьютере) распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах)
По способу доступа к БД:
    Файл-серверные
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком - высокая загрузка локальной сети.На данный момент файл-серверные СУБД считаются устаревшими.Примеры: 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 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 - реляционная СУБД, ныне выпускаемая компанией 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 является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.26 февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд.О происхождении MySQLMySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM - подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL. Откуда происходит название «MySQL» - доподлинно не известно. Разработчики дают два варианта: либо потому, что практически все наработки компании начинались с префикса My, либо в честь девочки по имени My, дочери Майкла Монти Видениуса, одного из разработчиков системы.Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено Open Source-разработчиком Ambrose Twebaze.

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

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

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

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

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

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

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

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

По данным ряда аналитических отчетов, наиболее высоко ценятся средства поддержки безопасности СУБД 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 являются надежность, оптимальная стоимость и высокая производительность. В последние годы особое внимание при развитии этого продукта уделялось средствам обеспечения безопасности и повышению производительности. Именно безопасность, производительность и масштабируемость наиболее высоко оцениваются сегодня пользователями и администраторами этой СУБД.

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

Последнее обновление: 24.06.2017

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

SQL Server был создан компанией Microsoft. Первая версия вышла в 1987 году. А текущей версией является версия 16, которая вышла в 2016 году и которая будет использоваться в текущем руководстве.

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

SQL Server характеризуется такими особенностями как:

    Производительность. SQL Server работает очень быстро.

    Надежность и безопасность. SQL Server предоставляет шифрование данных.

    Простота. С данной СУБД относительно легко работать и вести администрирование.

Центральным аспектом в MS SQL Server, как и в любой СУБД, является база данных. База данных представляет хранилище данных, организованных определенным способом. Нередко физически база данных представляет файл на жестком диске, хотя такое соответствие необязательно. Для хранения и администрирования баз данных применяются системы управления базами данных (database management system) или СУБД (DBMS). И как раз MS SQL Server является одной из такой СУБД.

Для организации баз данных MS SQL Server использует реляционную модель. Эта модель баз данных была разработана еще в 1970 году Эдгаром Коддом. А на сегодняшний день она фактически является стандартом для организации баз данных.

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

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

Через ключи одна таблица может быть связана с другой, то есть между двумя таблицами могут быть организованы связи. А сама таблица может быть представлена в виде отношения ("relation").

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

Изначально язык SQL был разработан в компании IBM для системы баз данных, которая называлась System/R. При этом сам язык назывался SEQUEL (Structured English Query Language). Хотя в итоге ни база данных, ни сам язык не были впоследствии официально опубликованы, по традиции сам термин SQL нередко произносят как "сиквел".

В 1979 году компания Relational Software Inc. разработала первую систему управления баз данных, которая называлась Oracle и которая использовала язык SQL. В связи с успехом данного продукта компания была переименована в Oracle.

Впоследствии стали появляться другие системы баз данных, которые использовали SQL. В итоге в 1989 году Американский Национальный Институт Стандартов (ANSI) кодифицировал язык и опубликовал его первый стандарт. После этого стандарт периодически обновлялся и дополнялся. Последнее его обновление состоялось в 2011 году. Но несмотря на наличие стандарта нередко производители СУБД используют свои собственные реализации языка SQL, которые немного отличаются друг от друга.

Выделяются две разновидности языка SQL: PL-SQL и T-SQL. PL-SQL используется в таких СУБД как Oracle и MySQL. T-SQL (Transact-SQL) применяется в SQL Server. Собственно поэтому в рамках текущего руководства будет рассматриваться именно T-SQL.

В зависимости от задачи, которую выполняет команда T-SQL, он может принадлежать к одному из следующих типов:

    DDL (Data Definition Language / Язык определения данных). К этому типу относятся различные команды, которые создают базу данных, таблицы, индексы, хранимые процедуры и т.д. В общем определяют данные.

    В частности, к этому типу мы можем отнести следующие команды:

    • CREATE : создает объекты базы данных (саму базу даных, таблицы, индексы и т.д.)

      ALTER : изменяет объекты базы данных

      DROP : удаляет объекты базы данных

      TRUNCATE : удаляет все данные из таблиц

    DML (Data Manipulation Language / Язык манипуляции данными). К этому типу относят команды на выбору данных, их обновление, добавление, удаление - в общем все те команды, с помощью которыми мы можем управлять данными.

    К этому типу относятся следующие команды:

    • SELECT : извлекает данные из БД

      UPDATE : обновляет данные

      INSERT : добавляет новые данные

      DELETE : удаляет данные

    DCL (Data Control Language / Язык управления доступа к данным). К этому типу относят команды, которые управляют правами по доступу к данным. В частности, это следующие команды:

    • GRANT : предоставляет права для доступа к данным

      REVOKE : отзывает права на доступ к данным

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Системы баз данных предоставляют логическую независимость файлов, т.е., иными словами, логическую структуру базы данных можно изменять без необходимости внесения каких-либо изменений в прикладные программы базы данных. Например, добавление атрибута к уже существующей в системе баз данных структуре объекта с именем 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).