Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, углубленный уровень)



Уроки 57 - 58
§34. Многотабличные базы данных







Содержание урока

Почему бы не собрать всё в одной таблице?

Создание многотабличной базы данных

Запросы

Выводы

Вопросы и задания

Практическая работа № 33 «Многотабличная база данных»

Практическая работа № 34 «Запросы в многотабличной базе данных»


Почему бы не собрать всё в одной таблице?


Ключевые слова:

• многотабличная БД	
• связь между таблицами
• внешний ключ

До этого момента мы изучали простейшую базу данных, в которой всё данные сведены в одну таблицу, и поэтому искать информацию достаточно просто. Однако у такой модели есть и недостатки:

• дублирование данных: например, в базе данных школьной библиотеки будет много раз храниться фамилия автора «Пушкин»;
• при изменении каких-то данных (например, адреса фирмы), возможно, придётся изменять много записей;
• нет защиты от ошибок ввода (опечаток).

Однотабличная база данных — это аналог картотеки, в которой все карточки имеют одинаковую структуру. В то же время обычно в одной базе нужно хранить данные, относящиеся к объектам разных типов, которые связаны между собой. Поэтому возникает вопрос: какую модель лучше использовать для описания и хранения этих данных?

Посмотрим, как можно организовать базу данных, в которой хранятся данные об альбомах музыкальных групп. Вот что получается, если свести все данные в одну таблицу (рис. 6.16).

Рис. 6.16

Рис. 6.16

В данном случае в качестве первичного ключа можно выбрать пару свойств Альбом + Группа, но работать с таким составным ключом неудобно, поэтому мы ввели суррогатный ключ — дополнительное числовое поле Код альбома, оно обозначено знаком .

Определите типы данных и ограничения для всех полей таблицы на рис. 6.16.

Сразу видим, что в этой таблице есть дублирование — название группы (символьная строка) повторяется для каждого альбома этой группы. Причина в том, что в таблице на самом деле есть сведения не только об альбомах, но и о группах — объектах совершенно другого класса. Поэтому для хранения всей информации о группах нужно сделать отдельную таблицу (рис. 6.17).

Рис. 6.17

Рис. 6.17

Здесь первичным ключом может быть название группы (символьная строка), но для ускорения работы введён суррогатный ключ — Код группы (целое число). В эту таблицу можно добавить другие данные о группе.

Предложите новые поля, которые можно добавить в таблицу Группы.

В таблице Альбомы теперь будет храниться не название группы, а её код (рис. 6.18).

Рис. 6.18

Рис. 6.18

Таким образом, база данных состоит из двух таблиц, каждая из которых хранит сведения об объектах одного класса (первая — о группах, вторая — об альбомах). Такая структура понятна человеку и облегчает работу с многотабличными базами.

Рис. 6.19

Рис. 6.19

На этом рисунке перечислены поля каждой из таблиц и показана их связь: код группы в таблице Альбомы должен совпадать с кодом одной из групп в таблице Группы.

Каждый альбом связан только с одной группой, поэтому связь между таблицами Группы и Альбомы — это связь типа «один ко многим» (она кратко обозначается как 1:n или 1-∞). Это значит, что одна запись в таблице Группы может быть связана со многими записями в таблице Альбомы, но не наоборот.

Внешний ключ — это неключевое поле таблицы, связанное с первичным ключом другой таблицы.

Таким образом, Код группы — это внешний ключ в таблице Альбомы.

Используя дополнительные источники, выясните, как называется внешний ключ таблицы в англоязычной литературе.


Итак, мы получили две связанные таблицы вместо одной. При этом:

• устранено дублирование данных (повторно хранятся только числовые коды);
• все изменения нужно выполнять только в одном месте;
• есть некоторая защита от ошибок при вводе данных — можно сделать так, что при заполнении таблицы Альбомы название группы выбирается из уже готового списка групп.

Однако кое-что ухудшилось из-за того, что данные разбросаны по разным таблицам:

• базами данных, в которых более 40—50 таблиц, сложно управлять из-за того, что разработчику трудно воспринимать информацию в таком «раздробленном» виде;
• при поиске приходится «собирать» нужные данные из нескольких таблиц.

Рассматриваемые базы данных основаны на реляционной модели данных. Это название связано с тем, что для работы с ними применяется специальный математический аппарат — реляционная алгебра, разработанная в 70-х годах XX века. Более подробно с реляционными базами данных вы познакомитесь в старшей школе.

Используя дополнительные источники, выясните, от какого слова произошло слово «реляционный» и что оно означает. Какой учёный разработал реляционную алгебру?



Следующая страница Создание многотабличной базы данных



Cкачать материалы урока








Наверх