Большой Воронежский Форум
» Программирование>Какую СУБД выбрать
M@D 15:07 15.09.2006
Надо написать прогу Работы с базой данных. Сначала забить туда данные, отдельно на 3х машинах. потом слить в одну. А потом от туда дергать данные и их обрабатывать....Писать буду на Delphi..Какую СУБД выбрать? Я хотел MySQL....Есть ли по нему нормальная документация на русском.....и вообще что посоветуете? [Ответ]
DimmaN 15:45 15.09.2006
Вы бы предметную область как-то обозначили, что-ли. Сколько таблиц будет, как с ней работать будут (частота обращений), сколько пользователей? А то может вам и пара тхт-файлов подойдет. Сделаете к ним одбс-профиль и шабаш! [Ответ]
M@D 16:18 15.09.2006
Будут вбивать на 3х компах отдельно, по частоте обращения - не знаю, я бумал про одну таблицу всего около 50 000 - 70 000 (после слива в одну) записей, в каждой 30 - 40 различных полей (текст, дата......) быстродействие не сильно важно, в разумных пределах конечно )) у txt выборки делать неудобно, да и объемы приличные... [Ответ]
DimmaN 16:29 15.09.2006
Все равно ничего не понял. Пользователей сколько? У конечной (после слива) базы-таблицы? Будет ли мультиюзерность? Если юзер один - делайте дбф и не парьте моск серверами. [Ответ]
doXtor 18:02 15.09.2006
M@D, бредите?....... определитесь и поконкретнее плз. DimmaN прав. [Ответ]
DimmaN 10:44 16.09.2006
doXtor, да ладно, тебе. Все такие были.

M@D, ты напиши сколько юзеров. Еще - какие выборки будут из этой таблицы пусть даже в 100000 записей? И все-таки, написал бы что за задача перед тобой стоИт. Когда одна таблица - ничего ценного в плане идеи там быть не может, так что красть будет нечего [Ответ]
Integrator 16:10 18.09.2006

Сообщение от M@D:
Надо написать прогу Работы с базой данных. Сначала забить туда данные, отдельно на 3х машинах. потом слить в одну. А потом от туда дергать данные и их обрабатывать....Писать буду на Delphi..Какую СУБД выбрать? Я хотел MySQL....Есть ли по нему нормальная документация на русском.....и вообще что посоветуете?

Бери Ораклу не пожалеешь ... все остальное пока детский сад ;-) [Ответ]
DimmaN 16:51 18.09.2006
Integrator, шутки-шутками, а ведь такое на самом деле бывает. Сам сталкивался с програмульками, для которых дбф-а - было бы выше крыши, но нет. Люди пользовали оракал. [Ответ]
Integrator 17:25 18.09.2006
Кто на что учился ;-) ... в жизни все бывает ... обычно это от не достатка информации ... я понимаю раньше, а щаз ... людям лень даж поисковик запустить ... [Ответ]
Rabbit 20:11 20.09.2006

Сообщение от DimmaN:
Люди пользовали оракал.

А вот я с некоторых пор, везде, где можно использовать дбф, использую firebird... Быстро(программинг) и удобно(СУБД всё таки). И в плане расширяемости приложения тоже перспективы неплохие.
Хотя, я это делаю в основном из-за того, что дбф транзакции не поддерживает...
В любом случае дбф имеет смысл всегда менять на простенькую СУБД, типа firebird, MySql, PostgreSql. [Ответ]
DimmaN 10:49 21.09.2006
Rabbit, все так, но когда таблица всего одна?! Хотя опять же, автор пропал, ничего про предменую область не сказал. [Ответ]
Rabbit 18:38 21.09.2006

Сообщение от DimmaN:
все так, но когда таблица всего одна?!

При внезапном отключении питания и одна таблица может быть испорчена. И что тогда? Вот если бы к дбф прикрутить транзакции...

Сообщение от DimmaN:
Хотя опять же, автор пропал, ничего про предменую область не сказал.

Точно! Может ему там вообще бд не нужна.
[Ответ]
DimmaN 09:14 22.09.2006

Сообщение от Rabbit:
Точно! Может ему там вообще бд не нужна.

вот именно к этому я и клоню [Ответ]
Yandex 09:20 22.09.2006
Rabbit, в Delphi реализуемы транзакции и для DBF, если midas.dll использовать

Сообщение от :
Midas и COM. Советы и Приемы
Автор: Bill Todd
Перевод: Михаил Голованов

Транзакции в настольных базах данных

Если Вы работаете с Paradox или Dbase таблицами, и нуждаетесь в поддержке транзакций, Вы ограничены, потому что единственный уровень изоляции транзакции read uncommited (также грязное чтение). Вдобавок ко всему, невозможно произвести откат при возникновении аварийной ситуации , т.е аварийный отказ может оставлять вашу базу данных в несогласованном состоянии. Однако, если Вы используете ClientDataSet, Вы действительно получаете транзакции и автоматический откат в аварийных ситуациях.

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

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

[Ответ]
M@D 15:57 22.09.2006
Возможно, правда, имеет смысл использовать дбф. где про это можно подробно почитать и вообще какими инструментами Делфи лучше пользоваться.....что бы было проще писать запросы [Ответ]
Rabbit 18:28 22.09.2006

Сообщение от Yandex:
в Delphi реализуемы транзакции и для DBF, если midas.dll использовать

Знаю, но:

Сообщение от Yandex:
аварийный отказ, во время выполнения ApplyUpdates

[Ответ]
Rabbit 18:39 22.09.2006

Сообщение от M@D:
где про это можно подробно почитать

В любой книжке по Дельфи. Хотя, там всё настолько просто, что и дельфовской помощи достаточно для понимания работы с таблицами(любыми, не только дбф).

Сообщение от M@D:
и вообще какими инструментами Делфи лучше пользоваться.....что бы было проще писать запросы

Можеш попробовать пользоваться ущербным дельфовским QueryBuilder'ом...
Не уверен, правда, что это будет проще.

И вообще, забей на эту Дельфи. Если у тебя несложная задача, пиши на Access'е. Хоть бейсик и уродский язык, но возможностей у него хватает...
[Ответ]
DimmaN 09:33 23.09.2006
M@D, крольбан прав [Ответ]
zic 11:22 23.09.2006
MSJET [Ответ]
Yandex 11:59 25.09.2006
M@D, напишу свои 5 копеек непрофессионала

Сообщение от :
имеет смысл использовать дбф

Очень редко, например если важен размер программы, то можно использовать .DBF + один из методов доступа к нему - ODBC, Jet, OLEDB (так как это уже есть в Windows и дополнительное ПО не требуется [разве что Jet иногда обновлять надо]). Если размер не очень критичен, то думаю стоит выбрать БД - Firebird - размер дистрибутива ~3mb (сравним с BDE, но BDE уже морально устрал и изучать его смысла нет [BDE - можно так же рассматривать как метод доступа]), но в замен получаем много вкусностей, таких как хранимые процедуры, транзации и удобство разработки (Компоненты Delphi + IB Expert ~4mb для создания/редактирования базы).

Сообщение от :
где про это можно подробно почитать

Сначала лучше определиться с выбором БД (зависит от задачи) и методом доступа к ней.

Сообщение от :
вообще какими инструментами Делфи лучше пользоваться.....что бы было проще писать запросы

Запросы проще писать ручками - SQL не такой уж и сложный язык, чтобы пользоваться всякими приблудами. Хотя если БД - Access, то наверно проще выучить там Запросопостроитель.
[Ответ]
Вверх