- •Оано впо «волжский университет им. В.Н. Татищева»
- •Содержание
- •Используемые сокращения
- •1 Основные понятия системы баз данных
- •2 История развития систем управления базами данных
- •3 Модели данных
- •3.1 Иерархическая модель
- •3.2 Сетевая модель
- •3.3 Реляционная модель
- •3.3.1 Терминология и базовые понятия реляционных бд
- •3.3.2 Целостность и сохранность баз данных
- •4 Архитектура субд
- •4.1 Типовая организация современной субд
- •4.2 Основные функции субд.
- •5 Язык sql
- •5.1 Оператор select
- •5.1.1 Особенности использования предложения select
- •5.1.2 Особенности использования предложения where
- •5.1.3 Сортировка результатов запроса
- •5.1.4 Группировка записей
- •5.1.5 Ограничение на группировку записей
- •5.2 Объединение однотипных запросов
- •5.3 Структурированные, или вложенные, запросы
- •5.4 Запросы на удаление
- •5.5 Запросы на обновление данных
- •5.6 Запросы на добавление данных
- •6.2 Теоретико-множественные отношения
- •6.3 Соединения
- •6.4 Деление
- •7 Проектирование реляционной базы данных
- •7.1 Существующие подходы к проектированию баз данных
- •7.2 Этапы проектирования баз данных
- •7.2.1 Формирование и анализ требований к системе
- •7.2.1.1 Функциональное моделирование
- •7.2.1.2 Состав функциональной модели
- •7.2.1.3 Типы связей между функциями
- •7.2.1.4 Декомпозиция отношений
- •7.2.2 Проектирование с использованием метода «сущность-связь»
- •7.2.3 Переход от er–модели к реляционной
- •7.3 Проектирование реляционных баз данных с использованием нормализации
- •7.3.1 Функциональные зависимости
- •7.3.2 Пример нормализации отношений
- •Накладная № 123
- •8 Физическая организация базы данных
- •8.1 Структура данных в файлах с различной организацией
- •8.1.1 Основные понятия
- •8.1.2 Неупорядоченные и упорядоченные файлы
- •8.1.3 Хешированные файлы
- •8.2 Индексированные файлы
- •9 Защита баз данных
- •9.1 Потенциальные опасности
- •9.2 Основные типы угроз
- •9.3 Контрмеры – компьютерные средства контроля
- •Вопросы для самоконтроля
- •Используемая литература
7.3.2 Пример нормализации отношений
Разберем на примере создание базы данных с помощью нормализации. Дан документ «Накладная» (рисунок 16), необходимо создать базу данных, приведенную к 3НФ.
Для создания таблицы, приведенной к первой нормальной форме, необходимо
1. Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то добавить новое уникальное ключевое поле.
2. Определить группы повторяющихся полей.
3. Вынести группы повторяющихся полей в отдельные таблицы, в основной таблице остается одно поле для организации связи между таблицами.
4. Назначить первичные ключи в новых таблицах. (В качестве ключевых полей можно использовать поля таблицы или добавить новое поле. Если ключевое поле имеет большой размер, предпочтительней добавлять новое поле.)
5. Определить тип отношения между таблицами.
Дата
Покупатель
Адрес 10.10.2006
ООО "Весна" Тольятти, ул.
Промышленная, 9
№ Название товара Количество Ед. изм. Цена за
ед. изм., рубю Стоимость, руб. 1 Ручка шариковая №
1 100 шт. 25 2500 2 Ручка шариковая №
3 120 шт. 40 4800 3 Ручка шариковая №
4 100 шт. 73 7300 4 Карандаш КОН-НВ 250 шт. 5 1250 5 Корректор 120 шт. 23 2760 6 Клей канц. № 2 250 шт. 17 4250 7 Тетрадь кл. 18 л. 50 шт. 23 1150 8 Тетрадь кл. 12 л. 50 шт. 21 1050
Итого
25060
Накладная № 123
Рисунок 16 - Исходные документы для создания базы данных
Разделим семантически неделимые поля, например «Адрес», выделив из него поле «Город». Исключая повторяющиеся группы, выделим поле «Название товара». В качестве идентификатора добавим поля «Код товара» и «Код покупателя».
На рисунке 17 представлена база данных, приведенная к 1НФ.
Для приведения к 2НФ необходимо:
1) вынести все частично зависимые поля в отдельную таблицу;
2) определить ключевые поля;
3) установить отношения между таблицами.
Рисунок 17 - База данных, приведенная к 1НФ
На рисунке 18 представлена база данных, приведения к 2 НФ.
Рисунок 18 - База данных, приведенная к 2НФ
Определим поля «Код товара», «Код покупателя», «Дата» и «Номер накладной» как ключевые. Выделим в отдельные таблицы информацию, связанную с товаром, покупателями и накладными. Определим связь 1:1 между таблицами ПОКУПАТЕЛИ и НАКЛАДНЫЕ, и связь 1:М между таблицами НАКЛАДНЫЕ и ОТПУСК_ТОВАРА_СО_СКЛАДА, ТОВАР и ОТПУСК_ТОВАРА_СО_СКЛАДА.
Для приведения к 3НФ необходимо из таблиц исключить поля, которые не зависят от ключа.
Исключаем вычисляемые поля «Стоимость» и «Итог».
На рисунке 19 представлена база данных, приведенная к 3НФ.
Рисунок 19 - База данных, приведенная к 3НФ