- •Базы данных
- •Лекция 1 Хранение данных Данные, информация
- •Системы хранения данных на основе файлов
- •База данных
- •Требования к субд
- •Администратор бд (абд)
- •Лекция 2 Модели данных Независимость данных
- •Модель, схема
- •Сетевая модель
- •Лекция 3 Ранние модели Иерархическая модель
- •Лекция 4 Пример базы данных, построенной на сетевой модели Постановка задачи
- •Диаграмма
- •Описание на яод
- •Лекция 5 Реляционная модель Принципы
- •Уточнения
- •Лекция 6 Методы хранения данных и доступа к ним
- •Последовательный метод
- •Прямой метод
- •Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •Инвертированные списки
- •Хеширование
- •Лекция 7 Реляционная алгебра: определения, изменение отношений
- •Изменение отношений во времени.
- •Лекция 8 Операции реляционной алгебры
- •Булевы операции
- •Выбор; свойства выбора
- •Проекция; свойства проекции
- •Лекция 9 Операции реляционной алгебры (продолжение) Соединение
- •Свойства соединения
- •Лекция 10 Операции реляционной алгебры (продолжение)
- •Деление
- •Постоянные отношения. Переименование атрибутов
- •Эквисоединение, естественное и -соединение
- •Реляционная алгебра. Полнота ограниченного множества операторов
- •Операторы расщепления и фактора
- •Лекция 11 Язык структурных запросов sql
- •Начальные понятия
- •Стандарт ansi
- •Типы данных
- •Интерактивный и встроенный sql
- •Синтаксис
- •Подразделы sql
- •Простейшие действия
- •Функции агрегирования
- •Группировка
- •Возможности форматирования
- •Лекция 12 Язык структурных запросов sql (продолжение) Соединение
- •Вложенные запросы
- •Связанные запросы
- •Предикаты, определенные на подзапросах
- •Объединение
- •Изменение базы данных
- •Лекция 13 Понятие о нормальных формах
- •1 Нормальная форма (1нф)
- •2 Нормальная форма (2нф)
- •3 Нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •4 Нормальная форма (4нф)
- •5 Нормальная форма (5нф) – проекция/соединение
- •Лекция 13 Проектирование данных Процессы проектирования
- •Концептуальное проектирование
- •Логическое проектирование
- •Средства создания модели
- •Лекция 14 Функциональные зависимости
- •Аксиомы вывода
- •Ориентированный ациклический граф вывода
- •Определение реляционной базы данных
- •Представление множества функциональных зависимостей
- •Лекция 15 Покрытия функциональных зависимостей
- •Лемма об эквивалентности фз
- •Неизбыточные покрытия
- •Посторонние атрибуты
- •Канонические покрытия
- •Структура неизбыточных покрытий
- •Оптимальные покрытия
- •3 Нормальная форма
- •Нормализация через декомпозицию и посредством синтеза
- •Нормальная форма Бойса-Кодда
- •Литература
Уточнения
Определение. Пусть существует n доменов D1,…,Dn. Отношение R представляется как подмножество D1D2…Dn, т.е. подмножество упорядоченных n-ок (d1,d2,…,dn) – кортежей. Домен Di представлен i-м элементом. Вместо упорядоченности чаще используют уникальные имена.
Не каждое отношение может быть объектом реляционной модели. Важное свойство отношений реляционной модели – нормализованность.
Определение. Отношения нормализованы, если каждый его атрибут атомарен, то есть, не заменим другим отношением.
В отличие от предыдущих моделей данных, в реляционной модели не заданы явные ссылки между таблицами или атрибутами. Между тем, для того, чтобы база данных отражала реальную взаимосвязь объектов предметной области, необходимо как-то ссылаться на данные. В реляционной модели это достигается использованием ключей.
Определение. В отношении могут быть несколько одиночных или составных атрибутов, однозначно идентифицирующих кортеж. Это возможные ключи. Один из них объявляется первичным.
Так как ключ однозначно определяет кортеж, упорядоченность кортежей в отношении не имеет значения. Отношения можно рассматривать как множества кортежей. В соответствии с этим представлением считается, что в отношении нет одинаковых кортежей.
Таким образом, мы сформулировали следующие свойства отношений:
Нормализованные отношения представляются в виде табличной структуры.
Упорядоченность кортежей теоретически несущественна.
Все кортежи различны.
В терминологии реляционной модели следующие понятия рассматриваются как синонимы:
Таблица синоним Отношения,
Столбец синоним Атрибута,
Строка синоним Кортежа.
Наконец, осталось дать следующее
Определение. Реляционная БД – совокупность изменяющихся во времени нормализованных отношений, которые могут быть связаны через общие домены.
В дальнейших лекциях будет уделено внимание отдельным вопросам реляционной теории, которая лежит в основе модели. Хорошее теоретическое обоснование – одно из основных ее достоинств.
Основные достоинства реляционной модели – теоретическое обоснование, простота определения данных и их реорганизации.
Недостаток – проблемы с организацией связи. Он компенсируется различной степенью нормализации, однако явная связь (сеть, иерархия) чаще более эффективна по времени.
Пример
В приведенном фрагменте БД регистрируются оценки, полученные студентами на экзаменах. Перечень предметов и список преподавателей приведены в отдельных таблицах. Ведомость представлена двумя таблицами: заголовком и списком студентов. Все таблицы связаны ключами. Таблица, из которой производится ссылка, должна содержать так называемый внешний ключ. Он может не быть ключом данной таблицы, но его домен совместим с доменом ключа таблицы, на которую ссылается данная.
Заголовок ведомости
Номер ведомости |
Код предмета |
Код преподавателя |
Дата сдачи |
Семестр |
Группа |
1 |
10 |
7 |
03.01.2005 |
5 |
306 |
2 |
5 |
3 |
07.01.2005 |
7 |
406 |
Ключи – (1) номер ведомости; (2) код предмета, семестр, группа.
Внешние ключи – (1) код предмета; (2) код преподавателя.
Код ведомости имеет уникальное значение. Код предмета, семестр, группа тоже однозначно определяют ведомость. Внешние ключи «Код предмета» и «Код преподавателя» служат для связи с таблицами Предметы и Преподаватели.
Предметы
Код предмета |
Название предмета |
5 |
Машинная графика |
10 |
Базы данных |
Ключи – (1) код предмета.
Таблица представляет собой простой справочник, позволяющий уменьшать избыточность в базе данных.
Преподаватели
Код преподавателя |
ФИО преподавателя |
Должность преподавателя |
3 |
Чернышов Л.Н. |
Доцент |
7 |
Лукин В.Н. |
Доцент |
Ключи – (1) код преподавателя; (2) ФИО преподавателя.
Таблица, как и предыдущая, служит справочником. Она имеет атрибут «Должность», который тоже может быть представлен кодом.
Успеваемость
Номер ведомости |
Номер студента |
Оценка |
1 |
1 |
5 |
1 |
2 |
4 |
2 |
1 |
5 |
2 |
2 |
3 |
1 |
3 |
3 |
2 |
3 |
5 |
Ключи – (1) номер ведомости, номер студента.
Внешние ключи – (1) номер ведомости; (2) номер студента.
Основная таблица, отражающая успехи студентов. Каждый кортеж однозначно определяется уникальным кодом ведомости и номером студента в списке группы. Для получения дополнительных атрибутов, например, номера группы, используется внешний ключ «Код ведомости» (связь с таблицей Заголовок ведомости), для расшифровки фамилии студента служит внешний ключ «Номер студента».
Студенты
Номер студента |
Группа |
Номер зачетки |
ФИО студента |
1 |
306 |
9708104 |
Иванов И.И. |
2 |
306 |
9708035 |
Петров П.П. |
3 |
306 |
9708117 |
Сидоров С.С. |
1 |
506 |
9508017 |
Алексеев А.А. |
1 |
506 |
9508027 |
Борисов Б.Б. |
1 |
506 |
9508037 |
Васильев В.В. |
Ключи – (1) группа, номер студента; (2) номер зачетки.
Каждый из ключей однозначно определяет студента. В зависимости от задачи может использоваться тот или иной ключ, который становится первичным. В нашем случае первичным будет ключ (1).
Конец примера
