Автор Тема: Зачем нужен SQL сервер?  (Прочитано 7080 раз)

0 Пользователей и 1 Гость просматривают эту тему.

CUJIbBEP

  • Гость
#0: 23 Мая 2003, 19:24:25
Собственно кроме сабжа интересует еще один нюанс:
Задавшись вопросом \"почему приверженцы FoxPro не любят SQL-сервера\" ответа не нашел до сих пор :(
Хочется услышать мнение общественности.

Отмечу: сам начинал еще с Clipper-87, более-менее работал и с FoxPro. После знакомства с SQL (Interbase) с dbf сталкиваюсь только при большой необходимости.

Сильвер

  • Гость
#1: 23 Мая 2003, 20:14:32
Ответ простой,
чтобы не писать его в ручную, ну нравятся кому-то заморочки нельзя лишать человека удовольствия, можно им и свою ОС-ку написать, удобнее будет...

Кот Бегемот

  • Гость
#2: 24 Мая 2003, 03:43:08
Орехи колоть...

Fox

  • Гость
#3: 24 Мая 2003, 06:13:16
С точки зрения практического программирования он практически не нужен. Каковы его основные преимущества? Рассмотрим главные пять из них:
1) уменьшение трафика при обмене данными в сети.
2) надежность данных (транзакции, журнал изменений ...)
3) развитая система безопасности
4) удобные системы резервного копирования
5) работа с очень большими данными

Современные технологии на базе WebServices перечеркивают все эти преимущества.
1) как правило, Web server стоит во внутренней сети. Две сетевые карты на 1000 Mb Ethernet закроют вопрос о трафике на несколько лет вперед :) А стоят они намного дешевле любого коммерческого (читай правильного) SQL сервера
2) для чего нужны транзакции? В конечном счете, чтобы предвидеть отказ оборудования. За последние несколько лет качество оборудования значительно улучшилось, так что актуальность этого вопроса не стоит сейчас очень остро.
3) при доступе через стандартные Web технологии вы уже больше не даете доступ просто к каталогам диска, этот доступ полностью лежит на вашем приложении, так что все вам карты в руки (простите наложение ограничений на клиентов).
4) вы можете легко реализовать горячее копирование в FoxPro средствами самого FoxPro. Другой вопрос, что горячее восстановление довольно трудная процедура... Но ведь та же проблема существует и с серверными базами данных (что бы вам не говорили системные аминистраторы)...
5) мне трудно что либо возразить по этому поводу. Ограничение формата DBF при работе из под FoxPro - 2 Gb. НО поверьте, при правильной структуре данных - это фантастически много ну а у самой базы данных - нет ограничения по размеру. Столько много данных нужно в основном при получении отчетов, а не при оперативной работе, так что этот вопрос довольно спорный. Максимальный размер как пример - активно используемая база данных в настоящий момент - более 200 Gb (что для почти любых целей более чем достаточно)...

Ну а вообще, я не против SQL серверов, даже написал несколько задач (на клиентской сороне FoxPro и VB) - главное преимущество последних сложность и соответственно более высокая материальная компенсация. И, наконец, клиент определяет - нужен ли ему SQL сервер или нет, ну а если ДА, то мы делаем всегда то, что желает клиент :)

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

прохожий

  • Гость
#4: 24 Мая 2003, 18:09:37
Ну-ну... продолжай в том же духе, Fox. Опять \"я как самый умный буду юзать четкий FoxPro+dbf\", а весь мир использующий SQL подход уже лет 20 - дураки, и чего это они бабки всяким Oracle переплачивают. Эх объяснил бы я тебе кучу пробелов в твоих знаниях.  Хотя бы насчет транзакций... Да времени так долго клаву топтать нет...

tan

  • Гость
#5: 24 Мая 2003, 18:42:42
Фермера в магазине \"разводят\" на покупку:
 Продавец -Купи мотоцикл! Классная вещь!
Фермер- Да за такие деньги лучше корову купить!
П.- Предствляешь, как народ будет смеятся, когда приедешь домой верхом на корове!
Ф.- Да не меньше, когда увидят, как я пытаюсь подоить этот мотоцикл!

Задачи разные- и средства разные.
 На танке за хлебом в булошную можно ездить, только далеко объезжать.
