Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Работа с БД в оперативной памяти   Найти похожие ветки 

 
georgeted   (2010-05-23 20:47) [0]

Господа. Облазил полгугла но так и не нашел решения для своей проблемы... А проблема такая. У меня есть программа, работающая с некими таблицами, содержимое которых должно быть защищено от чужих рук. Программа однопользовательская (без применения серверов БД) и желательно без установки на пользовательский компьютер дополнительного софта. На сегодняшний день используется компоненты TSqlMemTable, однако они не устраивают меня из-за огроменного размера БД (20000 записей = 150Мб), хотя это не так критично. Самое печальное что они очень долго грузятся. Вот такая табличка сжирает 300мб оперативки, что не есть весело. Другое решение - использование компонентов Absolute DB, они создают файл БД защищенный паролем (можно выбрать алгоритм шифрования), но размер БД тоже большой (если в 1м варианте можно было перегонять базу в архиве, то во 2м уже так не получится - плохо жмется).
Да, еще одно. Для работы используется SQL, так что ClientDataSet и иже подобные ему не сгодятся... Есть ли у кого какие мысли как лучше сделать?


 
Sergey13 ©   (2010-05-24 09:01) [1]

> [0] georgeted   (23.05.10 20:47)
> Другое решение - использование компонентов Absolute DB,
> они создают файл БД защищенный паролем (можно выбрать алгоритм
> шифрования), но размер БД тоже большой

И не влезают на дискету?

Ну положи базу на флешку: нет флешки - нет базы.

Любая секретная информация легко извлекается с помощью или шоколадки или паяльника.


 
Anatoly Podgoretsky ©   (2010-05-24 09:07) [2]

> georgeted  (23.05.2010 20:47:00)  [0]

А ты чего хочешь, при смене размер БД врядли изменится, поскольку это размер
данных, а у тебя 7.5 кб на запись, это немного.
Теперь насчет оперативки, так у тебя же InMemoryDataset и естественно все в
памяти, хочешь меньше, отказывася от InMemoryDataset


 
georgeted   (2010-05-24 09:18) [3]

Не я не про то чтобы БД была размером в 20кб, но ведь есть ведь разумные пределы... 10000 записей и БД в 200 метров ИМХО это перебор... Потом. Sergey13 не впадай в крайности. Почему вы считаете что моя цель - запихать БД на дискету? Ее будут качать из инета а на безлиме (среди возможных пользователей программы) будут сидеть мягко говоря не все. Чем меньше - тем лучше. Опять-таки в разумных пределах. Будет весить 10 метров - оч хорошо. Надеюсь в архиве будет еще меньше... 10000 записей это много разве? Вот сколько по-вашему такая таблица должна занимать места в оперативке и на диске?


 
georgeted   (2010-05-24 09:22) [4]

Да, и про метод защиты базы - я не хочу сделать супер-пупер мега защиту от пентагона, чтоб ее не брал крутой зуб мега хацкера.. Не паролить же БД Аксеса... Шифрование содержимого в таблицах - один из вариантов, но я решил оставить этот вариант на "потом", если не найду другого решения.


 
Sergey13 ©   (2010-05-24 09:35) [5]

> [3] georgeted   (24.05.10 09:18)

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


 
sniknik ©   (2010-05-24 09:46) [6]

> А ты чего хочешь, при смене размер БД врядли изменится, поскольку это размер
> данных, а у тебя 7.5 кб на запись, это немного.
ну как же, смена на базу с юникодом без сжатия увеличит запись а значит и ее в ~2 раза (это если сейчас не юникод),  смена типов полей с char на varchar уменьшит на неопределенное число байт (может движок уже не поддерживает или эмулирует char), а значит и всю базу ... ну в общем понятно.

> но ведь есть ведь разумные пределы... 10000 записей и БД в 200 метров ИМХО это перебор...
> (20000 записей = 150Мб)
очевидно половина это 75 мб на диске, возможно в сжатом виде. разожми, добавь структуры обработки, выровняй по границам чтобы была возможна прямая индексация, т.е. подготовь к работе и ... 200 мб это абсолютно нормально. (во всяком случае не удивительно)

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

> Шифрование содержимого в таблицах - один из вариантов
усиленно не рекомендую, если есть в планах поддержка проги.


 
Anatoly Podgoretsky ©   (2010-05-24 11:06) [7]


> Не я не про то чтобы БД была размером в 20кб, но ведь есть
> ведь разумные пределы... 10000 записей и БД в 200 метров
> ИМХО это перебор... Потом. Sergey13 не

Странная у тебя база при 20 000 записей занимает 150 мб, а при 10 000 уже 200 мб.


 
Anatoly Podgoretsky ©   (2010-05-24 11:08) [8]


> Вот сколько по-вашему такая таблица должна занимать места
> в оперативке и на диске?

Вопрос абсурдный сам по себе.


 
georgeted   (2010-05-24 12:07) [9]

Блин. Я говорю примерные цифры, что вы придираетесь? Хорошо. Почему таблица из 8ми полей (2 поля int и 6 полей varchar(50)) при 20000 записях весит ПРИМЕРНО 150-200 Мб а в архиве 2.5Мб? Чудо-зип? Если же эту таблицу хранить в Аксесе то она занимает не более 5ти метров. В Абсолюте размер увеличивается до 50-70Мб. Я то изначально спрашивал знаете ли вы что получше или нет? А вы сразу зачмырили...

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


 
sniknik ©   (2010-05-24 12:44) [10]

> В Абсолюте размер увеличивается до 50-70Мб.
они насколько помню и с dbf работали... может "тяжелое наследие прошлого"... тип varchar определяется именно типом, а по хранению аналогичен char как в dbf.

> Если же эту таблицу хранить в Аксесе то она занимает не более 5ти метров.
сжатие... но если поработать, и "раздуть" рабочие области то при тех же данных можешь получить базу в 300 мг (а можно и больше, парочку гетерогенных запросов сделать когда все ко всему, и готово вместо 5ти мегабайт 1 гигабайт...).

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

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


 
Anatoly Podgoretsky ©   (2010-05-24 12:50) [11]

> georgeted  (24.05.2010 12:07:09)  [9]

Насчет придирок - придирка только с твоей стороны, а ты люди технические и
уважаем точность!

Обычный zip, почему бы ему не сжимать до такой степени, если данные
позволяют, а тебе что шашечки или ехать?

Храни в Акцессе или не жалуйся.


 
Anatoly Podgoretsky ©   (2010-05-24 12:53) [12]

И про гугл не ври, гугл это свыше 500 000 компьютеров, не точно его половину, но и один процент невозможно облазить.


 
Медвежонок Пятачок ©   (2010-05-24 13:05) [13]

и я точно знаю что парочка организаций попробует мою базу на зуб. Поэтому и озабочен ее защитой.


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


 
Anatoly Podgoretsky ©   (2010-05-24 13:21) [14]

> Медвежонок Пятачок  (24.05.2010 13:05:13)  [13]

Неуловимый Джо!


 
georgeted   (2010-05-27 21:25) [15]

Удалено модератором
Примечание: Не надо наездов на отвечающих


 
Медвежонок Пятачок ©   (2010-05-27 22:26) [16]

кто бы мог подумать что есть такая магия чисел.
80 метров - устраивает.
300 метров - нет.

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.063 c
2-1274194704
Delphist2
2010-05-18 18:58
2010.08.27
дата модификации файла


2-1267853680
Дмитрий С
2010-03-06 08:34
2010.08.27
Ограничение TControl.Top.


15-1263542306
ocean
2010-01-15 10:58
2010.08.27
Можно ли покупать плазму?


2-1267715582
ZV
2010-03-04 18:13
2010.08.27
Инвертировать определенный бит в байте. Как ?


15-1274120084
М. Береговой
2010-05-17 22:14
2010.08.27
Почему нельзя делить на ноль?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский