Кириллов В.В., Громов Г.Ю. - Введение в реляционные базы данных. Литература для вузов isbn 9785941577705 в книге рассматриваются основные понятия баз данных и систем управления ими
Скачать 11.62 Mb.
|
Глава 14. Системный каталог (словарь данных) ....................................... 256 14.1. Что такое системный каталог ................................................................... 256 14.2. Словарь данных Oracle .............................................................................. 257 14.2.1. Структура словаря данных ................................................................. 258 14.2.2. Краткое содержимое словаря данных ............................................... 259 14.2.3. Примеры использования словаря данных ......................................... 263 Глава 15. Оптимизация SQL-запросов ......................................................... 269 15.1. Введение ..................................................................................................... 269 15.2. Использование индексов ........................................................................... 271 15.2.1. Что такое индексы ............................................................................... 271 15.2.2. Создание индексов .............................................................................. 272 15.2.3. Необходимость использования индексов ......................................... 273 ЧАСТЬ VI. СОЗДАНИЕ ПРИЛОЖЕНИЙ НА SQL ................................... 275 Глава 16. Программирование на SQL .......................................................... 277 16.1. Введение ..................................................................................................... 277 16.2. Статический SQL ....................................................................................... 278 16.3. Динамический SQL .................................................................................... 279 16.4. Интерфейс программирования приложений ........................................... 281 Оглавление VIII Глава 17. Процедурные расширения SQL ................................................... 283 17.1. Введение ..................................................................................................... 283 17.2. Основы PL/SQL .......................................................................................... 283 17.2.1. Анонимный блок PL/SQL ................................................................... 284 17.3. Переменные, константы, записи PL/SQL ................................................ 286 17.4. Команды управления ходом выполнения программы ........................... 289 17.4.1. Команды условного перехода (IF...) .................................................. 289 17.4.2. Метки и оператор безусловного перехода (GOTO) ......................... 290 17.4.3. Операторы цикла (LOOP, WHILE...LOOP и FOR...LOOP) .............. 291 17.4.4. Операторы EXIT, EXIT-WHEN и NULL ............................................. 293 17.5. SQL-предложения в PL/SQL ..................................................................... 294 17.5.1. SELECT...INTO ..................................................................................... 295 17.5.2. INSERT, UPDATE и DELETE .............................................................. 296 17.6. Обработка ошибок ..................................................................................... 296 17.6.1. Встроенные исключительные ситуации ........................................... 297 17.6.2. Исключительные ситуации, определяемые пользователем ............ 299 17.6.3. Обработчик OTHERS .......................................................................... 300 17.7. Курсоры ...................................................................................................... 300 17.7.1. Связь объектов PL/SQL с таблицами базы данных ......................... 300 17.7.2. Явный курсор ....................................................................................... 300 17.7.3. Неявный курсор (SQL-курсор) ........................................................... 307 17.8. Динамический SQL в PL/SQL................................................................... 308 Глава 18. Хранимые процедуры .................................................................... 315 18.1. Введение ..................................................................................................... 315 18.2. Хранимые процедуры ................................................................................ 316 18.2.1. Создание описания процедуры .......................................................... 316 18.2.2. Удаление описания процедуры .......................................................... 317 18.2.3. Перекомпиляция процедуры .............................................................. 317 18.2.4. Пример создания процедуры.............................................................. 318 18.3. Функции ...................................................................................................... 320 18.3.1. Создание описания функции .............................................................. 320 18.3.2. Удаление описания функции ............................................................. 321 18.3.3. Перекомпиляция функции .................................................................. 321 18.3.4. Пример создания функции ................................................................. 321 18.4. Триггеры ..................................................................................................... 323 18.4.1. Создание описания триггера .............................................................. 324 18.4.2. Изменение описания триггера ........................................................... 327 18.4.3. Удаление описания триггера .............................................................. 328 18.4.4. Использование триггера ..................................................................... 328 18.4.5. Изменяющиеся (мутирующие) таблицы ........................................... 332 Оглавление IX 18.5. Пакеты (модули) ........................................................................................ 338 18.5.1. Модули ................................................................................................. 338 18.5.2. Создание описания пакета .................................................................. 338 18.5.3. Изменение описания пакета ............................................................... 340 18.5.4. Удаление пакета .................................................................................. 341 18.5.5. Примеры пакетов ................................................................................. 342 18.6. Встроенные пакеты PL/SQL ..................................................................... 345 ЧАСТЬ VII. ПРИМЕР СОЗДАНИЯ БАЗЫ ДАННЫХ "UCHEB" .......... 347 Глава 19. Описание предметной области "Учебные планы" .................. 349 19.1. О Государственных образовательных стандартах (ГОС) ...................... 349 19.2. Основные образовательные программы (ООП) ...................................... 353 19.2.1. Базовые учебные планы ...................................................................... 353 19.2.2. Индивидуальные учебные планы и планы ускоренного обучения ............................................................................................... 358 19.2.3. Рабочие учебные планы ...................................................................... 358 19.2.4. Дисциплины по выбору студента и индивидуальные рабочие планы ..................................................................................... 360 19.2.5. Студенческие потоки и группы ......................................................... 363 19.2.6. Еще о рабочих учебных планах ......................................................... 365 Глава 20. Построение инфологической модели "Учебные планы" ....... 366 20.1. Первая попытка проектирования ............................................................. 366 20.2. Вторая попытка проектирования.............................................................. 369 20.2.1. Шапки планов ...................................................................................... 369 20.2.2. Дисциплины планов ............................................................................ 376 20.3. Инфологическая модель "Учебные планы" ............................................ 381 Глава 21. "Итоговая успеваемость" ............................................................. 382 21.1. Описание предметной области "Итоговая успеваемость" ..................... 382 21.2. Инфологическая модель "Итоговая успеваемость" ................................ 386 21.3. Объединенная инфологическая модель "UCHEB" ................................. 390 Глава 22. Работаем с SQL ................................................................................ 393 22.1. Запросы ....................................................................................................... 393 22.2. Ответы к некоторым запросам ................................................................. 400 Оглавление X Глава 23. Некоторые приложения базы данных "UCHEB"..................... 403 23.1. Функции Человек и Decline ....................................................................... 403 23.2. Пакет для просмотра успеваемости ......................................................... 413 Литература ......................................................................................................... 425 ПРИЛОЖЕНИЯ ................................................................................................ 427 Приложение А. Инструментальные средства разработки и выполнения ....................................................................... 429 А1. Oracle Database Express Edition ................................................................... 429 А1.1. Общие сведения ..................................................................................... 429 А1.2. Состав Oracle Database XE ................................................................... 432 А1.3. Требования к программному обеспечению ....................................... 434 А1.4. Взаимодействие с межсетевыми экранами ........................................ 434 А1.5. Требования к надстройкам Oracle Database для платформы .NET ..... 435 А1.6. Требования к Web-браузеру ................................................................. 435 А2. Установка сервера Oracle Database XE ...................................................... 436 А3. Русификация Oracle Database XE и создание баз данных "COOK" и "UCHEB".................................................................................................... 442 А4. SqlDeveloper .................................................................................................. 443 А4.1. Введение ................................................................................................. 443 А4.2. Краткое руководство по установке и настройке ............................... 445 Приложение Б. Описание содержимого компакт-диска ........................... 451 Предметный указатель .................................................................................... 453 Введение Основные идеи современной информационной технологии базируются на концепции баз данных. Согласно этой концепции, основой информационной технологии являются данные, которые должны быть организованы в базах данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем выдвинуло требование создания удобных общесистемных средств интеграции хранимых данных и управле- ния ими. Это и привело к появлению в конце 1960-х годов первых промыш- ленных систем управления базами данных (СУБД) — специализированных программных средств, предназначенных для организации и ведения баз дан- ных. Сначала это были системы с инвертированными списками, иерархиче- ские и сетевые системы. В 1969 году была предложена реляционная модель данных (см. главу 3), а в конце 1970-х и начале 1980-х годов стали появляться первые промышленные реляционные СУБД. Сейчас преобладающее боль- шинство СУБД являются реляционными, несмотря на появление объектно- ориентированных СУБД. Это не в последнюю очередь связано с тем, что в конце 1990-х годов большинство ведущих производителей реляционных СУБД создали объектные надстройки к реляционной схеме, что привело к появле- нию объектно-реляционных СУБД, поддерживающих некоторые технологии, реализующие объектно-ориентированный подход. Поэтому в данной книге рассматривается реляционная модель данных, реля- ционные СУБД и основной язык общения с этими СУБД — SQL. Несмотря на совпадающую модель данных, положенную в основу таких СУБД, и использование ими языка, в основном поддерживающего стандарт SQL:2003 (см. разд. 4.1), все они, в той или иной мере, отличаются друг от друга. Поэтому в иллюстрационных примерах часто будет использоваться реализация SQL:2003 Oracle Database 10g. Введение 2 Книга адресована широкому кругу пользователей. Для освоения материала книги необходимы минимальные знания о компьютерах. Те же читатели, ко- торые установят на своем персональном компьютере СУБД, базы данных и средства для работы с ними, размещенные на приложенном к книге ком- пакт-диске, смогут достаточно детально изучить материал, связанный с реля- ционными базами данных и познакомиться с одной из лучших профессио- нальных СУБД. Книга ориентирована на студентов высших учебных заведений, изучающих дисциплины "Базы данных", "Информационные системы", "Проектирование информационных систем", а также будет полезна специалистам в области информационных технологий. Это подтверждается отзывами о частично включенных в материал книги учебных пособиях [4, 5], получаемыми авто- рами уже более десяти лет, а также отзывами студентов направлений "Ин- форматика и вычислительная техника", "Информационные системы" и "При- кладная математика и информатика", изучающих перечисленные ранее дисциплины в СПбГУ ИТМО. Книга содержит 23 главы и 2 приложения. Главы сгруппированы в семь частей. Первая часть знакомит с историей появления и основными понятиями баз данных, с моделями данных и реляционным подходом. В главе 1 дается об- щее представление о возникновении концепции баз данных и их архитектуре. В главе 2 рассматриваются основные понятия информационно-логического (инфологического) моделирования, язык моделирования, необходимость введения ключей и подходы к построению моделей. В главе 3 разбираются основы реляционного подхода и манипулирования реляционными данными. Вторая часть знакомит с основами языка SQL и его применением для полу- чения информации из реляционных баз данных. В главе 4 рассматриваются стандарты языка, его синтаксические конструкции, типы данных и разнооб- разные функции. Глава 5 описывает предложение SELECT , выборку данных без использования и с использованием фразы для отбора данных, упорядоче- ние и агрегирование данных. В главе 6 продолжается изучение способов вы- борки данных, но уже из нескольких таблиц. Рассматриваются средства од- новременной работы с множеством таблиц, соединения, вложенные подзапросы и объединение нескольких запросов. В третьей части анализируются средства защиты данных, средства измене- ния содержимого базы данных, управления транзакциями и обеспечения па- раллельной работы. Глава 7 описывает средства языка SQL, предназначен- ные для защиты данных. Здесь рассматривается создание и использование представлений. В главе 8 обсуждаются особенности синтаксиса и примене- ния предложений модификации данных. В главе 9 дается определение тран- Введение 3 закции и объясняется необходимость ее использования. Рассматриваются проблемы, возникающие в многопользовательском режиме работы, и их ре- шение. Четвертая часть описывает цели и процедуры проектирования, основы нормализации и пример проектирования конкретной базы данных. В главе 10 обсуждаются цели проектирования, возможные ошибки в процессе проекти- рования и этапы проектирования. Глава 11 посвящена функциональным и многозначным зависимостям, нормальным формам, процедурам нормализа- ции. Здесь даются рекомендации по построению даталогической модели. В главе 12 приводится подробный пример проектирования базы данных "Библиотека". В пятой части рассматривается язык создания основных объектов базы дан- ных, системный каталог и способы оптимизации запросов. В главе 13 дается обзор языка определения данных, сведения о создании и изменении таблиц, а также последовательностей. Глава 14 объясняет, зачем нужен системный каталог, описывает его структуру, приводит примеры использования. В гла- ве 15 обсуждаются вопросы, связанные с оптимизацией выполнения запросов и способов, позволяющих увеличить их производительность. В шестой части рассматриваются различные варианты и средства создания приложений с использованием языка SQL и его процедурных расширений. Глава 16 описывает статический и динамический SQL, а также интерфейс программирования приложений. В главе 17 подробно анализируется одно из таких расширений — PL/SQL. Даются основы PL/SQL: достаточно подробно рассматриваются команды, обработка ошибок, курсоры и динамический SQL в PL/SQL. В главе 18 приводятся синтаксис и примеры создания хранимых процедур, функций, триггеров и пакетов (модулей). Рассказывается о встро- енных пакетах PL/SQL. Седьмая часть достаточно подробно описывает инфологические модели двух связанных предметных областей из интегрированной информационной системы управления университетом. Вырезка "UCHEB" из базы данных этой информационной системы, относящаяся к рассматриваемым моделям, раз- мещена на приложенном к книге компакт-диске. Она может использоваться в процессе изучения материала книги. В главе 19 рассказывается о Государ- ственных образовательных стандартах и основных образовательных про- граммах. На основании этого материала создается инфологическая модель учебных планов, процедура построения которой рассматривается в следую- щей главе. Глава 20 подробно анализирует подходы к построению инфологи- ческой модели, здесь приводится диаграмма сущность-связь "Учебные планы". В главе 21 дается описание предметной области, связанной с успеваемостью Введение 4 студентов, рассматривается процедура построения инфологической модели и приводится диаграмма сущность-связь "Итоговая успеваемость". Глава 22 наполнена запросами, которые надо "перевести" на язык SQL и реализовать во время изучения книги. Здесь также даны возможные ответы к некоторым из этих запросов. В главе 23 приводятся листинги и описания ряда приложе- ний (функции, процедур и пакетов) базы данных "UCHEB". В приложениях даны полезные справочные сведения о PL/SQL. Приложе- ние А представляет собой краткое описание СУБД Oracle 10g Express Edition (XE). Здесь представлены инструкция по ее установке, краткое описание не- которых инструментов для работы с базами данных, расположенными на Oracle 10g XE, и инструкция по установке Oracle SQL Developer. Вприложе- нии Б приводится перечень инструментальных средств, инструкций и лис- тингов, размещенных на компакт-диске к книге. |