Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Помогите определиться


Автор: -Mikle- 14.11.2004, 00:32
Привет!

Помогите определиться с выбором БД. Прочитал топик "какую БД выбрать"...
Короче задача для БД:
1.Быстрое выполнение команд INSERT и UNINON
2. Размер может вырасти до 10ков гигабайт
3. Простая установка, чтобы любой юзер мог ее установить
4. Малый размер дистрибутива БД.

На данный момент установил MSSQL7, но размер дистрибутива около 300 Мб
Почему меня это беспокоит? Потому что я пишу приложение типа Клиент и Сервер.
Я хочу распространять дистрибутив БД, вместе с приложением "Сервер" и хочу, чтоб установка дистрибутива БД происходила из моей программы.
Чаще всего мне придется отсылать программу по инету, поэтому дистрибутив размером 300 Мб, мне не подходит.

Пожалуйста, посоветуте что лучше подойдет для моих целей.

Еще раз обращу ваше внимание на то, что мне нужно устанавливать БД по команде из моей программы, то есть чтоб пользователю не приходилось искать дистрибутив БД в магазинах. Он должен установить только мою программу, которая, в свою очередь, запустит на установку дистрибутив БД.

Автор: Cashey 14.11.2004, 00:43
А зачем нужен дистрибутив БД? Да и вообще что это такое? Есть среды для создания БД и они пакуются в дистрибутив, но ты не можешь воткнуть их в свою программу не нарушив лицензионное соглашение. А распространять такую прогу клиентам, это верный шанс залететь. Да и какой смысл паковать дистрибутив среды в свою программу, если юзерам нужна работающая программа а не среда ее разработки? Тут явно не правильная формулировка вопроса или я туплю под вечер smile
Добавлено @ 00:46
Больше всего, наверное, подойдет MySQL, если он не захлебнется от 10-ков гигабайтовой базы. Покрайне мере его дистрибутив поменьше будет чем MS SQL.

Автор: Vit 14.11.2004, 02:26
http://forum.vingrad.ru/index.php?showtopic=30912

Автор: -Mikle- 14.11.2004, 07:56
Цитата(Mikle @ 14.11.2004, 04:32)
Помогите определиться с выбором БД. Прочитал топик "какую БД выбрать"...

Vit, я прочитал этот топик прежде чем создал эту тему, и искал на форуме

Cashey, Возможно и я чего-то не понимаю, наверно правильно будет сказать не дистрибутив БД, то есть не среда разработки, а драйвер БД.

К примеру есть компания, которой эта прога нужна.
Я пишу серверную и клиентскую часть проги и использую БД MSSQL7. Моя прога ведь не будет работать без установки на сервер MSSQL7? Этой компании придется самой устанавливать на сервер эту БД. Правильно? или я гоню вообще? Может прога использующая MSSQL7 будет работать на любом сервере и без установки дров MSSQL7? Не думаю... Вот я и хотел, чтоб при установке серверной части на сервер, прога сказала что она работает с БД MSSQL7, и предложила установить ее. Я видел такие программы, например BillSys. При установке серверной части, инсталер сам устанавливает дрова под БД Oracle. Вот мне нужно тоже самое сделать, только размер всего этого должен быть относительно малым, так как прога посылается на мыло заказчика.

Если это поможет, введу в курс дела.
Прога - это RADIUS-сервер, принимающий только Account-пакеты от Cisco. Обрабатывает и записывает принятую инфу в БД. А клиентская часть, имеет возможность закачивать в БД сервака прайс-листы, инфу об операторах, некоторые критерии. Также выводит разную статистику. Серверная часть обрабатывает принятые пакеты перед записью в БД, по этим вот всем параметрам. Скорость подачи пакетов, в переспективе, может достигнуть до 10-20 пакетов в секунду. Вот тут то и нужна скорость работы не только самой программы, но и БД. Разумеется я проектирую в серверной части такую штуку как очередь, но чтоб не произошло потери пакетов, при переполнении очереди, нужна быстрая БД, работающая в асинхронном режиме. Т.е. послал запрос INSERT, и прога не ждет пока она обработается. Вот такая задача.

Автор: Cashey 14.11.2004, 12:07
Ну драйвер БД это совсем другой вопрос. Может я тут и сам не достаточно компитентен, но вроде как на сервере лежат базы, а клиентские проги обращаются к ним по средствам ADO или ODBC.

Автор: -Mikle- 14.11.2004, 12:54
Цитата(Cashey @ 14.11.2004, 16:07)
а клиентские проги обращаются к ним по средствам ADO или ODBC

Вот я об этом же, я буду обращаться к БД через ADO.
Но при установке серверной части проги я хочу чтоб эти дрова БД(не знаю пока какой), устанавливались на сервак. Чтоб клиенту не париться, не искать БД на дисках, плюс не устанавливать ее самому. Он должен установить на сервер мою прогу(серверную часть) и все. Как добиться этого? Может я просто совсем запарился или запутался? Может при создании инстал-пакета серверной части, дрова к БД войдут туда? Не могу проверить это сейчас... Блин... Наверное я зря создал этот топ... Я попробую вечером, и скажу...

Но вопрос пока остается открытым, милости прошу, ваши предложения... smile

Автор: boevik 14.11.2004, 14:14
-Mikle-,
1) если на сервере стоит MSSQL 7 или 2000, то и ADO уже установлен
2) верно ли я понял, что на сервере бежит твоя программа и клиенты обращаются к серверной проге, а не напрямую к MSSQL?

Автор: -Mikle- 14.11.2004, 16:07
1. В том то и дело что не стоит, машина пустая... Отдельно устанавить сейчас, одному клиенту, я могу. Но в будущем, эта прога будет лежать на сайте, в демо версии. Кто будет интересоваться, будут качать ее, устанавливать, тестировать. Но не всякий, ради интереса, будет качать демо, потом искать например MSSQL7, устанавливать его. Потому я и хочу сделать чтоб дрова для БД(опять таки не знаю еще пока какой) устанавливались вместе с серверной частью.
Не знаю как еще объяснить.

2. Нет, не верно. Вся система предназначена для IP-телефонных компаний. В частности для провайдеров IP-телефонии. На серваке бежит прога, которая занимается совсем другими вещами. Она принимает пакеты от еще одного специализированного компьютера(Cisco). В пакетах содержится инфа о звонках клиентов. Пакеты передаются по протоколу RADIUS. Прога на серваке выполняет роль RADIUS-Server'а. Она обрабатывает пакеты: определяет от какого провайдера пришол звонок, на какого ушел, достает из БД(!) прайс-листы этих провайдеров, находит цену для каждого провайдера в зависимости от номера телефона, перемножает на длительность и т.д. и записывает полученный при вычислениях результат в эту же БД в определенную таблицу. В итоге RADIUS-Server(моя серверная часть) формирует таблицу звонков.
Клиентская часть занимается следующим: осуществляет возможность определять список провайдеров в той самой БД на серваке, закачивать для них прайс-листы, определять критческие параметры для работы RADIUS-Server. Выводит разнообразную статистику по той самой таблице со звонками, сформированую серверной частью. Все это клиентская прога делает через ADO, т.е. на машине клиенте создается системный DSN, указывающий на то где расположена БД. ADO использует этот DSN для связи с БД.

Из всего описанного, я хочу получить два инстал пакета, сервер + клиент
Так вот, чтоб для покупателя не было гемороя, я хочу чтоб при установке серверной части, автоматически осуществлялась установка дров БД на серваке, чтобы ADO на клиенте мог обращаться к ней. Иначе, компания, которая заинтересуется прогой, дожна найти к примеру MSSQL7 где нибудь на диске, установить его на своем серваке, и только потом она сможет по тестировать мою прогу. Большинство покупателей просто откажутся от такой мороки, ради того, чтоб просто потестировать мою прогу.

Плиз, я в расстерянности, не знаю что мне надо сделать чтоб получилось такое приложение... smile

Автор: Mad 14.11.2004, 16:21
Цитата(Mikle @ 14.11.2004, 15:07)
В том то и дело что не стоит, машина пустая...

Недумаю, что ты найдеш хоть обну БД, лицензия которой будет позволять распростронять её в твоем дистрибутиве smile
Исключением являються OpenSource (MySQL, Postgres ...), но они требуют распространять также и исходники (что весит очень даже ничего smile ).

Выход по моему такой - выбераеш БД по функциональным критериям (а не по размеру дистрибутива), затем клиенту говориш, что кроме твоей проги он должен также купить такуюто БД. А при установки БД на сервер, она сама дрова поставит.

Как альтернатива - написать свою БД smile

Автор: -Mikle- 14.11.2004, 16:26
Цитата(Mad @ 14.11.2004, 20:21)
Выход по моему такой - выбераеш БД по функциональным критериям (а не по размеру дистрибутива), затем клиенту говориш, что кроме твоей проги он должен также купить такуюто БД. А при установки БД на сервер, она сама дрова поставит.


Да вот не хотелось бы так... smile



Цитата(Mad @ 14.11.2004, 20:21)
Как альтернатива - написать свою БД


Ты знаешь, чем больше програмлю, тем больше склоняюсь в эту сторону smile

Автор: Mad 14.11.2004, 16:36
Цитата(Mikle @ 14.11.2004, 15:26)
Да вот не хотелось бы так...

А что делать ? smile

Еслт у клиента, допустим вообще OS/2 стоит, не будеш же ты и дистрибутив форточки на мыло кидать smile

Автор: boevik 14.11.2004, 16:52
Как выше уже упоминалось MSSQL 7 он платный.
Для demo-версии можно использовать MSDE 1.0, он бесплатен для дистрибутива с программой написаной в Visual Studio, т.е. на VB6.
Весит не мало около 70МБ.
Если клиенту понравится твоя прога, то прийдется ему раскошелится на полноценную BD или остаться с MSDE.

Автор: -Mikle- 14.11.2004, 20:04
Куча вопросов сразу, простите за делитанство...

MSDE это Microsoft Data Environment 1.0?
Он поддерживает связь как сервер? Т.е. если он стоит на серваке, я могу подключиться к БД по TCP\IP?
Я создал пустой проект с сылкой через референс на него, пакет получился всего 1,5Мб(900Кб из которых сжатая рантайм библиотека). Может не о нем речь?

Автор: boevik 14.11.2004, 20:41
Цитата(Mikle @ 14.11.2004, 20:04)
Куча вопросов сразу, простите за делитанство...

MSDE это Microsoft Data Environment 1.0?
Он поддерживает связь как сервер? Т.е. если он стоит на серваке, я могу подключиться к БД по TCP\IP?
Я создал пустой проект с сылкой через референс на него, пакет получился всего 1,5Мб(900Кб из которых сжатая рантайм библиотека). Может не о нем речь?

Совешено верно.
MSDE - движок MSSQL, никаких отличий от работы с MSSQL.
Я не знаю, что у тебя было помечено в референсах, но для работы достаточно библиотеки ADO. А сам сервер (MSDE) устанавливается отдельно.
Ну или написать прогу setup для установки MSDE на сервере.

Автор: -Mikle- 14.11.2004, 21:13
Спасибо! Попробую поюзать... не знал даже...
последний вопрос: по скорости обработки он уступает MSSQL7?

Автор: boevik 14.11.2004, 21:32
Если и уступает, то не ощутимо, при условии что работаешь до 5 одновременых конектов.
Познакомься с ограничениями MSDE. IMHO, для demo версии лучше не придумать.

Автор: Akina 15.11.2004, 09:27
Ты хочешь распространять дистрибутив. И с ним движок БД. Небесплатно, я так понимаю?

Следовательно, у тебя есть 2 альтернативы:
1) Использовать бесплатные OpenSource движки. На заявленные тобой объемы это PostgreSQL - других вариантов незаметно.
2) Использовать платные движки, получив предварительно право на их коммерческую дистрибуцию. Реально же за более-менее приемлемое время можно только приобретать для заказчика движок в рамках договора на поставку, выступая в качестве его представителя. На остальное у тебя ни сил, ни времени не хватит - ведь при ином подходе тебе еще придется и сертифицировать приложение под свой движок. Это все, конечно, при условии что ты хочешь при всем при этом оставаться в рамках существующего правового поля и не давать оснований для возбуждения против тебя уголовного дела по соотв. статье.

Автор: -Mikle- 17.11.2004, 20:18
Спасибо огромное!!! Я уже начал определяться что мне нужно, и тоже подумал, что было бы не плохо заключить договор например с тем же microsoft'ом... попробую связаться с российским представительством...

А есть PostgreeSQL под виндоуз? я что-то не встречал... или плохо искал?

Автор: Vit 18.11.2004, 16:27
Цитата(Akina @ 15.11.2004, 00:27)
На заявленные тобой объемы это PostgreSQL - других вариантов незаметно.



firebird

Автор: gray_k 18.11.2004, 17:12
При размере в 10 ГБ придётся сильно повозиться с оптимизацией запросов, а так Firebird вполне потянет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)