- •Варианты заданий
- •Вариант № 2
- •Вариант № 3
- •Вариант № 4
- •Вариант № 5
- •Вариант № 6
- •Вариант № 7
- •Вариант № 8
- •Общие требования для всех вариантов второй части работы:
- •Вариант № 1
- •Вариант № 2
- •Вариант № 3
- •Вариант № 4
- •Вариант № 5
- •Вариант № 6
- •Варианты заданий Вариант № 1
- •Вариант № 2
- •Вариант № 3
- •Вариант № 4
- •Вариант № 5
- •Вариант № 6
- •Вариант № 7
- •Вариант № 8
- •Лабораторная работа № 3 построение приложений локальных баз данных средствами субд Microsoft Access
- •5. Поиск читателей, задержавших книги на срок более к дней Лабораторная работа № 4 создание бд
- •Поваренная книга
- •Лабораторная работа № 5 построение приложений локальных баз данных средствами delphi
- •Лабораторная работа № 6 создание бд на основе субд MySql.
- •Поваренная книга
Лабораторная работа № 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. Обоснуйте ваш выбор типов данных для полей таблиц.
Задание
