- Здравствуйте ребята!
- План урока у нас следующий: в начале, мы с вами проверим ваши знания
по теме «базы данных», для того чтобы убедиться в том, что вы готовы к усвоению новой темы. Затем мы
изучим новую тему и выполним практическое задание на компьютере. И в конце
урока проверим, насколько хорошо вы усвоили новый материал. - Прежде чем приступить к новой теме вам нужно
будет выполнить тест по теме «Базы данных» на компьютере. В тесте вы сможете
сразу увидеть свой результат. - Теперь мы перейдем к новой теме. Открывайте тетради и
записывайте сегодняшнее число и тему урока «Многотабличные базы данных». (слайд
1)
- Сегодня на уроке мы будем работать с несколькими таблицами
внутри одной базы данных. Сначала давайте выясним – зачем нужно связывать
несколько таблиц в одну базу данных? И в каких случаях это необходимо?
- На самом деле ситуации, в которых хранить всю информацию в
одной таблице нерационально, встречаются довольно часто. Связано это с тем, что
в массивной таблице содержащей большое количество полей, различные записи могут
дублироваться. Это приводит к увеличению информационного объема базы данных и
как следствие – замедлению ее обработки.
В качестве примера рассмотрим таблицу «Подписка». Эта таблица заполнена избыточной,
дублированной информацией. Чтобы понять почему же так получилось нужно
проанализировать структуру таблицы.
- Данная таблица содержит информацию о подписке, которые
здесь представлены тремя параметрами – «индекс», «Название издания» и «Стоимость
подписки». Оставшиеся три параметра – «Фамилия подписчика», «Адрес» и «Срок подписки» свойствами подписки не
являются, они являются свойствами подписчика.(слайд 2)
- Можно сделать вывод, что исходную таблицу нужно разделить
на две: «подписные издания» и «подписчики». (слайд 3) Каждая из вновь созданных
таблиц должна иметь как минимум одно поле, значения в котором будут различаться
для всех записей данной таблицы. Как называется такое поле?
- Правильно. В таблице «подписные издания» ключевым полем
будет поле – «код издания», а для таблицы «подписчики» - «код подписчика». Затем
нам нужно связать эти таблицы, чтобы получить единую базу данных. Связывают
таблицы с помощью совпадающих полей.
- В такой базе
данных, называемой реляционной, все данные хранятся в виде прямоугольных
таблиц, между которыми установлены связи (существуют отношения), при этом все
операции с базой данных сводятся к манипулированию таблицами.
Запишите это
определение в тетрадь. (слайд 4)
- Теперь, когда вы знаете что таблицы в базах данных нужно
связывать исходя из типа отношения, у меня к вам вопрос.
- Какой из рассмотренных видов отношений соответствует
отношению таблицы «подписные издания» к таблице «подписчики»? (Слайд 5, 6)
- Правильно. Если связь между двумя таблицами имеет вид «один
- ко - многим», то необходимо
использовать для их связи вспомогательную таблицу. В нашем случае для связи мы
будем использовать таблицу «Связь данных», которая будет содержать поля
идентичные ключевым полям таблиц «Подписные издания» и «Подписчики»,
собственное ключевое поле «Номер» (слайд 7)
- Теперь нам нужно связать созданные таблицы, реализовав две
связи «один - ко - многим». Связываются таблицы с помощью команды «Сервис –
схема данных» или аналогичной кнопки на
панели инструментов, после чего открывается окно «Схемы данных» и диалоговое
окно для добавления в схему таблиц. (слайд 8) При создании связей используются термины «родительская таблица» и «дочерняя таблица». Родительских таблиц у нас две – «Подписные издания» и «Подписчики»,
дочерняя – «Связь данных». (слайд 9)
- После добавления таблиц в «схему данных» нужно
организовать связь, перетащив мышью из таблицы «Подписные издания» ключевое
поле – «код издания» к одноименному полю внешнего ключа таблицы «Связь данных».
Далее на появившейся диалоговой панели «Связи» установить опцию «обеспечение
целостности данных», а затем опции «каскадное обновление связанных полей» и
«каскадное удаление связанных записей» и в завершение, щелкнуть по кнопке
«создать». Точно так же создается связь между ключевым полем таблицы «Подписчики»
и внешним ключом таблицы «Связь данных». (слайд 10)
- Теперь связь двух
таблиц установлена. Созданная нами реляционная база данных состоит из 3
связанных таблиц и обладает целостностью данных. Значит и обрабатываться база
данных будет как единое целое, при создании запросов или форм будут
использоваться данные из разных таблиц.
- А сейчас давайте разработаем и запишем алгоритм создания реляционной
БД. (слайд 11) - В ходе практической работы вы должны будете нормализовать неверно
составленную таблицу. Исходная таблица «Баки» содержит 9 полей. В данной БД есть
недостатки. (слайд 12)
- Для того чтобы
разбить исходную таблицу нужно сначала определить первичный ключ таблицы. Какое
поле будет являться в данной таблице первичным ключом?
Правильно. Обратите
внимание, что в БД есть поля, которые вообще не зависят от главного ключа. Это
поля «лицензия» и «город», которое
зависит от отделения. Поэтому создадим
новую таблицу, которая будет состоять из полей «город», «отделение» и «лицензия».
Еще мы видим что поля «проценты» и «название вклада» и «код вклада» зависят не
полностью от всего ключа таблицы, а лишь от его части, значит, эти три поля можно
выделить в отдельную таблицу.
- В результате
нормализации мы получили три таблицы: «Отделения», «Вклады» и «Вкладчики». Причем,
таблица «Вкладчики» содержит поля «Отделение» и «Код вклада». Родительская
таблица – таблица «Вкладчики». «Отделения» и
«Вклады» - дочерние.
- Таблицу «Вкладчики»
свяжем с таблицей «Вклады» через поле «код вклада». С таблицей «Отделения» -
через поле «отделение». (слайд 13)
- Приступайте к
выполнению практической работы. Карточки с исходной таблицей «Банки» у вас есть.
(В ходе выполнения учениками практической работы, учитель контролирует
правильность выполнения работы учениками). - Давайте еще раз вернемся к нашей теме урока.
- Ответьте на вопрос: какой тип связи вы использовали при
выполнении практической работы?
- Как вы думаете, в реальной жизни чаще встречаются обычные
или многотабличные БД?
- Урок закончен, спасибо за внимание!
Источник: http://depositfiles.com/files/hwa5lz80b |