Самое первое, что разработчики должны знать о базах данных, это: для чего нужны базы данных ? Ни как они работают, ни как вы их создаете, ни даже как вы пишете код для извлечения или обновления данных в базе данных. Но для чего они?
К сожалению, ответ на этот вопрос - движущаяся цель. В хэйдейских базах данных, с 1970-х до начала 1990-х, базы данных предназначались для обмена данными. Если вы использовали базу данных и не делились данными, вы либо участвовали в академическом проекте, либо тратили ресурсы, в том числе и на себя. Настройка базы данных и укрощение СУБД были такими грандиозными задачами, что окупаемость с точки зрения многократного использования данных должна была быть огромной, чтобы соответствовать инвестициям.
За последние 15 лет базы данных стали использоваться для хранения постоянных данных, связанных только с одним приложением. Создание базы данных для MySQL , или Access , или SQL Server стало настолько обычным, что базы данных стали почти обычной частью обычного приложения. Иногда эта начальная ограниченная миссия подталкивается к ползучести миссии, поскольку реальная ценность данных становится очевидной. К сожалению, базы данных, которые были разработаны с единственной целью, часто терпят крах, когда начинают играть роль, которая важна для всего предприятия и имеет критически важное значение.
Второе, что нужно знать разработчикам о базах данных, это весь ориентированный на данные взгляд на мир. Ориентированное на данные мировоззрение более отличается от ориентированного на процессы мировоззрения, чем то, чему большинство разработчиков когда-либо научились. По сравнению с этим разрывом разрыв между структурным программированием и объектно-ориентированным программированием относительно невелик.
Третья вещь, которую разработчики должны изучить, по крайней мере, в обзоре, это моделирование данных, включая концептуальное моделирование данных, логическое моделирование данных и моделирование физических данных.
Концептуальное моделирование данных - это действительно анализ требований с точки зрения данных.
Логическое моделирование данных - это, как правило, применение конкретной модели данных к требованиям, обнаруженным при концептуальном моделировании данных. Реляционная модель используется гораздо чаще, чем любая другая конкретная модель, и разработчики должны обязательно изучить реляционную модель. Разработка мощной и актуальной реляционной модели для нетривиального требования не является тривиальной задачей. Вы не можете создавать хорошие таблицы SQL, если неправильно понимаете реляционную модель.
Физическое моделирование данных как правило, специфично для СУБД и не требует подробного изучения, если разработчик не является также разработчиком баз данных или администратором баз данных. Разработчикам необходимо понять, в какой степени физический дизайн базы данных может быть отделен от логического проектирования баз данных, и в какой степени создание высокоскоростной базы данных может быть достигнуто простым изменением физического проекта.
Следующее, что разработчики должны изучить, это то, что, хотя скорость (производительность) важна, другие показатели качества проектирования еще более важны , такие как возможность пересмотра и расширения области действия базы данных в будущем, или простота программирования.
Наконец, любой, кто вмешивается в работу с базами данных, должен понимать, что ценность данных часто превосходит систему, которая их захватила .
Уф!