Рис. процент использования субд

Преимущества

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

Основные достоинства языка SQL заключаются в следующем:

− стандартность – как уже было сказано, использование языка SQL в программах стандартизировано международными организациями;

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

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

реляционная основа языка – SQL является языком реляционных БД, поэтому он стал популярным тогда, когда получила широкое распространение реляционная модель представления данных. Табличная структура реляционной БД хорошо понятна, а потому язык SQL прост для изучения;

− возможность создания интерактивных запросов – SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;

− возможность программного доступа к БД – язык SQL легко использовать в приложениях, которым необходимо обращаться к базам данных. Одни и те же операторы SQL употребляются как для интерактивного, так и программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу;

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

− возможность динамического изменения и расширения структуры БД – язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области;

− поддержка архитектуры клиент-сервер – SQL – одно из лучших средств для реализации приложений на платформе клиент-сервер. SQL служит связующим звеном между взаимодействующей с пользователем клиентской системой и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих функций.

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

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

Недостатки

Несоответствие реляционной модели данных . Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем Манифестеони излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.

Сложность . Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.

Отступления от стандартов. Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

− Сложность работы с иерархическими структурами

Команды управления транзакциями

Существуют следующие команды, позволяющие управлять транзакциями базы данных : COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION.

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

Основные достоинства языка SQL заключаются в следующем:

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

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

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

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

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

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

Язык SQL используется в других стандартах и даже оказывает влияние на разработку иных стандартов как инструмент определения (например, стандарт Remote Data Access, RDA). Создание языка способствовало не только выработке необходимых теоретических основ, но и подготовке успешно реализованных технических решений. Это особенно справедливо в отношении оптимизации запросов , методов распределения данных и реализации средств защиты. Начали появляться специализированные реализации языка, предназначенные для новых рынков: системы управления обработкой транзакций (OnLine Transaction Processing, OLTP ) и системы оперативной аналитической обработки или системы поддержки принятия решений (OnLine Analytical Processing, OLAP ). Уже известны планы дальнейших расширений стандарта , включающих поддержку распределенной обработки, объектно-ориентированного программирования, расширений пользователей и мультимедиа.

В настоящее время существует достаточно много различных серверных СУБД – это MS SQL Server, Oracle, IBM DB2, Interbase, MySQL т.д. Но широкое распространение и применение на практике для крупных систем получили 3 системы – MS SQL, Oracle и IBM DB2.

Для выбора СУБД сравним их по следующим параметрам: производительность, цена, доступность, удобство использования, возможности. При выборе СУБД использовались данные приведенные на сайтах www.tpc.org и www.sql.ru .

На сайте www.tpc.org опубликованы данные TPC тестов и сравнение цен серверов. По данным этого сайта, первое место по производительности, которое определяется как количеству произведенных бизнес транзакций в минуту, занимает MS SQL Server 2000 с показателем tpmC=505302, далее следует IBM DB2 UDB 7.1 с tpmC=440879. СУБД Oracle 8i Enterprise Edition v. 8.1.7 занимает только пятую позицию (tpmC=220807). Кроме того MS SQL Server 2000 лидирует и по показателю стоимости системы на одну транзакцию. Стоимость системы в пересчете на одну транзакцию для систмеы MS SQL Server 2000 составляет около $20, что в 1.5 ниже, чем для системы DB2, и в 2 раза ниже, чем для Oracle.

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

Сайт www.sql.ru приводит результаты опроса (см. рис 3.3) пользователей по вопросу о том, какие СУБД используются наиболее часто. Результаты этого опроса опять в пользу MS SQL Server – более 30% всех участников голосования предпочли эту СУБД всем остальным. Более широкое использования MS SQL Server обеспечит меньшую стоимость внедрения и поддержки, т.к. есть большая вероятность, что MS SQL Server уже используется в данной компании.

Рис. Процент использования СУБД

Таблица. Сравнительные характеристики СУБД.

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

Выбор и обоснование использования MS Visual Studio и MS Visual C++, в качестве средств разработки.

В связи с тем, что сегодня уровень сложности программного обеспечения очень высок, разработка приложений Windows с использованием только какого-либо языка программирования (например, языка C) значительно затрудняется. Программист должен затратить массу времени на решение стандартных задач по созданию многооконного интерфейса. Реализация технологии связывания и встраивания объектов - OLE - потребует от программиста еще более сложной работы.

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

На сегодняшний день существует большое разнообразие и изобилие средств разработки. Рассмотрим основные достоинства и недостатки трех из них, как наи – Delphi, С++ Builder и MS Visual C++/Visual Studio.

Delphi является мощным и универсальным средством разработки приложений. Его RAD-оболочка считается одной из лучших. Ее вместе с библиотекой VCL, на которой оболочка основана и написана, можно назвать действительно революционной. Delphi предоставляет программисту широкие возможности по разработке графического интерфейса приложений (GUI). Он оптимально подходит для небольших проектов, тогда, когда на первое место ставится скорость разработки. Delphi очень популярен в нашей стране, однако за рубежом его популярность гораздо ниже, и при реализации крупных проектов предпочтения отдаются С++.

Достоинства:

………………………

Недостатки

………………………

C++ Builder

Некий "гибрид" Delphi и C++, о чем говорит хотя бы то, что C++ Builder использует ту же библиотеку VCL, что и Delphi, причем написанную на Delphi. В свете этого логичной выглядит совместимость C++ Builder с Delphi на уровне компонентов и исходного кода.

Достоинства:

…………………..

Недостатки:

……………………

MS Visual C++

Продукт Microsoft Visual C++ .NET – мощное средство разработки, позволяющее создавать программы на базе Microsoft Windows, с поддержкой технологии Microsoft .NET, динамические web-приложения и web-службы XML с использованием языка программирования C++. Библиотека классов MFC, входящая в состав Visual C++ позволяет существенно облегчить создание графического интерфейса приложений. Однако от программистов VC++ требуется гораздо большая квалификация, нежели от программистов Delphi, т.к. MFC, несмотря на всю свою «мощность», является всего лишь тонкой «оберткой» над WinApi, и поэтому при написании приложений многое приходится делать вручную. С одной стороны это является минусом, т.к. сильно снижается скорость разработки. С другой стороны это дает более широкие возможности и гибкость при реализации крупных проектов и позволяет добиться их максимальной производительности.

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

…………………………

Недостатки:

Независимость от конкретной СУБД

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

Наличие стандартов

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах.

Декларативность

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

Недостатки

Несоответствие реляционной модели данных

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

  • Повторяющиеся строки
  • Неопределённые значения
  • Явное указание порядка колонок слева направо
  • Колонки без имени и дублирующиеся имена колонок
  • Отсутствие поддержки свойства «=»
  • Использование указателей
  • Высокая избыточность

Сложность

Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.

Отступления от стандартов

Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

Сложность работы с иерархическими структурами

Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения. В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005.

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

Основные преимущества Microsoft SQL Server 2017:

  • Полная Web ориентированность. Осуществление запросов, анализ и управление через Web. Использование языка XML для обмена информацией между удаленными системами. Простой и безопасный доступ к ресурсам с помощью Web - браузеров, быстрый поиск необходимых документов. Анализ потоков данных и получение информации о пользователях, в том числе и через Web.
  • Масштабируемость и надежность. SQL Server 2017 обеспечивает практически неограниченный рост объемов хранения за счет увеличения надежности и масштабируемости системы, используя все преимущества мультипроцессорной обработки файлов. Это безопасная, надежная, масштабируемая платформа, защищающая информацию в приложениях и повышающая её доступность. Включенная в неё инновационная инфраструктура управления, основанная на политиках, позволяет определять политики для явного и автоматического администрирования серверных сущностей на одном или нескольких серверах. Кроме того, оптимизированная платформа SQL Server 2017 открывает путь к предсказуемой производительности обработки запросов. Инфраструктура SQL Server 2017 стала более масштабируемой. Она способна формировать отчеты и выполнять анализ любого объема и сложности, одновременно облегчая пользователям доступ к ресурсам за счет более тесной интеграции с Microsoft Office. В результате ИТ-специалисты могут распространить использование бизнес-аналитики по всей организации. SQL Server 2017 позволяет пользователям консолидировать разнородные данные в корпоративном хранилище, выводя организацию хранилищ на новый уровень.
  • Скорость создания решений. SQL Server 2017 в сочетании с.NET Framework уменьшает время разработки, внедрения и выхода на рынок современных приложений, ускоряет процесс поиска информации, упрощает управление, позволяет использовать создаваемые пользователем функции в других приложениях, предоставляет широкие возможности для создания Web-приложений. Среда ADO.NET Entity Framework повышает эффективность труда разработчиков, поскольку теперь они имеют дело не непосредственно с таблицами и полями, а с логическими информационными сущностями, согласованными с бизнес-требованиями. Более того, они могут создавать приложения, позволяющие пользователям копировать данные на собственные устройства, а позже синхронизовать их с центральными серверами.
  • Возможность обработки вычислений в оперативной памяти (in-memory OLTP).
  • Возможность взаимодействия с публичным облаком Windows Azure . Облачное резервирование локальных систем и аварийное восстановление из облака повышает отказоустойчивость критичных для бизнеса приложений.
  • Улучшенная технология AlwaysOn , обеспечивающая высокий уровень доступности данных и поддержку аварийного восстановления.