Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab3

.pdf
Скачиваний:
0
Добавлен:
19.01.2026
Размер:
1.62 Mб
Скачать

engine_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():

Соседние файлы в предмете Программная инженерия