Домой нас везли на полицейской машине, хорошо, что хоть с отключенной мигалкой. Веткин спросил:
- Саша, а что там с дневником, читаешь, как идёт?
- Миша, я начал читать дневник. Я очень расстраиваюсь, читая этот дневник. Объяснить, почему я расстраиваюсь, мне сейчас гораздо тяжелей, чем объяснить основные понятия баз данных. Это очень печальная хроника жизни людей, возвращающая читателя к событиям второй мировой войны. Пока мне кажется, что дневник не может иметь никакого отношения к твоему расследованию. Автором записей является очень хорошо образованная женщина-еврейка. Я тебе расскажу о записях в дневнике более точно и подробно через пару дней.
Уже лёжа в постели, моя собственная специалистка по анализу детективных сюжетов высказалась:
- Зачем нужно было показывать Веткину свои знания баз данных. Ты, конечно, не смог остановиться, петушился перед молодой, симпатичной женщиной из полиции. Час расплаты за твоё сегодняшнее легкомыслие близок – полковник Веткин теперь от тебя так просто не отцепится. Помяни моё слово - не позднее, чем завтра, он позвонит и попросит твоей реальной помощи в расследовании. И ты ведь не сможешь ему отказать – ты мне сам рассказывал, что в прошлой жизни неоднократно пользовался его одолжениями. Знаешь, что ты можешь попросить у Веткина в обмен…
- Что я могу попросить в обмен, любимая?
- Ты попросишь дать тебе возможность знакомиться с материалами этого дела. Конечно, это нарушение закона. Но следователь на обмен пойдёт – Веткин явный авантюрист и тебе полностью доверяет. Он совсем не боится нас – приезжих, граждан другой страны, и поэтому обязательно обратится к тебе за помощью и примет любые твои условия. По приезду домой у тебя окажется готовый материал для книги и не придётся ничего высасывать из пальцев. Поменяешь имена, даты и детектив готов…
- Идея хорошая, как и все твои идеи, любимая…
ДНЕВНИК, ТЕТРАДЬ ПЕРВАЯ, 22 СТРАНИЦА
1942, февраль, 12
Вчера ночью они пришли в наш район, оцепили весь квартал и начали методично проходить через все дома и квартиры. Мы уже спали, когда внезапно раздался громкий и настойчивый стук в дверь. Я не успела выскочить в окно – Франек крепко меня удерживал, жестом приказав мне молчать и ничего не предпринимать - я ведь причина смертельной угрозы и для него. Я просто обязана отыграть свою роль, как можно лучше. Франек открыл дверь и трое, выпивших и наглых молодых парней, латышских полицейских, ввалились в нашу комнату. Они ищут евреев и коммунистов. Франек предъявил документы: свое удостоверение со швейной фабрики и свидетельство о регистрации в Риге его сестры Эльвиры. Хорошо, что у нас были разобраны два отдельных спальных места – этот интерьер хорошо сыграл в поддержку легенды «брат и сестра». Потом с предпоследнего этажа в квартиру поднялся управляющий нашего дома и подтвердил, что в этой квартире зарегистрировано двое жильцов: брат и сестра. Хорошо, что сам он не проживает в нашем доме и никогда не видел настоящую Эльвиру Бунгардс. Заявление управляющего и удостоверение Франека сработали отлично. Полицейские скоро ушли, а один из них даже успел мне дружелюбно подмигнуть, подчёркивая свой мужской интерес. Я отвернулась, а Франек испуганно стал объяснять, что я не в себе - недавно потеряла ребёнка при родах. После Франек меня похвалил за то, что я правильно держалась. Никто ничего даже не заподозрил. Я теперь больше не Сара Димант, я Эльвира Бунгардс.
Удачный проигрыш нашего спектакля сильно воодушевил моего спасителя - его план сработал и удался. Довольный собой, он крепко прижал меня к себе, и я сразу почувствовала его эрекцию.
- Франек, отпусти меня!
Но он только ещё крепче прижал меня к себе.
- Франек, отпусти меня, пожалуйста, - повторила я. Его губы уже коснулись моей шеи, а горячий, влажный язык заскользил по всему моему телу. Я снова попыталась высвободиться, но он не давал мне даже пошевельнуться. Его руки сдвинулись и разорвали застёжку на моём халате.
- Нет, - сказала я слабым голосом, растерянно глядя на свои открывшиеся белые груди с обхватившими их смуглыми мужскими ладонями. Он снова, как в первый раз, полностью парализовал меня. Я закрыла глаза, я больше не могла сопротивляться. После сегодняшнего ночного шока ему вообще очень легко меня сломить. Да и незачем мне сопротивляться – мы ведь уже были близки. Я уже, так или иначе, всё равно страшная грешница – я имею интимные отношения с нелюбимым и незнакомым человеком. Я повлекла его к кровати, это движение ещё больше распалило Франека. Он мягко опрокинул меня и через мгновение я уже ощутила его внутри своего лона. В первый раз его хватило ненадолго, а я всё время была сосредоточена на мысли, чтобы он не причинил мне боль. Его движения вдруг замедлились, и он опустился на кровать, со мной рядом. Стояла полная тишина, мы оба не произнесли ни одного слова. В этом молчании было что-то спасительное – не надо объясняться и выходить из защитного панциря собственных раздумий. Вдруг, он снова начал меня целовать, притянул к себе и прижал свои губы к моей груди. Когда он опять вошёл, я полностью раскрылась навстречу его ласкам. Я стала приспосабливаться к его движениям и искать самое подходящее положение. В конце я даже позволила себе, наконец, освободиться от переполняющего меня напряжения – потеряв контроль над собой, я издала несколько стонов. Франек сразу оценил мой сдвиг, он понял, что я уже начала своё продвижение от боязни до восприятия его, как своего мужчины и защитника. Было уже очень поздно. Моё тело изнемогало от усталости. Мы лежали, тесно прижавшись. Я чувствовала его дыхание, слышала, как бьётся его сердце, и постепенно проваливалась в сон.
Я проснулась одна. Посмотрела в полутьме на настенные часы. Семь тридцать утра, Франек уже ушёл на работу. Я долго лежала, уставившись на убогое убранство комнаты и разбросанные вещи. Какая гнетущая тишина! Вчера я опять сумела выжить, но нужна ли мне такая жизнь? А что можно было сделать? Выйти и сдаться этим нелюдям? Нет, я никогда не смогу решиться на такой шаг. Кроме того, я не имею права подставить под удар Франека. Я встала, подошла к окну и стала смотреть на зимний город. В моём мозгу вертелась какая-то странная смесь давних воспоминаний и воспоминаний вчерашней ночи. Я боюсь мысленного сравнения своих ощущений. С Леоном я никогда не знала своего собственного желания, я просто жертвенно отдавала то, что требовалось моему любимому мужчине. Вчера, с нелюбимым человеком, я испытала жгучую потребность в близости, я полностью, пусть только на половину ночи, избавилась таким образом от своего постоянного внутреннего напряжения и страха.
Неужели я и впрямь стала падшей женщиной с низменными желаниями…
Сейчас я попью чай и сяду писать свой дневник на английском языке – этого языка Франек не знает. Если он случайно найдёт дневник в моём тайнике, то никак не сможет его прочитать...
ЛЮБОВНИК DB-LRE
Миша Веткин позвонил на следующий день. Он попросил, чтобы я всего один день поработал с инспектором Зитой Калныня и поставил девушку на правильный путь. Я назвал свою цену. Мы сошлись на том, что он будет давать мне просматривать материалы дела у себя в кабинете и, при необходимости, ответит на мои любые вопросы.
Сегодня, 25 июня, я стал членом следовательской бригады. Зита получила в министерстве документ, выписанный на моё имя, в котором говорится, что Александр Корецкий, как специальный эксперт временно привлекается к расследованию убийства Франца Ковальского. Предъявитель документа имеет право в сопровождении работника латвийской полиции посещать объекты расследования и участвовать в допросах и следственных мероприятиях.
После короткой беседы с директором центра мы отправились по длинному коридору третьего этажа искать дверь с табличкой «Администратор DB-LRE». Это хитрое название написал для нас в блокноте инспектора Калныня директор вместе с именем - Валерий Сотников. Проверив наши полномочия, он вздохнул и обречённо попросил не отвлекать от работы многих людей, не давать поводов для сплетен и слухов, а сразу обратиться к Сотникову. Валерий - гуру системы DB-LRE, он один в состоянии помочь в любых поисках и вопросах.
Дверь с замысловатым названием была приоткрыта, но мы в нерешительности остановились. Нас смутили странные выкрики за дверью, которые были бы более уместными в спальне сильно продвинутых любовников, чем в офисе:
- Ну, давай! Вот так, молодец, умничка…
- А теперь медленно, не спеша, постарайся…
- Вот так, не торопясь, всё хорошо получилось…
- А ты боялась, сопротивлялась и выпендривалась…
- Можешь ведь тварь, если захочешь и постараешься!
Будь моя воля – я бы ушёл или переждал под дверью, но ничто не могло остановить инспектора криминальной полиции Зиту Калныня. Достойная ученица своего шефа смело и напористо постучала в дверь. Несколько секунд спустя дверь маленького и тесно заставленного стеллажами офиса отворилась нараспашку. К нашему удивлению за дверью, в полном одиночестве, в чёрном кожаном кресле на колёсиках передвигался единственный участник интима – высокий и русоволосый толстяк добродушного вида. Кроме румяного толстяка, в комнатке активно функционировали только два подключенных к сети компьютера. Ну, всё с этим парнем мне ясно – отмороженный фанат, наверняка, отлаживает какую-то программу. Я, например, в подобных случаях страшно ругаюсь русским матом.
- Здравствуйте! Я - инспектор криминальной полиции Калныня, мы ищем господина Валерия Сотникова. Со мной вместе наш эксперт по компьютерной части – господин Корецкий.
- Здравствуйте! Я – Валерий Сотников, администратор DB-LRE. Эрик мне звонил, что двое из полиции зайдут ко мне в офис. В чём же мы провинились перед органами правосудия? Я тут играюсь, тестирую одну занятную программку, мне её Борька оставил, когда уезжал домой. Борька Розин – это наш контрактник из Америки, он тут у нас раньше руководил разработкой проекта. Мы с ним дружили. Ну, раз уж вы пришли – проходите, будьте как дома. Я свои дела пока отложу, поработаем вместе, во всем разберёмся. Эрик мне сказал, что вы хотите какой-то потерянный контракт найти. Всё найдём, надёжность у нас самая высокая – система прошла тяжёлую опытную эксплуатацию, отработала отлично во всех режимах и запросах. Только одна проблема осталась: данные поступают факсом или мылом, а поэтому требуют ручного ввода. Такой ввод не может на 100% обеспечить защиту от ошибок оператора. Автоматизация ввода полностью защитит нас от ошибок. Жаль бабки этого года уже закончились, осталось ещё полгода продержаться, а потом мы обязательно купим в Штатах программу форматирования электронных сообщений в записи входа. Борька обещал купить и выслать нам софт, как только у нас деньги появятся. Что делать то нужно, господа? Какой у вас план? Какой контракт следует искать?
Тут Зита произвела царственный жест, позволяющий мне перехватить инициативу. Я объявил исходные данные поиска:
- В Земельной книге города Юрмалы контракт зарегистрирован под номером #AC-14397-2002 от 23 мая текущего года, продавец – Франц Ковальский, покупатель – Юрис Фридманис. Агент по продаже – Ивар Пирагс. Попытайся найти такую запись. Если допустить, что произошла ошибка оператора при вводе, то, скорее всего, ошибка могла случиться всего в одном поле данных, верно коллега?
Сотников открыл экран запросов и стал поочерёдно задавать своей системе варианты поиска по номеру контракта, по данным продавца, по фамилии покупателя и по фамилии агента. Безрезультатно! Запись с такими данными в DB-LRE отсутствовала.
- Валера, а сейчас введи только дату. Может быть, у вас информация за целый день потерялась…
- Нет, записей за 23 мая навалом, всего 34 выскочило по запросу.
- Значит, информация за весь день не пропала. Повтори теперь все предыдущие запросы, не задавая дату и только по части фамилии, например «Коваль», «Фрид».
- Ничего! Нужной записи нет! Выскочила какая-то старая запись по незавершённому контракту в феврале этого года – продавец Ковальский, а покупатель Плацис. Контракт был прерван по требованию продавца недвижимости.
- Нас интересуют только завершённые контракты. Давай, переходи на экран просмотра входного массива. Ищи фамилию «Ковальский».
- Вот она родная! Нашлась запись!
На экране, действительно, появилась форматированная строка:
| # AC -14397-2002| 23.05.2002| Жилой дом, два этажа, участок 20 акров |Кемери, ул. Сатеклес, 67|Ковальский, Франц|Фридманис, Юрис|Пирагс Ивар |.
- Валера, а вы храните файл ошибок входных данных? Переходи на просмотр этого файла и опять используй функцию поиска. Могло случиться, что эта запись чем-то не понравилась системе. Ищи ошибку по номеру контракта.
- В этот день не зарегистрировано ни одной ошибки…
- Выхода нет – придётся восстанавливать копии базы на магнитной ленте. В вашем компе хватит памяти, чтобы в тестовой среде восстановить базу данных в полном объёме?
- Обижаешь, коллега! У нас, как в Греции, всего хватает и памяти тоже достаточно.
- Мы с инспектором Калныня отправимся перекусить, теперь время обеда, а ты, пожалуйста, восстанови копию базы за 24 мая. Я думаю, что у тебя это займёт минут двадцать.
Когда мы вернулись, Валера Сотников легко и сразу нашёл злосчастную запись в восстановленной копии. Я решил подвести итог:
- Коллеги, наша задачка теперь формулируется следующим образом:
Входное сообщение по контракту поступило и обработано без ошибок.
Запись о контракте нашлась в накопителе входных данных.
Запись также присутствует в копии базы на магнитной ленте, снятой 24 мая, но отсутствует во всех следующих поколениях.
Другие записи за 23 мая не пропали, что исключает вариант полной потери информации за день.
В системе не предусмотрены режимы прямого удаления и корректировки записей пользователем с экрана. Корректировка осуществляется только повторным вводом исправленных данных.
В задаче спрашивается: как потерять запись, если она была обработана без ошибок и 24 мая ещё существовала в DB-LRE?
И тут до меня дошло, я нашёл возможный вариант решения:
- Скажи, пожалуйста, Валерий, что это за программа, с которой ты игрался в начале дня, когда мы с Зитой пришли и сломали тебе весь кайф?
- Боря мне оставил программу, которую в США применяют, чтобы искусственно запортить информацию. Рядовые пользователи и программисты, работающие в тестовой среде, не должны знать секреты клиентов. Я имею в виду: точный адрес, сумму денег на счету, пароли и т.д. Такая защита нужна в финансовых системах, а нам зачем – наша база не секретная вовсе.
- На счёт вашей базы ты как раз ошибаешься, Валерий. Она должна стать секретной, если подходить к этому делу профессионально. А технология искажения информации, о которой ты говоришь, называется «data scrambling». И вам придётся тоже применять эту технологию, жизнь вас заставит. Что умеет делать Борина программа?