Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
95
Добавлен:
09.02.2015
Размер:
1.63 Mб
Скачать
    1. Реляционная модель данных

Классификация СУБД по типу модели данных:

Дореляционные

Инвертированные списки (файлы)

Иерархические

Сетевые

Реляционные

Постреляционные

Объектно-реляционные

Объектно-ориентированные

Многомерные

Прочие (NoSQL)

Рассмотрим реляционную модель данных, в которой данные хранятся в виде двумерных таблиц.

Структура данных реляционной модели данных

Таблицы обладают следующими свойствами:

- каждая ячейка таблицы является одним элементом данных;

- каждый столбец содержит данные одного типа (числа, текст и т. п.);

- каждый столбец имеет уникальное имя;

- таблицы организуются так, чтобы одинаковые строки отсутствовали;

- порядок следования строк и столбцов произвольный.

Каждая таблица представляет собой отношение, описываемое атрибутами:

СТУДЕНТ = (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ).

Для идентификации записей выделяют следующие виды ключей – полей, определяющих запись:

- первичный: однозначно определяет запись;

- вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти несколько записей.

Ключ может быть простым, если он включает одно поле, или составным, если включает два и более полей. Если в отношении СТУДЕНТ нет однофамильцев, то первичным будет простой ключ – поле ФАМИЛИЯ. Иначе первичным будет составной ключ ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО.

Первичный ключ должен обладать следующими свойствами:

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

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

    1. Нормализация отношений

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

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

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

КНИГА = (АВТОР, НАЗВАНИЕ, ВЫХОДНЫЕ ДАННЫЕ)

не находится в первой нормальной форме, так как атрибут ВЫХОДНЫЕ ДАННЫЕ можно разделить на атрибуты ИЗДАТЕЛЬСТВО, ГОД, КОЛИЧЕСТВО СТРАНИЦ.

Отношение

СТУДЕНТ = (НОМЕР, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ГРУППА)

находится в первой нормальной форме, где поле НОМЕР является простым первичным ключом.

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

Функционально полной зависимостью не ключевых атрибутов называется зависимость, при которой в записи определенному значению ключа соответствует только одно значение не ключевого поля, при этом это поле не находится в функциональной зависимости ни от какой части составного ключа. Например, отношение СТУДЕНТ находится в первой и второй нормальных формах.

Отношение

УСПЕВАЕМОСТЬ = (НОМЕР, ФАМИЛИЯ, ДИСЦИПЛИНА, ОЦЕНКА)

находится в первой нормальной форме и имеет составной ключ НОМЕР + ДИСЦИПЛИНА. Это отношение не находится во второй нормальной форме, так как атрибут ФАМИЛИЯ функционально зависим от поля НОМЕР составного ключа. Чтобы привести это отношение ко второй нормальной форме необходимо разбить его на два связанных отношения:

УСПЕВАЕМОСТЬ = (НОМЕР, ДИСЦИПЛИНА, ОЦЕНКА),

СПИСОК = (НОМЕР, ФАМИЛИЯ).

Связь между отношениями осуществляется по полю НОМЕР.

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

Транзитивная зависимость присутствует в отношении, если существует два неключевых поля, первое из которых зависит от ключа, а второе от первого. Например, отношение СТУДЕНТ находится в третьей нормальной форме.

Отношение

ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, УЧ_СТЕПЕНЬ, ГРУППА)

не находится в третьей нормальной форме, так как поле УЧ_СТЕПЕНЬ зависит от поля ЛЕКТОР, но не от составного ключа, поэтому отношение необходимо разбить на два связанных отношения

ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, ГРУППА),

ПРЕПОДАВАТЕЛЬ = (ЛЕКТОР, УЧ_СТЕПЕНЬ).

Связь между отношениями осуществляется по полю ЛЕКТОР.