Articolul precedent |
Articolul urmator |
![]() |
![]() ![]() |
Ultima descărcare din IBN: 2021-11-07 10:09 |
Căutarea după subiecte similare conform CZU |
004.43 (45) |
Программные средства (302) |
![]() ПУНГА, Александр, СЫРГИ, Михай. Объектно-реляционные проекторы. 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 | ||||||
|
||||||
CZU: 004.43 | ||||||
Pag. 41-43 | ||||||
|
||||||
![]() |
||||||
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 во всем приложении. Хранит данные о состоянии сущностей, управляет загрузкой сущностей из базы данных и в нее, удалением данных сущностей из базы данных, а также управляет транзакциями и очередью загрузки. Является реализацией шаблона проектирования Фасад. События – позволяют выполнять определенные действия, во время определенного этапа работы программы. Например, шифрование пароля перед загрузкой в базу данных и расшифровка при получении. |
||||||
|