Данная небольшая статья является небольшим расширением или дополнением к опубликованным ранее заметкам о системных таблицах InterBase. В ней я постарался привести все запросы в более общем виде.
Данная статья написана на основе статей: "The
Interbase On - Disk Structure" by Ann Harrison ; "Structure of a Data
Page" by Paul Beach, а так же включает в себя мой горький опыт в
удалении важных данных, а потом в их успешном восстановлении. Я никоим
образом не собираюсь нарушать права ни выше перечисленных авторов, ни
компаний, чьи зарегистрированные торговые знаки перечисленные в данной
статье.
Статистика
базы данных InterBase/FireBird, полученная через gstat
или Services API, предоставляет большое количество
статистических данных, которые могут быть использованы для
анализа работы сервера и самой базы данных. Приложения,
работающие с базой данных, могут корректно работать с
транзакциями и самими данными, то есть не создают длительные
активные транзакции, не запускают длительные snapshot
транзакции. Все это верно для небольшого количества
одновременно работающих пользователей, но как только
количество пользователей возрастет на порядок и следовательно
увеличиться количество операций по вставке, редактированию и
удалению данных, могут возникнуть проблемы по сборке, так
называемого, мусора. Проведенная и проанализированная
статистика может помочь в процессе сборки
мусора.
Класс DataSet служит для хранения данных, загруженных из
базы, в памяти. Фактически он представляет собой набор таблиц,
связанных отношениями и в идеальном случае копирует структуру исходной
базы данных.
Он позволяет существенно сократить количество обращений к базе
данных. Это особенно критично для WEB-приложений, для которых частое
подключение к базе данных не является оптимальным.
Любая операция с базой данных должна выполняться в контексте транзакции. В своих примерах я постоянно использовал метод OleDbConnection.BeginTransaction(), так как предпочитаю всегда явно управлять транзакциями.
Один из вариантов защитить строку подключения в своем конфигурационном файле - это воспользоваться Data Protection API (DAPI). Начиная с Windows 2000, DAPI является частью операционной системы.
Допустим, нам необходимо зашифровать данные, хранящиеся в секции connectionStrings. Для этого мы воспользуемся классом DataProtectionConfigurationProvider:
В данном обзоре будет описан один из способов работы с базой данных
Firebird в среде .Net при помощи управляемого Ole Db провайдера.
Несомненным преимуществом сервера баз данных Firebird является его
бесплатность в сравнении с существующими, не очень дешевыми аналогами
(прежде всего MS SQL Server и ORACLE).