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

на главную

Жанры

Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil

Востриков С М

Шрифт:

RDB$DB_KEY. Обычно упоминается как DB_KEY, это одна из недокументированных возможностей InterBase, которая может быть использована в динамическом SQL (см. DSQL) и в хранимых процедурах.

Referential integrity (ссылочная целостность). В теории баз данных это кон- цешция, которая по-простому может быть объяснена следующим образом: если А зависит от Б и производится попытка удалить или изменить Б таким образом, что какой-либо из изменяемых атрибутов нарушит зависимость А от Б, то в этом случае изменяемое действие должно быть либо отклонено, либо А должно быть изменено таким образом, чтобы синхронизироваться с изменениями в Б (т е чтобы зависимость не нарушилась); или если Б удаляется, то А также должно быть удалено или изменено

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

Relational database (реляционная СУБД). Тип СУБД, который реализован с таких продуктах, как like InterBase, Oracle и Sybase. Основываясь на сильной теоретической базе, разработанной Коддом (Е. F. Codd) и К. Дэйтом (Chris Date), реляционная модель баз данных следует совокупности концепций в математике, в которой взаимосвязи представлены атрибутами "связей". Строго говоря, схема базы данных (структура ее объектов) должна проходить "нормализацию", в течение которой база данных приводится к "нормальным формам", именующимся "первой", "второй", "третьей", "Бойса - Кодда" (Boyce-Codd) и "пятой". На практике база данных, приведенная к 3-й нормальной форме, считается нормализованной. Одной из тем, связанных с нормализацией (которая до сих пор вызывает дискуссии), является представление и использование неопределенных значений (см. Null value).

Special system tables (специальные системные таблицы). Это две системные таблицы (см. System tables), которые находятся вне контекста транзакций. В отличие от остальных пользовательских и системных таблиц изменения в этих таблицах видны любой пользовательской транзакции без необходимости сделать подтверждение (commit) или откат (rollback). Это таблицы rdb$formats и rdb$pages. Вы можете прочитать в InterBase 6 Language Reference, что содержат данные таблицы. Компиляторы и серверы баз данных - это наиболее типичные случаи кода, которые зависят от своих собственных метаданных, используемых при описании данных и других метаданных, однако этот замкнутый круг должен быть где-то разорван, чтобы не попасть в ловушку "что было раньше: курица или яйцо".

SQL. Стандартный язык для управления реляционными СУБД. SQL - это сокращение для Structured Query Language. SQL является декларативным языком, потому что, будучи преобразованным в процедурные языки типа С или Pascal, SQL определяет вещи, которые должны быть выполнены сервером базы данных в терминах ожидаемых результатов, но не то, КАК они должны быть выполнены. Однако в SQL были добавлены функции для контроля над некоторыми особенностями сервера с помощью явного использования планов. Можно проследить причины добавления этих функций в работах компании ГВМ в 60-х годах.

[Available in] ESQL, DSQL, PSQL and isql ([доступно в] ESQL, DSQL, PSQL and isq ). Если вы читаете руководства по InterBase, то можете увидеть фразы "доступно в SQL, DSQL и isql", когда объясняются какие-либо команды. В данном случае SQL означает Embedded SQL (ESQL), т. е. команды InterBase, которые можно писать внутри базового языка (С в данном случае), затем пропускать эти программы через препроцессор (GPRE), чтобы сгенерировать исходный код на С, который будет использоваться в вашем приложении. Это статические SQL- команды. DSQL означает динамический SQL (DSQL), т. е. команды SQL, которые можно создавать и отправлять InterBase во время выполнения программы. Такие команды не надо предварительно компилировать перед тем, как запустить приложение. И наконец, isql означает Interactive SQL и служит для обозначения инструментов, с помощью которых можно работать с InterBase, набирая команды и просматривая результаты их

выполнения. Есть только один "родной" isql инструмент - инструмент командной строки isql.

SQL Links (связи с SQL). BDE может быть расширена дополнительными IDAPI SQL-драйверами, которые обеспечивают прозрачную возможность соединения с широко используемыми SQL-серверами без применения ODBC. Например, существуют SQL-драйвера для серверов InterBase, Oracle, Sybase, MS SQL и Informix. Эти драйверы называются SQL Links, потому что они связывают BDE с удаленными серверами базы данных.

