BA & SA | 10000 Interview questions
10.2K subscribers
172 photos
14 videos
342 links
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Download Telegram
🧑‍🎓Объяснение:
Когда баг воспроизводится только в специфических условиях, важно точно зафиксировать эти условия для проверки исправления и предотвращения регрессии. Совместная встреча разработчика и тестировщика с участием аналитика позволяет наглядно продемонстрировать шаги, а аналитику — задокументировать их и перевести на язык требований.
A: закрытие база оставляет риск повторения на проде.
B: устное описание часто неполно; показ точнее.
D: перекладывание ответственности не решает проблему.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
№4720 категория вопросов: #DBMS
4720. Вы проектируете базу данных для магазина. В одной таблице Orders вы планируете хранить: order_id, customer_name, customer_phone, product_id, product_name, product_price, quantity, order_date. Какая проблема скорее всего возникнет при таком дизайне?
Anonymous Quiz
4%
Невозможность быстрого поиска по дате
80%
Избыточность данных и аномалии обновления
13%
Отсутствие первичного ключа
3%
Медленная вставка новых записей
🧑‍🎓Объяснение:
Описанная структура нарушает нормализацию, а именно вторую нормальную форму. Данные о клиенте (customer_name, customer_phone) и товаре (product_name, product_price) будут повторяться в каждом заказе, что приводит к избыточности. Это вызывает:

Аномалии обновления: если клиент сменил телефон, придётся обновлять все его заказы.
Аномалии вставки: нельзя добавить нового клиента без заказа.
Аномалии удаления: при удалении последнего заказа потеряется информация о клиенте.
A: Поиск по дате можно ускорить индексом, это не главная проблема.
C: Первичный ключ (order_id) есть, его можно добавить.
D: Вставка может быть не медленной, а вот обновления — да.

Вывод: Правильное проектирование требует выделения сущностей (Клиенты, Товары, Заказы) в отдельные таблицы и установления связей между ними.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4721 категория вопросов: #DBMS
4721. В банковской системе выполняется перевод средств со счёта A на счёт B. Операция состоит из двух шагов: списание с A и зачисление на B. После списания, но до зачисления - сбой. Какое свойство транзакции нарушено,и каким механизмом оно обеспечивается?
Anonymous Quiz
28%
Согласованность (Consistency) — через триггеры
12%
Изоляция (Isolation) — через блокировки
58%
Атомарность (Atomicity) — через журнал транзакций (WAL)
2%
Долговечность (Durability) — через резервное копирование
🧑‍🎓Объяснение:
Атомарность (Atomicity) гарантирует, что транзакция выполняется целиком или не выполняется вовсе (всё или ничего). В данном случае после сбоя система должна откатить списание, чтобы не возникло ситуации, когда деньги списаны, но не зачислены. Атомарность реализуется через журнал упреждающей записи (WAL): если транзакция не завершена, при восстановлении система выполняет ROLLBACK по журналу.

A: Согласованность отвечает за сохранение бизнес-правил (например, баланс не становится отрицательным), но не за откат при сбое.
B: Изоляция защищает от влияния параллельных транзакций, не от сбоев.
D: Долговечность гарантирует, что завершённая транзакция сохранится, но не откат.

Вывод: Атомарность — фундаментальное свойство транзакций, критичное для финансовых операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4722 категория вопросов: #DBMS
4722. В таблице Users (10 млн записей) часто выполняются запросы поиска пользователей по полю email. Какое действие даст наибольший прирост производительности?
Anonymous Quiz
65%
Создать индекс по полю email
3%
Увеличить размер оперативной памяти сервера
22%
Добавить составной индекс по полям (email, last_name)
10%
Разделить таблицу на несколько по первой букве email
🧑‍🎓Объяснение:
Индекс по полю email позволит СУБД быстро находить строки по точному совпадению, используя структуру данных (чаще всего B-дерево), вместо полного сканирования таблицы (full scan). Это самый прямой и эффективный способ ускорить поиск по конкретному столбцу.

B: Увеличение памяти может помочь, если текущий объём недостаточен для кэширования, но это не решит проблему полного сканирования.
C: Составной индекс полезен, если запросы часто используют оба поля, но для поиска только по email он будет менее эффективен (можно использовать, но он больше по размеру).
D: Шардинг (горизонтальное партиционирование) — сложное архитектурное решение, которое обычно применяют при распределении нагрузки, а не для ускорения одного вида запросов. Индекс проще и дешевле.

Вывод: Индекс — базовый инструмент оптимизации запросов. Аналитик должен рекомендовать индексацию часто используемых в условиях WHERE полей.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4723 категория вопросов: #DBMS
4723. В системе онлайн-бронирования отелей два пользователя одновременно пытаются забронировать последний свободный номер. В результате номер забронирован дважды. Какой механизм СУБД предотвратил бы эту проблему?
Anonymous Quiz
9%
Уникальный индекс на поле room_id
17%
Триггер, проверяющий количество броней
73%
Блокировка строки при чтении (SELECT ... FOR UPDATE)
1%
Журналирование всех изменений
‼️‼️‼️‼️ Зарабатывайте на своих навыках: папка для карьеры и фриланса + подарки от экспертов

Добавьте папку — и сразу получите доступ к закрытому каналу с подарками от экспертов: полезными гайдами, чек-листами, промокодами на карьерные консультации и т.д.

🍂 Карьерный рост — стратегии переговоров, продажи, маркетинг
🍂 Удалёнка и фриланс — как находить заказчиков и работать из любой точки мира
🍂Личный бренд — создание экспертного статуса
🍂 Hard и soft skills — навыки, за которые готовы платить в 2026 года
🍂Автоматизация и тайм-менеджмент — как работать меньше, а зарабатывать больше и многое другое


Добавить папку + открыть бонусы ⬇️
https://t.me/addlist/ZcC3dzQ0ZJhjZjgy
(Доступ открыт 72 часа)

📎 Развиваете свой канал?
Присоединяйтесь: @prodvizheniye_reklama
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍🎓Объяснение:
Проблема называется «потерянное обновление» (lost update). Чтобы её избежать, нужно заблокировать строку номера на время транзакции. Команда SELECT ... FOR UPDATE в начале транзакции блокирует выбранную строку для других транзакций до её завершения. Второй пользователь, попытавшись выполнить такой же SELECT, будет ждать освобождения блокировки, а когда дождётся — увидит, что номер уже забронирован.

A: Уникальный индекс предотвращает дубликаты по ключу, но здесь уникальность не в одном поле, а в сочетании «номер + дата» (или что-то подобное). Если бы индекс был составным, он бы сработал, но в условии только room_id — не хватит.
B: Триггер выполняется после попытки вставки, но не блокирует чтение, поэтому оба пользователя могут пройти проверку одновременно.
D: Журналирование помогает при восстановлении после сбоя, но не решает проблему конкурентного доступа.

Вывод: Для критичных по конкуренции операций необходимо использовать явные блокировки или повышать уровень изоляции транзакции до REPEATABLE READ / SERIALIZABLE.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4724 категория вопросов: #DBMS
4724. Для нового проекта — системы мониторинга IoT-датчиков — нужно хранить поток показаний. Каждое событие: ID датчика, временная метка, значение. Требуется быстрая запись и аналитика по временным диапазонам. Какую базу данных лучше выбрать?
Anonymous Quiz
17%
Реляционную (PostgreSQL) с нормализованной схемой
10%
Документную (MongoDB)
68%
Колоночную временную (Time Series DB) — например, InfluxDB или ClickHouse
6%
Графовую (Neo4j)
🧑‍🎓Объяснение:
Time Series Databases (InfluxDB, Prometheus, TimescaleDB, ClickHouse) специализируются на высокоскоростной записи временных рядов и эффективном хранении сжатых данных. Они оптимизированы для запросов вида «среднее значение за последний час по датчику X» и обеспечивают высокую производительность при огромных объёмах.

A: Реляционные БД справляются с временными рядами, но при 100k событий/сек быстро упрутся в ограничения по записи и объёму, если не использовать специализированные расширения (например, TimescaleDB для PostgreSQL — но это уже гибрид).
B: MongoDB хорошо подходит для документов, но не оптимизирована для временных агрегаций на больших объёмах.
D: Графовые БД нужны для анализа связей (социальные сети, рекомендации), здесь они не релевантны.

Вывод: Аналитик должен понимать классы СУБД и выбирать под задачу: для временных рядов — специализированные хранилища.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4724 категория вопросов: #SA #SYSTEMDESIGN
4724. Новостной портал с миллионной аудиторией, высокая нагрузка на чтение, небольшая команда, быстрое развитие. Какую архитектуру выбрать на старте?
Anonymous Quiz
19%
Микросервисная
55%
Модульный монолит
9%
Serverless
17%
Событийно-ориентированная
🧑‍🎓Объяснение:
Модульный монолит — оптимальный компромисс для стартапа с ограниченной командой и высокими требованиями к скорости вывода новых функций. Он позволяет:

Быстро разрабатывать и развертывать (единое приложение, простая инфраструктура).
Чётко разделить код на модули (например, статьи, комментарии, пользователи), что в будущем позволит безболезненно выделить микросервисы.
Эффективно использовать ресурсы: один процесс обрабатывает запросы без сетевых задержек между сервисами.

Микросервисная архитектура (A) на старте приведёт к излишней сложности: нужно настраивать межсервисное взаимодействие, обеспечивать согласованность данных, управлять конфигурациями нескольких сервисов — для небольшой команды это замедлит разработку.

Serverless (C) может дать холодный старт при первом обращении к статье, что ухудшит пользовательский опыт. Кроме того, serverless сложнее отлаживать и тестировать локально, а также возможен vendor lock-in.

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

Вывод: Для большинства стартапов с монолитной предметной областью и небольшой командой модульный монолит — разумный выбор, позволяющий сохранить гибкость и скорость.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4725 категория вопросов: #SA #SYSTEMDESIGN