SQL и реляционная теория. Как грамотно писать код на SQL
#777 Год: 2010 Автор: К. Дж. Дейт Переводчик: А. Слинкин Издательство: Символ-плюс ISBN: 978-5-93286-173-8 Язык: Русский Формат: PDF Качество: Изначально компьютерное (eBook) Интерактивное оглавление: Да Количество страниц: 474 Описание: Язык SQL распространен повсеместно. Но работать с ним непросто: он сложен, запутан, при написании SQL-команд легко допустить ошибку. Понимание теории, лежащей в основе SQL, – лучший способ гарантировать, что ваш код бу- дет написан правильно, а сама база данных надежна и легко сопровождаема. В предлагаемой книге К. Дж. Дейт – признанный эксперт, начавший зани- маться этими вопросами еще в 1970 году, – демонстрирует, как применить ре- ляционную теорию к повседневной практике работы с SQL. Автор подробно объясняет различные аспекты этой модели, рассуждает и доказывает, приво- дит многочисленные примеры использования этого языка в соответствии с ре- ляционной теорией. Не будучи привязанным ни к какому конкретному продукту, издание опира- ется на многолетний опыт исследований и представляет наиболее актуальное на сегодняшний день изложение материала. Всякий, имеющий хоть какой-то опыт использования SQL – от скромного до весьма обширного, – получит от прочтения этой книги немалую пользу и удовольствие.
Предисловие................................................................................13 Глава 1. Введение.........................................................................21 Реляционная модель очень плохо понята.......................................22 Некоторые замечания о терминологии..........................................23 Принципы, а не продукты...........................................................25 Обзор оригинальной модели........................................................26 Модель и реализация..................................................................35 Свойства отношений...................................................................39 Базовые и производные отношения...............................................42 Отношения и переменные-отношения...........................................44 Значения и переменные..............................................................46 Заключительные замечания........................................................47 Упражнения..............................................................................49 Глава 2. Типы и домены................................................................51 Типы и отношения.....................................................................51 Сравнения на равенство..............................................................52 Атомарность значений данных.....................................................58 Что такое тип?...........................................................................62 Скалярные и нескалярные типы...................................................66 Скалярные типы в SQL................................................................68 Проверка и приведение типов в SQL..............................................70 Схемы упорядочения в SQL.........................................................72 Тип строки и таблицы в SQL........................................................74 Заключительные замечания........................................................76 Упражнения..............................................................................77 Глава 3. Кортежи и отношения, строки и таблицы..........................81 Что такое кортеж?......................................................................81 Следствия из определений...........................................................84 Строки в SQL.............................................................................86 Что такое отношение?.................................................................88 Отношения и их тела..................................................................90 Отношения n-мерны...................................................................91 Сравнение отношений.................................................................92 TABLE_DUM и TABLE_DEE........................................................93 Таблицы в SQL...........................................................................94 Именование столбцов в SQL.........................................................96 Заключительные замечания........................................................98 Упражнения..............................................................................99 Глава 4. Нет дубликатам, нет null-значениям.............................. 101 Чем плохи дубликаты?............................................................. 101 Дубликаты: новые проблемы..................................................... 106 Как избежать дубликатов в SQL................................................. 107 Чем плохи null-значения?......................................................... 109 Как избежать null-значений в SQL.............................................. 113 Замечание о внешнем соединении............................................... 115 Заключительные замечания...................................................... 116 Упражнения............................................................................ 117 Глава 5. Базовые переменные-отношения, базовые таблицы......121 Определения данных................................................................ 122 Обновление – это операция над множеством.................................122 Реляционное присваивание....................................................... 125 Принцип присваивания............................................................ 126 Еще о потенциальных ключах.................................................... 127 Еще о внешних ключах............................................................. 130 Переменные-отношения и предикаты......................................... 134 Отношения и типы................................................................... 137 Упражнения............................................................................ 139 Глава 6. SQL и реляционная алгебра I: оригинальные операторы........................................................... 142 Предварительные сведения....................................................... 142 Еще о замкнутости................................................................... 145 Ограничение........................................................................... 149 Проекция................................................................................ 149 Соединение............................................................................. 151 Объединение, пересечение и разность. ........................................ 155 Какие операторы являются примитивными?............................... 157 Пошаговое конструирование выражений..................................... 157 В чем смысл реляционных выражений?...................................... 159 Вычисление табличных выражений в SQL................................... 160 Трансформация выражений...................................................... 161 Зависимость от имен атрибутов.................................................. 165 Упражнения............................................................................ 167 Глава 7. SQL и реляционная алгебра II: дополнительные операции......................................................... 171 Полусоединение и полуразность................................................. 171 Расширение............................................................................ 172 Отношения-образы................................................................... 174 Деление.................................................................................. 177 Агрегатные операторы.............................................................. 179 Еще об отношениях-образах...................................................... 183 Обобщение.............................................................................. 185 Еще об обобщении.................................................................... 190 Группирование и разгруппирование........................................... 191 Запросы «что если».................................................................. 193 А как насчет ORDER BY?.......................................................... 194 Упражнения............................................................................ 195 Глава 8. SQL и ограничения целостности..................................... 200 Ограничения типа.................................................................... 201 Еще об ограничениях типа........................................................ 204 Ограничения типа в SQL............................................................ 205 Ограничения базы данных......................................................... 206 Ограничения базы данных в SQL................................................ 210 Транзакции............................................................................. 211 Почему ограничения базы данных должны проверяться немедленно............................................... 213 Но разве можно не откладывать проверку некоторых ограничений?............................................. 216 Ограничения и предикаты......................................................... 219 Разное.................................................................................... 221 Упражнения............................................................................ 223 Глава 9. SQL и представления...................................................... 228 Представления – это переменные-отношения...............................229 Представления и предикаты...................................................... 233 Операции выборки................................................................... 234 Представления и ограничения................................................... 236 Операции обновления............................................................... 240 Зачем нужны представления?.................................................... 244 Взгляды и снимки.................................................................... 245 Упражнения............................................................................ 247 Глава 10. SQL и формальная логика............................................. 250 Простые и составные высказывания........................................... 251 Простые и составные предикаты. ............................................... 254 Квантификация....................................................................... 256 Реляционное исчисление........................................................... 260 Еще о квантификации.............................................................. 267 Некоторые эквиваленции.......................................................... 274 Заключительные замечания...................................................... 277 Упражнения............................................................................ 278 Глава 11. Использование формальной логики для формулирования SQL-выражений........................................ 281 Некоторые правила трансформации............................................ 282 Пример 1. Логическая импликация............................................ 284 Пример 2. Добавление квантора всеобщности............................... 285 Пример 3. Импликация и квантор всеобщности............................ 286 Пример 4. Коррелированные подзапросы.................................... 288 Пример 5. Именование подвыражений........................................ 290 Пример 6. Еще об именовании подвыражений.............................. 293 Пример 7. Устранение неоднозначности...................................... 294 Пример 8. Использование COUNT.............................................. 296 Пример 9. Запросы с соединением.............................................. 297 Пример 10. Квантор UNIQUE..................................................... 298 Пример 11. Сравнения с ALL или ANY........................................ 299 Пример 12. GROUP BY и HAVING.............................................. 303 Упражнения............................................................................ 304 Глава 12. Различные вопросы, связанные с SQL............................ 306 SELECT *................................................................................ 307 Явные таблицы........................................................................307 Квалификация имен................................................................. 307 Переменные кортежа................................................................ 308 Подзапросы............................................................................. 311 «Потенциально недетерминированные» выражения..................... 314 Пустые множества...................................................................315 БНФ-грамматика табличных выражений SQL.............................. 315 Упражнения............................................................................ 318 Приложение A. Реляционная модель.......................................... 320 Реляционная и другие модели.................................................... 322 Определение реляционной модели.............................................. 325 Цели реляционной модели........................................................ 331 Некоторые принципы баз данных............................................... 331 Что осталось сделать?............................................................... 333 Приложение B. Теория проектирования баз данных.................... 338 Место теории проектирования................................................... 339 Функциональные зависимости и нормальная форма Бойса/Кодда.............................................. 342 Зависимости соединения и пятая нормальная форма..................... 348 Тост за здоровье нормализации.................................................. 357 Ортогональность...................................................................... 361 Некоторые замечания о физическом проектировании.................... 364 Заключительные замечания...................................................... 366 Упражнения............................................................................ 368 Приложение С. Ответы к упражнениям................................ 372 Глава 1................................................................................... 372 Глава 2................................................................................... 379 Глава 3................................................................................... 387 Глава 4................................................................................... 392 Глава 5................................................................................... 398 Глава 6................................................................................... 404 Глава 7................................................................................... 413 Глава 8................................................................................... 424 Глава 9................................................................................... 433 Глава 10.................................................................................. 440 Глава 11.................................................................................. 448 Глава 12.................................................................................. 450 Приложение B......................................................................... 450 Приложение D. Дополнительная литература........................ 460 Алфавитный указатель.............................................................469
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
Ресурс не предоставляет электронные версии произведений, а занимается лишь коллекционированием и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями. Если вы являетесь правообладателем какого-либо представленного материала и не желаете чтобы ссылка на него находилась в нашем каталоге, свяжитесь с нами и мы незамедлительно удалим её. Файлы для обмена на трекере предоставлены пользователями сайта, и администрация не несёт ответственности за их содержание. Просьба не заливать файлы, защищенные авторскими правами, а также файлы нелегального содержания!