Как выбрать СУБД ?

Модератор: Модераторы

Ответить
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Как выбрать СУБД ?

Сообщение STAKANOV »

FPC/Lazarus могут работать с различными СУБД. Нет ли у кого обзорчика какая БД лучше и для каких задача? А то смотрю кто FireBird использует, кто-то MySQL и т.д. А чем продиктован выбор?
rudjuk1977
постоялец
Сообщения: 104
Зарегистрирован: 28.04.2007 21:18:56
Откуда: Киев
Контактная информация:

Сообщение rudjuk1977 »

STAKANOV писал(а):FPC/Lazarus могут работать с различными СУБД. Нет ли у кого обзорчика какая БД лучше и для каких задача? А то смотрю кто FireBird использует, кто-то MySQL и т.д. А чем продиктован выбор?


MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.

Interbase 6, Firebird - бесплатные базы данных. И главное, подходят для бизнес задач. У них есть всё, что должно быть в профессиональной базе данных. Вот по этому и используют.

MsSQL - чудо от Майкрософт. Имеет некоторые прибамбасы, достаточно интересные для больших систем. Но, во первых платное, а во вторых как продукт Майкрософта обладают порой удивительными нюансами. Которые просто убивают :)

Informix и Oracle - не плохие базы, но тоже платные. И довольно не мало платные :)

Мог бы и подробнее описать, но аблом :)
ev
долгожитель
Сообщения: 1797
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение ev »

есть еще PostgreSQL - мощнее MySQL и тоже бесплатный
пока лично я склоняюсь к использованию Firebird
но вижу многие подсесть успели на MsSQL
spv
новенький
Сообщения: 71
Зарегистрирован: 26.09.2006 13:57:46
Откуда: Подмосковье

Сообщение spv »

MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.


Говорят, в 5-й версии есть. Я не проверял. Влом, т.к. копошусь с FireBird.

Ещё одна пикантность. MySQL изменили лицензию, и теперь она бесплатна только для бесплатных продуктов. Т.е. та же штука, что и с mp3. В принципе- ничего плохого, ничего хорошего. Всё относительно. Но на всякий случай...
rudjuk1977
постоялец
Сообщения: 104
Зарегистрирован: 28.04.2007 21:18:56
Откуда: Киев
Контактная информация:

Сообщение rudjuk1977 »

spv писал(а):
MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.


Говорят, в 5-й версии есть. Я не проверял. Влом, т.к. копошусь с FireBird.

Ещё одна пикантность. MySQL изменили лицензию, и теперь она бесплатна только для бесплатных продуктов. Т.е. та же штука, что и с mp3. В принципе- ничего плохого, ничего хорошего. Всё относительно. Но на всякий случай...


MsSQL - продукт не плохой и довольно сильный.
Но, придётся использовать компоненты для доступа ADO (это если в Delphi). И у этой технологии есть один маленький прикол - удаление всех связанных записей из таблиц - по умолчанию.
Например:

Select D.DocN, Dv.Art
From Doc D

left join Dvig Dv
on D.DocID=Dv.DocID

....

Так вот. При удалении из Doc - будет удаляться из Dv. А если Вы так сцепите 10 таблиц - из всех 10 таблиц будет пытаться удалить :)
Вот такой вот маленький прикол. Для того, чтоб не удаляло - нужно каждый рас явно указывать запрет. А если запрет забыл поставить. Что ж прощай Ваша информация...

Были ещё и некоторые приколы с хранимыми процедурами, но в форуме, думаю долго объяснять.

Firebird же работает как часы - чётко и понятно. Только, у него нет кластериазации, как в MsSQL, репликатора нормального (мы писали свой), логирования (тоже делали своё - не сложно делается), возможность просмотра текущих запросов и снятия их, возможность просмотра всех операций с сервера администратора и т.п.
Кроме того, с MsSQL, например идёт ПО для администрирования. Такое ПО с Firebird не идёт. Но это прекрасно восполняется такой программой, как IBExpert.

PostgreSQL насколько мне известно, по мощности сравним с Oracle и Informix. Он обладает всеми возможностями, которые есть в мощных базах. Т.е. кластеризация, репликация и т.п. Только один недостаток - это мало документации. Но, время идёт и документации по тихоньку становится больше :) Так, что как перспектива подходящая БД.

Кстати, совсем забыл, MsSQL ведь работает только в Виндовс, а другие базы, как правило - в разных ОС.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

SQlite3 - для проектов с миниатюрными локальными БД, невероятно быстрый и компактный движок. Поддерживает SQL-интерфейс доступа к данным.

MySQL - быстрый выполнитель SQL-команд, для случаев, когда не планируется перенос части бизнес-логики в саму БД

PostgreSQL - когда нужен бесплатный Oracle. Чрезвычайно мощные встроенные языки. Версия 8.х намного быстрее предыдущих, имеет очень умного планировщика запросов. Поддерживает шифровку траффика. Минус - данные и журнал транзакций - в одном файле.

FireBird - нечто среднее между MySQL & PostgreSQL. Удобнее для Delphi&Co тем, что напрямую поддерживает CommitRetaining - обновление таблиц с автоматической селективной перевыборкой (только тех данных, который зависят о этого изменения )
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

rudjuk1977 писал(а):MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.

Хранимые процедуры и триггеры см. MySQL 5.x
транзакции есть давно, просто нужно использовать тип таблиц поддерживающих транзакции например InnoDB

rudjuk1977 писал(а):MsSQL - чудо от Майкрософт.

Годиться только для больших задач, а для маленьких все равно, что стрелять из пушки по воробьям..

Для себя халтурю с использованием MySQL когда нужна сетевая СУБД, SQLite когда сетевая СУБД не нужна..

Мне этих двух хватает с головой, причем предпочитаю общаться с ними на прямую (т.е. через собственные модули-обёртки), а не через всякие там ADO, не дай бог BDE, и т.п. Методика работы сильно отличается - больше кодить нужно, а не мышкой щелкать - зато всё в ваших руках.

На работе приходилось работать с MSSQL/T-SQL/ADO, помучался немного с компонентами со вкладки Data Controls (TDBGrid, TDBEdit и т.п.) и перешел на обычные компоненты (TStringGrid, TEdit и т.п.) - и глюков стало меньше.. лично мне так проще
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

А можно ли в Firebird из триггера или процедуры в одной базе обращаться к таблицам/представлениям/процедурам другой базы данных?
Если да, то как?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

v-t-l
нет,
можно извратится через udf, но разработчики не советуют. =)
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Attid
То есть в udf писать подключение к другой базе, операции с ней и возврат результата? - Скучно.

А через общий EXTERNAL FILE кто-нибудь пробовал?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

в EXTERNAL FILE можно вынести только одну общую таблицу,
но можно конфликт вызвать при одновременном дополнении.
в общем изврат все это. если надо чтото иметь общее в нескольхих базах огнептичке ничего лучше чем репликация сделать нельзя.
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

debi12345 писал(а):SQlite3 - для проектов с миниатюрными локальными БД, невероятно быстрый и компактный движок. Поддерживает SQL-интерфейс доступа к данным.


А чем это лучше dbf от fpc?
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

А чем это лучше dbf от fpc?

Сужу по MSEgui-реализации :
1) сделано ПОЛНОСТЬЮ через SQL;
2) прозрачно с другими SQL-движками, за исклюбчением вложенных транзакций;
3) принципиально не глючит;
4) поддерживает юникодные текстовые поля;
5) может хранить любой тип данных, как Вы его опишите;
6) имеет множество встроенных функций;
7) имеет триггеры;
8) можно писать внешние функции;
...
Короче - полноценный SQl-движок.
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

debi12345 писал(а):
А чем это лучше dbf от fpc?

Сужу по MSEgui-реализации :
1) сделано ПОЛНОСТЬЮ через SQL;
...
Короче - полноценный SQl-движок.


А если все перечисленное не нужно, то dbf лучше?
Аватара пользователя
Slavikk
постоялец
Сообщения: 208
Зарегистрирован: 15.01.2007 21:34:52
Откуда: Из лесов...
Контактная информация:

Сообщение Slavikk »

Если база нужна на 1 компьютере локально, то использую *.ini (TMemIniFile), так как не надо с программой поставлять 'лишние' *.dll и лично для меня проще чем работа с *.xml.

Корпоративная Б.Д. (до 50 человек) - firebird, ничем не хуже interbase и mssql. Бесплатен. Логика базы реализована на хранимых процедурах.

Для базы >50 человек (или как в моем случае в базу складывает лог другая программа, до 100 мегабайт данных в день), использую PostgreSQL. Достойная замена ORACLE. Бесплатен.
Ответить