Факультет Радиофизики и Компьютерных технологий
Лабораторные работы № 1,2,3
По курсу «Организация баз данных и экспертных систем»
Выполнил : Унучек Николай Иванович
Студент 5 группы 4 курса

Рис. 1 ER-модель БД Интернет магазина
| Покупатель
| customers
|
| Поставщик
| vendors
|
| Id покупателя (РК)
| id_customer
|
| Id поставщика (РК)
| id_vendor
|
| Фамилия(Имя)
| name_f
|
| Наименование
| name
|
| Имя(Имя)
| name_i
|
| Адрес
| address
|
| Отчество(Имя)
| name_o
|
| Город
| city
|
| E-mail
| email
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Журнал покупок
| magazine_sales
|
| Журнал поставок
| magazine_incoming
|
| Id покупки (FK)
| id_sale
|
| Id поставки (FK)
| id_incoming
|
| Id товара (FK)
| id_product
|
| Id товара (FK)
| id_product
|
| Количество
| quantity
|
| Количество
| quantity
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Покупка
| sale
|
| Поставка
| incoming
|
| Id покупки (РК)
| id_sale
|
| Id поставки (РК)
| id_incoming
|
| Id покупателя (FK)
| id_customer
|
| Id поставщика (FK)
| id_vendor
|
| Дата
| date_sale
|
| Дата
| date_oncoming
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Товар
| products
|
| Цена
| prices
|
| Id товара (РК)
| id_product
|
| Id товара (FK)
| id_product
|
| Наименование
| name
|
| Дата
| date_price
|
| Автор
| autor
|
| Цена
| price
|

Рис.2 Схема РБД , соответствующая предметной области.
Cоздаем БД - kolya_unuchek_inet_shop;
mysql> create database kolya_unuchek_inet_shop;
Выбираем ее для работы:
mysql> use 5group_inet_shop;
Настройка прав доступа:
Добавление новых пользователей осуществляется по обычной схеме добавления записей в таблицу базы данных MySQL.
Создаём пользователя и задаём его пароль
mysql> create user dbuser identified by 'dbpass';
Предоставляем полные права пользователю на созданную базу и обновляем таблицу прав доступа
mysql> grant all on dbname.* to dbuser;
mysql> flush privileges;
Проверка созданного пользователя:
mysql>select user,password from user;

Создание таблиц
create table customer (
id_customer int NOT NULL AUTO_INCREMENT,
name_f char(50) NOT NULL, name_i char(50) NOT NULL, name_o char(50) NOT NULL,
email char(50) NOT NULL,
PRIMARY KEY (id_customer)
);
create table vendors (
id_vendor int NOT NULL AUTO_INCREMENT,
name char(50) NOT NULL,
city char(30) NOT NULL,
address char(100) NOT NULL,
PRIMARY KEY (id_vendor)
);
create table sale (
id_sale int NOT NULL AUTO_INCREMENT,
id_customer int NOT NULL,
date_sale date NOT NULL,
PRIMARY KEY (id_sale),
FOREIGN KEY (id_customer) REFERENCES customers (id_customer)
);
create table incoming (
id_incoming int NOT NULL AUTO_INCREMENT,
id_vendor int NOT NULL,
date_incoming date NOT NULL,
PRIMARI KEY (id_incoming),
FOREIGN KEY (id_vendor) REFERENCES vendors (id_vendor)
);
creatre table products (
id_product int NOT NULL AUTO_INCREMENT,
name char(100) NOT NULL,
author char(50) NOT NULL,
PRIMARY KEY (id_product)
);
creat table prices (
id_product int NOT NULL,
date_price_changes date NOT NULL,
price double NOT NULL,
PRIMARY KEY (id_product, date_price_changes),
FOREIGN KEY (id_product) REFERENCES products (id_product)
);
creat table magazine_sales (
id_sale int NOT NULL,
id_product int NOT NULL,
quantity int NOT NULL,
PRIMARY KEY (id_sale, id_product),
FOREIGN KEY (id_sale) REFERENCES sale (id_sale),
FOREIGN KEY (id_product) REFERENCES products (id_product)
);
creat table magazine_incoming (
id_incoming int NOT NULL,
id_product int NOT NULL,
quantity int NOT NULL,
PRIMARY KEY (id_incoming, id_product),
FOREIGN KEY (id_incoming) REFERENCES incoming (id_incoming),
FOREIGN KEY (id_product) REFERENCES products (id_product)
);