Как стать автором
Обновить
1.25

Firebird/Interbase *

Система управления базами данных

Сначала показывать
Период
Уровень сложности

Почему стоит пользоваться PDO для работы с базой данных

Время на прочтение9 мин
Количество просмотров323K

Перевод статьи Why you Should be using PHP’s PDO for Database Access.

Множество PHP-разработчиков привыкли использовать для работы с базами данных расширения mysql и mysqli. Но с версии 5.1 в PHP существует более удобный способ — PHP Data Objects. Этот класс, сокращенно именуемый PDO, предоставляет методы для работы с объектами и prepared statements, которые заметно повысят вашу продуктивность!

Введение в PDO


«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

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

Эта статья написана для людей, которые пользуются mysql и mysqli, чтобы помочь им в переходе на более мощный и гибкий PDO.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Комментарии165

Новости

Сравнение качества кода Firebird, MySQL и PostgreSQL

Время на прочтение19 мин
Количество просмотров31K


Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.
Читать дальше →
Всего голосов 63: ↑56 и ↓7+49
Комментарии32

12 типичных ошибок при бэкапе баз данных

Время на прочтение8 мин
Количество просмотров124K

Изначально эта статья задумывалась только для разработчиков и администраторов СУБД Firebird, но после общения с администраторами других БД выяснилось, что большинство ошибок общие, и на очень похожие грабли наступают буквально все. Если Вы можете что-то добавить к этому списку (пусть даже специфическое для конкретной СУБД), пишите в личную почту или в комментариях.
In English: 12 Common Mistakes while Backing Up Databases

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

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

Итак, приступим.
Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии75

Машина Тьюринга на чистом SQL

Время на прочтение3 мин
Количество просмотров8.2K
Пару месяцев назад прочитал пост, в котором уважаемая ksusha написала эмулятор машины Тьюринга используя MySQL и хранимые процедуры. Статья дала толчок к идее сделать машину Тьюринга на чистом SQL, без использования хранимых процедур. Для реализации был использован знакомый и любимый Firebird версии 2.1.

Существует две принципиальные проблемы при создании машины Тьюринга на голом SQL:
  • 1) лента машины может быть и модифицирована и дописана, что требует операторов INSERT и UPDATE в одной конструкции;
  • 2) машина Тьюринга требует как минимум одной переменной для состояния. Обычные SQL(DML)-запросы не могут хранить промежуточных переменных, по крайней мере в Firebird.

Тем не менее, мне удалось обойти эти ограничения
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии17

Истории

Вышел Firebird 5.0

Время на прочтение18 мин
Количество просмотров9.8K

11 января 2024 года, выпущен Firebird 5.0 — восьмой основной выпуск СУБД Firebird, разработка которого началась в мае 2021 года. В Firebird 5.0 команда разработчиков сосредоточила свои усилия на повышении производительности СУБД: параллельное выполнение backup, restore, sweep, создания и перестроение индексов, улучшение масштабирования в многопользовательской среде, ускорение повторной подготовки запросов (кеш компилированных запросов), улучшение оптимизатора, улучшение алгоритма сжатия записей. Кроме того, появились и новые возможности в языке SQL и PSQL.


В версии Firebird 5 также появился встроенный инструмент для профилирования SQL и PSQL, что существенно облегчит поиск узких мест и отладку сложных SQL.


Базы данных, созданные в Firebird 5.0, имеют версию ODS (On-Disk Structure) 13.1. Firebird 5.0 позволяет работать и с базами данных с ODS 13.0 (созданные в Firebird 4.0), но при этом некоторые возможности будут недоступны.


Для того чтобы переход на Firebird 5.0 был проще, в утилиту командной строки gfix был добавлен новый переключатель -upgrade, который позволяет обновлять минорную версию ODS без длительных операций backup и restore.


Также хочется отметить тот факт, что новый релиз Firebird доступен сразу на 11 платформах, включая ARM для Linux и Android. Скачать готовые сборки и дистрибутивы можно по адресу https://firebirdsql.org/en/firebird-5-0/.


Далее я перечислю ключевые улучшения, сделанные в Firebird 5.0, и их краткое описание. Подробное описание всех изменений можно прочитать в Firebird 5.0 Release Notes. Кроме того подробный разбор новых функций Firebird 5.0 вы можете найти в серии статей на ресурсе ibase.ru.


Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии21

Побочный результат: проверяем Firebird с помощью PVS-Studio

Время на прочтение7 мин
Количество просмотров13K
Firebird and PVS-Studio
Сейчас мы заняты большой задачей. Мы хотим провести сравнение четырёх анализаторов кода: Cppcheck, PVS-Studio и Visual Studio 2013 (встроенный анализатор кода). Для этого мы решили проверить не менее 10 открытых проектов и проанализировать отчёты, которые выдадут анализаторы. Это очень трудоёмкая задача и пока она не завершена. Но так как ряд проектов уже проверен, то про некоторые из них можно написать статьи. Чем я сейчас и займусь. Для начала опишу, что интересного удалось найти с помощью PVS-Studio в Firebird.
Читать дальше →
Всего голосов 48: ↑41 и ↓7+34
Комментарии44

Разработка кроссплатформенных мобильных приложений в Delphi #2

Время на прочтение8 мин
Количество просмотров60K
Delphi for Android

Часть #1

В предыдущей части цикла мы сделали обзор основных возможностей новой RAD Studio XE5. Сегодня же перейдем к практике. Прежде всего, давайте определимся с задачей.

Постановка задачи


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

Пересчет количества требуемых продуктов.

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

Таймер.

Если вы новичок в кулинарии, то, вам следует использовать рецепты, в которых четко указано время той или иной операции. И таймер на планшете, телефоне или нетбуке вполне может стать удобной заменой кухонному таймеру.
Часто бывает, что несколько операций выполняются параллельно. Каждая операция может иметь свой «таймер».
При этом нас интересует, как «настольная», так и мобильная реализация приложения. Мобильное приложение будет использоваться в качестве пособия для визуализации рецепта и сопровождения процесса подготовки. Настольная версия может быть использована в более расширенном функционале для, например, формирования новых рецептов.


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

Данное приложение мы реализуем для Windows и для Android. Затем на основе единой базы исходных кодов мы сможем выполнить портирование приложения на MacOS и iOS.
Читать дальше →
Всего голосов 57: ↑43 и ↓14+29
Комментарии65

Логгирование приложения на C# в базу данных FireBird Embedded с помощью NLog 2.0

Время на прочтение4 мин
Количество просмотров8.7K
Приступая к своему первому десктопному приложению на С#, я задался вопросом ведения логов. Изучив предложения по данной теме, за хорошие отзывы и отсутствие платы за использование, мой выбор пал на NLog 2.0. После чтения документации на сайте, а также местных статьей, я легко настроил вывод отладочной информации в текстовый файл. Но пытливый ум на месте не стоит, и так как в моем приложении используется база данных FireBird Embedded, то я решил настроить логгирование в нее. Вот тут я и получил пазл длиной в 5 часов.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии4

Релиз Firebird 2.5: Производительность и Аудит

Время на прочтение2 мин
Количество просмотров13K

4 октября выпущен Firebird 2.5, 5-й релиз реляционной СУБД с открытым кодом. Пресс-релиз (английский) здесь, скачать дистрибутивы и исходные коды можно на www.firebirdsql.org. Доступны 32- и 64-битные версии для Windows и Linux, MacOSX, Solaris и HP-UX появятся позже.

Новые возможности Firebird 2.5

• Новая архитектура SuperClassic. Firebird 2.5 представляет новую архитектуру под названием SuperClassic, которая позволяет получить большую отдачу от многопроцессорных и многоядерных серверов, и работать с еще большим количеством пользователей
• Аудит. Новые функции Services API позволяют вести аудит запросов к серверу практически в реальном времени, и анализировать все запросы, выполняемые над базой данных.
• Запросы между базами данных. Firebird 2.5 позволяет из хранимых процедур, триггеров и блоков кода одной базы данных обращаться к другим базам данных Firebird.
• Расширенное управление пользователями. Управление пользователями теперь доступно через SQL-операторы
• Другие возможности включают в себя автономные транзакции в коде PSQL (хранимых процедурах, триггерах и блоках кода), регулярные выражения в SQL – SIMILAR TO, асинхронное отключение соединений, расширения возможностей мониторинга и многое другое.

Более подробную информацию о всех нововведениях можно прочесть в документе Release Notes Firebird 2.5.

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии76

и Firebird SQL Server

Время на прочтение6 мин
Количество просмотров13K


     О чем это


Являясь автором модуля подключения к Firebird для NodeJS, я долго откладывал публикацию о нем, считая, что модуль еще достаточно сырой. Кроме того, развитие модуля несколько застопорилось, поскольку весь необходимый мне функционал в нем уже присутствует (однако он еще далек от универсальности).
Время от времени только возникает необходимость исправить выявленную ошибку или подправить что-то для обеспечения совместимости с последней стабильной версией NodeJS. Надо сказать, что модуль не является популярным ввиду направленности NodeJS сообщества на NoSQL решения. А Firebird сообщество, видимо, смотрит на NodeJS с осторожностью, да и не такое уж оно и большое. К тому же довольно часто Firebird используется в связке с Delphi на платформе Windows, так что заинтересовать кого-либо из работающих под Windows специфичным Linux решением тоже тяжело. Однако, недавнее значительное продвижение проекта NodeJS в сторону поддержки Windows дало надежду на привлечение внимания таких людей к проекту. Эта публикация будет посвящена тому, как можно работать с Firebird из NodeJS. Будут даны инструкции по установке для Linux и Windows, примеры типовых сценариев работы. Топик, однако, рассчитан на тех, кто хоть немного знаком с Firebird (необходима рабочая копия сервера БД для экспериментов). Для тех, кто не знаком с Firebird, в конце публикации будут даны ссылки на ресурсы для изучения.

Заинтересовавшимся — добро пожаловать под кат.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии18

Русская документация по языку SQL СУБД Firebird 2.5

Время на прочтение1 мин
Количество просмотров24K
Firebird Project рад объявить о доступности русской документации по языку СУБД Firebird — «Руководство по языку SQL СУБД Firebird».

Руководство можно скачать с официального сайта FirebirdSQL.org или с домашней страницы проекта русской документации.

Русская документация СУБД FirebirdSQL появилась благодаря спонсорам — Московской Бирже (платиновый спонсор и один из крупнейших пользователей Firebird) и IBSurgeon/IBase.ru (золотой спонсор).

На этом работа над документацией по Firebird не заканчивается — будут выпускаться исправления и дополнения к документации по Firebird 2.5, в активной работе находятся разделы, посвященные Firebird 3. На будущий год запланирован выпуск «Руководства по эксплуатации СУБД Firebird» (Firebird Operations Guide).
Всего голосов 28: ↑23 и ↓5+18
Комментарии19

Выбор СУБД для мобильного Delphi-приложения

Время на прочтение7 мин
Количество просмотров20K
Данная статья написана по мотивам – мотивам разработки мобильного приложения, недавно вышедшего на платформах iOS и Android. Это событие можно было бы назвать заурядным и мало кому интересным, если бы не одно большое и несколько незначительных «но»: вся разработка (включая сервер) велась на Delphi, а в качестве СУБД, как ни странно, задействована совсем не SQLite. Автор, безусловно, понимает, что на текущий момент уже существуют мобильные Delphi-приложения, включая доступные в официальных магазинах, однако не наблюдает обилия русскоязычных публикаций, призванных, как минимум, предостеречь читателей от ошибок, сделанных разработчиком таких проектов. Написанное же здесь преследует цель помочь тем, кто сейчас выбирает СУБД для своего творения, либо уже остановился на каком-то варианте, но желает убедиться в правильности своего решения.

Прежде чем начать, необходимо дать краткое представление о разработанном приложении – это список покупок, имеющий в своём запасе некоторый уникальный функционал. Если кто-то сам уже пользуется (или пользовался) одним из многочисленных аналогов, то сейчас мог скептически хмыкнуть – мол зачем ещё один, и так есть из чего выбрать, на что можно лишь посоветовать продолжить чтение, чтобы ознакомиться с его принципиальной особенностью.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии21

Неофициальный инсталлятор Firebird 3.0 Release Candidate 1

Время на прочтение1 мин
Количество просмотров7.9K

Несколько дней назад исходные коды первого релиз-кандидата версии Firebird 3.0 были зафиксированы в репозитории Firebird Project. Обычно проходит несколько недель с момента фиксации исходного кода до выпуска официального инсталлятора, поэтому мы в IBase.ru выпускаем неофициальный инсталлятор,
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии13

Ближайшие события

Тестирование БД мобильного Delphi-приложения

Время на прочтение10 мин
Количество просмотров8.9K
В предыдущем материале «Выбор СУБД для мобильного Delphi-приложения», как следует из его названия, был показан первый этап в разработке той подсистемы приложения, что отвечает за хранение и бо́льшую часть обработки его данных; уточнение про «бо́льшую часть» сделано неспроста, т. к. в итоге обозначенный выбор пал на СУБД Interbase именно из-за возможности применять хранимые процедуры (ХП), которые и стали сосредоточением основной логики по работе с данными, оставляя за Делфи-кодом несложную задачу по их вызову.

Для лучшего понимания необходимости тестирования в данном конкретном случае, нужно отметить, что в описанном проекте изначально была задана довольно высокая планка качества, поддержание которой в части функционала, реализованного в процедурах, достиглось, в том числе, за счёт автотестов, проверяющих ключевые ХП (они ответственны за критический для приложения функционал – систему рекомендаций). Именно один из способов организации такого тестирования – на основе DUnitX и XML – и является предметом статьи.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии1

Вышел Firebird 3.0

Время на прочтение1 мин
Количество просмотров52K
Firebird 3

Сегодня вышел Firebird 3.0 — шестой основной релиз СУБД Firebird, и он же — самый значительный по масштабу изменений с момента выхода 1-й версии в 2002 году,.
Архитектура Firebird 3.0 была переработана и теперь полностью поддерживает многопоточность с масштабированием до сотен ядер, эффективно поддерживается большое количество RAM. Согласно результатам нагрузочных тестов OLTP, имитирующим интенсивные вставки и изменения, скорость работы в сценариях с сотнями пользователей у Firebird 3.0 по сравнению с 2.5 возросла в ~5 раз.
Помимо масштабирования и производительности, релиз Firebird 3.0 включает в себя возможности шифрование БД, трафика, и более 100 новшеств в области SQL и безопасности — они подробно описаны в release notes и документации по языку SQL (на русском языке).

Самые важные ссылки по Firebird 3:
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии55

Менеджер записей ELibrary

Время на прочтение2 мин
Количество просмотров9.9K


Наверное у каждого на винчестере скапливается огромное количество всевозможных книжек, записей, заметок и так далее. Конечно же все это в различных форматах fb2, pdf, doc, а может быть, что к одной логической записи относится несколько файлов или серия книг. Как все это хранить?
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии20

Firebird: 10 лет успешного развития

Время на прочтение3 мин
Количество просмотров12K
image
Firebird — универсальная СУБД с открытым кодом.
Этот обзор посвящен 10 летию огненной птицы (которое состоится в июле), а так же скорому выходу финальной версии Firebird 2.5 (скорее всего конец апреля — начало мая).
MindTheBird!
www.MindTheBird.com

за мной, читатель
Всего голосов 27: ↑20 и ↓7+13
Комментарии24

Установка Firebird 3 на современные версии Linux: CentOS8 и Ubuntu 19

Время на прочтение8 мин
Количество просмотров26K
В этой статье мы опишем минимальный набор действий, необходимых для оптимальной установки СУБД Firebird версии 3.0 на новые дистрибутивы Linux. Для примеров выбраны CentOS 8 и Ubuntu 19.

Для «доставки» дистрибутива Firebird на целевую систему, в этом руководстве, выбран вариант загрузки tar.gz архива по ссылке с официального сайта проекта (firebirdsql.org).

Для самых нетерпеливых — сразу в бой:
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии29

Создание web приложения на PHP с иcпользованием Firebird и Laravel

Время на прочтение38 мин
Количество просмотров34K
firebird-logo Привет Хабр!

В прошлой статье я рассказывал о пакете для поддержки СУБД Firebird в фреймворке Laravel. На этот раз мы рассмотрим процесс создания web приложения с использованием СУБД Firebird на языке PHP с использованием Laravel.

Обзор драйверов для работы с Firebird


В PHP есть два драйвера для работы с СУБД Firebird:

Обзор расширения Firebird/Interbase


Расширение Firebird/Interbase появилось раньше и является наиболее проверенным. Для установки расширения Firebird/Interbase в конфигурационном файле php.ini необходимо раскомментировать строку

extension=php_interbase.dll

или для UNIX подобных систем строку

extension=php_interbase.so

Это расширение требует, чтобы у вас была установлена клиентская библиотека fbclient.dll/gds32.dll (для UNIX подобных систем fbclient.so) соответствующей разрядности.

Замечание для пользователей Win32/Win64

Для работы этого расширения системной переменной Windows PATH должны быть доступны DLL-файлы fbclient.dll или gds32.dll. Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll или gds32.dll.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии12

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: ADO.NET Entity Framework 6

Время на прочтение29 мин
Количество просмотров53K
В данной статье будет описан процесс создания приложений для СУБД Firebird с использованием компонентов доступа Entity Framework и среды Visual Studio 2015.

ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL.

Entity Framework предполагает три возможных способа взаимодействия с базой данных:
  • Database first: Entity Framework создаёт набор классов, которые отражают модель конкретной базы данных.
  • Model first: сначала разработчик создаёт модель базы данных, по которой затем Entity Framework создаёт реальную базу данных на сервере.
  • Code first: разработчик создаёт класс модели данных, которые будут храниться в БД, а затем Entity Framework по этой модели генерирует базу данных и её таблицы


В своём приложении мы будем использовать подход Code First, однако вы без труда сможете использовать и другие подходы.

Наше приложение будет работать с базой данных, модель которой представлена на рисунке ниже.



Внимание!

Эта модель является просто примером. Ваша предметная область может быть сложнее, или полностью другой. Модель, используемая в этой статье, максимально упрощена для того, чтобы не загромождать описание работы с компонентами описанием создания и модификации модели данных.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии14