Истории с тегом: базы данных

Всего историй: 153

7189

Терпение и труд ошибку перетрут

Иногда приходится действительно выделывать танцы с бубном, чтобы выполнить работу.

Давно когда-то работал c одной библиотечной системой, написанной ещё под DOS. Естественно, как у любой СУБД, у неё иногда портились таблицы. Однако процесс восстановления был очень занятным.

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

Как-то приглашают меня в одну библиотеку — таблицы битыми оказались. Приезжаю, сажусь за комп, рядом сидит библиотекарь. После каждого моего действия система ругается. Через несколько минут библиотекарь сочувственно спрашивает: «Что, не получается?»

Тётушка была очень удивлена, когда система всё-таки починилась. Ну не объяснять же было библиотекарю про индексы и таблицы? Ей и так, думаю, впечатлений хватило.

7142

Галочка, кнопочка, RTFM

Моя работа — писать учётные системы. БД по клиентам? Это ко мне. Система учёта выполнения заявок в сервисной компании? Тоже ко мне. Учёт рабочего времени в сопряжении со СКУД? Учёт материалов на складе? Оценка изменения рыночных цен на группы товаров? Обращайтесь, сделаем!

За время работы насмотрелся разного: тут и маленькие конторы из полутора компьютеров, и более крупные, с иногородними филиалами, и… Больше всего меня забавляют идеологические поборники решений от известной компании.

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

— Уверенность, что с помощью Экселя они сделают это быстрее и лучше.

— Убеждённость в том, что каждый уважающий себя человек просто обязан в совершенстве владеть офисным пакетом. Кто не умеет — ламер и лох. По этой причине терроризируют пользователей, не желающих углублённо изучать, скажем, Visual Basic.

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

— Наконец, уверенность, что это единственно верный и самый удобный способ работы.

А что получается в итоге? Писать простейший SQL-запрос с помощью специального конструктора запросов — это в порядке вещей. Заставлять пользователя самого писать запросы — тоже, ведь есть конструктор! Пользователи недовольны? Ну, напишем форму в Аксессе — пусть подавятся! Форма непонятная? Ну вот я же этой тупице полчаса объяснял! Сначала поставить тут галочку, потом нажать кнопочку, потом написать название (можно скопипастить из письма) — это же очень просто.

Месячный отчет в Экселе работает только у начальника отдела — норма. С базой в Аксессе одновременно может работать один человек — норма. Требуется новейшее железо? Так прогресс же! Программа не позволяет сделать, как нужно? Значит, не нужно, так директору и скажите!

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

7026

Первое место по RTFM

Послали меня когда-то на городскую олимпиаду по информатике. Разумеется, записали туда без моего ведома под предлогом того, что учусь хорошо. Тема олимпиады — БД и СУБД. Знал я материал только на поверхностном уровне, поэтому решил подготовиться. Работал в OpenOffice Base (люблю СПО), а альтернативный Microsoft Access я знал, но не использовал — не представлял даже, как выглядит интерфейс программы.

Настал день «X». Захожу в аудиторию, сажусь за рабочее место. И что я вижу? Вместо обещанного учителем при записи на олимпиаду OpenOffice Base — Microsoft Access. А я же его в лицо никогда не видел! Думал, влип. В один момент хотел даже взять и уйти с позором. Но нет! Итог: первое место в своей аудитории, третье по городу.

В чём секрет? Используйте справку, прежде чем сдаваться и звать на помощь.

6998

Русский путь: украсть бесплатное

Дали мне падавана. Только за первые пару месяцев он столько штук отколол!

— Я себе дома Убунту как вторую операционку установил, а у неё проблемы с интернетом. Подсоединись по Тимвьюеру, посмотри, плиз!

— А как я подсоединюсь, если у неё нет инета?

— Там же ещё «семёрка» стоит! К ней подключимся, перезагрузимся и зайдём в Убунту.

* * *

— Я хочу Юникс с Ораклом установить. У тебя есть?

Скачиваю ему «фряху», отдаю образ.

— На, устанавливай. Сможешь — подумаем об Оракле.

— А что такое FreeBSD? Я же Юникс просил…

Часовая лекция о FSF, «никсах» и т. д.

— Понял?

— Ага.

Проходит десять минут.

— А у тебя на неё кряк есть?

— Нет. В Гугле поищи.

Через полчаса становиться жалко.

— Как у тебя с английским?

— Отлично!

— Как ты думаешь, существует ли кряк на FreeBSD?

— Непонял?

— На FreeBSD.

— Так где найти?

* * *

Пишет запрос в мелкомягкую БД.

— А какие мне нужны записи? Где поле %field% NULL или где не NULL?

— И те, и другие бери: %field% здесь ни при чём.

Решил посмотреть, что он там сотворил. Точно: «WHERE %field% IS NULL OR IS NOT NULL». Невинные глазки: «Ну, ты же сам сказал, что и те, и другие надо…»

6890

Выбрать из детей

Ходим на обед IT-отделом, иногда к нам присоединяются люди из других. Ждём в очереди. Девушка рассказывает, что она была младшей в семье и донашивала вещи старшей сестры, поэтому мама девочек очень часто путала, хоть они и не близняшки. Один из наших программистов задумчиво спрашивает:

— Твоя мама случайно не программист?

— А что?

— Ну, GROUP BY 'шапочка’

Смеялся только наш отдел.

6837

АхПочемуНеSQL

Хотя беду предвещало многое, новый виток практики отправил меня в нокаут.

Чтобы повысить оценку, нам предложили БДТам оформить карточки со всевозможными произведениями народного творчества. Что ж, хорошо, а как оформлять? Надо создать папки областей, в папках областей — папки районов, в папках районов — вордовские файлы с названиями деревень и городков. Первый раз в жизни я искренне радовалась, что живу в маленькой стране. Какой шрифт? Какое оформление? Да нам всё равно!

К своему стыду и позору признаюсь, что не сразу оценила размер катастрофы. Перепечатав дома около двух сотен карточек и оформив их по предложенному шаблону, пришла сдавать свои труды. Понеслось!

Попытка № 1. «У вас шрифт не тот, поменяйте».

Попытка № 2. «Почему размер 12-й? Надо 14-й!» Двести карточек, помним?

Попытка № 3. «Ах да, забыли вас предупредить: надо бы ещё жанры всех произведений проставить».

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

Ещё немного — опять уйду в технари, напишу нормальную базу и вернусь. Честно-честно.

6646

Глюки без инъекций

Есть некая БД под суровым бесплатным линуксом. В ней — список абонентов, фамилии которых хранятся в транслите. Повадилась база эта валиться с ног. Едва ли не неделя ушла, чтобы понять, в чём же причина.

Свинью подложил абонент по фамилии Логинов. Передаём пламенный привет разработчику-индусу!

6383

Жрёт как не в себя

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

Пришёл паренёк, долго искал, к чему придраться. Не найдя ничего, начал нести пургу, что мы в БД накосячили. Предложили показать, что и где не так. Копался ещё два часа, наконец выдал, что во всём виновата антивируска: проге, мол, не хватает ресурсов. Мы офигеваем: в сервере НР четыре нехилых проца и дюжина гигов оперативки. Что ж, говорим, делать? Он начинает загибать пальцы: типа, всё снести, попробовать БД установить заново и ничего больше на сервер не ставить, кроме этой БД — ей и так здесь не развернуться.

Он ушёл, а мы только руками развели. Запуск человека в космос, высадка на Луну, сложнейшие расчёты термоядерных взрывов — всё было сделано на машинах в тысячу раз слабее, а посчитать муниципальный бюджет нам ресурсов не хватает.

6381

LTFO

Девяносто дремучий год. Огромный по тем временам супермаркет. 3000 квадратных метров, 4000 наименований товаров. Сеть на коаксиале, клиент-серверная система (фронт-энд на новомодной на тот момент Delphi, бэк-энд — SQL-база) и я, молодой админ. Кассы — обычные PC под девяносто пятой виндой. Это сейчас сети супермаркетов, специализированные POS-устройства, а по тем временам сканер штрих-кодов можно было увидеть либо в зарубежных фильмах, либо у нас. Бизнес шёл неплохо, с размахом: под праздники образовывались очереди во все двадцать касс.

Что я делал на той кассе в тот день, за давностью лет совершенно не помню. Факт заключается в том, что я, закончив, просто уступил место кассиру, не сделав злополучный логаут. Под админскими правами интерфейс не сильно-то и отличался, особенно в той части, с которой работал кассир. Как показало расследование, было там окошко ручного ввода цифрового значения штрих-кода, если вдруг сканер сбоит или код плохо пропечатан. Набираешь первые цифры кода или первые буквы названия товара, в окошке высвечивается список товаров, и нужный можно выбрать мышкой или с клавиатуры. Красота! А вот если нажать клавишу Del, выскакивает диалог: «Вы действительно хотите удалить бла-бла-бла?» Кто будет читать, что там написано, когда очередь над душой? А база-то реляционная…

Да, товар каскадом удалился из всех расходных и приходных накладных. Приходные-то — бог с ними, за пять минут восстановили. А вот с продажами вышел ой. Немного повезло, что товар был новый, три недели как закупленный; не повезло, что ходовой. В итоге подняли тысячи накладных, все продажи за эти недели, и сверяли суммы, пропечатанные на бумаге, с суммами накладных в компьютере. Дюжина девчонок осталась после смены и занималась дурной работой. К чести моей и IT-отдела могу сказать, что бэкап за прошлую ночь был, но забивать расходы-приходы за день вышло бы ещё дольше.

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

6281

Селёдка с йогуртом

Ох уж эти конкурсы школяров по информатике!

Кратенькое отступление: мой отец — айтишник. С малых лет он приобщил меня к волшебному миру компьютеров. Теперь, будучи старшеклассником, я не прочь поковыряться в конфигах Апача и прописать пару запросов в базу. Смущает возраст? Меня — ничуть.

Однажды преподаватель по информатике предложил мне представить мне какой-нибудь проект на школьном айтишном конкурсе. Недолго думая, я решил описать процесс разработки триггера на MSSQL — именно это я изучал в тот момент под пристальным наблюдением отца.

Настал час «X». В моей презентации было подробно рассказано, какие БД бывают и как писать простенькие запросы. После этого объяснялось понятие триггера. Затем представлялся алгоритм и демонстрировался сам триггер. Потом выполнялись «правильный» и «неправильный» запросы.

Спокойно рассказав, я сел на своё место. Прослушав другие презентации (обычные тесты на VB в пару строчек), решил, что у меня более чем неплохо. Хотя юношеский максимализм никто не отменял, согласен.

Члены жюри, рассказывая о распределении по местам, радостно сообщили мне, что разработка БД — это «вообще не то», и прочая, и прочая. В голову прибежала мысль: «Не поняли. Ну и ладно, зато триггер заработал».

Выходя из кабинета, тётушка, которая присутствовала на защите проектов, произнесла просто обалденную фразу: «Вот если бы ты использовал макросы, то было бы наглядней, и оценку поставили бы выше». Наверное, дома селёдку она потребляет с йогуртом. Съедобно ведь!