- •2.Работа с утилитой bde Administrator
- •2.1. Назначение bde Administrator
- •2.2. Создание псевдонима бд
- •3. Работа с утилитой Windows Interactive sql (wisql)
- •3.1. Создание новой бд
- •3.2. Установка соединения
- •3.3. Создание таблиц бд
- •3.4. Просмотр структуры компонентов базы данных
- •4.3. Значения old и new
- •4.4. Обеспечение каскадных воздействий
- •4.2. Создание триггера
- •5. Работа с хранимыми процедурами
- •5.1. Понятие хранимой процедуры
- •5.2. Создание хранимой процедуры
- •6. Использование генераторов
- •7.3. Сбор статистики о бд
- •7.3.1. Статистические данные непосредственно о бд
- •7.3.2. Анализ бд
- •7.4. Регистрация пользователей
- •7.5. Поддержка базы данных
- •Validate record fragments - проверять фрагменты записей
- •8.Задание к лабораторной работе
- •Работа с утилитой Windows Interactive sql (wisql)
- •9. Работа с утилитой InterBase Server Manager.
- •Приложение 1
- •Формат sql-операторов (субд InterBase)
- •База данных
- •Создание базы данных
- •Определение типа данных
- •Домены Создание домена
- •Ограничения, накладываемые на значения полей, ассоциированных с доменом
- •Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей
- •Удаление столбца (столбцов) из таблицы бд
- •Обращение к хранимой процедуре (утилита wisql)
- •Оператор выбора select
- •Принудительная выдача выходных параметров (только хранимые процедуры)
- •Отъем привилегий
- •Приложение 2 Пример Script-файла
3.3. Создание таблиц бд
Перед созданием таблиц БД необходимо продумать определение всех столбцов таблицы и характеристик каждого столбца (тип, длина, обязательность для ввода, ограничения, накладываемые на значения и пр.), индексов, ограничений целостности по отношению к другим таблицам.
Та БД, в которую будет добавлена создаваемая таблица, должна быть открыта, т.е. с ней должно быть установлено активное соединение.
Создание таблиц осуществляется с помощью SQL-оператора CREATE TABLE. Существует два способа выполнения SQL-операторов в WISQL. Первый заключается в наборе текста оператора в окне SQL Statement. Для запуска его на выполнение надо нажать кнопку RUN. Второй способ состоит в формировании текстового файла, который содержит от одного до нескольких SQL-операторов. Такой файл выполняется в режиме File | Run an SQL script.
Для примера воспользуемся первым способом. Следующий SQL-запрос создаёт три таблицы:
BOOK - содержит поля BOOK_ID, NAME, AUTHOR
BOOK_IN_USE - BOOK_ID, READER_ID и LEASE_DATE
READER - READER_ID и NAME.
CREATE TABLE BOOK (
BOOK_ID INTEGER NOT NULL,
NAME CHAR(25),
AUTHOR CHAR(25),
PRIMARY KEY (BOOK_ID));
CREATE TABLE BOOK_IN_USE (
BOOK_ID INTEGER NOT NULL,
READER_ID INTEGER NOT NULL,
LEASE_DATE DATE,
FOREIGN KEY (BOOK_ID) REFERENCES BOOK,
FOREIGN KEY (READER_ID)REFERENCES READER );
CREATE TABLE READER (
READER_ID INTEGER NOT NULL,
NAME CHAR(25),
PRIMARY KEY (READER_ID));
Для подтверждения выполненных действий выберите в главном меню режим File! Commit Work или введите в окне SQL Statement и выполните оператор COMMIT. Если вы решили не запоминать изменений, выберите режим FILE | Rollback или выполните оператор ROLLBACK.
3.4. Просмотр структуры компонентов базы данных
Для просмотра структуры компонентов базы данных используется утилита Windows InterBase Interactive SQL. Для этого выберите меню View | Metadata Information.
В диалоговом меню вы можете выбрать тип компонентов, по которым вы хотите получить информацию:
Check: показывает ограничения, установленные для таблицы. Необходимо указать имя таблицы.
Database: показывает имя файла базы данных, теневые файлы (shadow files), размер страницы и их размещение, интервал дефрагментации базы данных.
Domain: показывает имена доменов и типов данных
Exception: показывает имена исключительных ситуаций, соответствующие им сообщения, имена триггеров и хранимых процедур, в которых они используются.
Filter: показывает имена BLOB-фильтров базы данных; при указании имени фильтра, можно получить более детальную информацию
Function: показывает имена всех функций, определённых пользователем, или всю информацию о функции, если указать её имя.
Generator: имена и текущие значения генераторов
Grant: показывает права доступа к таблице или представлению (view)
Index: показывает имена индексов, имена соответствующих полей таблиц, и уникальность.
В поле "Object name" можно указать имя индекса или таблицы, и получить более детальную информацию по выбранному объекту.
Procedure: показывает имена хранимых процедур, а при указании имени процедуры - её код, входные и выходные параметры.
System: показыает имена системных таблиц и представлений базы данных
Table: показывает имена всех таблиц базы данных, а если указать имя таблицы - имена атрибутов, типов данных, превичные, внешние ключи и ограничения для таблицы
Trigger: показывает имена триггеров, определённых в базе данных и имена таблиц, в которых они используются. В поле "Object name" можно указать имя таблицы или триггера.
View: показывает имена представлений (view) и структуру, при указании имени представления
3.5. Просмотр структуры с помощью ISQL
Эту информацию можно получить и с помощью консольной утилиты ISQL, используя команду:
SHOW <object> [<name>] -- показыает системную информацию
<object> = CHECK, DATABASE, DOMAIN, EXCEPTION, FILTER, FUNCTION, GENERATOR, GRANT, INDEX, PROCEDURE, SYSTEM, TABLE, TRIGGER, VERSION, VIEW
Получение метаданных
Чтобы извлечь выражения определения данных (метаданные) из базы данных,
таблицы или представления выберите меню Extract | SQL Metadata for
Database..Table..View...
Результат этой операции -- SQL-скрипт, который можно использовать для восстановления структуры базы данных (таблиц, генераторов, процедур, представлений, и.т.д).
4. Работа с триггерами
4.1. Назначение триггера
Триггер - это процедура БД, автоматически вызываемая SQL-сервером при обновлении, удалении или добавлении новой записи в ТБД. Непосредственно из программы к триггерам обратиться нельзя. Нельзя и передавать им входные параметры и получать от них значения выходных параметров. Триггеры всегда реализуют действие. По событию изменения ТБД триггеры различаются на вызываемые при:
• добавлении новой записи;
• изменении существующей записи;
• удалении записи.
По отношению к событию, влекущему их вызов, триггеры различаются на:
• выполняемые до наступления события;
• выполняемые после наступления события.
Преимущества использования триггеров:
• автоматическое обеспечение каскадных воздействий в дочерних таблицах при изменении, удалении записи в родительской таблице выполняется на сервере. Пользователю нет необходимости заботиться о программной реализации каскадных воздействий. Поскольку каскадные воздействия выполняет сервер, нет необходимости пересылать изменения в таблицах БД из приложения на сервер, что снижает загрузку сетевого трафика;
• изменения в триггерах не влекут необходимости изменения программного кода в клиентских приложениях и не требуют распространения новых версий клиентских приложений у пользователей.
ЗАМЕЧАНИЕ. При откате транзакции откатываются также и все изменения, внесенные в БД триггерами.
