- •Введение
- •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.4. Связи между отношениями (таблицами) Обычно база данных представляет собой набор связанных таблиц. Связывание таблиц дает следующие преимущества:
многие СУБД при связывании таблиц автоматически выполняют контроль целостности вводимых в базу данных в соответствии с установленными связями, что повышает достоверность хранимой в БД информации;
облегчается доступ к данным. Связывание таблиц при выполнении таких операций, как поиск, просмотр, редактирование, выборка и подготовка отчетов с использованием информации из разных таблиц уменьшает количество явных обращений к таблицам данных и число манипуляций в каждой из них.
Существует несколько разновидностей связей между отношениями. Связанные отношения часто взаимодействуют по принципу главная и подчиненная таблицы. Главную таблицу можно еще называть родительской, а подчиненную – дочерней. Одна и та же таблица может быть главной по отношению к одной таблице базы данных и дочерней по отношению к другой.
Связь «один-ко-многим» означает, что одной записи в родительской таблице может соответствовать несколько записей (в том числе и одна) в дочерней таблице. В родительской таблице могут быть записи, для которых в данный момент нет соответствующих записей в дочерней таблице. Различают также жесткую связь «один-ко-многим», когда каждой записи в родительской таблице должны соответствовать записи в дочерней таблице.
Связь «один-ко-многим» является самой распространенной для реляционных баз данных.
Примеры связи.
Таблицы «Группы» и «Студенты» могут быть связаны связью «один-ко-многим» по полю «Шифр группы». Данная связь будет означать, что одна запись о группе из таблицы «Группы» может быть связана с несколькими записями из таблицы «Студенты», содержащими информацию о студентах данной группы. В связи Группы – Студенты таблица «Группы» является главной, а таблица «Студенты» - подчиненной.
Таблицы «Студенты» и «Экзамены» могут быть связаны связью «один-ко-многим» по полю «Номер Зачетки». Данная связь будет означать, что одна запись о студенте из таблицы «Студенты» может быть связана с несколькими записями о сдаче экзаменов данным студентом в таблице «Экзамены». В связи Студенты – Экзамены таблица «Студенты» является главной, а таблица «Экзамены» - подчиненной.
Связь «один-к-одному» имеет место, когда одной записи в родительской таблице соответствует только одна запись в дочерней таблице. Данная связь встречается редко и означает, что информация из двух таблиц могла бы быть объединена в одну. Наличие двух таблиц говорит о желании разделить основную и второстепенную информацию на два отношения.
Например, информация о студентах может быть разделена на две таблицы «Студенты» и «Дополнительные сведения», которые будут связаны связью «один-к-одному» по полю «Номер зачетки». Связь «один-к-одному» приводит к тому, что для чтения связанной информации в нескольких таблицах приходится производить несколько операций чтения, что замедляет получение нужной информации. Связь «один-к-одному» может быть жесткой и нежесткой.
Третий вид связи – связь «многие-ко-многим». Данный вид связи означает, что несколько записей одной таблицы связаны с несколькими записями другой таблицы и наоборот. Например: между таблицами «Учебные группы и дисциплины» и «Преподаватели» может существовать связь «многие-ко-многим». Это означает, что каждый преподаватель может вести несколько предметов и, в то же время, один и тот же предмет могут вести несколько преподавателей.
Некоторые СУБД не поддерживают связи «многие-ко-многим» на уровне ссылочной целостности, хотя и позволяют реализовывать ее в таблицах неявным образом. Считается, что базу данных всегда можно перестроить так, чтобы любая связь «многие-ко-многим» была заменена на одну или более связей «один-ко-многим».