Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 32 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
Привет, оверы.
Вот, есть проблема: нужно написать СУБД, которая удовлетворяла бы следующим условиям:
1. однопользовательская
2. многозадачная
3. не требовательная к ресурсам
4. структура данных должа легко обновляться (ключевой вопрос)

У кого есть опыт разработки собственной СУБД, пожалуйста, поделитесь если не кодом, то хотя бы идеями. Самые главные для меня проблемы: как хранить данные и быстро их находить.
Просмотрел много форумов, посвященных программированию, а подходящих советов не нашел.
Жду ваших советов.

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
John Mirro
По моему мнению, это просто утопическая идея, т.к. в одиночку можно написать только какое-то подобие СУБД, которое будет выполнять лишь десяток базовых операций. Полноценную же, пусть даже самую маленькую, СУБД в одиночку написать практически нереально и займет очень много времени
PS: А зачем требуется писать свое, если есть огромное множество уже написанных?

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
--Vel-- писал(а):
выполнять лишь десяток базовых операций

Ну хотя бы так: добавление, удаление, поиск по индексу, возможность изменения структуры данных.

--Vel-- писал(а):
А зачем требуется писать свое, если есть огромное множество уже написанных?

Нужно, чтобы получилась софтина не зависящая от других приложений, компонентов и т.д.

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
John Mirro
John Mirro писал(а):
Ну хотя бы так: добавление, удаление, поиск по индексу, возможность изменения структуры данных.

Повторю, это очень тяжело. Наработки какие-то у меня были, но ни во что нормальное это воплотиться не смогло
John Mirro писал(а):
Нужно, чтобы получилась софтина не зависящая от других приложений, компонентов и т.д.

Практически любой софт использует какие-либо сторонние компоненты или библиотеки. Какой хоть язык программирования? Возможно, у меня будет пара идей, как это обойти

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
Язык можно С/С++ или Дельфи/Паскаль.

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
John Mirro Если использовать Delphi, то могу посоветовать в качестве СУБД использовать Interbase/Firebird. Они писались, если мне не изменяет память, специально под Borlandовские среды разработки. Плюс использования этих СУБД в том, что сам сервер базы вкомпиливается в программу и не нужно будет ничего ставить дополнительно (просто рядом с программой будет лежать дополнительная dll с самим движком сервера). Минус - это действительно будет только однопользовательская СУБД, более того, локальная. Если это подходит - в Google.
Еще есть куча мелких СУБД, работающие по тому же принципу (встраиваемость в осносной код), но, насколько я знаю, большинство из них платные

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
--Vel--
С Interbase/Firebird я очень хорошо знаком, однако из-за специфики задачи он не подходит. А именно: по сути, программа является каталогизатором деталей/запчастей и т.д. с возможностью поиска. Пользователь может создавать любое количество разных каталогов и все они должны быть отдельными файлами, которые должны ассоциироваться с программой (как любой документ-кликнул по нему, программа открылась).
Конечно, можно сделать это в интербейс/фаерберд, но вот размер пустой базы данных сам занешь какой :) А если менять структуру данных, а у пользователя будет несколько десятков каталогов. В интербейсе это будет гиморно. Я думаю ты понял проблему.

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
John Mirro
Что собой будет представлять каталог? Будет ли это просто таблица фактов, или же каждый каталог - это полноценная база?

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
--Vel--
Каждый каталог-полноценная база данных

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
John Mirro
Тогда есть такой вариант. Немного кривой, но другого, чтобы все работало без установки, я пока придумать не могу.
Используем в качестве СУБД DBISam. Это локальная СУБД, каждая таблица хранится в двух/трех отдельных файлах. Каждый каталог будет из себя представлять реальную папку на диске. Насколько я понял постановку задачи, структура базы фиксирована. В таком случае, при работе в другим каталогом просто меняется путь к базе. Теперь по поводу одного файла и его ассоциации с приложением. Есть идея просто заархивировать каждый каталог в отдельный файл без сжатия с со своим расширением (благо модули работы с тем же Gzip есть практически под все среды разработки, так что архиватор есть). Когда пользователь будет кликать на файл, программа запускается, распаковывает содержимое в одну из своих рабочих папок. Когда работа заканчивается, содержимое рабочей папки обратно собирается в один "архив" и перезаписывает предыдущую версию. Все это довольно громоздко и содержит подводные камни, но, по-моему, на много порядков проще, чем писать собственную СУБД

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: БССР
--Vel--
Вариант интересный, стоит подумать.

_________________
Измеряй микрометром. Отмечай мелом. Отрубай топором
http://L-B-H.org


 

Member
Статус: Не в сети
Регистрация: 29.10.2003
Откуда: 埼玉、日本
Фото: 9
John Mirro

не проще ли написать прогу и прикрутить к ней opensource-движок (например, postgresql).


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
Zio
Не проще. Тот же PostreSQL требует отдельного сервера. Если же задаться целью локального использования native Win PostrgeSQL, то с той же самой инсталяцией приложения будут огромные трудности (нужно будет установить и настроить сервер). Плюс теряется переносимость каталогов с одного компьютера на другой (бекап/рестор из консоли или фронтэнд вряд ли простой пользователь осилит)

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 10.03.2004
Откуда: Минск
А почему нельзя просто использовать Microsoft Access? С приложением поставляться должны будут просто файлики с самими данными. Сервер не требует для работы. У меня в связке с приложение на C# замечательно работает. Никто не жаловался.


 

Member
Статус: Не в сети
Регистрация: 25.06.2005
Откуда: Zolotonosha
force_sk писал(а):
А почему нельзя просто использовать Microsoft Access?


Я бы писателей баз данных на Microsoft Access просто :gun:, ни одного толкового приложения не видил, одни геморройные недоразумения.

_________________
Наша работа настолько грязная, что делать её могут только истинные джентльмены.


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
gsvZolo
gsvZolo писал(а):
Я бы писателей баз данных на Microsoft Access просто

Ну не нужно так грубо, Access очень полезен в некоторых сферах
force_sk
force_sk писал(а):
А почему нельзя просто использовать Microsoft Access?

Довольно хороший вариант. Но, в случае, если нет ограничений на установку OBDC (W2K, к примеру, не имеет нативной поддержки Access, точнее, драйвера под него) и, если хранить именно файлы баз, то трудно будет настроить ассоциации в некоторых случаях + базы будут видны всем.
Если же эти пункты не являются препятствием, то, повторюсь, очень толковое решение

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 10.03.2004
Откуда: Минск
gsvZolo Очень зря ты так. Я тоже раньше как-то недолюбвивал Access (просто не юзал его, а только слышал), а потом пришлось именно их и использвоать. И нормально прошло. Работает.


 

Member
Статус: Не в сети
Регистрация: 25.06.2005
Откуда: Zolotonosha
force_sk
Извиняюсь конечно, могу и ошибаться, но это всё из жизненного опыта. :), почему бы просто не взять готовую СУБД например тот же банальный Fox, намного мощнее и менее глючно, чем Access.

_________________
Наша работа настолько грязная, что делать её могут только истинные джентльмены.


 

Member
Статус: Не в сети
Регистрация: 10.03.2004
Откуда: Минск
gsvZolo Если честно, с Fox не работал и особо про него ничего не знаю, так что тут посоветовать не могу.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Зачем заниматься извращениями!??? Базы от Access прекрасно подходят для такого дела. Они не глючат. Глоючат руки у программеров, не умеющих использовать правильно эту систему. Для твоей задачи это просто идеальный вариант!


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 32 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan