Являются ли эти концепции SQL для начинающих, промежуточных или продвинутых разработчиков? [закрыто]
16
Недавно я изучал SQL и практиковался с MySQL / Postgres и вскоре с Oracle DB. Я также искал в интернете исследование «дорожной карты» баз данных, но, к сожалению, не смог его найти.
Я хочу понять, где и почему конкретные концепции баз данных попадают в масштаб от начального до среднего и продвинутого уровня. Я думаю о реляционных базах данных по большей части.
Пожалуйста, объясните, как изложить навыки, перечисленные ниже, в последовательности Beginner -> Intermediate -> Advanced для того, какой уровень разработчика должен их знать:
Я бы сказал, что есть два типа вещей, которые нужно знать в отношении SQL (на самом деле это верно для многих технологий), есть конкретные технические вещи, такие как объединения, подзапросы, объединения и т. Д., Которые вы понимаете или не понимаете, а затем есть вещи как дизайн базы данных и моделирование данных, в котором есть градиент навыков, как искусство. Со временем эти вещи становятся лучше, но вы никогда их не «знаете», потому что с ними «они так не работают».
Тем не менее, вот общий план, с которым я бы пошел, и я абсолютно открыт для комментариев / мыслей других, где я могу ошибаться.
начинающий
Где пункты (между, и т. Д.)
Обновить синтаксис
Внутреннее и левое против правого объединения понимание и использование
Синтаксис для изменения и создания структур
Временные таблицы и их использование
курсоры
Основная идея для чего нужны индексы, но не как они работают
Понимание того, для чего нужны внешние ключи и как их обойти (каскадное удаление и т. Д.)
Понимает основы транзакций
Понимает ограничения
промежуточный
Как работают индексы, разница между кластеризованными, некластеризованными и т. Д., Что такое страница и как они размещаются
Понимание подзапросов и умение использовать их в соединениях
Повороты
Может придумать, когда уместно присоединиться к столу.
Может генерировать сложные отчеты данных через группы с агрегатными функциями
Может выполнять базовое профилирование только в режиме мониторинга / отладки, например, при чтении журнала
Понимает разницу между OLAP и OLTP и когда / где использовать структуры OLAP
Умеет использовать триггеры и не использовать их
Понимает транзакции и может наслоить их на обработку ошибок в стеке
продвинутый
Может прочитать план выполнения и понять, как различные части запроса влияют на него
Может настраивать запросы с подсказками выполнения без снижения производительности (подсказки параллелизма, подсказки индекса, подсказки цикла и т. Д.)
Может профилировать и использовать трассировки для идентификации и понимания статистики выполнения под реальной нагрузкой
Знает, что структуры данных на диске
Можно использовать счетчики производительности и понять, какова нагрузка на базу данных и как ее контролировать.
Умеет проектировать куб OLAP и выполнять расширенный интеллектуальный анализ данных с одним
Знает, как использовать триггеры и как использовать их безопасно, с минимальным риском
Умеет использовать распределенные транзакции даже со слоями
Это все, что я мог придумать с моей головы. Пожалуйста, оставьте комментарии с упоминанием других, которые я пропустил, или если я поставил что-то не туда Я не достаточно продвинут, чтобы знать огромный список продвинутых техник, чтобы бросить хе
Забавно, твой список очень похож на мой; хотя я ставлю планы выполнения на один шаг вверх, иначе у нас в основном то же самое. Я почти поместил третью нормальную форму в промежуточную, но я действительно думаю, что моделирование данных не может быть приписано начинающему / промежуточному / продвинутому, это просто слишком много художественного таланта, который настолько серый. Знание того, как выполнять 3-й нормальный курс, - это навык, знание того, когда искусство. Тем не менее, отношение имеет отношение к делу, и я почти поставил его на промежуточный уровень, хе-хе
Вот шкала, которую я использую при опросе кандидатов. Это, очевидно, мое личное мнение, весы могут легко варьироваться:
Во-первых, я ищу навыки работы с базами данных, а не "SQL".
Начинающий:
Промежуточное:
Дополнительно:
источник