- •Содержание
- •1. Основные понятия баз данных
- •1.1. Проектирование баз данных
- •1.2. Индексы и ключи в базах данных
- •2. Функциональные зависимости
- •2.1. Понятие функциональной зависимости
- •2.2. Метод синтеза
- •2.3. Аксиомы вывода
- •2.4. Применение аксиом вывода
- •2.5. Замыкание множества атрибутов относительно множества функциональных зависимостей
- •2.6. Эквивалентность двух систем функциональных зависимостей
- •2.7 Метод синтеза
- •2.8. Классы эквивалентности функциональных зависимостей с эквивалентными левыми частями
- •2.9. Составные функциональные зависимости и кольцевые покрытия
- •3. Нормализация баз данных
- •3.1. Декомпозиция таблицы на две таблицы без потери информации и с потерей информации
- •4. Иерархия в базах данных
- •4.1. Использование иерархии в базах данных
- •4.2. Инклюзивная и эксклюзивная иерархии
- •5. Сортировка и поиск записей в базах данных
- •5.1.Многофазная сортировка
- •7. Оптимизация запросов
- •7.1. Основные операции реляционной алгебры и их обозначения
- •8. Статистические данные, используемые для минимизации запросов
- •8.1. Анализ стоимости операций
- •8.2. Оценка размеров промежуточных отношений
- •8.2.1. Оценка размера результата операции объединения
- •8.2.2. Оценка размера результата операции пересечения
- •8.2.3. Оценка размера результата оператора проекции
- •8.2.4. Оценка размера результата оператора выбора
- •8.3. Выборка с условием равенства двух атрибутов
- •8.4. Выборка при условии неравенства двух атрибутов
- •8.5. Естественное соединение отношений с несколькими общими атрибутами
- •8.6. Соединение нескольких отношений
- •8.7. Оценка размеров результатов выполнения других операторов
- •8.7.1. Объединение
- •8.7.2. Пересечение
- •8.7.3. Разность
- •8.7.4. Удаление кортежей-дубликатов
- •8.7.5. Группирование и агрегирование
- •8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
- •8.9. Тождественные преобразования для операций реляционной алгебры
- •8.10. Алгебраические законы и планы запросов
- •8.10.1. Коммутативный и ассоциативный законы
- •8.11. Законы для "множественных" и "мультимножественных" версий операторов
- •8.11.1. Законы выбора
- •8.11.2. Некоторые тривиальные законы
- •8.11.3. Законы проекции
- •8.11.4. Законы соединения и декартова произведения
- •8.11.5. Законы, касающиеся удаления кортежей-дубликатов
- •8.11.6. Законы группирования и агрегирования
- •8.11.7. Закон деления
1.2. Индексы и ключи в базах данных
Таблица 1.7 – Таблица Сотрудники
|
Nsp |
F |
I |
O |
Raiting |
1 |
17 |
|
|
|
23 |
2 |
5 |
|
|
|
37 |
3 |
13 |
|
|
|
13 |
4 |
7 |
|
|
|
43 |
5 |
23 |
|
|
|
17 |
6 |
31 |
|
|
|
23 |
7 |
29 |
|
|
|
7 |
8 |
43 |
|
|
|
13 |
9 |
47 |
|
|
|
41 |
10 |
2 |
|
|
|
2 |
11 |
3 |
|
|
|
47 |
12 |
11 |
|
|
|
3 |
13 |
19 |
|
|
|
5 |
14 |
37 |
|
|
|
23 |
15 |
41 |
|
|
|
23 |
Рис.1.3 - Типичная вершина-лист В-дерева
Рис. 1.4 - Пример промежуточной вершины B-дерева
Рис. 1.5 - Пример B-дерева
2. Функциональные зависимости
2.1. Понятие функциональной зависимости
Схемой отношения R называется конечное множество имен атрибутов
{A1, A2,…,An }.
Функциональная зависимость (F-зависимость) является обобщением понятия ключа. В табллице 2.1 представлено отношение график (ПИЛОТ РЕЙС ДАТА ВРЕМЯ-ВЫЛЕТА). Это отношение показывает, какой пилот участвует в данном рейсе в данный день и каково время вылета самолета. Не любое сочетание значений атрибутов ПИЛОТ, РЕЙС, ДАТА и ВРЕМЯ-ВЫЛЕТА допустимо в расписании. Здесь, в частности, накладываются следующие ограничения.
1. Для каждого рейса назначается только одно время вылета.
2. Для данного пилота, даты и времени вылета возможен только один рейс.
3. Для данного рейса и даты назначается только один пилот.
Таблица 2.1 - Отношение график (ПИЛОТ РЕЙС ДАТА ВРЕМЯ-ВЫЛЕТА)
ПИЛОТ |
РЕЙС |
ДАТА |
ВРЕМЯ-ВЫЛЕТА |
Кушинг |
83 |
9 авг. |
10:15 |
Кушинг |
116 |
10 авг. |
13:25 |
Кларк |
281 |
8 авг. |
5:50 |
Кларк |
301 |
12 авг. |
18:35 |
Кларк |
83 |
11 авг. |
10:15 |
Чин |
83 |
13 авг. |
10:15 |
Чин |
116 |
12 авг. |
13:25 |
Коупли |
281 |
9 авг. |
5:50 |
Коупли |
281 |
13 авг. |
5:50 |
Коупли |
412 |
15 авг. |
13:25 |
Эти ограничения являются примерами F-зависимостей. Нестрого говоря, F-зависимость имеет место, когда значения кортежа на одном множестве атрибутов единственным образом определяют эти значения на другом множестве атрибутов. Указанные выше ограничения можно сформулировать так:
ВРЕМЯ функционально зависит от РЕЙСА.
РЕЙС функционально зависит от {ПИЛОТ, ДАТА, ВРЕМЯ}.
ПИЛОТ функционально зависит от {РЕЙС, ДАТА}.
Обычно порядок в этих последовательностях изменяется и говорят, что РЕЙС, ДАТА функционально определяют ПИЛОТ, или, символически: {РЕЙС, ДАТА} ПИЛОТ. (Напомним, что для одиночного атрибута допускается обозначение А вместо {А}.)
Дадим строгое определение понятий, используя реляционные операторы. Пусть r — отношение со схемой R, X и Y — подмножества R. Отношение r удовлетворяет функциональной зависимости X Y, если πY {σX=х (r)) имеет не более чем один кортеж для каждого Х-значения х. Один( из способов интерпретировать это выражение — рассмотреть два кортежа t1 и t2 в r. Если t1 (X) = t2 (X), то t1 (Y) = t2 (Y). В F-зависимости X Y подмножество X называется левой частью, a Y — правой частью.