Обектно-реляционные типовые решения, Предназначенные для моделирования структуры


The Presentation inside:

Slide 0

Обектно-реляционные типовые решения, Предназначенные для моделирования структуры Выполнил: Олейник Павел ПС-41 Глава 12


Slide 1

Сохраняет идентификатор записи базы данных для поддержки соответствия между объектом приложения и строкой базы данных Поле идентификации (Identity Field)


Slide 2

Выбор ключа значащий незначащий простой составной тип ключа уникальный в пределах таблицы уникальный в пределах базы данных


Slide 3

Представление в объекте поле, тип которого соответствует типу ключа базы данных (для простого ключа) класс, содержащий последовательность объектов – элементов ключа (для составного ключа)


Slide 4

Вычисление нового значения ключа автоматическая генерация средствами базы данных глобальный уникальный идентификатор (GUID) самостоятельная генерация


Slide 5

Отображает ассоциации между объектами на ссылки внешнего ключа между таблицами базы данных Отображение внешних ключей (Foreign Key Mapping)


Slide 6

Принцип действия Каждый объект, добавляемый в коллекцию, должен быть проверен на предмет того, является ли он новым объектом. Способы решения проблемы: удаление и вставка добавление обратного указателя операция сравнения


Slide 7

Сохраняет множество ассоциаций в виде таблицы, содержащей внешние ключи таблиц, связанных ассоциациями Отображение с помощью таблицы ассоциаций (Association Table Mapping)


Slide 8

Принцип действия Основная идея – хранение ассоциаций в таблице отношений Таблице отношений не соответствует объект приложения => нет идентификатора объекта Первичным ключом служит совокупность двух первичных ключей связанных отношениями таблиц Для загрузки данных необходимо выполнить два запроса


Slide 9

Передает некоторому классу полномочия по выполнению отображения для дочернего класса Отображение зависимых объектов (Dependent Mapping)


Slide 10

Принцип действия Основная идея – один класс (зависимый объект) передает другому классу (владельцу) все свои полномочия по взаимодействию с базой данных У каждого зависимого объекта должен быть один и только один владелец На зависимый объект может ссылаться только его владелец Зависимый объект не имеет поля идентификации Зависимый объект может быть владельцем другого зависимого объекта


Slide 11

Отображает объект на несколько полей таблицы, соответствующей другому объекту Внедренное значение (Embedded Value)


Slide 12

Принцип действия Основная идея – когда объект-владелец загружается в базу данных или сохраняется в ней, вместе с ним загружаются или сохраняются и зависимые объекты Внедренное значение можно рассматривать как частный случай отображения зависимых объектов, где значение поля таблицы является отдельным зависимым объектом


Slide 13

Сохраняет граф объектов путем их сериализации в единый крупный объект и помещает его в поле базы данных Сериализованный крупный объект (Serialized LOB)


Slide 14

Принцип действия Крупный двоичный объект (BLOB) простота кодирования небольшое занимаемое пространство СУБД должна поддерживать двоичный формат нельзя воссоздать структуру без самого объекта при изменении класса невозможно прочитать предыдущие сериализации Крупный символьный объект (CLOB) полученный текст читабелен занимает больший объем памяти может потребовать написания специального анализатора большее время обработки XML не решает (более того, усложняет) проблемы с занимаемым пространством


Slide 15

Предоставляет иерархию наследования классов в виде одной таблицы, столбцы которой соответствуют всем полям классов, входящих в иерархию Наследование с одной таблицей (Single Table Inheritance)


Slide 16

Принцип действия Выполняя загрузку объекта в память, необходимо знать, в экземпляр какого класса следует поместить загружаемые данные В структуру добавляется только одна таблица Для извлечение не нужно выполнять соединение Не все поля соответствуют содержимому каждого конкретного объекта Бессмысленная трата свободного места


Slide 17

Предоставляет иерархию наследования классов, используя по одной таблице для каждого класса Наследование с таблицами для каждого класса (ClassTable Inheritance)


Slide 18

Принцип действия Необходимо решить вопрос как связать соответствующие строки таблиц базы данных Простота понимания Проблема эффективного извлечения данных из множества таблиц Не всегда известно, к каким именно таблицам следует применить соединение


Slide 19

Предоставляет иерархию наследования классов, используя по одной таблице для каждого конкретного класса этой иерархии Наследование с таблицами для каждого конкретного класса (Concrete Table Inheritance)


Slide 20

Принцип действия Ключи должны быть уникальны в пределах всей иерархии Таблицы не содержат ненужных полей Не нужно выполнять соединений Отсутствует возможность моделировать отношения между абстрактными классами Большое количество обращений к базе данных


Slide 21

Структура, предназначенная для организации преобразователей, которые работают с иерархиями наследования Преобразователи наследования (Inheritance Mappers)


Slide 22

Принцип действия Преобразователи можно организовать в иерархию, так, чтобы у каждого класса домена был свой преобразователь, который будет загружать и сохранять данные этого класса Минимизация количества кода Реализация абстрактного и конкретного поведения


Slide 23

типовые решения Обектно-реляционного отображения с использованием метаданных Выполнил: Олейник Павел ПС-41 Глава 13


Slide 24

Хранит описание деталей объектно-реляционного отображения в виде метаданных Отображение метаданных (Metadata Mapping)


Slide 25

Принцип действия Генерация кода – разработчик пишет программу, которая принимает на вход метаданные и возвращает исходный код классов Метод отражения – рефлективная программа просматривает метаданные объекта, находит метод setName и выполняет его с соответствующим аргументом


Slide 26

Объект, предоставляющий запрос к базе данных Объект запроса (Query Object)


Slide 27

Принцип действия Объект запроса — разновидность типового решения интерпретатор, предназначенная для представления SQL-запросов Возможность представления запросов в терминах объектов приложения, а не базы данных Уменьшение количества запросов к базе данных


Slide 28

Выступает в роли посредника между слоем домена и слоем отображения данных, предоставляя интерфейс в виде коллекции для доступа к объектам домена Хранилище (Repository)


Slide 29

Принцип действия Основная идея — инкапсулировать в себе множество объектов, содержащихся в источнике данных, и операции, которые над ними выполняются, тем самым обеспечивая объектно-ориентированный аспект слоя хранения. Улучшение читабельности и ясности кода Разные источники данных


Slide 30

типовые решения, предназначенные для представления данных в web Выполнил: Олейник Павел ПС-41 Глава 14


Slide 31

Распределяет обработку взаимодействия с пользовательским интерфейсом между тремя участниками Модель-представление-контроллер (Model View Controller)


Slide 32

Принцип действия Модель – объект, предоставляющий некоторую информацию о домене Представление – отображает содержимое модели средствами графического интерфейса Контроллер – получает входные данные от пользователя, выполняет операции над моделью и указывает представлению на необходимость соответствующего обновления


Slide 33

Принцип действия Отделение представления от модели представление и модель относятся к разным сферам программирования отображение одной и той же информации разными способами тестирование Отделение контроллера от представления возможность использования контроллеров в качестве стратегий, используемых представлениями


Slide 34

Объект, который обрабатывает запрос к конкретной web-странице или выполнение конкретного действия на web-сайте Контроллер страниц (Page Controller)


Slide 35

Принцип действия Контроллер необходим для каждого действия, под которым подразумевается щелчок на кнопке или гиперссылке Может быть реализован в виде сценария или страницы сервера Не обязательно должен представлять собой единственный класс


Slide 36

Принцип действия Основные обязанности: Проанализировать URL и извлечь данные, введенные пользователем Создать объекты модели и вызвать их методы для обработки Определить представление и передать ему необходимую информацию, полученную от модели


Slide 37

Контроллер, который обрабатывает все запросы к web-сайту Контроллер запросов (Front Controller)


Slide 38

Принцип действия web-обработчик – объект, который выполняет фактическое получение POST- или GET-запросов и делегирует выполнение соответствующей команде Иерархия команд статический выбор – синтаксический анализ URL и применение условной логики динамический выбор – извлечение некоторого стандартного фрагмента URL и динамическое создание экземпляра класса команды


Slide 39

Преобразует результаты выполнения запроса в формат HTML путем внедрения маркеров в HTML-страницу Представление по шаблону (Template View)


Slide 40

Принцип действия Вставка маркеров в текст готовой статической HTML-страницы При вызове страницы маркеры будут заменены результатами некоторых вычислений


Slide 41

Представление, которое поочередно обрабатывает элементы данных домена и преобразует их в код HTML Представление с преобразованием (Transform View)


Slide 42

Принцип действия Преобразования изначально направлены на визуализацию данных в формат HTML Не требует наличия функционирующего web-сервера


Slide 43

Выполняет визуализацию данных домена в два этапа: вначале формирует некое подобие логической страницы, после чего преобразует логическую страницу в формат HTML Двухэтапное представление (Two Step View)


Slide 44

Принцип действия Создание логических окон вынуждает будущие страницы сайта следовать одному стилю Облегчает проведение глобальных изменений web-приложения с несколькими вариантами вида web-приложения с одним вариантом вида Не подойдет если между экранами приложения мало общего Каждое изменение сайта требует участия программистов


Slide 45

Точка централизованного управления порядком отображения интерфейсных экранов и потоком функции приложения Контроллер приложения (Application Controller)


Slide 46

Принцип действия Две основных функции: Выбор логики домена, которую нужно применить в конкретной ситуации Выбор представления, которое следует отобразить в ответ на запрос


×

HTML:





Ссылка: