ORM (англ. Object-relational mapping, рус. Об'єктно-реляційне відображення) - технологія програмування, яка зв'язує бази даних з концепціями об'єктно-орієнтованих мов програмування, створюючи «віртуальну об'єктну базу даних». Існують як пропрієтарні, так і вільні реалізації цієї технології.
SQLAlchemy - це бібліотека мовою Python для роботи з реляційними СУБД з застосуванням технології ORM. Служить для синхронізації об'єктів Python і записів реляційної бази даних. SQLAlchemy дозволяє описувати структури баз даних і способи взаємодії з ними на мові Python без використання SQL.
Діаграма рівнів SQLAlchemy
переваги іспользованія¶
Використання SQLAlchemy для автоматичної генерації SQL-коду має кілька переваг у порівнянні з ручним написанням SQL:
- Безпека. Параметри запитів екрануються, що робить атаки типу впровадження SQL-коду малоймовірними.
- Продуктивність. Підвищується ймовірність повторного використання запиту до сервера бази даних, що може дозволити йому в деяких випадках застосувати повторно план виконання запиту.
- Переносимість. SQLAlchemy, при належному підході, дозволяє писати код на Python, сумісний з декількома back-end СУБД. Незважаючи на стандартизацію мови SQL, між базами даних є відмінності в його реалізації, абстрагуватися від яких і допомагає SQLAlchemy.
Найпростіший приклад з використанням SQLite в оперативній пам'яті: