Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных. Учебное пособие для обучающихся по направлению подготовки 09.03.03 «Прикладная информатика»

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
только тогда, когда в любом допустимом значении этой таблицы ка­ждая ее строка содержит только одно значение для каждого атрибута (столбца).
Требование первой нормальной формы (1NF) очень простое и оно заключается в том, чтобы таблицы соответствовали реляционной мо­дели данных и соблюдали определённые реляционные принципы.
Таким образом, чтобы база данных находилась в 1 нормальной форме, необходимо чтобы ее таблицы соблюдали следующие реля­ционные принципы:
- в таблице не должно быть дублирующих строк;
- в каждой ячейке таблицы хранится атомарное значение (одно не
составное значение);
- в столбце хранятся данные одного типа
- отсутствуют массивы и списки в любом виде.
Рассмотрим процесс нормализации на примере. Имеется таблица:
ФИО владельца Пациент
Иванов Иван Адреевич Мухтар, Мурка, Пепелла
Петров Петр Петрович Шарик
Андреев Иван Андреевич Дружок
Нарушение нормализации 1НФ происходит в столбце Пациен­ты, т.к. в одной ячейке содержится список из 3 элементов: Мухтар, Мурка, Пепелла, т.е. он не является атомарным. Преобразуем табли­цу к 1НФ:
ФИО владельца Пациент
Иванов Иван Адреевич Мухтар
Иванов Иван Адреевич Мурка
Иванов Иван Адреевич Пепелла
Петров Петр Петрович Шарик
Андреев Иван Андреевич Дружок
31
Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее атрибуты (столбцы), не входящие в первичный ключ, связаны полной функциональной зави­симостью с первичным ключом.
Чтобы база данных находилась во второй нормальной форме (2NF), необходимо чтобы ее таблицы удовлетворяли следующим тре­бованиям:
- таблица должна находиться в первой нормальной форме,
- таблица должна иметь ключ,
- все неключевые столбцы таблицы должны зависеть от полного
ключа (в случае, если он составной).
Рассмотрим на примере. Дана таблица с полями ФИО врача, Но- мер кабинета, Телефон, Должность, Оклад. Ключом отношения яв­ляется атрибут ФИО врача. Атрибут Должность находится в функ­циональной зависимости от атрибута ФИО врача.
ФИО врача Номер Кабинета Телефон Должность Оклад
Алексеев А.А. 20 55-25-25 офтальмолог 30000
Гатаулин В.А. 4 55-13-79 рентгенолог 27000
Дабаев Д.Д. 6 55-46-50 хирург 30000
Если не приводить ко второй нормальной форме таблицу, то могут появиться такие проблемы, как:
- при изменении должности необходимо выполнить обновление всех строк, которые содержат оклад. Такая проблема называется ано­малией изменения данных.
- возникновение ситуации, когда будет отсутствовать врач по той или иной должности, не будет строки, в которой хранится должность и оклад. Такая проблема называется аномалией ввода данных.
- повторение должностей и окладов.
Чтобы привести таблицу ко второй нормальной форме, необходи-
мо:
- создание новой таблицы, которая состоит из атрибутов исходной таблицы;
- исключение атрибутов, которые входят в новую таблицу;
- определить для новых таблиц ключевые поля.
32
Таким образом, получаем две таблицы: таблица Врачи с ключе­вым полем КодВрача и таблица Должность с ключевым полем Код­Должности. Все неключевые столбцы зависят от полного ключа.
КодВрача ФИО врача НомерКабинета Телефон
100 Алексеев А.А. 20 55-25-25
101 Гатаулин В.А. 4 55-13-79
107 Дабаев Д.Д. 6 55-46-50
КодДолжности Должность Оклад
3 офтальмолог 30000
4 рентгенолог 27000
6 хирург 30000
Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и ни один из ее неключевых атри­бутов не связан функциональной зависимостью с любым другим ключевым атрибутом.
Если в первой нормальной форме главным являлось соблюдение реляционных принципов, во второй нормальной форме ‒ первичный ключ, то в третьей нормальной форме внимание уделяется столбцам, которые не являются первичным ключом, т.е. неключевым столбцам.
Чтобы нормализовать базу данных до третьей нормальной формы, необходимо сделать так, чтобы в таблицах отсутствовали неключе­вые столбцы, которые зависят от других неключевых столбцов.
Иными словами, неключевые столбцы не должны пытаться играть роль ключа в таблице, т.е. они действительно должны быть неключе­выми столбцами, такие столбцы не дают возможности получить дан­ные из других столбцов, они дают возможность посмотреть на ин­формацию, которая в них содержится, так как в этом их назначение.
Главное правило третьей нормальной формы (3NF) ‒ таблица должна содержать правильные неключевые столбцы.
Чтобы определить, находится ли эта таблица в третьей нормаль­ной форме, мы должны проверить все неключевые столбцы, каждый
33
из них должен зависеть только от первичного ключа, и никаким обра­зом к другим неключевым столбцам он не должен относиться.
Рассмотрим на примере. Допустим, имеется таблица:
Код
Услу-
ги
1
2
3
Наименова-
ние услуги
Взятие
крови
(на анализ)
Контрастная
рентгеногра-
фия ЖКТ
Ортопе-
дическая
операция
Характе-
ристика
терапев-
тическая
рентген-
снимок
хирурги-
ческая
Стои-
Пациент
мость
154,00 Барсик
1907,00 Хлоя
3500,00 Тайсон
ФИО
владельца
Иванова
А.И.
Федоров
И.Н..
Комаров
А.Б.
Вид
Живот-
Порода
ного
кошка б/п
британ-
кошка
собака
ская
той-
терьер6 лет
Воз
Пол Телефон
раст
3
муж
года
13
жен
лет
муж
+7(914)
8495656
+7(964)
7453135
+7(924)
5137889
Если допустить, что пациент приходит на прием и получает услугу в клинике, то мы получаем, что данная таблица учтет все необходи­мые параметры. Но в то же время необходимо понимать, что не все неключевые столбцы будут зависеть от ключевого поля КодУслуги.
Проведя декомпозицию, получим отдельные таблицы: в одной бу­дут храниться данные о пациентах, в другой – об услугах.
Код
Услуги
1 Взятие крови (на анализ) терапевтическая 154,00
2
Наименование услуги Характеристика Стоимость
Контрастная рентгенография ЖКТ
рентген-снимок 1 907,00
3 Ортопедическая операция хирургическая 3 500,00
Номер
Карточки
Пациент
ФИО
владельца
Вид
Живот-
ного
Порода Возраст Пол Телефон
1202 Барсик Иванова А.И. кошка б/п 3 года муж +7(914)8495656
1213 Хлоя Федоров И.Н. кошка
британ-
ская
13 лет жен +7(964)7453135
1207 Тайсон Комаров А.Б. собака той-терьер 6 лет муж +7(924)5137889
34
После того как мы привели таблицы базы данных к третьей нор­мальной форме, можно переходить к приведению таблиц до сле­дующей нормальной формы, в частности до нормальной формы Бойса-Кодда (BCNF).
Таблица находится в нормальной форме Бойса-Кодда (НФБК), тогда и только тогда, когда любая функциональная зависимость меж­ду ее атрибутами сводится к полной функциональной зависимости от возможного первичного ключа.
Требования нормальной формы Бойса-Кодда следующие:
- Таблица должна находиться в третьей нормальной форме. Здесь все как обычно, т.е. как и у всех остальных нормальных форм, пер­вое требование заключается в том, чтобы таблица находилась в пре­дыдущей нормальной форме, в данном случае в третьей нормальной форме;
- Ключевые атрибуты составного ключа не должны зависеть от неключевых атрибутов.
Отсюда следует, что требования нормальной формы Бойса-Код­да предъявляются только к таблицам, у которых первичный ключ составной. Таблицы, у которых первичный ключ простой, и они на­ходятся в третьей нормальной форме, автоматически находятся и в нормальной форме Бойса-Кодда.
Главное правило нормальной формы Бойса-Кодда (BCNF) звучит следующим образом: часть составного первичного ключа не должна зависеть от неключевого столбца.
Для реляционных баз данных необходимо, чтобы все отношения базы данных обязательно находились в 1НФ. Нормальные формы более высокого порядка могут использоваться разработчиками по своему усмотрению. Однако следует стремиться к тому, чтобы дове­сти уровень нормализации базы данных хотя бы до ЗНФ, тем самым, исключив из базы данных избыточность данных и аномалии обнов­ления.
Важным преимуществом MS Access является анализатор таблиц (Работа с базами данных – Анализ таблицы). Этот инструмент про­сматривает текущие записи базы данных и предлагает способы их оптимизации. После запуска Мастер поможет определить, насколько
правильно построены таблицы.
В нашем случае, мастер «Анализ таблиц» предложил внести из-
35
менения по таблице Пациенты (рис. 8). Из рисунка видно, что мастер Анализа таблиц предлагает разделить данную таблицу на 4 таблицы. Но это только предложение, поэтому подумаем, насколько правиль­но мастер группирует данные. Из предложенных вариантов возмож­ным является введение дополнительной таблицы по полу и породе.
Рис. 8. Мастер «Анализ таблиц»
Создание таблицы Пол является возможным и упростит ввод дан­ных. На практике мы рассмотрим варианты заполнения этого поля в упрощенном виде.
Таблицу по определению пород животных в рамках пособия рас­сматривать не будем. Поскольку породы животных зависят от вида животного, это значит, что необходимо провести классификацию по­род животных по их видам. Такой подход дает возможность выво­дить породы животных в зависимости от их вида.
Таким образом, после нормализации получаются следующие таблицы:
Пациенты, Услуги, Штатное расписание, Врачи, Журнал, Врачи­Услуги (вспомогательная).
36
Название таблицы Поля таблицы
1. Пациенты НомерКарточки
ФИО владельца
Пациент
ВидЖивотного
Порода
Возраст
Пол
Телефон
Домашний адрес
2. Услуги КодУслуги
Наименование услуги
Характеристика услуги
Стоимость
3. Штатное расписание КодДолжности
Должность
Оклад
Надбавка
4. Врачи КодВрача
ФИО врача
ФотоВрача
НомерКабинета
Телефон
5. Журнал КодПриема
НомерКарточки
КодВрача
ДатаПриема
КодУслуги
37
Подводя итоги, отметим, что процесс нормализации заключает­ся в следующем:
- исключение некоторых типов избыточности;
- устранение некоторых аномалий обновления;
- разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно поня­тен и может служить хорошей основой для последующего расшире­ния;
- упрощение процедуры применения необходимых ограничений целостности.
Выполнение нормализации данных позволяет увереннее строить
физическую модель базы данных и работать над ее заполнением.
4. Физическая модель базы данных
Физическое проектирование базы данных подразумевает констру-
ирование таблиц в конкретной СУБД.
В физической модели содержится информация обо всех объектах
БД.
В процессе физического проектирования БД необходимо присво­ить имена всем таблицам, а также присвоить имена полям таблиц. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колон­ках, индексах, процедурах и т.д. Описания таблиц физической моде­ли приведены в таблицах 3-7.
Таблица 3 ‒ Описание таблицы «Пациенты»
Имя поля Тип данных
НомерКарточки (FK) Числовой Длинное целое
ФИО владельца Короткий текст 20
Пациент Короткий текст 20
ВидЖивотного Короткий текст 20
Размер поля
(вкладка Общие)
38
Дополнительные
параметры
Индексированное
поле
Порода Короткий текст 20
Возраст Короткий текст 20
Пол Короткий текст 3
Телефон Короткий текст 20 Маска ввода
Домашний адрес Короткий текст 50
Таблица 4 ‒ Описание таблицы «Услуги»
Имя поля Тип данных
КодУслуги (FK) Числовой Длинное целое
Наименование
Услуги
Характеристика
Услуги
Стоимость Денежный Авто
Текстовый 50
Текстовый 20
Размер поля
(вкладка Общие)
Таблица 5 ‒ Описание таблицы «Штатное расписание»
Имя поля Тип данных
КодДолжности
(FK)
Должность Текстовый 20
Оклад Денежный Авто
Числовой Длинное целое
Размер поля
(вкладка Общие)
Дополнительные
параметры
Индексированное
поле
Дополнительные
параметры
Индексированное
поле
Надбавка Денежный Авто
39
Таблица 6 ‒ Описание таблицы «Врачи»
Имя поля Тип данных
КодВрача (FK) Числовой Длинное целое
ФИО врача Короткий текст 20
ФотоВрача
НомерКабинета Числовой Длинное целое
Телефон Короткий текст 255 Маска ввода
Поле объекта
OLE
Размер поля
(вкладка Общие)
Дополнительные
Индексированное
Таблица 7 ‒ Описание свойств полей таблицы «Журнал»
Имя поля Тип данных
КодПриема (FK) Счетчик Длинное целое
НомерКарточки Числовой Длинное целое
Размер поля
(вкладка Общие)
Дополнительные
параметры
поле
параметры
КодВрача Числовой Длинное целое
ДатаПриема Дата/время
КодУслуги Числовой Длинное целое
Краткий формат даты
СОЗДАНИЕ БАЗЫ ДАННЫХ
Для приобретения умения работать с базами данных рассмотрим процесс создания ее в среде MS Access.
Microsoft Access – это система управления базами данных, осно­ванная на реляционной модели. Предназначена для хранения, ввода,
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]