Создание базы данных "Библиотека"

Практическая работа «Создание БД» в 8 классе

Разработка структуры базы данных Библиотека.
Для создания библиотечного каталога имеет смысл авторов и книги заносить в разные таблицы, потому что часто библиотека содержит более одной книги конкретного автора. Иначе пришлось бы для каждой книги описывать все характеристики писателя заново.
Очевидно, что одна из таблиц будет описывать характеристики читатеей. И еще одна таблица «Карточка» - для фиксирования выдачи книги.

Создание таблиц базы данных Библиотека: Авторы, Книги, Читатели, Карточка.
Создайте четыре таблицы БД Библиотека в режиме конструктора в соответствии с Таблицей 1.

Таблица 1


Таблицы

Поля

Типы данных

Пояснения

Авторы

КодАвтора

Счетчик

Счетчик нельзя изменить в ручную. Если удалить запись со счетчиком 2, то такого номера в таблице уже никогда не будет.

Фамилия

Текстовый

 

Имя

Текстовый

 

Отчество

Текстовый

 

Страна

Текстовый

 

ДатаРождения

Дата/Время

 

ДатаСмерти

Дата/Время

 

Книги

КодКниги

Счетчик

 

КодАвтора

Числовой

НЕ счетчик, будет заполняться автоматически при выборе из списка имеющихся записей в таблице Авторы. Для этого на вкладке Подстановка выбираем Тип элемента управления: Поле со списком, Тип источника строк: Таблица или запрос, Источник строк: …, составляем запрос (см. рис)

Название

Текстовый

 

ДатаИздания

Дата/Время

 

КоличествоСтраниц

Числовой

 

Язык

Текстовый

Подстановка из списка (см.рис. – в кавычках, через ;)

Читатели

КодЧитателя

Счетчик

 

Фамилия

Текстовый

 

Имя

Текстовый

 

Отчество

Текстовый

 

Карточка

КодВыдачи

Счетчик

 

КодКниги

Числовой

Подстановка из таблицы Книги и Авторы, Источник строк - …® Инструкция SQL: построитель запросов (см.рис.)

КодЧитателя

Числовой

НЕ счетчик
Подстановка из таблицы Читатели

ВыданаДата

Дата/Время

 

СданаДата

Дата/Время

 

Подстановки в таблице Книги. Рассмотрим, как выполнить подстановку в таблице Книги для полей КодАвтора и Язык.

Поле Язык будем заполнять из списка значений, указанных в кавычках, а поле КодАвтора  - из соответствующего столбца в таблице Авторы.
Поставьте курсор в поле Язык, в разделе Свойства поля выберите вкладку Подстановка, внесите в первые три строки значения, как показано на рисунке 1:

При заполнении формы и таблицы Книги данное поле будет содержать выпадающий список, в котором достаточно будет выбрать нужное значение, а не набирать его на клавиатуре. Также подстановка удобна тем, что помогает избежать опечаток.
Для поля Язык также укажите на вкладке Общие в свойстве Значение по умолчанию Русский, чтобы еще больше сократить работу по «забиванию» данных в БД.

Подстановка для поля КодАвтора выполняется сложнее. Заполните все строки, кроме третьей, как показано на рисунке 2:

В свойстве Источник строк нажмите многоточие, чтобы приступить к формированию запроса на отбор данных.

В диалоговом окне Добавление таблицы выберите таблицу Авторы. В окне Инструкция SQL: построитель запросов выставите поля как показано на рисунке 3.

Свойство Присоединенный столбец имеет значение 4, что означает, что фактически будет вноситься значение из четвертого столбца, хотя в раскрывающемся списке мы будем видеть все 4 указанных нами поля (об этом говорит свойство Число столбцов = 4). Ширина списка = 12см, это ширина выплывающего списка на экране (см. рис. 2)

Для таблицы Карточка для поля КодЧитателя создание Подстановки выполняется аналогичным способом, на основе таблицы Читатель (см.рис.4а).


Для поля КодКниги Подстановка отличается лишь тем, что использует две таблицы для построения запроса(см.рис.4б).


Установление связей между таблицами на схеме данных.
Найдите на Панели инструментов кнопку Схема данных. Щелкните правой клавишей в окне схемы данных и выберите Добавить таблицу: выделите и добавьте все 4 таблицы.

Перетаскиванием полей установите связи, как показано на рисунке «Схема данных», для каждой связи отмечаем галочкой Обеспечение целостности данных, Каскадное обновление связанных полей, Каскадное удаление связанных записей (см.рис. слева). Устанавливать связь можно только между полями одного типа!!! Например, поле КодАвтора во всех таблицах является числовым, но при установлении связи оба поля не могут одновременно быть типа Счетчик, иначе нарушается целостность данных.
При создании связи мы соединяем ключевые поля с неключевыми, такая связь автоматически трактуется как связь «один-ко-многим». Это означает, что для одной записи первой таблицы существует много записей второй таблицы. Например, для одного автора из таблицы Авторы может существовать несколько записей в таблице Книги, имеющих одинаковое значение поля КодАвтора (см.рис.5«Схема данных»).

Наличие связей в базе данных обеспечивает их целостность. Как только вы удалите из таблицы Авторы хотя бы одного писателя, то сразу автоматически из таблицы Книги удалятся все его книги, из таблицы Карточка – все записи, где встречались эти книги!!! При работе с данными следует соблюдать осторожность, иначе случайно можно сделать необратимые изменения!!! Рекомендуется все операции проводить после создания резервной копии БД!!!
Обратите внимание, что программа требует сохранения таблиц при их закрытии только в том случае, когда были произведены изменения в структуре полей (название, свойства или тип поля поменялись). Но если была записана или изменена запись таблицы, сохранения не требуется – изменения в БД внеслись автоматически!!! Это очень важно знать и помнить!!!

Создание форм Авторы, Книги, Читатели, Карточка.
На основе каждой таблицы создайте форму с помощью мастера, в форму добавляйте все поля, а затем исключайте поле, являющееся по типу Счетчиком (ведь пользователь не может влиять на его значение). Располагайте поля на форме в столбик – при использовании подстановок всплывающий список загораживает поля сбоку.

Заполнение таблиц записями с помощью форм.
С учетом существующих связей таблица Авторы заполняется в самую первую очередь, а таблица Карточка – в последнюю. Внесите в БД следующие записи.
Таблица «Авторы»

Фамилия

Имя

Отчество

Страна

ДатаРождения

ДатаСмерти

1

Пушкин

Александр

Сергеевич

Россия

 

 

2

Толстой

Лев

Николаевич

Россия

 

 

3

Достоевский

Федор

Михайлович

Россия

 

 

4

Хеммингуэй

Эрнест

 

США

 

 

5

Лондон

Джек

 

США

 

 

6

Ремарк

Эрих Мария

 

Германия

 

 

7

О. Генри

 

 

США

 

 

8

Майринк

Густав

 

Австрия

 

 

9

Маркес

Габриэль Гарсиа

 

Колумбия

 

 

10

Булгаков

Михаил

Александрович

Россия

 

 

11

Стилл

Даниэлла

 

США

 

 

12

Фейнман

Ричард П.

 

США

 

 

13

Купер

Фенимор

 

США

 

 

Таблица "Читатели"

Фамилия

Имя

Отчетсво

1

Петров

Василий

Васильевич

2

Иванова

Наталия

Сергеевна

3

Русанова

Вера

Максимовна

4

Бажин

Антон

Михайлович

5

Усов

Василий

Константинович

6

Родыгина

Елена

Андреевна

Таблица "Книги"

КодАвтора

Название

ДатаИздания

КоличествоСтраниц

Язык

1

12

Six Easy PIECES

01.01.1994

146

Английский

2

10

Мастер и Маргарита

01.01.1992

416

Русский

3

9

Полковнику никто не пишет. Сто лет одиночества

01.01.1989

431

Русский

4

5

Собрание сочинений в восьми томах. Том 8

01.01.1995

384

Русский

5

8

Голем. Вальпургиева ночь

01.01.1989

334

Русский

6

7

Супружество как точная наука. Сборник рассказов

01.01.2007

720

Русский

7

11

The HOUSE

01.01.2006

385

Английский

8

6

Три товарища

01.01.1988

268

Русский

9

5

Мартин Иден

01.01.1986

456

Русский

10

2

Анна Каренина

01.01.1977

487

Русский

11

13

Следопыт

 

0

Русский

12

3

Бедные люди

 

0

Русский

Затененные поля заполняются из открывающегося списка, т.к. для них были заданы подстановки!
Последнюю таблицу заполните по своему усмотрению.
В ходе работы с формами у вас будет нечто подобное (рис.6). Обратите внимание на вложенный список в последней форме. Это результат создания Подстановки.

Проверка на практике целостности данных связанной БД.
Удалите из таблицы Авторы одну из записей, подтвердите удаление. Убедитесь, что из других таблиц удалились записи, содержащие книги этого автора. Убедитесь, что код удаленного автора больше никому не будет присвоен.


 
 
 
   
         
Сайт управляется системой uCoz