Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
Здравствуйте.
Есть БД на MySQL 5.0 с клиентским приложением на C#, связь с базой через официальный .NET Connector от MySQL. Клиент и сервер на одном компьютере.
Необходимо как-то перенести базу на Embedded вариант (чтобы каждому новому пользователю не приходилось устанавливать и настраивать сервер).
Самый главный критерий переноса - по возможности, сделать это с минимумом возни, без необходимости перелопачивать весь код базы и клиента, так как сроки поджимают. Естественно, клиент должен остаться на .NET )

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

Как быть, куда лучше перенести базу с MySQL (да, я знаю, что есть SQLite, Firebird Embedded, VistaDb, но что лучше подойдет в данном случае?)
Требования к СУБД самый простые: внешние ключи, хранимые процедуры, поля типа BLOB. Размер базы небольшой, и производительность большой роли не играет.
Буду рад советам.

P.S. от варианта встроить установку MySQL сервера в инсталлятор проекта, я отказался, так как не вижу путей для его реализации.
11 июл 09, 19:39    [7405176]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
Стурм, что будете хранить в LOB'ах, какого объёма?
12 июл 09, 02:30    [7405513]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
ОКТОГЕН, числа типа double, в среднем 200-400 чисел на блоб.
12 июл 09, 09:49    [7405590]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Piterskiy
Member

Откуда:
Сообщений: 66
Стурм
...есть SQLite...
Требования к СУБД самый простые: внешние ключи, хранимые процедуры, поля типа BLOB. Размер базы небольшой, и производительность большой роли не играет.

В SQLite нет поддержки внешних ключей. Их можно создать, но движок их не видит.
Кроме того нет хранимых процедур. Только view и triggers.
12 июл 09, 10:40    [7405628]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
пгуые1234
Guest
Посоветую автору Firebird Embedded. Функционал такой же как у обычного сервера. Есть оффициальный NET провайдер. А вот скорость переноса с MySQL зависит от того насколько знаете эту субд ;)
12 июл 09, 12:31    [7405717]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
mayton
Member

Откуда: loopback
Сообщений: 53009
Стурм
Требования к СУБД самый простые: внешние ключи, хранимые процедуры, поля типа BLOB. Размер базы небольшой, и производительность большой роли не играет.

Если производительность роли не играет я-бы попробовал VistaDB. Технология вроде-как "родная". Стыковаться будет проще (IMHO).
12 июл 09, 13:05    [7405758]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
шалом
Member [заблокирован]

Откуда:
Сообщений: 981
а пчемуб не сделать инсталятор который сам бы настраивал mysql?

---
вечно ваш бох
12 июл 09, 14:39    [7405833]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
mayton
Member

Откуда: loopback
Сообщений: 53009
При чём здесь инсталлятор?
12 июл 09, 17:10    [7405976]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32554
mayton
Если производительность роли не играет я-бы попробовал VistaDB.

Пусть они с Вистой обышной сначала разбирутца, а потом и в ДБ лезут.
Года через 3, как все устаканится.
12 июл 09, 18:57    [7406077]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
A8086
Member

Откуда: Новосибирск
Сообщений: 39
SQL Server Compact. Родная для .NET файловая InProc база данных. Бесплатная. Очень совместима со "взрослым" MS SQL Server. Есть контроль ссылочной целостности, но нет триггеров и ХП.

Может быть получится заменить MySqlConnection на SqlCeConnection и все заработает :)

Читайте Techdays.
12 июл 09, 19:04    [7406084]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
пгуые1234
Посоветую автору Firebird Embedded. Функционал такой же как у обычного сервера. Есть оффициальный NET провайдер. А вот скорость переноса с MySQL зависит от того насколько знаете эту субд ;)

Давно была пара проектов на Firebird (не embedded). Скажите пожалуйста, есть ли какие-то "подводные камни" при переносе и сильно ли отличается синтаксис SQL?