Наворачивать Оракл , там где 1-2-10 транзакций в секунду?
Никто же не ставит Fox +DBF там , где 500-1500 транзакций в секунду.
 По Сеньке и шапка.
 Детский спор- кто кого сборет- слон или кит.



 


Fox

  • Гость
#6: 24 Мая 2003, 20:29:01
To: прохожий
Я никого никогда не называл \"дураком\". Вы передергиваете.

To: tan
Отлично сказано! Для каждой задачи - своя платформа...
Спасибо за трезвые мысли :)

CUJIbBEP

  • Гость
#7: 25 Мая 2003, 18:14:07
2 ALL:
Желающим пофлеймить на темы \"SQL - ацтой, Fox -- рулез!\" и \"Fox - ацтой, SQL -- рулез!\" ПРОСЬБА -- не беспокоиться. :))
Тема звучит НЕ сравните, а КОГДА и ЗАЧЕМ?

2 tan:
К сведенью -- кроме Оракла, есть еще МАССА SQL-серверов. Перечислить? Или сами способны поискать?
И \"весовые категории\" у них СОВЕРШЕННО разные -- это я вам говорю как краевед :))
Кстати, работой с плоскими базами занимается не только Fox (в смысле VFP), есть еще пара-тройка продуктов в этой же категории.
Это было такое \"А\" :)
Теперь \"Б\":
Транзакции бывают разные:
1) по объему
2) по сложности
3) по распределенности
Так что КОЛИЧЕСТВО транзакции -- не показатель.

Ну и наконец-то 2 Fox:
1) Трафик --
   а) на клиентские машины что ставить прикажете? Тоже 1000Мб?
   б) сеть состоящая из нескольких сегментов ==  требуется активное    сетевое оборудование -- тоже 1000Мб
Этот вариант не решение проблемы трафика -- это путь настоящих \"нормальных\" героев -- т.е. в обход! (с) Бармалей
2) Транзакции -- простите, но в этой области АБСОЛЮТНО не согласен. На случай отказа оборудования у меня RAID есть :)) (точнее должен быть).
Такие слова как \"уровни изоляции\", \"уровни блокировок\", \"грязное чтение\", \"составные транзакции\", \"ограничения целостности\" и т.д и т.п. (на пару десятков страниц может хватить) -- Вам что-либо говорят? Вот только не надо утверждать что в одиночку все это можно реализовать лучше :) Ок?!
3) Опять не совсем так -- механизмы ограничения доступа на уровне приложения и на уровне данных -- весьма и весьма различаются. Так что ой как не все карты в руки ... Не забудем еще и про разные уровни безопасности и web и sql серверов ....
4) Горячее копирование и восстановление -- хм .... Что-то я не помню что-бы FoxPro научилось бы корректно работать со своими индексами ... Вырубил приложение неожиданно -- \"индекс капут\"! :) Про средства автоматического восстановления после сбоев упоминать не будем? :))
5) Размер имеет значение (с) Реклама какой-то ...
Не хотел бы заниматься переиндексацией Вашей 200Gиговой базы ....
Кстати, как решаете проблемы данной базы с дисковым пространством?

Возможно Ваша очевидная неприязнь к технолгиям SQL-серверов подкреплена недостатком информации об их возможностях?

Fox

  • Гость
#8: 25 Мая 2003, 18:34:45
To: CUJIbBEP
Все указанное выше верно :)

CUJIbBEP

  • Гость
#9: 25 Мая 2003, 18:47:13
2 Fox:
:))
Так как на счет расположения 200Гб базы -- при недостатке места на hdd приходится переписывать алиасы или нашли другое решение?
(Просто любопытно :))

прохожий

  • Гость
#10: 25 Мая 2003, 19:58:45
2Сильвер
Молодец! Хорошо что время нашел напомнить Фоксу о дырах в его образовании, мне было лень ;) Про транзакции можно было развернуть, хотя Фокс и так в \"нокауте\". Может еще потрепыхаться, но смысл уже ясен... Давить (ничего личного :))

Fox

  • Гость
#11: 25 Мая 2003, 20:04:45
Вот эта статья с некоторыми объяснениями:

http://www.advisor.com/Articles.nsf/aid/MATIV02

прохожий

  • Гость
