- •Базы данных
- •Введение
- •Часть 1. Проектирование баз данных
- •1.1. Некоторые понятия и определения
- •1. 2. Модели данных
- •1.2.1. Иерархическая модель данных
- •1.2.2. Сетевая модель данных
- •1.2.3. Реляционная модель данных Основные определения
- •Типы связей между отношениями
- •1.3. Классификация баз данных
- •1.4. Цели проектирования баз данных
- •1.5. Проектирование баз данных с использованием универсального отношения
- •1.5.1. Универсальное отношение
- •1.5.2. Проблемы, вызываемые использованием универсального отношения
- •Проблема вставки
- •Проблемы обновления
- •Проблемы удаления
- •1.5.3. Нормальная форма Бойса -Кодда
- •Функциональные зависимости
- •Возможный ключ и детерминант
- •Общий подход к декомпозиции
- •Анализ исходных аномалий
- •1.5.4. Возможные потери фз при декомпозиции
- •1.5.5. Избыточные функциональные зависимости
- •Приемы удаления избыточных фз
- •Минимальное покрытие
- •Модернизированный алгоритм проектирования бд
- •1.6. Метод er - проектирования
- •1.6.1. Сущности и связи
- •1.6.2. Степень связи
- •1.6.3. Переход от диаграмм er – типа к отношениям
- •Предварительные отношения для бинарных связей степени 1:1
- •Предварительные отношения для бинарных связей степени 1:n.
- •Предварительные отношения для бинарных связей степени n:m
- •1.6.4. Дополнительные конструкции, используемые в er - методе
- •Необходимость связей более высокого порядка
- •Предварительные отношения для трехсторонних связей
- •Использование ролей
- •1.6.5. Последовательность проектирования бд при использовании er- метода
- •1.6.6. Проверка отношений на завершающейся фазе проектирования
- •1.7. Другие нормальные формы
- •1.8. Контрольные вопросы
- •Часть 2. Специальные аспекты работы с базами данных
- •2.1. Защита данных в базе
- •2.2.1. Общие вопросы защиты данных
- •2.2.2. Реализация защиты данных в различных системах
- •Управление доступом в sql
- •Реализация системы защиты в ms sql Server
- •2.2. Обеспечение целостности данных
- •2.3. Организация параллельных процессов обработки данных
- •2.4. Восстановление бд
- •2.4.1. Уровни восстановления.
- •2.4.2. Восстановление и логический элемент работы
- •Требования к лэр
- •2.4.3. Промежуточное восстановление
- •2.4.4. Длительное восстановление
- •2.5. Математический аппарат, используемый при работе с реляционной базой данных
- •2.5.1. Теоретико-множественные операции реляционной алгебры
- •2.5.2. Специальные операции реляционной алгебры
- •2.6. Контрольные вопросы
- •Часть 3. Разработка приложений для работы с базами данных
- •3.1. Краткий обзор субд
- •3.2. Субд Access
- •3.2.1. Вводные замечания
- •3.2.2. Создание базы данных
- •3.2.3. Создание и работа с таблицами
- •3.2.4. Работа с запросами
- •3.2.5. Создание форм
- •3.2.6. Отчеты в Access
- •3.2.7. Макросы в Access
- •Преобразование макросов в программы на Visual Basic
- •3.2.8. Работа с внешними данными
- •3.3. Программирование в Access
- •3.3.1. Вводные замечания
- •3.3.2. Объявление переменных
- •3.3.3. Константы
- •3.3.4. Тип данных Variant
- •3.3.5. Пользовательские типы данных
- •3.3.5.Операторы, команды и выражения в vba
- •3.3.7. Процедуры vba
- •3.3.8. Управляющие структуры в vba
- •Работа с управляющими структурами
- •3.3.9. Объекты в Access
- •3.3.10. Классы в Access
- •3.3.11. Работа с ошибками в vba
- •3.4.Работа в ms sql –Server
- •3.4.1. Основные количественные показатели системы sql-сервер
- •3.4.2. Создание баз данных
- •3.4.3. Создание таблицы
- •3.4.4. Извлечение данных
- •3.4.5. Добавление данных
- •3.4.6. Изменение данных
- •3.4.7. Удаление данных
- •3.5. Контрольные вопросы
- •Цитированная литература
- •Оглавление
- •Часть 1. Проектирование баз данных 3
- •Часть 2. Специальные аспекты работы с базами данных 71
- •Часть 3. Разработка приложений для работы с базами данных 114
Предварительные отношения для бинарных связей степени 1:n.
На рис.23 показан экземпляр отношения ПРЕПОДАВАТЕЛЬ, для случая, когда каждый преподаватель может читать более чем одну дисциплину и нет дисциплин, которые не читаются и имеются преподаватели, которые ничего не читают. Кроме того, каждая дисциплина читается только одним преподавателем. Т.е. рассматривается случай, когда класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является необязательным, а сущности ДИСЦИПЛИНА – обязательным, а степень связи 1:N.
ПРЕПОДАВАТЕЛЬ
нп |
пфам |
птел |
нд |
название |
П1 |
Кулаков |
523298 |
Д1 |
ВМ |
П1 |
Кулаков |
523298 |
Д2 |
ТМ |
П1 |
Кулаков |
523298 |
Д3 |
СМ |
П2 |
Быков |
536554 |
Д4 |
ХИМИЯ |
П2 |
Быков |
536554 |
Д5 |
Физика |
П3 |
Пухова |
426521 |
Д5 |
ВТ |
П4 |
Ахмеров |
348654 |
-- |
-- |
Рис.23. Использование одного отношения для бинарной связи типа 1:n в том случае, когда класс принадлежности n - связной сущности является обязательным, а 1 - связной необязательным.
В этом случае отчетливо вырисовывается две проблемы, связанные с этим отношением. Пробелы обнаруживаются в тех полях атрибутов дисциплины, где преподаватель не читает дисциплину; повторение полей данных у преподавателя наблюдается там, где преподаватель читает более одной дисциплины. Если бы класс принадлежности 1 - связной сущности был обязательным, то исчезли бы пробелы, но повторяющиеся группы данных в полях нп, пфам и птел сохранились бы.
Решить все эти проблемы, вне зависимости от класса принадлежности 1 - связной сущности, можно согласно следующему правилу.
ПРАВИЛО 4. Если степень бинарной связи равна 1:n и класс принадлежности n - связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ сущности каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1 - связной сущности должен быть добавлен как атрибут в отношение, отводимое n - связной сущности.
На рис.24 приведены примеры двух отношений, построенных с помощью этого правила и содержащие ту же информацию, которая представлена на рис. 23. Здесь все пробелы и повторяющиеся группы данных исчезли.
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
нп |
пфам |
птел |
|
нд |
название |
нп |
П1 |
Кулаков |
523298 |
Д1 |
ВМ |
П1 | |
П2 |
Быков |
536554 |
Д2 |
ТМ |
П1 | |
П3 |
Пухова |
426521 |
Д3 |
СМ |
П1 | |
П4 |
Ахмеров |
348654 |
Д4 |
ХИМИЯ |
П2 | |
|
Д5 |
Физика |
П2 | |||
Д5 |
ВТ |
П3 |
Рис. 24. Данные, приведенные на рис.23 после их разнесения по двум отношениям с помощью ПРАВИЛА 4.
На рис.25,а показан экземпляр отношения ПРЕПОДАВАТЕЛЬ для случая степени связи 1:n с необязательным классом принадлежности обоих сущностей.
ПРЕПОДАВАТЕЛЬ
нп |
пфам |
птел |
нд |
название |
| |||||
П1 |
Кулаков |
523298 |
Д1 |
ВМ |
| |||||
П1 |
Кулаков |
523298 |
Д2 |
ТМ |
| |||||
П1 |
Кулаков |
523298 |
Д3 |
СМ |
| |||||
П2 |
Быков |
536554 |
Д4 |
ХИМИЯ |
| |||||
|
П2 |
Быков |
536554 |
Д5 |
Физика | |||||
-- |
-- |
-- |
Д5 |
ВТ |
| |||||
П4 |
Ахмеров |
348654 |
-- |
-- |
|
а)
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
нп |
пфам |
птел |
|
нд |
название |
нп |
П1 |
Кулаков |
523298 |
Д1 |
ВМ |
П1 | |
П2 |
Быков |
536554 |
Д2 |
ТМ |
П1 | |
П4 |
Ахмеров |
348654 |
Д3 |
СМ |
П1 | |
|
Д4 |
ХИМИЯ |
П2 | |||
|
Д5 |
Физика |
П2 | |||
|
Д5 |
ВТ |
-- |
б)
Рис. 25. Использование одного отношения а) и двух отношений б) для бинарной связи типа 1:n в случае, когда класс принадлежности обеих сущностей является необязательным.
В случае использования одного отношения отчетливо вырисовывается три проблемы. Пробелы возникают в полях атрибутов дисциплин там, где преподаватель не читает дисциплину, и в тех полях атрибутов преподаватель, где дисциплина не читается ни одним из преподавателей. Кроме того, повторяются поля данных о преподавателях в тех случаях, когда преподаватель читает более одной дисциплины.
Если бы класс принадлежности 1 - связной сущности был обязательным, тогда пробелы в полях атрибутов дисциплины исчезли бы, однако пробелы и повторяющиеся группы данных в полях атрибутов преподавателей остались бы.
Если применить ПРАВИЛО 4 к этому случаю и сформировать два отношения (см. рис. 25,б), то все проблемы будут решены за исключением одной: не исчезнут пробелы в полях номера преподавателя в новом отношении ДИСЦИПЛИНА во всех тех местах, где дисциплина не читается.
Решить все эти проблемы вне зависимости от класса принадлежности 1 - связной сущности можно, следуя следующему правилу.
ПРАВИЛО 5. Если степень бинарной связи равна 1:n и класс принадлежности n-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Отношение, выделенное для связи должна иметь среди своих атрибутов ключ сущности от каждой сущности.
На рис.26 приведены экземпляры трех отношений, построенных с помощью этого правила, содержащие ту же информацию, что представлена на рис.25,а. В этих отношениях все пробелы и повторяющиеся группы данных исключены.
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
нп |
пфам |
птел |
|
нд |
название |
нп |
П1 |
Кулаков |
523298 |
Д1 |
ВМ |
П1 | |
П2 |
Быков |
536554 |
Д2 |
ТМ |
П1 | |
П4 |
Ахмеров |
348654 |
Д3 |
СМ |
П1 | |
|
Д4 |
ХИМИЯ |
П2 | |||
Д5 |
Физика |
П2 | ||||
|
ЧИТАЕТ
нп |
нд |
П1 |
Д1 |
П1 |
Д2 |
П1 |
Д3 |
П2 |
Д4 |
П2 |
Д5 |
Рис.26.Размещение данных в трех отношениях с помощью ПРАВИЛА 5.
В отношении ЧИТАЕТ нд является первичным ключом в силу существующей связи типа n:1 между нд и нп.