- •Введение
- •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
2.4. Постреляционная модель
Классическая реляционная модель предполагает неделимость данных, хранящихся в полях записей таблиц. Это означает, что информация в таблице представляется в первой нормальной форме. Существует ряд случаев, когда это ограничение мешает эффективной реализации приложений.
Постреляционная модель данных представляет собой расширенную реляционную модель, снимающую ограничение неделимости данных, хранящихся в записях таблиц. Постреляционная модель данных допускает многозначные поля – поля, значения которых состоят из подзначений. Набор значений многозначных полей считается самостоятельной таблицей, встроенной в основную таблицу.
На рис. 2.6 для сравнения приведено представление одних и тех же данных с помощью реляционной (а) и постреляционной (б) моделей.
а) Накладные
Номер накладной |
Номер покупателя |
0373 |
8723 |
8374 |
8232 |
7364 |
8723 |
Накладные_Товары
Номер накладной |
Товар |
Количество |
0373 |
Сыр |
3 |
0373 |
Рыба |
2 |
8374 |
Шоколад |
2 |
8374 |
Сок |
6 |
8374 |
Печенье |
2 |
7364 |
Йогурт |
1 |
б) Накладные
Номер накладной |
Номер покуп-я |
Товар |
Кол-во |
0373 |
8723 |
Сыр |
3 |
|
|
Рыба |
2 |
8374 |
8232 |
Шоколад |
2 |
|
|
Сок |
6 |
|
|
Печенье |
2 |
7364 |
8723 |
Йогурт |
1 |
Рис. 2.6. Структуры данных реляционной и постреляционной моделей
Таблица Накладные содержит данные о номерах накладных и номерах покупателей. В таблице Накладные_Товары содержатся данные о каждой из накладных: номер накладной, название товара и количество товара. Таблица Накладные связана с таблицей Накладные_Товары по полю Номер накладной.
Как видно из рисунка, по сравнению с реляционной моделью в постреляционной модели данные хранятся более эффективно, а при обработке не требуется выполнять операцию соединения данных их двух таблиц.
Помимо обеспечения вложенности полей постреляционная модель поддерживает ассоциированные многозначные поля (множественные группы). Совокупность ассоциированных полей называется ассоциацией. При этом в строке первое значение одного столбца ассоциации соответствует первым значениям всех других столбцов ассоциации. Аналогичным образом связаны все вторые значения столбцов и т.д.
На длину полей и количество полей в записях таблицы не накладывается требование постоянства. Это означает, что структура данных и таблиц имеет большую гибкость.
Поскольку постреляционная модель допускает хранение в таблицах ненормализованных данных, возникает проблема обеспечения целостности и непротиворечивости данных. Эта проблема решается включением в СУБД механизмов, подобных хранимым процедурам в клиент-серверных системах.
Для описания функций контроля значений в полях имеется возможность создавать процедуры (коды конверсии и коды корреляции), автоматически вызываемые до и после обращения к данным. Коды корреляции выполняются сразу после чтения данных, перед их обработкой. Коды конверсии, наоборот, выполняются после обработки данных.
Преимуществом постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей. Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки.
Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.
Рассмотренная постреляционная модель данных поддерживается СУБД uniVers, Bubba, Dasdb.