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

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

Голосов: 3

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

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
          добавляемый кортеж не соответствует схеме определенного
      отношения;
      некоторые значения кортежей не принадлежат соответствующим
      доменам;
      описанный кортеж совпадает по ключу с кортежем, уже
      находящимся в отношении.
      Операция удаления предназначена для удаления кортежей. Она
может быть записана следующим образом:
      DEL (r; Al=dl, A2=d2,…, An=dn),
      или для упорядоченных атрибутов:
      DEL (r; dl, d2,…, dn) .
      Для удаления некоторого кортежа часто достаточно указать значение
некоторого ключа:
      DEL (r; ключ) .
      Если указанный кортеж в отношении отсутствует, то отношение
остается неизменным.
      Операция изменения предназначена для модификации части
кортежа. Для отношения r ее можно при {С1, С2, ... ,Ср} ∈ {А1, A2, ..., Аn}
определить так:
      СН (r; Al=dl, A2=d2, ..., An=dn; Сl=el, С2=e2, ..., Сp=ep).
      Если K = {B1, B2, ..., Bk} является ключом, то запись данной
операции может быть сокращена:
      СН (r; Bl=dl, B2=d2, ..., Bk=dk; Сl=el, С2=e2, ..., Сp=ep).
      Возможные ошибки в данном случае те же, что и у предыдущих
операций:
      указанный кортеж не существует;
      изменения имеют неправильный формат;
      используемые значения не принадлежат соответствующим доменам.

5.4. Целостность базы данных
      Поддержка целостности базы данных реализуется посредством ряда
ограничений, накладываемых на данные.
      Первый тип ограничений проистекает из того факта, что каждый
атрибут определяется на своем домене, или наоборот: домен атрибута
задает множество значений, которые может принимать атрибут. Указанное
ограничение называется ограничением атрибута.
      Важными понятиями в теории реляционных баз данных являются
категорная целостность и целостность на уровне ссылок.
      Категорная целостность ограничивает набор значений первичных
ключей базовых отношений. Такого рода целостность заключается в
следующем: кортеж не может записываться в БД до тех пор, пока значения
его ключевых атрибутов не будут полностью определены. Иными словами:
никакой ключевой атрибут любого кортежа отношения не может


                                    62


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



                                 63


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

6. Проектирование базы данных

6.1. Избыточность данных и аномалии обновления в БД
      Избыточность данных в БД относится к нежелательным явлениям,
поскольку ведет к увеличению объема памяти, необходимого для
физического хранения отношений. Избыточность вызывается, прежде
всего, дублированием данных.
      Вот характерный пример отношения (табл. 6.1), содержащего
нежелательную избыточность:

     Таблица 6.1. Отношение СТУДЕНТ
     Ном_зач_кн ФИО_студента Код_группы ФИО_старосты      Куратор

     20-Т-201   Иванов С.И.   20-Т-11    Рябов В.С.    Доц. Фок И.И.
     20-Т-215   Петров Я.Р.   20-Т-12    Сизов М.М.    Доц. Докин С.С.
     20-Т-217   Рябов В.С     20-Т-11    Рябов В.С.    Доц. Фок И.И.
     20-Т-211   Сенова А.Л.   20-Т-11    Рябов В.С.    Доц. Фок И.И.


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


                                  64


     Различают три вида аномалий в базе данных:
     аномалии включения;
     аномалии удаления;
     аномалии модификации.

      Аномалии включения
      В приведенном выше отношении аномалии включения возникают
при попытке создать новую группу и ввести ее в отношение при том
условии, что в нее еще не зачислен ни один студент. Ввод такой
информации в подобной ситуации требует присвоения значения NULL
всем атрибутам описания студента, в том числе и атрибуту Ном_зач_кн,
который является первичным ключом данного отношения. Но реализация
такой попытки приведет к нарушению категорней целостности, а значит,
система ее обязана отклонить.
      Результатом анализа является вывод о том, что в отношении табл. 6.1
присутствуют аномалии включения, а, следовательно, это отношение
должно быть преобразовано таким образом, чтобы от них избавиться.
      Структура отношений, содержащая ту же информацию, что и
отношение СТУДЕНТ, но лишенная аномалий включения, представлена в
табл. 6.2 и 6.3.

     Таблица 6.2 Отношение СТУДЕНТ
      Ном_зач_кн    ФИО_студента    Код_группы
       20-Т-201      Иванов С.И.      20-Т-11
       20-Т-215      Петров Я.Р.      20-Т-12
       20-Т-217      Рябов В.С.       20-Т-11
       20-Т-211      Сенова А.Л.      20-Т-11

     Таблица 6.3 Отношение ГРУППА
      Код_группы   ФИО_старосты         Куратор

      20-Т-11      Рябов В.С.      Доц. Фок И.И.
      20-Т-12      Сизов М.М.      Доц. Докин С.С.

     Аномалии удаления
     Вернемся к анализу отношения, представленного в табл. 6.1. При
удалении из этого отношения кортежа:
     20-Т-215 Петров Я.P. 20-T-12 Сизов М.М. Доц. Докин С.С.
     из базы данных будут удалены все сведения о группе 20-Т-12. Такая
ситуация представляет собой аномалию удаления.
     Для исключения из базы данных аномалии удаления это отношение
должно быть преобразовано. Причем преобразования должны быть
проведены точно такие же, какие были проведены для исключения
аномалии включения.


                                   65


      Аномалии модификации
      Такая аномалия возникает при попытке изменить что-либо
касающееся сведений о группе обучения студента. Допустим, что в группе
20-Т-11 решили назначить нового старосту, например, Сенову А.Л.
      В такой ситуации необходимо просмотреть все кортежи отношения и
в каждом кортеже значение атрибута ФИО_старосты заменить Рябов В.С.
на Сенова А.Л.
      Появление аномалии модификации можно заблокировать, если опять
же прибегнуть к преобразованию отношения из табл. 6.1. Эти
преобразования точно такие же, которые были использованы для
исключения аномалий включения и удаления. Действительно, смена
старосты группы требует изменения значения атрибута ФИО_старосты
только в одном кортеже отношения табл. 6.3.

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

6.2. Нормализация отношений
      Для устранения рассмотренных выше недостатков и применяется
процесс нормализация отношений. Данный процесс — это формальный
метод анализа отношений на основе их первичных или потенциальных
ключей и существующих функциональных зависимостей. Он включает ряд
формальных правил, используемых для проверки всех отношений базы
данных. Различают:
      1НФ — первую нормальную форму;


                                  66


     2НФ — вторую нормальную форму;
     ЗНФ — третью нормальную форму;
     НФБК — нормальную форму Бойса — Кодда;
     4НФ — четвертую нормальную форму;
     5НФ — пятую нормальную форму.
     Каждая нормальная форма налагает определенные ограничения на
данные. Эти ограничения вводятся в каждом конкретном отношении, и
соблюдение этих ограничений в отношении связано уже с наличием
нормальной формы.
     1НФ, 2НФ, ЗНФ— ограничивают зависимость непервичных
     атрибутов от ключей.
     НФБК — ограничивает зависимость первичных атрибутов.
     4НФ — формулирует ограничения на виды многозначных
     зависимостей.
     5НФ — вводит другие типы зависимостей: зависимости соединений.
     Процесс перехода от нормальной формы более низкого уровня к
нормальной форме более высокого уровня и называется нормализацией
отношений (НО).
     Для реляционных баз данных необходимо, чтобы все отношения
базы данных обязательно находились в 1НФ. Нормальные формы более
высокого порядка могут использоваться разработчиками по своему
усмотрению. Однако следует стремиться к тому, чтобы довести уровень
нормализации базы данных хотя бы до ЗНФ, тем самым, исключив из базы
данных избыточность данных и аномалии обновления.

6.2.1. Функциональные зависимости
      Функциональная зависимость определяется для атрибутов,
находящихся в одном и том же отношении в 1НФ. Функциональная
зависимость является семантическим свойством атрибутов отношения.
      Пусть дана схема отношения R(А1, А2, ...., Аn).
      Атрибут А2 функционально зависит от атрибута А1 если каждому
значению А1 соответствует единственное значение А2 (т. е. каждый
кортеж, имеющий одно и то же значение А1, должен иметь одно и то же
значение А2)
      Обозначается подобная ситуация так: А1 → А2. Левая часть
функциональной зависимости называется детерминантом, а правая часть
— зависимой частью. Отсутствие функциональной зависимости
обозначается А -/→ В.
      Рассмотренная выше функциональная зависимость — это F-
зависимость.
      Дадим более общее формальное определение функциональных
зависимостей.



                                 67


    Пусть r-отношение со схемой R, а X, Y— подмножества R.
Отношение r удовлетворяет функциональной зависимости X → Y, если для
любых двух кортежей t1 и t2 в r t1(X) = t2(X), то t1(Y) = t2(Y).

6.2.2. Аксиомы вывода
      Для отношения r(R) в любой момент существует некоторое
семейство F-зависимостей, которым это отношение удовлетворяет. Причем
одно состояние отношения может удовлетворять F-зависимости, а другое
— нет. Требуется выявить семейство F-зависимостей F, которому
удовлетворяют все допустимые состояния r.
      Множество функциональных зависимостей, применимых к
отношению r(R), конечно, так как существует только конечное число
подмножеств множества R. Таким образом, можно найти все F-
зависимости, которым удовлетворяет r, перебрав все возможные. Время
поиска можно сократить в том случае, если известны некоторые F-
зависимости из F. В подобной ситуации сокращение времени поиска
происходит часто из-за того, что остальные F-зависимости можно
получить, использую аксиомы вывода.
      Аксиома вывода — это правило, устанавливающее, что если
отношение удовлетворяет определенным F-зависимостям, то оно должно
удовлетворять к некоторым другим F-зависимостям.
      Ниже приведены шесть аксиом вывода для F-зависимостей. В их
формулировках используется обозначение r для отношения на R, и W, X,
У, Z для подмножеств R.
      Запишем кратко все аксиомы.
      F1. Рефлексивность: X → X.
      F2. Пополнение: Х → Y влечет за собой XZ → Y.
      F3. Аддитивность: Х → Y и Х → Z влечет за собой Х → YZ.
      F4. Проективность: Х → YZ влечет за собой Х → Y.
      F5-Транзитивность: Х → Y и Y → Z влечет за собой Х → Z.
      F6. Псевдотранзитивность: Х → Y и YZ → W влечет за собой ХZ →
      W.

6.2.3. Первая нормальная форма
      Отношение находится в первой нормальной форме, если все его
атрибуты имеют простые (атомарные) значения. Другими словами,
значения в домене каждого атрибута отношения не являются ни списками,
ни множествами простых или сложных значений.
      Определить понятия атомарности трудно. Значение, атомарное в
одном приложении, может быть неатомарным в другом. Можно
руководствоваться общим принципом, что значение не атомарно, если в
приложении оно используется по частям. Рассмотрим пример отношения,
представленного в табл. 6.4.

                                 68


     Таблица 6.4. Отношение РОЖДЕНИЕ
     Имя         Дата рождения
     Анна        5 марта 1986
     Александр   25 января 1987
     Ольга       1 ноября 1987
     Федор       14 сентября 1986


      Если значение атрибута Дата рождения предполагается
использовать целиком, то в этом случае данное отношение находится в
1НФ. Если бы потребовалось выделить и отдельно использовать, скажем,
год, число, месяц, то это отношение не находилось бы в 1НФ, так как
требуемые данные являются только частями значения атрибута Дата
рождения. Чтобы перевести такое отношение в 1НФ, атрибут Дата
рождения должен быть разбит на части так, как показано в табл. 6.5.

     Таблица 6.5. Отношение РОЖДЕНИЕ
     Имя            День рождения        Месяц рождения   Год рождения
     Анна                  5             Март             1986
     Александр            25             Январь           1987
     Ольга                 1             Ноябрь           1987
     Федор                14             Сентябрь         1986


      Или, например, табл. 6.6 является ненормализованной, и она не
находится в 1НФ потому, что включает величины, являющиеся
совокупностью атомарных значений. Чтобы получить отношение РОД,
находящееся в 1НФ, необходимо его представить так, как это сделано в
табл. 6.7.

     Таблица 6.6. Ненормализованная таблица РОД
     Имя                              Пол
     {Александр, Федор}               Мужской
     Ольга                            Женский


     Таблица 6.7. Отношение РОД
     Имя                    Пол
     Александр              Мужской
     Федор                  Мужской
     Ольга                  Женский




                                    69


6.2.4. Вторая нормальная форма
      Вторая и третья нормальные формы возникли в результате
стремления избежать аномалий обновления данных при работе с БД и
избавиться от информационной избыточности в отношениях.
      Вторая нормальная форма применяется к отношениям с составными
ключами, т. е. к таким отношениям, первичный ключ которых состоит из
двух или более атрибутов. Отношение, у которого первичный ключ
включает только один атрибут, всегда находится во 2НФ.
      Дадим определения новых понятий.
      Определение     1.    Атрибут    называется   посторонним   для
функциональной зависимости Х → Y, если он может быть удален из
правой или левой части функциональной зависимости без изменений
транзитивного замыкания F+ множества F.
      Определение 2. Функциональная зависимость Х → Y называется
редуцированной слева, если X не содержит атрибута Z, постороннего для
функциональной зависимости Х → Y. Если функциональная зависимость
Х → Y редуцирована слева, то Y является полностью зависящим oт X. В
противном случае Y частично зависит от X.
      Определение 3. Для данной схемы отношения R атрибут А в R и
множество функциональных зависимостей F на R атрибут А называется
первичным в R относительно F, если А содержится в каком-нибудь ключе
схемы R. В противном случае А называется непервичным в R.
      Итак, схема отношения R находится во 2НФ относительно F, если
она находится в 1НФ, и каждый непервичный атрибут функционально
полно зависит от первичного ключа.
      Схема всей БД имеет 2НФ относительно F, если каждая ее схема
отношения находится относительно F во 2НФ.
      Рассмотрим отношение КОНСУЛЬТАЦИИ_ДИПЛОМНИКОВ со
схемой:
      (Таб_Ном_преп, Ном_зач_кн, Дата, ФИО_преп, Должность,
      ФИО_студ, Тема_диплома, Время, Аудитория, Вместимость).
      Это отношение содержит информацию о том, какой преподаватель
консультирует определенного дипломника, а также дату, время
консультации и аудиторию с ее вместимостью, где она должна
проводиться. Обозначим основные зависимости этого отношения.
      (Таб_Ном_преп, Ном_зач_кн, Дата) → (ФИО_преп, Должность,
      ФИО_студ, Тема_липлома, Время, Аудитория, Вместимость).
      Описательные атрибуты преподавателя ФИО_преп, Должность
зависят только от части первичного ключа. Данную ситуацию определяет
зависимость:
      Таб-Ном_преп → (ФИО_преп, Должность).



                                 70


      Описательные атрибуты студента ФИО_студ, Тема_диплома также
зависят только от части первичного ключа и не зависят от остальных
атрибутов ключа, то есть имеется зависимость вида:
      Ном_зач_кн → (ФИО_студ. Тема_диплома).
      Отсутствие полной функциональной зависимости каждого
непервичного атрибута отношения от первичного ключа, как и в других
рассмотренных здесь примерах, является источником аномалий
обновления и вносит свою долю избыточности в базу данных. Устранение
данных отрицательных явлений осуществляется путем декомпозиции
исходного отношения на три со следующими схемами:
      ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп, ФИО_преп, Должность);
      СТУДЕНТ (Ном_зач_кн, ФИО_студ, Тема_диплома);
      КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,
      Аудитория, Вместимость).

6.2.5. Третья нормальная форма
      Рассмотрим транзитивную зависимость следующего типа: если А →
В, В -/→ А (В не является ключом), В → С, то А → С.
      В этом случае считается, что С транзитивно зависит от А.
      Транзитивная зависимость вызвана наличием в отношении двух
семантических зависимостей различных типов.
      Схема отношения находится в третьей нормальной форме
относительно множества функциональных зависимостей F, если она
находится в 1НФ и ни один из непервичных атрибутов в R не является
транзитивно зависимым от ключа для R.
      Схема всей БД находится в ЗНФ относительно F, если каждая схема
отношения находится в ЗНФ относительно F.
      Рассмотрим схему базы данных примера предыдущего раздела.
      ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп, ФИО_преп, Должность);
      СТУДЕНТ (Ном_зач_кн, ФИО_студ, Тема_диплома);
      КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,
      Аудитория, Вместимость).
      Последнее отношение содержит транзитивную зависимость:
      (Таб_Ном_преп, Ном_зач_кн, Дата) → Аудитория →
Вместимость.
      Следовательно, это отношение не находится в ЗНФ со всеми
вытекающими из этого последствиями, и прежде всего следующими:
       если аудитория исключается из расписания консультаций, то о ней
       вообще теряются сведения;
       если аудитория перестроена и в результате изменилась ее
       вместимость, то придется просмотреть все кортежи и провести
       модификацию значений атрибута.



                                  71



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