Рубрики
Oracle

Как я сдавал экзамены на OCE. Часть пятая: SQL Expert.

Быть OCP хорошо, а быть OCP+OCE еще лучше! 🙂 Я решил не останавливаться на достигнутом и получить еще кое-какие узконаправленные специализации Oracle. Поскольку я, как считал, не плохо знаю Oracle SQL, хотя на разработчика PL/SQL я, все-таки, не претендую — я решил для начала сдать экзамен 1Z0-047: Oracle Database SQL Certified Expert.

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

1Z0-047 exam course

Готовился я так же как и всегда до этого — читая, читая и еще раз читая оракловую и не только документацию, проходя vce-тесты с открытой рядом Oracle Database Documentation Library 🙂 Так же могу посоветовать книжку из той же серии Oracle Press: «Steve O’Hearn — OCA Oracle Database SQL Certified Expert Exam Guide».

Steve OHearn - OCA Oracle Database SQL Certified Expert Exam Guide Book

Вопросы в экзамене примерно следующего содержания:

  • Несколько вопросов связано с технологией Flashback: flashback table, select as of scn, select versions between. Если вы слушали/сдавали OCA/OCP по DBA, то вы уже все это знаете и тут нет ничего сложного.
  • Несколько вопросов связано с определением и основными функциями базовых понятий в БД, таких как вьюхи, синонимы: для чего они предназначены, как их использовать и так далее.
  • Есть несколько вопросов, связанных с правами и привилегиями. Например, как назначаются системные и объектовые привилегии, что значат with admin option/with grant option, что такое роли. Здесь, опять же, если вы слушали/сдавали OCA/OCP по DBA, то все это вам должно быть хорошо знакомо. Да и для любого действующего админа — это повседневные задачи.
  • Большая часть вопросов связана, конечно же, с составлением сложных запросов. Тут и вопросы про single-row функции, и про агрегацию данных, все возможные виды объединений таблиц, связанные запросы (correlated queries), set-операторы и так далее. На такие запросы уходит больше всего времени, потому как несколько строк занимает только формулировка вопроса. Затем надо еще взглянуть на схему данных, понять как построить запрос и выбрать правильный ответ.
  • Отдельно отмечу вопросы связанные с обновлением данных. В экзамене нет простеньких вопросов на update table. В основном вопросы касаются апдейтов через связанные подзапросы. Затрагиваются все варианты merge запросов, мультитабличных вставок (insert all, insert first).
  • Достаточно внимания уделено rollup и cube агрегирующим запросам.
  • Не обошли стороной и иерархические запросы: как они устроены, как фильтровать ветви, использование grouping, level. Поскольку не часто с ними сталкивался, пришлось более внимательно изучить как они строятся и работают.
  • Много вопросов посвящено целостности данных: первичные ключи, все виды ограничений, внешние ключи, как они создаются при создании таблиц, как их создавать/изменять потом, что будет с данными в таблице, если добавляется новая проверка и т.д.
  • Есть несколько вопросов на использование системных словарей: в каких словарях хранится та или иная информация, кто может читать из них данные.
  • Так же есть несколько вопросов на знание регулярных выражений и типов данных типа datetime (интервалы и поддержка временных зон).
  • Так же мне попался один или два вопроса про внешние таблицы и работу с ними.

Как видно, не зря экзамен называется «SQL Expert», потому как он охватывает все области использования sql. Все что осталось за кадром относится уже непосредственно к pl/sql разработке.

Дабы не повторяться, скажу только, что сдавал я в этот раз там же — в УЦ «Инвента». В этом экзамене 70 вопросов и 2 часа времени, проходной балл — 66%. Не буду сильно хвастаться, скажу просто: «Я сдал» 🙂

Теперь в планах у меня более серьезные экзамены, например Performance Tuning (1Z0-054) или же Oracle RAC and Grid Infrastructure Administration (1Z0-058). Посмотрим. Осталось только найти совсем немного времени (пару месяцев бессонных ночей) и золотой ключик, как говорится, будет у меня в кармане 😉