Surrogate key (суррогатный ключ). Когда ни одно поле или комбинация полей в таблице не могут быть уникальными для каждой записи, то в качестве первичного ключа нужно использовать "искусственный" ключ (см. Key}. Обычно это или случайное сгенерированное значение (наподобие GUID), или постоянно возрастающее значение. Суррогатные ключи используются теми разработчиками, которые полагают, что первичные ключи (см. Primary key) должны основываться на генерируемых полях и не должны быть частью естественных атрибутов данных в моделируемой предметной области.

Sweeping. В InterBase это процесс, который собирает и освобождает старые и ненужные версии записей в базе данных. Этот процесс запускается при достижении порогового значения (известного как Sweeping Interval) и является следствием \nioi оиериюнной ар\шек1\ры InieiBase-сервера В других коммерческих СУБД uiKoio процесса не!. Процесс Sweeping может быть явно вызван с помощью у шли! администрирования InterBase. Sweeping - это сборка "мусора", выполняемая для каждой таблицы в базе данных.

System tables (системные таблицы). Реляционные СУБД самодостаточны. Это означает, что данные о структуре пользовательских таблиц также хранятся в таблицах. Эти таблицы, которые хранят данные о данных (метаданные или схему данных), создаются автоматически и называются системными таблицами. Они содержат информацию в том числе и о самих себе, что похоже на попытку выяснить, что был раньше - курица или яйцо. По соглашению названия системных.таблиц и их полей начинаются с префикса RDBS. Однако что действительно отличает системные объекты от остальных, так это особый флаг, распознаваемый InterBase'oM. который хранится в специальном поле в системных таблицах, - в этих таблицах хранится информация о различных объектах базы данных (таблицах, процедурах, генераторах и т. д.).

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

Transaction log (лог транзакций). Обычная реляционная СУБД (и некоторые объектно-ориентированные СУБД) использует отдельный файл, в котором хранится история транзакций. Когда происходит какая-либо поломка, сервер при запуске читает этот файл и определяет, какие изменения в базе данных нужно подтвердить, а какие отменить. InterBase не пользуется такими приспособлениями, потому что в случае возникновения поломки многоверсионная архитектура сервера (см. MGA) позволит начать работу сервера немедленно, а от ненужных версий записей, оставшихся от неподтвержденных транзакций, избавляться при следующей операции чтения-изменения этих данных.

Transaction zero. Все пользовательские транзакции могут только видеть подтвержденные данные или сообщить об ошибке, если новейшая версия записи была создана в рамках другой транзакции, но еще не подтверждена. Но существует транзакция №0, которая запускается сервером. Эта транзакция запущена в особом состоянии предварительной завершенности, поэтому она может видеть все изменения, произведенные в рамках всех транзакций, и завершенных, и подтвержденных, и все версии записей. Это необходимо, например, для осуществления условий ссылочной целостности (смотрите referential integrity) и для обслуживания индексов Оак как индексы отлеживают все версии во всех нолях, на которые они распространяются).

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

Морозная гряда. Первый пояс

Игнатов Михаил Павлович
3. Путь
Фантастика:
фэнтези
7.91
рейтинг книги
Морозная гряда. Первый пояс

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Бесноватый Цесаревич

Яманов Александр
Фантастика:
альтернативная история
7.00
рейтинг книги
Бесноватый Цесаревич

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

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

Гром над Империей. Часть 4

Машуков Тимур
8. Гром над миром
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Гром над Империей. Часть 4

Варлорд

Астахов Евгений Евгеньевич
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Варлорд

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Ратник

Ланцов Михаил Алексеевич
3. Помещик
Фантастика:
альтернативная история
7.11
рейтинг книги
Ратник

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Отмороженный 10.0

Гарцевич Евгений Александрович
10. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 10.0

Действуй, дядя Доктор!

Юнина Наталья
Любовные романы:
короткие любовные романы
6.83
рейтинг книги
Действуй, дядя Доктор!

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6