Слайд 1Вариант №1
Контрольной работы
Слайд 2Вариант 1. База данных «Библиотека»
Перед вами «бумажный» вариант базы данных.
Приведён
только заголовок таблицы, указывающий на то, какие данные подлежат учёту.
Ваша задача привести таблицу к 3-ей нормальной форме.
В ходе проведения нормализации следует учесть, что одна книга может быть в библиотеке в нескольких экземплярах, книги разных авторов могут быть написаны в одном жанре, а один автор может писать книги в разных жанрах.
Читатель может взять несколько книг в один день, но вернуть книгу он может не ранее, чем на следующий день.
Также следует учесть, что несколько читателей могут иметь одинаковые фамилии, проживать по одному адресу и иметь один номер домашнего телефона.
Исходную и получающиеся таблицы заполните примерными данными.
Все функциональные зависимости указывайте письменно.
В завершение работы нарисуйте схему данных и оцените выигрыш в объёме БД.
Слайд 3По условию задачи:
одна книга может быть в библиотеке в нескольких экземплярах;
несколько
читателей могут иметь одинаковые фамилии, проживать по одному адресу и иметь один номер домашнего телефона.
Первые две строки таблицы говорят о том, что один человек взял 2 экземпляра одной книги. Записи совпадают, а БД этого не допускает. Значит нужно ввести № книги – новое поле.
Однако этого не достаточно. Не понятно однофамильцы или один человек? Чтобы однозначно идентифицировать читателя, вводит ещё одно новое поле № читательского билета.
Слайд 4Избавляемся от сложных полей и продолжаем заполнять таблицу данными
книги разных авторов
могут быть написаны в одном жанре;
один автор может писать книги в разных жанрах;
читатель может взять несколько книг в один день, но вернуть книгу он может не ранее, чем на следующий день (это значит, что взять эту книгу другой читатель может не ранее следующего дня).
Слайд 5Функциональные зависимости
№ книги → Автор книги
№ книги →Название книги
№ книги →Жанр
№
читательского билета → Фамилия читателя
№ читательского билета →Домашний адрес
№ читательского билета →Домашний телефон
№ книги + дата выдачи →№ читательского билета
Функционально независимые поля: № книги, дата выдачи выбираем в качестве ключа. Т. к. Эти два поля однозначно определяют каждую запись.
Слайд 6Не все поля зависят от двух ключей одновременно.
Сведения о книге
однозначно определены № книги, а сведения о читателе № читательского билета.
Разбивая одну таблицу на несколько, добиваемся избавления от избыточности данных.