Анализ статистики базы данных interbasefirebird


Содержание

Interbase/Firebird Development Studio

Уже не раз на страницах «КВ» я рассказывал о средствах, которые могут пригодиться при работе с базами данных. И, тем не менее, сегодня этот рассказ продолжу, поскольку разнообразных СУБД, как и средств для работы с ними, в мире превеликое множество.

Interbase и её клон Firebird, а также ещё один клон, ныне уже почти мёртвый Yaffil, очень популярны в нашей стране. Во многом эта популярность объясняется популярностью Delphi, с помощью которой пишется львиная доля приложений, работающих с Interbase, а во многом и возможностями самой СУБД и бесплатностью её клонов. В общем, как бы то ни было, Interbase в любой своей ипостаси не обделена вниманием разработчиков прикладных программ, и, значит, стоит рассказать об инструментах, с помощью которых можно администрировать базы данных в формате этой СУБД.

Одним из лучших средств для разработки и администрирования баз данных Interbase я считаю среду, название которой вынесено в заголовок статьи. Помимо того, что этот инструмент очень мощный и универсальный, он ещё и бесплатен для жителей СНГ. Найти Interbase/Firebird Development Studio в интернете можно по адресу www.sqlly.com.

Interbase/Firebird Development Studio — инструмент комплексный, подходящий как для разработки структуры новой базы, так и для управления уже существующими и для администрирования сервера СУБД. Всего в составе Interbase/Firebird Development Studio семь отдельных приложений, решающих отдельные задачи разработки и администрирования баз данных. Дизайнер позволяет легко и наглядно представить структуру новой базы данных в виде диаграмм, редактор баз данных позволит редактировать SQL-запросы и заполнять таблицы данными. Анализатор запросов служит для анализа производительности и отладки сложных запросов к базе, а анализатор базы позволит проанализировать производительность работы всего сервера, в целом. Есть ещё специальный инструмент для сравнения содержимого двух различных БД. Консоль администратора служит для управления правами пользователей, а также для сбора статистики и проверки целостности БД; инструмент управления сервисами служит для работы со встроенным в Interbase/Firebird Development Studio планировщиком. Ну а сейчас обо всех этих инструментах — подробнее.

Дизайнер позволяет представлять объекты, содержащиеся в базе (таблицы, триггеры, генераторы и т.п.) в виде ER-диаграмм. Что это значит? Всё станет понятно, если посмотреть на скриншот.

ER-диаграммы — способ графического представления объектов и зависимостей между ними. Объекты — квадратики, между ними стрелочками — зависимости. ER-диаграммы лишний раз доказывают, что всё гениальное просто: что может быть проще и понятнее такого визуального представления? При этом есть встроенный редактор SQL-скриптов, можно редактировать структуру таблиц в базе и экспортировать структуры уже существующих БД. Поскольку проекты дизайнера хранятся не в самой БД, а в отдельных файлах, легко осуществлять контроль версий с помощью встроенных возможностей самой программы. Правда, для создания базы данных из проекта нужно потом некоторое время, но зато если проект сформирован с какими-то ошибками, сама база от этого никоим образом не пострадает. Проекты дизайнера очень просто синхронизировать с базой, поэтому на самом деле тот факт, что программа не работает с базой непосредственно — только плюс, но никак не минус. Ко всему прочему, в программе имеется совершенно замечательная возможность — генерация HTML-документации по заданному проекту. Это действительно удобно при командной работе.

Следующий инструмент назван разработчиками Interbase/Firebird Development Studio редактором баз данных. В общем-то, хотя и незатейливо, зато сразу понятно, что имелось в виду. Выбираете базу данных, указываете сервер, вводите логин и пароль — и пожалуйста, редактируйте на здоровье. Можно открыть сразу несколько баз в разных окнах, если в этом есть необходимость. Редактор позволяет редактировать как метаданные, определяющие структуру базы, так и данные, ради которых она, собственно говоря, и создаётся. Метаданные (таблицы, домены, триггеры и т.п.) редактируются в виде SQL-скриптов, причём редактор поддерживает многие вещи, необходимые в профессиональных редакторах кода: подсветку синтаксиса, автодополнение кода, рефакторинг и подчёркивание синтаксически неверных конструкций. В большинстве других редакторов SQL (а особенно в бесплатных!) такие возможности напрочь отсутствуют. В редактор встроен монитор SQL-запросов, также для удобства редактирования можно записывать простые макросы. Есть также встроенный To-Do List — список задач, который заносится в проект, чтобы в спешке чего-нибудь не забыть. В общем, редактор баз данных весьма неплох.

Дальше по списку у нас с вами идёт такая интересная и полезная вещица, как анализатор запросов. Само её присутствие говорит о том, что Interbase/Firebird Development Studio — вполне профессиональное решение для разработчиков, использующих Interbase или Firebird. Эта программа также имеет встроенный редактор запросов, имеющий все те же возможности, что и редактор из редактора (простите великодушно за тавтологию). Однако анализатор предназначен для того, чтобы запросы выполнять, поэтому в нём присутствует возможность просмотра результатов запроса; есть, к тому же, просмотр статистики выборки, обновления, вставки и удаления. Статистика позволяет узнать не только время выполнения запроса, но и количество прочитанных и записанных СУБД страниц и буферов. Полезная особенность программы — наличие репозитория (хранилища, или, как назвали его авторы программы, сборника) запросов. Причём отдельно существует общий репозиторий запросов для всех БД и отдельно — для одной конкретной базы. Кроме того, благодаря удобным навигаторам по базе и запросам в больших запросах становится не так уж и сложно ориентироваться.

Инструмент для сравнения двух баз так подробно описывать вряд ли стоит, поскольку суть у него довольно простая: сопоставить и сказать, в чём базы похожи, а чем отличаются. Сравнивать можно не только сами базы, но и запросы, которые осуществляются к ним клиентским приложением. При желании базы можно синхронизировать. Вот, собственно, и всё по поводу данного инструмента.

Анализатор производительности сервера — вещь гораздо более интересная. И хотя Interbase/Firebird редко получает такую нагрузку, как MS SQL Server или, тем более, Oracle, тем не менее, производительность всё равно остаётся немаловажным моментом. Работать с анализатором производительности просто: нужно выбрать базу, подключиться к ней и нажать кнопку «Мониторить». Дальше можно продолжать работать с базой: программа тем временем будет собирать информацию о различных параметрах подключения. К ним относятся размер используемой памяти, количестве чтений и записей буферов и страниц, количество используемых буферов и количество подключенных пользователей. Причём для Interbase 7.0 и выше можно получить более точную и подробную информацию, поскольку её собирает в процессе работы сама СУБД. Все сообщения и предупреждения, выдаваемые сервером, программа заносит в специальный журнал (его можно потом экспортировать в формат CSV и читать в Excel’е или Calc’е). Но, конечно, сама за вас работу базы программа, к сожалению, не оптимизирует.

Консоль администратора нужна уже больше не разработчикам, которые создают базы данных и инструменты для работы с ними, а администраторам, которые потом имеют дело с произведениями разработчиков. Работать в консоли можно с отдельными базами или со всем сервером целиком. Для баз можно получать статистику, очень полную и разнообразную. В ходе сбора статистики программа укажет на пустые таблицы и бесполезные индексы, а также укажет, какие из таблиц наиболее заполнены и каков процент уникальности каждого из индексов. Все эти данные потом можно получить в текстовой форме. Также базу можно проверить на наличие ошибок, сделать её резервную копию или, наоборот, восстановить с помощью этой резервной копии. По серверу тоже можно собрать статистику, правда, гораздо менее подробную. А ещё можно посмотреть журнал работы сервера и раздать права пользователям. Ну, или не раздать, а забрать. Пользователей можно заводить на сервере, а раздавать им права для каждой конкретной базы или даже для каждого конкретного её элемента. Причём не просто к таблице, а к отдельным её полям. Например, можно запретить Иван Иванычу читать домашние адреса и телефоны незамужних сотрудниц.

