
- •Методические указания по выполнению лабораторной работы №2
- •Оглавление
- •Введение
- •Краткий обзор различных субд
- •Проектирование бд
- •3.1 Общие сведения о sql
- •3.2 Сведения об операторах sql
- •Insert добавляет новые данные
- •3.3 Сведения о типах данных
- •Методические указания по выполнению практической части лабораторной работы
- •4.1 На что следует обратить внимание перед началом работы
- •4.2 Начало работы с MySql
- •4.3 Рассмотрим создание бд на примере бд для Интернет-продаж
- •4.3.1 Создадим новую бд
- •4.3.2 Создадим таблицу «Интернет-Магазины»
- •4.3.3 Создадим таблицу «Товары»
- •4.3.4 Создадим таблицу «Клиенты»
- •4.3.5 Создадим таблицу «Доставка»
- •4.3.6 Заполним таблицу «Интернет-Магазины»
- •4.3.7 Заполним таблицу «Товары»
- •4.3.8 Заполним таблицу «Клиенты»
- •4.3.9 Заполним таблицу «Заказы»
- •4.3.10 Заполним таблицу «Доставка»
- •4.3.11 Отобразим графически структуру созданной таблицы с помощью программного средства MySql Workbench
- •Варианты заданий для лабораторной работы на тему «Разработка базы данных в субд MySql»
- •Список литературы
4.3.9 Заполним таблицу «Заказы»
При этом следует обратить внимание, как записываются данные типа DATE. Существует правило: От большего к меньшему. То есть год-месяц-число (час-минуты-секунды).
INSERT INTO Заказы (`Код магазина`, `Код товара`, `Дата заказа`, `Количество`, `Код клиента`)
VALUES (1,1,'2010-01-11',1,2),
(2,2,'2008-01-31',1,3),
(2,2,'2007-01-09',2,4),
(3,4,'2002-01-01',1,5),
(2,1,'2011-02-22',2,2),
(4,1,'2006-08-30',1,1),
(5,6,'2005-07-30',1,3),
(1,3,'2009-06-30',2,4),
(5,5,'2009-05-30',1,1);
4.3.10 Заполним таблицу «Доставка»
Хоть MySQL пятой версии и поддерживает ссылочную целостность (FOREING KEY), т.к. таблицу «Доставка» мы заполняем отдельно, то мы вполне можем доставить товар другому клиенту (не тому, кто его заказывал).
В данном случае в таблице «Доставка» есть столбец «Код заказа», который ссылается на соответствующий столбец в таблице «Заказы», который имеет функцию АВТОЗАПОЛНЕНИЯ. Автозаполнение работает таким образом, что даже после удаления строк оно продолжает свой счет. То есть после нескольких пробных попыток или серии удалений вполне может получиться следующая картина:
SELECT * FROM Заказы;
И это следует учитывать при заполнении таблицы «Доставки». Поэтому запрос будет выглядеть следующим образом:
INSERT INTO Доставка (`Код заказа`, `Дата и время доставки`, `Код клиента`)
VALUES (28, '2010-01-11 20:00:00', 2),
(29, '2008-01-31 22:50:00', 3),
(30, '2007-02-10 20:00:00', 4),
(31, '2010-01-15 06:00:00', 5),
(32,NULL, 2); -- Т.к. на столбце не стоит ограничения, можно оставить ячейку без значения.
4.3.11 Отобразим графически структуру созданной таблицы с помощью программного средства MySql Workbench
Запустим MySQL Workbench.
В разделе DATA MODELING выберем пункт CRAETE EER MODEL FROM EXISTING DATABASE.
В выпадающем меню STORED CONNECTION выберем «Local Instance MySQL»
Нажмем «NEXT»
В появившемся окошке введем пароль (если требуется). По умолчанию «password».
После подключения нажмем «Next»
Выберем спроектированную БД «Интернет-продажи»
Далее выбирать ничего не надо, просто нажимать «Execute» - >«Next» -> «Finish»
В итоге получим созданную схему со всеми связями.
Варианты заданий для лабораторной работы на тему «Разработка базы данных в субд MySql»
Вариант 1
Проект «Поставка товаров»
Завод поставляет товары (Изделие 1, изделие 2, и т.д.) заказчикам по договорам. Для каждого товара определены планы поставок.
Необходимо спроектировать базу данных «Поставка товаров», информация которой может быть использована для анализа выполнения заводом планов поставок.
В БД должна храниться информация:
о ТОВАРАХ (Код товара, Наименование товара, Цена);
о ЗАКАЗАХ (Код заказа, ФИО заказчика, Адрес заказчика, Телефон заказчика, Дата заказа, наименование товара, Количество);
о фактических ОТГРУЗКАХ (Код отгрузки, Код заказа, Дата, Количество, Код товара).
При проектировании нужно учесть, что товар имеет несколько заказов на поставку. Заказ соответствует одному товару.
Товару могут соответствовать несколько отгрузок.
Одному заказу соответствует одна отгрузка.
Каждому заказу обязательно соответствует товар.
Ниже показана структура БД, которая должна в итоге получиться.
Вариант 2
Проект «Розничная торговля»
Магазин розничной торговли продает в разные города персональные компьютеры, средства связи и периферийное оборудование: принтеры, накопители и т.д.
Необходимо спроектировать базу данных «Розничная торговля», информация которой будет использована для анализа продаж в магазине.
В БД должна храниться информация:
о ТОВАРАХ (Код товара, Наименование, Дата поставки, ФИО поставщика, Цена, Количество);
о ПРОДАЖАХ (Код продажи, Код товара, Дата продажи, Количество, Код города);
о ПОСТАВЩИКАХ (Код поставщика, ФИО поставщика, Телефон, Код города);
о ГОРОДАХ (Код города, Название).
При проектировании БД необходимо учесть, что поставщик поставляет несколько товаров.
Товар имеет несколько продаж. Продажа относится к одному товару.
Каждый товар обязательно кем-то поставляется.
Город соответствует нескольким продажам и нескольким поставщикам.
Ниже показана структура БД, которая должна в итоге получиться.
Вариант 3
Проект «Турагентство»
Работники турагентства продаю путевки по разным странам. В каждую страну организуется несколько маршрутов.
Необходимо спроектировать базу данных «Турагентство», информация которой позволит определять наиболее популярные маршруты, отслеживать обращения клиентов и т.д.
В БД должна храниться информация:
о СТРАНАХ (Код страны, Название);
о МАРШРУТАХ (Код маршрута, Код страны, Наименование);
о ПРОДАЖАХ (Код продажи, Дата продажи, Покупатель, Код маршрута);
о КЛИЕНТАХ (Код клиента, Страна клиента, ФИО Клиента).
При проектировании БД необходимо учесть, что в каждую страну организуется несколько маршрутов.
Маршрут участвует в нескольких продажах. Продажа связана только с одним маршрутом.
Каждый маршрут обязательно имеет отношение к некоторой стране.
Каждая продажа обязательно связана с одним маршрутом.
Ниже показана структура БД, которая должна в итоге получиться.