Как выбрать СУБД ?
Модератор: Модераторы
Как выбрать СУБД ?
FPC/Lazarus могут работать с различными СУБД. Нет ли у кого обзорчика какая БД лучше и для каких задача? А то смотрю кто FireBird использует, кто-то MySQL и т.д. А чем продиктован выбор?
-
rudjuk1977
- постоялец
- Сообщения: 104
- Зарегистрирован: 28.04.2007 21:18:56
- Откуда: Киев
- Контактная информация:
STAKANOV писал(а):FPC/Lazarus могут работать с различными СУБД. Нет ли у кого обзорчика какая БД лучше и для каких задача? А то смотрю кто FireBird использует, кто-то MySQL и т.д. А чем продиктован выбор?
MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.
Interbase 6, Firebird - бесплатные базы данных. И главное, подходят для бизнес задач. У них есть всё, что должно быть в профессиональной базе данных. Вот по этому и используют.
MsSQL - чудо от Майкрософт. Имеет некоторые прибамбасы, достаточно интересные для больших систем. Но, во первых платное, а во вторых как продукт Майкрософта обладают порой удивительными нюансами. Которые просто убивают
Informix и Oracle - не плохие базы, но тоже платные. И довольно не мало платные
Мог бы и подробнее описать, но аблом
MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.
Говорят, в 5-й версии есть. Я не проверял. Влом, т.к. копошусь с FireBird.
Ещё одна пикантность. MySQL изменили лицензию, и теперь она бесплатна только для бесплатных продуктов. Т.е. та же штука, что и с mp3. В принципе- ничего плохого, ничего хорошего. Всё относительно. Но на всякий случай...
-
rudjuk1977
- постоялец
- Сообщения: 104
- Зарегистрирован: 28.04.2007 21:18:56
- Откуда: Киев
- Контактная информация:
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
- Откуда: Ташкент (Узбекистан)
SQlite3 - для проектов с миниатюрными локальными БД, невероятно быстрый и компактный движок. Поддерживает SQL-интерфейс доступа к данным.
MySQL - быстрый выполнитель SQL-команд, для случаев, когда не планируется перенос части бизнес-логики в саму БД
PostgreSQL - когда нужен бесплатный Oracle. Чрезвычайно мощные встроенные языки. Версия 8.х намного быстрее предыдущих, имеет очень умного планировщика запросов. Поддерживает шифровку траффика. Минус - данные и журнал транзакций - в одном файле.
FireBird - нечто среднее между MySQL & PostgreSQL. Удобнее для Delphi&Co тем, что напрямую поддерживает CommitRetaining - обновление таблиц с автоматической селективной перевыборкой (только тех данных, который зависят о этого изменения )
MySQL - быстрый выполнитель SQL-команд, для случаев, когда не планируется перенос части бизнес-логики в саму БД
PostgreSQL - когда нужен бесплатный Oracle. Чрезвычайно мощные встроенные языки. Версия 8.х намного быстрее предыдущих, имеет очень умного планировщика запросов. Поддерживает шифровку траффика. Минус - данные и журнал транзакций - в одном файле.
FireBird - нечто среднее между MySQL & PostgreSQL. Удобнее для Delphi&Co тем, что напрямую поддерживает CommitRetaining - обновление таблиц с автоматической селективной перевыборкой (только тех данных, который зависят о этого изменения )
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
rudjuk1977 писал(а):MySQL (бесплатный вариант) не годится для бизнес-задач. Т.к. в нём нет таких вещей, как транзакции, хранимые процедуры и триггера.
Хранимые процедуры и триггеры см. MySQL 5.x
транзакции есть давно, просто нужно использовать тип таблиц поддерживающих транзакции например InnoDB
rudjuk1977 писал(а):MsSQL - чудо от Майкрософт.
Годиться только для больших задач, а для маленьких все равно, что стрелять из пушки по воробьям..
Для себя халтурю с использованием MySQL когда нужна сетевая СУБД, SQLite когда сетевая СУБД не нужна..
Мне этих двух хватает с головой, причем предпочитаю общаться с ними на прямую (т.е. через собственные модули-обёртки), а не через всякие там ADO, не дай бог BDE, и т.п. Методика работы сильно отличается - больше кодить нужно, а не мышкой щелкать - зато всё в ваших руках.
На работе приходилось работать с MSSQL/T-SQL/ADO, помучался немного с компонентами со вкладки Data Controls (TDBGrid, TDBEdit и т.п.) и перешел на обычные компоненты (TStringGrid, TEdit и т.п.) - и глюков стало меньше.. лично мне так проще
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
А чем это лучше dbf от fpc?
Сужу по MSEgui-реализации :
1) сделано ПОЛНОСТЬЮ через SQL;
2) прозрачно с другими SQL-движками, за исклюбчением вложенных транзакций;
3) принципиально не глючит;
4) поддерживает юникодные текстовые поля;
5) может хранить любой тип данных, как Вы его опишите;
6) имеет множество встроенных функций;
7) имеет триггеры;
...
Короче - полноценный SQl-движок.
- Slavikk
- постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 21:34:52
- Откуда: Из лесов...
- Контактная информация:
Если база нужна на 1 компьютере локально, то использую *.ini (TMemIniFile), так как не надо с программой поставлять 'лишние' *.dll и лично для меня проще чем работа с *.xml.
Корпоративная Б.Д. (до 50 человек) - firebird, ничем не хуже interbase и mssql. Бесплатен. Логика базы реализована на хранимых процедурах.
Для базы >50 человек (или как в моем случае в базу складывает лог другая программа, до 100 мегабайт данных в день), использую PostgreSQL. Достойная замена ORACLE. Бесплатен.
Корпоративная Б.Д. (до 50 человек) - firebird, ничем не хуже interbase и mssql. Бесплатен. Логика базы реализована на хранимых процедурах.
Для базы >50 человек (или как в моем случае в базу складывает лог другая программа, до 100 мегабайт данных в день), использую PostgreSQL. Достойная замена ORACLE. Бесплатен.