Последняя из программ, входящих в комплект Interbase/Firebird Development Studio, как я уже говорил, предназначена для работы с планировщиком Time To Backup. Однако сам Time To Backup нужно скачать отдельно с сайта разработчиков. Он работает под Windows как сервис, а под Linux — как демон, занимающийся резервным копированием или восстановлением БД. При этом управлять им можно удалённо, что и делается с успехом с помощью встроенного в Interbase/Firebird Development Studio средства. Планировщик умеет отсылать уведомления о собственных успехах и неудачах по электронной почте, производить сжатие файлов резервной копии, проверку целостности базы перед копированием и проверку самой резервной копии.

Ещё пару моментов, о которых я забыл упомянуть. Весь интерфейс Interbase/Firebird Development Studio переведён целиком на русский язык, однако его нужно выбрать ещё во время установки, потом уже переключить не получится. Это особенно хорошо, если учесть тот факт, что настроек в программе — целое море. И ещё — для запуска всех приложений используется единая стартовая панель, которая умеет удобно сворачиваться в трэй и с помощью которой в любой момент можно запустить любой из инструментов пакета.

Теперь давайте подведём итог всему сказанному. Я понимаю, что очень тяжело составить представление о программе по одному только словесному описанию. Именно поэтому я рекомендую всем, кто работает с Interbase/Firebird, скачать Interbase/Firebird Development Studio и посмотреть на этот продукт собственными глазами. Конечно, если у вас уже есть мощный и купленный за свои кровные инструмент для работы с базами Interbase, то смысла в этом не так уж и много. Но если ещё нет, то присмотритесь к Interbase/Firebird Development Studio. Во-первых, вам не надо будет платить за него деньги, а во-вторых, он достаточно надёжен и при этом имеет русскоязычный интерфейс. Документация к Interbase/Firebird Development Studio весьма подробная, так что даже если вопросы и возникнут, их в большинстве случаев будет не так уж и сложно разрешить. Впрочем, если вы — противник решений «всё в одном», то, конечно, вряд ли воспользуетесь этой программой в силу идеологических причин. Но тут, как говорится, о вкусах не спорят. Объективных причин брезговать использованием ISDF нет, и я рекомендую самостоятельно в этом убедиться.

Ключи и индексы в Firebird/InterBase.

Индексы в БД используются в двух целях:

1) обеспечение поддержания ссылочной целостности (индексы по первичным, внешним и альтернативным ключам);

2) повышение скорости поиска и сортировки данных.

Построение индексов для реализации первой цели происходит практически не зависимо от воли разработчика; СУБД просто создает индексы по определениям всех ключей. А вот реализация второй цели полностью зависит от разработчика БД и здесь имеется одна проблема, требующая компромиссных решений.

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

Индексы рекомендуется создавать по столбцам, для которых:

1) часто производится поиск в БД (столбцы часто перечисляются в предложении WHERE оператора SELECT);

2) часто строится объединение таблиц в операторе SELECT;

3) часто производится сортировка (предложение ORDER BY оператора SELECT).

Не рекомендуется создавать индексы по столбцам, которые:

1) редко используются для поиска, объединения и сортировки;

2) часто меняют значение, что приводит к необходимости часто изменять индекс;

3) содержат небольшое число вариантов значений (например, ‘T’ и ‘F’).

Замечание 1. Если часто используется поиск или сортировка по нескольким столбцам таблицы, то целесообразно создать общий индекс по этим столбцам (например, R1, R2, R3, R4). Этот же индекс будет использоваться и для поиска по любому подмножеству столбцов следующих подряд, начиная с ведущего (например, R1, R2 или R1, R2, R3; но не R2, R3 или R1, R3). Однако этот индекс не будет использоваться для поиска по столбцам, следующим в обратном порядке (R2, R1).

Замечание 2. При частом использовании в предложении WHERE поиска по нескольким столбцам, объединенным оператором OR, например:

WHERE R1=значение_1 OR R2= значение_2 OR R3= значение_3


лучше создать отдельные индексы по столбцам R1, R2 и R3, поскольку составной индекс по этим столбцам будет в данном случае использоваться только для поиска по столбцу R1.

Индексы создаются с помощью оператора вида:

CREATE [UNIQUE] [ASC|DESC] INDEX имя_индекса

ON имя_таблицы (столбец1[,столбец2. ]);

где слово UNIQUE означает уникальный индекс;

ASC – индекс в порядке возрастания значений (по умолчанию);

DESC – индекс в порядке убывания значений.

Удаление индекса выполняется оператором вида:

DROP INDEX имя_индекса;

Нельзя удалить индекс, который используется в данный момент времени другими пользователями для выполнения запросов. Нельзя удалить индекс, созданный по определению ключей. В этом случае следует использовать оператор ALTER TABLE для удаления соответствующего ограничения.

Всякое изменение в таблице (удаление или добавление записи, изменение значений индексных полей) должно, по идее, влечь за собой перестроение индекса. Однако этот процесс может потребовать значительного времени, и поэтому в СУБД используются другие приемы, которые позволяют отражать изменения в индексе без его полной перестройки. Но эти приемы по мере накопления изменений приводят к изменению структуры индекса, увеличению его глубины (максимальное число обращений к индексу для поиска нужной записи). Если изменений в таблице очень много, то глубина индекса может стать неприемлемо большой и его использование для поиска и сортировки станет нецелесообразным. Поэтому иногда, по мере накопления изменений, необходимо полностью перестраивать индекс. Для этого используется пара операторов:

ALTER INDEX имя_индекса INACTIVE; — деактивирует индекс;

ALTER INDEX имя_индекса ACTIVE; — перестраивает индекс и активирует его.

Нельзя деактивировать используемый в данный момент времени индекс, а так же индекс, построенный по определению ключей.

Замечание 1. С теми же целями можно использовать пару операторов DROP INDEX и CREATE INDEX.

Замечание 2. Полное перестроение индексов выполняется и при восстановлении БД из резервной копии.

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

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

Илон Маск рекомендует:  Урок 2. PHP - Переменные

SET STATISTICS INDEX имя_индекса;

Замечание. SET STATISTICS не перестраивает индекс, а лишь пересчитывает показатель его полезности, тем самым облегчая оптимизатору запросов правильный выбор индексов.

Оператор SELECT.

Оператор SELECT является самым важным и самым используемым оператором языка SQL. Утверждение «язык SQL – это оператор SELECT» недалеко от истины, поскольку SQL – это язык запросов, а оператор SELECT и является средством формулирования запросов.

Именно этот оператор демонстрирует отличия локальных и серверных БД. В локальной БД извлечение любой информации требует детального знания структуры БД и подробного описания алгоритма получения необходимой информации. В серверных же БД с помощью оператора SELECT формулируется запрос к SQL-серверу о том, какая информация должна быть получена. А каким образом эта информация будет получена, какие алгоритмы ее извлечения будут использованы и как они связаны со структурой БД – все это забота SQL-сервера, его внутренняя работа, скрытая от клиента.

Вообще, локальные базы данных ориентированы на работу с отдельными записями и имеют соответствующие средства навигации (перемещения) по наборам данных для перехода к конкретной записи. Серверные БД ориентированы на работу с множествами записей, удовлетворяющих некоторым требованиям выборки, и имеют средства для указания (выбора) этого множества.

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

Итак, вся работа в серверных БД ориентирована на действия с некоторыми множествами записей, а средством указания этих множеств является оператор SELECT.

Простейшая форма оператора SELECT

где , , . – обычно имена столбцов;

