Руководство по созданию эффективных запросов



Download 17,08 Mb.
Pdf ko'rish
bet185/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   181   182   183   184   185   186   187   188   ...   210
Bog'liq
OptimizZaprvPostgreSQL

к
ак
 
раБотает
 NorM
Чтобы продемонстрировать, как работает NORM, вернемся к примеру из 
главы 10.
На рис. 13.3 изображено подмножество диаграммы «сущность–связь» схе-
мы 
postgres_air
, использованной для построения примера.


Как работает NORM 

243
Рис. 13.3 

Диаграмма «сущность–связь» для рассматриваемого примера
В главе 10, обсуждая взаимодействие между приложением и базой данных, 
мы набросали объект (который теперь можем назвать транспортным объ-
ектом) со всей информацией, связанной с бронированием. С точки зрения 
авиапассажиров, бронирование представляет собой маршрут их путешест-
вия. В попытке сохранить читаемость фрагментов кода мы устранили один 
уровень вложенности и решили представить только сегмент бронирования, 
то есть один из рейсов маршрута. Таким образом, для целей данного при-
мера наш транспортный объект является объектом сегмента бронирования. 
Диаграмма на рис. 13.3 показывает все таблицы и связи, необходимые для 
построения отображения объекта базы данных в транспортный объект. Со-
ответствующий транспортный объект изображен на рис. 13.4.
Обратите внимание, что этот объект представляет контракт, то есть струк-
туру объекта, которую приложение ожидает получить. Он значительно от-
личается от того, как данные хранятся в базе. Важно, что реализация базы 
данных никоим образом не влияет на то, как приложение взаимодействует 
с базой данных, пока ее ответ соответствует контракту.
Пример объекта JSON, следующего этому контракту, показан на рис. 13.5.
Взаимодействие между приложением и базой данных можно свести к сле-
дующему:
1) приложение сериализует данные в формат JSON, затем преобразует его 
в массив текстовых строк и вызывает соответствующую функцию базы 
данных;


244

Как избежать подводных камней объектно-реляционного отображения
2) функция базы данных разбирает JSON, который был передан ей в ка-
честве параметра, и выполняет все, что должна делать функция: вы-
бирает или преобразует данные;
3) результирующее множество преобразуется в JSON (или, точнее, в мас-
сив строк, представляющий массив объектов JSON) и передается в при-
ложение, где он десериализуется и используется приложением.
Рис. 13.4 

Транспортный объект (контракт)
На стороне приложения классы Java, представленные в лис тингах 13.1, 13.2 
и 13.3, отображаются в тот же транспортный объект.
Листинг 13.1 

Класс FlightEntity
package com.xxx.adapter.repository.entity.tls;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.ZonedDateTime;
public class FlightEntity {
@JsonProperty("flight_id")
private int flightId;


Как работает NORM 

245
@JsonProperty("flight_no")
private String flightNumber;
@JsonProperty("departure_airport_code")
private String departureAirportCode;
@JsonProperty("departure_airport_name")
private String departureAirportName;
@JsonProperty("arrival_airport_code")
private String arrivalAirportCode;
@JsonProperty("arrival_airport_name")
private String arrivalAirportName;
@JsonProperty("scheduled_departure")
private ZonedDateTime scheduledDeparture;
@JsonProperty("scheduled_arrival")
private ZonedDateTime scheduledArrival;

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   181   182   183   184   185   186   187   188   ...   210




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish