- •2. Реляционная модель данных
- •2.1. Определения и понятия
- •2.2. Первичные ключи и индексы
- •2.3. Реляционные отношения между таблицами
- •2.3.1. Отношение один-ко-многим
- •2.3.2. Отношение один-к-одному
- •2.3.3. Отношение многие-ко-многим
- •2.3.4. Связи между записями одной таблицы
- •2.4. Ссылочная целостность
- •2.5. Индексы
- •Упражнения и задачи
- •3. Нормализация отношений
- •3.1. Первая нормальная форма
- •3.2. Функциональные зависимости и детерминанты
- •3.3. Вторая нормальная форма
- •3.4. Третья нормальная форма
- •3.5. Нормальная форма Бойса-Кодда (нфбк)
- •3.6. Нормализация за и против
- •Контрольные вопросы
- •Упражнения и задачи
- •4. Операции с данными в реляционной модели
- •4.1. Объединение
- •4.2. Пересечение
- •4.3. Вычитание
- •4.4. Декартово произведение
- •4.5. Выбор
- •4.6. Проекция
- •4.7. Соединение
- •4.8. Деление
- •Упражнения и задачи
- •5. Запросы к бд
- •5.1. Простые запросы
- •5.2. Многотабличные запросы
- •5.3. Подзапросы
- •6. Сетевая модель данных
- •6.1. Исторический контекст
- •6.2. Основные понятия и определения
- •Торговый-агент
- •Строка-элемент
- •6.3. Преимущества и недостатки сетевых моделей
- •Упражнения и задачи
- •7. Иерархическая модель данных
- •7.1. Основные понятия и определения
- •7.2. Преимущества и недостатки иерархических моделей
- •Упражнения и задачи
- •Часть 2. Управление окружением базы данных
- •1. Администрирование баз данных
- •1.1. Функции абд
- •1.1.1. Работа с пользователями
- •1.1.2. Установление стандартов и процедур
- •1.2. Задачи абд
- •2. Защита базы данных
- •2.1. Идентификация пользователя
- •2.2. Проверка полномочий и представления данных
- •2.3. Шифровка
- •Метод поалфавитной подстановки
- •2.4. Секретность данных
- •4. Целостность данных
- •4.1. Контроль типов
- •4.2. Контроль изменений
- •4.3. Целостность на уровне ссылок
- •5. Параллельная работа с бд
- •5.1. Обработка транзакций
- •5.2. Параллельная работа с бд
- •Литература
2.5. Индексы
По определениям ключей (первичных или вторичных, см. п. 2.2) СУБД автоматически строит индексы, которые представляют собой механизмы быстрого доступа к хранящимся в таблицах данным.
Сущность индексов состоит в том, что они хранят отсортированные значения индексных полей (т.е. полей, по которым построен индекс) и указатель на запись в таблице. Например, пусть имеется таблица, показанная на рис. 2.11.
Порядковый № записи
|
Дата прихода товара
|
Наименование товара
|
Количество, кг
|
1 |
10.12.1999 |
Сахар |
10 |
2 |
12.12.1999 |
Картофель |
50 |
3 |
12.12.1999 |
Свекла |
20 |
4 |
14.12.1999 |
Сахар |
50 |
5 |
14.12.1999 |
Свекла |
10 |
6 |
16.12.1999 |
Сливы |
4 |
Рис. 2.11 Физическая структура таблицы
С логической точки зрения ее индексы выглядит так, как показано на рис. 2.12.
Индекс по дате прихода товара
|
Индекс по наименованию товара
|
Индекс по количеству
| |||
Дата прихода
|
№ записи
|
Наименование товара
|
№ записи
|
Количество
|
№ записи
|
10.12.99 |
1 |
Картофель |
2 |
4 |
6 |
12.12.99 |
2 |
Сахар |
1 |
10 |
1 |
12.12.99 |
3 |
Сахар |
4 |
10 |
5 |
14.12.99 |
4 |
Свекла |
3 |
20 |
3 |
14.12.99 |
5 |
Свекла |
5 |
50 |
2 |
16.12.99 |
6 |
Сливы |
6 |
50 |
4 |
Рис. 2.12. Логическая структура индексов
Обратите внимание: значения полей в индексе («Дата прихода», «Наименование товара», «Количество») сортируются по возрастанию, что существенно ускоряет поиск нужных значений. Если, например, нужно выбрать все записи с наименованием товара «Свекла», нет нужды просматривать всю таблицу. Достаточно найти в индексе, построенном по столбцу «Наименование товара», первый указатель на запись, содержащую товар «Свекла», и считать из таблицы эту запись, а затем повторить то же для всех иных указателей в индексе на записи с товаром «Свекла». Поскольку значения полей отсортированы, поиск первого указателя осуществляется специальными методами быстрого поиска и реализуется значительно быстрее, чем если бы поиск шел по неотсортированным полям таблицы. Такой метод доступа к записям таблицы называется индексно-последовательным, потому что:
поиск ведется по индексу, а не по таблице;
доступ начинается с первой строки, удовлетворяющей условию запроса или его части;
строки в индексе, начиная с первой найденной записи, просматриваются последовательно.
В том случае, если в условия запроса входят поля, по которым не построено индексов, ищется иной пригодный индекс, а если такого индекса нет, производится последовательный перебор записей таблицы БД (в некоторых СУБД, например, использующих технологию ADO, в этом случае может быть построен вспомогательный индекс).
Упражнения и задачи
Для заданных предметных областей определить:
объекты;
атрибуты.
ПРЕДМЕТНАЯ ОБЛАСТЬ (ПО) «ВЫСШЕЕ ОБРАЗОВАНИЕ ГОРОДА».
ПРЕДМЕТНАЯ ОБЛАСТЬ «СРЕДНЕЕ ОБРАЗОВАНИЕ».
ПРЕДМЕТНАЯ ОБЛАСТЬ «УЧЕБНЫЙ ПРОЦЕСС В ВУЗЕ».
ПРЕДМЕТНАЯ ОБЛАСТЬ «ПРОМЫШЛЕННЫЕ ПРЕДПРИЯТИЯ ГОРОДА».
ПРЕДМЕТНАЯ ОБЛАСТЬ «СБЫТ ГОТОВЫХ ИЗДЕЛИЙ».
ПРЕДМЕТНАЯ ОБЛАСТЬ «БОЛЬНИЦЫ ГОРОДА».
ПРЕДМЕТНАЯ ОБЛАСТЬ «ТЕАТРЫ ГОРОДА».
ПРЕДМЕТНАЯ ОБЛАСТЬ «ЦЕНТР КРАСОТЫ».
ПРЕДМЕТНАЯ ОБЛАСТЬ «КАДРЫ».
ПРЕДМЕТНАЯ ОБЛАСТЬ «АБОНЕМЕНТ ТЕХНИЧЕСКОЙ ЛИТЕРАТУРЫ».