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

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

Голосов: 3

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

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

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



                                 52


из операторов второй группы (поиска данных с возможностью
модификации):
     вставить новый экземпляр сегмента в указанную позицию;
     обновить текущий экземпляр сегмента;
     удалить текущий экземпляр сегмента.
     В    иерархической    модели    автоматически     поддерживается
целостность ссылок между предками и потомками. Основное правило:
никакой потомок не может существовать без своего родителя

5. Реляционная модель данных

5.1. История вопроса
      Создателем реляционной модели является сотрудник фирмы IBM
доктор Э. Ф. Кодд. Будучи по образованию математиком, Э. Кодд
предложил использовать для обработки данных аппарат теории множеств.
В статье "A Relational Model of Data for Large Shared Data Banks",
вышедшей в свет в 1970 году, он показал, что любое представление
данных сводится к совокупности двумерных таблиц особого вида,
известного в математике как отношение (relation).
      Положив теорию отношений в основу реляционной модели, Э. Кодд
обосновал реляционную замкнутость отношений и ряда некоторых
специальных операций, которые применяются сразу ко всему множеству
строк отношения, а не к отдельной строке. Указанная реляционная
замкнутость означает, что результатом выполнения операций над
отношениями является также отношение, над которым в свою очередь
можно осуществить некоторую операцию. Из этого следует, что в данной
модели можно оперировать реляционными выражениями, а не только
отдельными операндами в виде простых имен таблиц.
      Одним из основных преимуществ реляционной модели является ее
однородность. Все данные рассматриваются как хранимые в таблицах и
только в таблицах. Каждая строка такой таблицы имеет один и тот же
формат.
      К числу достоинств реляционного подхода можно отнести:
      наличие небольшого набора абстракций, которые позволяют
      сравнительно     просто     моделировать     большую      часть
      распространенных предметных областей и допускают точные
      формальные определения, оставаясь интуитивно понятными;
      наличие простого и в то же время мощного математического
      аппарата, опирающегося главным образом на теорию множеств и
      математическую логику и обеспечивающего теоретический базис
      реляционного подхода к организации БД;




                                 53


      возможность ненавигационного манипулирования данными без
      необходимости знания конкретной физической организации баз
      данных во внешней памяти.
      Кодд сформулировал двенадцать приведенных ниже правил,
которым должна соответствовать настоящая реляционная база данных.
   1. Правило информации. Вся информация в базе данных должна быть
      представлена исключительно на логическом уровне и только одним
      способом — в виде значений, содержащихся в таблицах.
   2. Правило гарантированного доступа. Логический доступ ко всем и
      каждому элементу данных (атомарному значению) в реляционной
      базе данных должен обеспечиваться путем использования
      комбинации имени таблицы, первичного ключа и имени столбца.
   3. Правило поддержки недействительных значений. В настоящей
      реляционной базе данных должна быть реализована поддержка
      недействительных значений, которые отличаются от строки
      символов нулевой длины, строки пробельных символов и от нуля
      или любого другого числа и используются для представления
      отсутствующих данных независимо от типа этих данных.
   4. Правило динамического каталога, основанного на реляционной
      модели. Описание базы данных на логическом уровне должно быть
      представлено в том же виде, что и основные данные, чтобы
      пользователи, обладающие соответствующими правами, могли
      работать с ним с помощью того же реляционного языка, который они
      применяют для работы с основными данными.
   5. Правило исчерпывающего подъязыка данных. Реляционная система
      может поддерживать различные языки и режимы взаимодействия с
      пользователем (например, режим вопросов и ответов). Однако
      должен существовать, по крайней мере, один язык, операторы
      которого можно представить в виде строк символов в соответствии с
      некоторым четко определенным синтаксисом и который в полной
      мере поддерживает следующие элементы:
            определение данных;
            определение представлений;
            обработку данных (интерактивную и программную);
            условия целостности;
            идентификацию прав доступа;
            границы транзакций (начало, завершение и отмена).
   6. Правило обновления представлений. Все представления, которые
      теоретически можно обновить, должны быть доступны для
      обновления.
   7. Правило добавления, обновления и удаления. Возможность работать
      с отношением как с одним операндом должна существовать не



                                  54


      только при чтении данных, но и при добавлении, обновлении и
      удалении данных.
  8. Правило      независимости    физических      данных. Прикладные
      программы и утилиты для работы с данными должны на логическом
      уровне оставаться нетронутыми при любых изменениях способов
      хранения данных или методов доступа к ним.
  9. Правило независимости логических данных. Прикладные программы
      и утилиты для работы с данными должны на логическом уровне
      оставаться нетронутыми при внесении в базовые таблицы любых
      изменений,     которые    теоретически      позволяют    сохранить
      нетронутыми содержащиеся в этих таблицах данные.
  10. Правило независимости условий целостности. Должна существовать
      возможность определять условия целостности, специфические для
      конкретной реляционной базы данных, на подъязыке реляционной
      базы данных и хранить их в каталоге, а не в прикладной программе.
  11. Правило независимости распространения. Реляционная СУБД не
      должна зависеть от потребностей конкретного клиента.
  12. Правило единственности. Если в реляционной системе есть
      низкоуровневый язык (обрабатывающий одну запись за один раз), то
      должна отсутствовать возможность использования его для того,
      чтобы обойти правила и условия целостности, выраженные на
      реляционном языке высокого уровня (обрабатывающем несколько
      записей за один раз).

5.2. Структурная часть реляционной модели

5.2.1. Отношение
      Реляционная база данных — это конечный (ограниченный) набор
отношений. Отношения используются для представления сущностей, а
также для представления связей между сущностями. Отношение — это
двумерная таблица, имеющая уникальное имя и состоящая из строк и
столбцов, где строки соответствуют записям, а столбцы — атрибутам.
Каждая строка в таблице представляет некоторый объект реального мира
или соотношения между объектами.
      Атрибут — это поименованный столбец отношения. Свойства
сущности, его характеристики определяются значениями атрибутов.
Порядок следования атрибутов не влияет на само отношение.
      Пусть имеется отношение r. Схемой отношения r называется
конечное множество имен атрибутов R = {A1, A2, ... Аn}. Заголовки
столбцов отношения содержат имена его атрибутов и, следовательно, все
вместе отражают его схему.
      Схема отношения ПРЕПОДАВАТЕЛЬ может быть представлена
следующим образом: {Таб_ном_преп, Фамилия, Должность}


                                  55


     Или

      ПРЕПОДАВАТЕЛЬ
      Таб_ном_преп
      Фамилия
      Должность

     Тогда заголовок отношения ПРЕПОДАВАТЕЛЬ примет вид

      Таб_ном_преп Фамилия Должность

       Отношение строится с учетом ряда факторов. Каждому имени
атрибута Аi, 1 >= i <= n ставится в соответствие множество допустимых
для соответствующего столбца значений. Это множество Di, называется
доменом данного имени атрибута.
       Каждая строка отношения является множеством значений, взятых по
одному из домена каждого имени атрибута. Домены являются
произвольными непустыми конечными или счетными множествами и
образуют множество:
       D = D1 ∪ D2 ∪ ... ∪ Dn.
       Отношение r со схемой R — это конечное множество отображений
{t1, t2, ... tp) из R в D. Причем каждое отображение t∈ r должно
удовлетворять следующему ограничению:
       t(Ai) принадлежит Di где 1 <= i <= n.
       Эти отображения называются кортежами. Каждый кортеж
отношения отображает экземпляр сущности, а атрибут отношения
отображает атрибут сущности.
       Множество кортежей называется телом отношения. Тело отношения
отражает состояние сущности, поэтому во времени оно постоянно
меняется. Тело отношения характеризуется кардинальным числом, которое
равно количеству содержащихся в нем кортежей.
       Одной из главных характеристик отношения является его степень.
Степень отношения определяется количеством атрибутов, которое в нем
присутствует. Эта характеристика отношения имеет еще названия: ранг и
арность. Отношение с одним атрибутом называется унарным, с двумя
атрибутами — бинарным, с тремя — тернарным, с n атрибутами n-арным.
Определение степени отношения осуществляется по заголовку отношения.
       Все названные характеристики отношения обозначены на рис. 5.1




                                  56


                 Рис. 5.1. Отношение СОТРУДНИК


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



                                 57


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

5.2.3. Реляционные ключи
      В отношении могут существовать несколько одиночных или
составных атрибутов, которые однозначно идентифицируют кортеж
отношения. Это — потенциальные ключи.
      Говорят, что множество атрибутов К = {Ai, Aj, ..., Ak} отношения r
является потенциальным ключом r тогда и только тогда, когда
удовлетворяются два независимых от времени условия:
      уникальность: в произвольный заданный момент времени никакие
      два различных кортежа r не имеют одного и того же значения для Ai,
      Aj, ..., Ак;
      минимальность: ни один из атрибутов Ai, Aj, .... Ак не может быть
      исключен из K без нарушения уникальности.
      Отношение может иметь несколько потенциальных ключей. Ключ,
содержащий два и более атрибута, называется составным ключом. Каждое
отношение обладает хотя бы одним возможным ключом, поскольку в
отношении не может быть одинаковых кортежей, а это значит, что, по
меньшей мере, комбинация всех его атрибутов удовлетворяет условию
уникальности. Потенциальные ключи, позволяя гарантированно выделить
точно один кортеж, обеспечивают основной механизм адресации на уровне
кортежей реляционной модели.
      Один из возможных ключей (выбранный произвольным образом)
принимается за его первичный ключ. Обычно первичным ключом
назначается тот возможный ключ, которым проще всего пользоваться при
повседневной работе. Остальные возможные ключи, если они есть,
называются альтернативными ключами. Для индикации связи между
отношениями используются внешние ключи.
      Внешний ключ — это набор атрибутов одного отношения,
являющийся потенциальным ключом другого отношения.
      Благодаря наличию связок между потенциальными и внешними
ключами обеспечивается взаимосвязь кортежей определенных отношений.


                                   58


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

      Пример
      Пусть рассматривается концептуальная модель, приведенная на рис.
5.2. Пример относится к предметной области, которую можно назвать
"Преподавательская деятельность". Данная модель содержит две
сущности: ЛЕКТОР и ПРЕДМЕТ, между которыми установлена связь
ЧИТАЕТ типа "многие ко многим". Характеристики сущностей
представлены изображенными на рисунке атрибутами. Связь ЧИТАЕТ не
имеет собственных атрибутов. Для преобразования концептуальной
модели в реляционную модель разработан ряд технологий, знакомство с
которыми состоится несколько позже.




             Рис. 5.2. Концептуальная модель для примера




                                  59


     В данный момент, не вдаваясь в подробности причин принятого
решения, просто приведем реляционную схему, соответствующую
указанной концептуальной модели. Она включает в себя три отношения:
ЛЕКТОР, ПРЕДМЕТ, ЧИТАЕТ. Схемы отношений и связи между ними
изображены на рис. 5.3.




         Рис. 5.3. Реляционная схема базы данных для примера

     На рис. 5.4 даны соответствующие отношения, заполненные
кортежами. Эти отношения имеют следующие характеристики:
     ЛЕКТОР — 4-арное отношение с первичным ключом Код_лек с
     кардинальным числом, равным четырем; атрибуты определены на
     следующих доменах: Код_лек — {целые: 1...4}, ФИО—
     {возможные фамилии и инициалы}, Уч_степень — {к.т.н., д.т.н.,
     нет степени}, Уч_звание — {Доцент, Профессор, Нет_звания};
     ПРЕДМЕТ — тернарное отношение с первичным ключом
     Код_предм. с кардинальным числом, равным шести; атрибуты
     определены на следующих доменах: Код_предм — {символьный}.
     Назв_предм — {Информатика, Программирование, Физика, ООП,
     Базы данных, Базы данных}, Кол_во_час — {целые: 54, 102, 36};
     ЧИТАЕТ — бинарное отношение с составным первичным ключом
     Код_лек, Код_предм, с кардинальным числом, равным шести, в
     котором присутствуют первичные ключи только читающих лекторов
     и первичные ключи только читаемых предметов.




                                 60


         Рис. 5.4. Реляционные отношения модели для примера

      Все приведенные отношения являются нормализованными,
поскольку атрибуты всех отношений имеют атомарные значения. Во всех
трех отношениях отсутствуют дублирующие кортежи.

5.3. Обновление отношений
      Для обновления отношений необходимо иметь возможность
выполнять следующие операции;
      добавление кортежа;
      удаление кортежа;
      изменение кортежа.
      Рассмотрим их по порядку.
      Операция добавления для отношения r со схемой (A1, A2, ..., An)
имеет вид:
      ADD (r: Al=dl, A2=d2, ..., An=dn).
      Если порядок атрибутов фиксирован, возможна более короткая
запись:
      ADD (r: dl, d2,…, dn).
      Выполнение этой операции может стать невозможным в ряде
случаев:


                                 61



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