Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABORATORN_E.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
611.33 Кб
Скачать

Лабораторная работа № 6 создание бд на основе субд MySql.

Цель работы: освоить процесс разработки типичной базы данных (используется пример с заданием «Поваренная книга») на основе СУБД MySQL.

Порядок выполнения работы

1. Постановка задачи. Разработать и заполнить базу данных, предназначенную для представления данных, описанных в задании.

2. Разработка структуры базы данных в MySQL.

2.1. Создание заготовки базы данных в MySQL.

2.2. Нормализация исходных данных до 3-й нормальной формы.

2.3. Создание нормализованных таблиц в MySQL.

2.4. Определение связей между таблицами.

3. Заполнение таблиц данными для контроля правильности работы базы данных и клиентского приложения.

На рис. 2.27 приведена схема базы данных «Поваренная книга». Детальная структура каждой из таблиц описана ниже.

Рис. 2.27 Структура базы данных CookBook (Поваренная книга)

Таблица 1. Структура таблицы Categories (Категории продуктов)

Имя поля

Тип данных

Описание

ID

INT

Идентификатор, первичный ключ

C_Name

CHAR

Наименование категории

Таблица 2. Структура таблицы Recipes (Рецепты)

Имя поля

Тип данных

Описание

ID

INT

Идентификатор, первичный ключ

R_Name

CHAR

Наименование блюда

Persons

INT

Количество персон

Category_ID

INT

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

Таблица 3. Структура таблицы RF_Links (Связи «рецепты-продукты»)

Имя поля

Тип данных

Описание

ID

INT

Идентификатор, первичный ключ

Food_ID

INT

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

Recipe_ID

INT

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

Quantity

FLOAT

Количество продукта в составе рецепта

Таблица 4. Структура таблицы Food (Продукты)

Имя поля

Тип данных

Описание

ID

INT

Идентификатор, первичный ключ

F_Name

CHAR

Наименование продукта

Price

DECIMAL(6,2)

Цена

Energy

DECIMAL(4,2)

Калорийность

Текст SQL-сценария, создающего базу с вышеописанной структурой, выглядит следующим образом:

CREATE DATABASE cookbook;

USE cookbook;

CREATE TABLE `Categories` (

`ID` int(11) NOT NULL auto_increment,

`C_Name` char(40) NOT NULL,

PRIMARY KEY (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Food` (

`ID` int(11) NOT NULL auto_increment,

`F_Name` char(40) NOT NULL,

`Price` decimal(2,0) default NULL,

`Energy` decimal(2,0) default NULL,

PRIMARY KEY (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `RF_Links` (

`ID` int(11) NOT NULL auto_increment,

`Food_ID` int(11) NOT NULL,

`Recipe_ID` int(11) NOT NULL,

`Quantity` float default NULL,

PRIMARY KEY (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Recipes` (

`ID` int(11) NOT NULL auto_increment,

`R_Name` char(40) NOT NULL,

`Persons` int(11) default '1',

`Category_ID` int(11) NOT NULL,

PRIMARY KEY (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Содержание отчета

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

Вопросы для самопроверки

1. Каково значение ограничителя NOT NULL, использующегося в некоторых полях таблиц базы данных?

2. В чем отличие третьей нормальной формы от второй?

3. Обоснуйте ваш выбор типов данных для полей таблиц.

Задание

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]