bash.im ithappens.me zadolba.li

Базы данных

7334

На языке урководителей

Общался с товарищем. У него проблема: начальство хочет, чтоб он за месяц перевёл имеющийся чужой проект с Информикса на Оракл. Я придумал красивый пример на понятном для урководства языке.

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

Решение «в лоб»: стартер есть, крутит что надо, аккумулятор — тоже. Может даже шевельнуть машину. Мощи, правда, маловато. В тестовом режиме поработает от розетки. Почти получилось, почти быстро. Так, теперь обеспечить автономную работу… Упс. Батареи явно не хватает. Аккумулятор требуемой ёмкости — чудовищно дорогой, тяжёлый и большой, ставить его некуда. Мотор вырежем — он уже не нужен, — а вместо него батарею всунем. Хм, с чем совместить трансмиссию? Ладно, стартер прямо на диск сцепления, всего лишь немного крепления доработать. О, и радиатор не нужен. Вместо него дыра некрасивая, зато аккумулятора хватит на 100 км.

Пробный пробег. Круто. Медленно, правда, и не на 100, а на 40 км хватило. Так, ставим на зарядку. Заряжаем, заряжаем, зар… Р-р-р! Сколько можно!

Второй пробный запуск. Поехали. «Бензин» кончается на трассе. Но — не зальёшь. Эвакуатор. Втык. Психи. В салоне вместо заднего сиденья ставим бензиновый генератор. Тихо гудит, тихо едет. Электричество для езды используется? Задание выполнено!

7258

Семнадцать факапов весны

В нашу программистскую фирму прислали базу данных немецкого клиента для тестирования, чтобы убедиться, что программа работает хорошо с реальными данными. Тестировщики — люди весёлые: сразу нашли в базе некоего Шварцкопфа и уволили, внеся комментарий: «За крашеные волосы».

Дальше — больше. Некоего Альберта Шпеера отстранили от работы в ночную смену, указав в комментарии: «Подозревается в связях с Гитлером». Работа спорилась, геноцид шёл. Целый отдел был уволен с пометкой на немецком языке: «В газенваген».

Апогеем стало разжалование директора в завхозы, введение должности «Оберштурмбанфюрер» и принятие на неё (как вы уже наверняка догадались) Макса фон Штирлица.

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

7254

DROP SCRIPT

Дали мне на неделе PHP-скриптик на оптимизацию. Скриптик простенький, предназначенный для переноса информации из XML-файлов в SQL-базу, хотя и в промышленных масштабах. Только предоставленый вариант выжирал подчистую всю предоставленую ему оперативку и сдыхал, обработав пару десяков файлов из нестольких тысяч. И это должно было обслуживать сайт одного из главных государственных судов!

После полутора суток разбора скрипта решил переписать с нуля. Опитимизировать было нечего: количество запросов превышало необходимое в десять раз, база вообще не имела индексированных полей. А хуже всего то, что горе-прогеры банально не знали SQL UPDATE, и код был испещрён командами DELETE и INSERT.

7218

Девиантная аксессуальность

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

— У меня форма в Аксессе не работает.

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

Просветление достигнуто. С упавшим сердцем я понимаю, что данные по-прежнему хранятся в Экселе (в XLS-файле и была ошибка), а к ним каким-то образом прикручена формочка из Аксесса. В общем-то, пройдя курс BDSM, думаю, что смог бы вытворить что-нибудь подобное, но есть вопрос: зачем?

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 'шапочка’

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