Преимущества языка SQL. Новое лицо SQL Server

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

Язык 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.

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

Access

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

Подходит для: Небольших объектов с невысокой загруженностью, при наличии 1 или 2 рабочих мест.
Быстродействие: Microinvest Склад Pro прекрасно работает с до 200 000 записями базы данных. Это представляет собой 40 000 документов с 5 позициями каждый.
Безопасность: Т.к. база сохраняется в одном файле, который доступен всем рабочим местам, то безопасность данных не очень высока. Практически каждое рабочее место имеет прямой доступ к базе данных и может ее повредить.
Простота установки: Этот вид базы данных не требует центрального сервера. Достаточно иметь один компьютер, который сохраняет файл с базой и чтобы все другие компьютеры имели доступ к этому файлу через сеть.
Связь в сети: Для работы в сети достаточно определить одну папку, которая доступна всем компьютерам, и в ней определить место для файла. Этот файл отдельно открывается с каждого компьютера.
Другие особенности: Microinvest Склад Pro работает с базой Access без необходимости приобретения и установки Access на компьютер. В саму программу встроены все необходимые модули управления базой данных в формате Access. База данных бесплатная.

MSDE (Microsoft Desktop Engine)

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

Подходит для: Небольших объектов с высокой загруженностью, при наличии до 5 рабочих мест.
Быстродействие: Microinvest Склад Pro прекрасно работает с базой данных до 2 GB. Это более 1 000 000 документов.
Безопасность: MSDE представляет собой полноценный SQL сервер, который заботится об управлении базой данных, ее безопасности и стабильности при работе. MSDE обеспечивает самый высокий уровень защиты данных и практически не создает никаких проблем.
Простота установки: Microinvest предоставляет один установочный файл MSDE, который устанавливает все необходимые компоненты, без каких либо дополнительных настроек. Из-за ограничений технологии в MSDE, этот сервер не может быть установлен на Windows Vista, Windows 7, Windows 8 или Windows 10.
Связь в сети: Для всех компьютеров в сети открывается порт 1433 в Firewall сети. Связь между отдельными компьютерами осуществляется посредством заполнения IP адреса сервера (компьютер, отведенный для этого, с установленным MSDE), имени пользователя (обычно sa), пароля для связи и имени базы данных.
Другие особенности: MSDE – это бесплатный сервер, имеющий низкие требования к параметрам компьютера, поддерживающий все необходимые системы защиты данных и работающий исключительно быстро. Полная инструкция по установке MSDE размещена на установочном диске Microinvest.

MySQL

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

Подходит для: Небольших объектов с высокой загруженностью, количество рабочих мест любое. При объектах, имеющих до 5 рабочих мест, рекомендуется использование MSDE, т.к. MSDE работает быстрее, чем MySQL. Если количество рабочих мест более 5, предпочтительнее установить MySQL.
Быстродействие: Сервер не имеет ограничений по размеру базы данных и может выдержать практически неограниченную нагрузку.
Безопасность: MySQL является полноценным SQL сервером, который заботится об управлении базой данных, ее безопасности и стабильной работе. MySQL обеспечивает самый высокий уровень защиты данных и работу с транзакциями. MySQL очень чувствителен к отключению питания, поэтому для машины, на которой установлен сервер, необходимо обеспечить ИБП (UPS).
Простота установки: Microinvest предоставляет два установочных файла MySQL (файл с сервером и файл с инструментами для управления сервером). MySQL работает со всеми версиями Windows. В установочном диске есть подробные инструкции по установке этого сервера. При установке важно выбрать кодировку UTF-8, чтобы не возникло проблем с кириллицей.
Связь в сети: Для всех компьютеров в сети открывается порт 3306 в Firewall. Связь между отдельными компьютерами осуществляется посредством заполнения IP адреса сервера (компьютер, отведенный для этого, с установленным MySQL), имени пользователя (обычно root), пароля связи и названия базы данных.
Другие особенности: MySQL – это бесплатный SQL сервер, который имеет огромные возможности для работы с высокой степенью загрузки. Полная инструкция по установке MySQL размещена на установочном диске Microinvest.

MS SQL (Microsoft SQL Server)

MS SQL является обобщенным наименованием Microsoft SQL Server 2005/2008/2012/2014/2016 Express Edition. Это великолепный сервер с отличными возможностями, высокой скоростью и максимальной безопасностью. MS SQL устанавливается на центральный сервер, и все другие компьютеры подключаются к этому серверу.

Подходит для: Средние и большие объекты с высокой загрузкой.
Быстродействие: Microinvest Склад Pro работает отлично при любой нагрузке. Практически не имеет ограничений в объеме данных и быстродействии системы.
Безопасность: MS SQL это SQL сервер высокого класса, который заботится об управлении базой данных, ее безопасности и стабильности работы. MS SQL гарантирует самый высокий уровень защиты данных и практически не создает никаких проблем. Эта система корпоративного значения и может использоваться у каждого клиента.
Простота установки: Microinvest предоставляет два инсталляционных файла MS SQL (x86 и x64). MS SQL работает со всеми версиями Windows. В установочном диске есть подробные инструкции для установки этого сервера.
Связь в сети: Для всех компьютеров в сети открывается порт 1433 в Firewall сети. Связь между отдельными компьютерами осуществляется посредством заполнения IP адреса сервера (компьютер, отведенный для этого, с установленным SQL Server), имени пользователя (обычно sa), пароля связи и названия базы данных.
Другие особенности: Microsoft SQL Server 2005/2008/2012/20014 Express Edition - это бесплатный сервер, который имеет высокие эксплуатационные характеристики. Полная инструкция по установке SQL Server размещена на установочном диске Microinvest. Важно отметить, что предоставленный на диске сервер является бесплатным для использования клиентами.

Некоторые полезные ресурсы

  • Документация по всем продуктам;
  • Форум технической поддержки Microinvest , где Вы сможете быстро получить ответ на интересующий вопрос;
  • Примеры автоматизации ресторанов и торговли на базе Microinvest в России и странах СНГ;
  • График предстоящих обучений в России и странах СНГ;

SQL Server и Visual FoxPro две базы данных в настоящее время поддерживаются Microsoft. SQL Server был разработан Microsoft как база для распределенных клиентов в клиент-серверной архитектуре. Visual FoxPro была куплена Microsoft и первоначально разрабатывалась для операционной системы DOS, преимущественно для монопольного использования.

SQL Server

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

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

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

Два основных языка разработки приложений используется для извлечения информации из данных SQL Server. Это C++ и Visual Basic. Эти языки являются частью Visual Studio.Net, интегрированной среды разработки Microsoft . Покупка приложений, разработанных с помощью этих продуктов гарантирует, что программное обеспечение будет модернизироваться и расширятся и развиваться в будущем .

SQL Server является приложением базы данных при работе на . Net, новейшие разработки Microsoft. Выбрав Microsoft SQL Sever в качестве базы данных информации для компании, приложение может расширяться и адаптироваться по мере изменения бизнес-климата.

Visual FoxPro

Visual FoxPro является адекватной базой для небольших сетей со средним количеством пользователей около 50. FoxPro представляет собой файл-сервер приложений, который был введен в операционной системе DOS. Первоначально он был использован на отдельных компьютерах или в домашней локальной сети. Структура данных проста в использовании, обслуживании и с минимальным уровнем безопасности. Тем не менее, они не имеют обеспечения или расширения для использования в больших сетях.

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

Резервное копирование и изменение структуры можно производить, только когда система (клиенты) базы отключены.

Применение языка FoxPro. Файл-серверная архитектура так же используется в визуально й среде разработки FoxPro, преимущественно для небольших, локальных проектах. Технически Visual FoxPro можно использовать для извлечения данных из SQL Server. Тем не менее, любое приложение, ранее написанных для FoxPro под файл-серверную архитектуру требуют переписания больших участков кода для оптимизации SQL Server, извлечения и управления данными. Поскольку Visual FoxPro не является частью Visual Studio.Net это может быть не идеальным выбором для создания нового приложения .

На Visual FoxPro достаточно много рабочих приложений. Однако м ногие эксперты предсказывают, что долгосрочная поддержка со стороны Microsoft может быть ограничена.

Подведем небольшой итог по вопросу - Базы данных: Microsoft SQL Server и Visual FoxPro - плюсы и минусы

FoxPro минусы:
-- это файл-серверная СУБД, соответственно, все обрабатываемые данные сначала читаются по сети клиентом, потом обрабатываются им. Раньше (90 годы) приложения на таких СУБД укладывали сеть при работе сколько-нибудь существенного числа пользователей, ну, скажем, 100. Теперь есть сверхбыстрые сети, вроде бы это уже не так критично, но потенциально сеть -- узкое место таких систем, и в них изначально заложен потолок производительности.
Потому что Etherner не способен конструктивно работать в высоконагруженном состоянии, а файл-серверная СУБД именно сеть и грузит более всего.

В FoxPro нет поддержки ACID-транзакций и она там практически невозможна.
Почти невозможна теоретически.

При сбое хотя бы одного клиента рушатся индексы и заголовки таблиц.
-- Обработка ошибок на низком уровне

DBF занимает много места. Но это не очень важно.

Плюсы FoxPro - приложения может быть только то, что оно написано и работает.
А главное правило программиста гласит: "Работает - не лезь". Аргумент довольно существенный, поэтому если досталось такое наследство - легче обслужить, нежели пве переписать - это однозначно.

У MSSQL никаких особых минусов нет, кроме патологической моноплатформенности, но это вроде бы как уже особенно никого не парит, потому как все платформы окромя wintel помирают понемногу.

Если Вы хотите перейти на SQL, говоря что это более надежно и быстрее. Какие аргументы привести перед руководством для перехода к MS SQL Server?

Ну, как бы особых аргументов и не надо, просто файл-серверные СУБД изжили себя морально, хотя конкретно FOX может быть даже и поинтереснее как средство разработки был. Кстати, именно был, ибо Fox -- всё, закрылся. Не будет его более MS развивать и выпускать. Тоже кстати аргумент за переход.

Да, и FOX отлично может работать как клиент MSSQLServer или другой клиент-серверной СУБД, так что приложение можно переписывать так:

Данные перенести на MSSQL
-- основные запросы перевести на MSSQL путём обращения к MSSQL.
В результате запроса получается всегда обычный временный DBF -- курсор.
-- все формы, отчёты и т.д. просто используют возвращённые курсоры, как ранее данные DBF-ов.

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

Очень грубая оценка:
Собственно MS SQL 2008 - около 50 тысяч
Лицензия на одно подключение - около 8 тысяч (10 рабочих мест = 80 тысяч)

MS SQL сервер, конечно, можно поставить и "забыть". Но, по хорошему, нужен администратор. Не сисадмин, а именно администратор собственно SQL-сервера. Администратор базы данных. А это еще минимум 100 тыс в месяц. Если админа нет, то все рассуждения о надежности и скорости очень быстро превратятся в просто слова.

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

Вы изначально не правильно поставили вопрос. Точнее, вы сформулировали вопрос с точки зрения программиста. А это заботит руководителя в последнюю очередь. Руководитель поставит вполне банальные вопросы:

1. Существующее приложение справляется с решаемыми задачами?
2. Сколько еще времени приложение будет адекватно решать задачи без принципиальной переделки?
3. Что именно делает новая версия такого, чего не может делать старая версия? Не обязательно программные нововведения. Возможно технические. Но такие, которые препятствуют дальнейшей адекватной работе старой версии.
4. Сколько будет стоить переход на новую версию и сопровождение этой новой версии?

Что принципиально изменится при переходе на MS SQL?

1. Будет снято ограничение на размер таблицы в 2 ГБ (около 40..60 миллионов записей в одном DBF-файле) - это важно для вашего приложения?
2. Упростится интеграция приложения с другими приложениями также работающими с MS SQL-сервером - это важно для вашего приложения?
3. Существенно (в разы) возрастет стоимость сопровождения вашего приложения (зарплата админа, лицензии) - если админ и лицензии уже есть, то можно не считать.

Насчет стоимости модификаций приложения под "хотелки" руководства - тоже вопрос. Сколько стоит сейчас и сколько будет стоит при переходе на MS SQL?

Все программные тонкости и заморочки, которые тут активно обсуждают программисты, руководителю глубоко чужды. Это ваши проблемы, а не проблемы руководителя.

Желательно изначально учесть все нюансы, а потом принимать решение о переходе с баз Foxpro на SQL

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

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