Объектно-реляционные проекторы. DOCTRINE ORM. HIBERNATE ORM
Закрыть
Articolul precedent
Articolul urmator
645 3
Ultima descărcare din IBN:
2021-11-07 10:09
Căutarea după subiecte
similare conform CZU
004.43 (45)
Программные средства (302)
SM ISO690:2012
ПУНГА, Александр, СЫРГИ, Михай. Объектно-реляционные проекторы. DOCTRINE ORM. HIBERNATE ORM. In: Sesiune națională cu participare internațională de comunicări științifice studențești, Ed. 24, 15 februarie 2020, Chișinău. Chișinău, Republica Moldova: Centrul Editorial-Poligrafic al USM, 2020, Ediția 24, Vol.1, pp. 41-43. ISBN 978-9975-142-89-2.
EXPORT metadate:
Google Scholar
Crossref
CERIF

DataCite
Dublin Core
Sesiune națională cu participare internațională de comunicări științifice studențești
Ediția 24, Vol.1, 2020
Sesiunea "Sesiune naţională de comunicări ştiinţifice studenţeşti"
24, Chișinău, Moldova, 15 februarie 2020

Объектно-реляционные проекторы. DOCTRINE ORM. HIBERNATE ORM

CZU: 004.43

Pag. 41-43

Пунга Александр, Сырги Михай
 
Молдавский Государственный Университет
 
 
Disponibil în IBN: 5 mai 2020


Rezumat

Ввиду популярности объектно-ориентированной парадигмы программирования и реляционного представления данных, возникла необходимость в преобразовании данных из объектного представления в реляционное и наоборот. Эту задачу решают объектно-реляционные проекторы/преобразователи (ORM). ORM – это приложение, которое предоставляет возможность взаимодействовать с данными, представленными в реляционном виде в объектном стиле. Задачи ORM: 1. Инкапсуляция логики хранения данных, с предоставлением лишь интерфейсов для управления этим процессом (реализация инкапсуляции – одного из основных принципов объектно-ориентированного программирования). 2. Реализация возможности взаимодействия между различными системами управления базами данных (СУБД) через единый интерфейс (реализация шаблона проектирования Адаптер). 3. Кэширование данных для уменьшения накладных расходов на установку соединения с базой данных. Плюсы ORM: 1. Возможность написания объектно-ориентированных приложений в едином стиле, так как отсутствует необходимость работы со структурами данных определенной СУБД. 2. Возможность описания хранения данных, используя нативные конструкции языка. 3. Ускорение работы с частыми однотипными запросами, поскольку полученные данные кэшируется, как правило, в файловый кэш. Минусы ORM: 1. ORM являются уровнем абстракции, поэтому для их работы необходимы накладные расходы.2. При работе с большими объемами данных возникают проблемы с производительностью либо по причине занимаемого программой пространства ОЗУ, либо, в случае нехватки ОЗУ, из-за расходов на порционное получение данных, в связи с чем увеличивается кол-во запросов в базу данных. 3. В небольших проектах ORM являются избыточными, поскольку несут в себе огромное кол-во методов для взаимодействия с СУБД, что может сказываться на производительности приложения. ORM используются в крупных фреймворках, написанных на разных языках программирования, например:Symfony (PHP), Ruby on Rails (Ruby), Spring (JAVA), Entity Framework (C#), Django (Python), Express.js (JavaScript). Мы рассматриваем два проекта, реализующих ORM: Doctrine ORM для языка PHP и Hibernate ORM для языка JAVA. Основой любой ORM являются сущности. Это наше представление данных в реляционной базе. Как правило, класс сущности является представлением таблицы, свойства объекта класса – колонками, а сам объект этого класса – строкой данных. Разметка реляционного представления может находиться в сущностях (например, в аннотациях), либо в отдельных файлах, связанных с этой сущностью (XML, YAML и т.п.). Сущность может содержать также правила для валидации входных данных. Репозитории – хранилища сущностей. Данный компонент хранит методы для получения и манипулирования сущностями. Отличительной особенностью Doctrine и Hibernate является использование альтернативного синтаксиса языка SQL (в Doctrine – это DQL, в Hibernate – HQL). Суть этих диалектов в том, чтобы запрашивать данные не из базы данных, а из сущностей, и получать их в виде объекта или массива объектов сущностей. Менеджер Сущностей – центральная точка доступа к ORM во всем приложении. Хранит данные о состоянии сущностей, управляет загрузкой сущностей из базы данных и в нее, удалением данных сущностей из базы данных, а также управляет транзакциями и очередью загрузки. Является реализацией шаблона проектирования Фасад. События – позволяют выполнять определенные действия, во время определенного этапа работы программы. Например, шифрование пароля перед загрузкой в базу данных и расшифровка при получении.