По-разному.
В большом магазине, может быть, не потому, что у вас есть тысячи серверов для обслуживания, и ваши инструменты предоставляются. В небольшом магазине вам, вероятно, понадобится больше знаний, потому что у вас более широкие полномочия.
Языки сценариев (например, PowerShell, cmd.exe) всегда полезны для мониторинга, развертывания и т. Д. У меня часто было несколько сценариев Perl, которые мне приходилось поддерживать (почти). Тогда есть разные ETL-пакеты, о которых вы должны знать.
Сказав это, большинство администраторов баз данных (которые я знаю) могли бы писать базовые вещи CLR или хорошо знать PL / SQL. Для меня разделительной линией является знание о более широких шаблонах или архитектуре .net или Java. Мне не нужно это как разработчик БД или DBA. Точно так же, как .net, PHP или Java Monkeys не понимают дизайн базы данных, архитектуру или код так же хорошо, как я.
Лично я решил прекратить погоню за последним или лучшим языком клиента много лет назад и сосредоточиться на работе с базами данных. Это не делает меня «не программистом»: я должен был бы изучить это снова, если бы мне пришлось.
Я знал администраторов баз данных, у которых мало или совсем нет навыков программирования, но у каждого администратора, которого я когда-либо считал хорошим, были, по крайней мере, разумные навыки программирования. Один или два, о которых я могу думать, имели значительный опыт разработки и были довольно хорошими разработчиками сами по себе. Там в справедливое количество из открытого источника инструментов написаны людьми , которые работают в АБД в своей повседневной работе и IIRC парень , который написал ЖАБА используется для работы в качестве администратора базы данных.
В зависимости от роли вы можете писать или настраивать запросы, писать сценарии для автоматизации задач или консультироваться по вопросам разработки приложений. В некоторых случаях вы можете просто присматривать за несколькими серверами через OEM или другой инструмент мониторинга.
Современные «корпоративные» среды разработки, такие как .Net или Java, достаточно сложны, чтобы разработчик мог сделать карьеру, просто специализируясь на них. Как администратор баз данных, особенно в среде разработки, знание C # или Java на практике может не повредить, но вы, вероятно, не будете тратить много времени на то, чтобы на самом деле кодировать их.
Вероятно, вы получите больше преимуществ от любых инструментов сценариев, используемых на вашей платформе, хотя многие системы предоставляют API-интерфейсы .Net, Java, COM или веб-служб. Если вам нужно что-то кодировать с помощью этих API, вам понадобятся хотя бы базовые знания о том, что может использовать этот API. Тем не менее, продвинутые навыки архитектуры приложений обычно не нужны для этого.
Некоторые разработчики будут иметь сильные навыки работы с базами данных, но иррациональный страх перед базами данных довольно распространен в кругах разработчиков. Многие разработчики так и не смогли разобраться с парадигмой «операций над множествами», лежащей в основе SQL. Как администратор Dev, вы можете столкнуться с последствиями этого, и, возможно, придется вмешиваться в код хранимых процедур, чтобы разобраться с проблемами производительности.
ETL и инструменты, окружающие базу данных, также могут попадать в сферу полномочий администратора баз данных. Я видел довольно много рекламируемых ролей DBA, которые, по-видимому, включали в себя значительную часть работы по фоновой разработке. Это будет наиболее распространенным в небольших компаниях. Один из недавних авторов хотел интегрировать пользовательские метрики в Oracle Enterprise Manager, у которого есть API для подключаемых модулей. Довольно часто встречаются такие требования, и, по сути, единственный способ сделать это - написать немного кода.
В ИТ-отделе работает множество «инструментальных парней», и они могут выполнять полезную работу, несмотря на зверство. Однако, когда инструменты заканчиваются, часто единственный способ что-то сделать - это написать немного кода для этого. Именно здесь навыки программирования отделяют мужчин от мальчиков.
источник
Я бы сказал, что нет, но это никогда не повредит. SQL Server достаточно большой, и я не думаю, что один человек сможет освоить весь продукт. С SQL Server 4.2 я являюсь администратором баз данных и считаю себя экспертом в большинстве областей, но я признаю, что не смог бы написать MDX-запрос без Google на каждом шагу.
Я пытаюсь сказать, что вы не можете быть экспертом во всем. Быть действительно хорошим администратором базы данных означает, что вы должны быть хорошими в T-SQL, но, вероятно, не очень хороши в .NET, или, по крайней мере, не так эффективны, как другие, которые могут сосредоточиться на .NET.
Полезно знать о Powershell, а также о преимуществах SSIS. Кроме этого, оставьте другие языки разработки для разработчиков.
источник
По моему опыту, хотя большинство администраторов баз данных имеют некоторый опыт разработки, им вовсе не требуется писать код. У действительно хороших администраторов баз данных, с которыми я работал, были обширные знания по различным темам, включая сценарии оболочки, операционные системы и специализированные знания приложений (например: PeopleSoft).
У меня был инструктор по администрированию баз данных в аспирантуре, который дал нам список вопросов, на которые должен ответить любой хороший администратор баз данных (Oracle): (Я просто опубликую некоторые из основных моментов из списка 40 или около того)
(Oracle) БД должны знать эти вещи, чтобы быть эффективными. Большинству разработчиков, которых я знаю (которые пишут против Oracle), было бы сложно ответить даже на один или два из них правильно.
источник
Если вы администратор базы данных, вы, вероятно, работаете в сфере производительности и безопасности (среди прочих). Это может включать профилирование и помощь в настройке клиентских приложений, над которыми работают разработчики. Таким образом, конечно, не мешало бы знать основы языков, которые используют разработчики, и как взаимодействовать с сервером базы данных. Для SQL Server это, вероятно, .NET. Для MySQL, вероятно, какая-то комбинация php или java.
Например, если на сервер оказывают давление клиентские потоки, это помогает информировать разработчиков о том, что они должны использовать единичные экземпляры для своих ObjectDataSources, чтобы они могли повторно использовать одно соединение с базой данных. А также убедитесь, что они правильно используют параметризованные запросы для ограничения внедрения SQL. Вроде того.
Вы не будете заниматься программированием в смысле разработки клиентских приложений, если вы строго администратор базы данных, но вы должны знать, как они работают (вообще говоря).
источник
Что ж, давайте посмотрим, Oracle использует PL / SQL, который действительно похож на Pascal (язык, который раньше использовался для создания кода приложений для настольных компьютеров, но который упал в последние годы, и разработчики перешли на Delphi, который некоторые ушли оттуда в .NET), и Oracle теперь также поддерживает Java для некоторых видов деятельности. Поскольку администратор базы данных Oracle должен знать все аспекты системы, чтобы иметь высокую оценку, я бы сказал, что знание Паскаля и Java будет требованием.
TSQL имеет возможность писать управляемый код .NET (CLR) для некоторых функций Sql Server, и, следовательно, хороший администратор баз данных, вероятно, должен знать об этом (но его не всегда можно использовать в более старых версиях, поэтому очень много В моем опыте администраторов баз данных, как правило, уклоняются от этого набора функций).
Так что это большие два, и те, на которые ссылается большинство людей, когда спрашивают, а вы спрашиваете. Я не знаю всех других движков, чтобы знать, что они делают и не поддерживают, но я знаю, что многие другие имеют интеграцию с языком, кроме SQL.
источник
Я вполне убежден, что только большие магазины с большими приложениями имеют спрос на DBA, не предназначенный для программирования, поскольку небольшие магазины с простыми базами данных могут обойтись без разработчика на все руки / DBA. Чтобы администратор базы данных стал мастером продукта (Oracle, SQL Server и т. Д.), Для этого знания должен быть спрос! Администратор базы данных должен быть подвержен сложным условиям и проблемам, чтобы помочь ему стать более осведомленным. По сути, это моя напыщенная речь, потому что я работаю администратором в небольшом магазине и не занимаюсь чем-то, что требует более двух нейронов. Думаю, я трачу свое время на эту работу. Я хочу быть разработчиком.
источник