#12: 25 Мая 2003, 20:57:11
статья больше напоминает подход слесаря к инженерной проблеме, что часто бывает именно в российских условиях - \"денег платить не хотим, для начала высосем идею из пальца, изобретем велосипед, работать будет а вот как и что потом не наше дело\". слесарЯ конечно нужны, но надежных масштабируемых (а главное технически грамотных) решений они не строят. и не нужно фантазировать на тему \"при желании я тоже могу построить космический корабль\".

ЧУВАК

  • Гость
#13: 25 Мая 2003, 21:02:31
Суть вопроса (SQL vs DBF) кроется чуть-чуть в другом.

Существует понятие - нарабОтки. Когда человек из года в год пользуется одним и тем-же инструментарием (пускай и развивающимся) и применяет одни и те-же решения одних и тех-же проблем, со временем появляются навыки _реализации_ и _кодирования_, отказаться от которых ОЧЕНЬ СЛОЖНО. Что-то на уровне инстинкта. НАВЫК. И если во всех остальных профессиях НАВЫК есть благо, в програмировании НАВЫК есть зло.

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

Напротив, для ГРАМОТНОГО построения схемы данных для любого SQL-сервера (не говоря уже о хранимых процедурах, триггерах и обеспечении ссылочной целостности) Вам требуется ПОЛНАЯ постановка задачи. Очень желательным так-же будет нормализация составленной схемы как минимум до 3 порядка, при этом желательно не использовать синтетических ключей :-)

Серьезно перекраивать полученную схему ТЯЖЕЛО. Такие дела. IMHO. Да.

Наиль Ильбарович

  • ***
  • Сообщений: 7282
    • Просмотр профиля
#14: 25 Мая 2003, 21:14:31
Вообще то от догм во всех областях знаний и производств очень мало пользы, больше вреда.

FoxPro чем нравится,- можно своими руками собрать-сочинить.
Для какой либо задачи по учету чего то там. Установить на Win98/ Сеть одноранговая. 2-5 машин. И ура!
 ШевОлится!

При реализации с SQL уже выделенный сервер надо соображать. И заглядывать ему под \"хвост\" периодически.

У FoxPro на Win98 минус- доступность баз.

У SQL минус - требования к наличию выделенного сервера.

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

 Да и администрить FoxPro приложения достаточно просто.

 Сегодня наблюдается такая агрессивная тенденция- надо- не надо ставь компьютер!, Устанавливай программу! Уже не компьютеры и системы работают на людей, а наоборот!

 Некоторые работы гораздо проще и быстрее сделать вручную, на бумаге. Так нет- на бумаге не принимают, на дискете подавай!

 Та же платежка- и миллиметры операционист в банке линейкой вымеряет, и придирается ко всему.

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

 Так и SQL сервер. или FoxPro.

 если можно обойтись простыми средствами, тем же FoxPro. Так и обходитесь!

Что в лес.... что в сад-- с бензопилой и на трелевочном тракторе. :))

 Подходы разные должны быть! Согласно обстановке и задаче.

SQL знаю не по наслышке. Инсталлил  и администрил ( ю)
 Про MySQL не скажу. Узкий я специалист в SQL :( . Только MS SQL 6.5  Зато как администрю :-)))

ЧУВАК

  • Гость
#15: 25 Мая 2003, 21:23:57
Про ВЫДЕЛЕННЫЙ комп. Давным-давно SyBASE сделала реализацию для НЕВЫДЕЛЕННОГО сервака. Идеологически, все равно есть машина, которая ДОЛЖНА работать от_заката_до_рассвета (что-то типа компа, на котором 1Совская база :-). Вот на нее и ставится. Не буду врать, но по-моему есть подобная реализация от Pervasive. Да.

Наиль Ильбарович

  • ***
  • Сообщений: 7282
    • Просмотр профиля
#16: 25 Мая 2003, 21:53:02
Кстати о птичках....
 Кто сказал, что в SQL  базы не индексируются? Еще как индексируются!
И 200-500 мег. ( НЕ ГИГ!) иногда до 2-3 минут :((
Одно хорошо- все это делается без остановки и без перехода в монопольный режим.

и вообще! Хватит спорить в таком ключе!

 Вместо обмена знаниями- опытом  идет какой то бесплодный   спор . чья платформа лучше, круче.  Кто мощнее, чище , длиннее ;)

 Извечный дурацкий  вопрос -- кого больше любишь- папу или маму?

Имеется спрос на приложения на FoxPro. Fox его реализует.

 Заберите у него его хлеб! Навтыкайте везде SQL сервера! Установите всем \"клиент-сервер\" или что там еще! Возьмите эти конторы на обслуживание, за те же деньги, что и сейчас они платят за эти долбаные FoxPro-приложения! И пусть вытурят этого Foxа с его работы (работ?)на улицу! Пусть идет  и плачет! Или пусть переходит( потом) в Ваш лагерь (контору), где слова про  FoxPro  только с ругательными смыслами.

На FoxPro не пишу :((
И так работы хватает.
Нельзя объять необъятное (с) Козьма Прутков.
c Foxом близко не знаком. :-|
 (Это к вопросу об ангажированности)

Только наезжать на чела за то, что его тяпка заточена не под тем углом, как у \"правильных пацанов\"?


В жизни есть более важные поводы для противостояния и споров.

А вот вопрос- давно ли вы реализовывали в своих программах алгоритм\"пузырьковой сортировки\"?

Для справки- это когда  по возрастанию. самые \"легкие\" в начале и далее в низ по возрастающей ( \"утяжелению\")  

CUJIbBEP

  • Гость
#17: 26 Мая 2003, 08:48:48
2 ЧУВАК:
Уточнения:
1) НАРАБОТКИ -- имеются в виду готовые шаблоны решений? Или применение одних и тех же подходов при наличии даже минимальной схожести задач?
Вообще-то сами по себе шаблоны (patterns -- да поправят меня любители С++ :)) ) -- ни есть НЕ хорошо, вот только применяются они при фактически полном совпадении алгоритма с различиями в типах данных.
2) Что понимаем под синтетическими ключами? Ежели составные -- согласен, ежели разговор о паре естественный -- составной, тогда нет. В любом случае искуственный ключ в качестве primary key -- предпочтительнее
3) На тему выделенного сервера -- я ВСЕГДА за выделенный сервер! Юзер на консоли основной машины -- администратору --  ATTENTION!! DANGEROUS!!! ACHTUNG!!! WARNING!!! Ибо лучше (и безопасней) выдать обезьяне гранату, чем пустить юзверя на такую машину :) IMHO, точнее IMNHO :)

2 прохожий:
Вот уж что не было целью -- так это кого-то чему-то учить ... Назанимался образованием аж до тошноты ... Учить можно только того, кто сам рвется учиться, причем только в той области которая ему (ученику) интересна. IMHO.

2 tang:
Собственно штурмовой бронепоезд в данной ветке только один ... Есть еще один пролетающий на бреющем штурмовик ... Ник бронепоезда указывать
я думаю необходимости нет? :))
Про сортировку -- мне собственно чаще всего достаточно конструкции GROUP BY ....
Ежели вопрос об алгоритмах сортировки -- заводите ДРУГУЮ ветку -- зайдем, пообщаемся ....

Наиль Ильбарович

  • ***
  • Сообщений: 7282
    • Просмотр профиля
#18: 26 Мая 2003, 11:50:49
To CUJIbBEP

Согласен с вами про броненосца с птеродактилем :))

 Как то не просек, что претендовать на чужие \"лавры\" неприлично. :-))

 Да это и не наезд был. Накатило. :-(

 Если что то, как то , то пардон. :-|




Fox

  • Гость
#19: 26 Мая 2003, 13:00:32
Excuse me, А в бронепоезде сижу я?

CUJIbBEP

  • Гость
#20: 26 Мая 2003, 13:14:38
Для тех кто в танке :)
Кто понял -- тот понял кто :)
От ника Fox в данной ветке ни наезда, ни воплей, ни флейма НЕ фиксировал.
Все сообщения были по теме.
Возможно что я чего-то упустил? :)

Сильвер

  • Гость
#21: 26 Мая 2003, 15:56:59
Вообще-то бадягу, что Fox - самый крутой язык, начал Фокс.
А что касается его клиентов, они просто не видели, ничего другого, потому-что он им показывает только Фокса и убеждает что это круто и на все случаи жизни.
Уточняю еще раз изобретение велосипеда-занятие благородное, но не благодарное. А саморекламой с лохов легко можно бабки стрич. Имидж себе создав.
Народ ведь зачем-то придумал SQL-сервер, значит потребность возникла в облегчении труда в том числе и программиста.
Кстати в DOS все лихо было, гораздо проще и понятнее чем в винде, почему бы в DOS-е не лабать и говорить, что куруто, кстати любую задачу можно перекрыть, однако время ни то и требования другие увы...

Сильвер

  • Гость
#22: 26 Мая 2003, 16:12:04
To Fox:
Технология клиент-сервер подразумевает наличие готового сервера для работы с базами данных чере язык запросов, со встроенным дополнительным сервисом, архивирование, транзакции и т.д. ЕГО ПИСАТЬ НЕ НАДО! Его нужно только администрить.
А вот клиента надо писать, он через язык запросов обращается к SQL-серверу, который сам делает всю низкоуровневую работу с базой, добавить, удалить, изменить...
И нет надобности отлавливать запрос клиента и проверять, чего он хочет от базы, сервер сам знает что делать, анализируя SQL-запрос.
В данной схеме трудоемкость сокращена-это очевидно.
И это шаг вперед!

ЧУВАК

  • Гость
#23: 26 Мая 2003, 16:34:06
Дополняя Сильвера.
Другими словами, SQL-сервер как идеология создавался для того, чтобы отделить хранилище данных от клиента. Сделать обработку данных НЕЗАВИСИМОЙ от клиента. В модели клиент-сервер (правильно реализованной) совершенно неважно, кто выступает клиентом - ворд, ексель, или какая другая приблуда. ВСЯ логика отписывается НА СТОРОНЕ СЕРВЕРА в виде триггеров/хранимых процедур. Разрабатывая клиента для определенной БД программисту надо только знать имена SP и их параметры. Эти данные дает ему АДМИНИСТРАТОР БД.

ВОТ ТУТ ТО И ПОРЫЛАСЬ СОБАКА. Да.

Fox

  • Гость
#24: 26 Мая 2003, 21:26:05
Так всё-таки - \"Зачем нужен SQL сервер?\" Я всю жизнь считал, чтоб выкачать побольше денег из клиента и при этом постоянно быть ему нужным для продолжения этого процесса :) Что поделаешь, кушать то что-то надо...

прохожий

  • Гость
#25: 26 Мая 2003, 23:09:19
Ну Fox, извини, не в обиду, после всего сказаного людьми о SQL серверах я не ожидал что ты настолько тупой... Может тебе в учебник заглянуть какой? Впрочем, горбатого видимо только могила исправит... ;)

CUJIbBEP

  • Гость
#26: 27 Мая 2003, 01:35:25
2 Fox:
Ну вот и допылили до сути ....
Битье себя в грудь со словами \"Да рази ж я кого оскорблял?\" -- считаем законченым. Исходя из вышеприведенной фразы -- все кто делает ставку на SQL-сервера -- изымают с клиента излишние суммы -- т.е. собственно говоря ВОРУЮТ. Наглость, наезд, оскорбление. Готовы это доказать с фактами и цифрами в руках? Ежели нет -- трепло и хамло. IMNHO.
IMHO -- использование FoxPro в качестве доилки клиента -- гораздо более вероятный вариант, ибо система имеет ЗАКРЫТЫЙ код и не имеет средств администрирования/оптимизации являющихся общедоступными.
Попытайтесь опровергнуть ...

Fox

  • Гость
#27: 27 Мая 2003, 06:09:41
To: прохожий
Да, видимо так...

To: CUJIbBEP
Я высказал всего-лишь свое частное личное мнение по данному вопросу :).
По поводу закрытого кода - это зависит от соглашения с клиентом. В большинстве проектов код передается клиенту (бесплатно или за деньги - это уже тема другого топика).

Сильвер

  • Гость
#28: 27 Мая 2003, 08:34:40
To Fox:

Тема исчерпана, говорить не о чем (полный кто там?).
Тока нафиг твой километровый код клиенту, который в нем никак не рубит?
Найди какую-нить доку по клиент-серверной технологии и почитай. А то ей Богу с тобой скучно и грустно говорить.

Fox

  • Гость
#29: 27 Мая 2003, 08:39:10
To: Сильвер
Сейчас уже нет километровых кодов :))). Вся серверная часть - это менее 300 строк для WebService (или COM service).
Если вы закрыли данный топик, закругляюсь и я.

Удачи!

Сильвер

  • Гость
#30: 27 Мая 2003, 08:50:46
To Fox:
Мы тебе про Фому, а ты нам про Ерёму.
Нет, может кому-то и интересно,
но лично я устал, извини.

 

kompas