Сертификация Майкрософт

на примере SQL Server
 
1 2 3
+
+1
-
edit
 

yacc

старожил
★★☆
Итак, дело было вечером, делать было нечего...
Идея сдать экзамены бродила давно - где-то пару лет назад я даже начинал готовиться.
На тот момент по моей специализации - MS SQL - для ассоциата надо было сдать три экзамена

Exam 70-461: Querying Microsoft SQL Server 2012
Exam 70-462: Administering Microsoft SQL Server 2012 Databases
Exam 70-463: Implementing a Data Warehouse with Microsoft SQL Server 2012

Курс 70-462 я в частном порядке даже прошел - и в общем-то не зря - научился
настраивать всякие кластеры, AlwaysOn, репликации - т.е. то, с чем особо по работе и не сталкивался
Как раз под это в свое время была собрана лаба - комп с 6-ядерным процессором AMD, 32 Гб оперативки
и программным RAID 5 из трех 2 терабайтников и все под Дебиан Визи и Виртуал Бокс - под ней
была развернута своя сеть с домен-контроллером и 6 серверами - один из них под Windows Server Core - т.е. без GUI
Однако время шло и до сдачи я не дошел.

На сей раз я начал готовиться уже с ноября прошлого года. И начал с курса 70-461.
Дело в том, что с 2016 года Майкрософт поменяла сертификацию и теперь по MS SQL появились варианты:
- сертификация как разработчик баз данных
- сертификация как администратор баз данных
- сертификация по бизнес аналитике.

Мне по роду работы подходит более всего первая - разработчик баз.
Для нее надо сдать два курса
- Exam 70-761: Querying Data with Transact-SQL
- Exam 70-762: Developing SQL Databases

И в они сильно похожи на то, что в 70-461 - поэтому можно начать с него.
По факту оказалось что это обоснованно : поскольку в SQL 2016 появилась новая функциональность
то курс разбили и включили в две части дополнительные сведения - как технического так и общего характера.

Однако, уже практика показала - 70-461 - очень хороший стартовый курс для изучения - тем более его можно найти в инете - как саму книгу, так и практический тест.

Я начал с того, что прочитал книгу. Чтобы меньше портить глаза был куплен PocketBook InkPad 2.
Он, конечно недешевый ( около 18 тыс ) но дает возможность комфортно читать Pdf документы, каковым
является курс 70-461
Прикреплённые файлы:
inkPad2.jpg (скачать) [1024x576, 142 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Вся серия курсов 70-46X на мой взгляд составлена достаточно грамотно:
- курс разбит на главы - Chapter ( в 461-м их 17 )
- в каждой главе есть несколько уроков - Lesson - как правило 2-3
- на урок отводится для изучения 30-60 мин - реально я тратил иногда больше
- по окончании урока есть упражнения - Practice - где на примере запросов и действий закрепляются знания
- после упражнений идет резюме - Summary - с кратким итогом материала
- ну и в заключении идут три вопроса Lesson Review
- каждая глава завершается еще и парочкой практических сценариев - Сase Scenarios - где дается некая задача для мысленного экперимента,
который надо решить.
- после сценариев содержатся ответы на вопросы и ответы на вопросы сценариев.
Прикреплённые файлы:
70-461-kit.jpg (скачать) [410x500, 42 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
К курсу можно скачать скрипты для БД и для уроков.
Курс я по-факту прочитал миниму два раза - сначала целиком просто прочел, потом второй раз уже гонял скрипты и пришлось местами читать и дополнительные материалы - например по Window Functions ( аналитические ф-ии ) или Full-Text Catalogs. Реально Full-Text Catalogs потом в экзамене отсутствует.
Отдельная песня была с XML - чтобы лучше его понять пришлось прочитать доп. материалы по XSD (XML-schema)
и особенно по XQuery. По XQuery я рекомендую

Введение в XQuery

Тестер проверок XPath

Free Online XPath Tester / Evaluator - FreeFormatter.com

This free online XPath tester lets you test your expressions/queries against an XML file //  www.freeformatter.com
 

Оригинал поваренной книги

cookbook.xml Example File | Qt XML Patterns 5.10

© 2018 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. //  doc.qt.io
 

Тестер XQuery

Simple online XQuery tester

Simple online tool for testing xquery expressions. That supports both XQuery versions 1.0 and 2.0 //  www.xpathtester.com
 

Примеры для книжки

XQuery: Author's Site

XQuery - A Book from O'Reilly Media //  www.datypic.com
 

Чтобы легко отвечать на вопросы по XML имеет смысл затратить на это время - набить руку в осях и запросах, хотя MS SQL поддерживет не все оси - например sibling там нет.

Также безусловно имеет смысл набить руку в аналитических функциях - это точно будет встречаться и достаточно часто.
Например хорошая статья

Window Functions in SQL Server: Part 2-The Frame - Simple Talk

Fabiano continues his introduction to SQL Server's implementation of the window functions by giving a history of what got implemented and when, and explaining the concept of the 'Frame' in a window function, with plenty of examples. //  www.red-gate.com
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Следующим пунктом подготовки было использование вопросов в самом 70-461
Я не поленился и сделал с них скриншоты и запихнул в формате "номер главы-номер урока-номер вопроса" вопросы в одну папку
Прикреплённые файлы:
q_01_1_2.jpg (скачать) [624x171, 28 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
а ответы - в другую.
Это дает возможность в просмотрщике графических файлов листать и отвечать, а потом быстро проверять -пишешь на листочке, отвечаешь на вопросы скажем двух-трех глав, потом проверяешь.
Прикреплённые файлы:
a_01_1_2.jpg (скачать) [759x355, 100 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Вопросы самой книги дают возможность набить "кэш" - чтобы тематика была в голове. Кроме того уже они начинают готовить к самому экзамену, где надо подумать.

После прогона по вопросам из книги я приступил к использование практического теста к 70-461 и тут он меня несколько разочаровал - значительная часть вопросов - тупая.
Т.е. можно найти ответ методом исключения.

Скажем, вопрос формулируется так:
"У вас есть таблица работников, вам надо написать запрос, который выдаст максимальный возраст сотрудника из имеющихся"
Четыре варианта ответа:
1) SELECT MAX(Age) FROM Employee
2) SELECT MIN(Age) FROM Employee
3) SELECT AVG(Age) FROM Employee
4) SELECT STDEV(Age) FROM Employee

Правильный ответ тут понятен если включить элементарную логику.

В общем - пройдя несколько раз тест, я его забросил и переключился уже непсредственно на подготовку к 70-761 - книгу к нему можно также найти и скачать. Но об этом в следующей серии.

Что я не сделал, и теперь понимаю, что не сделал зря - это бегло пробежался по Сase Scenarios - это то, что потом реально встретится в экзамене.
 64.0.3282.11964.0.3282.119
Это сообщение редактировалось 08.05.2018 в 00:54

16-й

опытный
★★
yacc> а ответы - в другую.

Однако замысловато!
Никогда б не подумал, что в перечисленном есть ответ на поставленный вопрос, и тем более, что это D.
Уже забыл за давностью - сиквел что ли имена в выборке не уникализирует автоматом?
 65.0.3325.18165.0.3325.181

yacc

старожил
★★☆
16-й> Никогда б не подумал, что в перечисленном есть ответ на поставленный вопрос, и тем более, что это D.
А вот!
16-й> Уже забыл за давностью - сиквел что ли имена в выборке не уникализирует автоматом?
Нет. В таблицах можно иметь дубликаты, но это противоречит реляционной модели, в которой их быть не должно.
 

16-й

опытный
★★
yacc> Нет. В таблицах можно иметь дубликаты, но это противоречит реляционной модели, в которой их быть не должно.

Все равно вопрос двусмысленный. Я ж так понимаю, сиквел тупо ругнется и как бы никакого противоречия по факту не произойдет. А в оракле вообще:

select t.opa, t.opa from sometable t

даст

opa opa_1

-----
... ...
 65.0.3325.18165.0.3325.181

yacc

старожил
★★☆
16-й> Все равно вопрос двусмысленный. Я ж так понимаю, сиквел тупо ругнется и как бы никакого противоречия по факту не произойдет.
Вообще не ругнется :)
Просто не надо путать а) реляционную модель, где множества над которой определены операции реляционной алгебры, т.е. то что введено тем же Коддом и б) ее реализацию.
Здесь вопрос про б) в ключе а).
Поэтому все правильно, а ответ получается исключением.
 

yacc

старожил
★★☆
16-й> А в оракле вообще:
16-й> select t.opa, t.opa from sometable t
16-й> даст
16-й> opa opa_1
16-й> ----- -----
16-й> ... ...
Так вот смотри - сервер сам назначил атрибуты. В реалицонной модели они должны быть.
Но это простой селект, а в случае если ты это сделешь производной таблицей ( derived table ) то
сервер уже ругнется
Например на такое ( где x - производная таблица ).
SELECT name — или SELECT *
FROM
(
SELECT name , name
FROM sys.tables
) AS x

хотя запрос для производной таблицы сам по себе отработает без ошибок
 

16-й

опытный
★★
yacc> Поэтому все правильно, а ответ получается исключением.

Я-то согласен в принципе, но очень уж за уши притянуто.
Ну, например:

select count(*) from (select t.name1, t.name1 from some_table t)
 65.0.3325.18165.0.3325.181

yacc

старожил
★★☆
16-й> Ну, например:
16-й> select count(*) from (select t.name1, t.name1 from some_table t)
Вот это даст ошибку на MS.
 

yacc

старожил
★★☆
16-й> Я-то согласен в принципе, но очень уж за уши притянуто.
Давай я на русский переведу чтобы понятно было
Итак, вопрос звучит так: "Что из перечисленного не противоречит реляционной модели ?"

А) Использование колонок по порядковой позиции
( В MS SQL такое возможно - например "ORDER BY 1,4" )

B) Возвращение дубликатных строк
( В MS SQL такое возможно - если в таблице дубликаты или возвращается только одна из колонок составного ключа )

С) Не определять ключ у таблицы.
( В MS SQL такое возможно )

D) Снабжение всех атрибутов результата запроса именами
( В MS SQL такое возможно )

Т.е. все четыре варианта в MS SQL возможны, потому что он не строго соответствует реляционной модели, но ей ( модели ) соответствует только последний вариант.
 
Это сообщение редактировалось 08.05.2018 в 18:53

16-й

опытный
★★
yacc> Итак, вопрос звучит так: "Что из перечисленного не противоречит реляционной модели ?"

Мне, кстати, больше импонирует вариант в рабском переводе - Что из перечисленного не насилует реляционную модель?
Но так, если уж выбирать не читая ответов, выбрал бы В). Это хотя бы отголоски в нормальных формах имеет.
 65.0.3325.18165.0.3325.181

yacc

старожил
★★☆
16-й> Но так, если уж выбирать не читая ответов, выбрал бы В).
Ну нет дубликатов в реляционной модели. :)
Множества в ней задаются без дубликатов - это математика

Ответ D неоднозначен только вот в каком плане - в реляционной модели имена атрибутов - уникальные.
Но тот же MS SQL позволяет сделать так : SELECT a AS col1, b AS col1 FROM sample.table

Однако и вопрос поставлен так - именно "не противоречит", а не "соответствует"
 64.0.3282.11964.0.3282.119
Это сообщение редактировалось 08.05.2018 в 19:16

16-й

опытный
★★
yacc> Ну нет дубликатов в реляционной модели. :)

В реляционной модели, строго говоря, и реляций нет как таковых. Все манипуляции с ключами это практический новодел по сравнению с заветами Кодда. Нормальные формы почти единственное практически значимое, что оттуда прикочевало без особых изменений. Если, конечно, не считать общих соображений типа операций над множествами.

yacc> Однако и вопрос поставлен так - именно "не противоречит", а не "соответствует"

Все, не спорю. Но матчасть для таких тестов учить надо как билеты ПДД - без надежды на интуицию.
 65.0.3325.18165.0.3325.181

yacc

старожил
★★☆
16-й> В реляционной модели, строго говоря, и реляций нет как таковых.
Ну почему? :) Строго говоря там и таблиц-то нет :)

16-й> Все манипуляции с ключами это практический новодел по сравнению с заветами Кодда.
Экзамен и не ставит целью понимание реляционной алгебры или реляционной модели в строгом математическом смысле.

16-й> Но матчасть для таких тестов учить надо как билеты ПДД - без надежды на интуицию.
Там реально требуется это - вопросов именно на базис там немного и они скорее для понимания общих принципов и "заковыристости" вопросов.
Собственно ветку я и затеял чтобы показать как сдать с гарантией - поэтому позже будет понятно.
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Итак, взялся я за 70-761.
Собственно обложка книжки выглядит так:

В книжке ничего особо нового, по сравнению с 70-461 нет. За исключением двух очень важных вещей: темпоральные таблицы и JSON. На оба следует обратить внимание. Оба пункта желательно пройти дополнительным материалом.
Сама книга уже построена несколько по-другому - в ней всего три главы:
1. Управление данными с помощью Transact-SQL
2. Запросы с использованием расширенных возможностей Transact-SQL
3. Создание программируемых объектов Transact-SQL

Каждая глава состоит из набора "навыков" ( Skill ) в отличии от "урока" ( Lesson ) в 70-461.
Навыков в каждой главе 3-4. По окончании главы идет резюме ( Chapter summary ) и мысленный эксперимент ( Thought experiment ) на 8-10 вопросов - т.е. именно по ней набить руку толком возможности нет - очень мало вопросов. Сам материал подан в логической последовательности - от того что такое SQL и базовых основ в какой последовательности обрабатывается запрос, к программированию. Вот полная структура до уровня навыков:

1. Управление данными с помощью Transact-SQL
1.1. Создание запросов на T-SQL:
- основы SQL, логическая обработка запросов, оператор SELECT, фильтрация данных предикатами, сортировка, фильтрация, комбинация
множеств операторами ( например UNION, EXCEPT )
1.2. Запросы к нескольким таблицам с соединением:
- СROSS, INNER, OUTER JOIN и их комбинации
1.3. Аггрегация и вычисления:
- функции преобразование типов, функции даты и времени, строковые функции, оператор CASE, системные функции, арифметические операторы и функции аггрегирования, аргументы поиска ( Search Arguments ), детерменизм функций.
1.4. Модификация данных:
- вставка, удаление, обновление, слияние ( MERGE ), использование оператора OUTPUT, влияние изменения структуры ( удаление, изменения колонок ) на данные
2. Запросы с использованием расширенных возможностей Transact-SQL
2.1. Подзапросы и оператор APPLY
2.2. Табличные выражения:
- табличные выражения и их сравнение с временными таблицами, производные таблицы ( Derived ), обобщенные табличные выражения ( CTE ),представления ( VIEW ) и встраиваемые ( INLINE ) табличные функции
2.3. Группировка данных и сводные отчеты:
- запросы с группировкой, PIVOT/UNPIVOT, Аналитические ( Windows ) функции
2.4. Запросы к темпоральным данным и нереляционные типы данных:
- темпоральные таблицы, XML, XQuery, JSON
3. Создание программиируемых объектов Transact-SQL
3.1. Cоздание программируемых объектов: представления, пользовательские функции, процедуры
3.2. Обработка ошибок и транзакции: понимание транзакций, использование TRY-CATCH для обработки ошибок
3.3. Использование типов данных: типы данных, троичная логика ( NULL ).

Часть вещей в книге размазана, поэтому я рекомендую сначала прочитать и пробежаться по 70-461, которая построена стройнее, а уже потом читать 70-761. Про себя скажу - по факту 70-761 прочитал я только один раз, а далее повторял только то, чего нет в 70-761,а именно темпоральные таблицы и JSON - навык 2.4. Как я уже говорил - с XML имеет смысл поразбираться отдельно,также как и с темпоральными таблицами и JSON. Поскольку у меня на лабе есть SQL 2016 - все упражнения я прошел плюс еще поигрался с запросами: скажем по работе мы очень ограничено используем аналитические функции, а вопросы на них - в т.ч. со всяким LEAD и LAG - будут. С принципом построения окна для аналитических функций имеет смысл разобраться, в т.ч. и экспериментами.Однако, по факту я использовал коды упражнений 70-461 и отдельный кусок для 2.4 уже из 70-761.
Для подготовки к экзамену - этого достаточно.
Почти.
Далее поясню что еще крайне желательно и это уже мне досталось на платной основе, но зато сдал я с первого раза.
 64.0.3282.11964.0.3282.119
RU спокойный тип #09.05.2018 12:31  @yacc#09.05.2018 01:17
+
-
edit
 

спокойный тип
Спокойный_Тип

старожил
★☆
yacc> Далее поясню что еще крайне желательно и это уже мне досталось на платной основе, но зато сдал я с первого раза.

спасибо познавательно ))

если тема сертификаций интересна - могу про PMP, PRINCE2 и скрамовские где-то рядом написать
эволюционируй или вымри  59.059.0
+
+1
-
edit
 

yacc

старожил
★★☆
После того, как я прошел обе книги, прошел все упражнения книг и дополнительные материалы, я формально был готов к сдаче. Но это только формально. Разумный человек задается вопросом: "А что будет непосредственно на экзамене? Какого рода будут там вопросы. Вот бы посмотреть образец и примерить свои способности"

Тест для 70-461 здесь увы не подходит - во-первых этот экзамен уже не принимается, а во-вторых в новом 70-761 новая более сложная структура. Обычно таким средством проверки считаются дампы. Достаточно набрать в строке гугла "70-761 exam dumps" и выйдет список с кучей ссылок, в котором можно утонуть: распространением дампов, а точнее их продажей, занимается куча разных фирм. И да - можно посмотреть их примеры. Обычно дамп идет в виде pdf-файла с вопросами, ответами, и небольшими комментариями. У каждой такой фирмы есть в наличии бесплатный пример - на 10-20 вопросов.
Как правило, в самом примере, будет реклама, чуть ли не на каждой странице и обязательно
это будет сопровождаться что 100% вы сдадите и если что не так - вам гарантирован возврат денег.
На самом сайте в разделе этого экзамена и вообще будет обязательно рекламная фотка с улыбающейся теткой или мужиком, которая была просто счастлива иcпользовать эти дампы, и успешно сдала экзамены.
Типа такой:

Могут быть и другие варианты - без людей - но смысл тот же - "Мы вам 100% гарантируем сдачу экзамена!"
 64.0.3282.11964.0.3282.119
RU yacc #09.05.2018 13:03  @спокойный тип#09.05.2018 12:31
+
-
edit
 

yacc

старожил
★★☆
yacc>> Далее поясню что еще крайне желательно и это уже мне досталось на платной основе, но зато сдал я с первого раза.
с.т.> спасибо познавательно ))
Ты погоди - сейчас начинается самое интересное :) К сожалению сразу не написать, если подчеркивать важные детали, поэтому я так, последовательно.

с.т.> если тема сертификаций интересна - могу про PMP, PRINCE2 и скрамовские где-то рядом написать
Да, было бы неплохо.
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
А теперь предлагаю глянуть внутрь - т.е. как этот pdf выглядит внутри.
Вот один из примеров:
Как можно видеть на примере вопроса 15, сам вопрос с полем для ответа занимает две страницы. Вопрос вполне себе типичный что есть в реальном экзамене - т.е. дан код некоторой процедуры и предложены два варианта ее вызова. Вопрос - что при этом произойдет - состоит из двух частей: на каждый вызов. Поскольку в реальном экзамене в подобном вопросе стоит выпадающий список, то чтобы показать варианты в pdf, его приходится разворачивать, что захламляет сам текст.
В ответе показаны опять два этих развернутых списка с подчеркнутыми правильными ответами.
Комментарии к правильным ответам минимальны. Комментариев к неправильным ответам толком и нет.
И это я взял вариант демонстрашки, т.е. не сам pdf, поэтому он сделан по две страницы.
Рекламу на каждой странице видно невооруженным взглядом.
Прикреплённые файлы:
70-761-dump-example.jpg (скачать) [1226x793, 269 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
А вот так выглядит уже скачанный реальный pdf. Я специально подчеркнул двумя красными квадратиками длину вопроса - на две страницы ( это не предел - может занимать и четыре страницы ).

Сам же данный вопрос звучит так:

Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section. you will NOT be able to return to it. As a result, these
questions will not appear in the review screen.
You have a database that tracks orders and deliveries for customers in North Americ
a. The database contains the following tables:

Sales.Customer ( схема таблицы прилагается )
Application.Cities ( схема таблицы прилагается )
Sales.CustomerCategories ( схема таблицы прилагается )

The company's development team is designing a customer directory application. The application must
list customers by the area code of their phone number. The area code is defined as the first three
characters of the phone number.
The main page of the application will be based on an indexed view that contains the area and phone
number for all customers.
You need to return the area code from the PhoneNumber field.
Solution: You run the following Transact-SQL statement:

Does the solution meet the goal?

Т.е. сначала дается замечание, что данный вопрос - это серия вопросов с одинаковым начальным условиями ( ага - вспоминаем Case Study - что я говорил что они важны! ), после ответа на вопрос назад уже вернуться невозможно. Некоторые вопросы могут иметь более чем одного корректного решения, в то время как другие - не иметь вообще.

Начальные условия: У вас есть база данных для отслеживания доставок заказов в Северной Америке, в базе есть следующие таблицы ( прилагается ). Разработчики компания делают приложение для работы с этой базой. Приложение должно показывать списки покупателей по номеру телефону и коду региона. Код региона определяется как три первые цифры номера телефона. Главная страница приложения будет использовать информацию из индексированного представления, в котором выводятся телефоны и коды региона для всех покупателей.

Сам вопрос:
Задача: вам необходимо по телефону получить код региона.
Решение: Вы запустили предложенный код ( создание функции ).
Соответствует ли это решение поставленной задаче?

Код:
CREATE FUNCTION AreaCode ( @phoneNumber NVARCHAR(20) )
RETURNS NVARCHAR(10)
WITH SCHEMABINDING
AS
BEGIN
DECLARE @areaCode NVARCHAR(MAX)
SELECT @areaCode = value FROM STRING_SPLIT(@phoneNumber,'-')
RETURN @areaCode
END

Правильный ответ - нет, не соответствует.
Прикреплённые файлы:
70-761-dump2.jpg (скачать) [841x863, 99 кБ]
 
 
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Из данных примеров pdf видно, что готовиться по такому - НЕУДОБНО.
Во-первых, вопрос может занимать несколько страниц, зачастую корявых
Во-вторых, ответ идет прямо за вопросом, и тоже может быть длинным.
В-третьих, комментарии к правильному ответу сжатые и нет толком разбора неправильных вариантов.

Для подготовки имеет смысл, чтобы вопросы шли без ответов - чтобы можно было поотвечать, а потом уже посмотреть.
Ну и конечно хочется комфорта - чтобы этим было удобно пользоваться.
Например именно так сделан практический тест ( приложение, его можно найти на торрентах ) для 70-461, с которым я побаловался ранее.

Во-первых - там есть пользовательский режим ( Custom Mode ) где можно выбрать тематику и сосредоточиться на ней:
Прикреплённые файлы:
70-461-custom.jpg (скачать) [986x648, 110 кБ]
 
 
 64.0.3282.11964.0.3282.119
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru