Что такое sql server

Введение в MS SQL Server и T-SQL

Что такое SQL Server и T-SQL

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

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

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 : удаляет все данные из таблиц

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

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

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

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

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

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

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

Источник

Как настроить и запустить Microsoft SQL Server

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

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

MS SQL Server

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

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

Обзор возможностей MS SQL Server

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

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

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

Преимущества MS SQL Server :

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

Эволюция SQL Server

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

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

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

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Запуск Microsoft SQL Server

Для примера будет использована версия сервера баз данных выпуска 2005 года. Запуск сервера можно произвести несколькими способами:

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Для запуска сервера баз данных запускаем приложение. В диалоговом окне « Соединение с сервером » в поле « Имя сервера » выбираем нужный нам экземпляр. В поле « Проверка подлинности » оставляем значение « Проверка подлинности Windows ». И нажимаем на кнопку « Соединить »:

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Основы администрирования SQL Server

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

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

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Основная часть настроек сервера баз данных доступна в окне « Свойства сервера »:

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Источник

Реляционные СУБД – сравнение MySQL и SQL сервер

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

База данных играет важную роль для каждого современного веб-приложения. Благодаря динамической природе веб-приложений сейчас, даже простейшие приложения требуют некоторых механизмов хранения, доступа и изменения данных (вот почему в Hostinger мы предлагаем неограниченные базы данных MySQL для наших клиентов с премиум и бизнес аккаунтами). Естественно, поскольку важность баз данных стремительно растёт, реляционные системы управления базами данных или реляционные СУБД набирают свою популярность (Relational Database Management Systems – RDBMS)

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

Не будет ошибкой сказать, что MySQL и SQL сервер – это две наиболее популярные реляционные СУБД среди существующих, хотя Oracle и Postgres найдётся, что сказать по этому поводу. Несмотря на то, что мы постепенно становимся свидетелями перехода с SQL на NoSQL, первые всё же продолжают доминировать. Это означает, что сейчас всё ещё актуально изучить как MySQL, так и SQL сервер.

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

MySQL и SQL сервер – сравнение

Что такое MySQL?

Разработанная в середине 90х (позже приобретённая Oracle), MySQL была одной из первый баз данных с открытым исходным кодом и остаётся таковой и до сегодня. Это значит, что существует несколько альтернатив MySQL. Но различия между этими вариантами не слишком явные; синтаксис и основная функциональность остаётся одинаковой.

А что является отличительной чертой MySQL, так это её популярность среди стартап-сообществ. Открытый код и бесплатность даёт возможность разработчикам легко начать с MySQL и изменять свой код, когда понадобится. MySQL обычно используется вместе с PHP (англ.) и сервером Apache, в дистрибутивах Linux, что и привело к известной аббревиатуре LAMP (Linux, Apache, MySQL, PHP).

Что такое SQL сервер?

SQL сервер также известен, как Microsoft SQL Сервер, появился значительно раньше, чем MySQL. Microsoft разработал SQL сервер в 80х, с обещанием разработать надёжную и расширяемую реляционную СУБД. Они остаются ядром качества SQL сервера по прошествии всех этих лет, и предоставляют незаменимое решение для крупномасштабного корпоративного программного обеспечения.

Ключевые различия между MySQL и SQL сервером

Теперь, после краткого знакомства с системами, давайте посмотрим на несколько ключевых различий между MySQL и SQL сервером:

MySQL

Microsoft SQL Server

Обе цепочки кода достигают одного и того же результата – возвращают 3 записи со значением самого молодого возраста из таблицы имён людей. Но синтаксис сильно отличается. Конечно, синтаксис – это субъективный параметр оценки, поэтому мы не может тут давать рекомендацию; выбирайте то, что кажется вам более интуитивно понятным. Полный список описательных различий между MySQL и SQL сервером можно найти здесь (англ.).

Заключение

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

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

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

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

Источник

Microsoft SQL Server

Написана наC, C++, C#Операционная системаUNIX,

Последняя версияSQL Server 2014 (22 мая 2014 год)ЛицензияMicrosoft EULAСайтmicrosoft.com/sqlserver/en/us/default.aspx

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

Содержание

История выпусков SQL Server [ ]

ВерсияГодНазваниеКодовое имяВнутренняя версия
1.0 (OS/2)1989SQL Server 1.0 (16 bit)Ashton-Tate / MS SQL Server
1.1 (OS/2)1991SQL Server 1.1 (16 bit)
4.21 (WinNT)1993SQL Server 4.21SQLNT
6.01995SQL Server 6.0SQL95
6.51996SQL Server 6.5Hydra
7.01998SQL Server 7.0Sphinx515
1999SQL Server 7.0 OLAP ToolsPalato mania
8.02000SQL Server 2000Shiloh539
8.02003SQL Server 2000 64-bitLiberty539
9.02005SQL Server 2005Yukon611 и 612
10.02008SQL Server 2008Katmai661
10.252010Azure SQL DBCloud Database or CloudDB
10.502010SQL Server 2008 R2Kilimanjaro (aka KJ)665
11.02012SQL Server 2012Denali706
12.02014SQL Server 2014SQL14782
13.02016SQL Server 2016

Предыстория (по 1986) [ ]

Первые шаги (1985—1987) [ ]

Вскоре после объявления, IBM анонсировало ещё и специальную, усовершенствованную версию этой ОС — OS/2 Extended Edition. Эта версия должна была комплектоваться с СУБД OS/2 Database Manager и несколькими другими сетевыми и серверными решениями. И хотя Database Manager был более ориентирован на мейнфреймы, а не на персональные компьютеры, тем не менее, на базе их общей разработки IBM могла предложить покупателям более выгодный продукт, нежели конкуренты. Необходимость в собственных разработках в области управления базами данных стала для Microsoft очевидной и весьма актуальной.

Для решения этой проблемы Microsoft обратилась к Sybase, которая на тот момент ещё не выпустила коммерческую версию своего продукта DataServer (это произошло чуть позже, в мае 1987 года и только для рабочих станций Sun под управлением UNIX). Причиной обращения было то, что предрелизная версия DataServer хоть и не была продуктом, рассчитанным на широкое применение, тем не менее за счёт реализации новых идей (клиент-серверной архитектуры, в частности) новая СУБД получила весьма неплохие отзывы. В результате подобного соглашения Microsoft получила бы эксклюзивные права на версию DataServer для OS/2 и всех ОС, разработанных самой Microsoft, а Sybase помимо роялти от Microsoft получила бы доступ к части рынка, занимаемого продуктами Microsoft (в том числе и новой OS/2). Поскольку производительность домашних ПК невысока, то Sybase рассматривала данный сегмент рынка как основу для последующих продаж своего продукта для более производительных систем на базе ОС UNIX, тем более, что Microsoft благодаря своей налаженной сети дистрибьюции могла обеспечить значительно более высокие продажи DataServer, чем сама Sybase. 27 марта 1987 года президент Microsoft Джон Ширли (англ.) и один из основателей Sybase Марк Хофманн (англ.) (являвшийся на тот момент и президентом компании) подписали договор.

На тот момент львиную долю рынка СУБД для ПК занимала компания Ashton-Tate со своей dBASE. Поскольку DataServer обладал несколько иными возможностями по сравнению с dBASE, то данные продукты в качестве потенциальных конкурентов не рассматривались. Это позволило Microsoft заключить сделку с Ashton-Tate, согласно которой последняя должна была заняться продвижением DataServer среди сообщества пользователей её dBASE.

SQL Server 1.0 (1988—1989) [ ]

Разработка [ ]

Sybase же, несмотря на то, что её название в наименовании нового продукта не фигурировало, являлась по сути главным разработчиком из всей троицы компаний. Вклад же Microsoft, напротив, был весьма невелик. В Sybase уже была сформирована небольшая команда, задачей которой было портирование движка DataServer на OS/2, а также перенос клиентского интерфейса DB-Library на MS-DOS и OS/2. Microsoft же отвечала за тестирование и проект-менеджмент, а также разработала несколько дополнительных утилит, облегчавших установку и администрирование SQL Server 1.0.

Новый продукт задумывался как порт Sybase DataServer на OS/2, продажами которого должны были заняться как Microsoft, так и Ashton-Tate. Параллельно разрабатываемая Ashton-Tate новая версия dBASE IV также должны была быть доступной в серверном варианте, что позволило бы использовать язык и средства разработки dBASE IV для создания клиентских приложений, способных работать с новым SQL Server. Новая клиент-серверная модель должна была дать возможность dBASE выйти на новый уровень производительности, предоставив возможность работать с данными гораздо большему количеству пользователей, чем это могла позволить распространённая на тот момент модель работы с общими файлами.

Бета-версии [ ]

MDK обладал большим количеством ошибок и недостатков, тем не менее он работал на домашних компьютерах (с процессором, например, Intel 80286 с частотой 10МГц, 6 Мб оперативной памяти и жёстким диском объёмом 50 Мб).

Выход [ ]

К 1990 году ситуация лучше не стала. Планы по совместному продвижению продукта, в результате чего SQL Server должен был завоевать позиции в большом сообществе dBASE-разработчиков, провалились. Несмотря на перенос сроков выхода десктопной версии dBASE IV (вышла в 1989 году), она всё же содержала большое количество ошибок, благодаря чему заслужила дурную репутацию. Серверная версия (Server Edition), которая должна была упростить разработку высокопроизводительных приложений для SQL Server так и не вышла. Разработка приложений в dBASE для SQL Server стала представлять собой проблему, поскольку разработка однопользовательского запись-ориентированного приложения кардинально отличалась от разработки многопользовательских приложений, для которых нужно ещё было решать возникающие проблемы с параллельным выполнением задач, корректной параллельной работой с данными, а также невысокой пропускной способностью тогдашних локальных сетей. Первые попытки соединить инструменты dBASE с SQL Server приводили к неэффективной совместной работе этих продуктов (так, например, построчный запрос данных превращался в проблему, а курсоров с произвольным переходом по строкам тогда ещё не существовало).

В результате, Ashton-Tate, двумя годами ранее занимавшая лидирующие позиции на рынке СУБД для домашних ПК, ныне была вынуждена бороться за своё существование, что в свою очередь вынудило её вновь переключиться на свой основной продукт dBASE. Microsoft же тем временем запустила в продажу OS/2 LAN Manager под собственной торговой маркой (тогда как изначально планировалось лишь поставлять OEM-версии), и ей необходимо было, чтобы SQL Server помог заложить фундамент для разработки клиент-серверных инструментов, способных работать с Microsoft LAN Manager и Microsoft OS/2. Всё это привело к принятию решения о прекращении совместного продвижения SQL Server, после чего данный продукт был немного изменён и представлен уже как Microsoft SQL Server.

SQL Server 1.1 (1990) [ ]

Лицензирование SQL Server 1.1 предусматривало следующие варианты [6] :

К началу 1991 года уже несколько десятков сторонних программных продуктов могли работать с SQL Server. Значительную роль в этом сыграла поддержка со стороны SQL Server динамических библиотек, реализованных в Windows 3.0, причём в SQL Server была реализована эта поддержка практически с самого начала продаж Windows 3.0. Благодаря этому Microsoft SQL Server планомерно начал завоевывать позиции лидера среди СУБД, ориентированных на Windows-платформу. Тем не менее, несмотря на улучшение ситуации, всё ещё актуальной оставалась проблема с наличием инструментов, поддерживающих разработку на языках, отличных от Си.

В целом, политика ранней и полной поддержки приложений для Windows 3.0 обусловила и успех Microsoft SQL Server, а кроме того очевидный успех Windows как платформы также потребовал изменений как в SQL Server, так и в самой Microsoft. В частности, команда в Microsoft, занимавшаяся портированием чужого продукта, постепенно перешла к полноценному тестированию и проект-менеджменту, а затем — и к разработке собственных инструментов для облегчения установки и администрирования SQL Server. Но несмотря на то, что вместе с SQL Server 1.1 Microsoft поставляла собственное клиентское ПО и утилиты, программные библиотеки, а также инструменты для администрирования, движок SQL Server по-прежнему писался компанией Sybase, тогда как у Microsoft не было даже доступа к исходному коду. Подобная модель предусматривала, что для выполнения каких-либо запросов на изменение в функционале SQL Server (в том числе и для исправления ошибок) Microsoft должна была направлять эти запросы Sybase, которая и вносила соответствующие изменения. Microsoft же стремилась к созданию полноценной и самостоятельной команды поддержки SQL Server, для чего нанимала на работу инженеров, имевших опыт работы с базами данных. Но, не имея доступа к исходному коду, команда столкнулась с невозможностью решать критичные для клиентов вопросы поддержки продукта. Кроме этого, существовала проблема с зависимостью Microsoft от Sybase в вопросах исправления ошибок в продукте, следствием чего являлась недостаточная скорость исправления Sybase критичных ошибок, заявленных Microsoft.

В начале 1991 года Microsoft и Sybase достигли соглашения, согласно которому первая получала доступ к исходному коду SQL Server, но исключительно в режиме чтения (то есть без возможности вносить изменения). Это соглашение дало возможность команде, занимавшейся поддержкой продукта (т. н.англ. SQL Server group), читать код для лучшего понимания логики работы продукта в каких-либо неочевидных ситуациях. Помимо этого, Microsoft, воспользовавшись удобным случаем, собрала небольшую команду разработчиков, которые занялись изучением исходного кода SQL Server. Эта группа занималась построчным исследованием кода в тех частях программы, где было подозрение на наличие ошибки, и делала «виртуальные исправления ошибок» (поскольку возможности вносить изменения в код SQL Server у них по-прежнему не было). Однако, когда подобные отчеты с разбором исходного кода стали направляться в Sybase, то исправление критичных для Microsoft ошибок, стало происходить существенно быстрее. Спустя несколько месяцев в подобном режиме работы, в середине 1991 года Microsoft наконец-то получила возможность исправлять ошибки напрямую в коде. Но поскольку исходный код продукта по-прежнему контролировала Sybase, то все изменения в коде предварительно отправлялись ей на проверку. В итоге, разработчики Microsoft стали экспертами по коду SQL Server, что позволило с одной стороны улучшить его поддержку, а с другой — больше внимания уделять его качеству.

SQL Server 1.11 (1991) [ ]

Что такое sql server. Смотреть фото Что такое sql server. Смотреть картинку Что такое sql server. Картинка про Что такое sql server. Фото Что такое sql server

Схема работы Microsoft SQL Server 1.11 в локальной сети Netware при помощи Microsoft Named Pipes API и стека протоколов Netware IPX/SPX

Но с другой стороны, SQL Server 1.11 обладал весьма ощутимыми ограничениями, в том числе и масштабируемости. Это был 16-битный продукт, поскольку OS/2 поддерживала лишь 16-битное адресное пространство для приложений, а его производительность была ограничена отсутствием механизмов высокой производительности в самой OS/2, как например, асинхроного ввода-вывода. Несмотря на то, что SQL Server на OS/2 на тот момент мог справиться с большинством задач, тем не менее существовал некий предел, после которого сервер просто начинал «захлёбываться». Чётко установленной границы не существовало, но SQL Server на OS/2 использовался для рабочих групп, численностью до 50 человек. Для более крупных групп существовала версия Sybase SQL Server для высокопроизводительных систем на базе ОС UNIX или VMS. И вот здесь как раз и проходила граница продаж между Microsoft и Sybase. Клиенты, выбирающие продукт от Microsoft хотели быть уверены, что их запросы не «перерастут» его. Большое число программных инструментов, разработанных для Microsoft SQL Server, работали без серьёзных доработок с Sybase SQL Server, а приложения, запросы которых уже не могли быть удовлетворены OS/2, легко могли быть перенесены на более мощную UNIX-систему. Подобная взаимосвязь была выгодна обеим компаниям, поскольку большое число программных инструментов для Microsoft SQL Server как правило без проблем работало и с Sybase SQL Server, а приложения, которым производительности OS/2 уже было недостаточно, легко работали и с UNIX-серверами.

SQL Server 4.2 (1991—1992) [ ]

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

Однако возник вопрос о следующем номере новой версии. Дело в том, что параллельно с продажами Microsoft SQL Server 1.0 велись продажи и Sybase SQL Server 3.0, который привнес некоторые весьма используемые механизмы на рынок СУБД для ПК, как например, типы данных text и image, а также режим просмотра данных (англ. browse mode). И следующей версией Sybase SQL Server стала версия 4.0 для наиболее распространённых платформ, и версия 4.2 — для менее распространённых. Таким образом, разработка новой версии Microsoft SQL Server фактически велась на базе исходного кода Sybase SQL Server 4.2. Соответственно, для маркетинговых целей новая версия Microsoft SQL Server также получила номер 4.2.

Однако, ещё в мае 1991 года Microsoft и IBM объявили о прекращении совместной разработки OS/2, поскольку к тому времени уже стало очевидным, что пользователи предпочитали Windows, а не OS/2. Таким образом, Microsoft решила сосредоточиться на дальнейшем развитии Windows, равно как и на ПО для них. К этому времени Microsoft уже вела разработку новой версии ОС на базе микроядра под кодовым названием NT (сокр. от англ. new technology — «новая технология»). Изначально предполагалось, что это будет новая версия OS/2 (иногда даже упоминалась как OS/2 3.0). После прекращения совместной разработки проект было решено переориентировать на Windows, то есть добавить пользовательский интерфейс в стиле Windows и программный интерфейс Win32 API, в результате чего проект получил новое название — Microsoft Windows NT.

Согласно имевшимся на тот момент планам, первая версия Windows NT должна была выйти не ранее чем через 2 года, а Microsoft SQL Server в конечном счёте должен был быть перенесён на Windows NT, что выглядело как не самый разумный ход. Однако, при всём при этом Microsoft приходилось поддерживать и разработку SQL Server для OS/2, при том, что OS/2 теперь была по сути конкурентным продуктом для самой же Microsoft. Microsoft же пошла на это, поскольку альтернативы у неё на тот момент не было.

Microsoft разрабатывала SQL Server 4.2 для грядущей OS/2 2.0, первой 32-битной версии OS/2. Поскольку SQL Server 4.2 должен был стать 32-битным, то его портирование с линейки для UNIX представлялось более простым, поскольку в этом случае проблема с сегментацией памяти не была насущной. Теоретически, 32-битный SQL Server должен был стать и более производительным. В прессе появлялось множество статей, посвящённых сравнению производительности на 16- и 32-битных платформах, и практически все авторы были уверены, что переход на 32-битность даст существенный прирост производительности (хотя в некоторых статьях и приводилось уточнение, при каких условиях это будет (или не будет) именно так). В качестве главного источника прироста производительности рассматривалась адресация памяти. Для её выполнения в 16-битном сегментированном адресном пространстве OS/2 линейки 1.x требовались как минимум 2 инструкции: первая инструкция загружала нужный сегмент памяти, вторая — загружала нужный адрес в данном сегменте. При 32-битной адресации отпадала необходимость в инструкции для загрузки сегмента, и таким образом память могла адресоваться лишь одной инструкцией. Согласно некоторым расчётам, благодаря этому потенциальный общий прирост производительности мог составить до 20 %.

На тот момент множество людей ошибочно полагало, что SQL Server должен быть запущен на полноценной 32-битной платформе, чтобы иметь возможность адресовать более 16 Мб памяти. Будучи запущенным на OS/2 1.x, приложение получало доступ лишь к 16 Мб реальной памяти. И хотя там была возможность получить более 16 Мб виртуальной памяти, но тогда начинала оказывать свое негативное влияние подкачка страниц. В OS/2 2.0 приложение могло адресовать более 16 Мб памяти и при этом избежать её подкачки. В свою очередь, это позволяло SQL Server иметь большой кэш и получать все необходимые данные из памяти быстрее, чем с диска, что очень положительно влияло на прирост производительности. Однако, с точки зрения приложений, вся память в OS/2 была виртуальной (как в версии 1.х, так и в 2.х), поэтому даже 16-битная версия SQL Server могла воспользоваться преимуществами OS/2 2.0 для получения доступа к большему пространству реальной памяти. С этой точки зрения 32-битная версия была просто не нужна.

Однако, как оказалось, первые бета-версии OS/2 2.0 были значительно медленнее OS/2 1.x, сводя на нет все преимущества нового подхода к адресации памяти. В результате, пользователи вместо ожидаемого прироста производительности наблюдали её серьёзное падение при запуске первых сборок 32-битного SQL Server 4.2 на OS/2 2.0 (по сравнению с SQL Server 1.1).

Неожиданно, планы по выходу OS/2 2.0 к концу 1991 года подверглись пересмотру. Фактически, стало непонятно, будет ли IBM вообще заниматься выпуском версии 2.0. То есть, выхода OS/2 2.0 ранее конца 1992 года ждать не приходилось. В виду этой ситуации, Microsoft вынуждена была вернуться к 16-битной реализации SQL Server и перенацелить её на OS/2 1.3. На возврат обратно к 16-битной реализации разработчикам из Microsoft потребовалось около трёх месяцев, но тут возникла другая проблема: поставляемая IBM версия OS/2 1.3 работала только на её лицензионных компьютерах. Теоретически, сторонние производители ПК могли лицензировать OS/2 у Microsoft и поставлять её как часть OEM-соглашения. Однако спрос на OS/2 упал настолько, что большинство OEM-производителей предпочли не связываться с ней, в результате чего покупка OS/2 для сторонних ПК превратилась в проблему. В качестве временного решения проблемы Microsoft создала урезанную версию OS/2 версии 1.3 (кодовое название Tiger), которая поставлялась в одной коробке с Microsoft SQL Server и Microsoft LAN Manager. При этом всё очевиднее становился тот факт, что OS/2 — это уже «мёртвая» ОС.

Бета-тест Microsoft SQL Server 4.2 начался осенью 1991 года, а в январе 1992 года на Сан-Францисской конференции для разработчиков ПО, использующих Microsoft SQL Server, Билл Гейтс, тогдашний глава (CEO) Microsoft, и Боб Эпстейн, основатель и руководитель Sybase, официально анонсировали продукт. Версия 4.2 стала первой поистине совместно разработанной версией. Движок, работающий с БД, был портирован из исходного кода версии 4.2 для UNIX, причём над портированием и исправлением ошибок инженеры Microsoft и Sybase работали совместно. Более того, Microsoft создала библиотеки клиентского интерфейса для MS-DOS, Windows и OS/2, а также впервые в комплект поставки вошёл инструмент с графическим интерфейсом Windows для упрощения администрирования. Исходный код объединялся в штаб-квартире Sybase, а файлы исходного кода пересылались туда по модемной связи или через копирование и отправку магнитных лент.

Поставки Microsoft SQL Server 4.2 начались в марте 1992 года. Критика в профильной прессе была довольно благосклонной, равно как и отзывы покупателей продукта. Тем не менее, после начала поставок в 1992 году многие задавались вопросом о сроках выхода 32-битной версии SQL Server. Как показали дальнейшие события, данная версия движка стала последней версией, полученной Microsoft от Sybase (не считая нескольких исправлений ошибок, которыми компании ещё некоторое время продолжали обмениваться).

SQL Server for Windows NT (1992—1993) [ ]

В начале 1992 года команда разработчиков SQL Server оказалась на распутье. С одной стороны, уже имелась клиентская база SQL Server, у которых СУБД была установлена на OS/2. Эти клиенты уже ждали 32-битную версию SQL Server, причём версию для OS/2 2.0 и желательно сразу после её выпуска OS/2 2.0 корпорацией IBM, то есть они желали оставаться на OS/2 в обозримом будущем. Но проблема была в том, что не было точно известно, когда же выйдет OS/2 2.0. Представители IBM заявляли, что выпуск новой версии состоится осенью 1992 года. Многие воспринимали эти слова со скепсисом. Так например, Стив Баллмер, старший вице-президент Microsoft, публично поклялся, что он съест флоппи-диск, если IBM выпустит свой продукт в 1992 году.

С другой стороны, от разработчиков SQL Server требовали скорейшего переноса их продукта на Windows NT, причём желательно так, чтобы бета-версии обоих продуктов вышли примерно в одно время. Windows NT на тот момент рассматривалась как продукт Microsoft верхнего ценового диапазона, а с точки зрения разработчиков эта ОС обладала ещё и несколькими техническими преимуществами по сравнению с OS/2: асинхронный ввод-вывод, симметричная многопоточность, переносимость на RISC-архитектуру.

Кроме того, хотя Microsoft и решила в 1991 году вернуться к 16-битной версии SQL Server, но при этом работа над 32-битной версией не прекращалась. К марту 1992 года, когда только вышла версия 4.2, тесты показывали, что обе версии (и 16-битная и 32-битная) на бета-версиях OS/2 2.0 работают медленнее по сравнению с 16-битной версией, запущенной на OS/2 1.3. Возможно, после официального выхода OS/2 2.0 ситуация и изменилась бы, но имевшиеся на тот момент бета-версии указывали скорее на обратное. По факту работа получалась менее производительной и менее стабильной.

Поскольку ресурсы для разработки были ограниченными, то в текущей ситуации Microsoft не могла позволить себе заниматься разработкой под обе платформы сразу. В противном случае разработчики столкнулись бы еще с дополнительным ворохом проблем, а именно им пришлось бы добавлять в продукт абстрактный слой, который скрыл бы различия между операционными системами либо вести параллельную разработку двух версий продукта. Таким образом, разработчики в Microsoft приняли решение прекратить работу над 32-битной версией SQL Server для OS/2 2.0, вместо этого они вплотную занялись разработкой продукта для Windows NT. При разработке новой версии внимания переносимости SQL Server на OS/2 или другие ОС не уделялось, вместо этого решено было воспользоваться всеми преимуществами Windows NT. Соответственно, подобный подход фактически положил конец разработке SQL Server для OS/2 вообще, за исключением поддержки уже выпущенных версий и исправления в них ошибок. Microsoft же начала информировать своих клиентов о том, что появление будущих версии (в том числе 32-битной версии) SQL Server для OS/2 2.0 будет зависеть от наличия и объёма спроса покупателей, тогда как она сама переориентировалась на Windows NT. Восприятие клиентами подобной новости было различным: некоторые отнеслись с пониманием к подобной позиции, другим, чей бизнес напрямую зависел от OS/2, такая новость не понравилась.

Тем временем, Sybase так же работала над новой версией своей СУБД, которая должна была получить название System 10. В данной ситуации, как и в случае с разработкой версии 4.2, разработчикам нужно было чтобы новая версия Microsoft SQL Server была совместима с System 10 и имела тот же порядковый номер, что и продукт Sybase, выпущенный для UNIX. Таким образом, сложилась ситуация когда для Microsoft главной целью стала победа Windows NT над OS/2, а для Sybase — успех её System 10.

Несмотря на то, что System 10 еще не была даже переведена на этап бета-тестирования, уже имелись расхождения в планировании обеими компаниями выпуска новых версий продукта. Так, например, Microsoft желала как можно скорее портировать Microsoft SQL Server на Windows NT, равно как и получить версию System 10 для Windows NT, OS/2 2.0 или обеих сразу. В результате было достигнуто соглашение о том, что Microsoft портирует SQL Server 4.2 для OS/2 на Windows NT, причём начнёт это незамедлительно, а Sybase включит Windows NT в список приоритетных ОС для System 10. Таким образом, Windows NT станет одной из первых ОС, для которых будет выпущена соответствующая версия System 10. В свою очередь, Microsoft возобновит поддержку OS/2 для Sybase, так чтобы клиенты, желающие остаться на OS/2 вполне могли это сделать. Хотя Microsoft и надеялась, что большинство клиентов мигрирует на Windows NT, но было ясно, что на все 100 % этого не произойдёт. Поэтому в этом отношении подобная договорённость была даже выгодна Microsoft.

Кроме того, подобный план действий имел дополнительные преимущества с точки зрения разработки. Команда разработчиков Microsoft должна была работать над стабильной и проверенной версией 4.2, в которой они к тому времени уже превосходно разбирались, что сильно облегчало задачу её переноса на новую ОС. Sybase же в свою очередь могла полностью сконцентрироваться на разработке новой версии, не беспокоясь о проблемах, связанных с предварительными версиями ОС. В итоге, согласно имевшемуся на тот момент (1992 год) плану должны были выйти обе версии (System 10 и SQL Server для Windows NT), а компании продолжить совместную разработку продукта.

Команда в Microsoft, занимавшаяся разработкой SQL Server, приступила к ускоренной разработке первой версии SQL Server для Windows NT, поскольку команда должна была выпустить продукт в течение 90 дней после выхода Windows NT, но согласно поставленным планам они должны были уложиться в 30 дней. Тут расчёт был на то, что Windows NT теперь фактически являлась единственной платформой для SQL Server, а значит разработчикам не было нужды беспокоиться о проблемах, связанных с портированием, и в частности не нужно было заниматься разработкой абстрактного слоя для сокрытия различий операционных систем. Роль абстрактного слоя должна была сыграть сама Windows NT, которая изначально планировалась как портируемая ОС, то есть предполагалось выпустить её версии для различных машинных архитектур.

Как следствие, разработчики сделали плотную привязку функциональности SQL Server к функциональности Windows NT, например, обработку событий в едином месте, установку SQL Server в качестве службы Windows NT, экспорт статистики производительности СУБД в Windows NT Performance Monitor и т. д. Так как Windows NT предусматривала возможность запуска приложениями динамического кода (при помощи динамических библиотек), то для SQL Server была предусмотрена возможность создавать сторонними разработчиками собственные динамические библиотеки. В результате подобных изменений Microsoft SQL Server для Windows NT сильно стал отличаться от исходной версии 4.2 для OS/2, так как оказалось, что Microsoft фактически переписала ядро SQL Server (часть программы, отвечающей за взаимодействие с ОС) для работы с Win32 API напрямую.

Ещё одной задачей при разработке SQL Server для Windows NT было облегчение перехода с имеющихся установок на OS/2 на новую версию SQL Server и ОС. Разработчики желали, чтобы все приложения, написанные для SQL Server 4.2 для OS/2 смогли работать без изменений на SQL Server для Windows NT. Поскольку для Windows NT планировалась возможность двойной загрузки с MS-DOS или OS/2, то команда решила, что SQL Server для Windows NT должен обладать способностью напрямую читать и писать в базы данных, созданные в SQL Server для OS/2. Для достижения поставленных целей разработчики переработали внутреннюю архитектуру SQL Server, добавив при этом множество функций для администрирования, работы по сети и расширяемости, тогда как от добавления внешних функций в ядро движка пришлось отказаться. Также задачей стала совместимость диалектов языка SQL и возможностей версий СУБД для Windows NT и OS/2, тогда как новые возможности предполгалось добавить в версию, которая была бы разработана на основе System 10. Для разграничения совместимости с версией 4.2 для OS/2 и новыми разработками Sybase, Microsoft приняла решение назвать свою новую версию SQL Server для Windows NT 4.2 (то есть добавив номер версии), при этом маркетинговое название продукта должно было выглядеть как Microsoft SQL Server for Windows NT, а внутреннее обозначение — SQL NT.

В июле 1992 года Microsoft провела конференцию для разработчиков ПО для платформы Windows NT и раздала альфа-версии Windows NT участникам конференции. Несмотря на то, что новая версия SQL Server не имела статсу даже «беты-версии», Microsoft всё же незамедлительно обнародовала через CompuServe 32-битные программные библиотеки, необходимые разработчикам для портирования своих приложений с OS/2 и 16-битных версий Windows на Windows NT. Сделано это было с учётом успеха распространения NDK среди разработчиков ПО для Windows 3.0 в 1990 году, Microsoft же надеялась повторить тот успех, снабдив разработчиков всеми необходимыми инструментами для разработки ПО под Windows NT.

В октябре 1992 года Microsoft выпустила первую бета-версию SQL Server для Windows NT. Данная версия обладала всем основным (из заявленного) функционалом, а все его компоненты обладали полной поддержкой Win32. Данная версия распространялась при помощи более ста сайтов. Для СУБД подобное количество сайтов являлось беспрецедентным, поскольку типичное количество сайтов, выделяемых для распространения этого типа ПО, как правило не превышало 10.

Параллельно с рассылкой NDK всё ещё продолжались поставки версии SQL Server для OS/2 (они продолжились и в следующем году). К марту 1993 года Microsoft выпустила бета-версию продукта. Данную версию (SQL Server Client/Server Development Kit (CSDK)) можно было свободно купить за небольшую плату. Для его поддержки MIcrosoft организовала открытый форум на CompuServe и не требовала с тех, кто к ней обращался, подписания соглашения о неразглашении сообщаемых сведений. Таким образом удалось реализовать более трёх тысяч комплектов CSDK. К маю 1993 года количество обращений за поддержкой предварительной версии продукта превысило количество обращений по поводу версии для OS/2. Несмотря на количество заявок, общая реакция на предварительную версию продукта была довольно положительной.

В июле 1993 года Microsoft выпустила Windows NT 3.1. В течение 30 дней после её выхода команда разработчиков SQL Server выпустила первую версию Microsoft SQL Server для Windows NT. Выход был весьма успешен: росли продажи как самой СУБД, так и ОС для неё.

К началу декабря 1993 года значительная доля клиентов мигрировала с OS/2-версии на SQL Server для Windows NT. Опросы свидетельствовали о том, что те, кто ещё не перешёл на новую версию для Windows NT, планировали это сделать даже невзирая на объявление Sybase о намерении разрабатывать System 10 для OS/2. Переход с версии SQL Server для OS/2 на версию для Windows NT для приложений происходил довольно безболезненно, а кроме того при переходе на новую версию наблюдался рост производительности. Как следствие, через 9 месяцев продажи SQL Server уже в два раза превосходили продажи на начало этого периода. При этом 90 % продаж приходилось на новую версию для Windows NT, тогда как на старую версию для OS/2 — оставшиеся 10 %.

SQL Server 6.0 (1993—1995) [ ]

Основная статья: Microsoft SQL Server 6.0

Успех Microsoft вызвал рост напряжённости в отношениях с Sybase. Ситуация на рынке СУБД в конце 1993 года уже сильно отличалась от ситуации 1987 года, когда Microsoft и Sybase подписывали контракт. В 1993 году Sybase уже являлась успешной софтверной компанией, на рынке СУБД уступая лишь корпорации Oracle. Аналогично, за прошедшее время с 1987 года значительно выросла и Microsoft. Вместе с ней выросла и команда разработчиков SQL Server (в 1990 году их было около дюжины человек, а в 1993 году — уже более 50), не считая тех, кто занимался маркетингом и поддержкой продукта. Эти разработчики уже вполне хорошо знали внутренние механизмы SQL Server, а также обладали большим опытом по разработке аналогичной версии для Windows NT. Таким образом, Microsoft уже обладала всеми необходимыми ресурсами для самостоятельной разработки SQL Server, но соглашение с Sybase 1987 года связывало её, поскольку контракт подразумевал лишь лицензирование ею разработок у Sybase. Согласно действовавшим ограничеиям этого контракта, Microsoft не могла добавлять новую функциональность или вносить любые другие изменения в код, не согласовав их предварительно с Sybase.

Ещё одним поводом для взаимного недовольства стало окончательное расхождение в потребностях при разработке SQL Server. Например, разработчики Microsoft желали интегрировать в SQL Server поддержку MAPI (Messaging API), но поскольку данная возможность была специфичной для Windows, то разработчики Sybase не спешили давать добро на её внедрение, поскольку в сфере интересов Sybase была разработка продукта для UNIX, а не для Windows NT. Поскольку Sybase с портирования своего продукта под прочие ОС не получала никакой выгоды, то инициативы Microsoft начали встречать у неё всё большее сопротивление. Фактически, перенос версии 4.2 на Windows NT уже был предметом разногласий, поскольку добавление специфичной для Windows NT функциональности версии 4.2 существенно тормозило разработку System 10 для прочих платформ. Sybase разрабатывала свою System 10 уже с прицелом на упрощение дальнейшего портирования на различные ОС (в том числе и Windows NT), но с точки зрения Microsoft это означало отказ от максимально возможного использования средств Windows NT, поскольку System 10 не могла и не смогла бы при подобном подходе работать на Windows NT также эффективно, как если бы она изначально именно для неё и разрабатывалась.

Всё это привело к тому, что теперь уже обе компании не особо нуждались друг в друге, а их соглашение 1987 года уже фактически перестало действовать. Microsoft SQL Server для Windows NT уже был вполне жизнеспособной альтернативой Sybase SQL Server, работавшему на UNIX, Novell NetWare и VMS. Теперь клиенты могли приобрести Microsoft SQL Server по стоимости, равной части стоимости подобного решения для UNIX, причём MS SQL Server можно было запустить на менее мощном (а значит и более дешёвом оборудовании) и для его администрирования требовался менее квалифицированный специалист. Роялти же от Microsoft составили бы лишь небольшую долю доходов Sybase от продаж её продуктов для UNIX. Так что обе компании уже боролись фактически за одних и тех же клиентов, но при этом уже обе понимали, что пришло время менять характер их отношений.

12 апреля 1994 года Microsoft и Sybase объявили об окончании совместной разработки SQL Server. Каждая компания решила продолжить работу над собственной версией SQL Server. Microsoft получила возможность самостоятельно, без оглядки на Sybase, разрабатывать Microsoft SQL Server. Sybase теперь без помех могла заняться портированием System 10 на Windows NT (впервые SQL Server с логотипом Sybase стал бы доступен на платформе Windows NT, поскольку их соглашение подразумевало исключительно права Microsoft на разработку под свою платформу). При этом оба продукта должны были поддерживать обратную совместимость с существовавшими на тот момент приложениями для SQL Server, однако в дальнейшем эта идея никак не поддерживалась из-за слишком различающихся целей. Sybase разрабатывала свой продукт ориентируясь в первую очередь на его совместимость с версиями для UNIX, а Microsoft — совместимость с Windows NT. Вскоре, обе линейки SQL Server стали напрямую конкурировать друг с другом, причём Microsoft вновь попала в двойственную ситуацию: ей пришлось заниматься поддержкой конкурирующего продукта (System 10) на платформе Windows NT, поскольку доступность различных продуктов позитивно влияла на продажи ОС.

В начале 1994 года команда разработчиков SQL Server для новой версии планировала взять исходный код Sybase System 10, но разрыв соглашения полностью изменил эти планы. Если не считать пары исправлений, то последние исходники от Sybase были получены в начале 1992 года (версия 4.2 для OS/2). С учётом того, что Sybase собиралась выпустить System 10 для Windows NT к концу этого года, то с точки зрения пользователей это стало бы неплохим поводом обновить свою версию СУБД, перейдя с версии Microsoft SQL Server 4.2 на Sybase System 10. В свою очередь, для Microsoft это означало потерю клиентской базы, а следовательно нужно было быстро готовить ответный шаг.

В Microsoft был быстро запланирован амбициозный релиз, содержащий множество улучшений производительности и функциональности. Будущий релиз получил кодовое обозначение SQL95, намекая на запланированный к выходу релиз Windows 95. В 1994 году был актуален вопрос репликации данных средствами СУБД, поэтому репликация стала краеугольным камнем будущего релиза. То же касалось и позиционируемых курсоров — механизм, по мнению разработчиков, просто необходимый для преодоления разрыва между приложениями, ориентированными на работу со множеством записей, и реляционной БД. Ни одна из распространённых СУБД на тот момент ещё не обладала полнофункциональной реализацией позиционируемых курсоров для клиент-серверной архитектуры, и команда разработчиков SQL Server считала, что данный механизм положительно скажется на репутации их продукта. Кроме того, шла работа над абсолютно новым набором инструментов управления под кодовым названием Starfighter (впоследствии получивший название SQL Server Enterprise Manager), который планировалось включить в следующую версию. Список новых возможностей постпенно всё более расширялся.

Общая реакция клиентов на новость о планах Microsoft самостоятельно разрабатывать SQL Server была довольно негативной. 14 июня 1994 года в Сан-Франциско Microsoft провела общую конференцию для клиентов, аналитиков и журналистов. Джим Алчин, на тот момент занимавший должность старшего вице-президента Microsoft, рассказал о планах на будущее и о планируемом выпуске SQL95. Представленные планы и проекты были восприняты с одобрением, но многие открыто высказывали скепсис в отношении сроков выхода, сомневаясь в том, что Microsoft сможет выпустить обещанный продукт к концу 1995 года. В прессе новый релиз даже саркастически именовали SQL97 и даже SQL2000. Согласно же внутренним планам, разработчики готовились представить релиз в первой половине 1995 года. Первую бета-версию выпустили в октябре 1994 года. На этот момент Starfighter ещё не был закончен, но сам сервер был уже завершён, а поскольку именно при скачивании сервера создаётся наибольшая нагрузка на сайты с бета-версиями, то было решено выпустить его бета-версию в первую очередь. После выпуска последовала череда обновлений, продолжавшаяся несколько месяцев, параллельно с увеличением количества сайтов, достигшим показателя в 2000 сайтов.

Кроме того, ещё в 1993 году Microsoft приняла решение, что базы данных будут ключевой технологией в полной продуктовой линейке, и в конце 1994 года Microsoft начала заказывать экспертные консультации со стороны DEC и других ключевых вендоров рынка для команд разработчиков, работавших над проектами Microsoft Jet and SQL Server. Целью данных консультаций являлось планирование компонентов для нового поколения продуктов для работы с базами данных. В течение 1995 года пареллельно с выпусками основной командой SQL Server 6.0 и SQL Server 6.5, вторая команда разработала новый процессор запросов как часть компонента, который впоследствии превратился в Microsoft Data Engine (MSDE). Параллельно с разработкой MSDE велась работа и над OLE DB, набором интерфейсов, который позволил бы разрабатывать элементы основного продукта SQL Server как независимые компоненты. Такие компоненты обладали бы возможностью взаимодействовать друг с другом, используя слой OLE DB.

Примерно в течение девяти месяцев работа над SQL Server велась и по ночам. 14 июня 1995 года продукт был выпущен под названием Microsoft SQL Server 6.0, таким образом уложившись во внутрикорпоративные сроки. Вслед за выпуском версии последовало множество положительных публикаций в профильной прессе. Журнал InfoWorld по результатам второго ежегодного опроса о 100 компаниях с самыми инновационными приложениями в области клиент-серверных технологий поместил Microsoft SQL Server на второе место в рейтинге среди СУБД. При этом SQL Server увеличил свою долю с 15 % до 18 % среди опрошенных, указавших данную СУБД в качестве своего выбора, тогда как доля СУБД Oracle снизилась с 24 % до 19 %, соответственно. Доля Sybase также выросла с 12 % до 14 %. Три из десяти лучших приложений, отмеченных InfoWorld, были созданы с использованием Microsoft SQL Server.

SQL Server 6.5 (1995—1996) [ ]

Основная статья: Microsoft SQL Server 6.5

Однако были данные и о том, что доля Microsoft SQL Server на рынке значительно меньше, чем показывали подобные опросы. Одной из проблем оставалось то, что Microsoft всё ещё оставалась новичком в секторе СУБД. На тот момент явным лидером являлась Oracle, и серьёзные позиции были у Sybase, Informix и IBM. На рынке фактически сложилась весьма тревожная ситуация для Microsoft поскольку все эти компании начали выстраивать свои тактики продаж, нацеливая их против Microsoft SQL Server. При этом Sybase, Informix и Oracle планировали выпуск новых версий своих продуктов. В рамках стратегии развития SQL Server Microsoft продолжила активное усиление команды разработчиков SQL Server, история которой на тот момент уже насчитывала более четырёх лет. Были наняты как уже известные профессионалы на тот момент как, например, Джим Грей, Дейв Ломет и Фил Бернштейн, так и менее известные разработчики, в том числе бывшие работники DEC, работавшие над Rdb.

После выхода версии 6.0 началась работа над версией 6.5. В рамках новой версии планировалось реализовать те возможности, которые были отложены при выпуске версии 6.0, тем более, что за 18 месяцев её разработки требования к СУБД существенно подросли. Например, в 1995 году большую роль уже играли Интернет и передача данных. Выпуск версии 6.5 должен был удовлетворить данные запросы. Полнофункциональная бета-версия версии 6.5 была выпущена 15 декабря 1995 года при помощи 150 бета-сайтов. Официальные поставки новой версии начались в апреле 1996, то есть примерно через 10 месяцев после выхода версии 6.0.

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

Позднее, в декабре 1997 года, параллельно с выходом второй бета-версии SQL Server 7.0 была выпущена и версия SQL Server 6.5 EE, обладавшая поддержкой двухузловых отказоустойчивых кластеров Microsoft Cluster Server, 8 процессоров и адресного пространства 3 Гбайт.

SQL Server 7.0 (1996—1998) [ ]

Основная статья: Microsoft SQL Server 7.0

Разработка [ ]

В конце 1995 года началась разработка следующей версии SQL Server, получившей кодовое название Сфинкс (англ. Sphinx). Уже на первом этапе в код SQL Server был добавлен код будущего MSDE, а команда разработчиков, работавшая над ним, присоединилась к основной команде разработчиков SQL Server. Разработка нового поколения SQL Server преследовала одну главную цель: перепроектировать весь движок сервера баз данных таким образом, чтобы позволить пользователям масштабировать SQL Server согласно их желаниям. Это подразумевало собой последовательное наращивание возможностей для максимально эффективного использования более быстрых процессоров (а также увеличения их количества) и объёма памяти, доступного операционной системе. Кроме того, такое наращивание не должно было ограничивать возможность добавления новой функциональности в любой из компонентов, то есть, например, в код обработчика запросов можно было также легко добавить новый алгоритм как подключить новый жёсткий диск к компьютеру. Кроме подобного наращивания возможностей, SQL Server должен был поддерживать новые классы приложений для баз данных, а это в свою очередь означало процесс, обратный наращиванию возможностей, а именно урезание требований к аппаратному обеспечению, чтобы продукт смог работать и значительно более слабых системах, как например, домашние ПК или ноутбуки.

В ближайшей перспективе благодаря подобному перепроектированию планировалось достичь двух целей:

Бета-версии [ ]

В июне 1997 года состоялся ограниченный выпуск первой бета-версии нового SQL Server 7.0. В декабре того же года нескольким сотням пользователей была разослана для тестирования вторая бета-версия продукта. Из-за перехода к новой архитектуре при обновлении версии SQL Server пользователям требовалось полное изменение баз данных и их структур. Для поддержки перехода клиентов на новую версию была объявлена специальная программа 1K Challenge, в рамках которой 1000 клиентов могли прислать разработчикам SQL Server копии своих баз данных для портирования их на версию 7.0. Спецлаборатория для проверки результатов портирования была создана в том же редмондском кампусе, где размещалась команда разработчиков SQL Server. Еженедельно с февраля по август 1998 года четверо или пятеро сторонних компаний-разработчиков ПО на неделю присылали свои группы разработчиков в Microsoft, в течение которой они в лаборатории проверяли, что их продукты будут без каких-либо проблем работать с SQL Server 7.0. При обнаружении каких-либо проблем ведущие разработчики SQL Server сразу занимались их решением, предварительно обсудив варианты решений с гостями.

В июне 1998 года была выложена версия Beta 3 на специально выделенном для этого веб-сайте. Вместе с бета-версией было опубликовано и несколько примеров решений задач, демонстрируюших новые возможности продукта. Кроме того, был запущен специальный новостной сервер, чтобы любой пользователь версии Beta 3 мог сообщить о найденных ошибках или задать вопрос разработчикам о новых возможностях продукта. Всего более 120 тысяч тестировщиков получили SQL Server 7.0 Beta 3. В это число вошли компании, напрямую заказавшие версию через веб-сайт Microsoft, подписчики MSDN, а также участники официальной программы по бета-тестированию Microsoft Beta Program (которые получают бета-версии всех продуктов Microsoft по мере их выхода).

Выход [ ]

Выход же версии 7.0 состоялся 2 декабря 1998 года как билд 7.00.623.07, при этом заморозка кода состоялась 27 ноября 1998 года. Для свободного заказа продукт стал доступен в январе 1999 года.

SQL Server 2000 (1998—2000) [ ]

Как и в предыдущие разы, работа над SQL Server после выхода седьмой версии не остановилась. В версию 7.0 была включена далеко не вся изначально запланированная функциональность, а кроме того имелось ещё несколько разработок, находившихся на финальных этапах, предназначенных для включения в следующий крупный релиз. Таким образом началась разработка двух версий: Шило (англ. Shiloh) — «младший» релиз версии 7.0 (условно говоря 7.5 по аналогии с предыдущим релизом), и Юкон (англ. Yukon) — следующий крупный релиз.

Изначально продукт-менеджеры SQL Server неохотно прогнозировали популярность SQL Server 7.0. Причина этого заключалась в том, что данный релиз основывался на полностью переписанном коде движка сервера, из-за чего многие клиенты рассматривали его лишь как первый релиз и было очевидно, что многие из потенциальных клиентов седьмой версии предпочтут подождать какой-нибудь «исправленной версии» либо хотя бы первого сервис-пака (пакета обновления). Так что Shiloh изначально был запланирован как некий суперсервис-пак, причём в него планировалось включить и функциональность, не вошедшую в версию 7.0 из-за сжатых сроков разработки, а также и исправление всех найденных на тот момент ошибок, что было слишком объёмно для обычной «ненумерованной» версии. Соответственно, планировалось выпустить Shiloh не позже чем через год после выхода SQL Server 7.0.

Однако сразу несколько факторов повлияли на изменение первоначальной концепции Shiloh. Во-первых, вопреки ожиданиям лишь небольшая часть клиентов сомневалась в необходимости перехода на версию 7.0, причём показатели продаж новым клиентам превосходили самые смелые ожидания. Отзывы клиентов также были вполне благожелательными. Даже после выхода SQL Server 7.0 Microsoft продолжала держать лабораторию для разработчиков стороннего ПО, благодаря чему разработчики постоянно получали отзывы и замечания клиентов. Замечания и обнаруженные ошибки легко правились в обычном порядке и пакет исправлений для SQL Server 7.0 был выпущен в мае 1999 года. Второй пакет исправлений вышел в марте 2000 года. Таким образом, необходимость в суперсервис-паке, каким изначально выглядел Shiloh, отпала.

Вторым фактором стали запросы функциональности от клиентов. Так, например, запланированная изначально реализация контроля ссылочной целостности при каскадных обновлениях и удалениях в конечном итоге в состав SQL Server 7.0 не вошла. Клиенты же высказывали чрезвычайную заинтересованность в подобном механизме и требовали реализовать его как можно скорее. Помимо этого, высказывались многочисленные пожелания относительно реализации поддержки секционированных представлений и оптимизации поддержки звездообразной схемы проектирования, широко используемой в приложениях для учёта товаров на складах.

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

В итоге, было принято решение сделать Shiloh полноценным крупным релизом с 18-месячным циклом разработки, но с сохранением официального номера версии 7.5. Количество изменений на тот момент прогнозировалось с трудом, и единственным изменением, о котором на тот момент было точно известно, это усовершенствование каскадных обновлений и удалений. Вскоре стало ясно, что релиз уже вырастает за рамки первоначальных планов. Параллельно росла и команда разработчиков, переселившаяся из главного кампуса Microsoft в часть офисов сдвоенного здания. Увеличение числа разработчиков позволяло добавить в продукт большое количество средних и мелких доработок без какого-либо существенного сдвига сроков выпуска продукта.

Также разработчики помимо задач улучшения и увеличения функциональности поставили перед собой т. н. «гибкие задачи». Например, он объявили о необходимости добиться 20%-го прироста производительности для всех типов приложений, но для конкретизации задачи производилось сравнение с определёнными приложениями. Так, например, одной из главных целей было улучшение показателей производительности в тесте производительностиSAP R/3 Sales and Distribution как минимум на 40 %. Для достижения поставленной задачи разработчиками были сделаны специальные изменения в оптимизаторе, напрямую влияющие на запросы от SAP, но при этом улучшающие и запросы от других приложений. 17 февраля 2000 года на мероприятии в честь выхода Windows 2000 в Сан-Фрациско были объявлены результаты измерения производительности в тесте Sales and Distribution, показавшие допустимую нагрузку в 6700 пользователей, что значительно превзошло показатели SQL Server 7.0 (4500 пользователей) на том же самом тесте и оборудовании (использовалась восьмипроцессорная машина с Pentium III-550). Таким образом, прирост производительности составил 48 %, и значит данная задача была выполнена.

После принятия решения о продлении срока разработки до 18 месяцев было принято ещё одно решение о добавлении новой функциональности. Данное решение содержалось в строжайшем секрете и не обсуждалось даже со многими руководителями в Microsoft. Новая функциональность не упоминалась даже после выхода первой бета-версии в ноябре 1999 года, и была публично прдставлена лишь в феврале на мероприятии в честь выхода Windows 2000. Этот тайный проект под кодовым именем Койот (англ. Coyote) был нацелен на добавление в SQL Server 2000 поддержки распределённых секционированных представлений, что позволило бы достичь высокой масштабируемости при работе с данными. Именно эта функциональность и позволила поставить мировой рекорд, о котором было объявлено в Сан-Франциско в феврале 2000 года. Изначально данные изменения масштабируемости были задуманы для версии, следующей за Shiloh, но поскольку большинство из необходимых компонентов уже фактически были готовы, то данную функциональность было решено добавить в SQL Server 2000. К этим изменениям относилось и расширение оптимизации объединяющих представлений, а также возможность обновлять такие представления.

Первая бета-версия Shiloh была выпущена для первых испытаний и тестирования бета-тестировщиками в сентябре 1999 года, а вскоре Microsoft объявила, что официальным названием новой версии продукта станет SQL Server 2000. Для подобной смены названий было две основные причины. Во-первых, в виду многочисленных и серьёзных изменений в новой версии было невыгодно выпускать её как промежуточную (7.5), а значит нужен был новый номер. Но во-вторых, если выпустить новую версию как 8.0, то получится, что из всего семейства Microsoft BackOffice это будет единственный продукт, не имеющий приставки 2000 в названии. Чтобы соблюсти единство названий продуктов было решено назвать продукт SQL Server 2000 (при этом внутренний номер версии всё равно выглядел как 8.00.194).

С точки зрения пользователя, SQL Server 2000 предоставлял ему гораздо больше возможностей чем предыдущая версия. SQL Server 7.0 обладал полностью переписанным движком, поддержкой новых хранимых структур, методов доступа к данным, технологий блокировки записей, алгоритмов восстановления, новой архитектурой логирования транзакций, новой архитектурой памяти и оптимизатором. Но несмотря на всё это, с точки зрения разработчика или администратора БД изменения и улучшения языка в SQL Server 7 были минимальными. SQL Server 2000 обладал многочисленными языковыми улучшениями, равно как и серьёзными изменениями в представленных ранее объектах, таких как например, табличные ограничения, представления и триггеры, в которых нуждались все разаботчики и большинство администраторов БД.

Поскольку внутренние изменения в движке были минимальны, то запланированы были лишь две бета-версии. Вторая бета-версия, вышедшая в апреле 2000 года, стала публичной бета-версией и была разослана тысячам заинтересованных пользователей, участникам специализированных конференций, сторонним разработчикам ПО и консультантам. Команда разработчиков заморозила код 6 августа 2000 года на версии 8.00.194.01, и 9 августа продукт был выпущен.

SQL Server 2005 (2000—2005) [ ]

Разработка следующей версии SQL Server, получившей кодовое обозначение Yukon, началась параллельно с подготовкой 64-битной версии SQL Server 2000 под кодовым названием Liberty. Liberty по функциональности представляла собой по сути ту же самую 32-битную версию, но отличие заключалось в значительно больших возможностях масштабирования. Новая же функциональность должен был быть реализован в составе Yukon.

SQL Server 2008 (2005—2008) [ ]

SQL Server 2008 R2 (2008—2010) [ ]

Основная статья: Microsoft SQL Server 2008 R2

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *