Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
Предыстория: Существует некоторое многопользовательское приложение, которое часть данных своих данных хранит на MS SQL 7. Однако все возможности SQL сервера далеко не используются. SQL фактически нужен только для хранения информации и предоставления ее по запросам другим компонентам в виде цельных таблиц или некоторой выборки по строкам. Объем базы не более 10 млн. записей.

Задача: По вышеупомянутым и некоторым другим соображениям нужно перенести базу данных с платформы MS SQL на... А вот тут собственно возникла проблема. Ни одна из существующих платформ не подходит. Нужно разработать собственную СУБД, обеспечивающую такую функциональность плюс целостность данных.

Вопрос: С чего начать, куда двигаться, есть ли какая теория по этому поводу, насколько это все дело муторно и что можно посоветовать в такой ситуации? Я понимаю, что вопрос сформулирован несколько туманно, но мне задача была еще туманнее. Может кто что разумное посоветует, особенно если был опыт написания собственных СУБД.

Заранее спасибо
4 дек 02, 16:44    [86363]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Как обычно в таких случаях встречный вопрос:

Зачем вам переносить все это на другую БД или что-то_там_еще_самонаписанное. Чем неудовлетворяет сейчас?

Иногда это помогает - вдруг человек поймет, что не надо собственно никакого геморроя на свою голову изобретать. Но если все же это не геморрой, тогда...... :))
4 дек 02, 16:52    [86375]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
Зачем???
Начальство сказало - надо, программист ответил есть!!!... :-) Сами понимаете, если человек будет обосновывать почему нельзя сделать то-то и то-то, вместо того, чтобы объяснять как это можно сделать, то весьма скоро ему придется решать проблему своего трудоустройства. :-)

Ну кроме политических есть и пара-тройка прагматический соображений - несколько проблематично на Unix запускать MS SQL, раз. Не нужной на данном этапе функциональности в MSSQL напихано выше крыши - два. А за нее платить приходится. Вот и возникла идея переписать, вернее, написать некую упрощенную СУБД, добавив в нее пару отсутствующих, но весьма полезных функций.

PS. Обратите, pls, внимание на топик - там спрашивается не о том, зачем этот геморрой нужен, а то, как решать сию задачу, то бишь КАК написать собственную СУБД??? Может я не очень отчетливо это сформулировал (пардон), но хотелось бы выяснить именно это.

PPS. Уже не буду углубляться в детали, что для полного щастья это все придется писать на весьма нераспространенном языке программирования.
4 дек 02, 17:12    [86394]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
Steppenwulf
Member

Откуда:
Сообщений: 165
Давайте конкретно.
Какую пару пару отсутствующих, но весьма полезных функций, вы хотите добавить?
4 дек 02, 17:39    [86413]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
2 Steppenwulf

Например, такие: передачу данных от СУБД к клиенту в некоем "родном" формате плюс оповещение о внесенных изменениях тем процессам, которым это надо.

Однако вопрос в стоит не в том, что бы такого ЕЩЕ прикрутить к существующему MS SQL, а в том, чтобы написать некий аналог СУБД "с нуля". Предысторию я рассказал собственно только для того, чтобы понятно было на кой ляд мне понадобилось заморачиваться с собственной СУБД и предотвратить поток предложений типа: "А почему бы вам не взять MS SQL/MySQL/Oracle/Cache, etc. и не сделать то-то и то-то?". Естественно, я понимаю, что переплюнуть MS или Oracle за полгода не получится (не знаю, правда, понимает ли это начальство ;-) ), другой вопрос, что такого в общем-то и не требуется. Как сейчас видится проблема - так это то, что возможностей файлов для хранения и обработки информации немного маловато, а возможностей SQL-cервера существенно многовато.

PS. Как насчет топика? То бишь что делать если потребовалось создать собственную СУБД?
4 дек 02, 18:38    [86458]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
nick
Member

Откуда: Москва
Сообщений: 129
Извините за нескромные вопросы:
1.А в какие сроки вы хотите уложиться?
2.Какое кол-во програмистов у вас есть и/или хотите нанять?
4 дек 02, 18:49    [86462]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SysOp
Guest
nick, мне есть чему у Вас учиться, я в данном случае так корректно не смог бы выразиться.
SeaRunner
Я не знаю где Вам найти столько альтруистов, чтобы написать в приемлимые сроки свой SQL сервер и уложиться в цену MS SQL/MySQL/Oracle/Cache, etс
А не проще ли написать компонент доступа к Вашему экзотическому языку программирования для недорого IB и его, в том числе и бесплатных, клонов? Тем более что это удовлетворит все приведенные Вами требования к SQL серверу.
P.S.
А чего Unix то пользуете? Там лишнего выше крыши - может начать с собственной ОС?
4 дек 02, 19:11    [86472]     Ответить | Цитировать Сообщить модератору
 2 nick  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
>Извините за нескромные вопросы:
>1.А в какие сроки вы хотите уложиться?
>2.Какое кол-во програмистов у вас есть и/или хотите нанять?


Отвечаю
1. В разумные
2. Достаточное

:-) Шутка. Но... как говорится, в каждой шутке есть доля шутки. Ответы на эти вопросы пока неизвестны - собственно сейчас и идет выяснение того, чего надо, кого надо и почем надо, стоит ли с этим вообще связываться, и во что это выльется и сколько времени это займет. Ни PDP, ни requirements пока нет - идет предварительный анализ. Но больше года вряд ли кто даст. Второй вопрос тоже пока несколько туманен. Скорее всего, над таким проектом будут работать несколько человек. Backgroung - MS SQL, приложения БД, Java, C/C++, но никто не занимался созданием СУБД.

Хотелось бы услышать, как ответы на эти вопросы проясняют ситуацию???
:-)
4 дек 02, 19:27    [86477]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
judge
Администратор

Откуда: SQL.ru
Сообщений: 6038
Блог
Я заочно знаю одного человека из другого форума, который заниматеся/лся (не уверен) разработкой СУБД . Попробую пригласить его в этот топик дабы охладить ваш боевой настрой ;)

Alex Sibilev
4 дек 02, 19:32    [86481]     Ответить | Цитировать Сообщить модератору
 SysOp  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
А не проще ли написать компонент доступа к Вашему экзотическому языку программирования для недорого IB и его, в том числе и бесплатных, клонов? Тем более что это удовлетворит все приведенные Вами требования к SQL серверу.
P.S.
А чего Unix то пользуете? Там лишнего выше крыши - может начать с собственной ОС?


Ну что я могу сказать. Читайте внимательнее - я нигде не говорил, что нужен SQL. Более того, я говорил, сколь мне помнится, как раз о том, что он не нужен. Написать компонент, наверное проще - собственно говоря в текущей конфигурации MS SQL и выполняет роль такой затычки. Что не есть хорошо по ряду причин. Требуется его заменить чем-то, что было бы не хуже, а в чем-то и лучше. Существующие DBMS не подходят именно в силу своей общей ориентированности. Если бы данное требование распространялось на большую часть функциональности MSSQL, я бы и браться за это дело не стал - как вы метко заметили, такого количества альтруистов не найти.

PS. Насчет собственной ОС - подумаем. Когда придет время, возможно и сделаем, если это будет целесообразно... ;-)
4 дек 02, 19:43    [86492]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22649
Ну так все-таки, какой именно функциональности Вам не хватает в SQL Server? Что именно Вы писать собираетесь?
4 дек 02, 20:47    [86506]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
NNN
Guest
> Нужно разработать собственную СУБД, обеспечивающую такую функциональность плюс целостность данных.

А разве нет dbms с открытыми исходниками? Тот же mysql. Скачайте коды, посмотрите, припишите чего вам не хватает. Или вам свою и с нуля?

> С чего начать, куда двигаться, есть ли какая теория по этому поводу, насколько это все дело муторно и что можно посоветовать в такой ситуации?

Можно посоветовать копить деньги, я думаю приблизительные цифры сколько крупные компании тратят на разработку найти можно.

> Начальство сказало - надо, программист ответил есть!!!... :-)

Тут уже предложили подумать о собственной оси, а почему бы еще не подумать о собственном процессоре? В пентиумах столько лишнего для совместимости с 286!

> для полного щастья это все придется писать на весьма нераспространенном языке программирования.

Уж не собственного ли изготовления? Или он такой секретный, что одно его упоминание попадет под закон о военной тайне?

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

ЗЫ присоединяюсь к вопросу остальных: чего же собственно не хватает?
4 дек 02, 21:58    [86516]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
tchingiz
Member

Откуда:
Сообщений: 39052
2 SeaRunner
----
теория в дейте написана
можешь ссылки из меня раннего взять
------------------------------------

ПИСКУНОВ А.Г., НИКОЛАЕВ М.В., ФЕДЧЕНКО В.А.
ИСПОЛЬЗОВАНИЕ РЕЛЯЦИОННОЙ МОДЕЛИ ПРИ СОЗДАНИИ
КАРТОГРАФИЧЕСКОЙ БАЗЫ ДАННЫХ

Картографическая база данных (КБД) является низкоуровневым
инструментальным средством, разработанным авторами для использования в
различных геоинформационных системах и оформленным в виде библиотеки
программ, написанных на языке C. О КБД версии 2.0 было обьявлено в . При

...

Для повышения производительности была создана
специализированная подсистема управления таблицей (СПУТС),
содержащей сегменты, вместо ранее написанной с использованием
универсальной СУБД PARADOX ENGINE. Перечислим ее свойства:
...
2) Для доступа к таблице сегментов в СПУТС используется
файл индекса на основе модифицированной версии B*-дерева [7,8],
в которой учитывается кусочно монотонно - возрастающий характер
...
раз выше приоритета страниц уровня его сыновей. С учетом
вышесказанного была построена приоритетная схема управления
вытеснением страниц индекса, которая объединяет приоритетное
планирование страниц и метод вытеснения страниц LRU [9]
(вытесняется наиболее давно используемая страница данного уровня
дерева индекса). Кроме того подсистема управления страничным
....
ЛИТЕРАТУРА

1) Ульман Дж. Основы систем баз данных. Москва, Финансы и
статистика, 1983.- 334 c.;
...
7) Кнут Д., Искусство программирования для ЭВМ. т. 3.
Москва, Мир, 1978.- 844 с.

8) Сибуя М., Ямамото Т., Алгоритмы обработки данных.
Москва, Мир, 1986.- 218 с.

9) Цикритзис Д., Бернстайн Ф., Операционные системы.
Москва, Мир, 1977.- 336 с.
--------------------------------------------

самое лучшее что можно
посоветовать тебе - так это обратиться в клинику, работающюю у нас на
sql.ru на базе "Просто треп"
-------------------------------------------
мой студент написал большой кусок своей субд на протяжении
2000 2001 (ему видишь ли сайбез не понравился )))))).
если хочешь я ему мыльну про тебя.
гы ))))))))))))))))
будете работать вдвоем - меня не забудьте
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
4 дек 02, 23:18    [86523]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
judge
Администратор

Откуда: SQL.ru
Сообщений: 6038
Блог
Ответил мне человек, занимавшийся разработкой БД. С его разрешения привожу письмо, которое он мне прислал:

Приводится AS IS:

Добрый день, Александр.
Я прочитал постинг и ответы на форуме sql.ru -
Да действительно мне приходилось разрабатывать некоторую СУБД под конкретные задачи . И эта задача реализовалась успешно.

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

Прежде всего скачать и изучить имеющиеся opensource аналоги это прежде всего
1) PostgreSQL http://postgresql.planetmirror.com/sites.html
2) LEAP http://leap.sourceforge.net/downloading.htm
3) Beckeray BD (кажется чтото наврал в написания названия но чтото в этом роде)

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

Вообще если писать свою систему стоит реализовать как стартовое решения -это механизм страничной организации доступа к дисковому файлу бд написать реализации алгоритма битовой карты выделения память , соответсвенно есть некоторый бинарный массив - каждый бит соответвует странице - (занята\свободна страница) - соответвенно при вставке идет поиск свободного места циклически просматривая массив - при удалении соответвенно помечаются освобожденные страницы
затем следующий шаг - написание механизма работы с индексами - то есть алгоритма построения b-tree
следующий шаг - механизм транзакций - и окончательно уже собственно
механизм описания и реализации таблиц

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

Алексей



Alex Sibilev
5 дек 02, 02:13    [86534]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
eNose
Member

Откуда:
Сообщений: 183063
...
SQL фактически нужен только для хранения информации и предоставления ее по запросам другим компонентам в виде цельных таблиц или некоторой выборки по строкам.
...
Нужно разработать собственную СУБД, обеспечивающую такую функциональность плюс целостность данных.
...


Функциональность просто отпад!

Так чем вам не подходят ЛЮБЫЕ СУБД (платные, бесплатные, ...)?
5 дек 02, 08:48    [86569]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
Max Shvetz
Guest
Дорогой, не морочь себе и другим голову! Писать собрался свою СУБД :). Бери любую, бери Delphi и пиши, все, что захочешь..., там простор такой, что дай бог! А если серьезно - ну никак я не могу понять по вышеприведенным репликам, ЗАЧЕМ писать собсьвенную СУБД. Существует FreeWare InterBase, очень неплохая и по быстродействию и по надежности, а экспорт-импорт на Delphi можно написать в любой формат, который ВОт ТУТ УЖЕ можно изобрести свой. С кодированием даже, если надо секретность обеспечить
5 дек 02, 09:07    [86580]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Так все-таки и не понятно: ЗАЧЕМ ВАМ ПИСАТЬ СВОЮ БД??????
Ни одного слова о том, что вам еще не хватает, НЕ БЫЛО

Или это у вас тема для диплома? На других хотите выехать?


Тут времени иногда на обычную работу не хватает, а он про свою БД )
5 дек 02, 09:59    [86613]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SiDen
Member

Откуда:
Сообщений: 518
Ну чего вы на него накинулись. Человек спросил по делу, а вы сразу зачем... Может у него на то свои основания.
А копать посоветовал бы berkeleydb. Еще btree... исходники в инете есть.
Я бы стартовал от берклей при необходимости. Данные хранятся в виде ключ-значение. Ключ - произвольный, значение - тоже. В значении можете хранить объект. Поддерживаются транзакции, автоматическое создание индексов. 4 вида доступа к базе. Ну и еще несколько полезностей...
5 дек 02, 10:26    [86637]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
Steppenwulf
Member

Откуда:
Сообщений: 165
SiDen, на вашем месте должен был быть я)))) не успел. я тоже хотел BerkeleyDB похвалить.

Автору топика,
Действительно прежде чем писать что-то свое, полезно исходники этой СУБД (Berkeley) почитать - их немного и они удобочитаемы. Но боюсь, что автору топика придется обращать внимание на такие "лишние" вещи, как реализация подкачки страниц или индексные деревья. Оно вам надо?

Я представляю так, что это боссы вас вынуждают писать что-то свое. Но сами вдумайтесь, насколько они вас не уважают, если жадничают купить коммерческую СУБД, заставляя вас за те же деньги писать альтернативу. Так выходит, что человек дешевле программы. Если мое предположене действительно верно, лучше начинайте искать другую работу.
Сейчас в вашем положении действительно проще найти бесплатную СУБД - их много и они не намного хуже коммерческих.
То, что вы описали - передача данных в "своем" формате и т.д. - обычно реализуется на промежуточном уровне - через COM+, ORB или Java-сервера, создавать целую СУБД здесь не надо.
5 дек 02, 10:51    [86658]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
5 дек 02, 11:38    [86709]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
DimaR
Member

Откуда:
Сообщений: 1570
- Каждый сходит с ума по своему.
Сказал черт и подтерся наждачной бумагой.
5 дек 02, 11:50    [86720]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
NNN
Guest
> Ну чего вы на него накинулись.

А Вы чего ожидали, все сторонней поддержки?

Лично мне просто интересно. Я совсем не против, просто не представляю, зачем.
Вот у меня тоже проблема - надо рано вставать, а с будильником проблема. Мне нужна программа, которая щелчком мыши выключает монитор, звуковую карту и встает в режим ожидания, потом пищит динамиком. Но оказалось, что под мои требования не попадает ни одна готовая программа, "тз" разрослось, все было нормально, пока не полетела винда, за ней драйвер пищалки и т.д. Но для создания программы я не придумываю новый ЯП, а для хранения данных о рабочих днях не собираюсь создавать новую СУБД. Но я точно знаю и могу объяснить зачем мне такая программа, причем практически каждый пункт, а зачем SeaRunner (или его боссам) новая СУБД - не понимаю.
5 дек 02, 11:59    [86728]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
Ого, сколько всего понаписали. Так скоро спать перестану, из форума не вылезу. Отвечу всем по порядку.

Прежде всего, хочу поблагодарить тех, кто откликнулся по топику. Не знаю, получится что-нибудь путное из этого проекта или нет, но пока есть куда копать. Постараюсь ответить всем.
5 дек 02, 12:34    [86760]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
Вопрос 1: Почему надо писать свое?
Ответ: А почему бы и нет? Общеизвестно, что системы общего назначения обычно менее эффективны, чем специализированные системы, рассчитаные на применение в узких областях. Наша практика показывает, что абстрактное “меньше” в некоторых случаях означает меньше на несколько порядков. В экстремальном случае – задача, обработка которой в общей системе занимала 36 часов, в специализированной выполняется за 9 минут. Стоит ли овчика выделки? При показателях скорости, различающиехся более чем на порядок – да. Другой вопрос, что прирост в скорости достигается за счет существенного обрезания функциональности. Если это происходит за счет отрезания ненужных кусков – то все хорошо, много пива и все довольны.
5 дек 02, 12:35    [86761]     Ответить | Цитировать Сообщить модератору
 Re: Разработка СУБД / DBMS development  [new]
SeaRunner
Member

Откуда: St. Petersburg
Сообщений: 367
Вопрос 2: Почему бы не использовать что-то готовенькое?
Ответ: УЖЕ использовали. УЖЕ работает. Теперь вопрос поставлен так: КАК сделать СВОЕ? Причин несколько – скорость существующей системы, кроссплатформенная переносимость, теоретическая возможности перенести требуемую функциональность с MSSQL на собственную платформу плюс формальное требование ИСПОЛЬЗОВАТЬ существующую систему.
5 дек 02, 12:36    [86764]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить