Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

 

Типы задач на коллоквиум №1

 

1.       Задачи на отображение иерархии классов в реляционную модель.

Дана объектная модель в виде UML диаграммы классов.  Требуется спроектировать реляционную модель и написать HQL запросы для выборки всех объектов базового класса и одного из дочерних классов. Также написать SQL-запросы, в которые будут транслироваться HQL запросы.

 

Всего рассматривается 3 типа отображений иерархий:

-          Single Table

-          Table Per Class

-          Table Per Concrete Class

Прочитать про них можно в любой книге, или документации по ORM-библиотекам, например, по ссылке http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-strategies

 

Пример иерархии:

 

 

 


 

2.       Задачи на оптимистическую и пессимистическую блокировки для отсоединенной модели.

Данные в заданной таблице может менять множество клиентов одновременно в режиме отсоединенной модели.  Требуется предложить решение, позволяющее обнаруживать (оптимистическая) или предотвращать (пессимистическая блокировка) конфликты обновления строк таблицы без или с возможностью изменения структуры таблицы. Написать SQL запросы SELECT и UPDATE для демонстрации подхода.

Для решения задач можно использовать подходы:

1.       Оптимистическая блокировка с проверкой всех полей (update set name=:new_name where id=:id and name=:old_name and …)

2.       Оптимистическая блокировка с добавлением столбца версии или даты последнего обновления (update version = version + 1 where id=:id and version=:version)

3.       Пессимистическая блокировка с добавлением столбца – собственника блокировки

 

3.  Задачи на HQL-запросы

Дана объектная схема и соответствующая ей реляционная схема. Напишите запрос на языке HQL и его аналог на SQL.

Все запросы на HQL в этих задачах строятся на основе “точечной нотации” связей ManyToOne.

Например, from CatalogItem as item where item.author.name like :name (для схемы описанной в примере)

Раскрываются в SQL при помощи inner join c соответствующими условиями объединений. SQL можно посмотреть, запустив пример.

 

4.       Задачи на проектирование ER-схемы и маппинга

По заданной объектной модели, спроектируйте схему базы данных и Hibernate маппинг в виде XML или аннотаций (атрибутов)

Все схемы – состоят из двух сущностей,  связанных OneToMany. Требуется нарисовать соответствующую ER-схему со связью и маппинг (OneToMany с одной стороны, ManyToOne с другой – см. пример Catalog/CatalogItem)

 

  • Нет меток