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