Библиотека программиста - Карвин Билл - Антипаттерны SQL. Как избежать ловушек при работе с базами данных [2024, PDF, RUS]

Reply to topic
DL-List and Torrent activity
Size:  6 MB   |    Registered:  8 months 11 days   |    Completed:  5 times

Seeder not seen: 17 hours

 
   
 
 
Author Message

Microsoft SQL Server ®

Gender: Male

Longevity: 9 years

Posts: 677

Post 13-Jun-2024 12:05

[Quote]

Антипаттерны SQL. Как избежать ловушек при работе с базами данных
Год издания: 2024
Автор: Карвин Билл
Издательство: Питер
ISBN: 978-5-4461-2178-6
Серия: Библиотека программиста
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 368
Описание: Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов, — решений, которые на первый взгляд кажутся правильными, но со временем создают всё больше проблем. Научитесь выявлять и обходить многие из этих распространенных ловушек! Проведите рефакторинг унаследованного кошмара и превратите его в жизнеспособную модель данных! Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.

Примеры страниц (скриншоты)

Оглавление

БЛАГОДАРНОСТИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
ВВЕДЕНИЕ . 18
О НАУЧНОМ РЕДАКТОРЕ РУССКОГО ИЗДАНИЯ . 22
ОТ ИЗДАТЕЛЬСТВА . 22
ГЛАВА 1. ЧТО ТАКОЕ АНТИПАТТЕРН? . 23ЧАСТЬ I
АНТИПАТТЕРНЫ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ
ГЛАВА 2. КРИВАЯ ДОРОЖКА . 30
ГЛАВА 3. НАИВНОЕ ПРИМЕНЕНИЕ ДЕРЕВЬЕВ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ГЛАВА 4. ОБЯЗАТЕЛЬНЫЙ ID . 64
ГЛАВА 5. СУЩНОСТЬ БЕЗ КЛЮЧА . 77
ГЛАВА 6. СУЩНОСТЬ — АТРИБУТ — ЗНАЧЕНИЕ . 86
ГЛАВА 7. ПОЛИМОРФНАЯ СВЯЗЬ . 103
ГЛАВА 8. МНОГОСТОЛБЦОВЫЕ АТРИБУТЫ . 116
ГЛАВА 9. «ТРИББЛЫ» МЕТАДАННЫХ . 125ЧАСТЬ II
АНТИПАТТЕРНЫ ФИЗИЧЕСКОГО ПРОЕКТИРОВАНИЯ
БАЗ ДАННЫХ
ГЛАВА 10. ОШИБКИ ОКРУГЛЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
ГЛАВА 11. 31 ВКУС . 146
ГЛАВА 12. ФАНТОМНЫЕ ФАЙЛЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
ГЛАВА 13. ИНДЕКСНЫЙ ДРОБОВИК . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6
Краткое содержание ЧАСТЬ III
АНТИПАТТЕРНЫ ЗАПРОСОВ
ГЛАВА 14. СТРАХ НЕИЗВЕСТНОГО . 182
ГЛАВА 15. НЕОДНОЗНАЧНЫЕ ГРУППЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..................................................194
ГЛАВА 16. СЛУЧАЙНЫЙ ВЫБОР . 207
ГЛАВА 17. ПОИСКОВАЯ СИСТЕМА ДЛЯ БЕДНЫХ . 216
ГЛАВА 18. СПАГЕТТИ-ЗАПРОСЫ . 230
ГЛАВА 19. НЕЯВНЫЕ СТОЛБЦЫ . 241ЧАСТЬ IV
АНТИПАТТЕРНЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ
ГЛАВА 20. НЕЗАЩИЩЕННЫЕ ПАРОЛИ . 250
ГЛАВА 21. SQL-ИНЪЕКЦИИ . 265
ГЛАВА 22. ЧИСТКА ПСЕВДОКЛЮЧА . 285
ГЛАВА 23. НЕ ВИЖУ ЗЛА . 294
ГЛАВА 24. ДИПЛОМАТИЧЕСКИЙ ИММУНИТЕТ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........................................303
ГЛАВА 25. СТАНДАРТНЫЕ РАБОЧИЕ ПРОЦЕДУРЫ . 317ЧАСТЬ V
ДОПОЛНЕНИЕ: МИНИ-АНТИПАТТЕРНЫ
ВНЕШНИХ КЛЮЧЕЙ
ГЛАВА 26. ОШИБКИ ВНЕШНИХ КЛЮЧЕЙ В СТАНДАРТНОМ SQL . 330
ГЛАВА 27. ОШИБКИ ВНЕШНИХ КЛЮЧЕЙ В MYSQL . 343
ПРИЛОЖЕНИЕ. ПРАВИЛА НОРМАЛИЗАЦИИ . 351
БИБЛИОГРАФИЯ . 366
О
главление
Отзывы о книге «Антипаттерны SQL» . 14
БЛАГОДАРНОСТИ . 17
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
О втором издании . 19
Для кого эта книга . 19
О книге . 20
Условные обозначения . 20
Онлайн-ресурсы . 21
О НАУЧНОМ РЕДАКТОРЕ РУССКОГО ИЗДАНИЯ . 22
ОТ ИЗДАТЕЛЬСТВА . 22
ГЛАВА 1. ЧТО ТАКОЕ АНТИПАТТЕРН? . 23
Типы антипаттернов . 23
Анатомия антипаттерна . 24
Диаграммы «объект — отношение» . 25
Пример базы данных . 26ЧАСТЬ I
АНТИПАТТЕРНЫ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ
БАЗ ДАННЫХ
ГЛАВА 2. КРИВАЯ ДОРОЖКА 30
Цель: хранение многозначных атрибутов . 31
Антипаттерн: форматирование списка, разделенного запятыми . 31
Как распознать антипаттерн . 35
Решение: создание таблицы пересечений . 36
Мини-антипаттерн: разбиение CSV-данных на строки . 39
8
Оглавление
ГЛАВА 3. НАИВНОЕ ПРИМЕНЕНИЕ ДЕРЕВЬЕВ . 42
Цель: хранение и загрузка иерархий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................................................43
Антипаттерн: постоянная зависимость от родителя . 43
Как распознать антипаттерн . 47
Допустимые применения антипаттерна . 48
Решение: использование альтернативных моделей деревьев . 48
Какое решение использовать? . 60
Мини-антипаттерн: на моем компьютере все работает . 62
ГЛАВА 4. ОБЯЗАТЕЛЬНЫЙ ID 64
Цель: установление соглашений первичного ключа . 65
Антипаттерн: на любой случай жизни . 66
Как распознать антипаттерн . 72
Допустимые применения антипаттерна . 72
Решение: ситуационное . 73
ГЛАВА 5. СУЩНОСТЬ БЕЗ КЛЮЧА 77
Антипаттерн: без ограничений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................................................78
Как распознать антипаттерн . 81
Допустимые применения антипаттерна . 82
Решение: объявление ограничений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..................................................83
ГЛАВА 6. СУЩНОСТЬ — АТРИБУТ — ЗНАЧЕНИЕ . 86
Цель: поддержка переменных атрибутов . 86
Антипаттерн: использование обобщенной таблицы атрибутов . 88
Как распознать антипаттерн . 94
Допустимые применения антипаттерна . 94
Решение: моделирование подтипов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
ГЛАВА 7. ПОЛИМОРФНАЯ СВЯЗЬ . 103
Цель: ссылки на несколько родительских таблиц . 104
Антипаттерн: использование внешнего ключа двойного назначения . 104
Как распознать антипаттерн . 108
Допустимые применения антипаттерна . 109
Решение: упрощение отношений . 109
9
Оглавление
ГЛАВА 8. МНОГОСТОЛБЦОВЫЕ АТРИБУТЫ . 116
Цель: хранение многозначных атрибутов . 116
Антипаттерн: создание нескольких столбцов . 117
Как распознать антипаттерн . 120
Решение: создание зависимой таблицы . 122
Мини-антипаттерн: хранение цен . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...................................................123
ГЛАВА 9. «ТРИББЛЫ» МЕТАДАННЫХ 125
Цель: обеспечение масштабируемости . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Как распознать антипаттерн . 131
Допустимые применения антипаттерна . 132
Решение: партицирование и нормализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133ЧАСТЬ II
АНТИПАТТЕРНЫ ФИЗИЧЕСКОГО ПРОЕКТИРОВАНИЯ
БАЗ ДАННЫХ
ГЛАВА 10. ОШИБКИ ОКРУГЛЕНИЯ 138
Цель: дроби вместо целых чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....................................................139
Антипаттерн: использование типа данных FLOAT . 139
Как распознать антипаттерн . 143
Допустимые применения антипаттерна . 143
Решение: тип данных NUMERIC . 144
ГЛАВА 11. 31 ВКУС . 146
Цель: ограничение столбца конкретными значениями . 146
Антипаттерн: перечисление значений при определении столбца . 147
Как распознать антипаттерн . 151
Допустимые применения антипаттерна . 151
Решение: определение значений в данных . 152
Мини-антипаттерн: зарезервированные слова . 154
ГЛАВА 12. ФАНТОМНЫЕ ФАЙЛЫ 157
Цель: хранение графики или других больших данных . 158
Антипаттерн: а что, если мне нужны файлы . 158
10
Оглавление
Как распознать антипаттерн . 162
Допустимые применения антипаттерна . 162
Решение: использование типа данных BLOB при необходимости . 164
ГЛАВА 13. ИНДЕКСНЫЙ ДРОБОВИК 167
Цель: оптимизация производительности . 168
Антипаттерн: беспорядочное использование индексов . 168
Как распознать антипаттерн . 173
Допустимые применения антипаттерна . 173
Решение: MENTOR . 174
Мини-антипаттерн: индексирование каждого столбца . 180ЧАСТЬ III
АНТИПАТТЕРНЫ ЗАПРОСОВ
ГЛАВА 14. СТРАХ НЕИЗВЕСТНОГО 182
Цель: отделить отсутствующие значения . 183
Антипаттерн: использование NULL в качестве обычного значения и наоборот . 183
Использование NULL в выражениях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................................................183
Как распознать антипаттерн . 186
Допустимые применения антипаттерна . 188
Решение: использование NULL как уникального значения . 188
ГЛАВА 15. НЕОДНОЗНАЧНЫЕ ГРУППЫ 194
Цель: получить строку с наибольшим значением в группе . 195
Антипаттерн: ссылка на столбцы, не входящие в группу . 195
Как распознать антипаттерн . 198
Допустимые применения антипаттерна . 199
Решение: выборка однозначных столбцов . 200
Мини-антипаттерн: портируемый SQL . 205
ГЛАВА 16. СЛУЧАЙНЫЙ ВЫБОР 207
Цель: получить образец строки данных . 207
Антипаттерн: случайная сортировка данных . 208
Как распознать антипаттерн . 209
Допустимые применения антипаттерна . 210
11
Оглавление
Решение: не упорядочивать… . 210
Мини-антипаттерн: запрос нескольких случайных строк . 215
ГЛАВА 17. ПОИСКОВАЯ СИСТЕМА ДЛЯ БЕДНЫХ . 216
Цель: полнотекстовый поиск . 216
Антипаттерн: предикаты сопоставления с шаблонами . 217
Как распознать антипаттерн . 218
Допустимые применения антипаттерна . 218
Решение: правильный выбор инструмента для работы . 219
ГЛАВА 18. СПАГЕТТИ-ЗАПРОСЫ . 230
Цель: сокращение количества запросов SQL . 231
Антипаттерн: решение сложной задачи за один шаг . 231
Как распознать антипаттерн . 234
Допустимые применения антипаттерна . 234
Решение: разделяй и властвуй . 236
ГЛАВА 19. НЕЯВНЫЕ СТОЛБЦЫ . 241
Цель: компактность кода . 242
Нарушение рефакторинга . 243
Как распознать антипаттерн . 245
Допустимые применения антипаттерна . 245
Решение: явное указание столбцов . 246ЧАСТЬ IV
АНТИПАТТЕРНЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ
ГЛАВА 20. НЕЗАЩИЩЕННЫЕ ПАРОЛИ . 250
Цель: восстановление и сброс паролей . 250
Антипаттерн: хранение паролей в текстовом виде . 251
Как распознать антипаттерн . 254
Допустимые применения антипаттерна . 254
Решение: хранение соленого хеш-кода пароля . 255
ГЛАВА 21. SQL-ИНЪЕКЦИИ 265
Цель: написание динамических запросов SQL . 266
Антипаттерн: выполнение непроверенного ввода как кода . 266
12
Оглавление
Как распознать антипаттерн . 274
Допустимые применения антипаттерна . 275
Решение: не доверяйте никому . 275
Мини-антипаттерн: параметры запроса в кавычках . 283
ГЛАВА 22. ЧИСТКА ПСЕВДОКЛЮЧА 285
Цель: очистка данных . 286
Антипаттерн: заполнение пропусков . 286
Как распознать антипаттерн . 288
Допустимые применения антипаттерна . 289
Решение: смириться . 289
Мини-антипаттерн: автоматическое увеличение в группах . 292
ГЛАВА 23. НЕ ВИЖУ ЗЛА . 294
Цель: сокращение объема кода . 295
Антипаттерн: мартышкин труд . 295
Как распознать антипаттерн . 298
Допустимые применения антипаттерна . 298
Решение: корректное восстановление после ошибок . 299
Мини-антипаттерн: чтение сообщений о синтаксических ошибках . 301
ГЛАВА 24. ДИПЛОМАТИЧЕСКИЙ ИММУНИТЕТ . 303
Цель: применение лучших практик . 304
Антипаттерн: второсортный SQL . 304
Как распознать антипаттерн . 305
Допустимые применения антипаттерна . 306
Решение: формирование разносторонней культуры качества . 306
Мини-антипаттерн: переименование . 314
ГЛАВА 25. СТАНДАРТНЫЕ РАБОЧИЕ ПРОЦЕДУРЫ 317
Цель: использование хранимых процедур . 318
Антипаттерн: делай как я . 319
Как распознать антипаттерн . 323
Допустимые применения антипаттерна . 324
Решение: переход на современные архитектуры приложений . 324
Мини-антипаттерн: хранимые процедуры в MySQL . 326
13
ОглавлениеЧАСТЬ V
ДОПОЛНЕНИЕ: МИНИ-АНТИПАТТЕРНЫ
ВНЕШНИХ КЛЮЧЕЙ
ГЛАВА 26. ОШИБКИ ВНЕШНИХ КЛЮЧЕЙ В СТАНДАРТНОМ SQL . 330
Изменение направления ссылок . 330
Ссылки на еще не созданные таблицы . 331
Отсутствие ссылок на ключ родительской таблицы . 333
Создание отдельных ограничений для всех столбцов составного ключа . 334
Неверный порядок столбцов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................................................335
Несоответствие типов данных . 336
Создание осиротевших строк . 338
Применение SET NULL к столбцам, не допускающим NULL . 340
Несовместимые типы таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................................................342
ГЛАВА 27. ОШИБКИ ВНЕШНИХ КЛЮЧЕЙ В MYSQL 343
Использование больших типов данных . 344
Внешние ключи MySQL с неуникальными индексами . 346
Синтаксис ссылок по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....................................................349
Несовместимые типы таблиц в MySQL . 349
ПРИЛОЖЕНИЕ. ПРАВИЛА НОРМАЛИЗАЦИИ . 351
Что значит «реляционный»? . 351
Мифы о нормализации . 354
Что такое нормализация? . 355
Здравый смысл . 365
БИБЛИОГРАФИЯ 366
[solely-soft.top].t197133.torrent
Torrent: Registered [ 2024-06-13 12:05 ] · B0ADE07A4D4C55F9C3D9F52B9E25BAEB4FA3D8FB

9 KB

Status: checked
Completed: 5 times
Size: 6 MB
Rate: 
(Vote: 0)
Have thanked: 1  Thanks   (List)
Библиотека программиста - Карвин Билл - Антипаттерны SQL. Как избежать ловушек при работе с базами данных [2024, PDF, RUS] download torrent for free and without registration
[Profile] [PM]
Forum Topic Author Size
Hardware (books about PCs) "Научно-популярная библиотека школьника" - Л.Н. Буреев, А.Л. Дудко, В.Н. Захаров. - Простейшая микро-ЭВМ. Проектирование. Наладка. Использование. [1989, PDF/DJVU/DOC, RUS] HDD 10 MB
Hacking and security (Библиотека журнала Хакер) - Шалин Павел (Руководитель проекта) - Компьютер глазами хакера [2022, PDF, RUS] Find a password 31 MB
Programming (Библиотека программиста) - Одерски Мартин, Спун Лекс, Веннерс Билл, Соммерс Фрэнк - Scala. Профессиональное программирование, 5-е изд. [2022, PDF, RUS] Programmer 6 MB
Programming 1С:Библиотека разработчика - Хрусталева Е.Ю. - Знакомство с разработкой мобильных приложений на платформе «1С:Предприятие 8». Изд. 3 [2022, PDF, RUS] Programmer 19 MB
CAD (electronics, automation, GAP) 3D Библиотека для DipTrace 3.0 x86 x64 [07.03.2016, MULTILANG +RUS] Download Autocad 2.11 GB
Sample Libraries Alex Soft - Afro Drums (Из "Библиотеки композитора") (WAV) Sound Forge 72 MB
Programming environments, compilers and auxiliary programs Borland C++ Builder 4 Enterprise Edition + Библиотеки и Компоненты [1999, ENG] Download Office 646 MB
Programming Cuantum Technologies - Python and SQL Bible / Библия Python и SQL [2023, PDF/EPUB, ENG] Programmer 32 MB
Display posts:    
Reply to topic

Current time is: 24-Feb 14:21

All times are UTC + 2



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum