Чтение онлайн

на главную

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Конвертирование из других СУБД: ib-conversions@yahoogroups.com. Это место, где вы получите советы и рекомендации по конвертированию баз данных в Firebird. Общие вопросы не приветствуются - обратитесь к firebird-support. Присоединяйтесь к http://groups.yahoo.com/community/ib-conversions.

Архитектура и проектирование ядра СУБД: firebird-architect@yahoogroups.com. Здесь обычно околачиваются гуру по разработке ядра, обсуждаются вопросы и планы по улучшению ядра Firebird и его интерфейсов. Приглашаются участники и наблюдатели, однако не разрешены никакие вопросы по поддержке. Обсуждения обычно весьма изысканные. Присоединяйтесь на/firebird-architect.

Инструменты: firebird-tooIs@yahoogroups.com. Это форум разработчиков инструментов и плагинов для Firebird. Здесь регулярно появляются объявления, а разработчики инструментов обычно доступны, чтобы направить вас в правильную ветку для получения помощи. Присоединяйтесь на/firebird-tools. Относительно выбора доступных инструментов см. приложение 5.

Общие обсуждения сообщества: firebird-general@yahoogroups.com. Недопустимы никакие вопросы поддержки, а только вещи, тем или иным образом связанные с Firebird. Диапазон тем простирается от логотипов до мягких игрушек, обсуждений распространения, интересных ссылок на онлайновую прессу Firebird.

Документация: firebird-docs@lists.sourceforge.net. Это также не для сторонних наблюдателей - форум для людей, работающих с документацией, или для тех, кто хочет начать работать. Вопросы поддержки также не приветствуются. Если у вас есть желание включиться в этот проект XML, присоединяйтесь на https://lists.sourceforge.net/lists/listinfo/firebird-docs.

Web-сайт: firebird-Website@lists.sourceforge.net. Здесь нет поддержки ваших проектов приложений для Web. Это еще одно место не для сторонних наблюдателей - форум для людей, работающих с Web-сайтом Firebird, или для тех, кто хочет оказать помощь.

Интерфейс группы новостей: все эти списки являются зеркальными для сервера новостей на news://news.atkin.com. Любой может читать трафик списка через этот интерфейс, но вы должны подписаться на список сообщества, чтобы посылать сообщения.

Как стать разработчиком Firebird

У проекта Firebird постоянно открыты двери для хороших программистов C++, кто хочет сделать вклад в проектирование и разработку. Люди становятся участниками не с позволения, а по делам. Первое, что нужно сделать, - получить от SourceForge "метку", а затем присоединиться к спискам firebird-devel и firebird-architect (подробности см. в предыдущем разделе). Найдите существующий или новый проект, который вас интересует, обсудите его и представьте код.

Проект постоянно заинтересован в предложениях серьезных проектировщиков и тестеров.

FirebirdSQL Foundation имеет фонд, из которого могут быть выделены средства, чтобы помочь разработчикам внедрить важную функциональность в Firebird.

Глоссарий

Термин

Определение

fdb или FDB

По соглашению это расширение используется для первичного файла базы данных Firebird. Это не более чем соглашение: Firebird работает с любыми расширениями файлов или вовсе без них

gdb или GDB

По соглашению это расширение файла традиционно используется для баз данных InterBase. Однако файл базы данных Firebird может иметь любое расширение или вовсе не иметь его. Многие разработчики Firebird вместо него используют fdb, чтобы отличить базы данных Firebird от баз данных InterBase или как часть решения проблемы с "обеспечением безопасности", введенным корпорацией Microsoft в ее операционных системах Windows ME и XP, используемых для файлов, имеющих расширение gdb.

Почему "GDB"? Это продукт с именем компании, которая создала первоначальную версию InterBase - Groton Database Systems

ADO

Аббревиатура от Active Data Objects - интерфейс высокого уровня приложение-данные, введенный Microsoft в 1996 году. Более ранние версии могли получать доступ только к реляционным базам данных с фиксированными столбцами и типами данных, однако более поздние версии могут соединяться и с другими моделями СУБД, файловыми системами, файлами данных, сообщениями электронной почты, иерархическими структурами и гетерогенными структурами данных

aggregate (function) агрегат (функция)

Функция, которая возвращает результат, полученный в виде обобщения (агрегирования) значений из набора строк, которые сгруппированы некоторым образом с использованием синтаксиса оператора SQL.

Например, внутренняя функция SUMO оперирует с непустыми числовыми столбцами и возвращает результат в виде суммы значений всех столбцов для строк, выделенных в предложениях WHERE и ORDER BY. Вывод, являющийся объединением предложения WHERE, возвращает одну выходную строку, в то время как объединение в предложении GROUP BY потенциально возвращает множество строк

alerter (events) обработчик событий

Термин, придуманный для названия клиентской подпрограммы или класса, которые способны "прослушивать" заданные в базе данных события (EVENT), сгенерированные в триггере или хранимой процедуре, выполняемых на сервере

ALICE

Внутреннее имя для кода утилиты gfix - искажение слов "all else" (все остальное)

alternative key (alternate key) альтернативный ключ

Термин, используемый для уникального ключа, который не является первичным ключом. Уникальный ключ создается при применении ограничения UNIQUE К столбцу или группе столбцов. Внешний ключ в форме отношения ссылочной целостности может указывать в его предложении REFERENCES на альтернативный ключ

API

Аббревиатура для Application Programming Interface (Интерфейс прикладного программирования). API предоставляет множество формальных структур, через которые приложения могут связываться с функциями другого программного обеспечения. API Firebird предоставляет подобный интерфейс к клиентской библиотеке, скомпилированной специально для каждой поддерживаемой платформы. Структуры в API Firebird являются структурами языка С, они созданы, чтобы быть переносимыми на любой язык программирования. Трансляция может выполняться для Java, Pascal, Perl различных уровней, PHP 4/5, Python и др.

argument аргумент

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

Термины параметр и аргумент часто используются как взаимозаменяемые в отношении хранимых процедур благодаря приспособлению фирмой Borland термина параметр в классах доступа к данным Delphi для именования свойств, которые назначает аргументам хранимая процедура

array slice срез массива

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

atomicity атомарность

В контексте

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

AutoCommit

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

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

backup/restore (Firebird style) копирование/ восстановление

(в стиле Firebird)

Копирование (backup) является внешним процессом, инициированным пользователем- обычно SYSDBA- для помещения базы данных в набор сжатых дисковых структур, включающих метаданные и данные, которые разделяются при хранении. Восстановление (restore) является другим внешним процессом - также инициируемым пользователем, - который полностью реконструирует исходную базу данных из ее сохраняемых элементов. Процесс копирования также может выполнять сборку мусора в базе данных в процессе ее чтения; восстановленная база данных полностью свободна от "мусора". См. также gbak

BDE

Аббревиатура для Borland Database Engine (Движок базы данных Borland). Первоначально создан как ядро базы данных Paradox, он был расширен для того, чтобы обеспечить промежуточный уровень доступа между различными реляционными базами данных и инструментами приложений Borland для платформ Microsoft DOS и Windows. Правила, заданные производителем, применимые к каждой реляционной СУБД, инкапсулированы в наборе драйверов, называемых SQLLinks. Драйверы SQLLinks имеют особенности, изменяемые от версии к версии.

С 2000 года, когда Borland создал код базы данных, на котором был разработан Firebird 1.0, BDE был признан устаревшим в пользу более современных технологий драйверов. Последняя известная версия BDE (5.2) поставляется вместе с Borland Delphi 6 и выше. Драйвер InterBase в этой поставке только частично поддерживает Firebird

binary tree двоичное дерево

Логическая структура дерева, в которой узлы могут содержать максимум две ветви. Индексы Firebird созданы на базе структур b-tree, которые в отличие от двоичных деревьев на уровне ветви могут содержать много элементов

BLOB

Акроним для Binary Large Object (большой двоичный объект). Это элемент данных неограниченного размера в любом формате, который можно переслать в потоке в базу данных байт за байтом и сохранить без каких-либо изменений формы. Firebird допускает BLOB различных типов, классифицированных на основании подтипов. Прародитель Firebird, InterBase был первой реляционной базой данных, поддерживающей BLOB. См. также CLOB

BLOB control structure

управляющая структура BLOB

Структура языка С, объявленная в модуле UDF в виде typedef, с помощью которой UDF BLOB получает доступ к BLOB. UDF BLOB не может ссылаться на фактические данные BLOB, а использует вместо этого указатель на управляющую структуру BLOB

BLOB filter фильтр BLOB

Специализированная UDF, которая преобразует данные BLOB из одного подтипа в другой. Firebird включает множество внутренних фильтров BLOB, которые он использует в процессе сохранения и поиска метаданных. Один из внутренних фильтров конвертирует текстовые данные между подтипом 0 (никакой) и подтипом 1 (текст, иногда называемый "Memo")

BLR

Аббревиатура Binary Language Representation (двоичное представление языка), внутреннего реляционного языка с двоичными нотациями, который является надмножеством "читаемых человеком" языков и может быть использован в Firebird, конкретно в SQL и GDML. Интерфейс DSQL в Firebird для сервера транслирует запросы в BLR. Версии BLR скомпилированных триггеров, хранимых процедур, ограничений CHECK, значений по умолчанию и просмотров хранятся в полях BLOB. Некоторые клиентские инструменты - например, IB_SQL и инструмент командной строки isql - имеют средства просмотра этих кодов BLR. В isql выполните команду SET BLOB ALL, а затем выполните операторы SELECT для получения соответствующих полей из системных таблиц

buffer буфер

Блок памяти для хранения копий страниц, прочитанных из базы данных. Термин "буфер" является синонимом термина "страничный кэш"

BURP

Внутреннее имя для кода gbak - акроним для Backup [and] Restore Program (программа копирования и восстановления)

cache кэш

Когда страница читается с диска, она копируется в блок памяти, который имеет название кэш базы данных или просто кэш. Кэш состоит из блоков памяти, каждый размером в страницу базы данных, определяемый параметром PAGE_SIZE, объявляемым при создании базы данных.

Размер кэша можно настроить, задав количество страниц. Следовательно, для вычисления размера кэша умножьте PAGE?SIZE на количество страниц кэша

cardinality (of a set) мощность (набора)

Количество строк в физическом или заданном наборе. Кардинальность строки указывает ее положение в наборе строк

case-insensitive index индекс, не чувствительный к регистру

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

cascading integrity constraints

каскадные ограничения целостности

Firebird предоставляет возможность задать особые виды поведения и ограничения в ответ на запросы на изменение или удаление строк в таблицах, на которые есть ссылки в предложении REFERENCES ограничения FOREIGN KEY. Ключевое слово CASCADE приводит к тому, что изменения, выполненные для "родительской" строки, будут распространяться на строки в таблицах, имеющих зависимости FOREIGN KEY. Например, ON DELETE CASCADE приведет к удалению всех зависимых строк при удалении родительской строки

casting

преобразование

Механизм для конвертирования выходных значений или значений переменных из одного типа данных в другой в выражениях. SQL Firebird предоставляет функцию CASTO для использования как в выражениях динамического SQL (DSQL), так и процедурного SQL (PSQL)

character set

В основном два надмножества печатаемых образов символов и управляющих последовательностей на сегодняшний день используется в программных окружениях: ASCII и UNICODE. Символы ASCII, представленные в одном байте, имеют 256 вариантов, в то время как символы UNICODE, представляемые 2, 3 и 4 байтами, могут предоставить десятки тысяч возможностей. Поскольку для баз данных требуется исключить непомерно высокие накладные расходы, чтобы сделать доступными все возможные печатаемые и управляющие символы, используемые при программировании в любой точке мира, это надмножество разделено на кодовые страницы, также называемые кодовыми таблицами. Каждая кодовая страница определяет подмножество требуемых символов для конкретного языка или семейства языков, представляя образ каждого символа в виде числа. Эти образы и управляющие последовательности в каждой кодовой странице называются наборами символов. Образ символа может отображаться в различные числа в различных наборах символов. Firebird поддерживает для базы данных набор символов по умолчанию и явное определение набора символов для каждого столбца, имеющего тип данных CHARACTER, VARYING CHARACTER и BLOB SUB_TYPE 1 (текстовый BLOB). Если для базы данных не определен никакой набор символов, ее набор символов по умолчанию будет NONE, в результате чего все символьные данные будут сохраняться точно так, как они представлены без попыток конвертирования символов (выполнения транслитерации) для любого конкретного набора символов

Classic architecture Классическая архитектура

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

CLOB

Акроним для Character Large OBject (большой символьный объект). Этот термин появился из более раннего использования, когда другие СУБД копировали поддерживаемое в Firebird хранение больших объектов в базе данных. CLOB является эквивалентом BLOB SUB_TYPE 1 (TEXT). См. также BLOB

coercing data types приведение типов данных

В структурах XSQLDA API Firebird преобразование элемента данных из одного типа SQL в другой называется приведением типов данных

collation order порядок сортировки

Определяет, как операция сортировки упорядочивает символьные столбцы в выходных наборах, задавая пары символов в нижнем и верхнем регистрах для функции UPPERO, а также как символы в символьных столбцах сравниваются при поиске. Порядок сортировки применим для конкретного набора символов. Если для набора символов доступно множество порядков сортировки, то один из порядков сортировки будет трактоваться как порядок по умолчанию. По соглашению порядок сортировки по умолчанию имеет то же имя, что и набор символов

column столбец

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

commit

подтверждение (транзакции)

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

серверу о подтверждении (commit) работы, чтобы сделать эти изменения постоянными. Если транзакция не подтверждается, для нее должен быть выполнен откат (rollback), чтобы отменить эту работу

CommitRetaining

Установка для транзакции, которая реализует атрибут транзакции COMMIT WITH RETAIN (подтверждение с сохранением контекста). Также называется мягким подтверждением. При этом атрибуте контекст транзакции сохраняется активным на сервере, пока клиентское приложение окончательно не вызовет COMMIT (жесткое подтверждение) и не позволит процессу управления инвентарными страницами транзакций передать старые версии сборке мусора. Широкое использование в приложениях CommitRetaining является общей причиной ухудшения производительности. См. также Oldest Interesting Transaction (OIT)

concurrency параллельность, одновременность, конкурентность

Термин используется для названия ситуации, когда множество пользователей одновременно имеют доступ к одним и тем же данным. Этот термин также широко используется в документации и списках поддержки для ссылок на конкретный набор атрибутов, применимых к транзакции: уровень изоляции, стратегия блокировок и др. Например, кто-то может вас спросить: "Какие у вас установки конкурентности?". Еще более специфическим образом этот термин иногда используется как синоним уровня изоляции SNAPSHOT

constraint ограничение

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

contention конфликт

Когда две транзакции пытаются одновременно изменить в таблице одну и ту же строку, то говорят о конфликте, а транзакции являются конфликтными

correlated subquery

коррелированный подзапрос

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

crash крах

Жаргонный термин для ненормального завершения сервера или клиентского приложения

crash recovery восстановление после краха

Процессы или процедуры, которые реализуют восстановление сервера и/или клиентского приложения после аварийного завершения сервера или клиентского приложения (или обоих) в работоспособное состояние

CVS

Аббревиатура для Concurrent Versions System (система одновременных версий) - программы с открытыми кодами, которая позволяет разработчикам сохранять различные версии исходного кода разработки. CVS широко используется в проектах с открытыми кодами, включая проект Firebird

cyclic links

циклические ссылки

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

database база данных

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

DB_KEY

См. RDB$DB_KEY

DDL

Аббревиатура от Data Definition Language (язык определения данных), подмножества SQL, которое используется для определения и управления структурами объектов данных. Любой оператор SQL, начинающийся с ключевого слова CREATE, ALTER, RECREATE, CREATE OR REPLACE или DROP, является оператором DDL. В Firebird некоторые операторы DDL начинаются с ключевого слова DECLARE, хотя не все операторы DECLARE относятся к DDL

deadlock

взаимная блокировка

Когда две транзакции конкурируют в изменении одной и той же версии строки, про них говорят, что они находятся в состоянии взаимной блокировки, то есть когда одна транзакция (T1), имеющая блок на строку А, запрашивает изменение строки В, которая заблокирована другой транзакцией (T2), и транзакция T2 собирается изменять строку А. Обычно подлинные взаимные блокировки случаются очень редко, поскольку сервер может определить большинство таких блокировок и самостоятельно разрешить их без выдачи исключения блокировки. К сожалению, сервер Firebird объединяет все сообщения о конфликтах блокировки в один код сообщения, которое говорит о "взаимной блокировке", независимо от фактического источника конфликта. Код клиентского приложения должен разрешить конфликт блокировки, выполняя откат одной транзакции, чтобы дать возможность другой транзакции подтвердить ее работу

degree (of a set) степень(набора)

Количество столбцов в табличном наборе. Термин степень столбца (degree of a column) указывает на его положение в последовательности столбцов слева направо, начиная с 1

deployment поставка

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

dialect диалект

Термин, который отличает родной для Firebird язык от старого языка, который был реализован в предшественнике Firebird, InterBase 5. Старая версия языка остается доступной в Firebird с близкой совместимостью со старыми базами данных в виде диалекта 1. Родным для Firebird является диалект 3

DML

Аббревиатура от Data Manipulation Language (язык манипулирования данными), основного подмножества операторов SQL, которые выполняют операции над наборами данных

domain домен

Возможность SQL Firebird, благодаря которой вы можете присваивать конкретному имени множество характеристик данных и ограничений (CREATE DOMAIN), а затем использовать это имя вместо типа данных при определении столбцов таблицы

DPB

Аббревиатура от Database Parameter Buffer (буфер параметров базы данных), символьного массива, определенного в API Firebird. Он используется приложениями для передачи параметров, определяющих характеристики требуемого клиентского соединения вместе с конкретными значениями элементов

DSQL

Аббревиатура от Dynamic SQL (динамический SQL). DSQL определяет операторы, которые приложение передает во время выполнения, с параметрами или без них, в противоположность операторам "статического SQL", которые кодируются непосредственно в специальных блоках кода в программе на языке программирования, а затем обрабатываются препроцессором (например, GPRE) при компиляции приложений со "встраиваемым SQL". Приложения, применяющие вызовы API Firebird в "сыром" виде или через библиотеку классов, которая инкапсулирует API Firebird, также используют DSQL

DTP

Аббревиатура от desktop publishing (настольная публикация), деятельности по использованию средств компьютера для подготовки документов к публикации на принтере или для Web

DUDLEY

Внутреннее имя исходного кода для устаревшей утилиты работы с метаданными gdef. Имя, производное от аббревиатуры DDL

dyn или DYN

Кодированный по байтам язык для описания операторов определения данных. Подсистема DSQL в Firebird выполняет синтаксический анализ операторов DDL и передает их компоненту, который выводит DYN для интерпретации другой подсистемой, которая ответственна за изменение системных таблиц

error ошибка

Условие, при котором запрашиваемая операция SQL не может быть выполнена по причине ошибочности данных, предоставленных в операторе или в процедуре, или из-за ошибки синтаксиса самого оператора. Когда Firebird встречает ошибку, он не продолжает выполнять запрос, и возвращает клиентскому приложению сообщение об исключении. См. также exception

error code код ошибки

Целочисленная константа, возвращаемая клиенту или вызвавшей процедуре, когда Firebird встречает ошибку. См. также error, exception

ESQL

Аббревиатура для Embedded SQL (встроенный SQL), подмножества SQL, предназначенного для статичных операторов SQL, встроенных в специальные блоки в приложениях на каком-либо языке программирования

event событие

Реализованная в Firebird возможность передачи сообщений "слушающим" клиентским приложениям через вызовы POST EVENT в триггерах или хранимых процедурах

exception исключение

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

external function внешняя функция

Firebird имеет несколько (немного) встроенных стандартных функций SQL. С целью расширения количества функций, доступных для использования в выражениях, ядро Firebird может обращаться к пользовательским функциям, написанным на языке программирования, таком как С, C++ или Delphi, как если бы они были встроенными. Несколько готовых свободно распространяемых библиотек внешних функций (также называемых функциями, определенными пользователем, User-Defined Function, UDF) существуют в сообществе Firebird. Две из них включены в дистрибутив Firebird

executable stored procedure

выполняемая хранимая процедура

Хранимая процедура, которая вызывается оператором EXECUTE PROCEDURE и не возвращает многострочного результирующего набора. См. также selectable stored procedure

execute выполнение

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

В DSQL фраза EXECUTE PROCEDURE используется вместе с идентификатором хранимой процедуры и ее входными параметрами для вызова выполняемой хранимой процедуры

FIBPlus

Торговая марка расширенной коммерческой версии компонентов FreelBComponents- компонентов доступа к данным, инкапсулирующим функции API Firebird и InterBase, для использования в продуктах Borland Delphi, C++ Builder и Kylix

foreign key внешний ключ

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

garbage collection сборка мусора

Общий термин для процесса очистки базы данных, который выполняется в базе данных в процессе обычного ее использования при удалении устаревших версий строк, которые были изменены. В Суперсервере сборка мусора выполняется как фоновый поток главного серверного процесса. Сборка мусора может также выполняться при чистке (sweep) и во время создания резервной копии базы данных

gbak

Утилита командной строки (располагающаяся в каталоге /bin вашего каталога инсталляции Firebird), которая выполняет резервное копирование и восстановление базы данных. Она не является программой копирования файла; ее операция копирования выполняет упаковку метаданных и данных и сохраняет их раздельно в сжатом двоичном формате в файловой системе. По соглашению файлы копий часто имеют расширение gbk или fbk. Восстановление выполняет распаковку этого файла и восстанавливает базу данных как новый файл базы данных до помещения в базу данных объектов данных и пересоздания индексов.

Помимо обычных задач обеспечения безопасности базы данных, ожидаемых от утилиты копирования, gbak выполняет важную роль в регулярном поддержании "гигиены базы данных" и в восстановлении разрушенных баз данных

GDML

Аббревиатура для Groton Data Manipulation Language (язык манипулирования данными Groton), реляционного языка, похожего на SQL. GDML был первоначальным языком манипулирования данными для InterBase, функционально эквивалентным языку DML в SQL Firebird, но с некоторыми возможностями определения данных. Он все еще поддерживается в интерактивной утилите запросов qli

gdef

Старая утилита InterBase для создания и манипулирования метаданными. Поскольку isql и интерфейс динамического SQL могут обрабатывать DDL, в gdef теперь нет необходимости. Однако так как она может выводить операторы языка DYN для некоторых языков программирования, таких как С, C++, Pascal, COBOL, ANSI COBOL, Fortran, BASIC, PLI и ADA, она все еще используется в разработке приложений со встраиваемым SQL

generator генератор

Средство генерирования чисел для создания последовательности уникальных чисел. Оператор CREATE GENERATOR имя-генератора создает специальную хранимую 64-битовую переменную. Оператор SET GENERATOR то n устанавливает первое значение этой переменной. Функция GEN_ID (имя-генератора, m) приводит к генерации нового числа, которое на m больше, чем последнее сгенерированное число

gfix

Утилита командной строки, выполняющая ряд действий по ремонту базы данных, активации теневых копий базы данных (shadow), переводу базы данных в режим одного пользователя (исключительный доступ, останов базы данных), а также восстановлению режима базы данных для доступа многих пользователей (рестарт базы данных), gfix также может исправлять зависшие транзакции 2РС, устанавливать размер кэша базы данных, включать или выключать режим синхронной записи на диск, выполнять чистку и устанавливать интервал очистки, переключать базу данных Firebird из режима чтения/записи в режим только чтение и наоборот, а также устанавливать диалект базы данных

gpre

В разработке приложений со встроенным SQL это препроцессор для блоков статического языка SQL в исходном коде языка программирования, который транслирует данный код в формат BLR при подготовке к компиляции. Он может выполнять препроцес- сорную обработку текста на языках С, C++, COBOL, Pascal и ADA на ряде платформ

grant/revoke

предоставление/отмена

Команды SQL GRANT и REVOKE, которые используются для установления и отмены привилегий пользователей для доступа к объектам базы данных

Groton

Сокращение для Groton Data System, имени компании, которая первоначально спроектировала и разработала реляционную СУБД, названную InterBase. В итоге из InterBase появился Firebird. Двое из директоров Groton - Jim Starkey и Ann Harrison - активно участвуют в процессе разработки Firebird

gsec

Утилита командной строки безопасности Firebird для управления базой данных на уровне сервера, содержащей имена пользователей и пароли (security.fdb в версии 1.5, isc4.gdb для версии 1.0 [177] ), которая применяется для всех пользователей всех баз данных. Эта утилита не может быть использована для создания или изменения ролей, поскольку роли определяются в пользовательских базах данных

gstat

Утилита командной строки, с помощью которой можно получить статистику базы данных Firebird. Она анализирует внутренние структуры, такие как коэффициент заполнения, заголовок страницы, индексные страницы, страницы протокола и системные отношения. Можно также получить информацию о версиях записей (обычно очень объемную) от таблицы к таблице. Для этого нужно использовать совместно переключатели -r и -t имя-таблицы

hierarchical database иерархическая база данных

Старая концепция проектирования для реализации в базе данных отношений таблица-таблица путем создания древовидной структуры наследуемых индексов

host language

Общий термин для языка программирования, на котором написано приложение

identity attribute идентичность атрибута

Некоторые реляционные СУБД (например, MS SQL) поддерживают атрибут таблицы, который автоматически реализует для целого столбца искусственный первичный ключ для таблицы. При этом новое значение такого столбца автоматически генерируется для каждой новой добавляемой строки. Firebird напрямую не поддерживает такой атрибут. Похожий механизм может быть получен явным определением целочисленного столбца соответствующего размера, созданием генератора для получения значений этого столбца и определением триггера BEFORE INSERT, который вызывает функцию GEN_ID для получения следующего значения генератора

IBO

Аббревиатура для IB Objects, компонентов доступа к данным и связанными с данными управляющими элементами, инкапсулирующими API Firebird и InterBase для использования в продуктах Borland Delphi, C++ Builder и Kylix

IBX

Аббревиатура для InterBase express, компонентов доступа к данным, инкапсулирующих API InterBase, распространяемых фирмой Borland вместе с продуктами Delphi и C++ Builder

index индекс

Специализированная структура данных, поддерживаемая ядром Firebird, которая предоставляет компактную систему указателей на строки в таблице

INET error ошибка сети

В firebird.log отмечаются ошибки, полученные сетевой подпрограммой Firebird от соединений клиент-сервер, использующих протокол TCP/IP

installation инсталляция

Процедура и процесс копирования программного обеспечения на компьютер и его конфигурирования для использования

InterBase

Реляционная СУБД, которая была предшественником Firebird. Разработанная вначале в компании Gorton Data Systems, она в итоге перешла во владение компании Borland Software Corporation. InterBase 6 был реализован в открытых кодах в 2000 году в рамках InterBase Public License. Firebird был разработан независимыми разработчиками из этих открытых кодов и вскоре стал разветвленной разработкой

InterClient

Устаревший клиент Java типа 2 JDBC для сервера InterBase 6. В Firebird он замещен системой JayBird из семейства драйверов с открытыми кодами, совместимыми с JDBC/JCA (тип 2 и тип 4)

InterServer

Устаревшая оболочка, основанная на сервере управляемом драйвером Java, поставляемая с открытыми кодами InterBase 6. Как InterServer, так и сопутствующий ему InterClient заменены в Firebird на JayBird, более новый интерфейс Java с открытым кодом

ISC, isc и т.д.

Сообщения об ошибках, некоторые переменные окружения и многие идентификаторы в API Firebird имеют префикс "ISC" или "isc". С точки зрения чисто исторического интереса можно сказать, что эти начальные символы являются производными от начальных букв "InterBase Software Corporation", имени дочерней компании Borland, которая существовала в процессе некоторого периода, когда Borland владел предшественником Firebird - InterBase

isolation level уровень изоляции уровень изолированности

Этот атрибут транзакции описывает способ, каким транзакция будет взаимодействовать с другими транзакциями, имеющими доступ к той же самой базе данных, в терминах видимости и поведения при блокировке. Firebird поддерживает три уровня изоляции: READ COMMITTED (подтвержденное чтение), REPEATABLE READ (повторяемое чтение, также называемое SNAPSHOT, мгновенный снимок, или CONCURRENCY, параллельность) и SNAPSHOT TABLE STABILITY (согласованность). Хотя READ COMMITTED является значением по умолчанию для большинства реляционных систем, значением по умолчанию для Firebird является SNAPSHOT (уровень изолированности READ COMMITTED был реализован в InterBase много позже SNAPSHOT). см. также transaction isolation

isql

Название для интерактивной утилиты запросов командной строки Firebirds, которая единовременно может соединяться только с одной базой данных. Она имеет мощный набор команд, включающих свое собственное подмножество команд SQL Firebird в дополнение к обычному набору команд динамического SQL. Она содержит обширный набор включенных макросов для получения информации о метаданных, isql может выводить наборы команд, в том числе включенные комментарии в файл, и может также "запускать" наборы команд в. виде скриптов- рекомендуемый способ создания и изменения объектов базы данных

JDBC

Аббревиатура для Java DataBase Connectivity, набора стандартов для создания драйверов для соединения приложений Java с базами данных SQL

join

соединений

JOIN является ключевым словом для указания серверу, что результат оператора SELECT включает объединение столбцов из нескольких таблиц, связанных соответствием одной или более пар ключей

jrd

Внутреннее имя для ядра базы данных Firebird. Оно является аббревиатурой для Jim's Relational Database (реляционная база данных Джима), продуктом основного ядра, введенным Джимом Старки (Jim Starkey), который стал ядром InterBase и, позже, Firebird

key ключ

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

kill (shadows) уничтожение теневой копии

Когда теневая копия (shadow) базы данных создается с использованием ключевого слова MANUAL и оперативная копия становится недоступной, дальнейшие соединения с базой данных блокируются. Для восстановления возможностей соединений с базой данных необходимо выполнить команду gfix -kill база-данных для удаления ссылок на теневую копию

leaf bucket сегменты листьев

В индексном дереве b-tree элемент данных в последнем индексе узла дерева. Число сегментов листьев, полученное в статистике индекса утилитой gstat, дает приблизительное количество строк таблицы

limbo (transaction) зависшая транзакция

Зависшая транзакция

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

locking conflict конфликт блокировок

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

lock resolution разрешение блокировки

Общий термин, означающий меры, принятые кодом приложения для разрешения условий, когда другие транзакции пытаются изменить строку, которая была заблокирована транзакцией, пославшей запрос на изменение. В качестве специфического термина разрешение блокировки означает установку в транзакции параметра WAIT/NOWAIT, который определяет реакцию транзакции на возникший конфликт блокировки

metadata метаданные

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

multi-generational architecture (MGA)

многоверсионная архитектура

Термин, применяемый в отношении ядра Firebird, использующего оптимистическое блокирование записей и высокий уровень изолированности транзакций, позволяющий транзакциям видеть свои и чужие изменения без блокировок чтения. Достигается путем |хранения ядром множества версий одной записи и определения "возраста" этих версий по отношению к конкретной транзакции. | См. также versioning architecture

natural (scan)

естественное сканирование

Указывает, что соответствующая таблица будет просматриваться в "естественном порядке" (то есть вне определенного порядка и без использования какого-либо индекса). Иногда это видно в планах запросов, созданных оптимизатором

next transaction следующая транзакция

Номер, который будет выдан ядром Firebird очередной транзакции. Может быть просмотрен в статистике, извлекаемой утилитой gstat с ключом -header

non-standard SQL нестандартный SQL

Термин, который часто можно услышать при ссылках на реляционные СУБД, имеющие низкий уровень соответствия языку ISO и стандарту синтаксиса SQL. См. также standard SQL

non-unique key неуникальный ключ

Столбец или группа столбцов, которые могут служить указателем на группу строк в наборе. Ограничение внешнего ключа, используемое для реализации отношения один-ко-многим, создается для соответствия неуникального столбца или группы столбцов в "дочернем" или "детальном" наборе уникальному ключу в "родительском" или "главном" наборе

normalization нормализация

Общая техника, используемая при анализе данных до начала проектирования базы данных с целью устранения повторяющихся групп во множестве таблиц и уменьшения дублирования одних и тех же "фактов" в связанных таблицах

null

пустое значение

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

NOLL не эквивалентен нулю, пробелу или пустой строке (строке с i нулевой длиной); он не представляет бесконечности. Он представляет состояние элемента данных, которому либо не было присвоено значение, либо было присвоено NOLL

ODBC

Аббревиатура для Open DataBase Connectivity (открытый интерфейс доступа к базам данных). Это стандарт интерфейса на уровне вызовов, который позволяет приложениям получить доступ к данным в любой базе данных, для которой есть драйвер, поддерживающий этот стандарт. Существует ряд драйверов ODBC, поддерживающих Firebird, включая драйвер с открытыми исходными текстами, внутренне соответствующий стандарту JDBC

ODS

Аббревиатура для Оп-Disk Structure (структура на диске). Это число, которое указывает на версию внутренней структуры и формата базы данных Firebird или InterBase. Для InterBase 4.0 это 1 было 8, для InterBase 4.2 было 8.2, а для InterBase 5- 9. Firebird 1 имел ODS 10, а 1.5 - 10.1.

Базу данных можно перевести в более высокий уровень ODS, выполнив ее копирование gbak -b[ackup] -t[ransportable] с использованием старой версии программы gbak и восстановив из этого файла копии с использованием новой версии gbak

OLAP

Аббревиатура для OnLine Analytical Processing (онлайновая аналитическая обработка данных) технологии, которая применима к базам данных, вырастающим до таких размеров, что к ним непрактично обращаться напрямую в качестве основы деловых решений. Обычно системы OLAP разрабатываются для анализа и графического представления, идентификации и фиксирования исторических этапов или аномалий, создания проекций и гипотетических сценариев, сжатия больших объемов данных для отчетов и т.д.

OS

Аббревиатура для Operating System (операционная система)

Oldest Active Transaction (OAT)

старейшая активная транзакция

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

Oldest Interesting Transaction (OIT) старейшая заинтересованная транзакция [178]

Статистика, поддерживаемая сервером Firebird, глобальная для базы данных. Идентификатор старейшей транзакции, которая была завершена по rollback. Когда номер OIT "застревает" при продвижении всех остальных номеров транзакций вперед, сборка мусора (чистка от старых версий записей) не может продолжаться, и операции с базой данных сильно замедляются, а в итоге полностью зависают [179] . Номер OIT может быть просмотрен при использовании переключателя -header утилиты командной строки gstat

OLE DB

Аббревиатура от Object Linking and Embedding for DataBases (встраивание и связывание объектов для баз данных). OLE является стандартом Microsoft, разработанным и продвигаемым для включения двоичных объектов множества различных типов (изображения, документы и т.д.) в приложения Windows вместе со связями на уровне приложений с программными объектами, которые их создают и изменяют. Средство OLE DB было введено в качестве попытки предоставить разработчикам средства для обеспечения более специфичной для конкретного поставщика поддержки соединений с базами данных- в первую очередь для реляционных баз данных, - с которыми можно работать с помощью ODBC. Позже Microsoft создал технологию ADO над OLE DB

OLTP

Аббревиатура для OnLine Transaction Processing (онлайновая обработка транзакций), рассматриваемая как одно из основных требований к ядру базы данных. Вообще говоря, OLTP больше относится к поддержке клиентов, выполняющих чтение, изменение или создание данных в реальном режиме времени

optimization оптимизация

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

page страница

База данных Firebird состоит из блоков дискового пространства фиксированной длины, называемых страницами. Firebird выделяет страницы по мере необходимости. Поскольку страница хранит данные, она может быть страницей одного из десяти типов страниц, все одинакового размера - размера, определенного в атрибуте PAGE_SIZE В процессе создания базы данных. Тип страницы, сохраняемой на диске, зависит от типа объекта данных, сохраняемого на странице: данные, индекс, BLOB и т.д.

page_size

Размер каждого фиксированного блока определяется в атрибуте PAGE_SIZE, задаваемом для базы данных при создании или восстановлении базы данных. Участки памяти для кэша базы данных также выделяются в единицах PAGE SIZE

parameter параметр

Широко распространенный термин во множестве контекстов Firebird. Он может именовать значения, передаваемые в качестве аргументов хранимой процедуре и получаемые из хранимой процедуры (входные и выходные параметры). Термин также может означать элементы данных, которые передаются в блоках функций API Firebird (блок параметров базы данных, блок параметров транзакции, блок параметров сервиса), или атрибуты, видимые в приложении при соединении с базой данных (параметры соединения) или атрибуты транзакции (параметры транзакции). В клиентских приложениях синтаксические элементы, которые передаются предложениям WHERE операторов SQL для подстановки значений во время выполнения, часто реализованы в виде "параметров". Отсюда термин "параметризованные запросы"

PHP

Аббревиатура для PHP: Hypertext Preprocessor (гипертекстовый препроцессор). Это язык скриптов встроенного HTML с открытыми исходными кодами, применяемый для создания приложений Web, особенно тех, которые используют базы данных. Он имеет хорошую поддержку множества сетевых протоколов и окружений программирования для Web. Его сильная сторона - совместимость со многими типами баз данных. PHP также может общаться по сетям, использующим IMAP, SNMP, NNTP, POP3 или HTTP. Изобретателем PHP был Расмус Ледорф (Rasmus Lerdorf) в 1994 году. С 1997 года PHP находится в руках большого сообщества открытых исходных текстов

plan план

См. query plan

platform платформа

Термин, неточно используемый для названия комбинации аппаратных средств и программного обеспечения операционных систем или только одного программного обеспечения операционной системы, например, "платформа Windows 2000", "платформа Linux", "платформы UNIX". Кроссплатформенность обычно означает "применимое на множестве платформ" или "переносимое на другие платформы"

prepare подготовка

Функция API, которая вызывается перед первой отправкой запроса. Она запрашивает у сервера проверку оператора, создание плана запроса и некоторых информационных элементов относительно ожидаемых данных

primary key первичный ключ

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

PSQL

Аббревиатура для Procedural SQL (процедурный SQL), подмножества расширенного SQL, созданного для написания хранимых процедур и триггеров. Существует небольшая разница между подмножествами PSQL, используемыми для хранимых процедур и для триггеров

qli

Это Query Language Interpreter (интерпретатор языка запросов), интерактивный клиентский инструмент запросов для Firebird. Он может обрабатывать операторы DDL и DML из SQL и GDML (языка, используемого в предшественнике Firebird - InterBase 3). Хотя уже есть isql и другие инструменты графического интерфейса сторонних разработчиков, qli все еще имеет значение по причине его способности осуществлять некоторые операции, до сих пор не реализованные в SQL Firebird. В отличие от isql, qli может одновременно соединяться более чем с одной базой данных и может симулировать обращение к нескольким базам данных в одном запросе

query запрос

Общий термин для любого обращения SQL к базе данных, поступающего от клиентского приложения к серверу

query plan план запроса

Стратегия использования индексов и методов доступа для сортировки и поиска при выполнении запросов. Оптимизатор Firebird всегда создает план для каждого запроса SELECT, включая и подзапросы. Можно задать пользовательский план с использованием синтаксиса предложения PLAN

RDB$-

Префикс, который мы видим в идентификаторах многих созданных системой объектов Firebird. Это след от Relational DataBase, имени более ранней реляционной базы данных, разработанной в DEC. Созданная система RDB была предшественницей InterBase, прообраза Firebird. Наследником RDB также является СУБД Oracle

RDB$DB_KEY

Скрытый, непостоянный, уникальный ключ, который вычисляется в ядре Firebird для каждой строки таблицы из физического адреса страницы, на которую помещается строка, и ее смещения от начала страницы. Он напрямую связан с кардинальностью таблиц и наборов и может изменяться без предупреждений. Он всегда будет меняться при восстановлении базы данных из резервной копии. RDB$DB_KEY никогда не должен трактоваться как постоянный. С аккуратностью он может быть использован в пределах одной атомарной операции для значительного ускорения некоторых операций в DSQL и PSQL

RDBMS реляционная СУБД, РСУБД

Аббревиатура для Relational DataBase Management System (реляционная система управления базами данных). Это общая концепция хранения данных в соответствии с абстрактной моделью, которая использует соответствие ключей для связи одних формально сгруппированных данных с другими сгруппированными данными, представляя, таким образом, отношение между двумя группами

Read Committed подтвержденное чтение

Наименее ограничивающий уровень изоляции для транзакций Firebird. Read Committed позволяет транзакции перечитывать данные и видеть подтвержденную работу других транзакций после начала выполнения данной транзакции. Уровни изоляции

SNAPSHOT и SNAPSHOT TABLE STABILITY не позволяют видеть чужие подтвержденные изменения

redundancy избыточность

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

redundant indexes избыточные индексы

Избыточные индексы часто появляются, когда существующая база данных импортируется в Firebird из других реляционных СУБД. Когда ограничение PRIMARY KEY, UNIQUE или FOREIGN KEY применяется к столбцу или столбцам, Firebird автоматически создает индекс для поддержания этого ограничения. Сделав это, Firebird игнорирует все существующие индексы, дублирующие автоматические индексы. Наличие дубликатов индексов для ключей или других столбцов может нарушить работу оптимизатора запросов, приводя к созданию очень медленных планов

referential integrity ссылочная целостность

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

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

relation отношение

В теории реляционных баз данных это замкнутый набор данных, формально распределенный по столбцам и строкам. Этот термин также взаимозаменяем с термином "таблица" за исключением того, что отношение не может иметь дублированных строк, когда таблица это может. Существующая терминология в Firebird эти имена относит к системным таблицам (например, к таблице RDB$RELATIONS, которая содержит записи для каждой таблицы базы данных)

relationship отношение

Абстрактный термин, указывающий на то, как отношения (или таблицы) связаны с другими через соответствующие ключи. Например, таблица Order Detail (детальная запись заказа) будет находиться в отношении зависимости или в отношении внешнего ключа с таблицей Order Header (заголовок заказа)

replication репликация

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

result table результирующая таблица

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

roles роли

Стандартный механизм SQL для определения набора полномочий по использованию объектов базы данных. Когда создана роль, назначение ей полномочий осуществляется операторами GRANT, как если бы она была обычным пользователем. Затем роль можно назначать (GRANT) индивидуальным пользователям, как если бы она была привилегией. Таким путем упрощается поддержка полномочий пользователей к базе данных

rollback откат (транзакции)

Действие или процесс по отмене всей работы, которая была выполнена во время транзакции. Пока у транзакции есть работа, ожидающая завершения, отправленная на сервер, но не подтвержденная, она остается незавершенной и ее результаты не видны другим транзакциям. Если клиентское приложение вызывает ROLLBACK, вся отправленная работа отменяется, а изменения теряются. Если же транзакция подтверждается, то ее работа не может быть отменена

schema схема

Формальное описание базы данных, обычно помещенное в скрипт или скрипты, содержащие операторы SQL, определяющие каждый объект базы данных. Термин "схема" часто заменяется термином "метаданные"

schema cache кэш схемы

Механизм, при котором некоторые описательные элементы базы данных сохраняются на локальном клиентском диске или в оперативной памяти для быстрого обращения во время выполнения с целью устранения необходимости постоянно обращаться к базе данных для получения атрибутов схемы (метаданных)

scrollable cursor прокручиваемый курсор

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

selectivity of an index

*

селективность индекса, избирательность индекса

Как общий термин означает диапазон возможных значений для столбца индекса во всей таблице. Чем меньше возможных значений, тем ниже селективность. Низкая селективность также может появиться, когда индекс с большим количеством возможных значений представлен фактическими данными с очень большим количеством дубликатов небольшого количества значений. Низкая селективность - это плохо, высокая - хорошо. Уникальный индекс имеет максимально возможную селективность [180]

selectable stored procedure хранимая процедура выбора

Хранимая процедура, написанная с использованием специального синтаксиса PSQL для вывода многострочного результирующего набора вызвавшему объекту. Она вызывается с использованием оператора SELECT. см. также executable stored procedure

Services API сервисы API

API для обращения к функциям некоторых серверных утилит Firebird, таким как резервное копирование, статистика, sweep и др. Сервисы API могут быть неприменимыми к некоторым версиям Классического сервера

sets наборы

В терминах реляционной базы данных набор это множество данных, содержащее одну или более строк, состоящих из одного или более столбцов данных, где каждый столбец состоит из одного элемента данных заданного размера и типа. Например, спецификация запроса SELECT или просмотр определяют выходной набор для клиентского приложения или модуля PSQL, в то время как спецификация запроса UPDATE определяет набор, с которым выполняется заданная операция

shadowing/shadows теневое копирование / теневые копии

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

SMP

Аббревиатура для Symmetric Multiprocessing (симметричный мультипроцессор), архитектуры компьютера, которая делает множество процессоров доступными для выполнения одновременных индивидуальных процессов одной операционной системой. По теории любой незанятый процессор может быть назначен любой задаче, и чем больше процессоров в системе, тем выше производительность и пропускная способность

Snapshot "мгновенный снимок"

SNAPSHOT является одним из трех уровней изоляции транзакций, поддерживаемых Firebird. Он обеспечивает стабильный вид базы данных, который остается постоянным для пользователя транзакции на время жизни этой транзакции. Он также называется конкурентным уровнем изоляции. См. также Read Committed, Snapshot Table Stability

Snapshot Table Stability

SNAPSHOT TABLE STABILXTY является самым защищенным из трех уровней изоляции транзакций в Firebird. Он поддерживает согласованный вид базы данных для пользователя транзакции, не позволяя другим транзакциям изменять любую считанную им строку, даже если транзакция еще не посылала никаких изменений. Он еще называется согласованным уровнем изоляции. См. также Read Committed, Snapshot

SQL

Язык запросов, разработанный для извлечения осмысленных наборов данных из реляционной базы данных. Его правильное произношение "эс-кью-эль", а не "сиквел", как думают некоторые люди ("сиквел" было именем другого языка запросов). К тому же это не является аббревиатурой от Structured Query Language [181] [182]

standard SQL, SQL standard стандарт SQL

Означает синтаксис и реализацию элементов языка SQL, который опубликован ISO (International Organization for Standardization, Международная организация по стандартизации). Это очень сложные описания стандарта вместе с всеобъемлющим синтаксисом и функциональностью на множестве уровней

stored procedure хранимая процедура

Компилированный модуль, хранимый в базе данных для вызова приложениями или другими модулями, хранимыми на сервере (триггерами, другими хранимыми процедурами). Она определяется в базе данных на исходном языке- процедурном SQL, или PSQL - и состоит из обычных операторов SQL, а также из специальных, расширений языка SQL, которые поддерживают структуры, циклы, условную логику, локальные переменные, входные и выходные аргументы, обработку исключений и др.

subquery подзапрос

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

sub-select, subselect подвыбор

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

Superserver architecture архитектура Суперсервера

Суперсервер является именем многопользовательской модели с потоками (threads) в отличие от начальной модели InterBase, которая использует отдельный серверный процесс для каждого клиентского соединения. Первоначальная модель сейчас называется Классическим сервером

surrogate key искусственный (суррогатный) ключ

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

sweeping чистка

Процесс, который собирает и освобождает устаревшие версии каждой записи в базе данных, когда достигнут заданный порог. Это число, которое имеет значение по умолчанию 20 000 и называется интервалом чистки, вычисляется как разность между OIT и OST. Автоматическая чистка может быть отменена установкой интервала чистки в ноль. Ручная чистка может быть вызвана специально с помощью утилиты gfix. Чистка не используется в реляционных СУБД, которые не сохраняют устаревшие версии записей

SYSDBA

Аббревиатура для system database administrator (системный администратор базы данных), человека, ответственного за администрирование баз данных

system tables системные таблицы

Поскольку ядро сервера базы данных является самодостаточным, все метаданные или схемы (данные, которые описывают структуру и атрибуты объектов базы данных) поддерживаются в базе данных в виде набора таблиц, которые создаются командой CREATE DATABASE. Такие таблицы, которые хранят "данные о данных", называются системными таблицами. Все системные таблицы Firebird имеют идентификаторы, которые начинаются с префикса RDB$И содержат данные о себе, так же как и данные о каждом другом объекте в базе данных

table таблица

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

transaction транзакция

Логическая единица работы, которая может включать один или более операторов. Транзакция начинается, когда ее запускает клиентское приложение, и завершается, когда приложение выполняет ее подтверждение или откат. Транзакция является атомарным действием - подтверждение должно быть способным подтвердить каждую часть работы, иначе вся ее работа будет ликвидирована. Откат, аналогично, отменит все части работы, которая была отправлена на сервер с момента старта транзакции

transaction isolation изоляция транзакции, уровень изолированности транзакции

Механизм, при котором каждая транзакция поддерживается окружением так, что она воспринимает себя, как если бы она выполнялась одна в базе данных. Когда одновременно выполняется множество транзакций, то действия всех других транзакций не видны каждой транзакции, если на момент ее старта эти действия не были подтверждены. Firebird поддерживает не один, а три уровня изоляции, включая один уровень, который может видеть результаты работы других транзакций, когда они подтверждаются. См. Read Committed, Snapshot, Snapshot Table Stability

transitively dependent транзитивно зависимый

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

trigger триггер

Скомпилированный модуль, принадлежащий таблице, который выполняет действие, когда происходит событие DML для строки этой таблицы. На событие до и/или после операций добавления, изменения или удаления строки таблицы можно создать любое количество триггеров, используя все возможности процедурного SQL (PSQL)

tuple кортеж

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

UDF

Аббревиатура для User Defined Function (функция, определенная пользователем). Более корректно - внешняя функция. См. также external function

unbalanced index несбалансированный индекс

Индексы Firebird поддерживаются в виде структур двоичных деревьев. Про такие структуры говорят, что они разбалансированы [183] , когда новые узлы все время добавляются таким образом, что это приводит к значительному ветвлению одной "стороны" двоичного дерева. Обычно такое происходит, когда процесс добавляет сотни тысяч новых строк в одной транзакции. По этой причине рекомендуется деактивировать индексы в процессе объемных добавлений. Последующая активация пересоздаст полностью сбалансированные индексы

uninstallation деинсталляция

Уродливое обратное словообразование, путающее говорящих не на английском языке, в то время как оно до сих пор не существует ни в одном уважающем себя словаре! Оно приблизительно означает "процесс, обратный инсталляции" (то есть удаление ранее установленного программного продукта из компьютерной системы)

union объединение

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

updatable view изменяемый просмотр

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

validation проверка

Механизм, с помощью которого новые данные, помещаемые в столбец таблицы, проверяются некоторым образом для определения, соответствуют ли они требуемому формату, значению или диапазону значений. Двумя способами реализации проверок в базе данных являются ограничения CHECK и триггеры. Ограничение CHECK будет вызывать исключение, если входные данные не пройдут проверку в существующем выражении или ограничении. В триггерах значение NEW.VALUE может быть протестировано более детально, и если оно ошибочно, то можно выдать пользовательское исключение

versioning architecture версионная архитектура

То же, что и Multi-Generational Architecture (MGA, многоверсионная архитектура). Механизм, создающий новую версию строки при ее изменении или удалении. До COMMIT такая версия не видна другим транзакциям, кроме той, в которой было произведено это изменение или удаление. После COMMIT новая версия записи становится постоянной, а старая становится или устаревшей или все еще актуальной для конкурирующих транзакций (в зависимости от их уровня изолированности). Это позволяет целиком исключить ненужные блокировки чтения, а блокировки модификации возникают только тогда, когда конкурирующие транзакции пытаются обновить одну и ту же запись

view просмотр, представление

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

WNET error ошибка WNET

В протоколе firebird.log отмечает ошибку, полученную сетевой подсистемой Firebird от протокола именованных каналов Windows (Windows Named Pipes) соединения клиент-сервер

XSQLDA

Аббревиатура для extended SQL Descriptor Area (расширенная область дескрипторов SQL). Это структура API, которая используется для передачи данных между клиентским приложением и серверным модулем синтаксического анализа динамического SQL. XSQLDA существуют в двух видах: входные дескрипторы и выходные дескрипторы

XSQLVAR

Структура для определения sqlvar, важного поля в структуре XSQLDA, которая используется для передачи и получения входных и выходных параметров

Y valve затворка Y

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

177

И для InterBase.
– Прим. перев.

178

Не упомянут термин Oldest Snapshot Transaction (OST) - номер транзакции, которая была старейшей активной при старте самой старой активной на текущий момент транзакции SNAPSHOT. Именно этот номер препятствует сборке мусора. Расстояние между OIT и OST используется в Firebird 1.0 и 1.5 для определения момента старта автоматической чистки мусора (sweep).
– Прим. науч. ред.

179

Это не так. Существует много систем, в которых номер OIT отстает от Next на несколько миллионов, при этом база данных работает нормально. "Застревание" OIT является индикацией того, что где-то в базе данных есть версии записей, отмененные по rollback, которые должны быть убраны как мусор принудительным запуском sweep.
– Прим. науч. ред.

180

Сервер оценивает селективность как число, обратное разнице общего числа ключей и числа повторяющихся значений ключей индекса (от 0 до 1). Поэтому чем меньше значение селективности (столбец rdb$indices.rdb$statistics), тем лучше. Под "низкой" селективностью здесь имеется в виду селективность, стремящаяся к 1. Под "высокой" - стремящаяся к 0.
– Прим. науч. ред.

181

Тем не менее большинство американских программистов говорят "сиквел".
– Прим. перев.

182

Согласно Оксфордскому словарю английского языка аббревиатура SQL расшифровывается именно как Structured Query Language - структурированный язык запросов в отношении к базам данных. Прим. науч. ред.

183

Совершенно не относится к InterBase и Firebird, так как индексы в них построены на базе структур b-tree, a b-tree это не "binary tree". В то время как слова Хелен правильны в отношении binary tree, структуры b-tree по определению не могут быть "разбалансированы", т. к. количество узлов от корня до листа одинаково для всех ключей индекса и равно глубине индекса. Поэтому рекомендации по поводу "разбалансированности" индексов можно игнорировать.
– Прим. науч. ред.

Поделиться:
Популярные книги

Вечная Война. Книга VII

Винокуров Юрий
7. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
5.75
рейтинг книги
Вечная Война. Книга VII

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Тринадцатый IV

NikL
4. Видящий смерть
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Тринадцатый IV

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6

Real-Rpg. Еретик

Жгулёв Пётр Николаевич
2. Real-Rpg
Фантастика:
фэнтези
8.19
рейтинг книги
Real-Rpg. Еретик

Средневековая история. Тетралогия

Гончарова Галина Дмитриевна
Средневековая история
Фантастика:
фэнтези
попаданцы
9.16
рейтинг книги
Средневековая история. Тетралогия

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Провинциал. Книга 5

Лопарев Игорь Викторович
5. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 5

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Убивать чтобы жить 4

Бор Жорж
4. УЧЖ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 4

Неудержимый. Книга XVII

Боярский Андрей
17. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVII