Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 13   вперед  Ctrl
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
любая операция - сортировка

А хэш-индексы существуют специально для того, чтобы хранить данные упорядоченными и обращаться к ним по диапазону range scan :)


С этого места будьте добры попподробнее ,
а то чуствую нужно сверить конспект и расставить заметки на полях
18 апр 12, 20:04    [12435601]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
любая операция - сортировка
Guest
ДохтаР
любая операция - сортировка
А хэш-индексы существуют специально для того, чтобы хранить данные упорядоченными и обращаться к ним по диапазону range scan :)


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

Ну вы же не будете спорить, что range scan легко провести по отсортированному массиву/таблице? (даже без индексов range-границы быстро находятся бинарным поиском)
А как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry Sibiryakov :)
Dimitry Sibiryakov
hash match group by
hash match group by

А сортировка по хэшу, конечно же, сортировкой не является. Ню-ню...
18 апр 12, 21:19    [12435864]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Dimitry Sibiryakov
Member

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

любая операция - сортировка
А как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry
Sibiryakov :)

Легко: никак не поможет. Не делается по хэш-индексу range scan.

Posted via ActualForum NNTP Server 1.5

18 апр 12, 21:52    [12436032]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
любая операция - сортировка
ДохтаР
пропущено...


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

Ну вы же не будете спорить, что range scan легко провести по отсортированному массиву/таблице? (даже без индексов range-границы быстро находятся бинарным поиском)
А как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry Sibiryakov :)


Давайте не будем подглядывать в конспект Дмитрия.

С первой частью вопросов нет.

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

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

:)
18 апр 12, 22:06    [12436116]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
любая операция - сортировка
Guest
ДохтаР
любая операция - сортировка
пропущено...

Ну вы же не будете спорить, что range scan легко провести по отсортированному массиву/таблице? (даже без индексов range-границы быстро находятся бинарным поиском)
А как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry Sibiryakov :)


Давайте не будем подглядывать в конспект Дмитрия.

С первой частью вопросов нет.

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

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

:)

Сортировка по хэшу? Ну как же, вот она ссылка сортировка по хэшу
Только вот не надо, что я снова к Дмитрию подглядываю, Дмитрий не может ошибаться :)
18 апр 12, 22:33    [12436221]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Bazist
Member [заблокирован]

Откуда: Спілкуйся Українською
Сообщений: 8157
Блог
Сейчас тестеров на FVMas катастрофически не хватает. Поэтому буду предлагать именно его, продукцию новокузнецкого баянолитейного завода.
19 апр 12, 00:31    [12436642]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Bazist
Member [заблокирован]

Откуда: Спілкуйся Українською
Сообщений: 8157
Блог
Кстате в вашем случае у Юры есть интерфейс DeleteDublikaty_u. Если вы ее вызовите и она вывалится с эксепшином то дубликаты определенно есть, без вариантов.
19 апр 12, 00:39    [12436667]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> И этим ты пытаешься доказать мысль, что упорядочивание хэшей не является
> сортировкой?..

Во-первых, хэш-коды не упорядочиваются, они просто адреса для доступа к записям.
Это грубо говоря адрес дупла, куда ты положил эту запись. Номер коробки.
во-вторых ничего доказывать и не надо -- есть факт, хэш-таблица не сортирует
записи. Если ты считаешь, что это не так -- доказывай ты, что она сортирует.
Также ещё можешь доказать, что земля плоская, солнце вращается вокруг земли,
а по небу ездит Зевс в колеснице.

Posted via ActualForum NNTP Server 1.5

19 апр 12, 12:59    [12438587]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
MasterZiv
Также ещё можешь доказать, что земля плоская,

Всем чмоки в этом чате.

Под сортировкой можно подразумевать получение из неупорядоченного (произвольного) множества упорядочного.
Делается это методом изменения физического расположения элементов в множестве или
созданием упорядоченного массива ссылок и есть суть вашей дисскуссии.

То что ключ сортировки может не очнь коррелировать с любой другой функцией от элемента множества к сути сортировки отношения не имеет.

Но это ни коем образом не имеет отношение ни к вопросу ТС, ни к вопросу Дмитрия о том, как проверить то, что множество A является подмножеством B без сортировки.
19 апр 12, 13:48    [12439099]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
ТС,
IMHO. Собственно можно взять любую, какая больше нравится (по цене, легкости администрирования, пониманию как с ней работать и т.п.).
Можно хоть embeded хоть отдельную.

Если процесс разовый (т.е. дали множество файлов и надо из них составить один без дублей), то можно посмотреть в сторону in memory database, если периодический (подкидывают новые файлы к старому множеству), то в сторону клаcсических БД.
19 апр 12, 13:58    [12439170]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Dimitry Sibiryakov
Member

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

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

И эти номера у вас таки не упорядоченны. Ню-ню. Покажите своё определение упорядоченности,
а то я чувствую, что оно расходится с моим...

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:07    [12439285]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> Всем чмоки в этом чате.
Взаимно.

>
> Под сортировкой можно подразумевать получение из неупорядоченного
> (произвольного) множества упорядочного.
> Делается это методом изменения физического расположения элементов в множестве или
> созданием упорядоченного массива ссылок и есть суть вашей дисскуссии.

А теперь объясни, после заполнения хэш-таблицы, где ты там возмёшь одно
или другое.

> Но это ни коем образом не имеет отношение ни к вопросу ТС, ни к вопросу Дмитрия
> о том, как проверить то, что множество A является подмножеством B без сортировки.

Вообще-то топик в общем-то делится на два лагеря: есть те, кто понимает, что
такое хэш-таблица, и те, кто не понимает, вот и всё. Те, кто не понимает,
почему-то никак не хотят пойти поучиться.

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:09    [12439307]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> И эти номера у вас таки не упорядоченны. Ню-ню. Покажите своё определение
> упорядоченности,

Вообще говоря, они не обязаны быть упорядоченными.
Примером из жизни может служить адрес дома в городе.
Петровка, 38. и Божидовка 7 -- упорядочено ? Что чего меньше ?

> а то я чувствую, что оно расходится с моим...

Этот супер-мега прикол подзатянулся. Кончай придуриваться.

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:13    [12439358]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Freimaks
Member

Откуда:
Сообщений: 51
Смотрю проблема вызвала нехилый спор.
Я пока сделал не с СУБД.
Пошел по пути хранения всего в памяти.
Сделал свой класс (TBinPoints), в котором описал все возможные поля, которые могут встретится в файлах разного строения (специфика работы требует этого). Далее создал 3 конструктора, каждый соответствует одной из возможных версий файла.
Далее создал процедуру чтения с использованием TBinaryReader. Для того, чтобы это вообще работало создал три записи (packed record), которые также соответствуют версиям файлов.
В процедуре создается поток BaseStream.Read в параметрах которого вписывается нужная запись (например, BaseStream.Read(RPointsTimeColor, SizeOf(RPointsTimeColor));).
Далее в переменную (BinPoints: TBinPoints) пишется вся инфа.
Потом в действие вступает TDictionary из Generics.Collections. В ней есть специальная функция Dictionary1.AddOrSetValue (ключ, значение), которая при загрузке в нее данных уничтожает дубликаты (т.е. записи с одинаковым ключом).
В качестве ключа я попытался использовать MD5, которая считается для строки X+Y+Z+Time.
Что в итоге: все работает, но долго (даже читает медленно, по сравнению с родной программой) и занимает кучу оперативки (для файла примерно 120 Мб, заняло около 800 Мб) - все из-за MD5, но как еще считать уникальный ключ я пока не понял.
19 апр 12, 14:13    [12439359]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> В качестве ключа я попытался использовать MD5, которая считается для строки
> X+Y+Z+Time.

А на кой ? Тебе дубликаты надо удалять, или ты так, побаловаться с данными ?

> Что в итоге: все работает, но долго (даже читает медленно, по сравнению с родной
> программой) и занимает кучу оперативки (для файла примерно 120 Мб, заняло около
> 800 Мб) - все из-за MD5, но как еще считать уникальный ключ я пока не понял.

Тебе нужно всять за ключ набор уникальных полей из твоего файла (которые должны
быть уникальны, т.е. по которым ты отсеивать дубликаты будешь).
Т.е. ключём должен быть массив пар "название поля"-"значение поля".

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:17    [12439409]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Dimitry Sibiryakov
Member

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

MasterZiv
Этот супер-мега прикол подзатянулся. Кончай придуриваться.

Придуриваешься тут только ты, растекаясь мыслью по древу вместо использования точных
определений.

Лично я называю упорядоченным множеством такое, в котором для любого j > i выполняется
условие Xj > Xi.

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

В случае хэш-таблицы для любого j > i выполняется условие f(Xj) > f(Xi), где f - хэш
функция. Таким образом хэш-таблица удовлетворяет определению упорядоченного множества.

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

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:22    [12439467]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Freimaks
Member

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

> В качестве ключа я попытался использовать MD5, которая считается для строки
> X+Y+Z+Time.

А на кой ? Тебе дубликаты надо удалять, или ты так, побаловаться с данными ?

> Что в итоге: все работает, но долго (даже читает медленно, по сравнению с родной
> программой) и занимает кучу оперативки (для файла примерно 120 Мб, заняло около
> 800 Мб) - все из-за MD5, но как еще считать уникальный ключ я пока не понял.

Тебе нужно всять за ключ набор уникальных полей из твоего файла (которые должны
быть уникальны, т.е. по которым ты отсеивать дубликаты будешь).
Т.е. ключём должен быть массив пар "название поля"-"значение поля".


MD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот инструмент корректно их найдет.
А щас как раз работаю над следующим шагом - созданием нормального ключа (вообще ключей, т.к. параметры разные).
19 апр 12, 14:23    [12439487]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Dimitry Sibiryakov
Member

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

Freimaks
MD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот
инструмент корректно их найдет.

А вероятность коллизий ты учитываешь?

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:25    [12439520]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Freimaks
Member

Откуда:
Сообщений: 51
Dimitry Sibiryakov
Freimaks
MD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот
инструмент корректно их найдет.

А вероятность коллизий ты учитываешь?

Нет. Пока данных мало (в одном куске всего 16 точек, в другом около 500 000) я думаю коллизий не возникнет.
С MD5 покончено - тест то показал, что инструмент работает :-)
19 апр 12, 14:29    [12439570]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Bazist
Member [заблокирован]

Откуда: Спілкуйся Українською
Сообщений: 8157
Блог
Dimitry Sibiryakov
MasterZiv
Этот супер-мега прикол подзатянулся. Кончай придуриваться.

Придуриваешься тут только ты, растекаясь мыслью по древу вместо использования точных
определений.

Лично я называю упорядоченным множеством такое, в котором для любого j > i выполняется
условие Xj > Xi.

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

В случае хэш-таблицы для любого j > i выполняется условие f(Xj) > f(Xi), где f - хэш
функция. Таким образом хэш-таблица удовлетворяет определению упорядоченного множества.

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


Сортировку тут упоминали в контексте задачи, нужно ТСу миллионы записей сортировать перед тем чтобы искать дубли или не нужно. Пришли к выводу что не нужно сортировать, хештаблица и фулскан несортированых записей.
Внутренние алгоритмы хештаблицы/мапы/сета чего угодно, как вас не касаются алгоритмы работы драйверов в Виндовс при кликаньи мышкой, ТСа не должни касаться. Сортировать ему ничего не нужно, ему нужно сканировать неупорядоченые файлы и добавлять ключи в хештаблицу. Все.
19 апр 12, 14:31    [12439598]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> В случае хэш-таблицы для любого j > i выполняется условие f(Xj) > f(Xi), где f -
> хэш
> функция.

Это неверное утверждение.

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

Мне не нужно, я своей головой думать умею.

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:38    [12439661]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
MasterZiv
Member

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


> MD5 взял просто ради проверки того, что в файле с известным мне кол-вом
> дубликатов этот инструмент корректно их найдет.
> А щас как раз работаю над следующим шагом - созданием нормального ключа (вообще
> ключей, т.к. параметры разные).

MD5 -- это хэш. Им нельзя идентифицировать запись. Поэтому оно именно НЕ НАЙДЁТ.

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:39    [12439667]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
Dimitry Sibiryakov


В случае хэш-таблицы для любого j > i выполняется условие f(Xj) > f(Xi), где f - хэш
функция. Таким образом хэш-таблица удовлетворяет определению упорядоченного множества.



Блин , это же научное открытие :)

Предлагаю срочно внести в аналы , что бы не потерялось не дай Бог.
)
19 апр 12, 14:41    [12439680]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Dimitry Sibiryakov
Member

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

MasterZiv
Это неверное утверждение.

Да неужели?.. И в чём же ты видишь его неверность?

Posted via ActualForum NNTP Server 1.5

19 апр 12, 14:41    [12439684]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для временного хранения данных из бинарного файла (под Delphi).  [new]
Freimaks
Member

Откуда:
Сообщений: 51
MasterZiv
Т.е. ключём должен быть массив пар "название поля"-"значение поля".

А не подскажите как этот массив сформировать? Учитывая, что совпадающими могут быть 4 поля?
19 апр 12, 14:43    [12439697]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 13   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить