- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри
Шрифт:
Интервал:
Закладка:
Триггеры
Триггеры являются особыми процедурами, созданными для определенных таблиц с целью автоматического выполнения в процессе завершения добавлений, изменений или удалений на сервере. Любая таблица может иметь произвольное количество триггеров, которые будут выполняться до или после добавлений, изменений или удалений. Порядок выполнения определяется параметром позиции в объявлении триггера. Триггеры имеют некоторые расширения языка, недоступные для хранимых процедур или в динамическом SQL. Например, контекстные переменные OLD и NEW, при использовании которых в качестве префикса к имени столбца можно получить доступ к существующему (старому, old) и требуемому (новому, new) значению столбца. Триггеры могут вызывать хранимые процедуры, но не другие триггеры.
Работа, выполненная триггерами, будет отменена, если транзакция, явившаяся причиной вызова триггера, будет отменена.
Функции, определенные пользователем
Для сохранения своего малого объема Firebird поставляется с весьма скромным арсеналом встроенных (родных) функций трансформации данных. Пользователи могут писать свои собственные функции на известном им языке, таком как C/C++, Pascal или Object Pascal, для получения аргументов и возвращения единственного результата. Как только внешняя функция (UDF) будет определена в базе данных, она тут же станет доступной как допустимая функция SQL для приложений, хранимых процедур и триггеров.
Firebird поставляет две готовые к использованию библиотеки UDF: ib udf, доступную как для Windows, так и для Linux, и fbudf, доступную в настоящий момент для Windows и Linux в версии 1.5 и доступную только для Windows в версии 1.0.x. Firebird отыскивает UDF в библиотеках, находящихся в каталоге /udf каталога инсталляции или в других каталогах, указанных в параметре udfAccess (версия 1.5) или externai_function_directory (версия 1.0.x) в файле конфигурации Firebird.
Приложения, работающие с несколькими базами данных
В отличие от многих реляционных баз данных приложения Firebird могут быть одновременно соединены более чем с одной базой данных. Клиент Firebird может открывать и иметь доступ к любому количеству баз данных в одно и то же время. Таблицы из разных баз данных не могут быть объединены для получения связанного набора данных, но для комбинирования информации могут использоваться курсоры.
Если требуется согласованность между базами данных, Firebird может управлять выходными наборами данных, выполняя запросы к нескольким базам данных в контексте одной транзакции. Firebird обеспечивает автоматическое двухфазное подтверждение транзакции (2РС) при изменениях в данных, чтобы гарантировать, что изменения не будут применены в одной базе данных, если изменения в другой базе данных в контексте той же транзакции были отменены или потеряны из-за ошибок в сети.
Безопасность сервера
Для управления доступом пользователей к серверу Firebird использует базу данных безопасности security.fdb (isc4.gdb в версии 1.0.x). Во время инсталляции эта база данных содержит одного пользователя - SYSDBA.
* В инсталляции Windows пароль пользователя SYSDBA masterkey. Настоятельно рекомендуется немедленно после инсталляции запустить программу gsec.exe (в каталоге инсталляции, подкаталоге /bin) и изменить этот пароль. Это один из наиболее известных паролей в мире баз данных!
* Инсталляторы RPM версии 1.5 для Linux генерируют случайный пароль для SYSDBA и заменяют в базе данных старый пароль masterkey. Этот пароль сохраняется в корневом каталоге инсталляции в текстовом файле с именем firebird.PASSWORD. Если вы собираетесь использовать данный пароль, то удалите этот файл.
Пользователь SYSDBA имеет полные привилегии ко всем базам данных на сервере; в текущей модели безопасности он не может быть изменен. Пользователь root в Linux/UNIX получает привилегии SYSDBA автоматически. Владелец базы данных (пользователь, создавший базу данных) имеет полные права на эту базу данных. Для всех других пользователей доступ к объектам базы данных возможен только через предоставление им привилегий SQL.
Безопасность базы данных
Все пользователи, за исключением тех, кто имеет полные привилегии, должны получить права к каждому объекту, к которому они должны иметь доступ. SQL-оператор GRANT используется для назначения привилегий.
Firebird поддерживает роли SQL. Вначале роль должна быть создана с использованием оператора CREATE ROLE и подтверждена (commit). Группа привилегий может быть назначена роли, а затем роль может быть назначена пользователю. Для использования этих привилегий пользователь должен при соединении с базой данных указывать и имя пользователя, и имя роли.
Более подробную информацию о безопасности баз данных см. в главе 35.
Пора дальшеВ главе 7 мы более внимательно рассмотрим клиентскую сторону в архитектуре клиент-сервер Firebird: библиотеку функций, которая предоставляет приложениям такие уровни системы, как средства связи и язык SQL. Если вам нужна помощь в инсталляции удаленного клиента, перейдите к последнему разделу этой главы.
ГЛАВА 7. Клиенты Firebird.
Клиенту на удаленной рабочей станции требуется клиентская библиотека и приложение (программа), которое может взаимодействовать с интерфейсом прикладного программирования (Application Programming Interface, API), объявленным в этой библиотеке.
Клиентская библиотека предоставляет протокол соединения и транспортный уровень, которые ваше клиентское приложение использует для связи с сервером. Стандартная библиотека для клиентов Windows - это Windows DLL. Для клиентов POSIX это совместно используемый объект (библиотека SO). Размер стандартной клиентской библиотеки приблизительно 350 Кбайт.
Некоторые уровни доступа, как, например провайдер Firebird .NET и драйверы JayBird Java, не требуют наличия клиентской библиотеки и напрямую реализуют сетевой протокол. Еще один режим существует во встраиваемом сервере - библиотека, которая объединяет клиентский и серверный экземпляры для использования одним пользователем.
Клиентская рабочая станция также может иметь копию текущего файла firebird.msg или его локализованную версию для того, чтобы отображались корректные сообщения сервера.
Обычно вы будете инсталлировать копию клиентской библиотеки на сервере для использования с некоторыми утилитами командной строки Firebird и/или для различных программ управления, выполняющихся на сервере, которые вы могли бы использовать. Тем не менее многие из этих утилит могут запускаться удаленно. Администратор системы может управлять некоторыми из основных сервисов, предоставляемыми этими утилитами для доступа к ним, через интерфейс управления услугами на хосте.
Что такое клиент Firebird?
Клиент Firebird - это приложение, обычно написанное на языке высокого уровня, которое предоставляет конечному пользователю доступ к средствам и инструментам системы управления базами данных Firebird и к данным, хранимым в базах данных. Интерактивная утилита isql и другие утилиты командной строки в вашем каталоге Firebird /bin являются примерами клиентских приложений.
Клиенты Firebird обычно располагаются на удаленных рабочих станциях и через сеть соединяются с сервером Firebird, выполняющимся на хост-машине. Firebird также поддерживает автономную модель, позволяющую клиентским приложениям, клиентской библиотеке Firebird и серверу Firebird выполняться на одном физическом устройстве.
Клиентские приложения могут и вовсе не взаимодействовать с конечными пользователями. Клиентами могут быть демоны, скрипты и сервисы.
Firebird был спроектирован для неоднородных сетей. Клиенты, выполняющиеся в одной операционной системе, могут иметь доступ к серверу на другой платформе операционной системы. Общий случай- наличие рабочих станций под Windows (98 или ME) и Linux, одновременно имеющих доступ к корпоративному серверу, выполняющемуся под Windows NT или Windows 2000, либо под какой-нибудь разновидностью UNIX или Linux.
В модели клиент-сервер приложения никогда не обращаются к базе данных напрямую. Любой процесс приложения общается с сервером через клиентскую библиотеку Firebird, копия которой должна быть инсталлирована на каждой клиентской рабочей станции. Клиентская библиотека Firebird предоставляет API, через который программы выполняют обращения к функциям для поиска, сохранения и манипулирования данными и метаданными. Обычно другие уровни также вовлечены в этот интерфейс между программой приложения и клиентом Firebird, который использует обычные или специфичные для языка приложения механизмы для заполнения базы данных или вызова функций API.
Для разработок Java постоянно поддерживаемые в Firebird драйверы включают JayBird JDBC/JCA-совместимый драйвер Java для гибкого, независимого от платформы интерфейса приложения между множеством открытых и коммерческих систем разработки Java и базами данных Firebird. Открытые и сторонние интерфейсные компоненты и драйверы доступны для множества других платформ разработки, включая Borland Delphi, Kylix и C++ Builder, коммерческие и открытые варианты C++, Python, PHP и DBI::Perl. Для приложений .NET провайдер Firebird .NET постоянно совершенствуется. Контактные адреса и другую информацию см. в приложении 3.

