lab3
.pdfengine_type: 'бензиновый', engine_position: 'спереди',
engine_volume: 1.6,
power_hp: 120,
options: ['кондиционер', 'подушки безопасности'], drive_wheels: 2,
fuel_consumption_l100km: 7.5, acceleration_to_100kph: 10.5
})
CREATE (:Car { id: 'CAR002', brand: 'Ford', model: 'Focus', country: 'USA',
availability: 'Нет',
price: 18000, body_type: 'хэтчбек',
doors_count: 5,
seats_count: 5, engine_type: 'дизельный', engine_position: 'спереди',
engine_volume: 2.0, power_hp: 150,
options: ['ABS', 'ESP'], drive_wheels: 2, fuel_consumption_l100km: 6.8, acceleration_to_100kph: 9.0
})
CREATE (:Car { id: 'CAR003', brand: 'Audi', model: 'A4',
country: 'Germany', availability: 'Да',
price: 25000, body_type: 'седан',
doors_count: 4,
seats_count: 5, engine_type: 'гибрид', engine_position: 'спереди',
engine_volume: 2.0,
power_hp: 245,
options: ['полный привод', 'автопилот'], drive_wheels: 4, fuel_consumption_l100km: 5.5, acceleration_to_100kph: 6.5
})
CREATE (:Car { id: 'CAR004', brand: 'Honda', model: 'Accord',
country: 'Japan',
availability: 'Да',
price: 20000, body_type: 'седан',
doors_count: 4,
seats_count: 5, engine_type: 'бензиновый', engine_position: 'спереди',
engine_volume: 2.4,
power_hp: 180,
options: ['спортивный пакет', 'датчики парковки'], drive_wheels: 2,
fuel_consumption_l100km: 8.0, acceleration_to_100kph: 8.5
})
CREATE (:Car { id: 'CAR005',
brand: 'Volkswagen', model: 'Passat', country: 'Germany', availability: 'Нет',
price: 22000, body_type: 'седан',
doors_count: 4,
seats_count: 5, engine_type: 'дизель', engine_position: 'спереди',
engine_volume: 2.0,
power_hp: 140,
options: ['камера заднего вида', 'климат контроль'], drive_wheels: 2,
fuel_consumption_l100km: 6.5, acceleration_to_100kph: 9.5
})
CREATE (:Car { id: 'CAR006', brand: 'Kia', model: 'Rio',
country: 'South Korea', availability: 'Да',
price: 12000, body_type: 'хэтчбек',
doors_count: 5,
seats_count: 5, engine_type: 'бензиновый', engine_position: 'спереди',
engine_volume: 1.4,
power_hp: 100,
options: ['электронный замок', 'парктроники'], drive_wheels: 2,
fuel_consumption_l100km: 6.0, acceleration_to_100kph: 11.5
})
CREATE (:Car { id: 'CAR007',
brand: 'Hyundai', model: 'Solaris', country: 'South Korea', availability: 'Да',
price: 13000, body_type: 'седан',
doors_count: 4,
seats_count: 5, engine_type: 'бензиновый', engine_position: 'спереди',
engine_volume: 1.6,
power_hp: 120,
options: ['регулировка руля', 'подогрев сидений'], drive_wheels: 2,
fuel_consumption_l100km: 6.5, acceleration_to_100kph: 10.0
})
CREATE (:Car { id: 'CAR008', brand: 'Nissan',
model: 'Qashqai', country: 'Japan', availability: 'Да',
price: 21000, body_type: 'кроссовер',
doors_count: 5,
seats_count: 5, engine_type: 'бензиновый', engine_position: 'спереди',
engine_volume: 2.0,
power_hp: 140,
options: ['панорамная крыша', 'сенсорный экран'], drive_wheels: 4,
fuel_consumption_l100km: 7.5, acceleration_to_100kph: 9.0
})
CREATE (:Car { id: 'CAR009',
brand: 'Mercedes-Benz', model: 'E-class', country: 'Germany', availability: 'Да',
price: 35000, body_type: 'седан',
doors_count: 4,
seats_count: 5, engine_type: 'гибрид', engine_position: 'спереди',
engine_volume: 2.0,
power_hp: 250,
options: ['автопилот', 'комфортный салон'],
drive_wheels: 4, fuel_consumption_l100km: 5.0, acceleration_to_100kph: 6.0
})
CREATE (:Car { id: 'CAR010', brand: 'Tesla',
model: 'Model 3', country: 'USA', availability: 'Да',
price: 40000, body_type: 'седан',
doors_count: 4,
seats_count: 5,
engine_type: 'электрический', engine_position: 'задний', engine_volume: null,
power_hp: 270,
options: ['автопилот', 'быстрая зарядка'], drive_wheels: 4,
fuel_consumption_l100km: null, acceleration_to_100kph: 5.5
})
"""
session.run(query)
# Функция для заполнения БД узлами покупателей def create_customers_by_query(session):
query = """
CREATE (:Customer {
id: 'CLIENT001',
full_name: 'Иванов Петр Сергеевич',
passport_series_number: 'AA-123456', home_address: 'г. Москва, Красная площадь, д. 1',
phone: '+79211234567'
})
CREATE (:Customer {
id: 'CLIENT002',
full_name: 'Петрова Анна Викторовна',
passport_series_number: 'BB-789012',
home_address: 'г. Петербург, Невский проспект, д. 20', phone: '+79212345678'
})
CREATE (:Customer {
id: 'CLIENT003',
full_name: 'Фролова Елена Дмитриевна',
passport_series_number: 'CC-345678',
home_address: 'г. Екатеринбург, Ленинский район, ул.
Победы, д. 10',
phone: '+79213456789'
})
CREATE (:Customer {
id: 'CLIENT004',
full_name: 'Попов Максим Юрьевич',
passport_series_number: 'DD-987654',
home_address: 'г. Новосибирск, Красный проспект, д. 50', phone: '+79214567890'
})
CREATE (:Customer {
id: 'CLIENT005',
full_name: 'Григорьев Евгений Владимирович',
passport_series_number: 'EE-654321',
home_address: 'г. Владивосток, Светланская улица, д. 25', phone: '+79215678901'
})
CREATE (:Customer {
id: 'CLIENT006',
full_name: 'Васильева Ольга Сергеевна',
passport_series_number: 'FF-123456',
home_address: 'г. Самара, Московское шоссе, д. 15', phone: '+79216789012'
})
CREATE (:Customer {
id: 'CLIENT007',
full_name: 'Алексеев Павел Иванович',
passport_series_number: 'GG-789012',
home_address: 'г. Ростов-на-Дону, Будённовский проспект,
д. 30',
phone: '+79217890123'
})
CREATE (:Customer {
id: 'CLIENT008',
full_name: 'Николаева Татьяна Александровна',
passport_series_number: 'HH-345678', home_address: 'г. Уфа, Проспект Октября, д. 120',
phone: '+79218901234'
})
CREATE (:Customer {
id: 'CLIENT009',
full_name: 'Орлов Михаил Борисович',
passport_series_number: 'II-987654',
home_address: 'г. Казань, Кремлёвская улица, д. 45', phone: '+79219012345'
})
CREATE (:Customer {
id: 'CLIENT010',
full_name: 'Романова Ирина Николаевна', passport_series_number: 'JJ-654321',
home_address: 'г. Нижний Новгород, Большая Покровская
улица, д. 25',
phone: '+79210123456'
})
"""
session.run(query)
# Функция для заполнения БД узлами продавцов def create_sellers_by_query(session):
query = """
CREATE (:Seller {
id: 'SELLER001',
full_name: 'Семенов Алексей Петрович', passport_series_number: 'KK-123456', phone: '+79211234567',
salary: 50000
})
CREATE (:Seller {
id: 'SELLER002',
full_name: 'Корнеева Марина Владимировна', passport_series_number: 'LL-789012', phone: '+79212345678',
salary: 60000
})
CREATE (:Seller {
id: 'SELLER003',
full_name: 'Котов Александр Олегович', passport_series_number: 'MM-345678', phone: '+79213456789',
salary: 55000
})
CREATE (:Seller {
id: 'SELLER004',
full_name: 'Белкин Юрий Николаевич', passport_series_number: 'NN-987654', phone: '+79214567890',
salary: 52000
})
CREATE (:Seller {
id: 'SELLER005',
full_name: 'Юдина Юлия Андреевна', passport_series_number: 'OO-654321', phone: '+79215678901',
salary: 58000
})
CREATE (:Seller {
id: 'SELLER006',
full_name: 'Казаков Денис Александрович', passport_series_number: 'PP-123456',
phone: '+79216789012', salary: 54000
})
CREATE (:Seller {
id: 'SELLER007',
full_name: 'Волков Владислав Евгеньевич', passport_series_number: 'QQ-789012', phone: '+79217890123',
salary: 56000
})
CREATE (:Seller {
id: 'SELLER008',
full_name: 'Чернова Наталья Игоревна', passport_series_number: 'RR-345678', phone: '+79218901234',
salary: 53000
})
CREATE (:Seller {
id: 'SELLER009',
full_name: 'Голубев Игорь Анатольевич', passport_series_number: 'SS-987654', phone: '+79219012345',
salary: 57000
})
CREATE (:Seller {
id: 'SELLER010',
full_name: 'Захарченко Оксана Михайловна', passport_series_number: 'TT-654321', phone: '+79210123456',
salary: 59000
})
"""
session.run(query)
def create_orders_by_query(session): query = """
CREATE (:Order { id: 'ORDER001',
purchase_date: '2023-10-01', payment_method: 'Наличные',
car_id: 'CAR001', client_id: 'CLIENT001', seller_id: 'SELLER001'
})
CREATE (:Order { id: 'ORDER002',
purchase_date: '2023-10-05', payment_method: 'Картой',
car_id: 'CAR002', client_id: 'CLIENT002',
seller_id: 'SELLER002'
})
CREATE (:Order { id: 'ORDER003',
purchase_date: '2023-10-10', payment_method: 'Кредит',
car_id: 'CAR003', client_id: 'CLIENT003', seller_id: 'SELLER003'
})
CREATE (:Order { id: 'ORDER004',
purchase_date: '2023-10-15', payment_method: 'Онлайн оплата',
car_id: 'CAR004', client_id: 'CLIENT004', seller_id: 'SELLER004'
})
CREATE (:Order { id: 'ORDER005',
purchase_date: '2023-10-20', payment_method: 'Банковский перевод',
car_id: 'CAR005', client_id: 'CLIENT005', seller_id: 'SELLER005'
})
CREATE (:Order { id: 'ORDER006',
purchase_date: '2023-10-25', payment_method: 'Наличными',
car_id: 'CAR006', client_id: 'CLIENT006', seller_id: 'SELLER006'
})
CREATE (:Order { id: 'ORDER007',
purchase_date: '2023-10-30', payment_method: 'Картой',
car_id: 'CAR007', client_id: 'CLIENT007', seller_id: 'SELLER007'
})
CREATE (:Order { id: 'ORDER008',
purchase_date: '2023-11-05', payment_method: 'Кредит',
car_id: 'CAR008', client_id: 'CLIENT008', seller_id: 'SELLER008'
})
CREATE (:Order { id: 'ORDER009',
purchase_date: '2023-11-10', payment_method: 'Онлайн оплата',
car_id: 'CAR009', client_id: 'CLIENT009', seller_id: 'SELLER009'
})
CREATE (:Order { id: 'ORDER010',
purchase_date: '2023-11-15', payment_method: 'Банковский перевод',
car_id: 'CAR010', client_id: 'CLIENT010', seller_id: 'SELLER010'
});
"""
session.run(query)
def create_relationships(tx):
# Создаем связи MADE_ORDER между клиентами и заказами
tx.run("MATCH (c:Customer {id: 'CLIENT001'}), (o:Order {id: 'ORDER001'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT002'}), (o:Order {id: 'ORDER002'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT003'}), (o:Order {id: 'ORDER003'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT004'}), (o:Order {id: 'ORDER004'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT005'}), (o:Order {id: 'ORDER005'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT006'}), (o:Order {id: 'ORDER006'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT007'}), (o:Order {id: 'ORDER007'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT008'}), (o:Order {id: 'ORDER008'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT009'}), (o:Order {id: 'ORDER009'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
tx.run("MATCH (c:Customer {id: 'CLIENT010'}), (o:Order {id: 'ORDER010'}) "
"MERGE (c)-[:MADE_ORDER]->(o)")
# Создаем связи HANDLED_ORDER между продавцами и заказами
tx.run("MATCH (s:Seller {id: 'SELLER001'}), |
(o:Order |
{id: |
'ORDER001'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER002'}), |
||
'ORDER002'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER003'}), |
||
'ORDER003'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER004'}), |
||
'ORDER004'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER005'}), |
||
'ORDER005'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER006'}), |
||
'ORDER006'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER007'}), |
||
'ORDER007'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER008'}), |
||
'ORDER008'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER009'}), |
||
'ORDER009'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
(o:Order |
{id: |
tx.run("MATCH (s:Seller {id: 'SELLER010'}), |
||
'ORDER010'}) " |
|
|
"MERGE (s)-[:HANDLED_ORDER]->(o)") |
|
|
# Создаем связи INCLUDES_CAR между заказами и автомобилями tx.run("MATCH (o:Order {id: 'ORDER001'}), (c:Car {id: 'CAR001'}) "
"MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER002'}), (c:Car {id: 'CAR002'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER003'}), (c:Car {id: 'CAR003'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER004'}), (c:Car {id: 'CAR004'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER005'}), (c:Car {id: 'CAR005'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER006'}), (c:Car {id: 'CAR006'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER007'}), (c:Car {id: 'CAR007'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER008'}), (c:Car {id: 'CAR008'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER009'}), (c:Car {id: 'CAR009'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
tx.run("MATCH (o:Order {id: 'ORDER010'}), (c:Car {id: 'CAR010'}) " "MERGE (o)-[:INCLUDES_CAR]->(c)")
# Основной блок выполнения def main():
