- •1.Введение………………………………………...…………………………………...2
- •1. Введение
- •2. Содержательная постановка задачи
- •3. Описание предметной области
- •4. Концептуальная и логическая модель данных
- •4.1. Определение сущностей
- •2. Определение связей между сущностями
- •3. Построение er-диаграммы
- •4. Определение атрибутов, принадлежащих сущностям
- •5. Определение доменов атрибутов
- •5.Логическая модель.
- •6.Соответствие логической и физической моделей.
- •7.Нормализация таблиц.
- •9. Заключение
- •10. Список используемых источников
7.Нормализация таблиц.
Артикул товара |
101 |
2507 |
8221 |
725 |
426 |
Наименование товара |
KLEO S60 |
ModeVlies D11T |
PLATINUM Standard 8мм класс АС4/32 красное дерево |
DYNAMIC clic2clic класс АС4/32 Вишня |
Валик велюровый со станком 20 см |
Единица измерения |
упак. |
рулон |
кв.м. |
кв.м. |
шт. |
Закупочная цена, руб |
160.00 |
653.00 |
265.00 |
360.00 |
25.00 |
Цена реализации, руб |
225.00 |
881.00 |
325.00 |
401.00 |
29.00 |
Группа товара |
Клеи |
Виниловые обои |
Паркет |
Ламинат |
Инструмент малярный |
Количество единиц товара на складе |
20 |
47 |
190 |
120 |
52 |
Поставщик адрес |
г. Ростов-на-Дону, ул. Малиноского, 11 |
г.Краснодар, ул.Королева, 5 |
г. Краснодар, ул. Королева, 5 |
г. Краснодар, ул. Королева, 5 |
г. Ростов-на-Дону, ул. Малиноского, 11 |
Поставщик ФИО или название организации |
ООО «Даймонд» |
ОАО «Эмпилс» |
ОАО «Эмпилс» |
ОАО «Эмпилс» |
ООО «Даймонд» |
Поставщик банковские реквизиты |
4576436745325 |
762562346245 |
762562346245 |
762562346245 |
4576436745325 |
Договор начало |
21.10.2009 |
01.01.2006 |
08.03.2006 |
01.01.2009 |
21.10.2005 |
Договор конец |
21.10.2014 |
01.10.2012 |
23.08.2012 |
01.10.2015 |
21.10.2015 |
Дополнительная информация |
договор на поставку товара |
договор на поставку товара |
договор на поставку товара |
договор на поставку товара |
договор на поставку товара |
Имя производителя |
KLEO |
Erismann |
PLATINUM |
PLATINUM |
ООО «РусСтрой» |
Адрес Производителя |
Швеция, г.Хельсинборг, ул. Кроненбурн, 43 |
Германия, г.Мюнхен, ул. Беккерштрассе, 24 |
Германия, г. Дрезден, ул. Люфтваффе, 1 |
Германия, г. Дрезден, ул. Люфтваффе, 1 |
Россия, г. Новороссийск, ул. Маяковского, 8 |
Наименование отдела |
Клеи |
Обои |
Напольные покрытия |
Напольные покрытия |
Инструменты |
Пусть изначально имеется одна таблица, в которой собраны все данные:
Нормализация таблиц:
1) Поля «Адрес Поставщика» и «Адрес Производителя» содержат делимую информацию
2) Поля «Группа товара», «Наименование Поставщика», «Адрес Поставщика», «Телефон Поставщика», «Банковские реквизиты Поставщика», «ИНН Поставщика», «№ лицензии Поставщика», «№ Договора», «Начало действия договора», «Конец действия договора», «Дополнительная информация», «Имя производителя», «Шифр производителя», «Наименование отдела», «Единица измерения» содержат повторяющуюся информацию
3) Для таблиц необходимо выбрать первичный ключ
Выполнение нормализации:
а) Поле «Группа товара» выделить в отдельную таблицу - «Группы товара». Для связи с таблицей «Товар» добавим поле «Код группы товара»
б) Поле «Наименование отдела» выделить в отдельную таблицу - «Отделы магазина». Для связи с таблицей «Товар» добавим поле «Код отдела»
в) Поля «№ Договора», «Начало действия договора», «Конец действия договора», «Дополнительная информация» выделить в отдельную таблицу - «Договоры». Для связи с таблицей «Товар» испозуем поле «№ договора»
г) Поля «Имя производителя», «Шифр производителя», «Адрес производителя» выделить в отдельную таблицу - «Производители». Для связи с таблицей «Товар» используем поле «Шифр производителя»
д) Поля «Количество единиц товара на складе» выделить в отдельную таблицу - «Склад». Для связи с таблицей будем использовать поле «Артикул товара»
е) Поле «Единица измерения» выделить в отдельную таблицу «Единицы измерения»
4)
Для таблицы «Товар» первичным ключом будет являться поле «Артикул товара»
Для таблицы «Поставщики» - поле «№ лицензии»
Для таблицы «Склад» - поле «Артикул товара»
Для таблицы «Договоры» - поле «№ договора»
Для таблицы «Производители» - поле «Шифр производителя»
Для таблицы «Группы товара» - поле «Код группы»
Для таблицы «Отделы магазина» - поле «Код отдела»
Для таблицы «Единица измерения» - поле «Код единицы измерения»
Обозначения в базе данных:
Товар – tovar,
Артикул товара – id,
Поставщик – supplier,
Лицензия – license,
Склад - storage,
Договор – dogovor,
Производитель – producer,
Шифр производителя – id_producer,
Сотрудник – employee,
Должность – position,
Группа товара – group,
Код группы – id_group,
Отдел магазина – department,
Единица измерения – unit.
После нормализации база данных будет выглядеть следующим образом:
Рис. Физическая модель базы данных.
8. SQL – запросы:
Выбор данных из таблицы department
SELECT [department], [name] FROM [department] order by department
department |
name |
1 |
Клеи |
2 |
Обои |
Выбор данных из таблицы tovar
select [id], [name], [pricez], [pricer] from tovar order by id desc
id |
name |
pricez |
pricer |
8221 |
PLATINUM Standart 8мм класс AC4/32 красное дерево |
265 |
325 |
2507 |
ModeVlies D11T |
653 |
881 |
Выбор данных из таблицы employee
SELECT [id_employee], [surname], [passport], [id_position] FROM [employee] order by id_employee
id_employee |
surname |
passport |
id_position |
1 |
Вассерман А. А. |
502345632 |
1 |
2 |
Жижко Т. Н. |
364785983 |
2 |
Выбор данных из таблиц tovar, group
SELECT id_group,name FROM tovar
UNION
SELECT id_group, name FROM group
order by id_group desc
5 |
DYNAMIC clic2clic класс AC4/32 вишня |
5 |
Ламинат |
Выбор данных из таблицы producer
SELECT [id_producer], [name], [address] FROM [producer] order by id_producer
id_producer |
name |
address |
1 |
KLEO |
Швеция, г.Хельсинборг, ул. Кроненбурн, 43 |
2 |
Erismann |
Германия, г.Мюнхен, ул. Беккерштрассе, 24 |
Выбор данных из таблиц group, department
SELECT department, name FROM group
UNION
SELECT department, name FROM department
order by name desc
department |
name |
4 |
Паркет |
2 |
Обои |
Выбор данных из таблицы supplier
SELECT [name], [licence], [address], [bank] FROM [supplier] order by licence
Name |
licence |
address |
bank |
ООО «Даймонд» |
10438592 |
г. Ростов-на-Дону, ул. Малиноского, 11 |
4576436745325 |
ОАО «Эмпилс» |
23567523 |
г.Краснодар, ул.Королева, 5 |
762562346245 |
Выбор данных из таблиц tovar, producer
SELECT id_producer,name FROM tovar
UNION
SELECT id_producer, name FROM producer
order by name desc
4 |
ООО «РусСтрой» |
4 |
Валик велюровый со станком 20 см |
Выбор данных из таблицы unit
SELECT [id_unit], [name] FROM [unit] order by id_unit
id_unit |
name |
1 |
шт. |
2 |
упак. |
Выбор данных из таблицы employee
SELECT [surname], [id_employee], [id_position] FROM [employee] order by surname desc
Шабаш Г. И. |
15 |
7 |
Петрὀвич Д. П. |
5 |
4 |
Выбор данных из таблицы tovar
SELECT [id], [name], [pricez], [pricer], [id_unit], [id_group], [licence], [id_producer] FROM [tovar] order by id
Id |
name |
pricez |
pricer |
id_unit |
id_group |
licence |
id_producer |
101 |
KLEO S60 |
160 |
225 |
2 |
1 |
10438592 |
1 |
426 |
Валик велюровый со станком 20 см |
25 |
29 |
1 |
3 |
23563432 |
4 |
Выбор данных из таблицы department
SELECT [department], [name] FROM [department] order by name desc
2 |
Обои |
4 |
Напольные покрытия |
Выбор данных из таблицы dogovor
SELECT [licence], [info], [id_employee] FROM dogovor order by [licence]
licence |
info |
id_employee |
10438592 |
договор на поставку товара |
7 |
23563432 |
договор на поставку товара |
8 |
Выбор данных из таблицы tovar
select [id], [name], [pricez], [pricer] from tovar order by pricer desc
id |
name |
pricez |
pricer |
2507 |
ModeVlies D11T |
653 |
881 |
725 |
DYNAMIC clic2clic класс AC4/32 вишня |
360 |
401 |
Выбор данных из таблицы storage
SELECT [id], [amount] FROM [storage] order by id
Id |
amount |
101 |
20 |
426 |
52 |
Выбор данных из таблицы storage
SELECT [id], [amount] FROM [storage] order by id desc
id |
amount |
8221 |
190 |
2507 |
47 |
Выбор данных из таблицы position
SELECT [id_position], [name] FROM [position] order by id_position
id_position |
name |
1 |
Директор |
2 |
Бухгалтер |
Выбор данных из таблицы supplier
SELECT [name], [licence], [address] FROM [supplier] order by bank desc
name |
licence |
address |
ОАО «Эмпилс» |
23567523 |
г.Краснодар, ул.Королева, 5 |
ООО «Даймонд» |
10438592 |
г. Ростов-на-Дону, ул. Малиноского, 11 |
Выбор данных из таблицы group
SELECT [id_group], [name], [department] FROM [group] order by id_group
id_group |
name |
department |
1 |
Клеи |
1 |
2 |
Виниловые обои |
2 |
Выбор данных из таблиц dogovor, employee
SELECT id_employee,surname FROM employee
UNION
SELECT id_employee,info FROM dogovor
order by id_employee desc
id_employee |
surname |
15 |
Шабаш Г. И. |
14 |
Загорулько А. Д. |
Выбор данных из таблицы dogovor
SELECT [date_begin], [date_end], [licence], [info], [id_employee] FROM [dogovor]
date_begin |
date_end |
licence |
info |
id_employee |
21.10.2009 |
21.10.2014 |
10438592 |
договор на поставку товара |
7 |
01.01.2006 |
01.10.2012 |
23563432 |
договор на поставку товара |
8 |
Выбор данных из таблиц position, employee
SELECT id_position,name FROM position
UNION
SELECT id_employee,surname FROM employee
order by id_position desc
id_position |
name |
15 |
Шабаш Г. И. |
14 |
Загорулько А. Д. |
Выбор данных из таблицы producer
SELECT [id_producer], [name], [address] FROM [producer] order by id_producer
id_producer |
name |
address |
1 |
KLEO |
Швеция, г.Хельсинборг, ул. Кроненбурн, 43 |
2 |
Erismann |
Германия, г.Мюнхен, ул. Беккерштрассе, 24 |
Выбор данных из таблицы employee
SELECT [id_position], [surname], [passport], [id_employee] FROM [employee] order by id_position desc
id_position |
surname |
passport |
id_employee |
7 |
Загорулько А. Д. |
332532523 |
14 |
7 |
Шабаш Г. И. |
358292392 |
15 |
Выбор данных из таблицы dogovor
SELECT [id_employee], [licence], [info] FROM [dogovor] order by id_employee
id_employee |
licence |
info |
7 |
10438592 |
договор на поставку товара |
8 |
23563432 |
договор на поставку товара |
Выбор данных из таблицы dogovor
SELECT [id_employee], [licence], [info] FROM [dogovor] order by id_employee desc
id_employee |
licence |
info |
11 |
64353234 |
договор на поставку товара |
10 |
24235236 |
договор на поставку товара |
Выбор данных из таблицы employee
SELECT [id_position], [surname], [passport], [id_employee] FROM [employee] order by id_position
id_position |
surname |
passport |
id_employee |
1 |
Вассерман А. А. |
502345632 |
1 |
2 |
Жижко Т. Н. |
364785983 |
2 |
Выбор данных из таблицы producer
SELECT [id_producer], [name], [address] FROM [producer] order by id_producer desc
id_producer |
name |
address |
4 |
ООО «РусСтрой» |
Россия, г. Новороссийск, ул. Маяковского, 8 |
3 |
PLATINUM |
Германия, г. Дрезден, ул. Люфтваффе, 1 |
Выбор данных из таблиц position, employee
SELECT id_position,name FROM position
UNION
SELECT id_employee,surname FROM employee
order by id_position
id_position |
name |
1 |
Вассерман А. А. |
1 |
Директор |
Выбор данных из таблицы dogovor
SELECT [date_begin], [date_end], [licence], [info], [id_employee] FROM [dogovor] order by licence desc
date_begin |
date_end |
licence |
info |
id_employee |
2005-10-21 |
2015-10-21 |
64353234 |
договор на поставку товара |
11 |
2009-01-01 |
2015-10-01 |
24235236 |
договор на поставку товара |
10 |
Выбор данных из таблиц dogovor, employee
SELECT id_employee,surname FROM employee
UNION
SELECT id_employee,info FROM dogovor
order by id_employee
id_employee |
surname |
1 |
Вассерман А. А. |
2 |
Жижко Т. Н. |
Выбор данных из таблицы group
SELECT [id_group], [name], [department] FROM [group] order by id_group desc
id_group |
name |
department |
5 |
Ламинат |
4 |
4 |
Паркет |
4 |
Выбор данных из таблицы supplier
SELECT [name], [licence], [address] FROM [supplier] order by bank
name |
licence |
address |
ООО «Даймонд» |
10438592 |
г. Ростов-на-Дону, ул. Малиноского, 11 |
ОАО «Эмпилс» |
23567523 |
г.Краснодар, ул.Королева, 5 |
Выбор данных из таблицы position
SELECT [id_position], [name] FROM [position] order by id_position desc
7 |
Охранник |
6 |
Уборщица |
Выбор данных из таблицы storage
SELECT [id], [amount] FROM [storage] order by id
id |
amount |
101 |
20 |
2507 |
47 |
Выбор данных из таблицы storage
SELECT [id], [amount] FROM [storage] order by id desc
id |
amount |
8221 |
190 |
2507 |
47 |
Выбор данных из таблицы tovar
select [id], [name], [pricez], [pricer] from tovar order by pricer
id |
name |
pricez |
pricer |
426 |
Валик велюровый со станком 20 см |
25 |
29 |
101 |
KLEO S60 |
160 |
225 |
Выбор данных из таблицы dogovor
SELECT [licence], [info], [id_employee] FROM dogovor order by [licence] desc
licence |
info |
id_employee |
64353234 |
договор на поставку товара |
11 |
24235236 |
договор на поставку товара |
10 |
Выбор данных из таблицы department
SELECT [department], [name] FROM [department] order by name
department |
name |
3 |
Инструменты |
1 |
Клеи |
Выбор данных из таблицы tovar
SELECT [id], [name], [pricez], [pricer], [id_unit], [id_group], [licence], [id_producer] FROM [tovar] order by id desc
id |
name |
pricez |
pricer |
id_unit |
id_group |
licence |
id_producer |
8221 |
PLATINUM Standart 8мм класс AC4/32 красное дерево |
265 |
325 |
4 |
4 |
64353234 |
3 |
2507 |
ModeVlies D11T |
653 |
881 |
3 |
2 |
24235236 |
2 |
Выбор данных из таблицы employee
SELECT [surname], [id_employee], [id_position] FROM [employee] order by surname
surname |
id_employee |
id_position |
Байда Л. П. |
13 |
6 |
Бублик В. В. |
8 |
5 |
Выбор данных из таблицы unit
SELECT [id_unit], [name] FROM [unit] order by id_unit desc
id_unit |
name |
5 |
кг. |
4 |
кв.м |
Выбор данных из таблиц tovar, producer
SELECT id_producer,name FROM tovar
UNION
SELECT id_producer, name FROM producer
order by name
id_producer |
name |
3 |
DYNAMIC clic2clic класс AC4/32 вишня |
2 |
Erismann |
Выбор данных из таблицы supplier
SELECT [name], [licence], [address], [bank] FROM [supplier] order by licence desc
name |
licence |
address |
bank |
ОАО «Эмпилс» |
23567523 |
г.Краснодар, ул.Королева, 5 |
762562346245 |
ООО «Даймонд» |
10438592 |
г. Ростов-на-Дону, ул. Малиноского, 11 |
4576436745325 |
Выбор данных из таблиц group, department
SELECT department, name FROM group
UNION
SELECT department, name FROM department
order by name
department |
name |
2 |
Виниловые обои |
3 |
Инструменты |
Выбор данных из таблицы producer
SELECT [id_producer], [name], [address] FROM [producer] order by id_producer desc
id_producer |
name |
address |
4 |
ООО «РусСтрой» |
Россия, г. Новороссийск, ул. Маяковского, 8 |
3 |
PLATINUM |
Германия, г. Дрезден, ул. Люфтваффе, 1 |
Выбор данных из таблиц tovar, group
SELECT id_group,name FROM tovar
UNION
SELECT id_group, name FROM group
order by id_group
id_group |
name |
1 |
KLEO S60 |
1 |
Клеи |
Выбор данных из таблицы employee
SELECT [id_employee], [surname], [passport], [id_position] FROM [employee] order by id_employee desc
id_employee |
surname |
passport |
id_position |
15 |
Шабаш Г. И. |
358292392 |
7 |
14 |
Загорулько А. Д. |
332532523 |
7 |
Выбор данных из таблицы tovar
select [id], [name], [pricez], [pricer] from tovar order by id
id |
name |
pricez |
pricer |
101 |
KLEO S60 |
160 |
225 |
426 |
Валик велюровый со станком 20 см |
25 |
29 |
Выбор данных из таблицы department
SELECT [department], [name] FROM [department] order by department desc
department |
name |
4 |
Напольные покрытия |
3 |
Инструменты |