- •Курсовой проект (работа) Вариант № 7 «Ломбард»
- •Оглавление
- •Постановка задачи
- •Инфологическая модель
- •Логическое проектирование бд и нормализация полученных отношений
- •Физическое проектирование бд
- •Запросы системы
- •Заключение
- •Список использованной литературы
- •Приложение - sql-файла экспорта базы данных
Физическое проектирование бд
Для создания данной системы управления данными понадобятся следующие таблицы:
вещи
район_проживания
улица
продажи
категории
договоры
кем_выдан
сотрудники
Структура таблицы «договоры» представлена на рис.4-1.
Рис. 4-1. – Структура таблицы «договоры»
Структура таблицы «клиенты» представлена на рис.4-2.
Рис. 4-2. – Структура таблицы «клиенты»
Структура таблицы «категории» представлена на рис.4-3.
Рис. 4-3. – Структура таблицы «категории»
Структура таблицы «кем_выдан» представлена на рис.4-4.
Рис. 4-4. – Структура таблицы «кем_выдан»
Структура таблицы «продажи» представлена на рис.4-5.
Рис. 4-5. – Структура таблицы «продажи»
Структура таблицы «вещи» представлена на рис.4-6.
Рис. 4-6. – Структура таблицы «вещи»
Структура таблицы «улица» представлена на рис.4-7.
Рис. 4-7. – Структура таблиц «улица»
Структура таблицы «район_проживания» представлена на рис.4-8.
Структура таблицы «сотрудники» представлена на рис.4-9.
Рис. 4-9. – Структура таблицы «сотрудники»
Общая структура базы данных представлена на рис.4-10.
Рис. 4-10. – Общая структура базы данных
Данные в таблице «договоры» представлены на рис.4-11.
Рис. 4-11. – Данные в таблице «договоры»
Данные в таблице «категории» представлены на рис.4-12.
Рис. 4-12. – Данные в таблице «категории»
Данные в таблице «кем_выдан» представлены на рис.4-13.
Рис. 4-13. – Данные в таблице «кем_выдан»
Данные в таблице «клиенты» представлены на рис.4-14.
Рис. 4-14. – Данные в таблице «клиенты»
Данные в таблице «продажи» представлены на рис.4-15.
Рис. 4-15. – Данные в таблице «продажи»
Данные в таблице «вещи» представлены на рис.4-16.
Рис. 4-16. – Данные в таблице «вещи»
Данные в таблице «район_проживания» представлены на рис.4-17.
Рис. 4-17. – Данные в таблице «район_проживания»
Данные в таблице «улица» представлены на рис.4-18.
Рис. 4-18. – Данные в таблице «улица»
Данные в таблице «сотрудники» представлены на рис.4-19.
Рис. 4-19. – Данные в таблице «сотрудники»
Запросы системы
Запросы позволяют отбирать необходимую информацию из таблиц и представлять ее в табличном виде. Для данной системы было создано 10 запросов.
Запрос 1 выводит название вещи и соответствующее ей название категории.
Создаётся по данным таблиц «вещи», «категории» и является запросом с использованием внутреннего соединения по одному полю.
Код SQL:
SELECT вещи.название , категории.Категория
FROM вещи INNER JOIN категории
ON вещи.ID_Категории = категории.ID_Категории
Результат выполнения запроса представлен на рис.5-1.
Рис. 5-1. – Результат выполнения запроса
Запрос 2 выводит ФИО клиента , район и улицу его проживания.
Создаётся по данным таблиц «клиенты», «район_проживания» и «улица» и является запросом с использованием косвенно связанных таблиц.
Код SQL:
SELECT клиенты.ФИО,район_проживания.Район,улица.Название
FROM клиенты
INNER JOIN район_проживания
ON клиенты.ID_район=район_проживания.ID_район
INNER JOIN улица
ON клиенты.ID_улицы=улица.ID_улицы
Результат выполнения запроса представлен на рис.5-2.
Рис. 5-2. – Результат выполнения запроса
Запрос 3 выводит ФИО,телефон и вещь, заложенную клиентом с ID_клиента больше 70.
Создаётся по данным таблиц «клиенты» и «вещи» и является запросом с использованием таблиц, связанных более чем по одному полю.
Код SQL:
SELECT клиенты.ID_клиента,клиенты.ФИО,клиенты.Телефон, вещи.Название
AS Заложено
FROM клиенты
INNER JOIN вещи ON (клиенты.ID_клиента = вещи.ID_клиента) AND (клиенты.ID_клиента >= 70)
ORDER BY клиенты.ID_клиента
Результат выполнения запроса представлен на рис.5-3.
Рис. 5-3. – Результат выполнения запроса
Запрос 4 выводит ФИО клиента и район в котором он проживает.
Создаётся по данным таблиц «клиенты», «район_проживания» и является запросом с использованием внешнего соединения таблиц.
Код SQL:
SELECT `клиенты`. `ФИО`, `район_проживания`. `Район`
FROM `клиенты` RIGHT JOIN `район_проживания`
ON `клиенты`. `ID_район` = `район_проживания`.`ID_район`
Результат выполнения запроса представлен на рис.5-4.
Рис. 5-4. – Результат выполнения запроса
Запрос 5 выводит ФИО клиента и его номер телефона.
Создаётся по данным таблицы «клиенты» и является запросом с использованием рекурсивного соединения.
Код SQL:
SELECT `клиенты`. `ФИО`, `клиенты`. `Телефон`
FROM `клиенты`
WHERE `клиенты`. `ID_клиента` = `клиенты`. `ID_клиента`
Результат выполнения запроса представлен на рис.5-5.
Рис. 5-5. – Результат выполнения запроса
Запрос 6 выводит номер продажи, название вещи и цену продажи.
Создаётся по данным таблиц «продажи», «вещи»
и является запросом с использованием соединений по отношению.
Код SQL:
SELECT продажи.ID_продажи AS Номер,вещи.название, продажи.цена FROM продажи, вещи
WHERE продажи.ID_вещи = вещи.ID_вещи
ORDER BY продажи.цена ASCSELECT
Результат выполнения запроса представлен на рис.5-6.
Рис. 5-6. – Результат выполнения запроса
Запрос 7 выводит максимальную цену полученную от продажи вещи.
Создаётся по данным таблицы «продажи» и является запросом с использованием функций агрегирования.
Код SQL:
SELECT MAX(`Цена`)
FROM`продажи`
Результат выполнения запроса представлен на рис.5-7.
Рис. 5-7. – Результат выполнения запроса
Запрос 8 выводит ID_клиента, район проживания которого оканчивается на к.
Создаётся по данным таблиц «клиенты», «район_проживания» и является перекрёстным запросом.
Код SQL:
SELECT`клиенты`.`ID_Клиента`,`район_проживания`.`Район` FROM`клиенты`
CROSS JOIN район_проживания
ON `клиенты`.`ID_район` = `район_проживания`.`ID_район` WHERE`Район`LIKE "%к"
Результат выполнения запроса представлен на рис.5-8.
Рис. 5-8. – Результат выполнения запроса
Запрос 9 выводит изменения названия категории с ID_категории=9
Код SQL:
UPDATE категории SET Категория= Одежда WHERE ID_вещи = 9
Результат выполнения запроса до изменения представлен на рис.5-9.
Рис. 5-9. – Результат выполнения запроса до изменения
Результат выполнения запроса после изменения представлен на рис.5-10.
Рис. 5-10. – Результат выполнения запроса после изменения
Запрос 10 выводит название район и улицы в нем, ID_улицы которой больше 6. Создаётся по данным таблиц «улица», «район_проживания» и является запросом с вычисляемым полем.
Код SQL:
SELECT улица.Название , район_проживания.Район
FROM улица,район_проживания
WHERE улица.ID_улицы=район_проживания.ID_район AND ID_улицы>6
Результат выполнения запроса представлен на рис.5-11.
Рис. 5-11. – Результат выполнения запроса
Запрос 11 выводит вещи и их хозяев, для веще с ID_вещи больше 15.
Создаётся по данным таблиц «вещи», «клиенты» и является запросом с использованием внутреннего соединения с группировкой по полю.
Код SQL:
SELECT вещи.Название, клиенты.ФИО
FROM вещи
INNER JOIN клиенты ON вещи.ID_Клиента=клиенты.ID_Клиента
GROUP BY вещи.ID_Вещи HAVING ID_Вещи>15
Результат выполнения запроса представлен на рис.5-12.
Рис. 5-12. – Результат выполнения запроса
Запрос 12 вычисляет ФИО и номер телефона клиента, которые имеют ID_клиента больше 5. Создаётся по данным таблиц «клиенты» и является запросом с вычисляемым полем.
Код SQL:
SELECT ФИО,Телефон
FROM клиенты WHERE ID_клиента > 70
Результат выполнения запроса представлен на рис.5-13.
Рис. 5-13. – Результат выполнения запроса