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

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

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

Сообщение STAKANOV » 07.05.2007 00:03:15

FPC/Lazarus могут работать с различными СУБД. Нет ли у кого обзорчика какая БД лучше и для каких задача? А то смотрю кто FireBird использует, кто-то MySQL и т.д. А чем продиктован выбор?
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

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

Сообщение rudjuk1977 » 07.05.2007 00:27:31

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


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

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

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

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

Мог бы и подробнее описать, но аблом :)
rudjuk1977
постоялец
 
Сообщения: 104
Зарегистрирован: 28.04.2007 21:18:56
Откуда: Киев

Сообщение ev » 07.05.2007 00:45:03

есть еще PostgreSQL - мощнее MySQL и тоже бесплатный
пока лично я склоняюсь к использованию Firebird
но вижу многие подсесть успели на MsSQL
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение spv » 07.05.2007 00:54:06

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


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

Ещё одна пикантность. MySQL изменили лицензию, и теперь она бесплатна только для бесплатных продуктов. Т.е. та же штука, что и с mp3. В принципе- ничего плохого, ничего хорошего. Всё относительно. Но на всякий случай...
spv
новенький
 
Сообщения: 71
Зарегистрирован: 26.09.2006 13:57:46
Откуда: Подмосковье

Сообщение rudjuk1977 » 07.05.2007 01:09:08

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 ведь работает только в Виндовс, а другие базы, как правило - в разных ОС.
rudjuk1977
постоялец
 
Сообщения: 104
Зарегистрирован: 28.04.2007 21:18:56
Откуда: Киев

Сообщение debi12345 » 07.05.2007 08:15:19

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

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

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

FireBird - нечто среднее между MySQL & PostgreSQL. Удобнее для Delphi&Co тем, что напрямую поддерживает CommitRetaining - обновление таблиц с автоматической селективной перевыборкой (только тех данных, который зависят о этого изменения )
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 07.05.2007 12:57:53

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

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

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

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

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

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

На работе приходилось работать с MSSQL/T-SQL/ADO, помучался немного с компонентами со вкладки Data Controls (TDBGrid, TDBEdit и т.п.) и перешел на обычные компоненты (TStringGrid, TEdit и т.п.) - и глюков стало меньше.. лично мне так проще
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение v-t-l » 21.05.2007 15:55:41

А можно ли в Firebird из триггера или процедуры в одной базе обращаться к таблицам/представлениям/процедурам другой базы данных?
Если да, то как?
v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение Attid » 21.05.2007 18:37:46

v-t-l
нет,
можно извратится через udf, но разработчики не советуют. =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение v-t-l » 21.05.2007 20:17:14

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

А через общий EXTERNAL FILE кто-нибудь пробовал?
v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение Attid » 21.05.2007 22:35:43

в EXTERNAL FILE можно вынести только одну общую таблицу,
но можно конфликт вызвать при одновременном дополнении.
в общем изврат все это. если надо чтото иметь общее в нескольхих базах огнептичке ничего лучше чем репликация сделать нельзя.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение STAKANOV » 20.06.2007 23:53:49

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


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

Сообщение debi12345 » 21.06.2007 00:06:18

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

Сужу по MSEgui-реализации :
1) сделано ПОЛНОСТЬЮ через SQL;
2) прозрачно с другими SQL-движками, за исклюбчением вложенных транзакций;
3) принципиально не глючит;
4) поддерживает юникодные текстовые поля;
5) может хранить любой тип данных, как Вы его опишите;
6) имеет множество встроенных функций;
7) имеет триггеры;
8) можно писать внешние функции;
...
Короче - полноценный SQl-движок.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение STAKANOV » 21.06.2007 08:46:05

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

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


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

Сообщение Slavikk » 21.06.2007 10:04:29

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

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

Для базы >50 человек (или как в моем случае в базу складывает лог другая программа, до 100 мегабайт данных в день), использую PostgreSQL. Достойная замена ORACLE. Бесплатен.
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru