Pull to refresh

Comments 17

с примерами вопросов по теории и типовыми задачами по SQL, которые могут встретиться на собеседовании на должность системного аналитика (СА)

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

Для меня загадка, зачем системного аналитика тестируют на столь подробное знание SQL. Чтобы ER-диаграмму нарисовать - оно не нужно. А чтобы JSON перекладывать, так и вообще не нужно. С сырыми SQL уже не работают, у всех ORM.

В банках почти везде сырой SQL.

ORM вообще придумали для тех, кто в SQL не может. Медленно и неудобно.

И это точно не для аналитики.

P.S. Вопросы в статье детские, конечно.

Такое чувство что этим тестированием нанимают разработчика, а не аналитика. Впрочем для разработчика данный тест ни о чем.

Такие тесты может пройти и школьник, пользуясь Гуглом. Что пытались этим тестом оценить? Почти все эти вопросы перекрываются одним заданием, например, создать четыре таблицы и написать запрос, объединяющий их 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-смысл, но я не увидел. На мой взгляд человек который дал такой ответ, вне зависимости от рабочего места на которое претендует, не понимает смысла термина.

Sign up to leave a comment.