Приведенный оператор извлекает значения указанных столбцов из всех строк указанных таблиц. Если из таблицы необходимо извлечь значения всех столбцов, то вместо перечисления их имен можно использовать символ ‘*’.

Например, для извлечения всего содержимого таблицы лиц:

SELECT * FROM Lica;


SELECT Nlic, Name, Tip, Podr FROM Lica;

Обычно из таблиц извлекают не все строки, а только те из них, которые удовлетворяют определенному условию поиска. С этой целью в оператор SELECT добавляется предложение вида:

где в наиболее простом случае условие поиска имеет вид:

где =< | +|! |=|<>|!=>, а константа может быть строковым или числовым значением.

Например: извлечь из таблицы наличия все строки, касающиеся предмета с условным номером 3:

SELECT * FROM Nalichie WHERE Predmet=3;

Для задания более сложных условий поиска можно использовать логические операторы: AND, OR, NOT.

Замечание. Всегда следует помнить о важном отличии использования логических операторов в SQL от использования их в других языках программирования: в SQL наивысший приоритет имеют операции сравнения. Поэтому сначала выполняются операторы сравнения, а потом уже логические. Такая особенность SQL избавляет от необходимости использования множества скобок.

Например: извлечь из таблицы наличия строку, касающуюся наличия у лица с условным номером 5 предмета с условным номером 12:

SELECT * FROM Nalichie WHERE Lico=5 AND Predmet=12;

Как видите, здесь нет необходимости в скобках.

Если необходимо проверить наличие значения (NOT NULL) для некоторого столбца, то используется конструкция вида:

Например, дать список всех подотчетных лиц (для них указывается подразделение):

SELECT * FROM Lica WHERE Podr IS NOT NULL;

Дата добавления: 2020-05-31 ; просмотров: 305 ; ЗАКАЗАТЬ РАБОТУ

maxua.com.ua Автоматизация интернет магазинов

Категории раздела

Последние статьи:

  • Отправка СМС Механизм для рассылки сообщений СМС
  • Резервное копировани БД Модуль резервного копировани и востановления БД FireBird
  • Установка — настройка Настройка установка сервера или клиента
  • ошибки при запуске программа не запускается
  • Экспорт 1с Экспорт-импорт 1С

Последнее блога:

    • Как сделать что бы картинки не меняли свои названия после зугрузки в Vamshop. 2015.02.08
    • Управление cron через веб интерфейс 2012.07.06
    • Отключение подсветки Skype в HTML 2012.04.20

    • .htaccess не видно через FTP 2012.03.11
    • Вирус на сайте 2011.11.06 Лечение скриптов сайта от вируса и чужого кода или PHP-антивирус.

Клиенты:

Работа с индексами в INTERBASE FireBird

Индексы — важный объект базы данных. Как Вы уже видели, они используются для построения ограничений типа PRIMARY KEY, FOREIGN KEY и UNIQUE. Но, кроме этих важных индексов, создаваемых SQL сервером автоматически, в базе данных присутствуют и индексы, созданные пользователем. Они употребляются для улучшения доступа к данным, обеспечения сортировок.

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

Это выражение вернет Вам список всех индексов, принадлежащих указанной таблице (CUSTOMER). Но в результате будут содержаться все индексы, а не только созданные пользователем. Попробуем выделить только созданные пользователем индексы.

Индексы обладают и другими свойствами, а не только именем. Попробуем узнать некоторые из них.

Поле RDB$UNIQUE_FLAG определяет, позволяет ли индекс двойные значения. Если это поле имеет значение 1, то двойных значений быть не может. RDB$INDEX_INACTIVE показывает, работает ли индекс в данный момент, т.е. активен ли он. Когда в этом поле стоит значение 0, то индекс активен. RDB$STATISTICS — коэффициент избирательности, используется оптимизатором для выбора стратегии доступа при выполнении запроса.

Всем известно, что индексы строятся по одному или нескольким полям таблицы. Приведем пример того, как можно узнать, на базе каких полей построен индекс. Информация о полях, входящих в индекс содержится в таблице RDB$INDEX_SEGMENTS.

Этот запрос вернет нам список полей, по которым построен индекс, а также порядок полей в индексе.

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

Этот SQL-запрос даст Вам набор строк-команд для деактивации индексов. Поочередно выбирая получившиеся строки в программе, можно использовать их как команды для деактивизации соответствующего индекса. Если этот запрос выполнить в Windows ISQL, то из области результата можно будет скопировать скрипт, выполняющий те же действия. Следующий запрос дает набор команд для обратной процедуры.

Деактивизация индексов полезна и тогда, когда нужно добавить большое количество записей.

Индекс имеет такой показатель, как «полезность», который используется InterBase-сервером для выбора оптимального плана удовлетворения запросов. Его рекомендуется пересчитывать. Для получения скрипта, делающего это для всех индексов, можно попробовать следующий запрос.

База данных InterBase для начинающих

Что такое InterBase Server?

InterBase SQL Server — это система управления базами данных изначально разработанная компанией Borland. В настоящее время разработчиком InterBase является компания Embarcadero.

Версионная архитектура InterBase SQL Server

База данных InterBase построена на версионной архитектуре хранения данных. Этот подход обладает рядом преимуществ перед блокировочными СУБД:

  • Для восстановления баз данных InterBase после системного сбоя, нет необходимости поддержки лога транзакций.
  • Клиенты, читающие данные никогда не блокируют клиентов, осуществляющих запись данных.

Преимущества сервера InterBase

Сервер InterBase — это кроссплатформенная СУБД, поддерживающая большинство операционных систем: Windows, Linux, Unix, Solaris, Mac OS и т.д.

InterBase обладает целым рядом преимуществ, выгодно отличающих его от остальных СУБД:

  • Обновляемые представления View;
  • Двухфазное подтверждение транзакций;
  • Эффективный механизм триггеров;
  • Серверная обработка BLOB-полей (BLOB-filters);
  • События (Уведомления);
  • Шифрование сетевого трафика, базы данных, файлов бекапа и отдельных столбцов БД.

Язык InterBase SQL

Язык InterBase SQL совместим со стандартом SQL-92. Кроме того, InterBase server поддерживает расширения стандартного подмножества языка SQL за счет пользовательских функций UDF (User Definded Functions). InterBase SQL предоставляет расширенные возможности SQL для хранимых процедур и триггеров — PSQL.


Актуальная версия InterBase server

На сегодняшний момент новейшая версия — InterBase 2009.

Сервер InterBase 2009 доступен в 4-х вариантах:

  • InterBase SMP 2009 Developer;
  • InterBase SMP 2009 Server;
  • InterBase SMP 2009 Desktop;
  • InterBase SMP 2009 ToGo.

InterBase SMP 2009 Developer Edition

Версия InterBase SMP Developer Edition поставляется бесплатно в составе интегрированной среды разработки CodeGear и для первого знакомства c базой InterBase лучше воспользоваться ей.

InterBase SMP 2009 ToGo

Однопользовательская версия InterBase SMP 2009 ToGo встраивается в приложения в качестве dll и предназначена для разработки Portable-приложений с размером базы данных менее 3 мегабайт. Между тем она обладает всеми необходимыми функциями полноценной БД, включая поддержку транзакций и SQL.

Скачать различные версии InterBase можно здесь: InterBase скачать.

Производительность InterBase

Сервер InterBase разрабатывался с учетом современных требований к производительности СУБД. В последних версиях InterBase SQL Server применен ряд технологий значительно повышающих скорость работы:

  • Поддержка симметричной многопроцессорной обработки InterBase SMP (symmetric multiprocessing) позволяет задействовать возможности многопроцессорной архитектуры при единственном серверном процессе InterBase SuperServer.
  • Поддержка технологии Hyperthreading.
  • Пакетное выполнение SQL запросов позволяет уменьшить сетевой трафик и повысить производительность.

InterBase против Firebird

Хотя в основе версий InterBase 2009 и Firebird 2.5 лежит общий исходный код InterBase 6.0, эти СУБД на современном этапе развития значительно отличаются друг от друга.

В InterBase 2009 реализованы следующие возможности, которые не поддерживаются в последней версии Firebird 2.5:

  • Шифрование базы данных, а так же отдельных столбцов.
  • Шифрование сетевого трафика (Over-the-Wire (OTW) Encryption.
  • Протоколирование операций на базе журналов.
  • Возможность аутентификации на уровне базы данных.
  • Функция экспорта содержимого файлов базы данных (Dump) в режиме онлайн.
  • Функция восстановления состояния из архивов на определенный момент времени (Point-in-Time Recovery).
  • Логический тип данных Boolean.

Клиент-серверная версия Firebird SQL Server существует в двух вариантах: Firebird Super Server и Firebird Classic. В InterBase реализована архитектура, совмещающая в себе достоинства Classic и SuperServer — InterBase SuperServer + SMP.

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

Архитектура Classic Server — на каждое клиентское подключение создает отдельный серверный процесс. Архитектура Classic Server более надежна, т.к. сбой одного серверного процесса не вызывает отказ в обслуживании всех клиентов. Кроме того, Classic Server позволяет распределить клиентские подключения на несколько процессоров. Недостатком архитектуры являются дополнительные накладные расходы на обслуживание и синхронизацию процессов, а так же отсутствие общего клиентского кеша.

InterBase Super Server + SMP (symmetric multiprocessing) объединяет в себе преимущества двух архитектур Classic и Superserver. Один серверный процесс InterBase Super Server позволяет сократить накладные расходы и использовать общий клиентский Кеш, а технология симметричной обработки SMP задействует возможности многопроцессорной архитектуры, которые раньше были недоступны для Classic Server.

Начало работы с InterBase

Для знакомства с InterBase можно использовать тестовую базу данных employee.gdb. Она входит в установочный комплект InterBase и расположена в папке C:\CodeGear\InterBase\examples\database\.

Создание новой базы данных InterBase

Создать новую базу данных можно через консоль управления IBConsole. Она находится в папке C:\CodeGear\InterBase\bin:

Альтернативный способ создания пустой базы InterBase через утилиту isql:

  • запустите утилиту C:\CodeGear\InterBase\bin\isql.exe
  • выполните инструкцию создания базы данных:

Use CONNECT or CREATE DATABASE to specify a database SQL> CREATE DATABASE ‘localhost:d:\temp\test.gdb’ user ‘SYSDBA’ password ‘masterkey’ DEFAULT CHARACTER SET WIN1251;

В ISQL каждое выражение завершается точкой с запятой.


Проверить подключение можно, выполнив запрос:

SQL> select TMP$DATABASE_PATH from TMP$DATABASE;

Если все сделано правильно, SQL запрос вернет путь к подключенной базе данных:

Безопасность InterBase Server

InterBase SQL Server поддерживает несколько методов аутентификации пользователей:

  • Classic Authentication Scheme — пользователи и пароли являются едиными для всех баз и хранятся в системной базе данных InterBase — admin.ib (isc4.gdb).
  • Embedded User Authentication — пользователи и пароли хранятся в клиентской базе данных. Такая схема защищает базы данных от прямого копирования или замены на сервере admin.ib.

Чтобы включить Embedded User Authentication необходимо при создании базы данных через SQL указать опцию WITH ADMIN OPTION. В IBConsole можно просто указать соответствующий параметр в настройках БД.

Следующие инструкции позволяют управлять механизмом Embedded User Authentication:

После включения возможности хранения пользователей в БД можно управлять пользователями через SQL операторы:

Обе схемы аутентификации Classic и EUA могут быть использованы на сервере InterBase совместно. Подробнее об аутентификации можно прочитать в статье: Встроенная аутентификация пользователей в InterBase 7.5

Пользователь SYSDBA. Смена пароля по умолчанию

SYSDBA — это административный пользователь InterBase с исключительными правами. Пароль по умолчанию: masterkey. Для того чтобы сменить пароль, используйте утилиту gsec из состава InterBase:

C:\CodeGear\InterBase\bin>gsec GSEC> modify SYSDBA -pw NEW_PASS

При помощи утилиты gsec можно создавать, удалять, модифицировать и просматривать пользователей. Полный список команд можно получить, набрав help.

Подключение к InterBase из клиентского приложения

Для начала скачайте и установите пакет IBProvider Professional Edition.

IBProvider Professional Edition — это набор COM-компонент, которые позволяют работать с любыми версиями InterBase и Firebird. Компоненты поддерживаются большинством средств разработки: Delphi, C++ Builder, Visual C++, .Net Framework, C#, Visual Basic, VBScript, VBA и др.

Для проверки подключения к InterBase напишем простой сценарий на языке VBScript. Создайте пустой файл с расширением vbs и вставьте в него следующий код, указав правильный путь к базе данных:

Запустите скрипт на выполнение в режиме командной строки, и вы увидите список активных подключений к БД.

InterBase и VBScript, Visual Basic, VBA

Для доступа к InterBase и Firebird из VBScript, VBA, Visual Basic используется библиотека ADO (ActiveX Data Objects). Множество примеров работы с этой библиотекой вы найдете в документации: примеры InterBase VBScript, VBA, Visual Basic.

InterBase и Delphi

IBProvider предлагает несколько способов работы с InterBase из Delphi:

  • dbGo (ADO Express) компоненты, работающие через библиотеку ADO.
  • прямой доступ к COM-интерфейсам ADO, минуя компоненты dbGo.
  • прямой доступ к COM-интерфейсам OLE DB при помощи сторонних VCL-компонент (OLE DB Direct/OLE DB Express).

InterBase и .Net

Для доступа к InterBase из .Net используется библиотека ADO .Net. На сайте IBProvider опубликовано большое пошаговое руководство, посвященное работе с InterBase в Visual Studio .Net (ADO .Net).

InterBase и C++

В состав IBProvider Professional Edition входит C++ библиотека, которая предоставляет самый быстрый способ работы с OLE DB провайдерами из Visual C++ 2005-2008, а так же из C++ Builder.

Редактирование базы InterBase — создание таблиц, связей, ключей


В пустой базе данных необходимо создать таблицы, связи между таблицами, первичные ключи, индексы, хранимые процедуры, генераторы и другие объекты. Для редактирования баз данных вы можете использовать встроенные средства InterBase — IBConsole или утилиту isql.exe.

Создание таблицы InterBase при помощи IBConsole

Создание таблицы InterBase при помощи утилиты isql.exe

SQL> CREATE TABLE cross_rate CON> ( CON> from_currency VARCHAR(10) NOT NULL, CON> to_currency VARCHAR(10) NOT NULL, CON> conv_rate FLOAT NOT NULL, CON> update_date DATE, CON> CON> PRIMARY KEY (from_currency, to_currency) CON> );

Илон Маск рекомендует:  FillChar - Процедура Delphi

Вставляем одну запись и делаем выборку из таблицы:

SQL> INSERT INTO cross_rate VALUES (‘Dollar’, ‘CdnDlr’, 1.3273, ’11/22/93′); SQL> SELECT * from cross_rate; FROM_CURRENCY TO_CURRENCY CONV_RATE UPDATE_DATE ============= =========== ============== =========== Dollar CdnDlr 1.3273000 1993-11-22

Помимо isql существую различные графические утилиты администрирования InterBase.

Утилиты администрирования InterBase

IBExpert

IB/FB Development Studio

Blaze Top

Database Workbench

Database Workbench — поддерживает несколько серверов баз данных, среди которых есть Firebird и InterBase. Отладка хранимых процедур, анализ планов, встроенные средства переноса данных и метаданных.
Лицензируется отдельно на InterBase и отдельно на Firebird. 171$ за каждый движок (InterBase или Firebird).
Сайт: Database Workbench

Если в данном списке отсутствует ваша утилита, напишите на ibprovider.com и мы добавим её описание.

Теги статьи: База данных InterBase Server, Язык InterBase SQL, сервер InterBase, InterBase server, InterBase 2009, InterBase 2007, InterBase vs Firebird, Firebird 2.5, InterBase таблицы, IBExpert, IB/FB Development Studio, Blaze Top, Database Workbench.

Анализ статистики базы данных interbase/firebird

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

FlameRobin- поддерживает Firebird. Кросс-платформенная архитектура. Есть редактор SQL, DDL, управление пользователями. Лицензия: open source, распространяется бесплатно.

IBExpert- Поддерживает Firebird, Interbase, Yaffil. Редакторы DDL и DML. Визуальный построитель запросов. Автозавершение кода, Metadata Extractor, а так же множество других возможностей. Лицензия: Бесплатный для exUSSR, для остальных: от 179 евро.

IB/FB Development Studio- Визуальный дизайнер баз данных, встроенный MERGE, scheduler, Code auto completion, анализатор запросов, монитор производительности. Лицензия: Бесплатно для России, для остальных: от 149 евро.

Blaze Top- Инструмент разработчика и администратора баз данных. Поддерживает Firebird и Interbase. Лицензия: Бесплатно для России, для остальных: от 129 евро.

Database Workbench- поддерживает несколько серверов баз данных, среди которых есть Firebird и Interbase. Отладка хранимых процедур, анализ планов, встроенные средства переноса данных и метаданных. Лицензируется отдельно на Interbase и отдельно на Firebird. 171$ за каждую копию (Interbase или Firebird).

Обоснование выбора среды разработки приложения

Проанализировав требования и возможности к реализации, можно сделать выбор СУБД и клиентской части. SQL-сервер Interbase предназначен для хранения и обработки больших объемов информации в условиях одновременной работы множества клиентских приложений. Ниже рассматривается ряд технологий InterBase, использование которых обеспечивает максимальную вычислительную разгрузку клиентского приложения и гарантирует высокую безопасность и целостность информации.

Отношения подчиненности между таблицами баз аданных (БД) создаются путем определения первичных ключей у родительских и внешних ключей у дочерних таблиц.

Ограничения на значения отдельных столбцов; условия ограничений могут быть разнообразны — от требования удовлетворения вводимых значений определенному диапазону или соответствия некоторой маске до требуемого отношения с одной или несколькими записями из другой таблицы (или многих таблиц) БД.

Для ускорения работы клиентских приложений с удаленной БД могут быть определены хранимые процедуры, которые представляют собой подпрограммы, принимающие и возвращающие параметры и способные выполнять запросы к БД, условные ветвления и циклическую обработку. Хранимые процедуры пишутся на специальном алгоритмическом языке. В них программируются часто повторяемые последовательности запросов к БД. Текст процедур хранится на сервере в откомпилированном виде.

В составе записи БД могут определяться BLOB-поля (Binary Large Object —большой двоичный объект), предназначенные для хранения больших объемов данных в виде последовательности байтов. Таким образом могут храниться текстовые и графические документы, файлы мультимедиа, звуковые файлы и т. д. Интерпретация BLOB-поля выполняется в приложении, однако разработчик может определить так называемые BLOB-фильтры для автоматического преобразования содержимого blob-поля к другому виду.

InterBase дает возможность использовать функции, определяемые пользователем (User Defined Function, UDF), в которых могут реализовываться функциональности, отсутствующие в стандартных встроенных функциях InterBase (вычисление максимума, минимума, среднего значения, преобразование типов и приведение букв к заглавным). Например, в UDF можно реализовать извлечение из значения даты номера дня, года; определение длины символьного значения; усечение пробелов; разные математические алгоритмы и т. п. Функция пишется на любом алгоритмическом языке, позволяющем разрабатывать DLL (библиотеки динамического вызова), например, на Object Pascal.

InterBase может посылать уведомления клиентским приложениям о наступлении какого-либо события. Одновременно работающие приложения могут обмениваться сообщениями через сервер БД, вызывая хранимые процедуры, в которых реализована инициация нужного события.

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

InterBase был разработан в начале 80-х годов группой разработчиков из американской корпорации DEC. В дальнейшем разработка данного продукта велась независимыми компаниями InterBase Software и впоследствии слившейся с ней Ashton-Tate. Borland приобрела права на InterBase у Ashton-Tate после слияния с нею.


InterBase активно используется в государственном и военном секторах США. Однако, интерес к этому серверу возрос только в последнее время в связи с включением его локальной (а начиная с Delphi 3 и 4-пользовательской) версии в состав Delphi Client/Server Suite и Delphi Enterprise. Внимание разработчиков БД InterBase привлек, во-первых, потому, что это «родной» продукт Borland (а средства разработки приложений этой компании давно зарекомендовали себя с положительной стороны), во-вторых, потому, что InterBase весьма прост в установке, настройке и администрировании по сравнению с другими SQL-серверами, и в-третьих, потому, что он обладает прекрасными функциональными возможностями. Однако Borland развивает только платную версию своего сервера InterBase, а помимо него есть и менее приметные, но не менее востребованные решения, например PostgreSQL или Sybase ASA. Но настоящим «серым кардиналом» можно назвать, пожалуй, лишь одну— FireBird (в переводе с англ. «жар-птица»).

Многим программистам знакома аббревиатура IB/FB. Так четырьмя буквами обозначаются целых две системы управления базами данных — InterBase и FireBird. Обе системы нетребовательны к ресурсам, платформонезависимы, просты в использовании и относительно легки в освоении. Очень часто клиентские программные утилиты поддерживают эти две СУБД одновременно.

Firebird — это мощная, компактная реляционная система управления базами данных (РСУБД) с архитектурой клиент-сервер. Она может выполняться на разнообразных серверных и клиентских платформах, включая Windows, Linux и на некоторых других платформах UNIX, включая FreeBSD и Mac OS X. Это РСУБД промышленного применения, чьи возможности имеют высокий уровень соответствия стандартам SQL, при этом она реализует некоторые мощные расширения языка процедурного программирования конкретного производителя.

Этот сервер может практически всё, что обычно требуется для приложений. Иными словами — сервер должен как минимум поддерживать ANSI SQL-92, транзакции, хранимые процедуры и триггеры, развитую систему разграничения прав доступа, архивирование баз данных, быть надёжным и простым в администрировании, не иметь серьёзных ограничений на размер базы, количество таблиц, полей, индексов и т.п.

Интересной особенностью сервера является то, что он построен на архитектуре множественных поколений записей и использует версионный механизм доступа к данным. Это позволяет избежать блокировок при чтении записей, однако немного замедляет доступ.

В дополнение к этому всему, как результат изучения, хочу отметить:

— Триггеры могут быть Before и After, причем в неограниченном, практически, количестве (срабатывают в последовательности, которую легко указать при создании триггера). В отличие от MS SQL, срабатывают они отдельно для каждой записи, а не единожды для всего кортежа.

— Хранимые процедуры могут возвращать как наборы данных, так и скалярные значения, причём их можно использовать непосредственно в запросах.

— Для создания уникальных идентификаторов предусмотрены генераторы. Это отдельные объекты, не привязанные к конкретным полям или таблицам, что позволяет с лёгкостью создавать идентификаторы, уникальные в любом контексте.

— Кроме хранимых процедур, существуют ещё UDF, оформленные как внешние dll. Стандартный набор UDF и готовые их библиотеки сторонних разработчиков включают в себя практически все функции, какие только могут понадобиться.

— Есть контроль ссылочной целостности.

— Есть полноценная поддержка кириллицы.

Предназначенная для клиент-серверной архитектуры, эта СУБД предъявляет достаточно типичные требования при выборе серверного оборудования для серьезных проектов. А способность отлично работать с большими базами и множеством клиентских подключений давно успешно доказана.

Работа с базами данных в IBExpert

IBExpert – бесплатная утилита, предназначенная для администрирования баз данных InterBase и Firebird. Редакция ELMA Express работает с использованием Firebird, поэтому IBExpert в данном случает подходит для выбора, просмотра и изменения данных, хранящихся в базе.

Для работы с базой данных через IBExpert необходимо:

1. Установить на сервере программу IBExpert (дистрибутив приложен ниже).
2. Остановить сервер ELMA: соответствующее приложение в IIS или службу «ELMA 3.0 веб-сервер» (зависит от используемого веб-сервера).
3. Зарегистрировать базу в IBExpert, для этого:
а) Нажмите кнопку Зарегистрировать базу (либо сочетание клавиш на клавиатуре Shift+Alt+R) (рис. 1.1)
б) Заполните поля формы для регистрации следующим образом:

  • сервер (Server) – Локальный или Local (рис. 1.2);
  • версия (Server Version) – Firebird 2.5 (рис. 1.3);
  • путь до базы (Database File) – путь до файла base.fdb (рис. 1.4);
  • логин (User Name) – sysdba (рис. 1.5);
  • пароль (Password) – masterkey (рис. 1.5);
  • кодировка (Charset) – UNICODE_FSS (рис. 1.6).

