- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
данных, хранилища данных и витрины данных (data marts).
Создав наглядную модель базы данных, можно оптимизировать структуру БД и добиться её полного соответствия требованиям и задачам организации. Визуальное моделирование повышает качество создаваемой базы данных, продуктивность и скорость её разработки. На сайте Interface Ltd. (www.interface.ru) доступна для загрузки демонстрационная версия AllFusion ERwin Data Modeler, которая представляет собой полнофункциональную версию, ограниченную по времени.
6.2. Модели данных
Ранние СУБД были основаны, в основном, на следующих моделях данных (начиная с 1968 года):
1)иерархические модели (древовидные),
2)сетевые модели (графовые).
Затем возникли СУБД, основанные на реляционной модели данных. Реляционная модель предложена Коддом (Codd) в 1970 году. В настоящее время реляционные СУБД и их модификации составляют основу рынка. Дальнейшие исследования ведутся в направлении сочетания в той или иной степени реляционной модели, объектно-ориентированного программирования и интернет-технологий.
Примечание. Строго говоря, понятие модели данных появилось позже разработки ранних СУБД вместе с развитием реляционного подхода, широко применяемого в настоящее время. Абстрактное представление о моделях данных ранних систем появилось на основе сравнительного анализа и выявления общих признаков у различных СУБД, имеющихся к моменту развития реляционного подхода
6.2.1. Иерархическая модель данных
Наиболее известным и распространенным представителем иерархических СУБД является Information Management System (IMS) фирмы IBM. Первая версия системы появилась в 1968 году. Система до сих пор эксплуатируется, что создает существенные проблемы с переходом как на новую технологию БД, так и на новую технику.
Иерархическая БД (рис. 6.4) состоит из упорядоченного набора структур записей. Каждая структура имеет вид дерева. Вершины дерева называются узлами. Один из узлов, который находится на самом верху иерархии, называется корнем. Остальные узлы называются потомками и связаны так, что каждый узел имеет предка. Узлы, не имеющие потомков, называются листьями. Все экземпляры узла-потомка, имеющие общего предка, называются близнецами.
Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:
найти указанное дерево БД (например, плановый отдел);
перейти от одного дерева к другому;
перейти от одного узла к другому внутри дерева (например, от отдела – к первому сотруднику);
перейти от одного узла к другому в порядке обхода иерархии;
вставить новую запись (экземпляр узла) в указанную позицию;
удалить текущую запись.
Поддерживается ограничение целостности в следующей формулировке: никакой потомок не может существовать без своего родителя. Однако аналогичное ограничение целостности по ссылкам между узлами, не входящими в одно дерево, не поддерживается.
Рис. 6.4.: Пример одного из деревьев базы медицинских данных
Примечание.
Больница(Код больницы, Название, Адрес, Телефон, Число коек) Лаборатория(№ лаборатории, Название, Адрес, Телефон) Палата(Код палаты, Название, Число коек)
Персонал(№ табельный, ФИО, Должность, Смена, Зарплата)
Пациент(№ регистрационный, № койки, ФИО, Адрес, Дата рождения, Пол) Врач(№ табельный, ФИО, Специальность)
Достоинства иерархической модели:
простота и естественность представления (по крайней мере, экономических) данных;
минимальный расход памяти по сравнению с другими моделями.
Недостатки иерархической модели:
сложность отображения связей многие-ко-многим (когда, например, каждый сотрудник может работать во многих отделах и в каждом отделе может работать много сотрудников) без увеличения избыточности;
сложность включения информации о новых объектах и удаления устаревших данных;
доступ к данным возможен только через корень дерева, что может значительно увеличить время поиска данных для некоторых запросов.
6.2.2. Сетевая модель данных
Отличие сетевой модели (рис. 6.5) от иерархической заключается в том, что в сетевой структуре любой элемент данных может быть связан с любым другим, то есть иерархическая модель является разновидностью сетевой.
Различают простую и сложную сетевую структуру. В простой сетевой структуре между исходным и порожденными узлами реализуется связь один-ко-многим (когда, например, каждый сотрудник может работать в одном отделе и в каждом отделе может работать много сотрудников). Сложной сетевой структурой называют такую схему, в которой присутствует хотя бы одна связь многие-ко-многим.