В какой степени разработчик должен знать особенности систем баз данных?

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

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

Как вы думаете, в какой степени разработчик должен разбираться в базе данных?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
3
0
751
7

Ответы 7

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

Лично я считаю, что вы должны знать, как работают базы данных, а также о реляционной модели и риторике, стоящей за ней, включая все формы нормализации (хотя я редко вижу необходимость выходить за рамки третьей нормальной формы). Основные концепции реляционной модели не меняются от реляционной базы данных к реляционной базе данных - реализация может, но что с того?

Разработчики, которые не понимают смысла нормализации базы данных, индексов и т. д., Пострадают, если когда-нибудь будут работать над нетривиальным проектом.

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

Узнать больше не повредит в любой ситуации.

Если вы не уверены, как лучше всего получить доступ к базе данных, вам следует использовать проверенные и проверенные решения, такие как блоки приложений от Microsoft - http://msdn.microsoft.com/en-us/library/cc309504.aspx. Они также могут оказаться полезными для вас, изучив, как реализован этот код.

Я думаю, что это самые важные вещи (от самого важного до наименее важного, ИМО):

  • SQL (очевидно) - помогает знать, как выполнять хотя бы базовые запросы, агрегаты (sum () и т. д.) И внутренние соединения.
  • Нормализация - навыки проектирования БД являются основным требованием
  • Модель блокировки / MVCC - приятно иметь хотя бы базовое представление о том, как ваши базы данных управляют блокировкой строк (или использовать MVCC для достижения аналогичных целей с оптимистической блокировкой)
  • Соответствие ACID, Txns - Пожалуйста, узнайте, как они работают и взаимодействуют
  • Индексирование - Хотя я не думаю, что вам нужно быть экспертом в табличных пространствах, размещении данных на отдельных дисках для оптимальной производительности и других мелочах, это действительно помогает хорошо знать, как работает сканирование индекса по сравнению со сканированием таблиц. Это также помогает прочитать план запроса и понять, почему он может предпочесть один другому.
  • Основные инструменты - в какой-то момент вы, вероятно, захотите скопировать производственные данные в тестовую среду, поэтому важно знать основы восстановления / резервного копирования вашей базы данных.

К счастью, сегодня существует несколько отличных FOSS и бесплатных коммерческих баз данных, которые можно использовать, чтобы немного узнать об основах db.

Конечно, не помешает быть знакомым с теорией реляционных баз данных и иметь хорошее практическое знание стандартного синтаксиса SQL, а также знать, что такое хранимые процедуры, триггеры, представления и индексы. Очевидно, не так важно изучать специфичные для базы данных расширения для SQL (T-SQL, PL / SQL и т. д.), Пока вы не начнете работать с этой базой данных.

Я думаю, что при разработке приложений баз данных важно иметь базовое представление о базах данных, так же как важно иметь представление об оборудовании, на котором работает ваше программное обеспечение. Вам не обязательно быть экспертом, но вы не должны полностью игнорировать все, с чем взаимодействует ваше программное обеспечение.

Тем не менее, вам, вероятно, не нужно много заниматься SQL как разработчику приложения. Большая часть взаимодействия с базой данных должна осуществляться с помощью хранимых процедур, разработанных администратором баз данных. Я не большой поклонник включения кода SQL в код вашего приложения. Если ваши запросы находятся в хранимых процедурах, то администратор баз данных может изменить реализацию хранимой процедуры или даже схему базы данных, и, пока результат остается таким же, не требуется никаких изменений в коде вашего приложения.

Основные сведения о запросах Sql обязательны. тогда вы можете разработать простую систему. но когда вы собираетесь реализовать сложные системы, вы должны знать нормализацию, процедуры, функции и т. д.

Другие вопросы по теме