
- •Глава 1. Анализ предметной области асу “Московская доставка” 6
- •Глава 2. Проектирование базы данных для объекта автоматизации курьерской доставки “Московская доставка” 16
- •Глава 3. Программная реализация бд для курьерской службы “Московская доставка” 31
- •Введение
- •Глава 1. Анализ предметной области асу “Московская доставка”
- •1.1 Системный анализ предметной области асу “Московская доставка”
- •1.2 Обзор информационных технологий, подходящих для разработки бд
- •1.2.1 Настольные субд. Microsoft Access
- •1.2.2 Полупрофессиональные субд. SqLite
- •1.2.3 Профессиональные субд. Oracle database
- •1.3 Обзор продуктов аналогов асу “Московская доставка”
- •1.3.1 Информационная система службы доставки “ups”
- •1.3.2 Информационная система службы доставки “ikea”
- •1.4 Требования к разрабатываемой бд курьерской службы “Московская доставка”
- •Выводы по главе 1
- •Глава 2. Проектирование базы данных для объекта автоматизации курьерской доставки “Московская доставка”
- •2.1 Разработка инфологической модели бд курьерской службы “Московская доставка”
- •2.2 Обоснование выбора модели данных
- •2.2.1 Иерархическая модель
- •2.2.2 Сетевая модель данных
- •2.2.3 Объектно-ориентированная модель данных
- •2.2.4 Реляционная модель данных
- •2.3 Логическое проектирование бд курьерской службы “Московская доставка”
- •2.4 Нормализация схемы базы данных
- •Выводы по главе 2
- •Глава 3. Программная реализация бд для курьерской службы “Московская доставка”
- •3.1 Анализ и выбор субд
- •3.2 Физическое проектирование бд “Московская доставка”
- •3.3 Реализация ограничений
- •3.4 Безопасность и контроль
- •Выводы по главе 3
- •Заключение
- •Список литературы
- •Приложения
Список литературы
Воронова Л.И. «Лабораторный практикум по дисциплине “базы данных”» - Москва 2010г.
ГОСТ 2.105-95 Единая система конструкторской документации. Общие требования к текстовым документам
Флоренция Нами [Электронный ресурс] – Статья “Применение баз данных в современном мире” – Режим доступа - https://idaten.ru/technology/primenenie-baz-dannih-v-sovremennom-mire
Википедия. Свободная энциклопедия [Электронный ресурс] – Базы данных- Режим доступа - https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
Портал StudFiles [Электронный ресурс] – Обзор информационных технологий для БД –Режим доступа - https://studfiles.net/preview/5157336/page:3/
Википедия. Свободная энциклопедия [Электронный ресурс] – SQLite – Режим доступа - https://ru.wikipedia.org/wiki/SQLite
Форум w3ii [Электронный ресурс] - Обзор SQLite – Режим доступа - http://www.w3ii.com/ru/sqlite/sqlite_overview.html
Сообщество Oracle-patches [Электронный ресурс] – СУБД Oracle database 11g – Режим доступа - https://oracle-patches.ru/%D0%B1%D0%BB%D0%BE%D0%B3%D0%B8/70-%D0%B1%D0%B0%D0%B7%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-oracle/3139-%D1%81%D1%83%D0%B1%D0%B4-oracle-database-11g
Портал Студопедия [Электронный ресурс] – Модели данных – Режим доступа - https://studopedia.ru/2_57929_infologicheskie-i-datalogicheskie-modeli-dannih.html
Портал Office-menu[Электронный ресурс] – Нормализация базы данных – Режим доступа - http://office-menu.ru/uroki-sql/51-normalizatsiya-bazy-dannykh
Приложения
Программный код:
CREATE TABLE Products (
Product_ID INT PRIMARY KEY,
Name VARCHAR(45) NOT NULL,
Price INT NOT NULL,
Description VARCHAR(45) NULL
);
CREATE SEQUENCE ProductID START WITH 1 INCREMENT BY 1;
CREATE TABLE Clients (
Client_ID INT PRIMARY KEY,
Username VARCHAR(20) NOT NULL,
Password_hash VARCHAR(50) NOT NULL,
Name VARCHAR(45) NOT NULL,
Client_Type VARCHAR(20) NOT NULL,
Address VARCHAR(45) NOT NULL,
Contact_number VARCHAR(15) NULL,
Email VARCHAR(45) NULL
);
CREATE SEQUENCE ClientID START WITH 1 INCREMENT BY 1;
CREATE TABLE Warehouses (
Warehouse_ID INT PRIMARY KEY,
Address VARCHAR(45) NOT NULL
);
CREATE SEQUENCE WarehouseID START WITH 1 INCREMENT BY 1;
CREATE TABLE Couriers (
Courier_ID INT PRIMARY KEY,
Username VARCHAR(20) NOT NULL,
Password_hash VARCHAR(50) NOT NULL,
FIO VARCHAR(45) NOT NULL,
Birth_date DATE NOT NULL,
Passport VARCHAR(100) NOT NULL,
Hire_date DATE NOT NULL,
Contact_number VARCHAR(15) NOT NULL
);
CREATE SEQUENCE CourierID START WITH 1 INCREMENT BY 1;
CREATE TABLE Self_pickup_points (
Point_ID INT PRIMARY KEY,
Point_address VARCHAR(45) NOT NULL
);
CREATE SEQUENCE PointID START WITH 1 INCREMENT BY 1;
CREATE TABLE Managers (
Manager_ID INT PRIMARY KEY,
Username VARCHAR(20) NOT NULL,
Password_hash VARCHAR(50) NOT NULL,
FIO VARCHAR(45) NOT NULL,
Birth_date DATE NOT NULL,
Passport VARCHAR(100) NOT NULL,
Hire_date DATE NOT NULL,
Contact_number VARCHAR(15) NOT NULL
);
CREATE SEQUENCE ManagerID START WITH 1 INCREMENT BY 1;
CREATE TABLE Orders (
Order_ID INT PRIMARY KEY,
Client_ID INT NOT NULL,
Courier_ID INT NOT NULL,
Delivery_date DATE NULL,
Payment_method VARCHAR(45) NOT NULL,
Self_pickup_ID INT NULL,
Manager_ID INT NOT NULL
);
ALTER TABLE Orders ADD CONSTRAINT fk_clientId FOREIGN KEY (Client_ID) REFERENCES Clients(Client_ID);
ALTER TABLE Orders ADD CONSTRAINT fk_courierId FOREIGN KEY (Courier_ID) REFERENCES Couriers(Courier_ID);
ALTER TABLE Orders ADD CONSTRAINT fk_selfpickupId FOREIGN KEY (Self_pickup_ID) REFERENCES Self_pickup_points(Point_ID);
ALTER TABLE Orders ADD CONSTRAINT fk_managerId FOREIGN KEY (Manager_ID) REFERENCES Managers(Manager_ID);
CREATE SEQUENCE OrderID START WITH 1 INCREMENT BY 1;
CREATE TABLE Position_count (
Position_ID INT PRIMARY KEY,
Product_ID INT NOT NULL,
Order_ID INT NOT NULL,
Amount INT NOT NULL
)
ALTER TABLE Position_count ADD CONSTRAINT fk_producId FOREIGN KEY (Product_ID) REFERENCES Products(Product_ID);
ALTER TABLE Position_count ADD CONSTRAINT fk_orderId FOREIGN KEY (Order_ID) REFERENCES Orders(Order_ID);
CREATE SEQUENCE PositionID START WITH 1 INCREMENT BY 1;
CREATE TABLE Product_to_warehouse (
Warehouse_ID INT ,
Product_ID INT
)
ALTER TABLE Product_to_warehouse ADD CONSTRAINT pk_Id PRIMARY KEY (Warehouse_ID, Product_ID);
ALTER TABLE Product_to_warehouse ADD CONSTRAINT fk_warehouseId FOREIGN KEY (Warehouse_ID) REFERENCES Warehouses(Warehouse_ID);
ALTER TABLE Product_to_warehouse ADD CONSTRAINT fk_productId FOREIGN KEY (Product_ID) REFERENCES Products(Product_ID);
INSERT INTO Products VALUES (ProductID.nextval, 'Шиферные гвозди', 3, '90мм/5мм/18мм/');
INSERT INTO Products VALUES (ProductID.nextval, 'Молоток слесарный', 58, 'Молоток слесарный 100гр с деревянной ручкой');
INSERT INTO Clients VALUES (ClientID.nextval, 'Client1', '098f6bcd4621d373cade4e832627b4f6', 'Виталий Иванов', 'Физ. лицо', 'Москва', '88005553535', 'vitalya@ya.ru');
INSERT INTO Clients VALUES (ClientID.nextval, 'Client2', 'ad0234829205b9033196ba818f7a872b', 'ЗАО Строй', 'Юр. лицо', 'Москва', '89034457812', 'stroy@ya.ru');
INSERT INTO Warehouses VALUES (WarehouseID.nextval, 'Москва, ул. Пушкина д.3');
INSERT INTO Warehouses VALUES (WarehouseID.nextval, 'Москва, ул. Академика Королева д.12');
INSERT INTO Couriers VALUES (CourierID.nextval, 'Courier1', 'c79d74a1e537c13ccb4ec1c6266d5a8d', 'Петрова С.А.', '03/12/1990', '123456/12', '13/03/2017', '89346570173');
INSERT INTO Couriers VALUES (CourierID.nextval, 'Courier2', '61b49956a9f21a7268ea9d175aa0fc91', 'Иванов К.С.', '04/03/1995', '145656/03', '10/05/2017', '89346567183');
INSERT INTO Self_pickup_points VALUES(PointID.nextval, 'ул.Якиманка д.74');
INSERT INTO Self_pickup_points VALUES(PointID.nextval, 'Мирской проезд д.16');
INSERT INTO Managers VALUES (ManagerID.nextval, 'Manager1', 'c240642ddef994358c96da82c0361a58', 'Васильева К.А.', '03/11/1980', '199956/12', '13/03/2017', '8934445173');
INSERT INTO Managers VALUES (ManagerID.nextval, 'Manager2', '8df5127cd164b5bc2d2b78410a7eea0c', 'Пилан И.И.', '04/04/1987', '124566/12', '13/03/2017', '89346668173');
INSERT INTO Product_to_warehouse VALUES(3,4);
INSERT INTO Product_to_warehouse VALUES(3,6);
INSERT INTO Product_to_warehouse VALUES(6,6);