Объектно-реляционное отображение

Данный слой состоит из классов, которые с помощью драйверов доступа к БД осуществляют взаимодействие с СУБД. На рисунке 6.2 приведён пример базовых классов, на основе которых можно строить слой объектно-реляционного отображения.

Рисунок 6.2 – Классы объектно-реляционного отображения

В таблице приведено описание классов, изображённых на рисунке 6.2.

Таблица 6.4

Описание базовых классов объектно-реляционного отображения

Имя класса Описание
TConnection Предназначен для управления соединением к базам данных и настройки параметров соединения.
TTransactionObject Предназначен для управления транзакцией (открытие, закрытие, откат)
TDBObject Предназначен для работы с базой данных. Использует классы TConnection и TTransactionObject
TExecuteObject Обеспечивает работу с SQL.

Характеристики класса «TConnection»

Свойства класса TConnection представлены в таблице 6.5.

Таблица 6.5

Свойства класса TConnection

Название Описание
ServerName: string Сетевое имя сервера СУБД
DataBaseName: string Полный локальный путь к файлу БД
UserName: string Имя пользователя СУБД используемое для авторизации
Password: string Пароль доступа к СУБД
DataBase: TIBDatabase Компонент доступа к базе данных, с которой работает объект
TransactionObject: TTransactionObject Транзакцию, с которой работает объект

 

Методы класса TConnection представлены в таблице 6.6.

Таблица 6.6

Методы класса TConnection

Название Описание
Connect() Открытие соединения с базой данных
Disconnect() Закрытие соединения с базой данных

 

Характеристики класса «TTransactionObject»

Класс TTransactionObject является оболочкой к компоненту TIBTransaction, реализующего функции по работе с транзакциями. Свойства класса TTransactionObject представлены в таблице 6.7.

Таблица 6.7

Свойства класса TTransactionObject

Название Описание
Transaction: TIBTransaction Определяет с какой транзакцией работает объект.
InTransaction: Boolean Определяет запущена ли транзакция у объекта.

 

Методы класса TTransactionObject представлены в таблице 6.8.

Таблица 6.8

Методы класса TTransactionObject

Название Описание
StartTransaction() Запуск транзакции
Commit() Подтверждение транзакции
Rollback() Отмена транзакции

 

Характеристики класса «TDBObject»

Поля класса TDBObject представлены в таблице 6.9.

Таблица 6.9

Поля класса TDBObject

Название Описание
fOwn_transaction: Boolean Определяет использует ли объект свою транзакцию или чужую переданную при создании класса.

 

Свойства класса TDBObject представлены в таблице 6.10.

Таблица 6.10

Свойства класса TDBObject

Название Описание
Connection: TConnection Подключение, используемое данным объектом.
TransactionObject: TTransactionObject Транзакция, используема данным объектом

 

Класс TDBObject содержит те же методы что и класс TTransactionObject для реализации возможности работы со своей собственной транзакцией. Соответственно если он использует чужую транзакцию, он ничего не может с ней делать. Методы класса TDBObject представлены в таблице 6.11.

Таблица 6.11

Методы класса TDBObject

Название Описание
StartTransaction() Запуск транзакции
Commit() Подтверждение транзакции
Rollback() Отмена транзакции

 

Характеристики класса «TExecuteObject»

Класс TExecuteObject выполняет команды SQL и является оболочкой к компоненту TIBQuery, который работает с семейством СУБД Borland IB. Свойства компонента TExecuteObject представлены в таблице 6.12.

Таблица 6.12

Свойства класса TExecuteObject

Название Описание
nfi[name: string]: Integer Свойство доступа к полям набора данных. Используется, когда поле является целочисленным.
nfs[name: string]: string Свойство доступа к полям набора данных. Используется, когда поле является строковым.
nff[name: string]: Extended Свойство доступа к полям набора данных. Используется, когда поле является дробным.

 

Методы класса TExecuteObject представлены в таблице 6.13.

Таблица 6.13

Методы класса TExecuteObject

Название Описание
ExecuteQuery(sql: string; params: array of variant) Метод, выполняющий запрос к базе данным не возвращающий набора данных.
SelectQuery(sql: string; params: array of variant; FetchAll: boolean=false) Метод, выполняющий запрос к базе данным возвращающий набор данных.
SelectStrings(sql: string; params: array of variant): TStringList Метод, выполняющий запрос к базе данных и возвращающий коллекцию строк в классе TStringList из первого поля запроса

Структура БД

В рассматриваемом в лабораторной работе примере будет использоваться база данных, чья реляционная модель приведена на рисунке 6.3.

Рисунок 6.3 Структура базы данных выдачи книг в библиотеке

Описание таблиц базы данных приведено в таблице 6.14.

Таблица 6.14

Описание таблиц базы данных