в) Нажмите кнопку Регистрировать (Register) (рис. 1.7).

Рис. 1. Регистрация базы данных

После того, как база данных была зарегистрирована, к ней необходимо подключиться. Для этого в списке баз данных дважды нажмите левой кнопкой мыши по нужной базе данных, либо нажатием правой кнопки мыши по базе вызовите контекстное меню и выберите в нем пункт Connect to Database (рис. 2).

Рис. 2. Подключение к базе данных

Рис. 3. Ошибка при подключении к БД

Рис. 4. Подключение библиотеки

Чтобы выполнить запрос в базу данных, необходимо:

  1. Нажать кнопку Новый SQL редактор (New SQL Editor) (Shift+F12) (рис 5.1).
  2. В открывшемся окне редактора ввести текст SQL-запроса.
  3. Нажать кнопку Выполнить (F9) (рис 5.2).
  4. Для фиксации изменений следует нажать кнопку Подтвердить транзакцию (Commit Transaction) (Ctrl+Alt+C) (рис 5.3).

Рис 5. Выполнение SQL-Запроса

Перед выполнением запросов в БД настоятельно рекомендуется создать резервную копию базы данных, подробнее об этом можно прочитать в статье «Работа с базами данных»

Анализ статистики базы данных InterBase/FireBird


Статистика базы данных InterBase/FireBird, полученная через gstat или Services API, предоставляет большое количество статистических данных, которые могут быть использованы для анализа работы сервера и самой базы данных. Приложения, работающие с базой данных, могут корректно работать с транзакциями и самими данными, то есть не создают длительные активные транзакции, не запускают длительные snapshot транзакции. Все это верно для небольшого количества одновременно работающих пользователей, но как только количество пользователей возрастет на порядок и следовательно увеличиться количество операций по вставке, редактированию и удалению данных, могут возникнуть проблемы по сборке, так называемого, мусора. Проведенная и проанализированная статистика может помочь в процессе сборки мусора.

С помощью утилиты gstat с соответствующими ключами или Services API можно получить следующие виды статистики:
Статистика заголовочной страницы — это информация о глобальных свойствах всей базы данных, хранящаяся на заголовочной страницы каждой базы данных ( -header );
Статистика страниц данных — информация о таблицах содержащихся в базе данных ( -data);
Статистика индексов — информация об индексах в базе данных (-index);
Статистика системных таблиц (-system).
Пример использования gstat:
gstat -header -user SYSDBA -password masterkey c:work.gdb
gstat -all -user SYSDBA -password masterkey c:work.gdb получаем полную статистическую информацию базы данных

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

Для примера будем рассматривать конкретную базу данных, которая состоит из 12 таблиц, большая часть работы производится с одной таблицей, которая ссылается на 4 справочника и ежедневный прирост записей составляет порядка 1000 записей. Общее количество записей на момент написания статьи составляет 192285 записей. Размер файла базы данных составляет 302 мегабайта.
Запустив утилиты gstat (с ключом -header)или использовав компонент FIBStatisticalServices можно получить статистические данные о нашей базе данных. Часть информации является статичной, часть — меняется в зависимости от происходящих в базе данных изменений.

Пример заголовочной информации:

Database header page information: Flags 0
Checksum 12345
Generation 724306
Page size 4096
ODS version 10.1
Oldest transaction 723951
Oldest active 724301
Oldest snapshot 724301
Next transaction 724304
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Oct 23, 2004 0:20:46
Attributes force write

Variable header data: Sweep interval: 20000

CHECKSUM — контрольная сумма

Контрольная сумма иметься как на заголовочной странице, так и на любой странице базы данных, но в современных версиях InterBase/FireBird эта сумма не используется и ее значение всегда равно 12345.

PAGESIZE — размер страницы

Размер страницы, измеряется в байтах. Параметр, который устанавливает одно из важных свойств базы данных. Этот параметр устанавливается при создание базы данных, а также при ее восстановлении из резервной копии и определяет размер всех страниц базы данных.

Этот параметр показывает идентификатор старейшей заинтересованной транзакции в базе данных. Значение этого параметра часто сравнивается с параметром NEXT TRANSACTION. Разница этих параметров показывает количество мусора в базе данных и можно судить о целесообразность выполнения резервного копирования. Разница этих параметров для нашей базы данных составляет 353, для эксперимента сделаем резервную копию с последующим восстановление ( для этих операций были использованы компоненты FIBBackUPService и FIBRestoreService) и опять получим статистическую информацию.

Результат следующий:Oldest transaction 1
Oldest active 2
Oldest snapshot 1
Next transaction 35

Из результата видно, что количество старые транзакции были удалены — этот процесс от части можно назвать сборкой мусора. Что же из себя представляет процесс резервного копирования и восстановления будет рассмотрен позже.

OLDEST ACTIVE и OLDEST SNAPSHOT

Параметр OLDEST ACTIVE идентифицирует старейшую активную транзакцию, в большинстве случаем его значение близко к NEXT TRANSACTION, параметр OLDEST SNAPSHOT определяет количество транзакций с уровнем изоляции SNAPSHOT, которые создают старые версии записей в базе данных (мусор).

Параметр устанавливает интервал между старейшей активной и следующей транзакцией, после которой начинается сборка мусора.

Далее будем рассматривать статистическую информацию по таблице и индексам, с которой осуществляется больше всего операций. DECLARATIONS (129) Primary pointer page: 156, Index root page: 157 Data pages: 8082, data page slots: 8082, average fill: 87% Fill distribution: 0 — 19% = 0 20 — 39% = 0 40 — 59% = 0 60 — 79% = 0 80 — 99% = 8082

Где DECLARATIONS — имя таблицы, 129 — идентификатор таблицы, записанный в системной таблице RDB$RELATIONS. PRIMARY POINTER PAGE — это номер первой страницы указателей в базе данных для данной таблицы, INDEX ROOT PAGE — номер первой страницы указателя для индексов этой таблицы. FILL DISTRIBUTION — таблица показывающая количество заполненности страниц, то есть последняя страница заполнена на 80%-99%. Если данные на страницах сильно разряжены, то следует пересмотреть саму структуру таблицы, может быть, стоит из этой таблицы выделить хранение каких то данных в справочники.

Илон Маск рекомендует:  Что такое код clock

Статистика по первичному ключу выглядит следующим образом: Index PKDECLARATIONS (9) Depth: 3, leaf buckets: 1052, nodes: 192285 Average data length: 6.00, total dup: 0, max dup: 0 Fill distribution: 0 — 19% = 0 20 — 39% = 0 40 — 59% = 908 60 — 79% = 34 80 — 99% = 110

Параметр DEPTH определяет глубину индекса, то есть показывает, сколько веток в «дереве» необходимо пройти, чтобы вычислить нужную запись. Тут нужно заметить что глубина индекса не должна превышать значение 3, иначе эффект от использования индекса значительно меньше и для исправления этого необходимо увеличить размер страницы (PAGE SIZE) в базе данных.

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

Для получения статистики был использован компонент FIBStatisticalServices (fibStatistical) и область вывода текстовой информации Memo.

СУБД Firebird и менеджер БД IBExpert

Читайте также:

  1. IT менеджер. Москва, Россия
  2. АКТИВНЫЕ И ПАССИВНЫЕ МЕНЕДЖЕРЫ
  3. Библиотековед, менеджер библиотечно-информационных технологий и систем
  4. Блок занятий №1. Профессиональная деятельность педагога как эффективного менеджера.
  5. В повседневный обиход вошло словосочетание «педагогический менеджмент». Кто такой менеджер-педагог ? Какие требования предъявляются к нему?
  6. Ведомость расчетов с менеджером по рекламе за 1 квартал 2015 г., в деятельности, переведенной на систему ЕНВД, в рублях
  7. Ветеринарному врачу и менеджеру нельзя концентрироваться на узких проблемах. Надо смотреть в целом.
  8. Готов ли к выполнению роли менеджера сегодняшний практик?
  9. Как работал Менеджер Человечества
  10. Какой должна быть оптимальная система профессионального становления и совершенствования менеджера культуры?
  11. Легко и быстро оформить заказ, после чего с вами непременно свяжется наш менеджер, и
  12. Ли Якокка. Карьера менеджера

Описание среды программирования

ПО разработано на базе операционной системы Windows Seven 32-bit. Эта ОС позволяет работать со средой разработки Embarcadero RAD Studio Delphi XE, менеджером БД IBExpert в связке с СУБД Firebird, а также имеет набор необходимых драйверов для работы с СУБД.

В качестве среды разработки была выбрана Embarcadero RAD Studio Delphi, версия XE. Это популярная среда визуальной разработки, основанная на Object Pascal. Программное обеспечение Embarcadero RAD Studio XE представляет собой полнофункциональный набор средств разработки приложений, который позволяет быстро и наглядно создавать приложения с графическим пользовательским интерфейсом для Windows, .NET, PHP и web-решений. RAD Studio XE включает в себя Delphi, C++Builder, Delphi Prism и RadPHP и поддерживает компилируемые, управляемые и динамические языки, подключение к базам данных в разнородной среде, полнофункциональные платформы визуальной разработки, а также обширную экосистему программного обеспечения сторонних разработчиков. Все это дает возможность в 5 раз ускорить разработку приложений для разных платформ Windows, web-решений и баз данных. Среды разработки RAD Studio многократно упрощают и ускоряют создание визуальных приложений и инструментов, активно работающих с базами данных, – от приложений с графическим интерфейсом для настольных систем и сенсорных экранов до облачных решений, управляемых базами данных многозвенных систем, web-приложений и служб.

Под Delphi XE также написаны компоненты FIBPlus для работы с СУБД Firebird/InterBase. Они используются для доступа к базе данных.

Среди множества различных систем управления базами данных в настоящей работе было решено использовать в качестве платформы именно СУБД Firebird, версия 2.5. Вот почему.


Firebird – это мощная, компактная реляционная система управления базами данных (РСУБД) с архитектурой клиент-сервер. Она может выполняться на разнообразных серверных и клиентских платформах, включая Windows, Linux и на некоторых других платформах UNIX, включая FreeBSD и Max OS X. Это РСУБД промышленного применения, чьи возможности имеют высокий уровень соответствия стандартам SQL, при этом она реализует некоторые мощные расширения языка процедурного программирования конкретного производителя.

Firebird – серьезный программный продукт, созданный для установки в малых и больших сетях, он также обладает некоторыми полезными возможностями для автономных конфигураций. Его небольшой размер дает возможность одиночным разработчикам легко выполнять большие производственные разработки в домашнем офисе. Мощь и высокий уровень соответствия стандартам делает Firebird привлекательной средой для изучения информационных технологий в университетах.

Созданный как проект с открытыми исходными кодами, Firebird является первым в новом поколении потомков InterBase 6.0 Open Edition фирмы Borland, который был сформирован для разработки открытых исходных кодов в июле 2000 г. в рамках InterBase Public License (IPL).

Для того чтобы начать проектирование БД, нужно установить сервер БД Firebird (рисунок 1) и менеджер БД IBExpert (рисунок 2).

Рисунок 2 – Символ СУБД Firebird

Рисунок 3 – Символ IBExpert

Менеджер БД IBExpert (рисунок 3) обладает всем необходимым функционалом для успешного проектирования БД и работы с данными на платформе Firebird и InterBase. Кроме того он является бесплатным для всех, проживающих на территории стран бывшего СССР (лицензия ex-USSR).

• Управление локальными и удаленными серверами;

• Интерактивное выполнение SQL-запросов.

IBExpert — это профессиональная среда для разработки и ад­министрирования БД InterBase и FireBird. Эта программа облегча­ет работу пользователя IB и FB при создании баз данных. Програм­ма IBExpert позволяет создавать компоненты БД: таблицы, пред­ставления, запросы, триггеры, домены и др.

Рисунок 4 – Менеджер БД IBExpert

Дата добавления: 2015-06-29 ; Просмотров: 2120 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Анализ статистики базы данных interbase/firebird

Пожалуйста, выделяйте текст программы тегом [сode=pas] . [/сode] . Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля. Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Искал по всему интернету пример написания программы с использованием стандартных средств InterBase. Но ничего хорошего не нашёл. Везде только теоретическое описание с сылками на язык SQL. С парадоксом примеров много и вопросов по нему мало Есть правда несколько решение разлиичных проблем, но до этого пока не дошол. С SQL БД пока не очень, но хотел конечно разобраться с ним т.к. вещь интересная
Подсоединится к БД получилось, а вот с остальным возникли проблемы (создание таблиц, удаление, пересоздание и и.п.). Может всё таки стоит написать хоть один рабочий пример с использованием основы работы с БД ?!

Прикреплённый файл IB_Demo.rar (42,37 Кбайт, скачиваний: 782)

Оставайся на Парадоксе. И для маленькой и для большой БД изменение структуры — форсмажор. Точнее, ты можешь сказать, что именно маленькая БД и чем она отличается от большой? Для сервера БД разницы между ними практически нет.
Проектировать надо так, чтобы метаданные менять не приходилось, это всегда возможно, так что отвыкай.

Да, с изменением требований иногда (часто) требуется менять структуру БД. Но делается это в порядке обновления, в частности, хороший тон — создание инсталляции, с одновременным обновлением и программы и БД.

Вот краткий ликбез для переходящих с Парадокса на сервер БД, в частности, на Interbase (Firebird):

