Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы_данных_29.09.05.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.29 Mб
Скачать
  1. 1.20. Таблица реляционной базы данных

О тношения обладают следующими свойствами:

  • нет одинаковых кортежей, т.е. все записи различаются по уникальному идентификатору – первичному ключу;

  • кортежи не упорядочены сверху вниз;

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

  • в се значения атрибутов – скаляры, при этом элементы столбца имеют одинаковую природу (построены на одном домене).

Такое отношение является нормализованным, т.е. находится в первой нормальной форме.

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

  • уникальная идентификация выборки;

  • неизбыточность (удаление любого атрибута из ключа лишает его свойства уникальности).

Наряду со смысловым ключом может использоваться инкрементный ключ (счетчик), состоящий из одного поля, которое автоматически наращивается в системе по мере включения новых записей. С точки зрения языка манипулирования данными SQL не имеет значения, применяется инкрементный ключ или смысловой.

Нормальные формы отношений

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

Рациональные варианты группировки атрибутов в отношения должны отвечать следующим требованиям:

  1. выбранные для отношений первичные ключи должны быть минимальными;

  2. в ыбранный состав отношений базы данных должен отличаться минимальной избыточностью атрибутов;

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

  4. перестройка набора отношений при введении новых типов данных должна быть минимальной;

  5. разброс времени ответа на различные запросы должен быть незначительным.

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

Функциональная зависимость существует, когда один или более атрибутов уникально определяют другие один или более атрибутов:

X – множество определяющих атрибутов;

Y – множество определяемых атрибутов;

X -> Y.

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

Первая нормальная форма вытекает из самого определения отношения. Определение второй и третьей нормальных форм основано на исследовании транзитивных зависимостей между атрибутами.

Вторая нормальная форма требует, чтобы в отношении не существовало зависимости каких-либо неключевых атрибутов от части первичного ключа:

K -> T -> A, где

K – ключ;

T – подмножество ключа;

A – неключевой атрибут.

Например: ГРУППА (курс, номер группы, специальность, количество студентов, староста);

номер группы -> специальность.

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

Вставить (команда INSERT) информацию по новой специальности нельзя, не вводя информацию по группе; при удалении (команда DELETE) информации по всей группе теряется информация о специальности; при изменении (команда UPDATE) информации по специальности необходимо изменить все соответствующие записи групп.

При нормализации из схемы отношения «ГРУППА» извлекается атрибут «специальность» и выводится в отдельное отношение. Получается отношение во второй нормальной форме:

ГРУППА (курс, номер группы, количество студентов, староста);

СПЕЦИАЛЬНОСТЬ_ГРУППА (номер группы, специальность).

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

Третья нормальная форма требует, чтобы не существовало транзитивных связей между неключевыми атрибутами (каждый кортеж состоит из первичного ключа и взаимно независимых атрибутов, описывающих сущность):

K -> Y -> A, где

K – ключ;

Y, A – неключевые атрибуты.

Например: РАСПИСАНИЕ (курс, номер группы, день недели, пара, предмет, преподаватель, аудитория);

предмет -> аудитория.

Имеет место функциональная зависимость между неключевыми атрибутами «предмет» и «аудитория» (будем считать, что аудитория закреплена за определенным предметом).

Вставить (команда INSERT) информацию по новой аудитории нельзя, не вводя информацию о предмете; при удалении (команда DELETE) информации о предмете теряется информация об аудитории; при изменении (команда UPDATE) информации об аудитории необходимо просмотреть всю таблицу расписания.

Для исключения аномальных явлений при ведении БД следует исходное отношение разбить на два:

РАСПИСАНИЕ (курс, номер группы, день недели, пара, предмет, преподаватель);

ПРЕДМЕТ_АУДИТОРИЯ (предмет, аудитория).

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

Целостность объектов – в базе не допускается, чтобы какой-либо атрибут из первичного ключа отношения принимал неопределенное значение.

Ссылочная целостность – БД не должна содержать несогласованных значений внешних ключей. Если отношение R2 имеет среди своих атрибутов какой-то внешний ключ (FK), который соответствует первичному ключу (PK) отношения R1, то каждое значение FK должно быть равно значению PK.

СУБД поддерживают ссылочную целостность на операциях обновления и удаления записей.

Операция удаления (DELETE):

  • при удалении первичного ключа (PK), на который есть ссылка во вторичных ключах (FK), для ограничения выполнения операции задается опция DELETE RESTRICTED;

  • при удалении первичного ключа (PK), на который есть ссылка во вторичных ключах (FK), для удаления всех соответствующих записей задается опция DELETE CASCADE.

Операция обновления (UPDATE):

  • при корректировке первичного ключа (PK), на который есть ссылки во вторичных ключах (FK), для ограничения выполнения операции задается опция UPDATE RESTRICTED;

  • при корректировке первичного ключа (PK), на который есть ссылки во вторичных ключах (FK), для изменения всех соответствующих записей задается опция UPDATE CASCADE.

Алгебра отношений

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

Все множество операций можно разделить на два подмножества:

  1. теоретико-множественные операции: пересечение, объединение, вычитание и декартово произведение;

  2. специальные операции: проекция, ограничение, соединение, деление.

Операции реляционной алгебры и конструкции языка SQL приведены на модели тестовой базы данных по поставкам деталей (рис. 1.21, 1.22).