Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая БД.docx
Скачиваний:
85
Добавлен:
16.03.2022
Размер:
15.1 Mб
Скачать

Заключение

В современном мире в основе любой информационной системы лежит база данных, а точнее СУБД. И выбор той или иной СУБД существенно влияет на функциональные возможности информационной системы и проектные решения. Предложение на рынке СУБД огромно, и перед разработчиком встает сложный выбор, какую СУБД использовать. Ситуация усугубляется при необходимости обеспечить поддержку различных источников данных, причем каждый из таких источников данных может хранить и обрабатывать данные по-своему. Кроме того, в различных языках программирования различна поддержка работы с той или иной СУБД. То есть, еще возникает проблема несоответствия обработки информации большинством СУБД и способам обработки информации различными языками программирования.

В данной работе:

  • Была исследована предметная область “ломбард”.

  • Построена инфологическая модель.

  • Разработана даталогическая модель базы данных средствами MySQL, включая 9 таблиц и соответствующие связи между ними.

  • Разработано 12 запросов для отображения данных из таблиц.

Список использованной литературы

1. Козлова, О. С., Тучкова, А.С. Базы данных: методические рекомендации к лабораторным работам для бакалавров очной формы обучения по направлению подготовки 09.03.02 «Информационные системы и технологии» по дисциплине «Базы данных» / О.С. Козлова, А.С. Тучкова – Самара: ПГУТИ, 2019. – 50 с.

2. Объединение таблиц в SQL и базах данных SQLite: JOIN и SELECT. URL: https://zametkinapolyah.ru/zametki-o-mysql/chast-12-14-obedinenie-tablic-v-sql-i-bazax-dannyx-sqlite-join-i-select.html

3. SQL на котиках: Джоины (Joins)/ LearnQA: Онлайн обучение тестировщиков. URL: https://www.youtube.com/watch?v=PTAkqURmI

Приложение - sql-файла экспорта базы данных

-- Версия сервера: 8.0.24

-- Версия PHP: 7.1.33

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

START TRANSACTION;

SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8mb4 */;

--

-- База данных: `lombard`

--

-- --------------------------------------------------------

--

-- Структура таблицы `договоры`

--

CREATE TABLE `договоры` (

`ID_договора` int NOT NULL,

`ID_клиента` int NOT NULL,

`ID_вещи` int NOT NULL,

`Дата` date NOT NULL,

`Дата_конца_залога` date NOT NULL,

`Выплата` int NOT NULL,

`ID_сотрудника` int NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `договоры`

--

INSERT INTO `договоры` (`ID_договора`, `ID_клиента`, `ID_вещи`, `Дата`, `Дата_конца_залога`, `Выплата`, `ID_сотрудника`) VALUES

(1, 80, 11, '2021-11-01', '2021-12-01', 25000, 1),

(2, 80, 12, '2021-07-04', '2021-07-10', 15000, 5),

(3, 65, 1, '2021-09-05', '2021-09-11', 7200, 2),

(4, 79, 29, '2021-04-01', '2021-04-17', 16890, 3),

(5, 61, 13, '2021-06-06', '2021-06-12', 1500, 4),

(6, 64, 26, '2021-09-01', '2021-09-08', 2500, 5),

(7, 77, 14, '2021-06-01', '2021-06-05', 1800, 1),

(8, 70, 15, '2021-12-01', '2021-12-11', 3200, 2);

-- --------------------------------------------------------

--

-- Структура таблицы `категории`

--

CREATE TABLE `категории` (

`ID_категории` int NOT NULL,

`Категория` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `категории`

--

INSERT INTO `категории` (`ID_категории`, `Категория`) VALUES

(1, 'Телефоны'),

(2, 'Компьютерная техника'),

(3, 'Инструмент'),

(4, 'Игры и приставки'),

(5, 'Товары для дома'),

(6, 'Авто'),

(7, 'Фото и видеотехника'),

(8, 'Хобби и отдых'),

(9, 'Одежда'),

(10, 'ТВ и Видео'),

(11, 'Товары для детей');

-- --------------------------------------------------------

--

-- Структура таблицы `кем_выдан`

--

CREATE TABLE `кем_выдан` (

`ID_кем_выдан` int NOT NULL,

`Отделение` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `кем_выдан`

--

INSERT INTO `кем_выдан` (`ID_кем_выдан`, `Отделение`) VALUES

(1, 'Отделением УФМС России по г. Бердск'),

(2, 'Управление внутренних дел по г. Петрозаводск'),

(3, 'Отделом внутренних дел России по г. Краснодар'),

(4, 'ОУФМС России по г. Тула'),

(5, 'Управление внутренних дел по г. Коспийск'),

(6, 'Отделом УФМС России по г. Ноябрьск'),

(7, 'Управление внутренних дел по г. Йошкар-Ола'),

(8, 'Отделением УФМС России в г. Братск'),

(9, 'ОВД России по г. Химки'),

(10, 'ОУФМС России по г. Ставрополь'),

(11, 'Управление внутренних дел по г. Дмитровград'),

(12, 'Отделением УФМС России в г. Тамбов'),

(13, 'Управление внутренних дел по г. Невинномысск'),

(14, 'Отделением УФМС России в г. Саратов'),

(15, 'ОВД России по г. Саранск'),

(16, 'ОВД России по г. Великий Новгород'),

(17, 'Управление внутренних дел по г. Железногорск'),

(18, 'ОУФМС России по г. Южно-Сахалинск'),

(19, 'Отделением УФМС России в г. Тольятти'),

(20, 'Управление внутренних дел по г. Октябрьский');

-- --------------------------------------------------------

--

-- Структура таблицы `клиенты`

--

CREATE TABLE `клиенты` (

`ID_клиента` int NOT NULL,

`ФИО` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

`Телефон` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

`Дата_рождения` date NOT NULL,

`ID_район` int NOT NULL,

`ID_улицы` int NOT NULL,

`Дом` int NOT NULL,

`Квартира` int NOT NULL,

`ID_кем_выдан` int NOT NULL,

`Когда_выдан` date NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `клиенты`

--

INSERT INTO `клиенты` (`ID_клиента`, `ФИО`, `Телефон`, `Дата_рождения`, `ID_район`, `ID_улицы`, `Дом`, `Квартира`, `ID_кем_выдан`, `Когда_выдан`) VALUES

(61, 'Константинов Тимур Андреевич', '89679899140', '1984-12-04', 5, 15, 123, 23, 5, '2012-05-02'),

(62, 'Авдеева Дарья Семёновна', '89946134607', '1999-04-25', 3, 17, 4, 67, 3, '2017-05-23'),

(63, 'Быкова Ульяна Марсельевна', '89284854357', '1985-03-06', 13, 5, 3, 23, 13, '1992-03-16'),

(64, 'Мещерякова Мария Марковна', '89271972079', '1994-07-23', 6, 19, 57, 39, 6, '2013-08-12'),

(65, 'Родионова Аделина Алексеевна', '89019391715', '1962-08-02', 20, 12, 89, 12, 20, '2012-06-03'),

(66, 'Лопатин Никита Александрович', '89647991979', '1972-05-12', 2, 3, 27, 19, 2, '1990-05-24'),

(67, 'Исаев Василий Романович', '89275642378', '1997-08-04', 1, 7, 67, 48, 1, '2011-08-26'),

(68, 'Грачев Степан Дмитриевич', '89055849043', '1974-03-24', 8, 18, 72, 37, 8, '2014-04-05'),

(69, 'Кулакова Анна Марковна', '89665267037', '1992-06-06', 16, 10, 12, 56, 16, '2012-06-23'),

(70, 'Емельянов Роберт Кириллович', '89080004095', '1989-01-08', 15, 4, 45, 123, 15, '2009-02-23'),

(71, 'Шульгин Василий Дамирович', '89520202376', '1994-03-25', 12, 8, 12, 78, 12, '2014-04-01'),

(72, 'Троицкая Маргарита Данииловна', '89213205191', '1969-03-17', 7, 9, 65, 23, 7, '2009-05-12'),

(73, 'Шульгина Елизавета Дмитриевна', '89537200609', '1977-04-14', 1, 20, 49, 278, 1, '2017-07-03'),

(74, 'Данилова Кира Евгеньевна', '89132025883', '1970-04-04', 11, 3, 4, 126, 11, '2010-04-17'),

(75, 'Матвеев Артём Романович', '89771682345', '1996-03-25', 7, 14, 76, 367, 7, '2016-04-01'),

(76, 'Лебедев Тимур Александрович', '89397947950', '1964-09-09', 14, 9, 61, 94, 14, '2004-10-10'),

(77, 'Громов Иван Львович', '89291325424', '1967-06-14', 20, 16, 78, 46, 20, '2001-07-23'),

(78, 'Ульянов Артём Матвеевич', '89221093855', '1963-12-06', 19, 20, 236, 56, 19, '2003-12-12'),

(79, 'Миронова Василиса Дмитриевна', '89958170154', '1987-07-17', 12, 12, 125, 45, 12, '2007-08-17'),

(80, 'Корнеев Михаил Константинович', '89586732216', '1991-06-22', 11, 4, 53, 78, 11, '2011-07-05');

-- --------------------------------------------------------

--

-- Структура таблицы `продажи`

--

CREATE TABLE `продажи` (

`ID_продажи` int NOT NULL,

`ID_вещи` int NOT NULL,

`Цена` int NOT NULL,

`ID_сотрудника` int NOT NULL,

`Дата_продажи` date NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `продажи`

--

INSERT INTO `продажи` (`ID_продажи`, `ID_вещи`, `Цена`, `ID_сотрудника`, `Дата_продажи`) VALUES

(7, 1, 8000, 1, '2022-01-10'),

(8, 10, 22000, 4, '2021-11-08'),

(9, 29, 20000, 2, '2021-11-22'),

(10, 26, 3600, 1, '2021-10-11'),

(11, 12, 10000, 2, '2021-08-23'),

(12, 30, 5000, 1, '2021-07-21');

-- --------------------------------------------------------

--

-- Структура таблицы `вещи`

--

CREATE TABLE `вещи` (

`ID_вещи` int NOT NULL,

`ID_категории` int NOT NULL,

`ID_клиента` int NOT NULL,

`Название` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

`Количество` int NOT NULL,

`Оценочная стоимость` varchar(30) NOT NULL,

`Примечание` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `вещи`

--

INSERT INTO `вещи` (`ID_вещи`, `ID_категории`, `ID_клиента`, `Название`, `Количество`, `Оценочная стоимость`, `Примечание`) VALUES

(1, 1, 65, 'Samsung Galaxy A7 (2018)', 1, '7200', 'Продажа Samsung Galaxy A7 (2018) 4/64GB по выгодной цене. Стоимость товара в Самаре можно уточнить у консультанта в любом магазине нашей сети.'),

(10, 1, 68, 'Samsung Watch 3', 1, '15690', 'Отличное состояние, полный комплект'),

(11, 2, 80, 'Ноутбук hp laptop 2037ur', 1, '25000', 'Процессор: amd gold 1.9GHz\r\nОперативная память: ddr4 8GB\r\nВидеокарта: grafic 1GB\r\nРазмер экрана: 17'),

(12, 2, 80, 'Системный блок gtx 650 1гб', 1, '15000', 'Процессор: i5 3470 3800GHz\r\nОперативная память: ddr3 16GB\r\nВидеокарта: gtx 650 1GB'),

(13, 2, 61, 'Жесткий Диск WD GREEN WD10EARX', 2, '1500', 'Состояние-Хорошее'),

(14, 3, 77, 'Лазерный уровень helper 2d x-line', 3, '1800', 'В хорошем состоянии'),

(15, 3, 70, 'Набор инструментов Механик', 82, '3200', 'Состояние-Отличное'),

(16, 3, 80, 'Перфоратор matrix EHD 620 Evolution', 1, '1900', 'Состояние-Хорошее'),

(17, 4, 66, 'LEGO 41684.', 1, '3620', 'Отличное.'),

(25, 5, 74, 'Пылесос Tefal s20', 1, '4900', 'Новый.'),

(26, 6, 64, 'Усилитель Sony 1000w', 1, '2500', 'Состояние- Хорошее.'),

(27, 7, 77, 'Фотоаппарат Canon EOS 550D', 1, '8300', 'Состояние-хорошее.'),

(28, 8, 73, 'Коньки фигурные Nordway жен', 1, '790', 'Новые.'),

(29, 9, 79, 'Норковая шуба', 2, '16890', 'Продажа Норковая шуба 46-48 по выгодной цене.'),

(30, 10, 80, 'Приставка Apple TV A1469', 1, '2800', 'Приставка работает без нареканий, в полном комплекте. Пульт ДУ полностью рабочий.'),

(31, 11, 66, 'Коляска Соник', 1, '4900', 'Отличное.');

-- --------------------------------------------------------

--

-- Структура таблицы `район_проживания`

--

CREATE TABLE `район_проживания` (

`ID_район` int NOT NULL,

`Район` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `район_проживания`

--

INSERT INTO `район_проживания` (`ID_район`, `Район`) VALUES

(1, ' г. Бердск'),

(2, 'г. Петрозаводск'),

(3, 'г. Краснодар'),

(4, 'г. Тула'),

(5, ' г. Каспийск'),

(6, 'г. Ноябрьск'),

(7, 'г. Йошкар-Ола'),

(8, 'г. Братск'),

(9, ' г. Химки'),

(10, 'г. Ставрополь'),

(11, 'г. Димитровград'),

(12, 'г. Тамбов'),

(13, ' г. Невинномысск'),

(14, ' г. Саратов'),

(15, ' г. Саранск'),

(16, 'г. Великий Новгород'),

(17, 'г. Железногорск'),

(18, 'г. Южно-Сахалинск'),

(19, 'г. Тольятти'),

(20, 'г. Октябрьский');

-- --------------------------------------------------------

--

-- Структура таблицы `улица`

--

CREATE TABLE `улица` (

`ID_улицы` int NOT NULL,

`Название` varchar(50) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `улица`

--

INSERT INTO `улица` (`ID_улицы`, `Название`) VALUES

(1, 'ул.Социалистическая'),

(2, 'Речной пер'),

(3, 'ул. Приозерная '),

(4, 'ул. Зеленая '),

(5, ' ул.Озерная '),

(6, 'ул.Зеленая '),

(7, 'ул. Белорусская'),

(8, ' Строителей ул'),

(9, 'Садовая ул'),

(10, ' ул. Ленинская '),

(11, 'ул. Заречная '),

(12, 'ул. Полесская '),

(13, 'ул. Хуторская '),

(14, 'ул. Северная'),

(15, ' ул. Кирова '),

(16, 'Лесной пер'),

(17, 'ул. Мирная '),

(18, ' ул. Дружная '),

(19, 'ул. Первомайская '),

(20, 'ул. Шоссейная');

-- --------------------------------------------------------

--

-- Структура таблицы `сотрудники`

--

CREATE TABLE `сотрудники` (

`ID_сотрудника` int NOT NULL,

`ФИО` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--

-- Дамп данных таблицы `сотрудники`

--

INSERT INTO `сотрудники` (`ID_сотрудника`, `ФИО`) VALUES

(1, 'Кириллова Валерия Марковна'),

(2, 'Сафонова Олеся Демидовна'),

(3, 'Макеев Александр Святославович'),

(4, 'Муравьев Георгий Дмитриевич'),

(5, 'Комарова Айлин Александровна');

--

-- Индексы сохранённых таблиц

--

--

-- Индексы таблицы `договоры`

--

ALTER TABLE `договоры`

ADD PRIMARY KEY (`ID_договора`),

ADD KEY `ID_сотрудника` (`ID_сотрудника`),

ADD KEY `ID_вещи` (`ID_вещи`),

ADD KEY `ID_клиента` (`ID_клиента`);

--

-- Индексы таблицы `категории`

--

ALTER TABLE `категории`

ADD PRIMARY KEY (`ID_категории`);

--

-- Индексы таблицы `кем_выдан`

--

ALTER TABLE `кем_выдан`

ADD PRIMARY KEY (`ID_кем_выдан`);

--

-- Индексы таблицы `клиенты`

--

ALTER TABLE `клиенты`

ADD PRIMARY KEY (`ID_клиента`),

ADD KEY `ID_район` (`ID_район`),

ADD KEY `ID_улицы` (`ID_улицы`),

ADD KEY `ID_кем_выдан` (`ID_кем_выдан`);

--

-- Индексы таблицы `продажи`

--

ALTER TABLE `продажи`

ADD PRIMARY KEY (`ID_продажи`),

ADD KEY `ID_вещи` (`ID_вещи`),

ADD KEY `ID_сотрудника` (`ID_сотрудника`);

--

-- Индексы таблицы `вещи`

--

ALTER TABLE `вещи`

ADD PRIMARY KEY (`ID_вещи`),

ADD KEY `ID_категория` (`ID_категории`),

ADD KEY `ID_клиент` (`ID_клиента`);

--

-- Индексы таблицы `район_проживания`

--

ALTER TABLE `район_проживания`

ADD PRIMARY KEY (`ID_район`);

--

-- Индексы таблицы `улица`

--

ALTER TABLE `улица`

ADD PRIMARY KEY (`ID_улицы`);

--

-- Индексы таблицы `сотрудники`

--

ALTER TABLE `сотрудники`

ADD PRIMARY KEY (`ID_сотрудника`);

--

-- AUTO_INCREMENT для сохранённых таблиц

--

--

-- AUTO_INCREMENT для таблицы `договоры`

--

ALTER TABLE `договоры`

MODIFY `ID_договора` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--

-- AUTO_INCREMENT для таблицы `категории`

--

ALTER TABLE `категории`

MODIFY `ID_категории` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--

-- AUTO_INCREMENT для таблицы `кем_выдан`

--

ALTER TABLE `кем_выдан`

MODIFY `ID_кем_выдан` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--

-- AUTO_INCREMENT для таблицы `клиенты`

--

ALTER TABLE `клиенты`

MODIFY `ID_клиента` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=81;

--

-- AUTO_INCREMENT для таблицы `продажи`

--

ALTER TABLE `продажи`

MODIFY `ID_продажи` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--

-- AUTO_INCREMENT для таблицы `вещи`

--

ALTER TABLE `вещи`

MODIFY `ID_вещи` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32;

--

-- AUTO_INCREMENT для таблицы `район_проживания`

--

ALTER TABLE `район_проживания`

MODIFY `ID_район` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--

-- AUTO_INCREMENT для таблицы `улица`

--

ALTER TABLE `улица`

MODIFY `ID_улицы` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--

-- AUTO_INCREMENT для таблицы `сотрудники`

--

ALTER TABLE `сотрудники`

MODIFY `ID_сотрудника` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;

--

-- Ограничения внешнего ключа сохраненных таблиц

--

--

-- Ограничения внешнего ключа таблицы `договоры`

--

ALTER TABLE `договоры`

ADD CONSTRAINT `договоры_ibfk_1` FOREIGN KEY (`ID_сотрудника`) REFERENCES `сотрудники` (`ID_сотрудника`),

ADD CONSTRAINT `договоры_ibfk_2` FOREIGN KEY (`ID_клиента`) REFERENCES `клиенты` (`ID_клиента`),

ADD CONSTRAINT `договоры_ibfk_3` FOREIGN KEY (`ID_вещи`) REFERENCES `вещи` (`ID_вещи`);

--

-- Ограничения внешнего ключа таблицы `клиенты`

--

ALTER TABLE `клиенты`

ADD CONSTRAINT `клиенты_ibfk_1` FOREIGN KEY (`ID_район`) REFERENCES `район_проживания` (`ID_район`),

ADD CONSTRAINT `клиенты_ibfk_2` FOREIGN KEY (`ID_улицы`) REFERENCES `улица` (`ID_улицы`),

ADD CONSTRAINT `клиенты_ibfk_3` FOREIGN KEY (`ID_кем_выдан`) REFERENCES `кем_выдан` (`ID_кем_выдан`);

--

-- Ограничения внешнего ключа таблицы `продажи`

--

ALTER TABLE `продажи`

ADD CONSTRAINT `продажи_ibfk_1` FOREIGN KEY (`ID_сотрудника`) REFERENCES `сотрудники` (`ID_сотрудника`),

ADD CONSTRAINT `продажи_ibfk_2` FOREIGN KEY (`ID_вещи`) REFERENCES `вещи` (`ID_вещи`);

--

-- Ограничения внешнего ключа таблицы `вещи`

--

ALTER TABLE `вещи`

ADD CONSTRAINT `вещи_ibfk_1` FOREIGN KEY (`ID_категории`) REFERENCES `категории` (`ID_категории`),

ADD CONSTRAINT `вещи_ibfk_2` FOREIGN KEY (`ID_клиента`) REFERENCES `клиенты` (`ID_клиента`);

COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Соседние файлы в предмете Базы данных