- •Конспект лекций
- •8 Физическая модель данных 50
- •8.1 Исходные данные для физического проектирования 50
- •10 Введение в sql 59
- •Базы данных. Вводный курс 62
- •11.Рекомендуемая литература 71
- •1 Введение
- •1.1 Базы данных и информационные системы. Основные понятия
- •1.2 Жизненный цикл баз данных
- •2 Обзор субд
- •2.1 Функции субд
- •2.2 Состояние рынка субд
- •2.3 Современные подходы к проектированию архитектуры ис
- •2.3.1 Локальные ис
- •2.3.2 Ис в локальных сетях
- •2.3.3 Двухзвенные модели
- •2.3.4 Трехзвенные модели
- •2.5 Монитор транзакций
- •3 Проектирование базы данных на концептуальном уровне
- •3.1 Основные понятия
- •3.2 Задачи моделирования данных
- •3.3 Сущности
- •3.4 Атрибуты
- •3.5 Ключи
- •3.6 Связи
- •3.7 Классы и подклассы
- •3.8 Источники данных для концептуального проектирования
- •3.9 Построение концептуальной схемы
- •3.4 Особенности учета требований при проектировании бд
- •3.5 Модели данных логического уровня
- •3.6 Иерархическая модель
- •3.7 Сетевая модель
- •5 Реляционная модель данных
- •5.1 Основные понятия
- •5.2 Целостность реляционной модели
- •5.3 Математическое описание реляционной модели
- •5.4 Реляционная алгебра. Теоретико-множественные операции
- •5.5 Реляционная алгебра. Специальные реляционные операции
- •5.6 Дополнительные реляционные операции
- •5.7 Примеры записи запросов
- •5.8 Реляционное исчисление
- •6 Проектирование реляционной модели
- •6.1 Нормализация модели
- •6.2 Функциональная зависимость
- •6.3 Теоремы о функциональных зависимостях
- •6.4 Нормальные формы отношений
- •6.5 Алгоритм нормализации отношений. Метод декомпозиции
- •7 Проектирование реляционной модели на основе концептуальной модели
- •7.1 Реализация бинарной связи 1:1
- •7.1.1 Связь всюду определённая
- •7.1.2 Связь частичная для одной из сущностей
- •7.1.3 Связь частичная для обеих сущностей
- •7.2 Реализация бинарной связи 1:m
- •7.2.1 Связь всюду определённая для m-связной сущности
- •7.2.2 Связь частичная для m-связной сущности
- •7.3 Бинарная связь n:m
- •7.4 Связи более высокого порядка
- •7.5 Классы и подклассы
- •8 Физическая модель данных
- •8.1 Исходные данные для физического проектирования
- •8.2 Возможная методика перехода к физической модели на примере реляционной модели
- •8.2.1 Преобразование отношений в таблицы
- •8.2.2 Преобразование атрибутов в поля (столбцы) таблиц
- •8.2.3 Преобразование доменов в типы данных
- •8.2.4 Первичные ключи
- •8.2.5 Порядок расположения столбцов
- •8.2.6 Создание ссылочных ограничений
- •8.3 Факторы, влияющие на производительность бд
- •8.3.1 Индексы
- •8.3.2 Денормализация
- •9 Дополнительные аспекты реляционной технологии
- •9.1 Проблемы, требующие решения
- •9.2 Запросы
- •9.3 Представления
- •9.4 Курсоры
- •9.5 Хранимые процедуры
- •9.6 Триггеры
- •9.7 Функции, определяемые пользователем
- •9.8 Транзакции
- •10 Введение в sql
- •10.1 Стандарты
- •10.2 Возможности sql
- •10.3 Запросы на выборку данных
- •10.4 Примеры запросов
- •Базы данных. Вводный курс
- •Содержание
- •11.Рекомендуемая литература
7.5 Классы и подклассы
Переход от иерархии сущностей к отношениям реляционной модели может быть осуществлён по следующему правилу:
для каждой сущности в иерархии строится отдельное отношение.
Рассмотрим пример (рисунок 7.7).
Рисунок 7.7 – Классы и подклассы
Создадим следующие отношения:
РАБОТАЮЩИЙ (Табельный номер, ФИО, Дата рождения);
МАСТЕР (Табельный номер мастера, Оклад, Телефон);
РАБОЧИЙ (Табельный номер рабочего, Тарифная ставка, табельный номер мастера).
Полученные отношения находятся в 3НФ, в них отсутствует избыточность.
На практике полученная модель имеет ряд недостатков.
Предположим, необходимо реализовать следующий запрос: вывести сведения о сотруднике Иванове И.И.
Алгоритм выполнения этого запроса в случае, когда должность сотрудника неизвестна, требует предварительного объединения всех отношений и применения к полученному отношению операции селекции. Если количество подклассов в иерархии велико, то запрос будет выполняться медленно.
Для ускорения поиска можно в отношении РАБОТАЮЩИЙ предусмотреть поле Должность. Значение в этом поле точно определит, в каком отношении необходимо продолжить поиск. Предположим, в результате запроса к отношению РАБОТАЮЩИЙ установлено, что атрибут Должность у Иванова И.И. имеет значение "Мастер", тогда поиск необходимо провести в отношении МАСТЕР. Такой алгоритм нельзя реализовать средствами реляционной алгебры.
Вывод. Реляционная алгебра не поддерживает операции над классами и подклассами. Окончательное решение по способу реализации иерархий сущностей принимается на физическом этапе проектирования.
8 Физическая модель данных
8.1 Исходные данные для физического проектирования
Исходные данные включают:
- результаты логического этапа проектирования;
- особенности СУБД.
К началу физического проектирования логическая модель представляет собой полностью нормализованные сущности:
- каждая сущность имеет первичный ключ для идентификации;
- все атрибуты каждой сущности атомарны, неделимы и не являются частью списка значений (нет повторяющихся групп);
- каждая сущность содержит атрибуты, которые применяются только для этой сущности и зависят только от полного первичного ключа этой сущности.
Рассмотрим характеристики СУБД, знание которых необходимо при физическом проектировании БД:
- объекты базы данных, физические структуры данных и файлов, поддерживающих эти объекты;
- способы поддержки индексации, ссылочной целостности, ограничений;
- типы данных;
- параметры конфигурирования СУБД;
- язык определения данных (Data Definition Language - DDL) для преобразования физического проекта в реальные объекты базы данных и др.
8.2 Возможная методика перехода к физической модели на примере реляционной модели
8.2.1 Преобразование отношений в таблицы
Каждому отношению логической модели ставится в соответствие таблица физической модели.
Отступление от этого правила возможно, если для повышения производительности проводится денормализация базы. Процедура денормализации будет рассмотрена позднее.
Имя таблицы может совпадать с именем отношения, если оно не противоречит требованиям СУБД и корпоративным правилам формирования имён объектов базы данных.
8.2.2 Преобразование атрибутов в поля (столбцы) таблиц
Каждому атрибуту должен соответствовать аналогичный столбец таблицы.
На этом этапе не рекомендуется объединять столбцы в один составной столбец. Имена столбцов формируются аналогично именам таблиц.
