- •Создание базы данных «Домашняя библиотека»
- •Ягту 220301.65-016 лр
- •Оглавление Содержание:
- •1 Разработка структуры бд
- •1.1 Уточнение задач
- •1.2 Сущности
- •1.3 Нормализация Приведение к 1нф: Первая нормальная форма требует:
- •Приведение ко 2 нф:
- •Приведение к 3нф:
- •1.4 Проектирование таблиц
- •2. Реализация серверной части.
- •2.1 Создание таблиц.
- •2.2 Команды
- •3. Реализация клиентской части.
- •3.1 Проектирование интерфейса пользователя.
- •3.2 Проектирование отдельных графических форм.
- •3.3 Разработка алгоритмов.
- •3.4 Разработка структуры sql-запросов.
1.3 Нормализация Приведение к 1нф: Первая нормальная форма требует:
1) простая структура таблицы;
2) в таблице нет одинаковых по смыслу полей (нет повторяющихся групп);
3) в таблице нет составных полей;
4) в таблице нет одинаковых записей;
Рассмотрим выполнение требований первой нормальной формы к каждой таблице.
1) В каждой таблице информация предоставляется в виде совокупности строк и столбцов.
2) В каждой таблице отсутствуют одинаковые по смыслу поля. При рассмотрении каждой таблицы в отдельности мы видим, что информация, содержащаяся в каждом из столбцов, различна.
3) В каждой отдельно взятой таблице отсутствуют составные поля, так как в работе с ними, нам не понадобятся отдельные части их значений.
4) Двух полностью одинаковых строк ни в одной таблице нет, так как одинаковые элементы множества являются одним элементом, но части записей, могут повторяться. В данных таблицах, нет одинаковых записей. В таблице «Книги» нет одинаковых записей, т.к. принято допущение об уникальности названия каждой книги. В таблице «Пользователь» нет одинаковых записей, т.к. один пользователь не может получить на руки две книги с одинаковыми названиями. В таблице «Место выдачи» нет одинаковых записей, т.к. у каждого места выдачи уникальны поля название
Как мы видим требования первой нормальной формы к каждой таблице выполняются, следовательно, они приведены к первой нормальной форме и представлены на рисунке 2.
ПОЛЬЗОВАТЕЛЬ
КНИГА
Название Издательство Авторы Год издания Жанр Место выдачи Пользователь Раздел Подраздел |
Ф.И.О Дата выдачи Адрес Книга Срок возврата |
Место выдачи
Название Адрес Тип |
Рис 2. 1НФ
Приведение ко 2 нф:
Вторая нормальная форма требует, чтобы таблицы были приведены к первой нормальной форме и чтобы все поля каждой таблицы зависели от первичного ключа. Первичный ключ должен однозначно определять запись и не быть избыточным. Также, мы должны убедиться в том, чтобы внутри каждой из сущностей не было внутренних взаимосвязей между характерными группами с целью уменьшения избыточности.
В сущности Книга первичным ключом является поле Название книги. Приняты допущения о том, что в домашней библиотеке не может быть двух книг с одинаковым названием и все книги в единственном экземпляре
В сущности Пользователь первичным ключом являются поля Книга и Дата выдачи. Комбинация этих полей уникальна, т.к. один пользователь не может взять в один день две книги с одинаковыми названиями (все книги присутствуют в единственном экземпляре). Так же примем допущение о том, что в один и тот же день пользователь не может взять одну и ту же книгу 2 раза (Пользователь взял книгу, затем сдал ее в тот же день и затем хочет снова получить ее на руки в тот же день)
В сущности Место выдачи первичным ключом является поле Название. Не может быть двух магазинов и двух библиотек с одинаковыми названиями.
В сущности Книга поля Издательство, Год издания, Жанр, Место выдачи, Подраздел являются характеристиками книги. Т.к. у одной книги может быть несколько авторов (“Физика для студентов ВУЗов” Авторы: Савельев А.И. , Романсон Р.Е. , Колбышев Н.В. и т.д.) и несколько пользователей, то вынесем эти поля в отдельные таблицы. Так же вынесем в отдельную таблицу поле Подраздел т.к. это поле является характеристикой Раздела. В сущности Пользователь поля ФИО и Срок возврата являются характеристиками РК таблицы Пользователь. Поле адрес является характеристикой поля ФИО, поэтому выноси Адрес в отдельную таблицу.
В сущности Место выдачи поля название, адрес, тип.
В соответствии с выделенными смысловыми зависимостями разобьем таблицы
Введем семантически не значащие PK:
Код книги в сущность Книги Код Места в сущность Место выдачи
В результате всех преобразований получим структуру изображенную на рис 3.
КНИГА
Название |
Издательство Год издания Жанр Место выдачи Раздел |
|
Название Автор |
|
Название Пользователь |
|
Раздел |
Подраздел |
Название Дата выдачи |
ФИО Срок возврата |
ФИО |
Адрес |
Название |
Адрес Тип |
Пользователь
Место выдачи
Рис 3. 2 НФ
КНИГА
Код книги |
Название Издательство Год издания Жанр Место выдачи Раздел |
|
Код книги Автор |
|
Код книги Пользователь |
|
Раздел |
Подраздел |
Код книги Дата выдачи |
ФИО Срок возврата |
ФИО |
Адрес |
Код места выдачи |
Название Адрес Тип |
Пользователь
Место выдачи
Рис4. 3НФ
