Кириллов В.В., Громов Г.Ю. - Введение в реляционные базы данных. Литература для вузов isbn 9785941577705 в книге рассматриваются основные понятия баз данных и систем управления ими
Скачать 11.62 Mb.
|
Владимир Кириллов Геннадий Громов Санкт-Петербург «БХВ-Петербург» 2009 УДК 681.3.06 ББК 32.973.26-018.2 К43 Кириллов, В. В. К43 Введение в реляционные базы данных / В. В. Кириллов, Г. Ю. Громов. — СПб.: БХВ-Петербург, 2009. — 464 с.: ил. + CD-ROM — ( Учебная литература для вузов) ISBN 978-5-94157-770-5 В книге рассматриваются основные понятия баз данных и систем управления ими (СУБД), моделей данных, положенных в основу баз данных и методов проектирования реляционных баз данных. Обсуждаются реляционные операции и основы теории нор- мализации отношений и приводятся примеры проектирования баз данных. Большое место уделено подробному описанию языка SQL — международного стандарта языка реляционных баз данных. Рассматриваются основные понятия, необходимые для изу- чения SQL и применения его на практике. Подробно рассмотрено манипулирование данными в интерактивном режиме, затронуты вопросы обеспечения безопасности хранимых данных, средств оптимизации запросов и создания прикладных программ. На прилагаемом к книге компакт-диске содержатся дистрибутивы СУБД OracleXE, SqlDeveloper, учебные базы данных и дополнительные материалы. Для студентов и начинающих программистов УДК 681.3.06 ББК 32.973.26-018.2 Рецензент — А. А. Бобцов, профессор, д. т. н , декан факультета компьютерных технологий и управления СПбГУ ИТМО Группа подготовки издания: Главный редактор Екатерина Кондукова Зам. главного редактора Игорь Шишигин Зав. редакцией Григорий Добин Редактор Екатерина Капалыгина Компьютерная верстка Натальи Караваевой Корректор Виктория Пиотровская Дизайн серии Инны Тачиной Оформление обложки Елены Беляевой Фото Кирилла Сергеева Зав. производством Николай Тверских Лицензия ИД № 02429 от 24.07.00. Подписано в печать 01 .09.08. Формат 70 100 1 / 16 Печать офсетная. Усл. печ. л. 37 ,41. Тираж 2 000 экз. Заказ № "БХВ - Петербург", 194354, Санкт - Петербург, ул. Есенина, 5Б. Санитарно - эпидемиологическое заключение на продукцию № 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека. Отпечатано с готовых диапозитивов в ГУП "Типография "Наука" 199034, Санкт - Петербург, 9 линия, 12 ISBN 978-5-94157-770-5 © Кириллов В. В., Громов Г. Ю., 2008 © Оформление, издательство "БХВ-Петербург", 2008 Оглавление Введение .................................................................................................................. 1 ЧАСТЬ I. ЧТО ТАКОЕ БАЗА ДАННЫХ И СУБД......................................... 5 Глава 1. Зачем нужны базы данных ................................................................. 7 1.1. Данные и ЭВМ ................................................................................................. 7 1.2. Концепция баз данных .................................................................................... 9 1.3. Архитектура СУБД ........................................................................................ 12 Глава 2. Инфологическая модель данных "сущность-связь" ................... 15 2.1. Основные понятия ......................................................................................... 15 2.2. Характеристика связей и язык моделирования ........................................... 16 2.3. Классификация сущностей ........................................................................... 22 2.4. О первичных и внешних ключах .................................................................. 26 2.5. Ограничения целостности ............................................................................. 29 2.6. О построении инфологической модели ....................................................... 30 Глава 3. Реляционный подход .......................................................................... 32 3.1. Реляционная структура данных .................................................................... 32 3.2. Реляционная база данных.............................................................................. 35 3.3. Манипулирование реляционными данными ............................................... 43 3.3.1. Обновление отношений .......................................................................... 44 3.3.2. Реляционные операции ........................................................................... 46 ЧАСТЬ II. ЯЗЫК SQL. ИЗВЛЕЧЕНИЕ ДАННЫХ ...................................... 55 Глава 4. Основы SQL ......................................................................................... 57 4.1. Стандарты языка SQL.................................................................................... 57 4.2. Почему SQL? .................................................................................................. 58 4.3. Таблицы SQL .................................................................................................. 61 Оглавление IV 4.4. Синтаксические конструкции SQL .............................................................. 67 4.4.1. Предложения SQL ................................................................................... 67 4.4.2. Идентификаторы (имена) ....................................................................... 69 4.4.3. Константы и NULL-значения ................................................................. 70 4.4.4. Операторы ................................................................................................ 72 4.4.5. Зарезервированные и ключевые слова .................................................. 74 4.4.6. Псевдостолбцы, таблица DUAL и еще о словах, которые нежелательно использовать пользователям ......................................... 75 4.5. Типы данных SQL .......................................................................................... 77 4.5.1. Символьные ............................................................................................. 78 4.5.2. Двоичные ................................................................................................. 79 4.5.3. Числовые .................................................................................................. 80 4.5.4. Дата/время ................................................................................................ 81 4.5.5. Связь с данными ...................................................................................... 82 4.5.6. Интервальные .......................................................................................... 82 4.5.7. XML .......................................................................................................... 82 4.5.8. Данные, специфичные для СУБД Oracle .............................................. 83 4.6. Функции SQL ................................................................................................. 83 4.6.1. Числовые функции .................................................................................. 84 4.6.2. Символьные функции ............................................................................. 85 4.6.3. Даты и время ............................................................................................ 87 4.6.4. Преобразование данных ......................................................................... 90 4.6.5. Различные функции для работы с одиночной строкой ....................... 92 4.6.6. Агрегатные функции ............................................................................... 94 4.6.7. Функции CASE, CAST и DECODE ......................................................... 95 Глава 5. Запросы с использованием единственной таблицы .................... 99 5.1. О предложениях SELECT и SUBQUERY ...................................................... 99 5.2. Выборка без использования фразы WHERE ................................................... 100 5.2.1. Простая выборка ................................................................................... 102 5.2.2. Исключение дубликатов ....................................................................... 103 5.2.3. Выборка вычисляемых значений ......................................................... 104 5.3. Выборка c использованием фразы WHERE ............................................... 106 5.3.1. Использование операторов сравнения ................................................ 107 5.3.2. Использование BETWEEN .................................................................... 108 5.3.3. Использование IN .................................................................................. 110 5.3.4. Использование LIKE ............................................................................. 111 5.4. Выборка с упорядочением (ORDER BY) .................................................... 112 5.5. Агрегирование данных ................................................................................ 115 5.5.1 Агрегатные SQL-функции ..................................................................... 115 5.5.2. Функции без использования фразы GROUP BY ................................. 116 Оглавление V 5.5.3. Фраза GROUP BY .................................................................................. 119 5.5.4. Использование фразы HAVING ............................................................ 121 5.6. Иерархические запросы .............................................................................. 122 Глава 6. Запросы с использованием нескольких таблиц ......................... 125 6.1. О средствах одновременной работы с множеством таблиц .................... 125 6.1.1. Использование фразы JOIN .................................................................. 128 6.2. Запросы, использующие соединения ......................................................... 130 6.2.1. Декартово произведение таблиц .......................................................... 130 6.2.2. Эквисоединение таблиц ........................................................................ 133 6.2.3. Естественное соединение таблиц ........................................................ 134 6.2.4. Композиция таблиц ............................................................................... 135 6.2.5. Тета-соединение таблиц ....................................................................... 135 6.2.6. Соединение таблицы со своей копией ................................................ 136 6.2.7. Внешние соединения ............................................................................ 138 6.3. Вложенные подзапросы .............................................................................. 140 6.3.1. Виды вложенных подзапросов ............................................................. 140 6.3.2. Простые вложенные подзапросы ......................................................... 141 6.3.3. Использование одной и той же таблицы во внешнем и вложенном подзапросе ...................................................................... 143 6.3.4. Вложенный подзапрос с оператором сравнения, отличным от IN ..... 144 6.3.5. Коррелированные вложенные подзапросы ......................................... 144 6.3.6. Запросы, использующие EXISTS .......................................................... 146 6.3.7. Функции в подзапросе .......................................................................... 147 6.4. Фразы для работы с наборами: EXCEPT (MINUS), INTERSECT, UNION ..................................................................................... 148 6.5. Заключение ................................................................................................... 150 ЧАСТЬ III. ЯЗЫК SQL. ИЗМЕНЕНИЕ ДАННЫХ .................................... 157 Глава 7. Организация доступа к базе данных ............................................. 159 7.1. О системе баз данных .................................................................................. 159 7.1.1. Данные .................................................................................................... 159 7.1.2. Аппаратное обеспечение ...................................................................... 160 7.1.3. Программное обеспечение ................................................................... 160 7.1.4. Пользователи ......................................................................................... 160 7.2. Защита данных ............................................................................................. 161 7.3. Средства языка SQL .................................................................................... 163 7.3.1. Предложение GRANT ............................................................................ 163 7.3.2. Предложение REVOKE ......................................................................... 165 Оглавление VI 7.3.3. Синонимы .............................................................................................. 166 7.3.4. Представления ....................................................................................... 167 7.3.5. Разграничение доступа к записям таблицы ........................................ 172 Глава 8. Внесение изменений в базу данных ............................................... 175 8.1. Особенности и синтаксис предложений модификации ........................... 175 8.2. Предложение DELETE................................................................................. 177 8.2.1. Удаление единственной записи ........................................................... 177 8.2.2. Удаление множества записей ............................................................... 177 8.2.3. Удаление с вложенным подзапросом .................................................. 178 8.3. Предложение INSERT .................................................................................. 178 8.3.1. Вставка единственной записи в таблицу ............................................ 179 8.3.2. Вставка множества записей .................................................................. 180 8.4. Предложение UPDATE ................................................................................ 182 8.4.1. Обновление единственной записи ....................................................... 183 8.4.2. Обновление множества записей .......................................................... 183 8.4.3. Обновление с подзапросом .................................................................. 183 8.4.4. Обновление нескольких таблиц ........................................................... 183 Глава 9. Транзакции и параллелизм ............................................................ 185 9.1. Что такое транзакция ................................................................................... 185 9.2. Предложения COMMIT, ROLLBACK и SAVEPOINT ................................ 187 9.3. Многопользовательский режим работы .................................................... 188 9.3.1. Параллелизм транзакций ...................................................................... 188 9.3.2. Блокировки ............................................................................................ 189 ЧАСТЬ IV. ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ................. 193 Глава 10. Введение в проектирование .......................................................... 195 10.1. Цели проектирования ................................................................................ 195 10.2. Универсальное отношение ........................................................................ 198 10.3. Почему проект базы данных может быть плохим? ................................ 201 10.4. Процедура проектирования ...................................................................... 204 10.4.1. Этапы проектирования базы данных ................................................ 205 Глава 11. Нормализация ................................................................................. 211 11.1. О нормализации, функциональных и многозначных зависимостях ..... 211 11.2. Нормальные формы ................................................................................... 213 11.3. Процедура нормализации .......................................................................... 216 11.4. Построение даталогической (табличной) модели .................................. 218 11.5. Различные советы и рекомендации .......................................................... 222 Оглавление VII Глава 12. Пример проектирования базы данных "LIBRARY" ............... 224 12.1. Назначение и предметная область ........................................................... 224 12.2. Построение инфологической модели ...................................................... 228 12.3. Построение даталогической модели ........................................................ 230 ЧАСТЬ V. ЯЗЫК SQL. СОЗДАНИЕ БАЗЫ ДАННЫХ ............................. 239 Глава 13. Создание базы данных и ее основных объектов ....................... 241 13.1. О языке определения данных (DDL) ....................................................... 241 13.2. Создание базы данных и схем .................................................................. 242 13.3. Создание таблиц......................................................................................... 243 13.3.1. Описание таблицы ............................................................................... 245 13.3.2. Ограничения целостности .................................................................. 247 13.3.3. Комментарии к описанию таблицы ................................................... 250 13.4. Изменение таблиц ...................................................................................... 251 13.5. Удаление таблиц ........................................................................................ 254 13.6. Создание последовательностей ................................................................ 254 |