шалом
а пчемуб не сделать инсталятор который сам бы настраивал mysql?

Как?
mayton
Если производительность роли не играет я-бы попробовал VistaDB. Технология вроде-как "родная". Стыковаться будет проще (IMHO).

Она платная, насколько я вижу из поисковика.

A8086
SQL Server Compact. Родная для .NET файловая InProc база данных. Бесплатная. Очень совместима со "взрослым" MS SQL Server. Есть контроль ссылочной целостности, но нет триггеров и ХП.

без ХП - это очень большой минус
12 июл 09, 19:51    [7406118]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
ЛП
Guest
Стурм
без ХП - это очень большой минус

Прикалываетесь? Или неподумав ступили?
Для embedded то какая куй разница, где циклы располагаются - в приложении, или же во внедрённом в приложение БД?
13 июл 09, 01:36    [7406440]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
A8086
Member

Откуда: Новосибирск
Сообщений: 39
Стурм
без ХП - это очень большой минус

Действительно, глупость сказали. Подумайте сами, во встраиваемых движках нет сервера как такового. Распределять функции некуда. А вся логика СУБД работает в собственном процессе Вашего приложения. Поэтому и называется это InProc СУБД (In process).

Кстати, если я не ошибаюсь, то SQLLite нет поддержки ссылочной целостности, за то есть триггеры, при помощи которых ее можно реализовать. А Sql Server Compact наоборот :). Впрочем могу и ошибаться.
13 июл 09, 07:44    [7406510]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30257
Стурм
Давно была пара проектов на Firebird (не embedded). Скажите пожалуйста, есть ли какие-то "подводные камни" при переносе и сильно ли отличается синтаксис SQL?

гм. Embedded НИЧЕМ от не-embedded не отличается, кроме следующих пунктов:
1. коннект должен быть "локальный", иначе он перенаправит коннект на сервер. Т.е. может работать как обычный клиент.

2. коннекты из разных exe не допускаются, т.к. exe приложения и dll FB embedded и представляют собой "сервер".

вроде все. SQL не отличается и отличаться не может.
13 июл 09, 11:53    [7407497]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
шалом
Member [заблокирован]

Откуда:
Сообщений: 981
mayton
При чём здесь инсталлятор?
как при чём ТС написал же что основная причина чтобы небыло необходимости настраивать
13 июл 09, 12:23    [7407670]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
шалом
Member [заблокирован]

Откуда:
Сообщений: 981
Стурм
Как?
посмотрите например как это сделанов denwer там автоматически ставится апатч + мускл и всё сразу настроено
13 июл 09, 12:23    [7407676]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
ЛП
Стурм
без ХП - это очень большой минус

Прикалываетесь? Или неподумав ступили?
Для embedded то какая куй разница, где циклы располагаются - в приложении, или же во внедрённом в приложение БД?

Попрошу не выражаться. Меня совсем не тянет переносить пару сотен ХП в код приложения.
13 июл 09, 13:25    [7408101]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54800

kdv
SQL не отличается и отличаться не может.

ТС спрашивает про отличие от мускуля.

Posted via ActualForum NNTP Server 1.4

13 июл 09, 13:41    [7408266]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
A8086
Действительно, глупость сказали. Подумайте сами, во встраиваемых движках нет сервера как такового. Распределять функции некуда.
Для FB есть разница. Если держать логику в базе, то потом приложение без проблем будет работать не только с embedded, но и сетевой редакцией сервера.
13 июл 09, 14:19    [7408615]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
Senya_L
A8086
Действительно, глупость сказали. Подумайте сами, во встраиваемых движках нет сервера как такового. Распределять функции некуда.
Для FB есть разница. Если держать логику в базе, то потом приложение без проблем будет работать не только с embedded, но и сетевой редакцией сервера.

Благодарю, еще один весомый агрумент, вдобавок к вышеуказанному.

Dimitry Sibiryakov

kdv
SQL не отличается и отличаться не может.

ТС спрашивает про отличие от мускуля.

В общем да, некоторые СУБД используют свои диалекты SQL (классический пример - Oracle и PL\SQL), это я имел ввиду, но при переносе MySQL -> Firebird не думаю, что будет много проблем с самим SQL-скриптом, поэтому спрашивал просто на всякий случай.
13 июл 09, 15:14    [7409115]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
ЛП
Guest
2 Стурм
Попрошу не выражаться.

Попрошу не просить.

Меня совсем не тянет переносить пару сотен ХП в код приложения.

Тянет Вас или не тянет - а переносить пару сотен ХП так или иначе придётся, раз уж СУБД собираетесь менять.

------------------

2 Senya_L
Если держать логику в базе, то потом приложение без проблем будет работать не только с embedded, но и сетевой редакцией сервера.

Можно подумать, что кто-то мешает приложению без проблем работать хоть с embedded, хоть с сетевой версией в случае, если логика хранится в приложении или в среднем слое.

Я не агитирую за многозвенные архитектуры, но давайте уж называть вещи своими именами.
Именно вынос логики за пределы СУБД позволяет сравнительно безболезненно эту самую СУБД менять (хоть редакции, хоть вообще всю СУБД). И наоборот, написание логики на уровне БД усиливает связанность с СУ, и в дальнейшем может привести к тоскливому соплежеванию на тему "переноса пары сотен ХП".
13 июл 09, 17:42    [7410233]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30257
автор
я имел ввиду, но при переносе MySQL -> Firebird не думаю, что будет много проблем с самим SQL-скриптом, поэтому спрашивал просто на всякий случай.

все СУБД различаются как по синтаксису, так и по архитектуре. Так что все зависит от того, насколько использовали специфику конкретного SQL.
13 июл 09, 17:46    [7410243]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

Стурм пишет:

> Естественно, что напрашивается - MySQL Embedded. Но он платный, а наш
> проект некоммерческий, и лицензию никто покупать не собирается. Пока не
> нашел, где можно его скачать в обход лицензии, да и нежелательно это.

Я не знаю, какой он там платный, но исходники есть в дистрибутиве
исходников. Собственно, всех исходников там -- проект, собирающих
из MySQL либу, а не приложение.

Posted via ActualForum NNTP Server 1.4

13 июл 09, 20:32    [7410747]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
ЛП

Тянет Вас или не тянет - а переносить пару сотен ХП так или иначе придётся, раз уж СУБД собираетесь менять.

Тем не менее, гораздо проще подправить SQL-скрипт создания базы, чем затрагивать еще и клиентский код. А вопрос, стоит ли выносить хранимые процедуры из БД - очень спорный, и вполне заслуживающий отдельной темы.
14 июл 09, 12:44    [7412805]     Ответить | Цитировать Сообщить модератору
 Re: БД с MySQL на какую-нибудь Embedded базу под .NET  [new]
Стурм
Member

Откуда:
Сообщений: 11
Товарищи! Благодарю вас всех за ценные советы! Благодаря вам, я наметил несколько решений сложившейся проблемы, таких как:

MySQL Embedded.
Напрямую использовать libmysqld.dll в проектах на .NET, по понятным причинам нельзя (использование DllImport не в счет). Не далее как полгода назад официальный .NET Connector еще не поддерживал embedded версию mysql. Судя по документации на самую последнюю версию коннектора - не поддерживает до сих пор. Примеров использования нет с embedded, ничего нет. Вот тут есть другой коннектор с поддержкой встраиваемой версии... но платный.
Возможно, запрос напрямую в MySQL что-то прояснит.

Firebird Embedded.
Первоочередной кандидат для переноса, если с MySQL не получится.

SQL Server Compact.
А это СУБД само собой напрашивается для разработки "с нуля" .NET проектов со встраиваемыми БД. :)
14 июл 09, 12:47    [7412829]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить