
- •Оглавление
- •Раздел 4. Проектирование реляционных баз данных. 113
- •Раздел 5. Определение структур данных и обслуживание баз данных. 114
- •Введение
- •Раздел 1. Основы теории баз данных Тема 1: Базы данных и информационные системы. Основные понятия.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Тема 2: Банки данных. Системы управления базами данных.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Раздел 2. Реляционная алгебра Тема1: Реляционная алгебра. Классические операции теории множеств.
- •Тема 2: Специальные операции теории множеств.
- •Раздел 3. Модели данных. Тема 1: Классические модели данных.
- •Сетевая модель представления данных.
- •Реляционная модель представления данных.
- •Элементы реляционной модели
- •Тема 2: Связывание таблиц. Целостность связей.
- •Основные виды связи таблиц.
- •Контроль целостности связей.
- •Характеристика видов связей
- •Раздел 4. Проектирование реляционных баз данных. Тема 1: Основные принципы проектирования баз данных.
- •2. Избыточное дублирование данных и аномалии
- •3. Формирование исходного отношения.
- •Тема 2: Метод нормальных форм
- •2. Выявление зависимостей между атрибутами
- •3. Нормальные формы
- •Тема 3: Метод сущность-связь. Этапы проектирования.
- •2.Этапы проектирования
- •3.Пример проектирования бд учебной части.
- •Тема 4: Правила формирования отношений.
- •2. Формирование отношений для связи 1:м
- •3. Формирование отношений для связи м:м
- •Раздел 5. Определение структур данных и обслуживание баз данных. Тема 1: Среда sql*Plus.
- •Функции.
- •2. Основные типы данных
- •3. Арифметические выражения
- •4. Операторы сравнения
- •5. Обработка неопределенных значений
- •6. Функции
- •7. Форматные модели
- •Тема 2: Структуры данных. Создание таблиц.
- •Создание таблиц.
- •3. Создание таблиц
- •Тема 3: Изменение таблиц и ограничений
- •Добавление и изменение столбца.
- •Изменение ограничений.
- •Удаление таблицы. Изменение имени таблицы и добавление комментариев.
- •Тема 4: Операции с ограничениями.
- •Тема 5: Манипулирование данными.
- •1. Вставка новых строк в таблицу
- •2. Копирование строк из другой таблицы
- •3. Обновление строк в таблице
- •4. Удаление строк из таблицы
- •Тема 6: Команда запроса данных. Простой запрос.
- •Тема 7: Сложные запросы.
- •Использование функций для работы с датами при организации запроса.
- •Тема 8: Группировка строк в запросе
- •2. Группы внутри групп.
- •3. Предложение having.
- •Тема 9: Подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •Однострочные и многострочные подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •2.Однострочные и многострочные подзапросы.
- •Тема 10: Выборка данных из нескольких таблиц.
- •2. Псевдонимы таблиц.
- •3. Дополнительные условия поиска.
- •4. Внешние соединения.
- •Select таблица.Столбец, таблица.Столбец
- •Тема 11: Создание, изменение и удаление последовательностей.
- •Создание последовательности.
- •2. Изменение и удаление последовательности.
- •3. Генерация значений последовательности.
- •Тема 12: Создание, изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Тема 13: «Индексы»
- •Понятие индекса. Необходимость использования.
- •Создание и удаление индексов.
- •1. Понятие индекса. Необходимость использования.
- •2. Создание и удаление индексов.
- •Тема 14: «Создание отчетов»
- •2. Форматирование number колонок.
- •3. Оформление Отчета пробелами и итоговыми строками.
- •4. Вычисление итоговых строк при изменении значения колонки.
- •5. Определение заголовков.
- •6. Установка размеров страницы
- •7. Сохранение и Печать Результатов Запроса
- •Тема 15: Управление транзакциями
- •Практикум Раздел 3. Реляционная алгебра.
- •Раздел 4. Проектирование реляционных баз данных.
- •Раздел 5. Определение структур данных и обслуживание баз данных.
- •Библиографический список
2.Этапы проектирования
Процесс проектирования базы данных является итерационным – допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений и включает следующие этапы:
Выделение сущностей и связей между ними.
Построение диаграмм ER –типа с учетом всех сущностей и их связей.
Формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения и использованием диаграмм ER – типа.
Добавление неключевых атрибутов в отношения.
Приведение предварительных отношений к нормальной форме Бойса–Кодда, например, с помощью метода нормальных форм.
Пересмотр ER- диаграмм в следующих случаях:
некоторые отношения не приводятся к нормальной форме Бойса-Кодда;
некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.
После преобразования ER-диаграмм осуществляется повторное выполнение предыдущих этапов проектирования (возврат к этапу1).
Одним из узловых этапов проектирования является этап формирования отношений.
3.Пример проектирования бд учебной части.
Применим описанные правила к примеру, рассмотренному при изучении метода нормальных форм.
БД для учебной части, содержащей следующие сведения:
ФИО - фамилия и инициалы преподавателя (возможность совпадения фамилии и инициалов у преподавателей исключена).
Должн - должность, занимаемая преподавателем.
Оклад - оклад преподавателя.
Стаж - преподавательский стаж.
Д_Стаж - надбавка за стаж.
Каф - номер кафедры, на которой работает преподаватель.
Предм - название дисциплины (предмета), ведомой преподавателем.
Группа - номер группы, в которой преподаватель проводит занятия.
ВидЗан - вид занятий, проводимых преподавателем в учебной группе (преподаватель в одной группе ведет только один вид занятий).
Исходное отношение ПРЕПОДАВАТЕЛЬ приведено на рис. 6.
ПРЕПОДАВАТЕЛЬ
Ф.И.О. |
Должн. |
Оклад |
Стаж |
Д_Стаж |
Каф |
Предм. |
Группа |
ВидЗан |
Иванов И.М. |
Препод. |
500 |
5 |
100 |
25 |
СУБД |
256 |
Практ. |
Иванов И.М. |
Препод. |
500 |
5 |
100 |
25 |
ПЛ/1 |
123 |
Практ |
Петров М.И. |
Ст.препод. |
800 |
7 |
100 |
25 |
СУБД |
256 |
Лекция |
Петров М.И. |
Ст.препод. |
800 |
7 |
100 |
25 |
Паскаль |
256 |
Практ. |
Сидоров Н.Г. |
Препод. |
500 |
10 |
150 |
25 |
ПЛ/1 |
123 |
Лекция |
Сидоров Н.Г. |
Препод. |
500 |
10 |
150 |
25 |
Паскаль |
256 |
Лекция |
Егоров В.В. |
Препод. |
500 |
5 |
100 |
24 |
ПЭВМ |
244 |
Лекция |
Рис.6. Исходное отношение Преподаватель
Первый этап проектирования - выделение сущностей и связей между ними.
Выделим следующие сущности:
ПРЕПОДАВАТЕЛЬ (Ключ - ФИО).
ЗАНЯТИЕ (Ключ - Группа. Предм).
СТАЖ (Ключ - Стаж).
ДОЛЖНОСТЬ (Ключ - Должн).
Выделим связи между сущностями:
ПРЕПОДАВАТЕЛЬ ИМЕЕТ СТАЖ,
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ЗАНЯТИЕ,
ПРЕПОДАВАТЕЛЬ ЗАНИМАЕТ ДОЛЖНОСТЬ.
Второй этап проектирования - построение диаграммы ER-типа с учетом всех сущностей и связей между ними.
Р
ис.7.
Диаграмма
ER-типа
Связь ИМЕЕТ является связью типа М:1, т. к. одинаковый стаж могут иметь несколько преподавателей. Сущность ПРЕПОДАВАТЕЛЬ имеет обязательный класс принадлежности, поскольку каждый преподаватель имеет свой стаж. Сущность СТАЖ имеет необязательный класс принадлежности, так как возможны такие значения стажа, которые не имеет ни один из преподавателей.
Связь ВЕДЕТ имеет тип М:М, так как преподаватель может вести несколько занятий, а каждое занятие может проводиться несколькими преподавателями. Занятие может быть лекционным или практическим, проводимым преподавателем в учебной группе по одной из дисциплин. Обе сущности в данной связи имеют КП обязательный, в предположении, что нет преподавателей, которые не проводят занятий, и нет занятий, которые не обеспечены преподавателями.
Связь ЗАНИМАЕТ имеет: тип М:1, так как каждый преподаватель занимает определенную должность и одинаковые должности могут занимать несколько преподавателей. Сущность ПРЕПОДАВАТЕЛЬ имеет обязательный класс принадлежности, так как предполагаем, что каждый преподаватель занимает должность. Сущность ДОЛЖНОСТЬ имеет необязательный КП, так как не исключаем, например, отсутствие должности профессора на кафедре, а значит, и преподавателя, который ее занимает.
Третий этап проектирования - формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения, используя диаграммы ER-типа.
На основе анализа диаграммы ER-типа (рис. 7) с помощью шести сформулированных выше правил получаем набор предварительных отношений, представленных следующими схемами отношений.
Связь ИМЕЕТ удовлетворяет условиям правила 4, в соответствии с которым получаем два отношения:
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж....) - добавился ключевой атрибут Стаж.
СТАЖ (Стаж....).
Связь ВЕДЕТ удовлетворяет условиям правила 6, в соответствии с которым получаем три отношения:
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж....).
ЗАНЯТИЕ (Группа. Предм. ...У
ВЕДЕТ (ФИО. Группа. Предм. ...У
Связь ЗАНИМАЕТ аналогично связи ИМЕЕТ удовлетворяет условиям правила 4, поэтому имеем следующие два отношения
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж. Должн. ...) добавился ключевой атрибут Должн.
ДОЛЖНОСТЬ (Должн....).
Этот этап проектирования включает добавление неключевых атрибутов, которые не были выбраны в качестве ключевых раньше, и назначение их одному из предварительных отношений с тем условием, чтобы отношения отвечали требованиям нормальной формы Бойса-Кодда.
После добавления неключевых атрибутов схемы отношений примут следующий вид:
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж. Должн. Каф)
СТАЖ (Стаж. Д_Стаж),
ЗАНЯТИЕ (Группа. Предм)
ВЕДЕТ (ФИО. Группа. Предм. ВидЗан)
ДОЛЖНОСТЬ (Должн. Оклад).
После определения отношений следует проверить их на соответствие требованиям нормальной формы Бойса-Кодда. В нашем случае мы получили те же отношения, что и при проектировании примера методом нормальных форм. Полученная схема базы данных приведена на рис. 8.
Рис.8 Схема базы данных
Итак,
В нашем примере отношение ЗАНЯТИЕ, кроме ключевых атрибутов (Группа. Предм), других атрибутов не имеет. Поэтому оно не несет дополнительной информации, кроме содержащейся в отношении ВЕДЕТ.
Действительно, это отношение включает в себя атрибуты Группа. Предм. Поэтому отношение ЗАНЯТИЕ нужно исключить из формируемой схемы БД (на рис. 8 оно перечеркнуто). Если бы имелись другие атрибуты, например, атрибут Семестр, в котором некоторая группа изучает конкретную дисциплину, то получили бы отношение ЗАНЯТИЕ (Группа.Предм. Семестр), которое вошло бы в БД.
На последнем этапе проектирования предварительные отношения анализируются на предмет избыточного дублирования информации. При этом возможно рассмотрение нескольких кортежей каждого отношения.