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

Московский Энергетический Институт, Технический Университет

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

Студент: Дудкина А.

Группа: А-13-07

Предмет: базы данных и экспертные системы

Преподаватель: Сидорова Н.П.

    Введение.

    Обзор основных СУБД:

    1. Microsoft SQL Server

    2. PostgreSQL

      Прочие СУБД

    Заключение: тенденции развития СУБД.

    Приложение.

Введение

В настоящее время в мире используется достаточно большое количество универсальных промышленных СУБД. Среди них можно выделить трех несомненных лидеров (как по уровню развития технологий, так и по объему рынка – они вместе занимают более 90% мирового рынка СУБД). Это СУБД первого эшелона – Oracle, Microsoft SQL Server, MySQL и IBM DB2, в последнее время быстро становится популярна система с открытым кодом PostgreSQL. Список СУБД второго эшелона довольно велик, сюда относят такие СУБД, как Sybase, Informix, Ingress, Adabas, Interbase, Progress, Cache, Linter, Firebird, Teradata и т д

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

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

Одними из первых СУБД были так называемые dBase-совместимые программные системы, разработанные разными фирмами. Первой широко распространенной системой такого рода была система dBase III – PLUS (фирма Achton-Tate). Развитый язык программирования, удобный интерфейс, доступный для массового пользователя, способствовали широкому распространению системы. В то же время работа системы в режиме интерпретации обусловливала низкую производительность на стадии выполнения. Это привело к появлению новых систем-компиляторов, близких к системе dBase III – PLUS: Clipper (фирма Nantucket Inc.), FoxPro (фирма Fox Software), FoxBase+ (фирма Fox Software), Visual FoxPro (фирма Microsoft). Одно время достаточно широко использовалась СУБД PARADOX (фирма Borland International).

В последние годы очень широкое распространение получила система управления базами данных Microsoft Access, которая входит в целый ряд версий пакета Microsoft Office(фирма Microsoft).

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

Основными производителями таких систем обработки и хранения данных являются 3 корпорации: Oracle, Microsoft и IBM. Диаграмма соотношения объемов продаж соответствующих систем (источник: IDC Report, Май 2006) приводится нарисунке.

Продажи ПО систем хранения данных в мире

Наиболее распространеннымиклиент-серверными системами здесь соответственно являются системы Oracle (разработчик компания Oracle), MS SQL Server (разработчик компания Microsoft), DB2, Informix Dynamic Server (компания IBM).

Дадим краткую характеристику основным системам.

Oracle

СУБД Oracle – ветеран рынка реляционных СУБД. Разработка этой системы была начата практически в то же время, что и IBM DB2 и по настоящее время эти системы остаются основными конкурентами (что видно из рисунка).

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

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

Служба технической поддержки Oracle построена на профессиональной основе. Служба технической поддержки в России сертифицирована по стандарту ISO 9000.

Кроме того, ведущие компании – партнеры Oracle, такие как FORS, RDTex имеют собственные центры технической поддержки.

Важным является и то, что наряду с СУБД, компания Oracle поставляет центральный инфраструктурный продукт – Internet Application Server, сервер приложений, функционирующих в среде Internet/Intranet, а также CASE-средства, средства быстрой разработки приложений, средства построения хранилищ данных, оперативного анализа данных, выявления сложных зависимостей в данных (Data Mining), что позволяет поставлять не отдельные продукты, но комплексные технологические решения для заказчиков.

С технической точки зрения важно то, что Oracle функционирует практически на всех существующих компьютерных платформах, в том числе и на больших ЭВМ (OS/390) и на еще сохраняющих популярность системах Vax VMS, не говоря уже о Windows NT и различных разновидностях Unix, в том числе Solaris, HP-UX, AIX, Linux, SCO Unix и т.д.

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

Ядром СУБД Oracle является сервер базы данных, который поставляется в одном из четырех вариантов в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. Для систем масштаба крупной организации предлагается продукт OracleDatabase Enterprise Edition (корпоративная редакция) , для которого имеется целый набор опций, архитектурно и функционально расширяющих возможности сервера. Именно Oracle Database Enterprise Edition устанавливается на кластерах (с опцией Parallel Server, по версию 8i включительно или RAC– Real Application Cluster, начиная с версии 9i и старше), позволяя создавать системы высокой готовности. Продукт Oracle Database Standard Edition(стандартная редакция) ориентирован на организации среднего масштаба или подразделения в составе крупной организации. Для персонального использования предназначен продукт Oracle Database Personal Edition (персональная редакция) .

Важнейшим преимуществом Oracle перед конкурентами (и, прежде всего, перед DB2) является идентичность кода различных версий сервера баз данных Oracle для всех платформ, гарантирующая идентичность и предсказуемость работы Oracle на всех типах компьютеров, какие бы не входили в ее состав. Все варианты сервера Oracle имеют в своей основе один и тот же исходный программный код и функционально идентичны, за исключением некоторых опций, которые, например, могут быть добавлены к Oracle Database Enterprise Edition и не могут - к Oracle Database Standard Edition.

Таким образом, для всех платформ существует единая СУБД в различных версиях, которая ведет себя одинаково и предоставляет одинаковую функциональность вне зависимости от платформы, на которой она установлена. Разработку серверных продуктов в составе СУБД выполняет единое подразделение корпорации Oracle, изменения вносятся централизовано, после этого подвергаются тщательному тестированию в базовом варианте, а затем переносятся на все платформы, где также детально проверяются. Возможность переноса Oracle обеспечивается специфической структурой исходного программного кода сервера. Приблизительно 80% программного кода Oracle – это программы на языке программирования C, который (с известными ограничениями) является платформо - независимым. Примерно 20% кода, представляющее собой ядро сервера, реализовано на машинно-зависимых языках и эта часть кода, разумеется, переписывается для различных платформ.

Жесткая технологическая схема разработки Oracle, опирающаяся на принципы идентичности исходного программного кода для различных версий и платформ, контрастирует со схемами других компаний. Так, СУБД DB/2 представляет собой семейство продуктов, но не единый продукт. Функционально версия DB2 для IBM S/390 столь существенно отличается от DB2 для платформ UNIX и NT, что позволяет говорить вообще о разных продуктах.

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

Microsoft SQL Server

Началом истории Microsoft SQL Server по праву можно считать 1986 год, когда Microsoft и Sybase выпустили совместную версию продукта - SQL Server 1.0 и адаптировали ее для операционной системы OS/2 при поддержке компании Ashton Tate, которая в то время была лидером на рынке СУБД для персональных компьютеров. Выпущенный в 1989 году продукт не получил должного признания из за проблем, связанных с продвижением OS/2. В 1990 году Sybase и Microsoft прервали соглашение с Ashton Tate и выпустили версию SQL Server 1.1 для новой операционной системы Windows 3.0. Microsoft отвечала за клиентские утилиты, программные интерфейсы и средства управления, а Sybase - за разработку ядра базы данных.

В 1992 году началась разработка новой версии продукта - SQL Server on Windows NT, который был выпущен в 1993 году одновременно с серверной операционной системой - Microsoft Windows NT. Тесная интеграция с Windows NT обеспечила продукту высокую производительность, управляемость и впервые у Microsoft появилась система управления базами данных, которая могла конкурировать с аналогичными продуктами на платформе UNIX. В 1994 году Microsoft и Sybase прервали совместное пятилетнее соглашение и бывшие партнеры занялись самостоятельным развитием своих, теперь уже конкурирующих продуктов.

В 1995 и 1996 годах увидели свет версии SQL Server 6.0 и 6.5, но некоторые проблемы с производительностью и управляемостью не позволили этим продуктам завоевать существенную долю рынка корпоративных СУБД. Было принято решение приостановить развитие текущей версии платформы и начать создание продукта «с нуля». Примерно в то же время компания DEC

продала свою систему управления базами данных компании Oracle и Microsoft удалось заполучить ведущих специалистов компании DEC - Джима Грея (Jim Gray), Дэйва Ломета (Dave Lomet) и Фила Бернштейна (Phil Bernstein). Команде разработчиков была поставлена задача - создать новое ядро базы данных с поддержкой масштабируемости, новый процессор обработки запросов, систему самонастройки, самоуправления, а также реализовать поддержку OLAP и ETL с привлечением специалистов из компании Panorama. Разработка новой СУБД заняла около трех лет и в 1998 году был выпущен продукт под названием SQL Server 7.0 - Microsoft начала завоевывать не только рынок реляционных СУБД, но и такие новые рынки, как business intelligence и data warehousing. Параллельно велась работа над SQL Server 2000, который включал в себя поддержку XML, индексированные представления, распределенные разделы на основе представлений, а также более чем 20% ное увеличение производительности для практически всех ключевых компонентов продукта. В 2000 году Microsoft стала полноправным лидером на рынке СУБД для платформы Windows.

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

Microsoft SQL Server 2008 - это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В SQL Server включена поддержка языка XML и протокола HTTP,средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бесперебойную работу, функции для улучшения управления и настройки, снижающие совокупнуюстоимость владения.

Платформа бизнес-анализа SQL Server 2008, тесно интегрированная с Microsoft Office, предоставляет развитую маштабируемую инфраструктуру для внедрения мощных возможностей бизнес-анализа в рабочий процесс всех бизнес-подразделений вашей компании, открывая доступ к нужной бизнес-информации через знакомый интерфейс MS Excel и MS Word.

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

MS SQL Server 2008 предоставляет масштабируемый ивысокопроизводительный"процессор данных" - для самых ответственных и требовательных бизнес-приложений, тем, кому необходим высочайший уровень надежности и защиты, позволяя при этом снизить совокупную стоимость владения за счет расширенных возможностей по управлению серверной инфраструктурой.

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

DB 2 Universal Database

