Единое окно доступа к образовательным ресурсам

Введение в системы баз данных: Учебное пособие

Голосов: 3

В пособии рассматриваются основные понятия и определения, современное состояние технологий баз данных, архитектура СУБД, концепции проектирования БД, модели данных, реляционная модель данных, проектирование базы данных, физическая организация данных, управление реляционной базой данных, язык SQL, обеспечение функционирования баз данных.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    П.В. Бураков, В.Ю. Петров


 ВВЕДЕНИЕ В СИСТЕМЫ
     БАЗ ДАННЫХ
    Учебное пособие




      Санкт-Петербург
           2010


                                            ОГЛАВЛЕНИЕ
1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ..................................................................... 6
  1.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ ....................................................... 6
  1.2. СОВРЕМЕННОЕ СОСТОЯНИЕ ТЕХНОЛОГИЙ БАЗ ДАННЫХ ............................. 7
  1.3. БАЗЫ ДАННЫХ ............................................................................................. 9
  1.4. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ............................................... 12
2. АРХИТЕКТУРА СУБД .................................................................................. 13
  2.1. ТРЕХУРОВНЕВАЯ АРХИТЕКТУРА БАЗЫ ДАННЫХ ........................................ 13
  2.2. ФУНКЦИИ СУБД ....................................................................................... 16
  2.3. ЯЗЫКИ БАЗ ДАННЫХ .................................................................................. 19
    2.3.1. Язык определения данных ................................................................ 19
    2.3.2. Языки манипулирования данными .................................................. 19
  2.4. АРХИТЕКТУРА МНОГОПОЛЬЗОВАТЕЛЬСКИХ СУБД .................................. 21
    2.4.1. Модели двухуровневой технологии "клиент — сервер"................ 21
    2.4.2. Сервер приложений. Трехуровневая модель .................................. 25
3. КОНЦЕПЦИИ ПРОЕКТИРОВАНИЯ БД .................................................. 26
  3.1. ЖИЗНЕННЫЙ ЦИКЛ БД .............................................................................. 26
    3.1.1. Планирование разработки базы данных........................................ 27
    3.1.2. Определение требований к системе .............................................. 28
    3.1.3. Сбор и анализ требований пользователей .................................... 28
    3.1.4. Проектирование базы данных ........................................................ 28
    3.1.5. Разработка приложений ................................................................. 30
    3.1.6. Реализация ......................................................................................... 31
    3.1.7. Загрузка данных ................................................................................ 31
    3.1.8. Тестирование .................................................................................... 31
    3.1.9. Эксплуатация и сопровождение..................................................... 32
  3.2. КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ ...................................................... 32
    3.2.1. Фундаментальные понятия ............................................................ 32
    3.2.2. Сущности .......................................................................................... 33
    3.2.3. Атрибуты ......................................................................................... 34
    3.2.4. Ключи ................................................................................................. 35
    3.2.5. Связи между сущностями............................................................... 35
    3.2.6. Супертип и подтип .......................................................................... 39
  3.3. ПРИМЕР МОДЕЛИРОВАНИЯ ЛОКАЛЬНОЙ ПРО ........................................... 40
4. МОДЕЛИ ДАННЫХ ....................................................................................... 44
  4.1. КЛАССИФИКАЦИЯ МОДЕЛЕЙ ДАННЫХ ...................................................... 44
  4.2. СЕТЕВАЯ МОДЕЛЬ ...................................................................................... 45
    4.2.1. Структуры данных сетевой модели .............................................. 46
    4.2.2. Преобразование концептуальной модели в сетевую .................... 49
    4.2.3. Управляющая часть сетевой модели ............................................. 49

                                                         3


  4.3. ИЕРАРХИЧЕСКАЯ МОДЕЛЬ ДАННЫХ .......................................................... 50
    4.3.1. Структурная часть иерархической модели .................................. 50
    4.3.2. Преобразование концептуальной модели в иерархическую модель
    данных .......................................................................................................... 51
    4.3.3. Управляющая часть иерархической модели .................................. 52
5. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ ...................................................... 53
  5.1. ИСТОРИЯ ВОПРОСА.................................................................................... 53
  5.2. СТРУКТУРНАЯ ЧАСТЬ РЕЛЯЦИОННОЙ МОДЕЛИ ......................................... 55
    5.2.1. Отношение ........................................................................................ 55
    5.2.2. Свойства и виды отношений .......................................................... 57
    5.2.3. Реляционные ключи .......................................................................... 58
  5.3. ОБНОВЛЕНИЕ ОТНОШЕНИЙ ....................................................................... 61
  5.4. ЦЕЛОСТНОСТЬ БАЗЫ ДАННЫХ ................................................................... 62
6. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ .................................................... 64
  6.1. ИЗБЫТОЧНОСТЬ ДАННЫХ И АНОМАЛИИ ОБНОВЛЕНИЯ В БД ..................... 64
  6.2. НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ .................................................................. 66
    6.2.1. Функциональные зависимости ........................................................ 67
    6.2.2. Аксиомы вывода ............................................................................... 68
    6.2.3. Первая нормальная форма .............................................................. 68
    6.2.4. Вторая нормальная форма ............................................................. 70
    6.2.5. Третья нормальная форма .............................................................. 71
    6.2.6. Нормальная форма Бойса — Кодда ............................................... 72
    6.2.7. Четвертая нормальная форма ....................................................... 73
    6.2.8. Пятая нормальная форма ............................................................... 74
  6.3. ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ .................................... 75
    6.2.1. Преобразование сущностей и атрибутов ..................................... 75
    6.2.2. Преобразование бинарных связей ................................................... 76
    6.2.3. Предварительные отношения для бинарных связей типа 1 :1 ... 77
    6.2.4. Предварительные отношения для бинарных связей типа 1: N .. 78
    6.2.5. Преобразование связи типа "суперкласс/подкласс" ..................... 79
    6.2.6. Предварительные отношения для бинарных связей типа М: N . 80
    6.2.6. Проверка модели с помощью концепций последовательной
    нормализации .............................................................................................. 80
    6.2.7. Проверка поддержки целостности данных .................................. 81
7. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ ДАННЫХ ............................................ 81
  7.1. СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ДАННЫХ В СУБД ........................................ 81
  7.2. ИНДЕКСИРОВАНИЕ .................................................................................... 84
    7.2.1. Индексно-прямые файлы ................................................................. 85
    7.2.3. Индексно-последовательные файлы .............................................. 86
    7.2.3. Организация индексов в виде Б-деревьев ....................................... 88
    7.2.4. Инвертированные списки ................................................................ 90

                                                          4


8. УПРАВЛЕНИЕ РЕЛЯЦИОННОЙ БАЗОЙ ДАННЫХ ............................ 92
   8.1. РЕЛЯЦИОННАЯ АЛГЕБРА ............................................................................ 92
     8.1.1. Объединение (Union) ........................................................................ 93
     8.1.2. Разность............................................................................................ 93
     8.1.3. Декартово произведение.................................................................. 94
     8.1.4. Пересечение....................................................................................... 95
     8.1.5. Проекция (Project) ............................................................................ 95
     8.1.6. Выбор (Select) .................................................................................... 96
     8.1.7. Соединение (Join) ............................................................................. 96
     8.1.8 Деление................................................................................................ 97
   8.2. РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ..................................................................... 98
     8.2.1. Целевой список и определяющее выражение ................................ 99
     8.2.2. Квантор существования ............................................................... 101
     8.2.3. Квантор всеобщности ................................................................... 103
9. ЯЗЫК SQL ...................................................................................................... 104
   9.1. ОПЕРАТОР ВЫБОРА SELECT. ФОРМИРОВАНИЕ ЗАПРОСОВ К БАЗЕ ДАННЫХ
   ........................................................................................................................ 104
      9.1.1. Простые запросы ........................................................................... 105
      9.1.2. Агрегатные функции языка ........................................................... 106
      9.1.3. Группирование результатов ......................................................... 107
      9.1.4. Вложенные запросы ....................................................................... 110
      9.1.5. Многотабличные запросы ............................................................. 110
   9.2. ОПЕРАТОРЫ МАНИПУЛИРОВАНИЯ ДАННЫМИ ......................................... 114
      9.2.1. Оператор ввода данных INSERT .................................................. 114
      9.2.2. Оператор удаления данных DELETE ........................................... 115
      9.2.3. Операция обновления данных UPDATE ....................................... 115
   9.3. ОПЕРАТОРЫ ОПРЕДЕЛЕНИЯ ДАННЫХ ...................................................... 116
      9.3.1. Создание таблиц ............................................................................ 116
      9.3.2. Обновление таблиц ........................................................................ 118
      9.3.2. Удаление таблиц ............................................................................ 118
      9.3.3. Операторы создания и удаления индексов .................................. 119
10. ОБЕСПЕЧЕНИЕ ФУНКЦИОНИРОВАНИЯ БАЗ ДАННЫХ ........... 119
   10.1. ВОССТАНОВЛЕНИЕ ТРАНЗАКЦИИ .......................................................... 121
   10.2 ВОССТАНОВЛЕНИЕ СИСТЕМЫ ................................................................ 121
   10.3. ВОССТАНОВЛЕНИЕ НОСИТЕЛЕЙ ............................................................ 123
   10.4. ПАРАЛЛЕЛИЗМ....................................................................................... 123
   10.5. БЛОКИРОВКА ......................................................................................... 125
   10.6. РЕШЕНИЕ ПРОБЛЕМ ПАРАЛЛЕЛИЗМА..................................................... 126
   10.7. ТУПИКОВАЯ СИТУАЦИЯ ........................................................................ 128




                                                              5


1. Введение в базы данных

1.1. Основные понятия и определения
      Стержневые идеи современных информационных технологий
базируются на концепции баз данных.
      Согласно этой концепции, основой информационных технологий
являются данные, которые должны быть организованы в базы данных в
целях адекватного отображения изменяющегося реального мира и
удовлетворения информационных потребностей пользователей.
      Одним из важнейших понятий в теории баз данных является понятие
информации. Под информацией понимаются любые сведения о каком-либо
событии, процессе, объекте.
      Данные — это информация, представленная в определенном виде,
позволяющем автоматизировать ее сбор, хранение и дальнейшую
обработку человеком или информационным средством. Для компьютерных
технологий данные — это информация в дискретном, фиксированном
виде, удобная для хранения, обработки на ЭВМ, а также для передачи по
каналам связи.
      База данных (БД) — именованная совокупность данных,
отражающая состояние объектов и их отношений в рассматриваемой
предметной области, или иначе БД — это совокупность взаимосвязанных
данных при такой минимальной избыточности, которая допускает их
использование оптимальным образом для одного или нескольких
приложений в определенной предметной области. БД состоит из
множества связанных файлов.
      Система управления базами данных (СУБД) — совокупность
языковых и программных средств, предназначенных для создания, ведения
и совместного использования БД многими пользователями.
      Автоматизированная информационная система (АИС) — это
система,    реализующая     автоматизированный     сбор,   обработку,
манипулирование данными, функционирующая на основе ЭВМ и других
технических средств и включающая соответствующее программное
обеспечение (ПО) и персонал. В дальнейшем в этом качестве будет
использоваться термин информационная система (ИС), который
подразумевает понятие автоматизированная.
      Каждая ИС в зависимости от ее назначения имеет дело с той или
иной частью реального мира, которую принято называть предметной
областью (ПрО) системы. Выявление ПрО — это необходимый
начальный этап разработки любой ИС. Именно на этом этапе
определяются информационные потребности всей совокупности
пользователей будущей системы, которые, в свою очередь,
предопределяют содержание ее базы данных.


                                  6


     Банк данных (БнД) является разновидностью ИС. БнД — это система
специальным образом организованных данных: баз данных, программных,
технических,     языковых,      организационно-методических    средств,
предназначенных для обеспечения централизованного накопления и
коллективного многоцелевого использования данных.
     Под задачами обработки данных обычно понимается специальный
класс решаемых на ЭВМ задач, связанных с видом, хранением,
сортировкой, отбором по заданному условию и группировкой записей
однородной структуры.
     Отдельные программы или комплекс программ, реализующие
автоматизацию решения прикладных задач обработки данных, называются
приложениями. Приложения, созданные средствами СУБД, относят к
приложениям СУБД. Приложения, созданные вне среды СУБД с помощью
систем программирования, использующих средства доступа к БД, к
примеру, Delphi или Visual Studio, называют внешними приложениями.

1.2. Современное состояние технологий баз данных
      Кратко    сформулируем     основные     современные    принципы
организации баз данных.
      Значительная часть современных СУБД способна работать на
      компьютерах различной архитектуры под управлением разных
      операционных систем.
      Подавляющее большинство современных СУБД обеспечивают
      поддержку полной реляционной модели данных, обеспечивая
      целостность категорий и целостность на уровне ссылок.
      Современные СУБД для определения данных и манипуляции ими
      опираются на принятые стандарты в области языков, а при обмене
      данными между различными СУБД базируются на существующих
      технологиях по обмену информацией.
      Многие существующие СУБД относятся к так называемым сетевым
      СУБД,       которые       предназначены        для    поддержки
      многопользовательского режима работы с базой данных и
      поддержки возможности децентрализованного хранения данных.
      Такие СУБД имеют развитые средства администрирования баз
      данных и средства защиты хранимой в них информации.
      Подобные СУБД имеют средства подключения клиентских
      приложений.
      Современные СУБД характеризуются опытами применения
      концепции фундаментальной идеи объектно-ориентированного
      подхода, способствующей повышению уровня абстракции баз
      данных, являющейся перспективным этапом на пути развития
      технологий баз данных.



                                   7


     Информационные системы, созданные средствами технологии баз
данных, иногда принято называть банками данных (БнД).
     БнД включает в себя:
     технические средства;
     одну или несколько БД;
     СУБД;
     словарь или каталог данных;
     администратора;
     вычислительную систему;
     обслуживающий персонал.
     Схематично это выглядит так, как показано на рис. 1.1.




                        Рис. 1.1. Банк данных

     Дадим краткие определения новым составляющим этой схемы.
     Словарь или каталог данных служит для централизованного
накопления и описания ресурса данных. Он содержит описание ПрО,
сведения о структуре БД, о связях между элементами БД. Словарь данных
можно рассматривать как часть самой базы данных.
     Администратор БД (АБД) — человек или группа лиц, которые
принимают решения. Основные функции АБД:
     участие в разработке БД;
     контроль правильности функционирования БД.
     Вычислительная система (ВС) — включает программные (ПС) и
аппаратные средства (ТС).
     Обслуживающий персонал (ОП) — это лица, прямыми
обязанностями которых является создание и поддержание корректного
функционирования банка данных. Они ответственны за работу БнД и
прикладного программного обеспечения. К обслуживающему персоналу

                                  8


относятся: разработчики и администраторы базы данных, аналитики,
программисты.

1.3. Базы данных
      БД, как правило, создается как общий ресурс всего предприятия, где
данные являются интегрированными и общими. Под понятием
интегрированные данные подразумевается возможность представить базу
данных как объединение нескольких отдельных файлов данных. Под
понятием общие данные подразумевается возможность использования
отдельных областей данных в БД несколькими различными
пользователями для разных целей.
      В базе данных информация должна быть организована так, чтобы
обеспечить минимальную долю ее избыточности. Частичная избыточность
информации необходима, но она должна быть минимизирована, так как
чрезмерная избыточность данных влечет за собой ряд негативных
последствий. Главные из них:
      увеличение объема информации, а значит, потребность в
      дополнительных      ресурсах    для    хранения     и   обработки
      дополнительных объемов данных;
      появление ошибок при вводе дублирующей информации,
      нарушающих       целостность    базы    данных     и   создающих
      противоречивые данные.
      БД содержит не только данные, всесторонне характеризующие
деятельность самой организации, фирмы, процесса или другой предметной
области, но и описания этих данных. Информацию о данных принято
называть "метаданными", т. е. "данными о данных". В совокупности
описания всех данных образуют словарь данных.
      В БД должны храниться данные, логически связанные между собой.
Для того чтобы данные можно было связать между собой, и связать так,
чтобы эти связи соответствовали реально существующим в данной
предметной области, последнюю подвергают детальному анализу, выделяя
сущности или объекты. Сущность или объект — это то, о чем необходимо
хранить информацию. Сущности имеют некоторые характеристики,
называемые атрибутами, которые тоже необходимо сохранять в БД.
Атрибуты по своей внутренней структуре могут быть простыми, а могут
быть сложными. Простые атрибуты могут быть представлены простыми
типами данных. Различного рода графические изображения, являющиеся
атрибутами сущностей, — это пример сложного атрибута. Определив
сущности и их атрибуты, необходимо перейти к выявлению связей,
которые могут существовать между некоторыми сущностями. Связь — это
то, что объединяет две или более сущностей. Связи между сущностями
также являются частью данных, и они также должны храниться в базе
данных.


                                   9


      Если все это: сущности, атрибуты сущностей и связи между
сущностями определено, то схема базы данных может выглядеть примерно
так, как представлено на рис. 1.2. На нем показан пример схемы базы
данных, которую можно назвать ФАКУЛЬТЕТ.




       Рис. 1.2. Пример ER-диаграммы базы данных ФАКУЛЬТЕТ




                                 10


      Схема, которая называется ER-диаграммой (Entity-Relationship),
состоит из следующих компонентов:
      шести сущностей, которые изображены прямоугольниками, каждый
      из которых имеет свои атрибуты, помещенные в овалы, а в
      нижеприведенном списке они перечислены в скобках рядом с
      именем сущностей:
ФАКУЛЬТЕТ: (Код_факультета, Назв_факультета, ФИО_декана);
КАФЕДРА: (Код_кафедры, Назв_кафедры, Зав_кафедрой);
СПЕЦИАЛЬНОСТЬ: (Код_специальности, Назв_специальности);
ПРЕПОДАВАТЕЛЬ: (Код_преподавателя, ФИО, Должность);
ГРУППА: (Код_группы, ФИО_старосты);
СТУДЕНТ: (Ном_зач_книжки, ФИО, Пол);
      пяти связей, которые обозначены стрелками и связывают те
      сущности, на которые они направлены:
связь ВКЛЮЧАЕТ показывает, что на факультете несколько кафедр;
связь ВХОДИТ изображает, что одна и та же кафедра готовит
специалистов по нескольким специальностям;
связь РАБОТАЕТ определяет то, что на кафедре работает ряд
преподавателей;
связь ОБУЧАЕТ с двойными стрелками в обоих направлениях поясняет
тот факт, что один и тот же преподаватель преподает в разных группах, а
одна и та же группа занимается с разными преподавателями;
связь ОБУЧАЕТСЯ определяет, что каждая группа включает в себя ряд
студентов.
      Из представленной диаграммы понятно, что данные обладают
определенной структурой. Для выявления этой структуры база данных
должна пройти процесс проектирования.
      Проектируемая БД должна обладать определенными свойствами.
Назовем основные свойства БД.
      Целостность. В каждый момент времени существования БД
сведения, содержащиеся в ней, должны быть непротиворечивы.
Целостность БД достигается вследствие введения ограничений
целостности, в частности, к ним относятся ограничения, связанные с
нормализацией БД.
      Восстанавливаемость. Данное свойство предполагает возможность
восстановления БД после сбоя системы или отдельных видов порчи
системы.
      Безопасность. Безопасность БД предполагает защиту данных от
преднамеренного и непреднамеренного доступа, модификации или
разрушения. Применяется запрещение несанкционированного доступа,
защита от копирования и криптографическая защита.
      Эффективность. Свойство эффективности обычно понимается как:
      минимальное время реакции на запрос пользователя;


                                  11



    
Яндекс цитирования Яндекс.Метрика