Back to questions
Junior — Middle
68
Могли бы вы объяснить принцип и суть работы объектов-регистров в связке с базой данных, известный как ORM?
Companies where asked
ООО Цитадель
Леста
Automotive Technologies
Диджитал сектор
GGSel
Answer from AI
sobes.tech AI
ORM (Object-Relational Mapping) — это технология, которая позволяет работать с базой данных через объекты программного кода, скрывая детали SQL-запросов и преобразования данных.
Принцип работы:
- Каждая таблица базы данных отображается на класс (объект) в языке программирования.
- Строки таблицы соответствуют экземплярам этих классов.
- Поля таблицы — атрибутам объекта.
Объекты-регистры (entity objects) представляют записи в базе и содержат методы для чтения, изменения и сохранения данных.
Преимущества:
- Упрощение работы с данными — разработчик оперирует объектами, а не SQL.
- Автоматическое управление связями между таблицами через объекты.
- Кэширование и оптимизация запросов.
Пример на Python с использованием SQLAlchemy:
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# Создание нового пользователя
new_user = User(name='Alice')
session.add(new_user)
session.commit()
# Запрос пользователя
user = session.query(User).filter_by(name='Alice').first()
print(user.name) # Alice
Таким образом, ORM позволяет работать с базой данных на уровне объектов, что повышает удобство и снижает вероятность ошибок.