|  Пояснительная запискаУчебно-методическое пособие для проведения практических занятий по дисциплине «Основы проектирования баз данных» реализует требования ФГОС к подготовке выпускников по специальности 230401 «Информационные системы (по отраслям)».
 
 Дисциплина «Основы проектирования баз данных» входит в профессиональный цикл общепрофессиональных дисциплин в структуре основной профессиональной образовательной программы по данной специальности.
 
 Для закрепления теоретических знаний, навыков и умений рабочей программой дисциплины предусматривается проведение практических занятий.
 
 Практические занятия способствуют представлению о видах моделей данных, технологиях обработки информации в базе данных, о современных программных средствах разработки и проектирования баз данных, формируют навыки работы по построению информационной модели данных, выполнению нормализации данных, проектированию базы данных, созданию информационной и логической моделей данных, работе с системой управления базами данных на примере MS Access.
 
 Проведение практических занятий способствует формированию у студентов:
 
 Освоенных умений:
 
 
            проектировать реляционную базу данных;
 
использовать язык запросов для программного извлечения сведений из баз данных.
 
 Усвоенных знаний:
 
 
            основы теории баз данных;
 
модели данных;
 
особенности реляционной модели и проектирование баз данных;
 
изобразительные средства, используемые в ER-моделировании;
 
основы реляционной алгебры;
 
принципы проектирования баз данных, обеспечение непротиворечивости и целостности данных;
 
средства проектирования структур баз данных;
 
язык запросов SQL.
 
 Учебно-методическое пособие содержит 15 практических занятий. Каждое практическое занятие состоит из информационной части, в которой объясняются основные термины, изучаемой темы, поясняются технологии, используемые при выполнении практического занятия. Вторая часть - исполнительная, содержит задание и методические указания для его выполнения. Третья часть - контрольные вопросы, которые позволяют провести преподавателю анализ уровня освоения студентами умений, закрепления знаний на практических занятиях. Для закрепления навыков в каждом занятии содержатся задания для самостоятельного выполнения.
 
 Целью проведения практических занятий является формирование у студентов умений работы с базами данных.
 
 
 
 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1«ПРОЕКТИРОВАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ. НОРМАЛИЗАЦИЯ ТАБЛИЦ»
Цель занятия: Научиться определять виды зависимостей между атрибутами в таблице, определять вид нормальной формы таблицы и переводить таблицы в нормальные формы более высокого уровня нормализации.
 ИНФОРМАЦИОННАЯ ЧАСТЬ
 
 Проектирование баз данных осуществляется на физическом и логическом уровне. Решение проблем проектирования на физическом уровне зависит в основном от используемой СУБД, часто автоматизировано и скрыто от пользователя. Логическое проектирование заключается в определении числа и структуры таблиц, формировании запросов к БД, определении типов отчетных документов, разработке алгоритмов обработки информации, создании форм для ввода и редактирования данных.
 
 При проектировании структур данных чаще всего сначала собирают сведения об объектах решаемой задачи в рамках одной таблицы и затем производят ее декомпозицию на несколько взаимосвязанных таблиц на основе процедуры нормализации.
 
 Рассмотрим собранные в одну таблицу 1 сведения о преподавателях учебного заведения.
 
 Таблица 1 - Преподаватель
 
 
            
            
            
            
            
            
            
            
            
            
              | ФИО
 
 | Долж-ность
 
 | Оклад
 
 | Стаж
 
 | Надбавка за стаж
 
 | Кафед-ра
 
 | Предмет
 
 | Группа
 
 | Вид занятия
 
 |  
              | Иванов И.И.
 
 | преп
 
 | 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
 
 | Лекц
 
 |  Исходное отношение содержит избыточное дублирование данных о преподавателя.
 
 Определяют виды зависимостей между атрибутами:
 
 
            Атрибут В функционально зависит от атрибута А, если каждому значению атрибута А соответствует в точности одно значение В. Записывается это следующим образом: АВ. Это означает, что во всех кортежах с одинаковым значением атрибута А атрибут В будет иметь так же одно и тоже значение. В отношении «Преподаватель» можно выделить следующие функциональные зависимости: ФИОКафедра, ФИОДолжность, ФИООклад и т.д.
 
Частичная функциональная зависимость- это зависимость неключевого атрибута от части составного первичного ключа. В отношении «Преподаватель» первичным ключом является совокупность полей ФИО+Группа+Предмет. Тогда Должность, Оклад, Стаж, Надбавка за стаж, Кафедра находятся в частичной функциональной зависимости от ключа таблицы, так как зависят от ФИО, являющегося частью составного первичного ключа.
 
Полная функциональная зависимость- это зависимость неключевого атрибута от всего составного первичного ключа. В отношении «Преподаватель»- это атрибут Вид занятия.
 
Атрибут С зависит от атрибута А транзитивно, если для атрибутов А, В, С выполняются условия: АВ и ВС. В отношении «Преподаватель» транзитивной зависимостью связаны атрибуты: ФИОДолжностьОклад и ФИОСтажНадбавка за стаж.
 
 Зависимости между атрибутами можно представить в виде схемы зависимостей (рис.1).
 
  
 Рисунок 1 - Схема зависимости атрибутов
 
 Нормализация
 
 Отношение находится в первой нормальной форме, если все его атрибуты являются простыми. Наше исходное отношение уже находится в 1НФ. Таблица 2 не находится в 1НФ. Чтобы привести её в 1НФ необходимо дублировать информацию о преподавателях.
 
 Таблица 2 - Отношение, не находящееся в 1НФ
 
 
 
            
            
            
            
            
            
            
            
            
            
              | ФИО
 
 | Долж-ность
 
 | Оклад
 
 | Стаж
 
 | Надбавка за стаж
 
 | Кафед-ра
 
 | Предмет
 
 | Группа
 
 | Вид занятия
 
 |  
              | Иванов И.И.
 
 | преп
 
 | 500
 
 | 5
 
 | 100
 
 | 25
 
 | СУБД
 
 | 256
 
 | Практ
 
 |  
              | ПЛ/1
 
 | 123
 
 | Практ
 
 |  
              | Петров П.П.
 
 | Ст.преп
 
 | 800
 
 | 7
 
 | 100
 
 | 25
 
 | СУБД
 
 | 256
 
 | Лекц
 
 |  
              | Паскаль
 
 | 256
 
 | Практ
 
 |  
              | Сидоров С.С
 
 | преп
 
 | 500
 
 | 10
 
 | 150
 
 | 25
 
 | ПЛ/1
 
 | 123
 
 | Лекц
 
 |  
              | Паскаль
 
 | 256
 
 | Лекц
 
 |  
              | Егоров Е.Е.
 
 | Преп
 
 | 500
 
 | 5
 
 | 100
 
 | 24
 
 | ПЭВМ
 
 | 244
 
 | Лекц
 
 |  
 Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного). Приведем отношение «ПРЕПОДАВАТЕЛЬ» ко 2НФ, разбив его на 2 связанные таблицы. В первой таблице (таблица 3) остается весь составной первичный ключ и атрибуты, которые от него зависят полно. Назовем таблицу «Предметы». Во вторую таблицу (таблица 4) помещаем атрибут-часть составного ключа, и атрибуты, находящиеся в частичной функциональной зависимости от этой части первичного ключа. Назовем ее «Преподаватели».
 
 Таблица 3 – Предметы
 
 
            
            
            
            
            
              | ФИО
 
 | Предмет
 
 | Группа
 
 | Вид занятия
 
 |  
              | Иванов И.И.
 
 | СУБД
 
 | 256
 
 | Практ
 
 |  
              | Иванов И.И.
 
 | ПЛ/1
 
 | 123
 
 | Практ
 
 |  
              | Петров П.П.
 
 | СУБД
 
 | 256
 
 | Лекц
 
 |  
              | Петров П.П.
 
 | Паскаль
 
 | 256
 
 | Практ
 
 |  
              | Сидоров С.С
 
 | ПЛ/1
 
 | 123
 
 | Лекц
 
 |  
              | Сидоров С.С
 
 | Паскаль
 
 | 256
 
 | Лекц
 
 |  
              | Егоров Е.Е.
 
 | ПЭВМ
 
 | 244
 
 | Лекц
 
 |  
 
 Таблица 4 - Преподаватели
 
 
            
            
            
            
            
            
            
              | ФИО
 
 | Должность
 
 | Оклад
 
 | Стаж
 
 | Надбавка за стаж
 
 | Кафедра
 
 |  
              | Иванов И.И.
 
 | преп
 
 | 500
 
 | 5
 
 | 100
 
 | 25
 
 |  
              | Петров П.П.
 
 | Ст.преп
 
 | 800
 
 | 7
 
 | 100
 
 | 25
 
 |  
              | Сидоров С.С
 
 | преп
 
 | 500
 
 | 10
 
 | 150
 
 | 25
 
 |  
              | Егоров Е.Е.
 
 | Преп
 
 | 500
 
 | 5
 
 | 100
 
 | 24
 
 |  
 Отношение находится в третей нормальной форме, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
 
 Таблица «Предметы» уже находится в 3НФ, а в таблице «Преподаватели» нужно избавиться от транзитивной зависимости атрибутов Оклад и Надбавка за стаж, разбив ее на 3 связанные таблицы: «Преподаватели», «Должности», «Стаж».
 Таблица 5 - Преподаватели
 
 
            
              
            
            
              
            
            
              
              
            
            
              
            
            
              
              
            
            
              
            
            
              
                | ФИО
 
 | Должность
 
 | Стаж
 
 | Кафедра
 
 |  
                | Иванов И.И.
 
 | преп
 
 | 5
 
 | 25
 
 |  
                | Петров П.П.
 
 | Ст.преп
 
 | 7
 
 | 25
 
 |  
                | Сидоров С.С
 
 | преп
 
 | 10
 
 | 25
 
 |  
                | Егоров Е.Е.
 
 | Преп
 
 | 5
 
 | 24
 
 |  
                | 
 
 
 | 
 
 
 | 
 
 
 |  
                | 
 
 
 | 
 
 
 | 
 
 
 |  
                | 
 
 
 | 
 
 
 | 
 
 
 |  
                | 
 
 
 | 
 
 
 | 
 
 
 |  
 
            
            
            
              | Стаж
 
 | Надбавка за стаж
 
 |  
              | 5
 
 | 100
 
 |  
              | 7
 
 | 100
 
 |  
              | 10
 
 | 150
 
 |  
 
 Таблица 6 – Должности Таблица 7 – Стаж
 
 
 
            
            
            
              | Должность
 
 | Оклад
 
 |  
              | преп
 
 | 500
 
 |  
              | Ст.преп
 
 | 800
 
 |  
 Обычно достаточно бывает привести таблицу к 3НФ и на этом закончить процесс нормализации.
 
 Всего существует 5 нормальных форм и нормальная форма Бойса-Кодда, которые рассматривать мы не будем.
 ИСПОЛНИТЕЛЬНАЯ ЧАСТЬ
 
 1. Приведите таблицу 8 «Заказы на ремонт от жильцов дома по ул. Победы, 18 , 1 подъезд за 2005 год» в 1НФ.
 
 2. Определите составной первичный ключ таблицы, т.е. необходимо найти такую совокупность атрибутов, которая не будет повторяться, будет уникальной.
 
 3. Определите виды зависимости между атрибутами и представьте их в виде схемы зависимостей атрибутов.
 
 4. Приведите таблицу ко 2НФ и 3НФ.
 КОНТРОЛЬНЫЕ ВОПРОСЫ
 
 
            Сколько различных видов нормальных форм существует?
 
Какие виды зависимостей между атрибутов существуют?
 
Для чего применяют процесс нормализации таблиц?
 
Опишите алгоритм приведения таблицы ко 2 и 3 нормальной формам. Какие виды зависимостей между атрибутами могут присутствовать у таблиц, находящихся во 2 и 3 нормальных формах.
 
 Таблица 8 - Заказы на ремонт от жильцов дома по ул. Победы, 18, 1 подъезд за 2005 год
 
 
            
            
            
            
            
            
            
            
            
            
            
            
              | №
 
 квартиры
 
 | ФИО владельца
 
 | Вид владельца
 
 | Процент скидки
 
 | Кол-во комнат
 
 | Постоянная часть оплаты
 
 | Кол-во прописан-ных
 
 | Переменная часть оплаты
 
 | Вид ремонта
 
 | Мастер
 
 | Качество проделанной работы
 
 |  
              | 1
 
 | Иванов И.Л.
 
 | Льгот
 
 | 20%
 
 | 2
 
 | 400
 
 | 3
 
 | 300
 
 | Замена труб
 
 | Роев
 
 | Удовл.
 
 |  
              | Замена батареи
 
 | Шитов
 
 | Удовл.
 
 |  
              | Чистка канализации
 
 | Роев
 
 | Плохое
 
 |  
              | 4
 
 | Прохоров В.А.
 
 | Обычн
 
 | 0%
 
 | 3
 
 | 600
 
 | 2
 
 | 200
 
 | Сварка труб
 
 | Дунаев
 
 | Удовл.
 
 |  
              | Установка счетчиков
 
 | Дунаев
 
 | Удовл.
 
 |  
              | 7
 
 | Балуев Т.Д.
 
 | Пенсион.
 
 | 50%
 
 | 3
 
 | 600
 
 | 4
 
 | 400
 
 | Установка счетчиков
 
 | Дунаев
 
 | Плохое
 
 |  
              | Замена труб
 
 | Дунаев
 
 | Удовл
 
 |  
              | 8
 
 | Юзов А.А.
 
 | Льгот
 
 | 20%
 
 | 1
 
 | 200
 
 | 2
 
 | 200
 
 | Чистка канализации
 
 | Роев
 
 | Плохое
 
 |  
              | 11
 
 | Лагунов П.Л.
 
 | Обычн.
 
 | 0%
 
 | 4
 
 | 800
 
 | 4
 
 | 400
 
 | Замена труб
 
 | Роев
 
 | Удовлетв.
 
 |  
              | Установка счетчиков
 
 | Шитов
 
 | Удовлетв.
 
 |  
              | 12
 
 | Петров П.П.
 
 | Пенсион.
 
 | 50%
 
 | 1
 
 | 200
 
 | 1
 
 | 100
 
 | Замена батареи
 
 | Роев
 
 | Удовлетв.
 
 |  
              | 15
 
 | Лосева Р.О.
 
 | Пенсион.
 
 | 50%
 
 | 3
 
 | 600
 
 | 4
 
 | 400
 
 | Установка крана
 
 | Шитов
 
 | Плохое
 
 |  
              | Чистка труб
 
 | Дунаев
 
 | Удовлетв.
 
 |  
 
 
 |