SQL полное руководство

Книги помогут освоить язык SQL.

Учебное пособие.

Грофф, Джеймс Р., Вайнберг, Пол Н., Оппель, Эндрю Дж. «SQL: полное руководство» Вильямс, 2015 год, 960 стр. 3-е изд. (27,5 мб. pdf)

В книге детально и исчерпывающе описан язык SQL (structured query language — язык структурированных запросов). Рассмотрены основные аспекты и возможности SQL и применение его на практике, при работе с базами данных. Рассказано о истории развития языка и о роли, которую играет SQL в построении реляционных баз данных. Описана структура и синтаксис языка SQL с примерами построения, как простых так и сложных запросов. Кроме того рассказано, как с помощью SQL создавать, изменять и настраивать структуру различных реляционных СУБД, модифицировать таблицы, в полном объеме использовать API, работать с XML, работать с объектно ориентированными базами данных, с использованием динамического SQL, ODBC, JDBC, а также рассмотрены вопросы архитектуры серверов приложений. Книга поможет пройти полный курс обучения программирования на языке SQL.
ISBN 978-5-8459-1654-9 (рус.)

Оглавление книги

ЧАСТЬ 1. Обзор SQL 27
Глава 1. Введение 29
Язык SQL 30
Poль SQL 32
Преимущества SQL 34
Независимость от конкретных СУБД 35
Межплатформенная переносимость 35
Стандарты языка SQL 35
Поддержка со стороны IВМ 36
Поддержка со стороны Microsoft 36
Основанность на реляционной модели 36
Высокоуровневая структура, напоминающая естесгвенный язык 37
Интерактивные запросы 37
Программный доступ к базе данных 37
Различные представления данных 37
Полноценный язык для работы с базами данных 37
Динамическое определение данных 38
Архитектура «клиент/ сервер» 38
Поддержка приложений уровня предприятия 38
Расширяемость и поддержка объектно-ориентированных технологий 39
Возможность доступа к данным в Интернете 39
Интеграция с языком Java (протокол JDBC) 39
Поддержка открытого кода 40
Промышленная инфраструктура 40

Глава 2. Краткий обзор SQL 41
Простая база данных 41
Выборка данных 42
Пол учение итоговых данных 44
Добавление данных 45
Удаление данных 46
Обновление данных 46
Защита данных 46
Создание базы данных 48
Резюме

Глава 3. Перспективы SQL 49
SQL и эволюция управления базами данных 49
Краткая история SQL 49
Первые годы 50
Первые реляционные СУБД 52
Продукты IВМ 52
Коммерческое признание 53
Стандарты SQL 54
Стандарты ANSl/150 56
Другие ранние стандарты SQL 56
ODBC и консорциум SQL Access Group 59
JDBC и серверы приложений 59
SQL и переносимость 60
SQL и сети 61
Централизованная архитектура 63
Архитектура файлового сервера 63
Архитектура «клиент/ сервер» 64
Многоуровневая архитектура 64
Влияние SQL 66
SQL и мэйнфреймы 67
SQL и мини-компьютеры 68
SQL и UNIX 68
SQL и персональные компьютеры 68
SQL и обработка транзакций 68
SQL и базы данных для рабочих групп 69
SQL, хранилища данных и интеллектуальные ресурсы предприятия 70
SQL и интернет-приложения 71
Резюме 72

Глава 4. Реляционные базы данных 74
Ранние модели данных 75
Системы управления файлами 77
Иерархические базы данных 77
Сетевые базы данных 77
Реляционная модель данных 79
Учебная база данных 81
Таблицы 83
Первичные ключи 84
Взаимоотношения 85
Внешние ключи 86
Двенадцать правил Кома для реляционных баз данных 90
Резюме 93

ЧАСТЬ II. Выборка данных 95

Глава 5. Основы SQL 97
Инструкции 97
Имена 103
Имена таблиц 104
Имена столбцов 105
Типы данных 105
Константы 111
Числовые константы 111
Строковые константы 112
Константы даты и времени 112
Символьные константы 113
Выражения 114
Встроенные функции 115
Отсутствующие данные (значения NULL) 117
Резюме 118

