powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
25 сообщений из 311, страница 3 из 13
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759878
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любая операция - сортировка
А хэш-индексы существуют специально для того, чтобы хранить данные упорядоченными и обращаться к ним по диапазону range scan :)

С этого места будьте добры попподробнее ,
а то чуствую нужно сверить конспект и расставить заметки на полях
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759970
ДохтаРлюбая операция - сортировкаА хэш-индексы существуют специально для того, чтобы хранить данные упорядоченными и обращаться к ним по диапазону range scan :)

С этого места будьте добры попподробнее ,
а то чуствую нужно сверить конспект и расставить заметки на полях
Ну вы же не будете спорить, что range scan легко провести по отсортированному массиву/таблице? (даже без индексов range-границы быстро находятся бинарным поиском)
А как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry Sibiryakov :)
Dimitry Sibiryakovhash match group byhash match group by
А сортировка по хэшу, конечно же, сортировкой не является. Ню-ню...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760029
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любая операция - сортировкаА как нам в этой сортировке поможет "сортировка по хэшу" сейчас нам расскажет Dimitry
Sibiryakov :)

Легко: никак не поможет. Не делается по хэш-индексу range scan.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760060
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любая операция - сортировкаДохтаРпропущено...


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


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

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

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

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

:)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760103
ДохтаРлюбая операция - сортировкапропущено...

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


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

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

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

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

:)
Сортировка по хэшу? Ну как же, вот она ссылка сортировка по хэшу
Только вот не надо, что я снова к Дмитрию подглядываю, Дмитрий не может ошибаться :)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760224
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас тестеров на FVMas катастрофически не хватает. Поэтому буду предлагать именно его, продукцию новокузнецкого баянолитейного завода.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760229
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстате в вашем случае у Юры есть интерфейс DeleteDublikaty_u. Если вы ее вызовите и она вывалится с эксепшином то дубликаты определенно есть, без вариантов.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760834
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> И этим ты пытаешься доказать мысль, что упорядочивание хэшей не является
> сортировкой?..

Во-первых, хэш-коды не упорядочиваются, они просто адреса для доступа к записям.
Это грубо говоря адрес дупла, куда ты положил эту запись. Номер коробки.
во-вторых ничего доказывать и не надо -- есть факт, хэш-таблица не сортирует
записи. Если ты считаешь, что это не так -- доказывай ты, что она сортирует.
Также ещё можешь доказать, что земля плоская, солнце вращается вокруг земли,
а по небу ездит Зевс в колеснице.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760955
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТакже ещё можешь доказать, что земля плоская,

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

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

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

Но это ни коем образом не имеет отношение ни к вопросу ТС, ни к вопросу Дмитрия о том, как проверить то, что множество A является подмножеством B без сортировки.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760974
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС,
IMHO. Собственно можно взять любую, какая больше нравится (по цене, легкости администрирования, пониманию как с ней работать и т.п.).
Можно хоть embeded хоть отдельную.

Если процесс разовый (т.е. дали множество файлов и надо из них составить один без дублей), то можно посмотреть в сторону in memory database, если периодический (подкидывают новые файлы к старому множеству), то в сторону клаcсических БД.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37760997
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivхэш-коды не упорядочиваются, они просто адреса для доступа к записям.
Это грубо говоря адрес дупла, куда ты положил эту запись. Номер коробки.

И эти номера у вас таки не упорядоченны. Ню-ню. Покажите своё определение упорядоченности,
а то я чувствую, что оно расходится с моим...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761001
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Всем чмоки в этом чате.
Взаимно.

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

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

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

Вообще-то топик в общем-то делится на два лагеря: есть те, кто понимает, что
такое хэш-таблица, и те, кто не понимает, вот и всё. Те, кто не понимает,
почему-то никак не хотят пойти поучиться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761010
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> И эти номера у вас таки не упорядоченны. Ню-ню. Покажите своё определение
> упорядоченности,

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

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

Этот супер-мега прикол подзатянулся. Кончай придуриваться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761011
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрю проблема вызвала нехилый спор.
Я пока сделал не с СУБД.
Пошел по пути хранения всего в памяти.
Сделал свой класс (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, но как еще считать уникальный ключ я пока не понял.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761024
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> В качестве ключа я попытался использовать MD5, которая считается для строки
> X+Y+Z+Time.

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

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

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761038
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭтот супер-мега прикол подзатянулся. Кончай придуриваться.

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

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

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

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

И процесс построения хэш-таблицы соответствует алгоритму сортировки вставками, описанной
тем же Кнутом, которого таки кое-кому полезно перечитать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761041
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
> В качестве ключа я попытался использовать MD5, которая считается для строки
> X+Y+Z+Time.

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

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

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


MD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот инструмент корректно их найдет.
А щас как раз работаю над следующим шагом - созданием нормального ключа (вообще ключей, т.к. параметры разные).
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761052
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreimaksMD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот
инструмент корректно их найдет.

А вероятность коллизий ты учитываешь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761062
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovFreimaksMD5 взял просто ради проверки того, что в файле с известным мне кол-вом дубликатов этот
инструмент корректно их найдет.

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

Нет. Пока данных мало (в одном куске всего 16 точек, в другом около 500 000) я думаю коллизий не возникнет.
С MD5 покончено - тест то показал, что инструмент работает :-)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761070
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivЭтот супер-мега прикол подзатянулся. Кончай придуриваться.

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

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

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

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

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


Сортировку тут упоминали в контексте задачи, нужно ТСу миллионы записей сортировать перед тем чтобы искать дубли или не нужно. Пришли к выводу что не нужно сортировать, хештаблица и фулскан несортированых записей.
Внутренние алгоритмы хештаблицы/мапы/сета чего угодно, как вас не касаются алгоритмы работы драйверов в Виндовс при кликаньи мышкой, ТСа не должни касаться. Сортировать ему ничего не нужно, ему нужно сканировать неупорядоченые файлы и добавлять ключи в хештаблицу. Все.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761087
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> В случае хэш-таблицы для любого j > i выполняется условие f(Xj) > f(Xi), где f -
> хэш
> функция.

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

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

Мне не нужно, я своей головой думать умею.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761090
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> MD5 взял просто ради проверки того, что в файле с известным мне кол-вом
> дубликатов этот инструмент корректно их найдет.
> А щас как раз работаю над следующим шагом - созданием нормального ключа (вообще
> ключей, т.к. параметры разные).

MD5 -- это хэш. Им нельзя идентифицировать запись. Поэтому оно именно НЕ НАЙДЁТ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761095
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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



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

Предлагаю срочно внести в аналы , что бы не потерялось не дай Бог.
)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761097
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто неверное утверждение.

Да неужели?.. И в чём же ты видишь его неверность?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37761102
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivТ.е. ключём должен быть массив пар "название поля"-"значение поля".

А не подскажите как этот массив сформировать? Учитывая, что совпадающими могут быть 4 поля?
...
Рейтинг: 0 / 0
25 сообщений из 311, страница 3 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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