Comments 17
с примерами вопросов по теории и типовыми задачами по SQL, которые могут встретиться на собеседовании на должность системного аналитика (СА)
Добавим, что эти 15 примеров — это всего лишь малая часть того, что может встретиться на собеседовании. Для успешного прохождения технического интервью и получения оффера от работодателя вам потребуется потратить время на изучение SQL по разным источникам с примерами заданий.
Для меня загадка, зачем системного аналитика тестируют на столь подробное знание SQL. Чтобы ER-диаграмму нарисовать - оно не нужно. А чтобы JSON перекладывать, так и вообще не нужно. С сырыми SQL уже не работают, у всех ORM.
Такое чувство что этим тестированием нанимают разработчика, а не аналитика. Впрочем для разработчика данный тест ни о чем.
Такие тесты может пройти и школьник, пользуясь Гуглом. Что пытались этим тестом оценить? Почти все эти вопросы перекрываются одним заданием, например, создать четыре таблицы и написать запрос, объединяющий их loop, merge и hash join без указания хинтов.
Шаблон проектирования сущность-связь, по мне дак плохой пример? Это не шаблон, а суть реляционной бд. Вот сущность с атрибутами в столбцах и характеристики сущности с хранением в строках вполне к шаблонам можно отнести.
Что-то бедненький список типов данных у вас. Даже в sql92 набор гораздо шире, а системный аналитик должен уметь в стандарты.
Да и транзакции к абстракции в виде sql не имеют отношения. Системный аналитик должен знать, что транзакционностью обладают так же системы, не имеющие sql в своей базе. Это свойство информационной системы. Например, СУБД MySQL, sql есть, а транзакций иногда нет в принципе. Или монга, sql нет, а транзакции завезли вроде бы.
Ну, приступим :)
ACID - блин, это жестоко, реально. Тут вопрос не в том, что что-то слышал, а в том, что скрывается за ним. Зачем это аналитику - я ХЗ. Я думаю, достаточно спросить, что такое транзакция. Если в ответе не будет слов "неделимая", "атомарная" либо их синонимов - уже грустно
Расскажите, покажите - да дайте банальную задачу "вывести имена сотрудников с самой большой ЗП, принятых на работу после 01.01.2020 и все. Сразу все и увидите. А потом еще парочку на развитие идеи :) Для продвинутого - аналитические запросы, так как в неокторых областях это must have. Ну и вообще, пара практических заданий тут скажут все лучше 100500 теоретических вопросов
Если вы ожидаете каких-то зачатков проектирования - можно поговорить о нормальных формах, хотя многие в жизни гуляют вокруг третьей и им нормас. Но хоть это знать надо
Индексы - ОК. Для продвинутых дать почитать план запроса :)
---------------------------
Вообще - SQL это супер технология для практических задач. Код запросов умещается на маленьком листике бумаги, описание задачи тоже. Сделай себе 4-6 тестовых запросов по мере усложнения и вперед. Плюс узнать основное (транзакционность, индексы)
С каких пор индексы это ОК? :)
Рассуждать о индексах стоит только применительно к их селективности. Без этого за их применение надо быть по рукам
Ответ: Оптимизация SQL-запросов с использованием индексов позволяет обеспечивать более высокую производительность баз данных...
Садись, два!
Вообще-то, SQL -- это язык, реализующий реляционную алгебру. А здесь даже слов "нормальная форма" не прозвучало.
Такое ощущение, что текст про индексы кочует из одного места в другое примерно в одном и том же состоянии, т.к. уже много раз встречал эти расплывчатые формулировки про ускорение выборки и замедление обновления. Никак не упоминается, за счет чего происходит ускорение, в каких случаях это может быть полезно, а в каких нет. Про замедление делитов вообще интересно: delete нужно делать точечно, и там индексы как раз помогут; а если удаляется половина таблицы, то, возможно, стоит пересмотреть подход к очистке через truncate, и тогда даже с учетом перестроения индексов будет значительно быстрее, чем делиты.
Компоновка вопросов странная: в одном вопросе про агрегацию и create table. Зачем-то вопросы про NoSQL (хотя этот термин относится к СУБД, а не к базе как таковой), ведь системный аналитик не занимается выбором технологии. Про версионность описано что-то очень сумбурное: это про flashback/as of timestamp запросы? Тогда структуры таблиц не откатываются (по крайней мере в явном виде SQL-таблиц).
Ожидал 15 практических задач, получил 15 ответов на базовые вопросы по базам данных на собеседовании.
По моему мнению (системный аналитик, 15 лет стажа):
1) смешаны задачи на знание инструмента SQL принципов моделирования БД - а это совсем другая наука, можно моделировать и на бумажке.
2) у меня 12 лет опыта СА, но никогда не было потребности создавать таблицы и вешать индексы. Зачем? Разве не разработчики делают в рамках миграций? Какие задачи решает этим СА? Какие процессы?
Почему статья называется "15 задач", если никаких задач в ней не рассматривают? Это что-то типа теста после прослушивания курса "SQL для начинающих", причём курса плохого, где надергано по верхам из разных тем.
Довольно странный ответ предложен на 3 вопрос. Реляционные - основанные на отношениях. В ответе про это нет ни слова. Дальше не стал читать. Может в такой интерпретации есть какой-то глубокий hr-смысл, но я не увидел. На мой взгляд человек который дал такой ответ, вне зависимости от рабочего места на которое претендует, не понимает смысла термина.
15 примеров задач по SQL на собеседовании по вакансии системного аналитика