Открыть сервис

Microsoft SQL Server 7.0

Microsoft SQL Server 7.0 — это реляционная система управления базами данных (СУБД), разработанная корпорацией Microsoft, выпущенная в 1998 году. Она стала важной вехой в истории семейства SQL Server, ознаменовав переход от платформы OS/2 к исключительно Windows NT и заложив архитектурные основы для последующих версий. SQL Server 7.0 позиционировался как масштабируемое решение для среднего бизнеса и корпоративных подразделений, способное конкурировать с такими продуктами, как Oracle Database и IBM DB2.

История

Предшествующие версии

Первая версия SQL Server (1.0) была выпущена в 1989 году совместно с Sybase и работала на OS/2. Последующие версии 4.2, 6.0 и 6.5 также базировались на коде Sybase, но постепенно адаптировались под Windows. К концу 1990-х годов Microsoft решила полностью переписать ядро СУБД, отказавшись от лицензирования кода Sybase, чтобы получить полный контроль над продуктом и оптимизировать его для Windows NT.

Разработка и выпуск

Разработка SQL Server 7.0 началась в 1995 году под кодовым названием «Sphinx». Основной целью было создание полностью самостоятельной СУБД, не зависящей от Sybase. Впервые в истории продукта команда разработчиков Microsoft полностью переписала ядро, оптимизировав его для многопоточности и многопроцессорных систем. Релиз состоялся 27 ноября 1998 года. Версия 7.0 стала первой, которая не имела аналогов от Sybase.

Поддержка и наследие

Основная поддержка SQL Server 7.0 завершилась 31 декабря 2005 года, а расширенная — 31 декабря 2010 года. Несмотря на это, многие организации продолжали использовать её вплоть до середины 2000-х годов. Версия 7.0 заложила архитектурные принципы, которые развивались в SQL Server 2000, 2005 и последующих версиях.

Архитектура и ключевые особенности

Движок базы данных

SQL Server 7.0 представил полностью переработанный движок, который работал исключительно как служба Windows NT. Основные изменения включали:

  • Управление памятью: динамическое распределение буферного пула, автоматически подстраивающееся под нагрузку.
  • Планировщик запросов: новый оптимизатор, способный строить более эффективные планы выполнения, включая использование параллелизма.
  • Транзакции: поддержка изоляции на уровне снимков (snapshot isolation) через версионирование строк, что было новшеством для того времени.

Хранилище данных

  • Страницы и экстенты: размер страницы составлял 8 КБ (в отличие от 2 КБ в SQL Server 6.5), экстент — 64 КБ (8 страниц). Это позволило уменьшить количество операций ввода-вывода.
  • Файлы и файловые группы: база данных могла состоять из нескольких файлов, объединённых в файловые группы, что давало администраторам гибкость в управлении размещением данных на дисках.
  • Логи транзакций: журнал транзакций стал физически отделён от файлов данных, что повысило надёжность и упростило восстановление.

Масштабирование и производительность

  • Многопроцессорная поддержка: SQL Server 7.0 поддерживал до 32 процессоров в симметричной многопроцессорной конфигурации (SMP) на Windows NT.
  • Параллельные запросы: оптимизатор мог разбивать сложные запросы на несколько потоков, выполняющихся одновременно на разных процессорах.
  • Индексы: введены кластеризованные и некластеризованные индексы с возможностью создания составных индексов и индексов на вычисляемых столбцах.

Инструменты администрирования

Enterprise Manager

В SQL Server 7.0 был представлен графический интерфейс Enterprise Manager (MMC-оснастка), который позволял администраторам управлять несколькими серверами, создавать базы данных, настраивать безопасность, выполнять резервное копирование и мониторинг. Это был значительный шаг вперёд по сравнению с командной строкой и утилитами SQL Server 6.5.

Query Analyzer

Query Analyzer — инструмент для написания и отладки запросов T-SQL. Он включал:

SQL Server Agent

Служба SQL Server Agent позволяла автоматизировать задачи: создание расписаний для резервного копирования, выполнение скриптов, отправку уведомлений операторам. Это стало основой для последующего развития агента в SQL Server 2000 и 2005.

Язык запросов T-SQL

Расширения Transact-SQL

SQL Server 7.0 поддерживал стандарт ANSI SQL-92 с рядом расширений, характерных для T-SQL. Ключевые нововведения:

  • Поддержка курсоров: статические, динамические, последовательные и управляемые набором ключей курсоры.
  • Условные конструкции: CASE, COALESCE, NULLIF.
  • Работа с датами: функции DATEADD, DATEDIFF, DATEPART.
  • Агрегатные функции: SUM, AVG, COUNT, MIN, MAX, а также GROUP BY с HAVING.
  • Подзапросы: коррелированные и некоррелированные подзапросы, использование EXISTS, IN, ANY, ALL.

Хранимые процедуры и триггеры

  • Хранимые процедуры: поддерживались как системные (например, sp_help, sp_who), так и пользовательские. Они могли принимать параметры и возвращать результирующие наборы.
  • Триггеры: триггеры DML (INSERT, UPDATE, DELETE) могли быть AFTER или INSTEAD OF. Триггеры выполнялись в контексте транзакции, что позволяло реализовывать сложные бизнес-правила.

Репликация и интеграция

Репликация

SQL Server 7.0 поддерживал три типа репликации:

  • Снимок (snapshot): полная копия данных на подписчиков по расписанию.
  • Транзакционная (transactional): непрерывная синхронизация изменений с публикации на подписчики.
  • Слияние (merge): двусторонняя синхронизация с разрешением конфликтов, подходящая для распределённых систем.

Связанные серверы

Версия 7.0 ввела возможность создания связанных серверов (linked servers), что позволяло выполнять запросы к другим СУБД (Oracle, DB2, Access) через OLE DB. Это упрощало интеграцию данных в гетерогенных средах.

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

Модель аутентификации

SQL Server 7.0 поддерживал два режима аутентификации:

  • Windows Authentication: использование учётных записей Windows NT.
  • Mixed Mode: комбинация Windows Authentication и SQL Server Authentication (логин/пароль, хранящиеся в SQL Server).

Роли и разрешения

  • Фиксированные серверные роли: sysadmin, serveradmin, securityadmin и другие.
  • Фиксированные роли базы данных: db_owner, db_datareader, db_datawriter и т.д.
  • Пользовательские роли: возможность создавать собственные роли для детального управления доступом.
  • Разрешения на уровне объектов: GRANT, DENY, REVOKE для таблиц, представлений, хранимых процедур.

Редакции и лицензирование

SQL Server 7.0 выпускался в нескольких редакциях, ориентированных на разные сегменты рынка:

РедакцияНазначениеОграничения
Enterprise EditionКрупные корпоративные системыПоддержка до 32 процессоров, неограниченный размер базы данных
Standard EditionСредний бизнесДо 4 процессоров, размер базы данных до 4 ТБ
Desktop Edition (MSDE)Небольшие приложения и встраиваемые системыОграничение на размер базы данных до 2 ГБ, отсутствие графических инструментов
Developer EditionРазработка и тестированиеФункционально идентична Enterprise, запрещена для продакшн-использования

Влияние и критика

Положительные аспекты

  • Улучшенная производительность: по сравнению с SQL Server 6.5, версия 7.0 демонстрировала значительный прирост скорости выполнения запросов и обработки транзакций.
  • Упрощение администрирования: графические инструменты Enterprise Manager и Query Analyzer снизили порог входа для администраторов.
  • Масштабируемость: поддержка до 32 процессоров и возможность использования до 2 ТБ оперативной памяти (в Enterprise Edition) позволили обрабатывать большие объёмы данных.

Недостатки

  • Ограничения по размеру базы данных: в Standard Edition максимальный размер базы данных составлял 4 ТБ, что для некоторых крупных проектов было недостаточно.
  • Отсутствие поддержки XML: в отличие от более поздних версий, SQL Server 7.0 не имел встроенной поддержки XML-запросов.
  • Проблемы с совместимостью: некоторые приложения, написанные для SQL Server 6.5, требовали доработки из-за изменений в синтаксисе T-SQL и архитектуре.

Интересные факты

  • SQL Server 7.0 стал первой версией, которая использовала динамическое управление памятью — буферный пул автоматически увеличивался или уменьшался в зависимости от нагрузки, что было революционным для того времени.
  • Версия 7.0 была последней, которая поддерживала Windows 95 и Windows 98 в качестве клиентских операционных систем (для Desktop Edition).
  • Кодовое название «Sphinx» было выбрано в честь египетского сфинкса, символизирующего загадку, которую разработчикам предстояло решить — создание полностью самостоятельной СУБД.

Источники

  • Microsoft Corporation. «SQL Server 7.0 Books Online». 1998.
  • Delaney, K. «Inside Microsoft SQL Server 7.0». Microsoft Press, 1999.
  • Henderson, K. «The Guru's Guide to Transact-SQL». Addison-Wesley, 2000.
  • Документация Microsoft TechNet: «SQL Server 7.0 System Administration».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →