Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2011, 14:13   #1
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
Вопрос Выбор хранилища данных - XML или SQLite?

Всем привет!
Вопрос такой

Встала задача о выборе хранилища данных

Пишу на C++, вариантов, соответственно, масса
Все они условно делятся на 2 вида
БД либо файлы

БД соответственно делятся на требующие сервер и не требующие
Требующие - это использующие MySql и SQL
Они не подходят по той причине, что требуют установки сервера
Что остаётся?
Вроде бы, наилучший вариант - использовать SQLite

Что касается файлов
Тут вариант - либо бинарные, либо XML

Так вот, какие на ваш взгляд есть плюсы и минусы у данных вариантов?

Буду благодарен за любой ответ.
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 14:19   #2
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

также интересует такая характеристика, как скорость работы...
допустим, на уровне количества выполняемых insert'ов в секунду...
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 14:55   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,772
По умолчанию

Это зависит от задачи: какие будут данные, как часто и в каком объеме будете писать, читать.....

Может ваv хватит http://code.google.com/p/leveldb/
p51x вне форума Ответить с цитированием
Старый 02.08.2011, 15:39   #4
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

Мм, врят ли, я думаю...Но для справки, и как возможный вариант пойдёт
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 16:26   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,772
По умолчанию

Тогда ждите телепатов
p51x вне форума Ответить с цитированием
Старый 02.08.2011, 16:28   #6
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Тогда ждите телепатов
Почему, мне уже достаточно много примеров привели и советов посоветовали
Инетресно мнение людей, которые когда-то сталкивались с таким выбором и задачей
Такие есть
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 17:07   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы создаёте сложности там, где их нет...

Кроме Вас никто не может оценить, какие объемы (и количество) данных будут заносится, как часто изменяться, как часто читаться.
Понадобится ли Вам при чтении данных выполнять запросы к данным (SQL)...
Есть ли требования к защите содержимого (как от изменения извнен, так и от банального просмотра/копирования) и т.д. и т.п.

если речь идёт о приложении под Windows,
то среди начальных вариантов ещё и использование формата MS Access (через ADO - провайдер доступа к MDB уже встроен в Windows)
ещё, помимо SQLLite есть куча СУБД, не требующих наличия сервера.
А ещё есть вариант Firebird - можно использовать embedded без сервера, а при необходимости легко перейти на нормальный вариант с сервером...


Так, не зная, что Вам и для чего надо - трудно что-то посоветовать..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.08.2011, 17:25   #8
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

И всё равно спасибо
Я ведь очень мало знаком с технологиями работы с данными в С++,
а благодаря вашему посту буду в курсе того, что можно использовать

Про Firebird, например, я только сегодня узнал, и то - случайно
Теперь обращу на него своё внимание
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 17:32   #9
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Кроме Вас никто не может оценить, какие объемы (и количество) данных будут заносится, как часто изменяться, как часто читаться.
В том то и дело, что сейчас лишь стадия проектирования приложения
На ней я и сам не знаю, насколько это будет часто
Примерно, конечно, сказать можно
Где-то раз в 5-10 минут будет происходить порядка 1500-3000 запросов к базе единовременно, + по действию пользователя в любое время возможно порядка 2000 запросов (вставка либо получение данных) единовременно

Это примерно
Вполне могут быть и большие цифры

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Понадобится ли Вам при чтении данных выполнять запросы к данным
Да дело в том, что XML - может быть
1. Достаточно избыточен - за счёт содержания информации о тэгах
2. Если необходимо что-то изменить, придётся перезаписывать весь файл
3. Необходимо будет тратить время на продумывание структуры и операций работы с этими структурами

Таким образом, мы имеем затраты, которые не возникнут в случае использования БД

То есть, уже сейчас можно сказать, что использовать будем БД

А вот тут встаёт вопрос о том, насколько оптимально подходит та или иная под примерно приведённые выше требования....

+ приложение будет клиентским, НО с возможным превращением его в дальнейшем в серверное
Т.е., БД должна поддерживать архитектуру клиент-сервер

Пользователь у БД будет 1, по крайней мере в достатогчно значительное "первое" время
О пользователях можно не думать

Поскольку приложение - клиентское, защите, я думаю, особо пристального внимания уделять не нужно, однако, опять же, это не лишнее

Вот всё, что пока могу сказать
Lindemann66 вне форума Ответить с цитированием
Старый 02.08.2011, 18:19   #10
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 127
По умолчанию

А что вы скажете о Firebird, как альтернативе SQLite?
Lindemann66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сonvert из .XML в .CSV или .XLS edition Microsoft Office Excel 1 20.07.2010 21:43
Выбор языка С++ или C# nchameleon Общие вопросы C/C++ 7 10.01.2010 20:42
Импорт тегов из файлов формата mp3 в базу данных sqlite antonych SQL, базы данных 2 06.12.2009 21:06
Сайт - шлюз данных из XML или любого др. тхт в имеющуюся MySQL базу foxxy_dretty Фриланс 3 25.08.2009 12:40
Встраиваемая БД, Berkeley DB или Sqlite isnar БД в Delphi 1 05.12.2008 10:22