Проектирование и разработка реляционной базы данных «Электронная кулинарная книга»

Автор: Пользователь скрыл имя, 07 Января 2015 в 18:58, курсовая работа

Краткое описание

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

Файлы: 1 файл

Poyasnitelnaya_zapiska.doc

— 1.14 Мб (Скачать)

На рисунке 2.1 представлены отношения для базы данных Электронной кулинарной книги.

Рисунок 2.1 – Набор необходимых отношений базы данных

2.2 Задание первичных и внешних ключей 
определенных отношений

Ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся атрибутам. Каждое отношение должно обладать хотя бы одним ключом. Для удобства первичные ключи будут иметь постфикс ID, вторичные – Rec,Ref,Comp. В таблице 2.1 определены первичные и внешние ключи для отношений.

Таблица 2.1 –  Первичные и внешние ключи отношений

№ п/п

Название таблицы

Первичный ключ

Внешние ключи

Recipe

Recipe_ID

Rec_Autor_ID

Rec_Book_ID

Rec_Category_ID

Rec_Cooking_method_ID

Rec_Cuisine_ID

Rec_User_ID

Book

Book_ID

 

Author

Author_ID

 

Cuisine

Cuisine_ID

 

Cooking_method

Cooking_method_ID

 

Category

Category_ID

 

User_1

User_ID

 

Reference_1

Reference_ID

Ref_Recipe_ID

Ref_User_ID

Composition

Composition_ID

Comp_Recipe_ID

Comp_Ingridient_ID

Comp_Condition_ID

Comp_Unit_measure_ID

Ingridient

Ingridient_ID

 

Condition

Condition_ID

 

Unit_measure

Unit_measure _ID

 
 

 

 

2.3 Приведение отношения БД к третьей нормальной форме

Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией.

Нормализация необходима для того, чтобы привести структуру базы данных к виду, в которой достигалась бы минимальная избыточность. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

Так как все атрибуты наших отношений атомарны, а каждое отношение имеет первичный ключ, то это означает, что отношения базы находятся в первой нормальной форме (1НФ).

Так как зависимости неключевых атрибутов от части составного ключа отсутствуют (все ключи в вышеописанных отношениях несоставные),  а отношения базы находятся в первой нормальной форме, то можно утверждать, что отношения базы удовлетворяют требованиям второй нормальной формы (2НФ).

Так как в отношениях базы отсутствуют зависимости неключевых атрибутов от других неключевых атрибутов, а присутствие второй нормальной формы указано выше, можно сказать, что отношения базы находятся в третьей нормальной форме (3НФ).

Таким образом, отношения Базы Данных находятся в 3 Нормальной Форме.

 

2.4 Определение ограничений целостности для внешних 
ключей отношений и для отношений в целом

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

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

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

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

Система управления базами данных не может контролировать правильность каждого отдельного значения, вводимого в базу данных. Для этого существует ряд средств, помогающих разработчику минимизировать возможность нарушения целостности данных базы: триггеры, проверки («check»), уникальность («unique») и др.

Ограничения в базе данных электронная кулинарная книга представлены в Таблице 2.4.1

 

 

 

 

 

 

 

 

Таблица 2.4.1

№ п/п

Название таблицы

Ограничение с указанием типа

Описание

User_1

TRIGGER Check_Log

Невозможно добавить пользователя с одинаковым логином

CHECK Check_Login

Проверка существования логина при авторизации

2

Recipe

TRIGGER Check_Recipe_name

Невозможно добавить рецепт с одинаковым одновременно именем калорийностью, категорией, кухней.

  3

Reference

TRIGGER Check_Referencedate

Дата оставления отзыва не может превышать текущую дату.




 

 

2.5 Графическое представление связей между 
внешними и первичными ключами

После выполнения нормализации, выявления первичных и внешних ключей, определения связей между таблицами, была получена схема реляционной базы данных, представленная в приложении В.На ней изображаются все отношения базы данных, а также связей между внешними и первичными ключами.

 

3 СОЗДАНИЕ СПРОЕКТИРОВАННОЙ БАЗЫ ДАННЫХ

 

Для реализации спроектированной базы данных была выбрана система управления базами данных MS SQL Server 2012. Это обусловлено тем, что, данная СУБД имеет большую функциональность и развитую инфраструктуру для интеграции баз данных в пользовательские приложения.

В создаваемой базе данных будут использоваться следующие типы данных:

    • INT – Целочисленный тип. Размер – 4 байта
    • CHAR – Строковый тип переменной длины
    • DATE – Тип, определяющий дату.
    • TEXT – Текстовый тип

Опишем все таблицы, которые будут созданы в базе данных.

Таблица Recipe содержит список наименований рецепта, которые существуют в базе. Структура данной таблицы приведена в таблице 3.1.

Таблица 3.1 – Характеристика атрибутов таблицы Recipe

Имя атрибута

Тип

Описание

Recipe_ID

INT

Идентификатор рецепта. Ключевой атрибут.

Rec_Cuisine_ID

INT

Идентификатор кухни

Rec_Cooking_method_ID

INT

Идентификатор метода приготовления

Rec_User_ID

INT

Идентификатор пользователя

Rec_Book_ID

INT

Идентификатор книги

Description_cooking_method

TEXT

Описание способа приготовления

Recipe_name

CHAR(50)

Имя рецепта

Caloric_content

CHAR(15)

Калорийность блюда

Dish_weight

CHAR(15)

Выход блюда

Rec_Basis_ID

INT

Идентификатор основы

 

Rec_Author_ID

INT

Идентификатор автора

Rec_Category_ID

INT

Идентификатор категории


 

Таблица Cuisine содержит информацию о национальности кухни рецепта. Ее структура приведена в таблице 3.2.

 

Таблица 3.2 – Характеристика атрибутов таблицы Cuisine

Имя атрибута

Тип

Описание

Cuisine_ID

INT

Ключевой атрибут

Cuisine_name

CHAR(20)

Название типа кухни


 

Таблица Cooking_method содержит информацию о методе приготовления блюда. Ее структура приведена в таблице 3.3.

Таблица 3.3 – Характеристика атрибутов таблицы Cooking_method

Имя атрибута

Тип

Описание

Cooking_method_ID

INT

Ключевой атрибут

Method_name

CHAR(50)

Название метода приготовления блюда


 

Таблица User_1 содержит информацию о пользователях. Структура приведена в таблице 3.4.

Таблица 3.4 – Характеристика атрибутов таблицы User_1

Имя атрибута

Тип

Описание

User_ID

INT

Идентификатор пользователя. Ключевой атрибут

Name

CHAR(20)

Имя пользователя

Surname

CHAR(20)

Фамилия пользователя

Login

CHAR(20)

Логин пользователя

Password

CHAR(20)

Пароль


 

Таблица Book содержит информацию о книгах, из которых брались данные рецепты. Структура приведена в таблице 3.5.

Таблица 3.5 – Характеристика атрибутов таблицы Book

Имя атрибута

Тип

Описание

Book_ID

INT

Идентификатор книги. Ключевой атрибут

Tittle

CHAR(50)

Название книги

Author

CHAR(50)

Автор данной книги

Description

TEXT

Краткое описание книги


 

Таблица Basis содержит информацию об основе из которой делается данное блюдо. Структура приведена в таблице 3.6.

Таблица 3.6 – Характеристика атрибутов таблицы Basis

Имя атрибута

Тип

Описание

Basis_ID

INT

Идентификатор основы. Ключевой атрибут

Basis_name

CHAR(50)

Название основы для блюда


 

Таблица Author необходима для того чтобы узнать, блюдо добавлено из книги или пользователем. Структура приведена в таблице 3.7.

Таблица 3.7 – Характеристика атрибутов таблицы Author

Имя атрибута

Тип

Описание

Author_ID

INT

Идентификатор автора. Ключевой атрибут

Flag

INT

Флаг для проверки добавления рецепта пользователем или из книги


 

Таблица Category служит для хранения информации о категории блюда. Ее структура приведена в таблице 3.8.

Таблица 3.8 – Характеристика атрибутов таблицы Category

Имя атрибута

Тип

Описание

Category_ID

INT

Идентификатор категории. Ключевой атрибут

Category_name

CHAR(20)

Название категории блюда


 

Таблица Reference_1 служит для хранения данных об отзывах о бллюдах. Ее структура приведена в таблице 3.9.

Таблица 3.9 – Характеристика атрибутов таблицы Reference_1

Имя атрибута

Тип

Описание

Reference_ID

INT

Идентификатор записи

Ref_User_ID

INT

Идентификатор пользователя

Ref_Recipe_ID

INT

Идентификатор рецепта

Message

CHAR(250)

Отзыв о блюде

Date

DATE

Дата создания отзыва

Информация о работе Проектирование и разработка реляционной базы данных «Электронная кулинарная книга»