Глава 6. Простые запросы 119
Инструкция SELECT 119
Предложение SELECT 121
Предложение FROM 122
Результаты запроса 122
Простые запросы 125
Вычисляемые столбцы 125
Выборка всех столбцов (SELECT *) 128
Повторяющиеся строки (DISТINCT) 129
Отбор строк (WHERE) 130
Условия отбора 132
Сравнение (=, <>, <, <=, >, >=) 132
Проверка на принадлежность диапазону (BETWEEN) 135
Проверка наличия во множестве (IN) 137
Проверка на соответствие шаблону (LIKE) 139
Проверка на равенство NULL (IS NULL) 141
Составные условия отбора (AND, OR и NOT} 142
Сортировка результатов запроса (ORDER ВУ) 145
Правила выполнения однотабличных запросов 148
Объединение результатов нескольких запросов (UNION) 149
Объединение и повторяющиеся строки 151
Объединение и сортировка 152
Вложенные объединения 152
Резюме 154

Глава 7. Многотабличные запросы (соединения) 155
Пример двухтабличного запроса 155
Простое соединение таблиц 158
Запросы с использованием отношения «предок-потомок» 159
Еще один способ определения соединений 161
Соединения с условиями отбора строк 162
Несколько связанных столбцов 163
Естественные соединения 164
Запросы к трем и более таблицам 165
Прочие соединения по равенству 168
Соединение по неравенству 170
Особенности многотабличных запросов 171
Квалифицированные имена столбцов 171
Выборка всех столбцов 173
Самосоединения 173
Псевдонимы таблиц 176
Производительность при обработке многотабличных запросов 177
Внутренняя структура соединения таблиц 179
Умножение таблиц 179
Правила выполнения многотабличных запросов на выборку 180
Внешние соединения 182
Левое и правое внешние соединения 185
Старая запись внешнего соединения 188
Соединения и стандарт SQL 190
Внутренние соединения в стандарте SQL 191
Внешние соединения в стандарте SQL 192
Перекрестные соединения в стандарте SQL 193
Многотабличные соединения в стандарте SQL 196
Резюме 203

Глава 8. Итоговые запросы 204
Агрегирующие функции 204
Вычисление суммы значений столбца 206
Вычисление среднего значений столбца 207
Вычисление предельных значений 208
Подсчет количества данных 209
Статистические функции в списке возвращаемых столбцов 210
Статистические функции и значения NULL 213
Удаление повторяющихся строк (DISТINCT) 215
Запросы с группировкой (GROUP ВУ) 215
Несколько столбцов группировки 219
Ограничения на запросы с группировкой 221
Значения NULL в столбцах группировки 223
Условия отбора групп (HAVING) 224
Ограничения на условия отбора групп 227
Значения NULL и условия отбора групп 228
Предложение НА VING без GROUP ВУ 228
Резюме 229

Глава 9. Подзапросы и выражения с запросами 230
Применение подзапросов 230
Что такое подзапрос 231
Подзапросы в предложении WHERE 233
Внешние ссылки 235
Условия отбора в подзапросе 235
Сравнение с результатом подзапроса (=, <>, <, <=, >, >=) 236
Проверка на принадлежность результатам подзапроса (IN) 238
Проверка существования (EXISTS) 239
Многократное сравнение (предикаты ANY и ALL) 242
Подзапросы и соединения 246
Вложенные подзапросы 248
Коррелированные подзапросы 249
Подзапросы в предложении HAVING 252
Резюме по подзапросам 254
Сложные запросы 255
Выражения со скалярными значениями 257
Выражения со строками таблиц 263
Табличные выражения 266
Выражения запросов 270
Резюме по SQL-запросам 273

ЧАСТЬ III. Обновление данных 274

Глава 10. Внесение изменений в базу данных 276
Добавление новых данных 277
Однострочная инструкция INSERT 277
Многострочная инструкция INSERT 281
Программы пакетной загрузки 284
Удаление существующих данных 285
Инструкция DELETE 285
Удаление всех строк 287
Инструкция DELETE с подзапросом 287
Обновление существующих данных 289
Инструкция UPDAТЕ 289
Обновление всех строк 292
Инструкция UPDATE с подзапросом 292
Резюме 293

Глава 11. Целостность данных 294
Условия целостности данных 294
Обязательность данных 296
Условия на значения 297
Ограничения на значения столбца 298
Домены 299
Целостность таблицы 300
Прочие условия уникальности столбцов 301
Уникальность и значения NULL 301
Ссылочная целостность 302
Проблемы, связанные со ссылочной целостностью 304
Правила удаления и обновления 306
Каскадные удаления и обновления 310
Ссылочные циклы 313
Внешние ключи и значения NULL 316
Расширенные возможности ограничений 318
Утверждения 319
Типы ограничений SQL 320
Отложенная проверка ограничений 321
Бизнес-правила 324
Что такое триггер 325
Триггеры и ссылочная целостность 327
Преимущества и недостатки триггеров 328
Триггеры и стандарты SQL 329
Резюме 329

Глава 12. Обработка транзакций 332
Что такое транзакция 332
Модель транзакции ANSI/ISO SQL 335
Инструкции START TRANSACTION и SET TRANSACТION 336
Инструкции SAVEPOINТ и RELEASE SAVEPOINТ 337
Инструкции СОММIТ и ROLLBACK 338
Транзакции: что за сценой 340
Транзакции и работа в многопользовательском режиме 342
Проблема пропавшего обновления 342
Проблема промежуточных данных 343
Проблема несогласованных данных 345
Проблема строк-призраков 346
Параллельные транзакции 347
Блокировка 349
Уровни блокировки 350
Блокировка с обеспечением совместного доступа и исключающая блокировка 352
Усовершенствованные методы блокировки 355
Управление версиями 360
Управление версиями в действии 361
Преимущества и недостатки управления версиями 364
Резюме 365

ЧАСТЬ IV. Структура базы данных 368

Глава 13. Создание базы данных 369
Язык определения данных 369
Создание базы данных 371
Определения таблиц 372
Создание таблицы (CREAТЕ ТABLE) 373
Удаление таблицы (DROP ТABLE) 383
Изменение определения таблицы (ALTER ТABLE) 384
Определения ограничений 387
Утверждения 388
Домены 388
Псевдонимы, или синонимы (CREATE/DROP ALIAS) 389
Индексы (CREATE/DROP INDEX) 391
Управление другими объектами базы данных 395
Структура базы данных 398
Архитектура с одной базой данных 399
Архитектура с несколькими базами данных 400
Архитектура с каталогами 402
Базы данных на нескольких серверах 404
Структура базы данных и стандарт ANSI/ISO 404
Каталоги 407
Схемы 407
Резюме 411

Глава 14. Представления 413
Что такое представление 413
Как СУБД работает с представлениями 415
Преимущества представлений 416
Недостатки представлений 416
Создание представлений (CREAТЕ VIEW) 417
Горизонтальные представления 418
Вертикальные представления 419
Смешанные представления 421
Сгруппированные представления 421
Соединенные представления 423
Обновление представлений 425
Обновление представлений и стандарт ANSl/ISO 426
Обновление представлений в коммерческих СУБД 427
Контроль над обновлением представлений (СНЕС К OPTION) 428
Удаление представления (DROP VIEW) 430
Материализованные представления 431
Резюме 433

Глава 15. SQL и безопасность 435
Принципы защиты данных, применяемые в SQL 435
Идентификаторы пользователей 437
Защищаемые объекты 441
Привилегии 442
Представления и безопасность SQL 445
Предоставление привилегий (GRANT) 448
Привилегии мя работы со столбцами 449
Передача привилегий (GRANT OPТION) 450
Отмена привилегий (REVOKE) 452
REVOKE и GRANТ OPТIONS 455
REVOKE и стандарт ANSl/ISO 457
Безопасность на основе ролей 458
Резюме 460

Глава 16. Системный каталог 461
Что такое системный каталог 461
Системный каталог и средства формирования запросов 462
Системный каталог и стандарт ANSI/ISO 463
Содержимое системного каталога 464
Информация о таблицах 465
Информация о столбцах 470
Информация о представлениях 473
Примечания 475
Информация об отношениях между таблицами 476
Информация о пользователях 478
Информация о привилегиях 480
Информаци·онная схема SQL 481
Прочая информация каталога 488
Резюме 488

ЧАСТЬ V. Программирование и SQL 491

Глава 17. Встроенный SQL 493
Методы программного SQL 493
Обработка инструкций в СУБД 495
Основные концепции встроенного SQL 497
Разработка программы со встроенным SQL 499
Выполнение программы со встроенным SQL 502
Простые инструкции встроенного SQL 504
Объявления таблиц 507
Обработка ошибок 507
Использование базовых переменных 515
Выборка данных с помощью встроенного SQL 521
Запросы, возвращающие одну запись 522
Многострочные запросы 528
Удаление и обновление данных на основе курсоров 536
Курсоры и обработка транзакций 540
Резюме 542

Глава 18. Динамический SQL 543
Недостатки статического SQL 543
Концепции динамического SQL 545
Динамическое выполнение инструкций (EXECUTE IMMEDIAТЕ) 547
Динамическое выполнение в два этапа 549
Инструкция PREPARE 552
Инструкция EXECUTE 553
Динамические запросы 560
Инструкция DESCRIВE 565
Инструкция DECLARE CURSOR 567
Динамическая инструкция OPEN 568
Динамическая инструкция FETCH 570
Динамическая инструкция CLOSE 571
Диалекты динамического SQL 572
Динамический SQL в Oracle 572
Динамический SQL и стандарт SQL 576
Базовые динамические инструкции SQL 577
Стандартная SQLDA 579
Стандарт SQL и динамические запросы на выборку 584
Резюме 588

Глава 19. SQL API 591
Концепции API 592
dЫib API (SQL Server) 594
Основы работы с SQL Server 595
Запросы на выборку в SQL Server 602
Позиционные обновления 609
Динамические запросы на выборку 610
ODBC API и стандарт SQL/CLI 617
Стандартизация CLI 617
Структуры CLI 622
Обработка инструкций в CLI 626
Ошибки CLI и диагностическая информация 644
Атрибуты CLI 646
Информационные функции CLI 647
ODBC API 648
Структура ODBC 649
ODBC и независимость от СУБД 650
Функции ODBC для работы с системными каталогами 651
Расширенные возможности ODBC 652
Oracle Call Interface (OCI) 656
Дескрипторы OCI 657
Подключение к серверу Oracle 659
Выполнение инструкций 660
Обработка результатов запроса 661
Управление описателями 661
Управление транзакциями 661
Обработка ошибок 662
Получение информации из системного каталога 662
Работа с большими объектами 662
Java Database Connectivity (JDBC) 663
История и версии JDBC 664
Реализация JDBC и типы драйверов 665
JDBC API 669
Базовая обработка инструкций в JDBC 671
Обработка простых запросов 673
Использование подготовленных инструкций в JDBC 676
Использование вызываемых инструкций в JDBC 678
Обработка ошибок в JDBC 681
Курсоры произвольного доступа в JDBC 682
Получение метаданных в JDBC 683
Расширенные возможности JDBC 685
Резюме 686

ЧАСТЬ VI. SQL сегодня и завтра 687

Глава 20. Хранимые процедуры SQL 689
Концепции хранимых процедур 690
Простейший пример 692
Использование хранимых процедур 693
Создание хранимой процедуры 694
Вызов хранимой процедуры 696
Переменные хранимых процедур 697
Блоки инструкций 700
Функции 701
Возврат значений через параметры 703
Условное выполнение 705
Циклы 707
Другие управляющие конструкции 709
Циклы с курсорами 710
Обработка ошибок 713
Преимущества хранимых процедур 715
Производительность хранимых процедур 716
Системные хранимые процедуры 717
Внешние хранимые процедуры 718
Триггеры 719
Преимущества и недостатки триггеров 720
Триггеры в диалекте Transact-SQL 720
Триггеры в диалекте Informix 722
Триггеры в диалекте Oracle PL/SQL 724
Дополнительные вопросы, связанные с использованием триггеров 726
Хранимые процедуры и стандарт SQL 726
Стандарт SQL/PSM для хранимых процедур 727
Стандарт SQL/PSM для триггеров 736
Резюме 737

Глава 21. SQL и хранилища данных 739
Концепции хранилищ данных 740
Компоненты хранилища данных 742
Эволюция хранилищ данных 743
Архитектура баз данных для хранилищ 744
Кубы фактов 744
Схема звезды 746
Многоуровневые измерения 748
Расширения SQL для хранилищ данных 750
Производительность хранилищ данных 751
Скорость загрузки данных 751
Производительность запросов 753
Резюме 754

Глава 22. SQL и серверы приложений 757
SQL и веб-сайты: ранние реализации 757
Серверы приложений и трехуровневые архитектуры веб-сайтов 759
Доступ серверов приложений к базам данных 761
Типы EJB 762
Доступ к базе данных со стороны session bean 763
Доступ к базе данных со стороны entity bean 766
Усовершенствования EJB 2.0 770
Усовершенствования EJB 3.0 771
Разработка приложений с открытым кодом 773
Серверы приложений и кеширование 773
Резюме 776

Глава 23. Сети и распределенные базы данных 779
Проблемы управления распределенными данными 780
Практические подходы к управлению распределенными базами данных 785
Доступ к удаленным базам данных 786
Прозрачность доступа к удаленным данным 789
Дублирование таблиц 791
Репликация таблиц 793
Двунаправленная репликация 795
Затраты на репликацию 797
Типичные схемы репликации 798
Доступ к распределенным базам данных 801
Удаленные запросы 802
Удаленные транзакции 803
Распределенные транзакции 804
Распределенные запросы 805
Протокол двухфазного завершения транзакций 807
Сетевые приложения и архитектура баз данных 810
Приложения «клиент/ сервер» и архитектура баз данных 811
Приложения «клиент/сервер» с хранимыми процедурами 812
Корпоративные приложения и кеширование данных 813
Управление базами данных в Интернете 815
Резюме 817

Глава 24. SQL и объекты 819
Объектно-ориентированные базы данных 820
Характеристики объектно-ориентированной базы данных 820
«Плюсы» и «минусы» объектно-ориентированных баз данных 822
Влияние объектных технологий на рынок баз данных 823
Объектно-реляционные базы данных 824
Поддержка больших объектов 825
Большие объекты в реляционной модели 826
Специализированная обработка больших объектов 827
Абстрактные (структурированные) типы данных 830
Определение абстрактных типов данных 832
Использование абстрактных типов данных 834
Наследование 835
Табличное наследование: реализация классов 837
Множества, массивы и коллекции 840
Определение коллекций 841
Коллекции и запросы на выборку 845
Работа с коллекциями данных 846
Коллекции и хранимые процедуры 847
Пользовательские типы данных 849
Методы и хранимые процедуры 850
Помержка объектов в стандарте SQL 853
Резюме 854

Глава 25. SQL и XML 855
Что такое XML 855
Азы ХМL 857
XML для данных 859
XML иSQL 860
Элементы и атрибуты 862
Использование XML с базами данных 864
Вывод ХМL 865
Ввод ХМL 869
Обмен ХМL -данными 871
Хранение и интеграция ХМL -данных 871
XML и метаданные 876
DTD 877
XML Schema 879
XML и запросы 885
Концепции XQuery 886
Обработка запросов в XQuery 888
Базы данных на основе XML 890
Резюме 891

Глава 26. Специализированные базы данных 893
Низкие задержки и базы данных в памяти 893
Анатомия баз данных в памяти 895
Реализация баз данных в памяти 897
Кеширование с базами данных в памяти 897
Сложные базы данных для обработки событий
и потоковые базы данных 898
Непрерывные запросы в потоковых базах данных 900
Реализации потоковых баз данных 901
Компоненты потоковых баз данных 901
Встраиваемые базы данных 903
Характеристики встраиваемых баз данных 903
Реализации встраиваемых баз данных 904
Мобильные базы данных 904
Роли мобильных баз данных 905
Реализации мобильных баз данных 905
Резюме 906

Глава 27. Будущее SQL 907
Тенденции на рынке баз данных 908
Насыщение рынка корпоративных баз данных 908
Сегментация рынка СУБД 909
Пакеты корпоративных приложений 910
Программное обеспечение в виде служб 911
Повышение производительности аппаратного обеспечения 912
Специализированные серверы баз данных 913
Стандартизация SQL 914
SQL в следующем десятилетии 915
Распределенные базы данных 915
Массивные хранилища данных для оптимизации бизнеса 916
Сверхпроизводительные базы данных 916
Интеграция Интернета и сетевых служб 917
Встраиваемые базы данных 918
Интеграция с объектно-ориентированными технологиями 919
Горизонтально масштабируемые базы данных 920
Резюме 921

ЧАСТЬ Vll. Приложения 923
Приложение А. Учебная база данных 925
Приложение Б. Производители СУБД 931
Приложение В. Синтаксис SQL 945
Инструкции DDL 946
Инструкции управления доступом 947
Основные инструкции DML 948
Инструкции обработки транзакций 948
Инструкции для работы с курсорами 948
Выражения запросов 949
Условия отбора 951
Выражения 951
Элементы инструкций 952
Простые элементы 952
Предметный указатель 953

Скачать техническую литературу бесплатно27,5 мб. pdf

Как грамотно писать код на SQL

Практические рекомендации.

К. Дж. Дейт «SQL и реляционная теория. Как грамотно писать код на SQL» Символ-Плюс, 2010 год, 480 стр., бестселлеры O’Reilly (14,2 мб. pdf)

Язык SQL получил широкое распространение при работе с реляционными БД. Зачастую при составлении SQL-запросов можно допустить ошибку, что естественно приводит к непоправимым задержкам в разрабатываемых проектах. Понимание теоретических основ SQL, и грамотное использование их на практике – лучшая гарантия безопасности и сопровождаемости программного кода. В представленной книге, автор показывает, как применять реляционную теорию в разработках с использованием SQL. Рассмотрены различные моменты реляционной модели, приводятся многочисленные практические примеры, и даются рекомендации использования языка SQL. Издание адресовано программистам использующим в повседневной практике разработки язык SQL. ISBN 978-5-93286-173-8

Оглавление книги
Глава 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
Приложение D. Дополнительная техническая литература 460
Алфавитный указатель 469

Скачать техническую литературу бесплатно14,2 мб. pdf

Похожая литература