- •Федеральное агентство связи
- •Государственное образовательное учреждение высшего
- •Профессионального образования
- •«Поволжская государственная академия телекоммуникаций и информатики»
- •Разработка и эксплуатация удаленных баз данных
- •Конспект лекций
- •Введение
- •Раздел 1. Теория проектирования удаленных баз данных архитектуры удаленных бд Структурная схема терминов
- •Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •Достоинства и недостатки различных архитектур приложений бд
- •Основные технологии доступа к данным Технология com (component object model)
- •Создание распределенных приложений на базе dCom
- •Технология corba (общая архитектура брокеров объектных запросов)
- •Технология midas
- •Доступ к данным по технологии ado
- •Технология com (component object model)
- •Составные части технологии com
- •Создание распределенных приложений на базе dCom
- •Технология midas
- •Доступ к данным по технологии ado
- •Введение в работу с удаленными бд
- •Организация сеанса связи с удаленной бд
- •Сервер interbase
- •Физическая организация базы данных формата InterBase
- •Типы данных в таблицах InterBase Типы столбцов таблиц формата InterBase
- •Организация сеанса связи с удаленной бд
- •Физическая организация удаленной бд
- •Создание и модификация таблиц Операции с таблицами
- •Операции с индексами
- •Графическое проектирование структуры бд Просмотры View
- •Создание бд
- •Создание и использование доменов
- •Компоненты доступа к данным. Запросы на выборку данных
- •Компоненты для доступа к данным и их отображения
- •Формирование запросов на выборку данных
- •Запросы на изменение данных Структурная схема терминов
- •Работа с записями
- •Методика изменения данных при помощи компонент
- •Использование хранимых процедур
- •Понятие и назначение хранимых процедур
- •Язык хранимых процедур
- •Использование триггеров и генераторов
- •Понятие триггера
- •Команды создания, изменения и удаления триггера
- •Генераторы - назначение, создание, установка начального значения
- •Функции, определяемые пользователем – назначение, создание, применение, порядок работы с ними
- •Сортировка, поиск и фильтрация в бд и выборках
- •Сортировка
- •Фильтрация записей
- •Организация данных в бд InterBase
- •Поиск в наборах данных
- •Манипулирование данными в выборках
- •Управление транзакциями и кэширование памяти
- •Механизм транзакций
- •Механизм кэшированных изменений
- •Перехват исключительных ситуаций и обработка ошибок
- •Понятие исключительных ситуаций
- •Обработка исключений
- •Формирование и вывод отчетов
- •Назначение и виды отчетов
- •Компоненты для формирования отчетов
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Установка привилегий доступа к данным
- •Понятие привилегии, привилегии по умолчанию
- •Состав параметров при установлении привилегий
- •Назначение привилегий пользователю и группам пользователей
- •Отмена привилегий
- •Копирование, перенос и восстановление данных Создание резервной копии и восстановление бд
- •Восстановление транзакций
- •Регистрация новых пользователей
- •Копирование клиентской части приложения бд Структурная схема терминов
- •Утилита Install Shield
- •Определение файлов, объектов и элементов среды
- •Задание диалога при разархивировании
- •Создание прообраза копии диска
- •Создание копии на дискетах
Организация данных в бд InterBase
В отличие от локальной БД, состоящей из отдельных или связанных таблиц, удаленная БД имеет более сложную структуру, которая включает:
таблицы;
индексы;
ограничения;
домены;
просмотры;
генераторы;
триггеры;
функции пользователя;
хранимые процедуры;
исключения;
BLOB-фильтры;
привилегии.
Элементы структуры удаленной БД называют метаданными, где "мета" означает "над" данными.
Для InterBase
максимальное число таблиц в БД = 65536;
максимальное число столбцов в таблице = 1000.
Поиск в наборах данных
Поиск записи, удовлетворяющей определенным условиям, означает переход на эту запись. Поиск похож на фильтрацию, т.к. выполняется проверка полей записей по некоторым условиям, однако в процессе поиска количество записей в наборе данных не изменяется.
В локальных БД ускоренный поиск ведется по индексированным полям, а для работы с неиндексированными полями служат методы Locate и Lookup.
В удаленных БД действуют совершенно иные принципы обработки данных. Все действия с данными основаны на SQL запросах, даже компоненты типа TIBTable (и TOraTable в Oracle) фактически организованы как SQL–запрос:
select * from <имя таблицы>.
Поэтому сортировка, поиск и фильтрация сводятся к манипулированию данными с использованием параметров SQL-запросов.
Манипулирование данными в выборках
Отбор записей выполняется оператором SELECT. Формат этого оператора для работы с удаленными БД имеет свои особенности.
SELECT [DISTINCT | ALL] {* | <список полей>}
FROM <таблица>
[WHERE <условие отбора>]
[ORDER BY<список полей для сортировки>]
[GROUP BY <список полей для группировки>]
[HAVING <Условия группирования>]
[UNION <Вложенная инструкция SELECT>]
[PLAN <План выполнения запроса>]
По сравнению с локальной версией, дополнительно здесь появились:
описатель ALL – позволяет отбирать записи с повторяющимися значениями (DISTINCT обеспечивает отбор только уникальных значений);
операнд PLAN – задает план выполнения запроса.
Фильтрация обеспечивается условием отбора записей в предложении Where, которые для удаленных БД могут быть более сложными.
<Условие отбора> =
{<Выражение> <Операция сравнения> {<Выражение1> | (<Отбор1>)} |
<Выражение> [NOT] <Мин. значение> AND <Макс. значение> |
<Выражение> [NOT] LIKE <Выражение1> [ESCAPE <Выражение2>] |
<Выражение> [NOT] IN
(<Выражение 1> [,<Выражение 2>]...[,<Выражение N>] |(<ОтборМ>)) |
<Выражение> IS [NOT] NULL |
<Выражение> [NOT] {<Операция сравнения> |ALL|SOME|ANY) (<ОтборМ>) |
Exists(<ОтборМ>)|
SINGULAR (<ОтборМ>)
<Выражение> [NOT] CONTAINING <Выражение1> |
<Выражение> [NOT] STARTING [WITH] <Выражение1>}
Элементы, обозначенные как отбор, представляют собой вложенные инструкции select:
<Отбор1> – возвращает одно значение, в частном случае, ни одного;
<ОтборМ> – возвращает несколько значений, в частном случае, ни одного.
Условие отбора (фильтрации) может состоять из нескольких условий, связанных логическими операциями NOT, OR, AND.
Операнд <Выражение> [NOT] CONTAINING <Выражение1> позволяет выбрать записи на основании частичного совпадения значений; обычно применяется для строк.
Пример
Select * from Store where S_Name CONTAINING "то"
Для таблицы Store ("склада") выводятся все столбцы с данными о товарах, названия которых содержат символы "то", начиная с любой позиции.
В общем случае выражения могут быть сложными и состоять из нескольких операндов, знаков операций и круглых скобок.
Операнд <Выражение> [NOT] STARTING [WITH] <Выражение1> отличается от предыдущего тем, что требует вхождения уже с начала выражения.
Отбор записей с частичным совпадением значений можно производить и при помощи операнда LIKE.
Операнды Exists и SINGULAR проверяют количество записей, возвращаемых в них подзапросом:
Операнд Exists(<ОтборМ>) возвращает True, если возвращено непустое множество значений.
Операнд SINGULAR(<ОтборМ>) возвращает True, если при отборе возвращено только одно значение
Пример
SELECT S_Name, S_Number FROM Store
WHERE EXISTS
(SELECT C_Move FROM Cards
WHERE
C_Date BETWEEN "1.10.2002" AND "31.10.2002")
Со склада отбираются данные о товарах, для которых было движение (приход или расход) за октябрь 2002г.
Операнд SINGULAR(<ОтборМ>) возвращает True, если при отборе возвращено только одно значение.
Пример
SELECT Name FROM Personnel
WHERE SINGULAR
(SELECT Position FROM Position
WHERE Position.Code = Personnel.Code)
Из таблицы Personnel выбираются фамилии сотрудников, которые занимают только одну должность.
Операнд PLAN задает план выполнения запроса:
<План выполнения запроса> =
[{JOIN|[SORT] MARGE}]
(<Таблица>) | <План выполнения запроса>,
...
[(<Таблица>) | <План выполнения запроса>]
<Таблица> = {<Имя таблицы> | <Псевдоним таблицы>}
{NATURAL | INDEX (<Список индексов>) | ORDER <Список индексов>}
Задание плана выполнения запроса позволяет управлять методами доступа к данным и может увеличить скорость выполнения запроса. Для каждой таблицы, которая задается именем или псевдонимом, можно определить:
NATURAL – использование метода последовательного доступа к данным; если при поиске отсутствуют индексы, то используется последовательный метод;
INDEX – использование для доступа к данным индексно-последовательного метода на основе указанных методов;
ORDER – сортировка таблицы по указанным индексам.
Описатель JOIN указывает, что план относится к связанным таблицам. Если у этих таблиц существуют соответствующие индексы, то с их помощью будет организован индексно-последовательный метод доступа. Если таких индексов нет, то для связных таблиц следует указать описатель MARGE или SORT MARGE.