18 | 10 | 2017

sql visual foxpro

Базы данных: Microsoft SQL Server и  Visual FoxPro - плюсы и минусы

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