Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Имеет ли смысл связываться с БД? / 23 сообщений из 23, страница 1 из 1
14.01.2011, 11:47
    #37058635
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
Есть программа на си. Она работает с базами данных в своём собственном формате. Структура записи примерно такая:

short index; /* порядковый номер */
short size; /* длина записи */
short length1; /* длина 1-й строки */
char string1[length1]; /* 1-я строка */
short length2; /* длина 2-й строки */
char string2[length2]; /* 2-я строка */
short par1, par2, par3, par4; /* какие-то параметры */
short i1, w1; /* ссылки на другие записи и их веса */
short i2, w2;
...

При заполнении базы программа по мере нахождения связей раздвигает записи и вставляет пары iX-wX.

При пользовании базой:
1) Ищется запись, строки которой соответствуют паре регулярных выражений.
2) Генерируется новая пара регулярных выражений.
3) Записи, на которые ссылается данная, проверяются на соответствие новой паре.
4) Из весов отфильтрованных записей выбирается очередная запись.
И т.д. 2-3-4 в цикле.

Понадобилось заменить short на int и char на wchar_t. При этом возник вопрос: не будет ли лучше вместо возни с арифметикой пойнтеров взять какой-то готовый движок БД, например SQLite?

Размер базы - от тысяч до сотен тысяч записей. Число пар iX-wX может быть равно числу записей, но обычно -- несколько десятков. Единственное требование -- скорость выбора, желательно 700 циклов в секунду на десктопном компьютере. Опыта работы с БД нет.

Имеет ли смысл переносить всё на новый движок? Если да, то какой? Как реализовать таблицу iX-wX?
...
Рейтинг: 0 / 0
14.01.2011, 12:24
    #37058745
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzv, если работает и все проверено годами - лучше не ничего не менять
если есть проблемы или или будут в перспективе - тогда надо думать

в любом случае информации для совета недостаточно
...
Рейтинг: 0 / 0
14.01.2011, 12:35
    #37058771
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
SergSuper,

Нет, в любом случае надо менять, кроме того есть баги в процедуре создания БД.

Программа -- чья-то дипломная времён МС-ДОСа, занимаюсь этим чисто для развлечения. Какая ещё нужна информация?
...
Рейтинг: 0 / 0
14.01.2011, 13:29
    #37058917
web_fox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzv,

да ясный день надо менять на БД. Тем более вы этим занимаетесь для самообразования. Это просто шикарная возможность добавить опыта на невыдуманных задачах. Для образования лучше, что-то начиная с PostgreSQL (бесплатная, похожа на Oracle) и выше (т.е. не mysql и прочие sqlлайта, чтобы не сбить прицел). Для трудоустройства, скорее, лучше Oracle/MSSQL (платные, высоковостребованные).
...
Рейтинг: 0 / 0
14.01.2011, 13:58
    #37058997
ДохтаР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
Аффтар что то недоговаривает :)

tkzv Есть программа на си.


Но
ни один известный мне компиллер это не не съест

Код: plaintext
1.
2.
short length1; /* длина 1-й строки */ 
char string1[length1]; /* 1-я строка */
...
Значит либо программы еще нет .
Либо TC знает Си хуже чем тот, кто писал диплом.

:)

зы ИМХО это офтопный вброс .
...
Рейтинг: 0 / 0
14.01.2011, 14:03
    #37059012
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzvПри заполнении базы программа по мере нахождения связей раздвигает записи и вставляет пары iX-wX.
Увольте такого программиста и никогда не берите такого на работу :)

tkzvПри этом возник вопрос: не будет ли лучше вместо возни с арифметикой пойнтеров взять какой-то готовый движок БД, например SQLite?
Cмотря с какой точки зрения "лучше". Для того, чтобы крутить данные объёмом от нескольких килобайт до нескольких мегабайт, использовать СУБД - дурная идея. Для того, чтобы написать ту же логику простым кодом в хранимой процедуре - может быть осмысленно, только тогда конечно не SQLite.
...
Рейтинг: 0 / 0
14.01.2011, 14:50
    #37059128
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
ДохтаР,

Я записал эту структуру так, чтобы было понятнее. Естественно, задавать размер массива переменной как выше нельзя. Реально там делается

char * Base;
Base = malloc(какое-то большое число);

и идёт работа с пойнтерами, указывающими куда-то в Base[].
...
Рейтинг: 0 / 0
14.01.2011, 14:57
    #37059151
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
softwarerУвольте такого программиста и никогда не берите такого на работу :) Обоснование в комментариях -- нужно меньше памяти, быстрее читается, чем альтернативы. База создаётся или модифицируется достаточно редко.

Да, изменять такую программу -- то ещё удовольствие :)

softwarerCмотря с какой точки зрения "лучше". Для того, чтобы крутить данные объёмом от нескольких килобайт до нескольких мегабайт, использовать СУБД - дурная идея. С каких объёмов перестаёт быть дурной?

softwarerДля того, чтобы написать ту же логику простым кодом в хранимой процедуре - может быть осмысленно, только тогда конечно не SQLite. Где есть хранимые процедуры?
...
Рейтинг: 0 / 0
14.01.2011, 16:05
    #37059349
roden
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzv
softwarerДля того, чтобы написать ту же логику простым кодом в хранимой процедуре - может быть осмысленно, только тогда конечно не SQLite. Где есть хранимые процедуры?
Для РСУБД проще сказать где их нет.
Посмотрите здесь в разделе Other objects колонка Procedure
...
Рейтинг: 0 / 0
14.01.2011, 16:27
    #37059403
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
rodenДля РСУБД проще сказать где их нет.
Посмотрите здесь http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems в разделе Other objects колонка Procedure :)

Спасибо. Нет в CUBRID, MS Access, MS SQL Server Compact, SQLite. 2-й всерьёз не рассматривал, про 1-й и 3-й впервые слышу :)

Что они дадут в моём случае? Только ускорение их обработки? Где про них лучше прочитать?
...
Рейтинг: 0 / 0
14.01.2011, 16:47
    #37059453
ДохтаР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzv
char * Base;
Base = malloc(какое-то большое число);

.

В таком раскладе

tkzvзанимаюсь этим чисто для развлечения.

я бы рекомендовал Oracle.

tkzvи идёт работа с пойнтерами, указывающими куда-то в Base


Похожим образом Oracle работает с SGA .
Это не Лари Элисона случайно диплом:)

При должном подходе и усидчивости у Вас есть шанс
сталь хорошим специалистом и в С и в oracle.
:)

з.ы. В каждой шуте есть доля шутки :)
з.ы.ы И всетаки Вы от нас что то скрываете .
...
Рейтинг: 0 / 0
14.01.2011, 17:41
    #37059625
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
ДохтаРИ всетаки Вы от нас что то скрываете . Ага. На самом деле, программа была изначально на ассемблере, и только потом её перевели на си :)
...
Рейтинг: 0 / 0
14.01.2011, 18:01
    #37059688
roden
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzv
Спасибо. Нет в CUBRID, MS Access, MS SQL Server Compact, SQLite. 2-й всерьёз не рассматривал, про 1-й и 3-й впервые слышу :)

Что они дадут в моём случае? Только ускорение их обработки? Где про них лучше прочитать?
Кто они?
Если Вы об использовании хранимых процедур, то в большей степени это дополнительный опыт плюс последующее облегчение Вашего труда.
...
Рейтинг: 0 / 0
14.01.2011, 18:26
    #37059742
ДохтаР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzvДохтаРИ всетаки Вы от нас что то скрываете . Ага. На самом деле, программа была изначально на ассемблере, и только потом её перевели на си :)

Ну да , конечно ,
регулярные выражения ко всему прочему заявленному на асемблере ,
это не простой диплом,
Это минимум 5 человеко-семестров отладки :)

Я преклоняюсь перед усидчивостью этого студента ( автора диплома)
писавшего все перечисленное в первом посте темы на асемблере под ДОС-ом.


зы Хватит нас водить за нос :)
На паскале была программа , Да. ?
Дедал это ты ?

зыы Думаю жизнь когда то или отучит Вас врать.
...
Рейтинг: 0 / 0
14.01.2011, 19:20
    #37059814
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
ДохтаР, это не дедал, это
программист, которому достался его код в наследство.
...
Рейтинг: 0 / 0
14.01.2011, 19:30
    #37059827
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
ОКТОГЕНДохтаР, это не дедал, это
программист, которому достался его код в наследство.логин от этого форума ему тоже в наследство достался? То-то я смотрю, годных вбросов в последнее время нету :))
...
Рейтинг: 0 / 0
15.01.2011, 02:37
    #37060140
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
ДохтаРДедал это ты ? Нет, не он.

ДохтаРрегулярные выражения ко всему прочему заявленному на асемблере , Если быть точным, там несколько вариантов strncmp(), один из которых считает совпадающими определённые пары букв, по таблице. Так "ш" оказывалось эквивалентно "[жЖшШщЩ]". Как это реализовать иначе, чем через регулярное выражение?

ДохтаРЭто минимум 5 человеко-семестров отладки :)Энтузиаст с большим опытом, значит. Там порядка 2000 строк ассемблера.

ДохтаРХватит нас водить за нос :)Такую б настойчивость, да в мирных целях...
ДохтаРНа паскале была программа , Да. ? А что такого страшного в паскале? Но нет, паскаля там нет и не было. Хотя сходство в структуре стрингов есть :)

ОКТОГЕНэто не дедал, это
программист, которому достался его код в наследство.Да кто такой этот Дедал? Его имя в реале известно? Место учёбы? Вебсайт?

tanglirлогин от этого форума ему тоже в наследство достался? Я сегодня здесь впервые зарегистрировался.
...
Рейтинг: 0 / 0
15.01.2011, 02:38
    #37060141
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
rodenЕсли Вы об использовании хранимых процедур, то в большей степени это дополнительный опыт плюс последующее облегчение Вашего труда. Да, о них. Спасибо.
...
Рейтинг: 0 / 0
15.01.2011, 08:25
    #37060176
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzvОКТОГЕНэто не дедал, это
программист, которому достался его код в наследство.Да кто такой этот Дедал? Его имя в реале известно? Место учёбы? Вебсайт?да всё про него известно и там , и здесь .
ЗЫ. Вы уж извините за тупой стёб
...
Рейтинг: 0 / 0
18.01.2011, 23:33
    #37065628
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
Итого пока насоветовали изучить для самообразования PostgreSQL и хранимые процедуры. Негусто, но сойдёт для начала.
...
Рейтинг: 0 / 0
10.02.2011, 19:50
    #37110019
tkzv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
В другом месте подсказали: БД использует связи "от многих ко многим", следует все iX и wX вынести в отдельную таблицу, с 4 колонками: индекс, индекс в 1-ой таблице, iX, wX.
...
Рейтинг: 0 / 0
10.02.2011, 20:00
    #37110025
Random_Goodman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
tkzvИтого пока насоветовали изучить для самообразования PostgreSQL и хранимые процедуры. Негусто, но сойдёт для начала.
Postgres для такой задачи слишком наворочен и медленнен. Имхо лучше что-то типа firebird.
...
Рейтинг: 0 / 0
10.02.2011, 20:02
    #37110030
Random_Goodman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеет ли смысл связываться с БД?
сли для обучения - беритесь либо за MS SQL, либо за Оракл (не забудьте помолиться перед заплывом), короче что-то имеющее реальную востребованность на российском рынке.
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Имеет ли смысл связываться с БД? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]