Современные системы баз данных сегодня обладают множеством функций. И вы согласитесь со мной в том, что для изучения одной базы данных вы должны забыть концепции, которые вы изучили в другой базе данных. Например, каждая база данных будет реализовывать блокировку иначе, чем другие. Таким образом, перенос концепций одной базы данных в другую было бы рецептом неудачи. И могут быть другие примеры, когда две базы данных будут работать по-разному.
Итак, должны ли программисты при разработке систем, управляемых базой данных, подробно знать базу данных, чтобы кодировать для повышения производительности? Я не думаю, что было бы уместно, если бы администратор базы данных позже обратился к нему для повышения производительности, поскольку его работа - только поддерживать базу данных и помогать разработчику в случае возникновения чрезвычайной ситуации, но не на регулярной основе.
Как вы думаете, в какой степени разработчик должен разбираться в базе данных?

Я думаю, что разработчик должен хорошо понимать, как работает его система баз данных, независимо от того, какая именно. Принимая решения по дизайну и архитектуре, они должны понимать возможные последствия, когда дело доходит до базы данных.
Лично я считаю, что вы должны знать, как работают базы данных, а также о реляционной модели и риторике, стоящей за ней, включая все формы нормализации (хотя я редко вижу необходимость выходить за рамки третьей нормальной формы). Основные концепции реляционной модели не меняются от реляционной базы данных к реляционной базе данных - реализация может, но что с того?
Разработчики, которые не понимают смысла нормализации базы данных, индексов и т. д., Пострадают, если когда-нибудь будут работать над нетривиальным проектом.
Я думаю, это действительно зависит от твоей работы. Если вы разработчик в крупной компании со специальными администраторами баз данных, возможно, вам не нужно много знать, но если вы работаете в небольшой компании, может быть действительно полезно узнать больше о базах данных. В небольших компаниях вы можете носить более одной шляпы.
Узнать больше не повредит в любой ситуации.
Если вы не уверены, как лучше всего получить доступ к базе данных, вам следует использовать проверенные и проверенные решения, такие как блоки приложений от Microsoft - http://msdn.microsoft.com/en-us/library/cc309504.aspx. Они также могут оказаться полезными для вас, изучив, как реализован этот код.
Я думаю, что это самые важные вещи (от самого важного до наименее важного, ИМО):
К счастью, сегодня существует несколько отличных FOSS и бесплатных коммерческих баз данных, которые можно использовать, чтобы немного узнать об основах db.
Конечно, не помешает быть знакомым с теорией реляционных баз данных и иметь хорошее практическое знание стандартного синтаксиса SQL, а также знать, что такое хранимые процедуры, триггеры, представления и индексы. Очевидно, не так важно изучать специфичные для базы данных расширения для SQL (T-SQL, PL / SQL и т. д.), Пока вы не начнете работать с этой базой данных.
Я думаю, что при разработке приложений баз данных важно иметь базовое представление о базах данных, так же как важно иметь представление об оборудовании, на котором работает ваше программное обеспечение. Вам не обязательно быть экспертом, но вы не должны полностью игнорировать все, с чем взаимодействует ваше программное обеспечение.
Тем не менее, вам, вероятно, не нужно много заниматься SQL как разработчику приложения. Большая часть взаимодействия с базой данных должна осуществляться с помощью хранимых процедур, разработанных администратором баз данных. Я не большой поклонник включения кода SQL в код вашего приложения. Если ваши запросы находятся в хранимых процедурах, то администратор баз данных может изменить реализацию хранимой процедуры или даже схему базы данных, и, пока результат остается таким же, не требуется никаких изменений в коде вашего приложения.
Основные сведения о запросах Sql обязательны. тогда вы можете разработать простую систему. но когда вы собираетесь реализовать сложные системы, вы должны знать нормализацию, процедуры, функции и т. д.