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

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

ART-CODE

я пропустил самое главное - однопользовательская СУБД.

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

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

Posted via ActualForum NNTP Server 1.4

2 ноя 09, 14:06    [7871055]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
mayton
Member

Откуда: loopback
Сообщений: 53009
Не хватало еще узнать, что автор нарушил кучу правил проектирования безопасности. К чёрту это. Хотя-бы для начала классифицировать его разработку (так называемый "драйвер"), узнать преимущества. И потом уже покритиковать недостатки.
2 ноя 09, 14:18    [7871149]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
mayton
Хотя-бы для начала классифицировать его разработку (так называемый "драйвер"), узнать преимущества. И потом уже покритиковать недостатки.

с этого и нужно было начать. Есть такая классификация... IN-MEMORY DATABASE
2 ноя 09, 14:23    [7871188]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
gR4mm,
3) Данные в файл пишутся сразу... 0.016 сек - это вместе с записью на диск - в памяти это провернётся ещё быстрее, что естественно...
Есть 3-ри основные - базовые, команды: Чтение, Создание, Обновление.
Чтение: загружает БД в память и декодирует...
создание: выгружает данные из памяти на диск, полностью заменяя существующий файл, именно в этой процедуре задаются параметры сжатия и шифрования.
Обновление: запись изменений в уже существующей базе данных, без повторной обработки сжатия или кодирования/декодирования всей БД, данные отправляемые в БД отправляются в шифрованном - но не сжатом виде, если размер БД не оптимален и она содержит слишком много не сжатых записей, процедура может автоматически вызывать процедуру "Создания", для оптимизации - тогда происходит единовременная перезапись БД.
Что касается запроса всего файла, то БД можно структурировать, например что касается тарификации записывать её не одним файлом а по суткам, тогда ПО тарификатора не надо будет перелапачивать весь архив данных а оно заранее будет знать где именно лежит именно та информация которая ему нужна, и все 100% считанной информации будет востребовано при обработке - это и повлияет на производительность.
4) Данные отправляются в шифрованном виде, что естественно - если для данной БД включена функция шифрования...
Кодировать придётся иногда потому что при изменении данных нет необходимости каждый раз заново запаковывать все данные и перечитывать их. Это необходимо выполнять лишь для оптимизации размера БД - когда несжатых - отредактированных записей - слишком много... Вы сами можете всё попробовать...
5) Если без серверного ПО - то после каждых 1500 исправлений базы с 10000 строк, будет выполняться оптимизация БД - одним из клиентов (если в нутри клиента не указать принудительное отключение данной функции)!

ART-CODE,
Это не однопользовательская - это многопользовательская база данных.!!!

mayton,
Я не нарушал правила проектирования безопасности, я их создавал в данном случае. Это и уникальная разработка и она содержит уникальные алгоритмы криптографии и сжатия... Сейчас на данных драйверах в моей организации с базами работают десятки пользователей одновременно... Отличная производительность и низкая сетевая нагрузка. Самые большие по объёму БД которые на ней реализваны, это: Тарификация телефонной станции и БД с Детализацией сотовых тел...
Кроме того ПО разработанное для работы с БД - классифицирует пользователей по уровню доступа и все пользователи даже те кто работает и правит БД - не имеют возможности делать экспорт данных, либо экспорт и печать очень ограницены и не позволяют вынести базу данных!!!

Вы бы для начала попробовали создать реально работающий проект на этой БД - для вашей организации, работающий с персональными данными... Раздали бы каждому пользователю бумажку с Именем и паролем и Флешки с цифровым ключом, и увидили бы всю управляемость и производительность...
2 ноя 09, 14:37    [7871288]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
mayton
Member

Откуда: loopback
Сообщений: 53009
Поскольку автор публикует всё в открытом виде, я с его позволения приведу фагмент документации, чтобы не было кривтотолков и неясностей.

FVMas-Краткий обзор.doc
FVMas – это библиотека виртуальных массивов и драйвер баз данных в одном. Является лёгким, бесплатным средством – на основе которого можно строить системы баз данных.

Архитектура драйвера:

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

Объектами разработки в файл-серверном приложении являются компоненты приложения, определяющие логику диалога, а также логику обработки и управления данными. Разработанное приложение реализуется либо в виде законченного загрузочного модуля, либо в виде специального кода для интер¬претации.

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

Область применения:

Библиотека может использоваться практически в любых задачах, от простого сохранения параметров и обработки табличных данных, до организации сложных структур баз данных с высокой степенью безопасности – устойчивых к взлому систем, а обеспечением контроля целостности и отказоустойчивости. Это полезно для организаций работающих с персональными данными пользователей!
2 ноя 09, 14:39    [7871301]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Dimitry Sibiryakov
Member

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

JErik

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

Это не однопользовательская - это многопользовательская база данных.!!!

Отлично. Тогда что будет результатом (практически) одновременного
выполнения разными пользователями операции создания?

Posted via ActualForum NNTP Server 1.4

2 ноя 09, 14:52    [7871414]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Кости Гамлета
Member [заблокирован]

Откуда:
Сообщений: 523
Dimitry Sibiryakov

JErik

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

Это не однопользовательская - это многопользовательская база данных.!!!

Отлично. Тогда что будет результатом (практически) одновременного
выполнения разными пользователями операции создания?

Зашифрованный бред?
2 ноя 09, 14:53    [7871427]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Dimitry Sibiryakov
Member

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

Кости Гамлета
Зашифрованный бред?

Я бы скорее поставил на то, что тапки достанутся последнему, а первый
пойдёт лесом.

Posted via ActualForum NNTP Server 1.4

2 ноя 09, 15:00    [7871469]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
gR4mm
Member

Откуда: Москва
Сообщений: 1412
Dimitry Sibiryakov

Кости Гамлета
Зашифрованный бред?

Я бы скорее поставил на то, что тапки достанутся последнему, а первый
пойдёт лесом.

Думаю наоборот, пока первый будет записывать, второй нарвется на ексепшен а-ля "файл занят".
2 ноя 09, 15:11    [7871560]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Кости Гамлета
Member [заблокирован]

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

Думаю наоборот, пока первый будет записывать, второй нарвется на ексепшен а-ля "файл занят".

У автора есть внешняя приблуда.
Она следит за эксепшонами.
Разруливает всевозможные ситуации.
2 ноя 09, 15:13    [7871575]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Dimitry Sibiryakov,
В случае если команды ьна создание поступают параллельно, ТО драйвера организуют очередь, очередь создаётся на основе файла блокировок, первым получает доступ наиболее слабый из очереди ПК (это при одновременном запросе). Операции чтения идут параллельно без блокировок, когда один из пользователей читает БД - и другие пользователи видят что он читает - они тоже просто читают данные. Обновление данных в данной версии драйвера идёт по очереди - это очень быстрая процедура и практически не отнимает времени - НО тесты показывали что Обновление данных может идти параллельно - причём не только параллельно с другим обновлением - но и параллельно с чтением, целостность данных не нарушается - единственная проблема такого доступа что при чтении могли возникать не полностью, а лишь частично обновлённые поля, поэтому от параллельного обновления данных пришлось отказаться в пользу очереди.
2 ноя 09, 15:15    [7871590]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
mayton
Member

Откуда: loopback
Сообщений: 53009
Dimitry Sibiryakov

Кости Гамлета
Зашифрованный бред?

Я бы скорее поставил на то, что тапки достанутся последнему, а первый
пойдёт лесом.

Скорее всего автор не рассматривает такую ситуацию. Или у него есть свой алгоритм разрешения этой коллизии.

Мне вспоминается опыт эксплуатации одной задачи которая была разработана под dBase. Пока её использовали в однопользовательском режиме всё было нормально. Потом "высшее руководство" под флагом экстенсивного развития "постановило" дать доступ в сетевом режиме всем операторам к одному набору dbf-файлов. Разумеется, никто не обсуждал архитектурные проблемы. На гос-предприятиях часто не внемлют здравому смыслу, а тупо выполняют план сверху. Сисадмины-же этой особенности по понятным причинам не знали. Короче закончилось это всё разрушением бд. долгими бессонными ночами программистов и технологов с восстановлением.

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

С файловыми хранилищами - ситуация гораздо хуже. А соблазн использовать несогласованные корректировки слишком велик.
2 ноя 09, 15:19    [7871628]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
В драйвере кроме базовых функций доступа к данным - которые в обычных сетевых программах не используются, а используются только для локальных БД - на основе справочников, реальзованы функции синхронного доступа к данным!!! Синхронное чтение и запись, при этом синхронные функции всегда знают последня ли БД у них загружена- они постоянно контролируют дату и время сздания и при высове синхронного чтения подряд - чтение пройдёт только дин раз - потом функционал будет просто возвращать: ОК - не читая данные - до тех пор пока состояние БД не изменится - в неё не будет произведена новая запись. При синхронной записи доступ к БД другим сетевым программам блокируется на всю операцию изменения даннях в памяти, а не только на момент отправки данных. Это гарантирует 100% что данные находящиеся в памяти последние и актуальные - и если ещё кто-то хочет записать ег запрос становится в очередь его функция сначало обновит данные потом выполнит запись...
2 ноя 09, 15:25    [7871680]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Dimitry Sibiryakov
Member

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

JErik

если ещё кто-то хочет записать ег запрос становится в очередь его
функция сначало обновит данные потом выполнит запись...

А как функция узнает какую часть файла нужно обновить? Или файл
перечитывается целиком?

Posted via ActualForum NNTP Server 1.4

2 ноя 09, 15:34    [7871762]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Dimitry Sibiryakov,
Файл перечитывается целиком...
2 ноя 09, 15:36    [7871784]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
JErik
Обновление данных может идти параллельно - причём не только параллельно с другим обновлением - но и параллельно с чтением, целостность данных не нарушается - единственная проблема такого доступа что при чтении могли возникать не полностью, а лишь частично обновлённые поля, поэтому от параллельного обновления данных пришлось отказаться в пользу очереди.


Медитирую
Тииииихое Счаааастье (c)
2 ноя 09, 15:47    [7871897]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Dimitry Sibiryakov

JErik

если ещё кто-то хочет записать ег запрос становится в очередь его
функция сначало обновит данные потом выполнит запись...

А как функция узнает какую часть файла нужно обновить? Или файл
перечитывается целиком?
При нескольких запросах на запись подряд они выполняются по очереди, первый записывает данные и всё, когда он разблокирует сессию второй увидив изменения синхнонизирует состояние БД - сделает изменения и зафиксирует их - за одну сессию...
Дополнтельная утилита "Сервер - VxTJ7" - разруливает ситуации пропадания клиентов - например если во время сессии клиент пропадёт - например сбой питания - повреждения данных не наступит ни в коем случае - при обновлении - это невозможно (как не пробовал - неполучалось уже и так и сяк - может быть что не все изменения будут отправлены а только чать - НО целоостноть БД нарушена не будет), а идентификатор сессии сервер закроет сам...
2 ноя 09, 15:49    [7871909]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Gluk (Kazan)
JErik
Обновление данных может идти параллельно - причём не только параллельно с другим обновлением - но и параллельно с чтением, целостность данных не нарушается - единственная проблема такого доступа что при чтении могли возникать не полностью, а лишь частично обновлённые поля, поэтому от параллельного обновления данных пришлось отказаться в пользу очереди.


Медитирую
Тииииихое Счаааастье (c)
я наверное немного не правильно выразился чистично обновлённые поля я имел ввиду троки анпример если в строке 10-ть изменений 7-мь успели записаться а вот 3-рь неуспели, то есть по ячейкам... В 7-ми ячейках будут новые данные а в 3-х старые - они были ещё в процессе записи, НО целостность не нарушается...
2 ноя 09, 15:57    [7871993]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
_bob...тока пароль забыл
Guest
JErik
...



давай так, загоняем в твою базу 10 000 000 случайных фамилий: {номер}, {фамилия}
запускаем процесс , который в цикле в случайно выбранной записи меняет 2-ю букву в фамилии на случайно выбранную
а потом запускаем второй процесс, который выбирает номера и фамилии where фамилия like *a?b*c?d*

сколько, по-вашему, будет длиться выборка
тока база должна быть шифрованной ))))
2 ноя 09, 16:03    [7872052]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
думаю следующими шагом будут вопросы о применении IMDB в качестве хранилища данных.
2 ноя 09, 16:11    [7872121]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
Dimitry Sibiryakov
Member

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

JErik

При нескольких запросах на запись подряд они выполняются по очереди,
первый записывает данные и всё, когда он разблокирует сессию второй
увидив изменения синхнонизирует состояние БД - сделает изменения и
зафиксирует их - за одну сессию...

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

Posted via ActualForum NNTP Server 1.4

2 ноя 09, 16:15    [7872156]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
_bob...тока пароль забыл
JErik
...



давай так, загоняем в твою базу 10 000 000 случайных фамилий: {номер}, {фамилия}
запускаем процесс , который в цикле в случайно выбранной записи меняет 2-ю букву в фамилии на случайно выбранную
а потом запускаем второй процесс, который выбирает номера и фамилии where фамилия like *a?b*c?d*

сколько, по-вашему, будет длиться выборка
тока база должна быть шифрованной ))))
Дело в том что случайный набор даных - плохо поддаётся сжатию - это известно - поэтому БД будет большого размера а значит и данных шифровать придётся больше...В БД реализованы самообучающиеся алгоритмы сжатия, и они показывают прекрасные результаты на реальных данных.
2 ноя 09, 16:15    [7872159]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Dimitry Sibiryakov

JErik

При нескольких запросах на запись подряд они выполняются по очереди,
первый записывает данные и всё, когда он разблокирует сессию второй
увидив изменения синхнонизирует состояние БД - сделает изменения и
зафиксирует их - за одну сессию...

Т.е. если к файлу размером в гигабайт подключено сто клиентов, один из
них файл изменил, и 99 тут же начинают этот файл к себе целиком тянуть.
Чууууудненько...
Не факт - если вы хотите поддерживать на экранах клиентов постоянно обновляющуюся информацию - тода, если вы допускаете задержки - то ничего страшного в этом нет...
2 ноя 09, 16:17    [7872176]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
JErik
Member [заблокирован]

Откуда:
Сообщений: 468
Файла размером с ГИГ у вас небудет... Все операции драйвер проворачивает в памяти - если вы хотите обрабатывать ООЧЕНЬ большие объёмы - например отсортировать и т.д... То это легко делается загрузкой по частям, да и в общем случае 100Мб TJ7 - содержат примерно 200Мб чистых данных - эт значит 2Гб стандартная БД :)
2 ноя 09, 16:19    [7872201]     Ответить | Цитировать Сообщить модератору
 Re: Разработал драйвер баз данных, что дальше???  [new]
gR4mm
Member

Откуда: Москва
Сообщений: 1412
А если файлик в память не влезет целиком, что тогда?
2 ноя 09, 16:28    [7872298]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 99   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить