Сведения о вопросе

FromRussia

21:27, 18th August, 2020

Теги

database    

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

Просмотров: 382   Ответов: 7

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

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

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



  Сведения об ответе

fo_I_K

05:25, 21st August, 2020

Я думаю, что это самые важные вещи (от самых важных до наименее важных, IMO):

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

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


  Сведения об ответе

davran

16:27, 22nd August, 2020

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


  Сведения об ответе

screen

21:06, 1st October, 2020

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

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


  Сведения об ответе

padenie

15:34, 2nd August, 2020

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

Это не может повредить, чтобы знать больше в любой ситуации.


  Сведения об ответе

LAST

23:58, 10th August, 2020

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

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

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


  Сведения об ответе

lourence

06:23, 18th August, 2020

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


  Сведения об ответе

lats

08:31, 1st August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться