Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов, — решений, которые на первый взгляд кажутся правильными, но со временем создают всё больше проблем.
Научитесь выявлять и обходить многие из этих распространенных ловушек! Проведите рефакторинг унаследованного кошмара и превратите его в жизнеспособную модель данных!
Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.
Отличная книга. Содержит распространенные антипаттерны, объясняет не только, чем они плохи, но и когда допустимы и чем их заменить. Очень практичная и полезная.
Однако с изменениями в файлах, расположенных вне базы данных, все иначе. Если вы удаляете файл, он немедленно становится недоступным для других клиентов. И если изменить содержимое файла, то другие клиенты увидят эти изменения сразу же — вместо предыдущего содержимого файла, отображаемого, пока транзакция не подтверждена.
В сериале «Звездный путь» (Star Trek) («Star Trek» и связанные с ним знаки являются товарными знаками CBS Studios Inc.) были показаны «трибблы» — маленькие пушистые зверьки, которых держали как домашних питомцев. На первый взгляд трибблы очень симпатичные, но вскоре они начинают бесконтрольно размножаться, и избыток трибблов становится серьезной проблемой. Популяция трибблов заполняет любое отведенное ей место, и никто не желает нести за них ответственность. Со временем капитан Кирк обнаруживает, что его корабль и экипаж не могут нормально работать, и он вынужден приказать в первую очередь очистить корабль от трибблов.
Если у вас возникает необходимость в нереляционном управлении данными, лучше всего использовать нереляционную технологию. Эта книга посвящена SQL, а не альтернативам SQL, так что приведем лишь краткий перечень таких технологий: