- •Введение
- •1. Основные понятия и определения
- •1.1. Информационные системы и банк данных
- •1.2. Назначение и основные компоненты банка данных
- •1.3. Архитектура базы данных. Физическая и логическая независимость данных
- •1.4. Системы управления базами данных
- •1.5. Оперативные и аналитические системы
- •1.6. Требования, предъявляемые к базам данных
- •2. Модели данных
- •2.1. Иерархическая модель данных
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •2.6. Объектно-ориентированная модель
- •2.7. Объектно-реляционная модель данных
- •3. Реляционная модель данных
- •3.1. Основные определения
- •3.1.1. Определение отношения, домена, кортежа, реляционной базы данных, ключей
- •3.1.2. Классы отношений
- •Объектное отношение "Детали"
- •3.1.3. Индексирование
- •3.1.4. Связи между отношениями (таблицами) Обычно база данных представляет собой набор связанных таблиц. Связывание таблиц дает следующие преимущества:
- •3.1.5. Обеспечение целостности данных
- •3.2. Операции реляционной алгебры
- •3.2.1. Основные понятия
- •3.2.2. Базовые теоретико-множественные операции реляционной алгебры
- •3.2.3. Специальные операции реляционной алгебры
- •3.3. Реляционное исчисление
- •3.4. Язык запросов по образцу qbe
- •3.5. Структурированный язык запросов sql
- •3.5.1. История развития sql
- •3.5.2. Общая характеристика языка
- •3.5.3. Структура sql
- •3.5.4. Оператор выбора select
- •3.5.5. Применение агрегатных функций и группировки
- •3.5.6. Раздел order by и ключевое слово top
- •3.5.7. Вложенные запросы
- •3.5.8. Внутренние и внешние объединения
- •3.5.9. Перекрестные запросы
- •3.5.10. Операторы манипулирования данными
- •3.5.11. Запросы на создание таблиц
- •3.5.12. Использование языка определения данных
- •Строка данных
- •Числовые типы данных.
- •3. Дата и время.
- •4. Проектирование баз данных
- •4.1. Этапы проектирования бд
- •4.2. Проблемы проектирования реляционных баз данных
- •Сотрудники_Телефоны_Комнаты
- •Сотрудники_Телефоны_Комнаты
- •4.3. Нормализация отношений
- •4.4. Метод сущность-связь
- •Средства автоматизации проектирования
- •4.5.1. Основные определения
- •4.5.2. Модели жизненного цикла
- •4.5.3. Модели структурного проектирования
- •4.5.4. Объектно-ориентированные модели
- •4.5.5. Классификация case-средств
- •5. Физические модели баз данных
- •5.1. Файловые структуры, используемые в базах данных
- •5.2. Хешированные файлы
- •5.2.1. Стратегия разрешения коллизий с областью переполнения
- •5.2.2. Организация стратегии свободного замещения
- •5.3. Индексные файлы
- •5.3.1. Файлы с плотным индексом, или индексно-прямые файлы
- •5.3.2. Файлы с неплотным индексом, или индексно-последовательные файлы
- •5.3.3. Организация индексов в виде b-tree (в-деревьев)
- •5.4. Моделирование отношений «один-ко-многим» на файловых структурах
- •5.5. Инвертированные списки
- •5.6. Модели бесфайловой организации данных
- •6. Защита информации в базах данных
- •6.1. Общие подходы к обеспечению безопасности данных
- •6.2. Назначение и проверка полномочий, проверка подлинности
- •6.3. Средства защиты базы данных
- •7. Распределенные базы данных
- •7.1. Организация базы данных в локальной сети
- •7.2. Модели архитектуры клиент-сервер
- •Передача данных из бд
- •Удаленный доступ к данным
- •Распределенная бд
- •7.3. Управление распределенными данными
- •Заключение
- •Библиографический список
- •Оглавление
- •Учебное издание
- •394026 Воронеж, Московский просп., 14
3.1.2. Классы отношений
Отношения реляционной базы данных в зависимости от содержания подразделяются на два класса: объектные отношения и связные отношения.
Объектные отношения хранят данные о группах однородных объектов, явлений или процессов, имеющих однотипные характеристики. В объектном отношении ключ называют первичным, или просто ключом отношения.
Связное отношение хранит данные о связях между объектными отношениями. Связное отношение содержит ключи связанных объектных отношений и данные, количественно или качественно характеризующие связь. Ключи связных отношений называют внешними ключами, поскольку они являются первичными ключами других отношений. Реляционная модель накладывает на внешние ключи ограничение, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа должен соответствовать кортеж объектного отношения. Без этого возможна ситуация, когда внешний ключ ссылается на объект, о котором ничего не известно.
Рассмотрим пример объектных и связных отношений.
Объектное отношение "Детали"
Номер детали |
Название детали |
401000 |
Втулка |
409857 |
Кронштейн |
Объектное отношение "Материалы"
Код материала |
Марка |
Вид материала |
181508 |
АД1Н |
Лист |
181440 |
АМГ2М |
Лист |
Связное отношение "Технологический процесс"
Номер детали |
Код материала |
Норма расхода материала |
401000 |
181508 |
23.78 |
409857 |
181440 |
112.6 |
В отношении "Детали" первичный ключ – номер детали. В отношении "Материал" первичный ключ – код материала. В отношении "Технологический процесс" внешний ключ – номер детали, код материала. Атрибут "Норма расхода материала на деталь" – количественная характеристика связи между деталью и материалом.
Поскольку не всякой таблице можно поставить в соответствие отношение, приведем условия, выполнение которых позволяет считать таблицу отношением.
Все строки таблицы должны быть уникальны, т.е. не может быть строк с одинаковыми первичными ключами.
Имена столбцов таблицы должны быть различны, а значения их простыми, т.е. недопустима группа значений в одном столбце одной строки.
Все строки одной таблицы должны иметь одинаковую структуру с соответствующими именами и типами столбцов.
Порядок размещения строк в таблице может быть произвольным.
3.1.3. Индексирование
Определение ключа для таблицы означает автоматическую сортировку записей, контроль отсутствия повторений значений в ключевых полях записей и повышение скорости выполнения операций поиска в таблице. Для реализации этих функций в СУБД применяют индексирование. Индекс – это средство ускорения операции поиска записей в таблице, а, следовательно, и других операций, использующих поиск: извлечение, модификация, сортировка и т.д. Таблицу, для которой используется индекс, называют индексированной. Ключевые поля таблицы во многих СУБД, как правило, индексируются автоматически. Индексы, созданные для ключей, называют первичными индексами.
Индексы, создаваемые пользователем для неключевых полей, иногда называют вторичными (пользовательскими) индексами. Введение таких индексов не изменяет физического расположения записей таблицы, но влияет на последовательность просмотра записей.
Главная причина повышения скорости выполнения различных операций в индексированных таблицах состоит в том, что основная часть работы производится с небольшими индексными файлами, а не с самими таблицами. Наибольший эффект повышения производительности работы с индексированными таблицами достигается для значительных по объему таблиц. Индексирование требует небольшого дополнительного места на диске и незначительных затрат процессора на изменение индексов в процессе работы.
Индекс или индексная таблица обычно содержит поле (поля), по которому строится индекс, и порядковый номер записи в основной таблице, которая содержит поле с данным индексным значением. Данные в индексной таблице упорядочены по полю, по которому строится индекс.
Пусть имеется таблица со следующей схемой данных:
Студенты (Номер зачетки, Фамилия, Имя, Отчество, Дата рождения).
Фрагмент таблицы с исходными данными следующий:
06023 Петров Сергей Алексеевич 12.09.89
06010 Волков Максим Михайлович 30.09.89
06002 Антипов Петр Андреевич 09.01.89
06018 Орлов Алексей Викторович 23.06.89
Вид индексной таблицы, построенной по номеру зачетки следующий:
06002 3
06010 2
06018 4
06023 1
Вид индексной таблицы, построенной по фамилии следующий:
Антипов 3
Волков 2
Орлов 4
Петров 1
Вид индексной таблицы, построенной по дате рождения:
09.01.89 3
23.06.89 4
12.09.89 1
30.09.89 2