sql-bibliya-polzovatelya

Практическое руководство.

Кригель Алекс, Трухнов Борис "SQL. Библия пользователя" Вильямс, 2010 год, 752 стр. ( 13,7 мб. pdf + CD. 70 кб.)

Эта книга - руководство SQL, она может служить для начинающих учебником, а опытными разработчиками может использоваться в качестве справочника. Читая книгу вы изучите синтаксис, операторы, функции, а также важнейшие стандарты SQL. Узнаете о основах реляционных баз данных, освоите взаимодействие с таблицами посредством создания эффективных SQL запросов и узнаете, как правильно и функционально устроить систему безопасности при организации доступа к метаданным.

Книга уникальна тем, что рассказывает о SQL запросах в трех основных СУБД стандартах баз данных: Oracle 11g, IBM с DB2 9.5 и Microsoft SQL сервер 2008, что делает её незаменимым справочным руководством для системных администраторов работающих с базами данных.
Это руководство SQL будет полезно студентам, начинающим пользователям и администраторам СУБД которые занимаются программированием на языках SQL и PL/SQL, а также разрабатывают и проектируют СУБД, осуществляя их сопровождение.
ISBN 978-5-8459-1546-7 (рус.)
ISBN 978-0-470-22906-4 (англ.)
Оглавление.

Часть I. Основные концепции SQL 23

Глава 1. SQL и системы управления реляционными базами данных 25
Желательные характеристики базы данных 26
Достаточная емкость 26
Адекватные средства аудита и защиты 26
Многопользовательская среда 26
Эффективность и возможности поиска 26
Масштабируемость 27
Дружественный интерфейс 27
Выбор программного обеспечения баз данных 28
Наполнение рынка 28
Общая стоимость владения 29
Поддержка и присутствие на рынке 29
Основные реализации СУБД 30
Реальные примеры баз данных 31
База данных системы управления заказами 31
База данных медицинского учреждения 32
База данных хранения и редактирования видео 32
Научная база данных 32
База данных общественной организации 33
Устаревшие базы данных 33
Плоские файлы 33
Иерархические базы данных 34
Сетевые базы данных 36
Реляционные базы данных 37
Таблицы 37
Отношения 38
Первичный ключ 38
Внешний ключ 39
Вторжение реляционных СУБД 39
Прочие модели СУБД 40
Краткая история: стандарт SQL 41
Скромное начало: эволюция РСУБД и SQL 41
Краткая история стандартов SQL 43
Резюме 46

Глава 2. Фундаментальные концепции и принципы SQL 47
Цели и результаты 47
Первое знакомство с SQL 51
Получение данных и их отправка 52
Срезы: одни и те же данные под разными углами зрения 54
Консолидация 56
Защита данных 56
Доступ к данным из клиентского приложения 58
Новые разработки 58
Любая платформа, любое время 59
Резюме 61

Глава 3. Типы данных SQL 63
Строки 64
Символьные строки 65
Двоичные строки 71
Числа 73
Точные числа 73
Приблизительные числа 76
Типы данных даты и времени 77
Введение в сложные типы данных 78
Реализации форматов даты и времени 78
Тип данных XML 84
Реализации типа данных XML 84
Конструируемые и пользовательские типы данных 85
SQL:2003 85
Oracle 11g 87
DB2 9.5 89
Microsoft SQL Server 2008 90
Прочие типы данных 91
BOOLEAN 91
ROWID 92
UROWID 92
BFILE 92
DATALINK 92
BIT 92
TIMESTAMP 92
SQL_VARIANT 92
NULL 93
Резюме 93

Часть II. Создание и модификация объектов базы данных 95

Глава 4. Создание объектов СУБД 97
Таблицы 97
Инструкция CREATE TABLE 98
Индексы 123
Инструкция CREATE INDEX 125
Представления 129
Инструкция CREATE VIEW 129
Создание сложных представлений 134
Псевдонимы и синонимы 136
SQL:2003 138
Инструкция Oracle 11g CREATE SYNONYM 138
Инструкция DB2 9.5 CREATE ALIAS 139
Инструкция Microsoft SQL Server 2008 CREATE SYNONYM 140
Схемы 140
Инструкция CREATE SCHEMA 140
Последовательности 144
Внешние генераторы последовательностей в SQL:2003 144
Последовательности в Oracle 11g 145
DB2 9.5 147
Прочие объекты, специфичные для SQL:2003 и отдельных реализаций 149
Домены (SQL:2003) 149
Наборы символов (SQL:2003) 149
Сопоставления (SQL:2003) 149
Пространства таблиц и файловые группы 150
Материализованные представления 152
Связи базы данных (Oracle 11g) 154
Каталоги (Oracle 11g) 155
Сводка по инструкции CREATE 155
Резюме 157

Глава 5. Изменение и удаление объектов СУБД 159
Таблицы 159
Инструкция ALTER TABLE 160
Инструкция DROP TABLE 169
Индексы 171
Инструкция ALTER INDEX 171
Инструкция DROP INDEX 173
Представления 174
Инструкция ALTER VIEW 174
Инструкция DROP VIEW 175
Псевдонимы и синонимы 176
Oracle 11g 176
DB2 9.5 176
Microsoft SQL Server 2008 177
Схемы 177
SQL:2003 177
DB2 9.5 177
Microsoft SQL Server 2008 177
Последовательности 178
Инструкция ALTER SEQUENCE 178
Инструкция DROP SEQUENCE 179
Специфичные для реализаций объекты 180
Домены (SQL:2003) 180
Наборы символов (SQL:2003) 180
Сопоставления (SQL:2003) 180
Пространства таблиц 180
Материализованные представления (Oracle 11g) 182
Ссылки базы данных (Oracle 11g) 182
Каталоги (Oracle 11g) 182
Справочник по инструкциям ALTER и DROP 183
Резюме 186

Часть III. Обработка данных и управление транзакциями 187

Глава 6. Язык обработки данных (DML) 189
INSERT: заполнение таблицы данными 189
Общие предложения инструкции INSERT 190
Реализации инструкции INSERT в разных СУБД 197
UPDATE: изменение данных таблицы 204
Обобщенный синтаксис инструкции UPDATE 205
Особенности реализации инструкции UPDATE в разных СУБД 209
DELETE: удаление данных из таблиц 211
Обобщенный синтаксис инструкции DELETE 212
Предложения инструкции DELETE, реализованные в конкретных СУБД 214
MERGE: комбинирование операций вставки, обновления и удаления в одной инструкции 214
Обобщенный синтаксис инструкции MERGE 214
Реализация инструкции MERGE в разных СУБД 216
Инструкция TRUNCATE 218
Различия между реализациями инструкции TRUNCATE в Oracle и Microsoft SQL Server 219
Резюме 220

Глава 7. Сеансы, транзакции и блокировки 221
Сеансы 221
Транзакции 229
Что такое транзакция 229
Подтверждение и откат транзакций 232
Уровни изоляции транзакций 238
Блокировки 240
Режимы блокировок 241
Разрешение взаимоблокировок 244
Резюме 245

Часть IV. Извлечение и передача данных 247

Глава 8. Инструкция SELECT 249
Синтаксис однотабличной инструкции SELECT 249
Предложение SELECT: что извлекать? 250
Выборка значений из одного столбца 250
Выборка значений из нескольких столбцов 251
Использование литералов, функций и вычисляемых столбцов 254
Использование подзапросов в предложении SELECT 258
Предложение FROM: из чего извлекать? 259
Извлечение данных из таблиц и представлений 259
Использование псевдонимов в предложении FROM 260
Использование подзапросов в предложении FROM 260
Предложение WHERE: установка ограничений 261
Операторы сравнения 261
Операторы объединения: AND и OR 263
Оператор BETWEEN 264
Оператор IN 264
Оператор NOT 265
Оператор IS: специальный тест на неопределенные значения 266
Использование подзапросов в предложении WHERE 267
Предложения GROUP BY и HAVING: обобщение результатов 271
Предложение ORDER BY: сортировка результатов запроса 274
Комбинирование результатов нескольких запросов 276
Оператор UNION 276
Оператор INTERSECT 279
Оператор EXCEPT (MINUS) 281
Аналитические функции SQL и запросы на отбор верхних значений 283
Аналитические функции и стандарт SQL:2003 283
Проектирование запросов отбора верхних значений 285
Запросы, возвращающие заданные строки 286
Резюме 288

Глава 9. Многотабличные запросы 289
Внутренние объединения 290
Два синтаксиса внутренних объединений 290
Предложения ON и USING 290
Объединения на основе равенства 291
Объединения на основе неравенства 293
Самообъединение 296
Перекрестное объединение (декартово произведение) 298
Объединение множества таблиц 299
Внешние объединения таблиц по столбцам, содержащим неопределенные значения NULL 301
Два синтаксиса внешних объединений 302
Левое внешнее объединение 303
Правое внешнее объединение 306
Полное внешнее объединение 307
Объединения UNION 308
Объединения, включающие внедренные представления 308
Многотабличные объединения с коррелирующими запросами 311
Повышение эффективности многотабличных запросов 312
Резюме 313

Глава 10. Функции SQL 315
Функции SQL и их классификация 315
Числовые функции 318
Строковые функции 323
Функции работы с датами и временем 335
Содержание 12
Итоговые функции 343
Функции преобразования 351
Системные функции 363
Прочие функции 367
Пользовательские функции 372
Резюме 373

Глава 11. Операторы SQL 375
Арифметические операторы и операторы конкатенации строк 375
Логические операторы 379
ALL 379
ANY и SOME 379
BETWEEN <выражение> AND <выражение> 380
IN 381
EXISTS 382
LIKE 383
AND 387
NOT 387
OR 388
Приоритет операторов 388
Оператор присваивания 390
Операторы сравнения 390
Битовые операторы 394
Резюме 396

Часть V. Реализация системы безопасности с помощью системного каталога 397

Глава 12. SQL и безопасность СУБД 399
Базовые механизмы обеспечения безопасности данных 399
Идентификация и аутентификация 400
Авторизация и управление доступом 400
Шифрование 400
Целостность и единообразие 400
Аудит 401
Определение пользователя базы данных 401
Управление безопасностью с помощью привилегий 407
Инструкция GRANT 407
Отзыв привилегий 420
Управление системой безопасности с помощью ролей 425
Использование представлений в системе безопасности 431
Использование ограничений для обеспечения безопасности 433
Использование хранимых процедур и триггеров для обеспечения безопасности 435
Шифрование данных 437
Аудит базы данных 442
Стандарты безопасности 445
Международные стандарты безопасности 445
Совместимость с регуляторной политикой 447
Резюме 449

Глава 13. Системный каталог и информационная схема 451
Системные каталоги SQL 451
Словарь данных Oracle 11g 455
Структура словаря данных Oracle 455
Словарь данных Oracle и стандарт SQL:2003 457
Следующий уровень: данные о метаданных 458
Системные каталоги IBM DB2 9.5 460
Объекты INFORMATION_SCHMA в DB2 460
Получение информации об объектах INFORMATION_SCHEMA 462
Системный каталог Microsoft SQL Server 463
Представления информационной схемы Microsoft SQL Server 463
Системные хранимые процедуры Microsoft SQL Server 467
Системные функции Microsoft SQL Server 2008 471
Резюме 473

Часть VI. Процедурное программирование и механизмы доступа к базе данных 475

Глава 14. Хранимые процедуры, триггеры и пользовательские функции 477
Преимущества и области применения процедурных расширений 479
Производительность и сетевой трафик 479
Безопасность базы данных 480
Повторное использование программного кода 480
Ключевые элементы процедурных расширений SQL 480
Переменные и операции присваивания 480
Модульность, процедуры и блочные структуры 482
Передача параметров 483
Условное выполнение 486
Циклическое выполнение 487
Курсоры 489
Обработка ошибок 493
Хранимые процедуры 496
Синтаксис инструкции CREATE PROCEDURE 496
Создание простой хранимой процедуры 497
Удаление хранимой процедуры 502
Пользовательские функции 502
Синтаксис инструкции CREATE FUNCTION 502
Создание простой функции 503
Удаление пользовательской функции 506
Триггеры 506
Синтаксис инструкции CREATE TRIGGER 506
Удаление триггера 510
Хранимые процедуры и функции .NET 510
Резюме 511

Глава 15. SQL и XML 513
Структура XML 513
Форматирование 514
DTD и схема 515
Пространство имен 516
Документ XML как источник данных 518
Доступ к документу XML в приложении 518
XPath 518
XQuery 519
Код XML 519
Сущности 519
Раздел CDATA 520
Представление документов XML 520
XSL и XSLT 521
XML и реляционные СУБД 522
Oracle 11g XML DB 524
IBM DB2 pureXML 529
Microsoft SQL Server 2008 534
Резюме 539

Глава 16. SQL и процедурное программирование 541
Этапы обработки инструкций SQL 541
Внедренный и динамический SQL 543
Внедренный SQL 543
Технологии динамического SQL 547
Будущее внедренного и динамического SQL 553
Стандарт SQL/CLI 555
Технологии ODBC и OLE DB 558
ODBC 559
OLE DB 560
SQL и Java 560
Java Database Connectivity (JDBC) 561
SQLJ 565
Интерфейсы прикладного программирования Oracle 566
Oracle Call Interface 566
Oracle Objects for OLE 568
Oracle Data Provider for .NET 568
Интерфейс уровня вызовов IBM DB2 569
Интерфейсы Microsoft Data Access 570
ActiveX Data Objects 570
ADO.NET 570
Резюме 575

Глава 17. Будущее SQL 577
OLAP и аналитическая обработка 578
Oracle 11g 580
IBM DB2 9.5 581
Microsoft SQL Server 2008 582
LINQ 582
Объекты 583
Парадигма объектно-ориентированного программирования 584
Object Language Binding (SQL/OLB) в стандарте SQL:2003 585
Поддержка Oracle 11g 586
Поддержка IBM DB2 9.5 587
Microsoft SQL Server 2008 587
Абстрактные типы данных 589
Объектно-ориентированные базы данных 589
Резюме 591

Приложение А. Веб-сайт книги 593

Приложение Б. База данных примеров ACME 595
Общая информация и правила бизнес-логики 595
Соглашение об именовании 596
Отношения между таблицами 597
Умолчания и ограничения столбцов 598
Индексы 598
Представления 598
Сценарии SQL для создания объектов базы данных ACME 598

Приложение В. Основы проектирования реляционных баз данных 609
Идентификация сущностей и атрибутов 610
Нормализация 611
Первая нормальная форма 611
Вторая нормальная форма 612
Третья нормальная форма 614
Определение ограничений 614
Сравнение структур OLTP и OLAP 615
Хранилища и витрины данных 615
Схемы "звезда" и "снежинка" 616
Сложности проектирования 616

Приложение Г. Установка программного обеспечения СУБД 619
Установка Oracle 11g 619
Установка Oracle 11g release 1 (11.1.0.6.0) Enterprise Edition в системе Linux 620
Установка Oracle 11g release 1 (11.1.0.6.0) Personal Edition в Windows 634
Установка IBM DB2 9.5 636
Установка DB2 9.5 в системе Windows 636
Установка Microsoft SQL Server 2008 644
Подготовка к установке Microsoft SQL Server 2008 Express 644
Установка в системе Windows Vista Enterprise Edition 645

Приложение Д. Доступ к СУБД 655
Утилиты Oracle 11g для доступа к СУБД 655
SQL Plus 655
SQL Developer 660
Oracle Enterprise Manager (SQL Worksheet) 662
Утилиты IBM DB2 9.5 для доступа к СУБД 663
Процессор командной строки CLP 663
Command Editor 666
Утилиты Microsoft SQL Server 2008 для доступа к СУБД 667
Утилита SQLCMD 667
Утилита SQL Server Management Studio 668

Приложение Е. Установка базы данных ACME 671
Установка базы данных ACME в Oracle 11g с помощью утилиты SQL*Plus 671
Linux/Unix 671
Microsoft Windows 672
Установка базы данных ACME в DB2 9.5 (Windows) с помощью CLP 673
Установка базы данных ACME в Microsoft SQL Server 2008 с помощью утилиты SQLCMD 674

Приложение Ж. Функции SQL 677

Приложение З. Синтаксис SQL 703
Инструкции DDL 704
Таблицы 704
Индексы 704
Представления 704
Схемы 705
Хранимые процедуры 705
Пользовательские функции 705
Триггеры 706
Инструкции DCL 706
Инструкции DML 706
Инструкции DQL 707
Однотабличная инструкция SELECT 707
Многотабличная инструкция SELECT 707
Инструкции управления транзакциями 708
Предикаты 708

Приложение И. Зарезервированные ключевые слова SQL 711
Будущие ключевые слова 718
Зарезервированные ключевые слова ODBC 720

Приложение К. Прочие СУБД 723

Приложение Л. Краткое введение в системы счисления, булеву алгебру и теорию множеств 727
Системы счисления 727
Связь с СУБД 728
Преобразование чисел 728
Логические элементы булевой алгебры 729
Оператор NOT (дополнение или инверсия) 730
Оператор AND (булево произведение) 730
Оператор OR (булева сумма) 730
Оператор XOR (исключающее ИЛИ) 730
Оператор NAND (инверсный AND) 730
Оператор NOR (инверсный OR) 731
Приоритеты операторов 731
Теория множеств 732
Перечисление элементов множества 732
Подмножества 733
Равенство множеств 733
Операции над множествами 734
Аксиомы алгебры множеств 737
Предметный указатель 739

Скачать книгу бесплатно13,7 мб. pdf Скачать CD бесплатно70 кб.