Комментарии 23
В свое время очень зашла книга Рефакторинг SQL приложений Фаро. Скорее всего она и сейчас остается актуальной, несмотря на возраст.
«PostgreSQL. Основы языка SQL» Евгения Моргунова — учебник для тех, кто работает с PostgreSQL. В электронном виде доступен свободно.
Ещё, от души рекомендую по Postgres вашу же книгу "POSTGRESQL 14 изнутри" и по следующей версии "POSTGRESQL 15 изнутри" (которая скоро выйдет) - на основе этих книг можно понять как устроены и другие СУБД.
По оптимизации запросов, опять же Postgres, рекомендую "Оптимизация запросов PostgreSQL" Домбровская Г.Р, Новиков Б.А, Бейликова А.
Ещё, для понимания устройства и работы СУБД "Распределенные данные. Алгоритмы работы современных систем хранения информации" Петров Алекс.
Если интересно дальше углубиться в устройство СУБД, то "Проектирование и реализация систем управления базами данных" Сьоре Эдвард.
Стали переводить хорошие книги. Раньше читал в основном на английском, теперь можно и на родном языке. Жду выхода "PostGIS в действии" Обе Р., Хсу Л.
Не заметил на книжке Мураха плашки THE EXPERT’S VOICE® IN ORACLE. Не внушает поэтому доверия.
Книга Молинаро и Граафа хорошая, но не для очень свежих версий СУБД. В ДБ2 и Оракел, например, для получения TOP N значений, завезли fetch first N rows only.
Думаю, что новичок не будет сразу работать с несколькими СУБД, поэтому стоит брать книжку по конкретному диалекту SQL. Для T-SQL, например, книжки Ицика Бен-Гана, для Оракела - Kim Berg Hansen, говорят, неплохую книгу написал Practical Oracle SQL.
Добрый день! Спасибо за подборку. Можете порекомендовать литературу по оптимизации запросов?
Здравствуйте! Некоторое значение имеет то, с какой СУБД вы работаете. В любом случае, блоки по оптимизации есть в следующих книгах:
→ Маpтин Грубеp «Понимание SQL»
→ Стефан Фаро, Паскаль Лерми «Рефакторинг SQL-приложений»
→ К. Дж. Дейт «SQL и реляционная теория. Как грамотно писать код на SQL»
А что бы почитать про построение ETL систем? Чтоб не только базовый синтаксис SQL команд, а с упором на часто встречающиеся паттерны при необходимости синхронизировать данные между несколькими системами, включая историю изменений.
SQL - это язык запросов, ETL только на нём реализовать почти нельзя, нужно использовать как минимум процедурное расширение. Т.е. хранимый код.
ETL-решения только на хранимом коде, полагаю, уже легаси. Как минимум, это не стильно-молодёжно. Ну и CDC ("при необходимости синхронизировать данные между несколькими системами, включая историю изменений") - это не про SQL.
Что почитать?
Пообщаться сначала с етл-специалистами на рабочем месте, чтобы узнать точку входа для етл. И потом читать хранимый код. Вангую, это будет pl/sql.
Кимбала читать, что же еще. Не стареющая классика:
https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/
Статья — откровенная халтура. Случайная подборка первых попавшихся в гугле книжек. Первые три книги про SQL, пятая про отдельный диалект этого языка, а четвертая, внезапно, вообще не про SQL, который сиротливо ютится в последнем разделе. Две последние, внезапно, на английском, хотя по обоим диалектам и переводных изданий как дампов памяти за баней.
Фу такую халтуру публиковать и плюсовать.
Я понимаю, что отделу маркетинга надо продвигать блог на Хабре. Но читателям Хабра-то это зачем?
Очень слабым оправданием такой статьи может служить обсуждение под ней, где можно найти действительно полезные рекомендации. Но непонятно, какое отношение к ней имеет компания Селектел. Платите тогда деньги тем, кто комментирует, а не халтурщикам-копирайтерам.
От себя порекомендую Реляционные базы данных в примерах Святослава Куликова. Там в первую очередь не про язык, а про устройство баз данных, но это как раз очень важно знать, чтобы писать нормальный SQL, а не как обычно.
Две последние, внезапно, на английском, хотя по обоим диалектам и переводных изданий как дампов памяти за баней.
Это не совсем так. Издания на русском есть, но по не очень свежим версиям. Для того же SQL Server - хорошая емнип книга Ицик Бен-Ган, Диджан Сарка, Рон Талмейдж - Microsoft SQL Server 2012. Создание запросов. Но версия сам видишь какая. По оракельному sql книжки на русском в лучшем случае на версии 11g и немножко захватывают 12c. Мне на ум ничего, кроме Джейсон Прайс - Oracle DB 11g. Операторы SQL и программы PL/SQL на ум не приходит.
Другое дело, что автор, который сразу по двум зачастую перпендикулярным субд книжки пишет, не очень внушает доверие.
P.S. По диалекту для PostgreSQL кроме вышеупомянутой книги Моргунова на русском что-то и не припомню ничего, собирать понемножку из книг по PostgreSQL вообще.
Тоже заметил что подборка откровенно слабая, реально как будто случайно выбрали книги.
Мне в своё время очень помогла книга "Крис Фиайли - SQL (Quick Start)", очень ёмко многие вещи описаны, без лишней воды.
Напомните, пожалуйста, название книги. Там описываются общие принципы построения архитектуры данных в базе - начинается все с вопросов нормализации и индексов, а дальше я не прочитал.
Из новенького, мне в свое время помогли взглянуть с другой стороны на кишки MySQL следующие две книги, от Daniel Nichter особенно понравилась:
High Performance MySQL: Proven Strategies for Operating at Scale, 4th Edition (2021) Автор: Silvia Botros
Efficient MySQL Performance: Best Practices and Techniques (2021) Автор: Daniel Nichter
еще книги по теме тут https://www.pdfdrive.com/murachs-oracle-sql-and-plsql-for-developers-d175343155.html
Новичкам лучше не SQL (а тем более какой-либо "вендорский" диалект), а общие вещи по РБД. Т.е. К.Дейт "Введение в системы баз данных" или Дж.Ульман "Основы систем баз данных" (издание довольно старое и в бумажном виде его по-моему не купить, но в онлайне найти можно). У Дейта книга побольше по объему и более академичная, у Ульмана поменьше и более "прикладная".
Я для этих целей рекомендую Реляционные базы данных в примерах Святослава Куликова — она бесплатная и очень толковая.
Да ладно. Представь, пришёл джава-разработчик на рабочее место и выясняется, что весьма обширный пласт бизнес-логики реализован на PL/SQL(пример с предыдущего места работы). А до этого он select, update, insert писал, а про merge, например, или динамический sql - не знал. Как ему Дейт поможет в работе? Уверен, около никак. Потому что нужно читать и изменять конкретный код, а не "общие вещи по РБД".
Изучать sql лучше всего с книги "понимание sql" , Мартина Грубера - это мастхэв. Книга написана не очень легко для понимания, однако, в этой книге нет ни одного лишнего слова, нужно конкретно вчитываться. Совет как изучать с помощью этой книги: не больше одной главы в день, читаете по 3-5 раз эту главу, осмысляете.
Выбор "Сборник рецептов" Энтони Молинаро одобряю, это хорошая книга, но она должна идти после прочтения и изучения книги Грубера.
Далее, если вас интересует MS SQL, то рекомендую прочитать книгу "Программирование баз данных" Роберта Виейра. Эта книга позволит конкретно углубиться в SQL и разобраться как оно все под капотом. Интересно что было несколько изданий этой книги существенно не отличающихся и назывались они одинаково, только сначала добавлялась фраза "для начинающих", а потом "для профессионалов"))))
Все приведенные мной книги есть на русском языке в свободном доступе (гугл в помощь). Вас не должен смущать факт, что они написаны для старых баз данных, т.к. все что там написано работает и сейчас и будет работать благодаря стандарту ANSI. Вы так же должны понимать, что скорее всего столкнетесь с старыми базами данных, которые до сих пор в строю и отлично работают.
плюсую к мнениям, что иногда бывает нужно прям по конкретным продуктам глубокая информация. в этом ключе у mysql всегда была хорошая документация. лично мне очень помог официальный мануал по mysql 8, когда он только вышел и материалов для разработчиков было мало.
https://dev.mysql.com/doc/
Книги по SQL: что почитать новичкам и специалистам