Сначала немного информации с сервера (http :// www -01. ibm . com / software / ru / data /? pgel = ibmhzn ):

Универсальный сервер баз данных DB 2 Universal Database - это масштабируемая, обьектно-реляционная система управления базами данных с интегрированной поддержкой мультимедиа и Web , работающая на системах от персональных компьютеров и серверов на процессорах Intel до Unix , от однопроцессорных систем до симметричных многопроцессорных систем (SMP ) и систем с массовым параллелизмом (MPP ), на хостах AS /400 и мейнфреймах. DB 2 Universal Database объединяет в себе высокую производительность систем обработки транзакций в режиме on - line , объектно-реляционные расширения, усовершенствованные средства оптимизации с возможностями параллельной обработки и поддержкой очень больших баз данных. DB 2 Universal Database также имеет новые встроенные средства для облегчения переноса на свою базу приложений, разработанных на других системах управления базами данных, таких как Oracle , Microsoft , Sybase и Informix . Помимо этого, DB 2 Universal Database включает в себя дополнительные средства поддержки систем аналитической обработки в реальном времени (OLAP ) и систем поддержки принятия решений, множество простых в использовании расширений (DB 2 extenders ). DB 2 Universal Database доступна на абсолютном большинстве ключевых платформ, что дает заказчикам ту гибкость, которая им необходима.

Система СУБД DB2 – один из “долгожителей” в мире систем управления базами данных. Имея в своей основе классическую реляционную модель данных, система первоначально разрабатывалась для больших ЭВМ. Только впоследствии компания IBM реализовала DB2 для платформы AS/400 (СУБД получила название DB2/400), а несколько позже приступила к выпуску практически нового продукта под названием Universal Data Base (UDB), который, как предполагалось, будет соответствовать стандартам открытых систем и функционировать на широком спектре платформ, включая Unix и Windows.

В настоящий момент позиции СУБД DB2 исключительно сильны в первую очередь на больших ЭВМ. Если сравнить экспертные оценки по эксплуатационным характеристикам, приведенные в таблице 1, то видно, что СУБД DB2 обладает практически наивысшими оценками именно на платформе больших ЭВМ. Показательно и то, что СУБД UDB рассматривается в таблице отдельно. Это как раз показатель того, что под общим брэндомDB2 скрывается три практически различных продукта – DB2 для больших ЭВМ, DB2/400 и универсальная DB2 для других платформ. В контексте современной технической политики, которая требует безусловной и максимально возможной унификации базового программного обеспечения, наличие трех различных программных продуктов является негативным фактором.

Являясь главным конкурентом СУБД Oracle в Северной Америке, на российском рынке СУБД DB2, несмотря на высокое техническое качество продукта, представлена очень слабо. Возможно, это связано с общей стратегией компании IBM на российском рынке, когда основной акцент сделан на поставках компьютерных платформ. Фактом является то, что в России с DB2 работают лишь группы энтузиастов. Практически нет инфраструктуры, необходимой для широкого распространения продукта, нет достаточного числа обученных специалистов, нет широкой сети учебных центров, отсутствует литература на русском языке. Представительство IBM в России практически не имеет отделения по технической поддержке DB2, что существенно осложняет эксплуатацию СУБД. Инсталляционная база DB2 в России очень ограничена и затрагивает по большей части большие ЭВМ и AS/400. Партнерская сеть IBM по DB2 невелика по сравнению, скажем, с Microsoft или Oracle. DB2 пока не удалось стать стандартом баз данных для платформ UNIX (здесь эта ниша занята Oracle) и Windows NT (ниша занята Microsoft SQL Server и Oracle).

PostgreSQL

PostgreSQL - объектно-реляционная система управления базами данных (ОРСУБД), разработка которой в различных формах ведется с 1977 года. Работа началась с проекта Ingres в Калифорнийском университете (Беркли). Затем проект Ingres был переведен на коммерческую разработку в корпорации Relational Technologies/Ingres.

В 1986 году другая группа, которую возглавлял Майкл-Стоунбрейкер (Michael Stonebraker) из Беркли, продолжила работу над Ingres и создала объектно-реляционную СУБД Postgres. В 1996 году из-за усовершенствования пакета и перехода на распространение с открытыми исходными текстами было принято новое название - PostgreSQL (в течение непродолжительного времени использовалось название Postgres95). В настоящее время над проектом PostgreSQL активно работает группа разработчиков со всего мира.

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

В PostgreSQL реализованы многие возможности, обычно присутствующие только в коммерческих СУБД, таких как DB 2 и Oracle . Ниже перечислены основные возможности PostgreSQL версии 7.1.x.

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

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

    Полноценная поддержка SQL . PostgreSQL соответствует базовой спецификации SQL99 и поддерживает такие нетривиальные средства, как объединения стандарта SQL92.

    Проверка целостности ссылок. PostgreSQL поддерживает проверку целостности ссылок, обеспечивающую правильность данных в базе.

    Гибкость API . Гибкость API PostgreSQL позволяет легко создавать интерфейсы к РСУБД PostgreSQL. В настоящее время существуют программные интерфейсы для Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/ C+ и Pike.

    Процедурные языки. В PostgreSQL предусмотрена поддержка внутренних процедурных языков, в том числе специализированного языка PL/pgSQL, являющегося аналогом PL/SQL, процедурного языка Oracle. Одним из преимуществ PostgreSQL является возможность использования Perl, Python и TCL в качестве внутренних процедурных языков.

    МУСС. Технология MVCC (Multi-Version Concurrency Control) используется в PostgreSQL для предотвращения лишних блокировок (locking). Каждый, кто хоть раз работал с другими СУБД на базе SQL (например, MySQL или Access), наверняка замечал, что обращение к базе данных для чтения иногда сопровождается задержками, связанными с попытками записи в базу данных. Проще говоря, операции чтения блокируются операциями, производящими обновление записей. Применение технологии MVCC в PostgreSQL полностью решает эту проблему. MVCC лучше низкоуровневой блокировки, поскольку операции чтения никогда не блокируются операциями записи. Вместо этого PostgreSQL отслеживает все транзакции, выполняемые пользователями базы данных, что позволяет работать с записями без ожидания их освобождения.

    Клиент-сервер. В PostgreSQL используется архитектура «клиент-сервер» с распределением процессов между пользователями. В целом она напоминает методику работы с процессами в Apache 1.3.x. Главный (master) процесс создает дополнительные подключения для каждого клиента, пытающегося установить соединение с PostgreSQL.

    Опережающая регистрация изменений. Опережающая регистрация изменений (Write Ahead Logging, WAL) повышает надежность данных. Все изменения данных протоколируются до их непосредственной актуализации в базе. Наличие протокола изменений гарантирует, что в случае сбоя базы данных (что весьма маловероятно) данные можно будет восстановить по запротоколированным транзакциям. После восстановления системы пользователь продолжает работу с состояния, непосредственно предшествовавшего сбою.

Прочие СУБД

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

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

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

27 января 2010 годаOracle CorporationприобрелаSun Microsystemsи включила MySQL в свою линейку СУБД.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие какDrizzle,OurDelta,Percona Server, иMariaDB. Все эти ответвления уже существовали на моментпоглощениякомпаний Sun и MySQL AB корпорацией Oracle.

Apache Derby -реляционная СУБД, написанная наJava, предназначенная для встраивания в Java-приложения илиобработки транзакций в реальном времени. Занимает 2MBна диске.Apache Derby разрабатывается какopen sourceи распространяется на условиях лицензииApache 2.0. Дерби был ранее известен какIBMCloudscape.Sunраспространяет те же бинарные файлы под именемJava DB.

Основа технологии базы данных Derby - полнофункциональное встраиваемое ядро реляционных базы данных.JDBCиSQL- это доступныеAPIдля него. Поддерживается синтаксисSQL, аналогичныйIBM DB2.

Сетевой сервер Derby добавляет к возможностям ядра СУБДклиент-серверныевозможности. Сетевой сервер позволяет клиентам подключаться черезTCP/IP, используя стандартный протоколDRDA(англ.). Сервер сети позволяет Derby сетевую поддержкуJDBC,ODBC/CLI,PerlиPHP.

Встроенная база данных может быть также сконфигурированна для работы в качестве гибридной серверно-встраиваемой РСУБД; принимающей TCP/IP соединения от других клиентов в добавление к клиентам на той же JVM.

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

Microsoft SQL Server 2008 .

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

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

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

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

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

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


Рис. 10.1.

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

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

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

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

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

Тип данных hierarchyid

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

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

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

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

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

Ключи

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

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

Индексы

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

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

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

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

Сборки

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

Ограничения

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

Правила

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

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

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

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

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


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

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

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

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

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

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

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

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

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


  • Сетевые

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

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

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

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

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

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

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

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

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


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

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


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

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


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

  • Oracle

  • Interbase

  • MS SQL Server

  • MS Access

  • Visual FoxPro

  • SyBase

  • Paradox

  • MySQL

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

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

Interbase

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Visual FoxPro

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

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

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


SyBase

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

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

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

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

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


Paradox

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

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

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


MySQL

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

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

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

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

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

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

В 70-х гг. прошлого столетия фирма IBM разработала язык программирования, предназначенный для создания запросов (вопросов к базе данных). Он назывался SEQUEL (Structured English Query Language - английский структурированный язык создания запросов). В течение времени в SEQUEL добавлялись новые возможности. Вскоре он перестал быть языком создания только запросов. С его помощью стали создавать целые базы данных и управлять защитой ядра базы данных. Популярность нового языка настолько выросла, что пришлось сделать его достоянием широких масс пользователей и назвать SQL. Поскольку читаются обе аббревиатуры практически одинаково, то в разговоре их легко перепутать.

Современные процессоры баз данных используют разные версии SQL. SQL Server использует специальную разновидность SQL - Transact-SQL (T-SQL). Первоначально SQL Server (программа создания баз данных, которая понимает SQL) разрабатывалась компанией Microsoft совместно с фирмой Sybase Corporation для использования на платформах IBM OS/2 и создала свою собственную операционную систему - Windows NT Advanced Server. С этого момента было принято решение разрабатывать SQL Server только для сред Windows NT. В результате появилась SQL Server 4.2, которая вскоре была обновлена до версии 4.21. Вскоре между Microsoft и Sybase пробежала черная кошка; в результате Sybase взялась за создание собственного процессора баз данных для Windows NT. Им стала программа Sybase Adaptive Server Enterprise. Чтобы не отставать от конкурентов, Microsoft презентовала SQL Server 6.0, а вскоре и SQL Server 6.5. Обе программы запускались в Windows NT. А вот SQL Server 7.0 выполнялась не только Windows NT, но и Windows 95/98.

SQL Server 7.0 стала главной победой разработчиков процессора баз данных. Она превзошла возможности всех конкурирующих программ. Но в SQL Server 7.0 ядро процессора было сильно изменено. В SQL Server 7.0 полностью изменена не только архитектура ядра; в нее добавили оптимизатор запросов и улучшенную систему сохранения данных. В SQL Server 2000 добавили еще целый ряд дополнительных средств, повысили маштабируемость, надежность и доступность данных. Программа делает работу администратора легче и приятнее. SQL Server 2000 реализована как служба Windows NT Workstation, Windows NT Server и любой Windows 2000. В Windows ME она выполняется, как отдельное приложение в текущем сеансе пользователя. Все встроенные утилиты, например SQL Server Enterprise Manager, выполняются, как вспомогательные приложения типа клиент/сервер, позволяя управлять базой данных из любой точки сети.

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

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

SQL Server - это серверная часть приложения, к которой присоединяются различные клиенты, включая и утилиты, поставляемые вместе с SQL Server (например, SQL Query Analyzer). К преимуще- ствам SQL Server можно отнести:

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

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

SQL Server Books Online - основной источник сведений о SQL Server для пользователя. В Books Online возможно найти ответы на любые вопросы о SQL Server. Books Online состоит из набора отдельных пособий, сохраненных в электронном виде. В случае необходимости вы можете заказать в Microsoft копию на бумаге. Само пособие организовано в виде документов HTML и просматривается в Microsoft Internet Explorer версии 5.0 и выше.

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

Левая панель диалогового окна SQL Server Books Online содержит несколько вкладок:

  • Contents (Содержание). Все сведения о SQL Server представлены в виде упорядоченных по темам разделов (как в обычном справочном пособии).
  • Index (Индексный указатель). Содержит алфавитный список ключевых слов Books Online. После ввода в верхнем поле искомого слова список автоматически прокрутится до того места, где это слово в нем встречается.
  • Search (Поиск). Эта вкладка используется чаще других. После ввода слова, названия, команды или опции в поле поиска и щелчка на кнопке List Topics (Просмотреть разделы) результат поиска отображается в виде списка.
  • Favorites (Избранное). Подобно программе Internet Explorer, Books Online позволяет сохранять список избранных разделов, к которым обращались чаще всего.

Утилита SQL Server Service Manager (менеджер служб SQL Server) отвечает за управление службами SQL Server в компьютере локальной сети, на котором установлена SQL Server. При запуске этой утилиты на экране появляется диалоговое окно. Поле Server (сервер) содержит название сервера, который используется. Поле Service (службы) указывает службу, состояние которой проверяется на данном сервере. Графически состояние службы представляется следующим образом: зеленая стрелка указывает на выполнение службы в текущий момент; остальные значки символизируют приостановку или полную остановку выполнения службы. Утилита Service Manager - это основная утилита, используемая для управления SQL Server.

Раскрывающийся список Service содержит все службы, которые управляются этой утилитой. Среди них SQL Server, SQL Server Agent, Distributed Transaction Coordinator и Microsoft Search. Раскрывающийся список Server служит для указания сервера, на котором запущены службы. Именованные экземпляры также представлены в этом списке. Оба поля диалогового окна достаточно интеллектуальны, чтобы воспринимать введенные с клавиатуры значения (например, имя_сервераимя_экземпляра). После введения названия сервера и указания в поле Service необходимой службы утилита Service Manager соединяется с удаленным сервером и принимает на себя управление службами.

Все функциональные возможности этого приложения присущи утилите SQL Server Enterprise Manager. Она запускается с панели задач Windows и поэтому более удобна в использовании.

Утилита Client Network, играющая главную роль при подключении компьютеров-клиентов SQL Server, проста в использовании. При запуске Client Network на экране появляется диалоговое окно, в котором указано, какие протоколы используются по умолчанию клиентским приложением для подключения к серверу SQL Server. По умолчанию SQL Server 2000 используется сетевая библиотека ТСР/ IP, независимо от операционной системы, которая управляет компьютером. В нижней части диалогового окна приведены еще две опции: Force Protocol Encryption (проводить шифрование) и Enable Shared Memory Protocol (подключиться к SQL Server локально). Вторая опция позволяет автоматически подключаться к SQL Server, установленном на локальном компьютере. При необходимости можно ее отключить. Первая опция необходима для установки зашифрованного соединения между клиентским приложением и сервером, на котором установлена SQL Server 2000.

Утилита Server Network во многом похожа на Client Network. Но в отличие от утилиты Client Configuration, которая управляет подключением клиентского программного обеспечения к SQL Server, Server Network управляет работой сетевых библиотек. Именно эта утилита определяет протоколы, с помощью которых серверы с программой SQL Server 2000 общаются с клиентскими приложениями.

SQL Server Query Analyzer - утилита, позволяющая выполнять команды языка запросов Transact-SQL. Эта утилита функционирует в среде Windows, что делает ее удобной в использования. При запуске система в диалоговом окне запрашивает имя SQL-сервера, имя пользователя и его пароль. Воспользовавшись введенной информацией, система осуществляет подключение утилиты к данному SQL- серверу. Основное окно утилиты разделено на две части. В верхней части пользователем осуществляется ввод команд, требующих выполнения. По завершении ввода следует воспользоваться кнопкой запуска SQL-запроса, после чего в нижней части данного окна отобразятся результаты выполнения запроса. Здесь же можно проверить корректность выполнения запроса без его запуска и сохранить для дальнейшего использования.

SQL Server Enterprise Manager - утилита, предоставляющая пользователю выполнять все операции администрирования SQL - сервера, доступа ко всем его объектам, а также запуска различных утилит и приложений. Наличие утилиты на компьютере позволяет осуществлять конфигурирование и удаленных серверов, т.е. утилита может запускаться не только на самом сервере, но и на компьютере рабочей станции. Основное окно системы очень похоже на Проводник Windows. В левой части находятся основные объекты SQL-сервера. Использование символов + и - слева от названия объекта позволяет раскрывать его составляющие, что, в свою очередь, дает возможность их редактирования. При выборе необходимого объекта опции настройки его параметров отображаются в правой части окна утилиты.

Утилита Profiler используется для мониторинга всех процессов, протекающих в SQL Server. Она также применяется для настройки среды на максимальную производительность; для этого анализируется план выполнения запросов и на основе полученных результатов принимается правильное решение. Profiler позволяет следить не только за деятельностью отдельных приложений, выполнением команд, но и за каждым пользователем SQL Server. В SQL Server 2000 позволено одновременно отслеживать около 100 событий.

Утилита OSQL добавляет в SQL Server интерфейс ODBC. Эта программа позволяет использовать для подключения к SQL Server команды ODBC. Обычно с ее помощью выполняются пакетные запросы, предназначенные для производственных задач.

ISQL - это программа командной строки, пришедшая из предыдущих версий SQL Server. Для подключения к SQL Server в ней используются средства DB-Library. Поскольку работа ISQL полностью зависит от DB-Library, новые команды в ней остаются недоступными. Среди них и поддержка Unicode.

SQL Server 2000 оснащен лучшими инструментами, когда-либо создаваемыми Microsoft. С помощью всего одной консоли управления, оснащенной графическим интерфейсом, легко выполняется администрирование большой базы данных всей организации. В SQL Server интегрированы все необходимые программы: утилиты запуска запросов, мониторинга состояния системы и используемых служб.

Средства SQL Server даже позволяют настраивать сетевые соединения и устранять некоторые проблемы, возникающие в сети. Некоторые из инструментов SQL Server запускаются из главного меню Windows, другие - из командной строки или из папки mssqlinn.

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

SQL является общепринятым интерфейсом к базам данных. «Все промышленные базы - Oracle , Microsoft SQL Server , PostgreSQL , MySQL - работают на SQL.

История

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

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

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

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

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

Функциональность

Microsoft SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.

Microsoft SQL Server также поддерживает Open Database Connectivity (ODBC) - интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.

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

SQL Server поддерживает избыточное дублирование данных по трем сценариям:

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

В SQL Server 2005 встроена поддержка.NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы.NET, используя полный набор библиотек, доступных для.NET Framework, включая Common Type System (система обращения с типами данных в Microsoft .NET Framework). Однако, в отличие от других процессов, .NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.




Top