Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
В какой степени разработчик должен изучать специфику систем баз данных?
Современные системы баз данных сегодня оснащены множеством функций. И вы согласитесь со мной, что для изучения одной базы данных вы должны разучиться понятиям, которые вы изучили в другой базе данных. Например, каждая база данных будет реализовывать блокировку иначе, чем другие. Поэтому перенос понятий из одной базы данных в другую был бы рецептом неудачи. И могут быть другие примеры, когда две базы данных будут работать очень по-разному.
Поэтому при разработке систем, управляемых базами данных, должны ли программисты знать базу данных в деталях, чтобы они кодировали для производительности? Я не думаю, что было бы целесообразно, чтобы DBA был вызван для выполнения позже, поскольку его работа заключается в том, чтобы только поддерживать базу данных и помогать разработчику в случае чрезвычайной ситуации, но не на регулярной основе.
Как вы думаете, в какой степени разработчик должен получить представление о базе данных?
Я думаю, что это самые важные вещи (от самых важных до наименее важных, IMO):
- SQL (очевидно) - это помогает узнать, как по крайней мере делать базовые запросы, агрегаты (sum() и т. д.) и внутренние соединения
- Нормализация -DB навыки проектирования являются основным требованием
- Модель блокировки/MVCC -приятно иметь хотя бы базовое представление о том, как ваши базы данных управляют блокировкой строк (или использовать MVCC для достижения аналогичных целей с оптимистической блокировкой)
- ACID соответствие, Txns - пожалуйста, знайте, как они работают и взаимодействуют
- Индексирование -хотя я не думаю, что вам нужно быть экспертом в табличных пространствах, размещая данные на отдельных дисках для оптимальной производительности и других мелочах, это помогает иметь знания высокого уровня о том, как работают индексные сканы по сравнению с таблицами. Это также помогает иметь возможность прочитать план запроса и понять, почему он может выбирать один над другим.
- Основные инструменты -вы, вероятно, захотите скопировать производственные данные в тестовую среду в какой-то момент, поэтому знание основ восстановления/резервного копирования вашей базы данных будет важно.
К счастью, есть некоторые большие FOSS и бесплатные коммерческие базы данных там сегодня, которые могут быть использованы, чтобы узнать совсем немного о основах db.
Лично я думаю, что вы должны знать, как работают базы данных, а также реляционную модель и риторику за ней, включая все формы нормализации (хотя я редко вижу необходимость выходить за пределы третьей нормальной формы). Основные понятия реляционной модели не меняются от реляционной базы данных к реляционной базе данных-реализация может, но что с того?
Разработчики, которые не понимают причины нормализации базы данных, индексов и т. д. будут страдать, если они когда-нибудь будут работать над нетривиальным проектом.
Я думаю, это действительно зависит от вашей работы. Если вы являетесь разработчиком в большой компании с выделенным DBAs, то, возможно, Вам не нужно много знать, но если вы находитесь в небольшой компании, то это может быть действительно полезно, зная больше о базах данных. В небольших компаниях вы можете носить более одной шляпы.
Это не может повредить, чтобы знать больше в любой ситуации.
Конечно, не помешает быть знакомым с теорией реляционных баз данных и иметь хорошее рабочее знание стандартного синтаксиса SQL, а также знать, что такое хранимые процедуры, триггеры, представления и индексы. Очевидно, что не очень важно изучать расширения базы данных для SQL (T-SQL, PL/SQL, и т. д.), Пока вы не начнете работать с этой базой данных.
Я думаю, что важно иметь базовое понимание баз данных при разработке приложений для баз данных, так же как важно иметь представление об оборудовании, на котором работает ваше программное обеспечение. Вам не нужно быть экспертом, но вы не должны быть полностью неосведомлены о том, с чем взаимодействует ваше программное обеспечение.
Тем не менее, вам, вероятно, не нужно делать много SQL в качестве разработчика приложений. Большая часть взаимодействия с базой данных должна осуществляться с помощью хранимых процедур, разработанных DBA, я не большой поклонник включения кода SQL в код вашего приложения. Если ваши запросы находятся в хранимых процедурах, то DBA может изменить реализацию хранимой процедуры или даже схему базы данных, и пока результат тот же, он не требует никаких изменений в коде приложения.
Если вы не уверены в том, как лучше всего получить доступ к базе данных, вы должны использовать проверенные решения, такие как блоки приложений от Microsoft - http://msdn.microsoft.com/en-us/library/cc309504.aspx . Они также могут оказаться полезными для ВАС, изучив, как этот код реализуется.