1. Самое важное: Interbase платный. В поставке с Delphi идет лицензия для разработки, если БД начинает использоваться даже внутри фирмы — надо покупать. Есть одна бесплатная версия Interbase (IB) 6.0, но ее никто не использует, поскольку она весьма глючная, и вместо нее используется Firebird версии 1, который фактически то же самое, но исправленное. Версии IB 6.1 и 6.5 — платные, как и все остальные.
2. Вместо IB для небольших приложений используется Firebird (FB), развившийся из Interbase 6.0. FB 1.x практически полностью совместим с IB6, старшие версии — несовместимы ни с одной версией IB. Firebird бесплатен для любого использования.
3. Сервер БД — это полноценная реляционная СУБД, в частности, структура БД в полном соответствии с принципами хранится в таблицах (служебных) самой БД. Также в поставке идут средства для полного управления БД: для проверок и исправления структуры, создания бекапов, создания и изменения самой БД.
4. Практически все общение с сервером производится через запросы SQL. Запросами и извлекаются данные, и меняется структура БД. Запросы могут оформляться в виде текстовых скриптов, для выполнения единым пакетом. В частности, можно написать скрипт, при выполнении которого создается база данных, создается ее структура и производится наполнение ее данными. В «больших» СУБД при инсталляции так и делается, у IB/FB часто используется вариант просто поставки БД, которая представляет собой один файл.
5. В отличие от Парадокс сервер БД рассчитан на параллельное обслуживание множества клиентов одновременно. Проектировать БД надо так, как будто ею будут пользоваться одновременно несколько десятков пользвателей. Даже если вы уверены, что будет только один. Потому что если приложение удачное — попросят не одного, точно говорю. Сервер на это рассчитан изначально, но если структура не рассчитана — все будет плохо.
В частности, под запрет попадают идеи вроде «для ID новой строки возмем максимальный ID в таблице и прибавим 1». И, разумеется, изменение структуры «на лету». Метаданные кешируются, как самим сервером, так и компонентами доступа, и другое соединение с БД даже в пределах одного приложения может не ведать ни о каких изменениях, что может привести к серьезному повреждению БД.
6. В принципе, утилита ISQL в поставке весьма функциональна, но для привыкших к плоским таблицам и просто для удобства есть IBExpert и IB Developer Studio, которые бесплатны для ex-USSR.

Добавлено 04.02.11, 12:54
Теперь преимущества удоха от Парадокс к Interbase/Firebird:
Во-первых, повышение надежности. В сравнении с BDE и Парадоксом через нее — повышении на бесконечную величину. BDE в соединении с .db — крайне глючная и ненадежная схема, требующая приложения значительных усилий по контролю за БД, при полном отсутствии утилит обслуживания.
С IB/FB поставляются и утилиты проверки БД, и утилиты создания «горячих» бекапов (без отключения пользователей).
Во-вторых, штатный многопользовательский режим. Серверу все равно, сколько пользователей с ним работают — алгоритм не меняется. Никаких шар с PDOXUSERS.
В-третьих, контроль доступа. Никакого расшаривания папки с бд — не дай бог! Доступ контролируется по пользователям, с паролем. Хохма с паролированием таблицы Парадокса — это вообще фейк. jIGGAe!
В-четвертых, контроль целостности данных: первичные ключи, ссылочная целостность. Права доступа к объектам.
В-пятых, представления, триггеры и хранимые процедуры (с неплохим языком PSQL), позволяющие максимально разгрузить логику работы клиентского приложения.
И так далее.
А, да, главное: поддержка BDE (и Парадокса тоже) прекращена еще в прошлом веке.

Анализ статистики базы данных interbase/firebird

Если Вы читаете эту страницу, то, скорее всего, это ваше первое знакомство с Firebird. Далее будут показаны основные возможности этой системой управления базами данных (СУБД). Уверены, что после прочтения вы захотите скачать инсталлятор и попробовать ее самостоятельно.

История

Firebird ведет свое начало от исходных кодов Borland InterBase 6.0. Это программа с открытым исходным кодом, не имеющая двойных лицензий, вы можете использовать ее совершенно СВОБОДНО как в коммерческих приложениях, так и в приложениях с открытым кодом (open source)!

Технологии, на которых основан Firebird используются более 20 лет, что сделало его весьма зрелым и стабильным продуктом.

Основные свойства:

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

Основные характеристики Firebird:

  • Полная поодержка хранимых процедур и триггеров.
  • Транзакции, полностью совместимые с концепцией ACID.
  • Ссылочная целостность.
  • Версионная архитектура.
  • Очень небольшой размер.
  • Мощный внутренний язык для написания хранимых процедур и триггеров (PSQL).
  • Поддержка внешних пользовательских функций (UDF).
  • Firebird практически не требует работы системного администратора или позволяет свести ее к минимуму.
  • Почти не требует настройки — использовать СУБД можно сразу же после ее установки!
  • Огромное интернет-сообщество пользователей и разработчиков, множество мест, где вы можете получить быструю и бесплатную помощь.
  • Возможность распространения встроенной в приложение (embedded) версии — замечательно подходит для создания каталогов на CD-ROM, однопользовательских и пробных версий программ.
  • Десятки специализированных приложений от сторонних разработчиков, включая средства администрирования, репликации, и так далее.
  • Безопасная запись данных (careful write) — быстрое восстановление после сбоев, отсутствие необходимости в журналировании транзакций!
  • Большое количество средств доступа к базе данных: native/API, драйверы dbExpress, ODBC, OLEDB, .Net provider, JDBC-драйвер, модули для Python, PHP, Perl, и так далее.
  • Поддержка большинства распространенных операционных систем, включая Windows, Linux, Solaris, MacOS.
  • Инкрементные бэкапы
  • Билды для 32- и 64-разрядных ОС
  • Полная реализация курсоров в PSQL
  • Таблицы мониторинга
  • Триггеры на коннект и транзакции
  • Временные таблицы
  • TraceAPI — узнайте, что делается на сервере

Попробуйте прямо сейчас!

Это очень просто. Размер инсталлятора обычно не превышает 7 MB (зависит от вашей операционной системы), а процесс установки полностью автоматизирован. Вы можете скачать инсталлятор с сайта Firebird.

Обратите внимание, что существует 4 варианта сервера: SuperServer, Classic, SuperClassic и Embedded. Для первого знакомства лучше подходит SuperServer. Classic рекомендуется для многопроцессорных машин, а также в некоторых других специфических случаев. SuperServer имеет разделяемый между всеми соединениями к базе данных кэш и использует потоки для обслуживания каждого соединения, а Classic запускает отдельный процесс с собственным кэшем для независимой работы с каждым отдельным соединением к базе данных.

Embedded — это еще одна, удивительная версия сервера. Она состоит из всего одной библиотеки (DLL) размером около полутора мегабайт, содержащей полностью весь сервер Firebird. Это делает версию Embedded чрезвычайно удобной для распространения, так как в этом случае отсутствует необходимость установки сервера. Она идеальна для создания CDROM-каталогов, демонстрационных версий программ и приложений для однопользовательской работы.

Firebird включает в себя набор консольных программ, позволяющих создавать базы данных, исследовать их характеристки, выполнять операторы SQL и скрипты, производить резервное копирование данных, их восстановление из резервной копии и так далее. Если же более привычными для Вас являются средства, оснащенные графическим интерфейсом (GUI), то в этом случае также имеется множество вариантов для выбора нужной программы на ваш вкус. Для начала можете попробовать те из них, которые перечислены в списке в конце этой страницы.

Windows-версия сервера может быть запущена как в виде сервиса, так и в виде обычного приложения. Для управления сервером инсталлятор создает специальную иконку в «Панели Управления» операционной системы.

Документация

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

Подробнее эту информацию можно прочесть на сайте Firebird Также, для получения оперативной информации о последних связанных с СУБД событиях и новостях, Вы можете обратиться к сайту www.firebirdnews.org.

Любой размер

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

Инструменты и компоненты

Ниже перечислены ссылки на некоторые связанные с Firebird ресурсы, например, программы, драйверы и тому подобное.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL