Microsoft SQL Server

Microsoft SQL Server

Microsoft SQL Server — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft.


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

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

Предыстория (по 1986)
Развитие клиент-серверных технологий во второй половине 80-х было обусловлено развитием двух ключевых направлений, активно
разрабатываемых с конца 70-х годов: персональных компьютеров с одной стороны, и компьютерных сетей — с другой. Долгое
время СУБД были доступны лишь для мэйнфреймов, и лишь благодаря росту производительности процессоров для домашних
компьютеров и мини-ЭВМ разработчики СУБД (как, например, Oracle) начали создавать соответствующие версии своих продуктов.
Одной из первых СУРБД для ПК стала Oracle v3, выпущенная в 1983 году. На тот момент немногочисленные владельцы ПК
использовали их в основном для разработки приложений и тестирования.

Одним из ключевых этапов в развитии СУБД стал 1986 год. К этому времени появилось ещё несколько компаний-разработчиков
СУБД, одной из самых заметных из них стала компания Sybase, основанная двумя годами ранее. К 1986 году Sybase начала
комплектовать интеллектуальные рабочие станции (как правило, разработки Sun Microsystems или Apollo Computer) с серверами
базы данных (разработанных, например, Oracle). При этом сама клиент-серверная технология сделала возможным отделение
модулей обработки информации (т. н. back end) от модулей интерфейса (т. н. front end). Учтя постоянный рост проникновения
компьютерных сетей, поставщики решений перешли к задачам распределения остальных задач (например, форматирование отчётов,
проверка данных и т. д.) среди рабочих станций сети, оставив серверу выполнять лишь задачи, требующие централизованного
решения (хранение и защита данных, оптимизация потока выполнения запросов и т. д.).

 

Существенную роль в переходе от иерархических БД к реляционным сыграли и сами разработчики СУБД. Так, IBM к этому времени
уже постепенно переводила своих клиентов с иерархических СУБД (как, например, IMS) на СУРДБ DB2 и SQL/DS. Новые СУБД хотя
и уступали в скорости IMS, но превосходили её в лёгкости программирования и обслуживания. Поставки DB2 быстро превзошли
ожидания, захватив значительную долю рынка в первый же год продаж. В сентябре 1986 года Gupta Technologies представила
свою разработку SQL Base, заключающую в себе концепт сервера базы данных для ПК, объединённых в сеть. Также Gupta одной из
первых реализовала прозрачный доступ к мэйнфреймам IBM с запущенными на них DB2, предоставив прямой доступ к хранившимся
там данным без необходимости скачивания файлов или таблиц на рабочую станцию пользователя.

К концу 1986 года использование языка SQL в качестве основного для работы с данными в СУБД стало практически повсеместным.
IBM, Oracle, Sybase и Gupta использовали схожий синтаксис языка SQL для отправки сообщений от клиентской части СУБД (front
end) к серверной (back end), что позволяло сочетать клиентские и серверные части разных производителей. В том же году
Американский национальный институт стандартов утвердил версию языка SQL в качестве международного стандарта обработки
данных, что поставило под угрозу благополучие СУБД, не обладавших поддержкой языка SQL. Так, например, компания Cullinet
хотя и анонсировала поддержку языка SQL в своих СУБД для мини-компьютеров, но из-за задержки в её реализации потеряла свою
долю рынка СУБД, уступив IBM и её продукту DB2.

Первые шаги (1985—1987)
К этому моменту все имевшиеся у Microsoft разработки были ориентированы исключительно на домашние компьютеры, а её самым
прибыльным продуктом являлась операционная система MS-DOS. Клиент-серверная обработка данных на персональных компьютерах к
1986 году только набрала популярность и по этой причине лежала вне интересов компании [источник не указан 3609 дней].
Годом ранее, в июне 1985 года, IBM и Microsoft подписали соглашение о совместной разработке (англ. Joint Development
Agreement, сокр. JDA), содержащее лишь общие положения о будущей кооперации. В августе 1985 года JDA был дополнен
документом под кодовым обозначением «Этап II» (англ. Phase II), содержавшим в себе планы по разработке OS/2. На тот момент
продукт указывался как CP/DOS (англ. Control Program/DOS в соответствии с политикой именования продуктов IBM для
мэйнфреймов, Microsoft же указывала продукт как DOS 5. В конце 1986 — начале 1987 года проект был официально переименован
в OS/2 для придания схожести названия с линейкой компьютеров IBM PS/2.

 

2 апреля 1987 года OS/2 была анонсирована (версия 1.0 согласно пресс-релизу должна была выйти в первом квартале 1988 года,
но в конечном итоге была выпущена в декабре 1987 года)[2]. Согласно заявленным в апреле 1987 года планам, IBM планировала
добавить функциональность СУБД в OS/2, причём с использованием концепции, разработанной компанией Gupta Technologies, и
заключающуюся в отправке персональным компьютером SQL-запросов к хосту через сетевые маршрутизаторы и возврате в качестве
ответа лишь результатов выполнения запроса. Несмотря на то, что на протяжении уже нескольких лет разработчики ОС включали
некоторые функции СУБД в свои продукты, идея IBM о реализации полноценной СУБД, встроенной в ОС, заставила многих
менеджеров пересмотреть свою точку зрения на ПК как подходящую платформу для реализации многопользовательских приложений и
концепции клиент-серверной технологии.

Вскоре после объявления, 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)
Разработка
13 января 1988 года в Нью-Йорке состоялась пресс-конференция, на которой было объявлено о союзе Ashton-Tate и Microsoft
для разработки нового продукта, получившего название Ashton-Tate/Microsoft SQL Server. В этот же день был выпущен
совместный пресс-релиз с анонсом нового продукта, основанного на разработках Sybase. Предварительной датой выхода продукта
указывалась вторая половина 1988 года[3]. Что касается ролей компаний в разработке и продвижении продукта, то согласно
пресс-релизу Ashton-Tate должна была отвечать за контроль разработки в области баз данных (а также предоставить
собственные разработки в этой области), а Microsoft же была отведена аналогичная роль в области технологий для работы в
локальных сетях. После выхода SQL Server Ashton-Tate должна была получить лицензию на продукт у Microsoft и заняться
розничными продажами по всему миру (как в виде отдельного продукта, так и в комплекте с будущими версиями dBASE), а
Microsoft — поставлять продукт для OEM-производителей аппаратного обеспечения.

 

SQL Server уже сразу позиционировался как реляционная СУБД с поддержкой языка SQL и возможностью работы по локальной сети.
Кроме того, была заявлена поддержка совместной работы SQL Server с dBASE или любым другим ПО для рабочей станции. Большой
упор делался на клиент-серверную архитектуру продукта, благодаря которой должны были разделиться функции клиентского
приложения (англ. front-end), в котором пользователи будет видеть нужные ему данные, и серверной части (англ. back-end) в
которой эти данные будут храниться. Также Ashton-Tate и Microsoft заявляли о «трёх главных новшествах в области технологий
реляционных баз данных»: поддержка хранимых процедур, компилируемых SQL Server и благодаря которым будет «значительно
ускорена» выборка данных, а также поддерживаться целостность данных при работе в многопользовательской среде. Вторым
новшеством была заявлена постоянная доступность ядра (не прерывая действий пользователей) для административных задач,
таких как создание резервных копий данных (бэкап) и их восстановлений. Третьим новшеством была заявлена поддержка
технологии, выполняющей роль моста между системами обработки онлайн-транзакций и базами данных на ПК. Сам же SQL Server
должен был быть основан на архитектуре «открытой платформы», что дало бы возможность сторонним разработчикам ПО создавать
прикладные программы, использующие сетевые и многопользовательские возможности SQL Server. При этом Билл Гейтс, на тот
момент являвшийся председателем совета директоров Microsoft, назвал сеть «самой важной вычислительной платформой для новых
и инновационных прикладных программ». Запускаться SQL Server должен был на любых сетевых серверах на базе OS/2, включая
Microsoft OS/2 LAN Manaqer и IBM LAN Server, а взаимодействовать должен был с рабочими станциями под управлением OS/2,
PC-DOS или MS-DOS.

Ashton-Tate рассматривала SQL Server как возможность завоевания рынка СУБД для домашних компьютеров, не отказываясь при
этом от дальнейшего развития dBASE. При этом оба продукта должны были предлагаться и корпоративным заказчикам. Microsoft
рассчитывала на продвижение SQL Server как основу транзакционно-ориентированных систем, включая различные системы учёта,
библиотеки документов, системы управления исследованиями и другие. Для продвижения нового продукта обеими компаниями был
намечен ряд различных семинаров и конференций, первой из которых стала конференция Microsoft Advanced Network Development
Conference, назначенная на 30 марта-1 апреля в Сан-Франциско и 13-15 апреля в Нью-Йорке.

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

Бета-версии
Бета-версия Ashton-Tate/Microsoft SQL Server была выпущена 31 октября 1988 года в составе набора инструментов для сетевой
разработки SQL Server Network Developer’s Kit (сокр. MDK). Данный набор содержал предрелизную версию SQL Server,
документацию, программные библиотеки прикладного интерфейса для SQL Server, а также Microsoft OS/2 LAN Manager.
Программные библиотеки были предназначены для компиляции (компилятором языка Си от самой Microsoft) MS-DOS-, Windows- или
OS/2-приложений, предназначенных для работы с SQL Server по локальной сети. Набор продавался исключительно для разработки
ПО, но при этом к нему прилагался специальный купон, позволявший покупателям обновить версию SQL Server до полноценной
после её выхода.

 

MDK продавался напрямую Ashton-Tate на территории США и Канады (а также Microsoft на территории США) по сниженной цене.
Microsoft при этом предлагала существенную скидку разработчикам, которые уже приобрели набор инструментов Microsoft OS/2
Software Developer’s Kit или посетили одну из конференций Microsoft Advanced Network Development Conference. В свою
очередь, Ashton-Tate также предлагала аналогичную скидку разработчикам, посетившим в 1988 году конференцию Ashton-Tate
Developer’s Conference.

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

Выход
29 апреля 1989 года началась официальная продажа Ashton-Tate/Microsoft SQL Server 1.0. Члены команды, занимавшейся SQL
Server, на специальном мероприятии по сертификации команд, проходившем в Торрансе, надели майки с надписью «Ashton-Tate
SQL Server: сделал вовремя и горжусь этим» (англ. Ashton-Tate SQL Server: On-Time and Proud of it).

Тесты журнала Infoworld показывали, что Ashton-Tate/Microsoft SQL Server 1.0 даже при работе в сети с 24 рабочими
станциями справлялся с нагрузкой быстрее, чем обычная база данных с многопользовательским режимом (наиболее
распространённый тип БД на тот момент), а при использовании хранимых процедур удавалось достичь скорости отклика менее
двух секунд. Также журналисты отмечали лёгкость и удобство написания тестового кода[источник не указан 3612 дней].

Профильная пресса отзывалась достаточно положительно о новом продукте, тем не менее продажи были весьма невысокими. Кроме
того, разочаровывали и продажи OS/2, поскольку многие пользователи не пожелали переходить с MS-DOS на OS/2. Картину
довершала возможность создавать приложения для SQL Server лишь на языке Си, поскольку выход обещанного dBASE IV Server
Edition от Ashton-Tate был отложен, и аналогичная ситуация была и со сторонними разработчиками инструментов для SQL
Server[источник не указан 3632 дня]. Кроме того, свою роль сыграла и конкуренция: на рынке СУБД для ПК-платформ к этому
времени уже существовали XDB от компании XDB, SQLBase от Gupta Technologies и OS/2 Extended Edition (в
однопользовательском режиме) от IBM.

К 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)
Ещё до выхода версии 1.1 официальные представители Microsoft (в отличие от независимых аналитиков) предсказывали резкий
рост продаж новой версии продукта, однако их надежды не оправдались. Microsoft SQL Server 1.1 вышел в августе 1990 года
как обновление и замена для Ashton-Tate/Microsoft SQL Server 1.0, продававшегося в 1989 году[6]. На момент выхода версии
1.1 Microsoft всё ещё не рассматривала SQL Server как продукт, способный приносить прибыль сам по себе — именно поэтому он
являлся лишь одним из приложений к LAN Manager (Microsoft даже начала создавать для партнёров каналы продаж обоих
продуктов, хотя ранее никогда не занималась продажами в розницу решений для ЛВС). Положительную роль должен был сыграть
скорый выход клиентских приложений (англ. front ends) от Borland и DataEase International (англ.), тем более, что в
течение года ожидалась ещё несколько подобных решений (на тот момент их условно называли «вторым поколением»). Но при
этом, не менее важная часть SQL Server — пакет устанавливаемых протоколов — всё ещё находился в разработке. TCP/IP-версия
библиотеки Net-Library, первая из данного пакета, всё ещё находилась на этапе альфа-тестирования, а её DEC-NET- и SPX-
версии вообще находились на этапе разработке без каких-либо объявленных сроков выхода. Кроме того, очевидная сложность
клиент-серверных вычислений и ещё продолжающаяся эволюция серверных и клиентских приложений привели к тому, что первые
продажи SQL Server 1.1 были весьма невысокими.

Возможности SQL Server 1.1, в целом, были аналогичны возможностям версии 1.0, но при этом новая версия содержала множество
исправлений ошибок, проявлявшихся в версии 1.0. Кроме того, SQL Server 1.1 поддерживал обмен информацией ещё и с новой
клиентской платформой — Microsoft Windows 3.0, поставки которой начались в мае 1990 года и вызывали ощутимую реакцию в
компьютерной индустрии. SQL Server 1.1 теперь можно было значительно удобнее настраивать для совместной работы с LAN
Manager, кроме того была усовершенствована установка продукта для работы с сетями Novell и в качестве отдельной системы
разработки ПО. В комплект была включена библиотека Basic Library for SQL Server, представлявшая собой интерфейс между SQL
Server и Microsoft Basic Professional Development System. Благодаря этой библиотеке была впервые добавлена поддержка этого
языка.

Клиентская часть SQL Server 1.1 могла работать с новой версией DB-Library, интерфейса между клиентской частью и SQL
Server, которая рассылалась некоторым разработчикам за месяц до выхода новой версии самого SQL Server. Новая версия DB-
Library представляла собой практически полностью переписанный вариант предыдущей версии, благодаря чему она стала занимать
лишь 40 Кбайт вместо прежних 80 Кб, оставляя больше памяти для DOS-приложений на клиентских системах (теперь разработчик
получал 250 Кбайт для своего приложения вместо прежних 50 Кбайт, получаемых при использовании статических библиотек DB-
Library, шедших в комплекте с SQL Server 1.0). Архитектура устанавливаемого протокола соединения в DB-Library теперь могла
взаимодействовать с клиентами на DOS, Windows и OS/2, а также поддерживала доступ к Sybase SQL Server на других
платформах. Впрочем, согласно информации от самих Microsoft и Sybase, эти драйверы всё ещё находились в стадии активной
разработки.

 

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

полнофункциональная версия для 5 пользователей (с возможностью дополнительного увеличения числа пользователей до 10);
полнофункциональная версия для неограниченного количества пользователей;
обновление версии для 5 пользователей до версии для неограниченного количества пользователей;
обновление для версии SQL Server 1.0.
Возможность работы с SQL Server 1.1 клиентских систем разных производителей позволило последним продавать Microsoft SQL
Server 1.1 наряду с собственными разработками. Первыми членами партнёрской программы SQL Business Partner Program стали
Ashton-Tate, Blyth Software, Dataease International, Revelation Technologies и Sybase. Эти компании могли совершать
продажи через незадолго до этого сформированную специальную сеть сбыта (англ. Microsoft Network Specialist channel),
главной задачей которой до этого была продажа Microsoft LAN Manager, либо продавать конечным пользователям напрямую. Из
этих пяти партнёров на момент выхода новой версии лишь Ashton-Tate могла предложить пользователям клиентскую часть для SQL
Server — SQL Link for Framework III (всего же на рынке на тот момент было доступно около 40 подобных решений). Dataease
International заявляла, что её решение Dataease SQL 1.0 станет доступным для покупки с 14 сентября того же года. По
информации от Microsoft, оставшиеся два партнёра планировали выпустить свои решения (MS-SQL Server Bond for Advanced
Revelation от Revelation Technologies и Omnis 5 от Blyth Software) в третьем квартале того же года. Выпуск Dbase IV 1.1
Server Edition производства Ashton-Tate, который должен был поддерживать и SQL Server, ожидался до конца 1990 года. В
первой четверти 1991 года должны были выйти и серверные интерфейсы для поддержки прочих клиентских систем Dbase, а именно
Arago Dbxl и Arago Quicksilver производства Wordtech Systems.

В третьей четверти 1990 года состоялся выход Access SQL (производства Software Products International) и Q+E (производства
Pioneer Software), предназначенные для организации прямой связи между Microsoft Excel и SQL Server[6]. В частности, Q+E
предоставлял возможность по сути всем Windows-приложениям (в том числе для версии Windows 3.0), способным работать с
соединениями по технологии Dynamic Data Exchange, взаимодействовать и с SQL Server. С точки зрения пользователя, Q+E 2.5
позволял пользователям просматривать, объединять и сортировать информацию в базах данных без написания соответствующих
SQL-запросов. А поскольку DDE-вызовы были встроены в само приложение Q+E, то пользователи, например, Excel могли выполнять
последующую обработку данных.

К началу 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.

 

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

SQL Server 1.11 (1991)

Схема работы Microsoft SQL Server 1.11 в локальной сети Netware при помощи Microsoft Named Pipes API и стека протоколов
Netware IPX/SPX
В 1991 году Microsoft выпустила промежуточную версию — SQL Server 1.11. Данный выпуск был обусловлен тем, что список
пользователей к тому моменту уже значительно расширился. Несмотря на то, что клиент-серверная архитектура по-прежнему не
была широко распространённой, клиенты всё же постепенно переходили на неё. Но, несмотря на положительную критику от
профильной прессы, продажи SQL Server по-прежнему оставляли желать лучшего. По большей части это было связано с провалом
OS/2. Пользователи домашних ПК вместо ожидаемого перехода с MS-DOS на OS/2 предпочитали переходить на Windows 3.0. Как
следствие, продажи Windows 3.0 были весьма высоки. Чтобы подстегнуть продажи SQL Server и LAN Manager Microsoft объявила о
начале специальной программы поддержки независимых производителей ПО, в рамках которой каждый разработчик, удовлетворяющий
определённым требованиям, мог лицензировать урезанные версии этих продуктов (эти версии позволяли лишь функционировать
стороннему ПО, т. н. англ. run-time versions) с 40 % скидкой и при этом получить полгода бесплатной поддержки, а также
некоторые другие преимущества.

Как писал журнал InfoWorld в конце июля 1991 года, Microsoft при анонсе новой версии SQL Server делала упор на улучшенную
работу с сетью и новое Windows-приложение для администрирования БД. В частности, Microsoft обещала в течение года
предоставить копию утилиты SQL Commander для зарегистрированных пользователей SQL Server для OS/2. Инструмент под
названием SQL Commander был представлен ранее, в мае 1990 года компанией Datura Corp. (ранее известной как Strategic
Technologies Group). Данная утилита упрощала администраторам БД управление аккаунтами пользователей, индексами таблиц,
триггерами и сложными запросами. Однако, как отмечали критики, данный инструмент практически полностью совпадал по
функциональности с другой утилитой от Microsoft — Server Administration Facility tool, поставлявшейся в комплекте с SQL
Server. Кроме того, в SQL Server 1.11 была добавлена поддержка инструментов для администрирования сетей Novell, новейший
на тот момент инструмент OS/2 Requester 1.3 и детальная техническая документация для пользователей продукции Novell.
Улучшение работы с сетью включало в себя улучшение работы с сетями фирмы Novell, добавленную поддержку протоколов Banyan
VINES[en] 4.10, а также клиентское взаимодействие с Sybase SQL Server на UNIX- или VMS-машинах. Изменения затронули и
лицензионную политику: версия для 5 пользователей была заменена на десятипользовательскую версию, а пользователи SQL
Server 1.1 с неограниченным количеством пользователей могли получить версию 1.11 бесплатно.

Но с другой стороны, 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-серверами.

 

В начале 1991 года Microsoft и Sybase достигли соглашения, согласно которому первая получала доступ к исходному коду SQL


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
Мб


Константин

25 Блог сообщения

Комментарии