- •Иерархия элементов реляционной модели и способов их представления на уровне хранения
- •Предложение select
- •Предложения модификации Предложение delete имеет формат
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Values ({константа | переменная} [,{константа | переменная}] ...);
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Системный каталог
- •Управление доступом (предложения grant / revoke )
- •Модификация структуры таблицы (атрибутов):
- •Предложения модификации данных средствами sql Предложение delete имеет формат
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Values ({константа | переменная} [,{константа | переменная}] ...);
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Ddl: Операторы создания/удаления индексов.
- •Особенности обновления представлений
- •Ограничения (constraints) логической целостности
- •Целостность сущностей.
- •Объявление первичного ключа :
- •Целостность ссылок
- •Объявление внешнего ключа:
- •Триггеры.
- •Любое клиентское приложение может быть подключено к бд одним из двух способов:
- •С использованием специализированной библиотеки доступа (db-dll);
- •С использованием odbc-драйвера (см. Далее).
- •Into переменная [[indicator] индикаторная_переменная]
- •Into переменная [[indicator] индикаторная_переменная]
- •1. «Тупой» : объявление курсора в режиме «только чтение»
- •2. «Продвинутый» : объявление «нечувствительного» курсора (для нашей таблицы s ):
- •Безопасность и управление доступом средствами sql.
- •Понятие транзакций. Уровни изоляции. Проблема отката (rollback) результатов выполнения транзакций.
- •If (обнаружена_ошибка) rollback;
- •If (обнаружена_ошибка) rollback;
- •Структура защищенного хранилища документов «dokyment» Физическая организация нулевого служебного трека нд типа dokyment
- •Физическая организация рабочего трека нд типа dokyment
- •Физическая организация первого трека фд dokyment
- •Физическая организация файлов данных многосуточных архивов arxiv
- •Метод многоуровневого динамического хранения данных .
- •Иерархия объектов системы хранения
- •Приемы сегментирования записей переменной длины Пример физической организации блока, содержащего несегментированные записи на дорожке (треке) бд
- •Пример физической организации блока, содержащего сегментированные записи на дорожке (треке) бд
- •Описание структуры индексов (первичных)
- •Структуры вторичных индексов (прямые указатели на запись по каждому ключу)
- •(Последовательный доступ)
- •(Произвольный доступ)
- •(Последовательно- произвольный доступ)
- •1.3. Операции поиска / вставки / удаления записей в блоках k-d-дерева
- •Клиентская библиотека (sql-интерфейс к odbc-источнику данных)
- •I. Организация сеанса
- •II. Прием и компиляция запроса:
- •Агент_субд (локальный процесс – мультиплексирование обслуживания локальных запросов к удаленному sql-источнику данных)
- •Клиент_субд (локальный процесс – мультиплексирование приема и организации выполнения запросов к локальному sql-источнику данных)
- •Сервер_субд (операции с локальными бд)
- •2.1 Без оптимизации 2.2 Оптимизация плана
- •Индексирование элементов данных. Проблема выбора индексов.
- •1.1. Особенности логической организации (временнОй модели данных)
- •Темпоральные свойства данных, учитываемые при организации хранения
- •1.2. Особенности физической организации
- •1.3. Особенности выполнения запросов с использованием атрибута-времени
- •1.3.1. Выборка данных
- •1.3.2. Модификации данных
- •2.1. Первичные и вторичные индексы в темпоральных бд
- •2.2. Моделирование и анализ данных. Парадоксы времени.
- •Распределение бд в пространственно-временном континууме.
- •1. Использование Proxy-шлюза
- •2. Использование Proxy-шлюзования и мсэ
Клиентская библиотека (sql-интерфейс к odbc-источнику данных)
I. Организация сеанса
1.1. Соединение c локальным Агентом_СУБД
1.2. Авторизация элемента-приложения или использование контекста авторизации по умолчанию (наследование от локального Агента)
II. Прием и компиляция запроса:
2.1. Cинтаксический анализ – т.н. “parsing” (пример для оператора SELECT) :
< Query > : = < S F W >
< Query > : = ( < Query > )
< S F W > : = SELECT < S_List > FROM < F_List > WHERE < W_List >
< S_List > : = < Field > , < S_List >
< S_List > : = < Field >
< F_List > : = < Table > , < F_List >
< S_List > : = < Table >
< W_List > : = < W_List > AND < W_List >
< W_List > : = < Field > = < Field >
< W_List > : = < Field > = < Const >
……………………………………….
( на выходе SFW– дерево запроса)
2.2. Преобразование дерева в постфиксную форму
2.3. Передача запроса локальному Агенту_СУБД
III. Синхронизация и обработка ответа, возврат данных приложению
… .
Агент_субд (локальный процесс – мультиплексирование обслуживания локальных запросов к удаленному sql-источнику данных)
I. Организация взаимодействия с Клиентом_СУБД
1.1. Образование защищенного логического канала (магистрали) «надежного» обмена данными с Клиентом_СУБД (локального или удаленного) узла гетерогенной ЛВС
1.2. Регистрация (учет), закрытие (проебразование) трафика
II. Оптимизация информационного взаимодействия (прием/передача страниц курсоров результирующих множеств) между Сервером_СУБД и Приложениями
Среда передачи данных
Клиент_субд (локальный процесс – мультиплексирование приема и организации выполнения запросов к локальному sql-источнику данных)
I. Организация взаимодействия с удаленными Агентами_СУБД
1.1. Прием запросов , проверка полномочий по подключению к источнику данных
1.2. Организация работы потоков-обработчиков локальных и удаленных подключений к Серверу_СУБД
II. Разбор постфиксного выражения, семантический контроль
- использования имен отношений (таблиц)
- использования имен атрибутов (полей) - контроль типов данных и их преобразование
III. Построение логического плана запроса
IV. CALL-интерфейс обращений к программе Сервер_СУБД
Сервер_субд (операции с локальными бд)
I. Инициализация ядра СУБД и интерфейсов администрирования БД
II. Физическое планирование и организация выполнения запросов
III. Оптимизация функционирования, управление буферизацией и блокированием
Примеры:
1. Построение SFW-дерева запроса
Отношение S: «Проекты – Подрядчики»
{<Шифр>, <Дата>, <Стоимость>} <Подрядчик>
Шифр |
Дата |
Стоимость |
Подрядчик |
Прометей |
2006.03.22 |
$ 500 000 |
ЗАО «Рога и Копыта» |
Прометей |
2006.03.22 |
$ 700 000 |
ФГУП «ФАРВАТЕР» |
Прометей |
2006.03.22 |
$ 800 000 |
ОАО «Лукойл» |
Юпитер |
1998.01.15 |
$ 20 000 000 |
ФГУП «ФАРВАТЕР» |
Юпитер |
1998.01.15 |
$ 10 000 000 |
ОАО «Лукойл» |
SELECT Подрядчик
FROM S
WHERE S.Шифр LIKE ‘Прометей’ AND S.Стоимость > $500000
< Query >
< S F W >
SELECT S_List FROM F_List WHERE W_List
< Field > < Table > AND
Подрядчик S < W_List > < W_List >
< Field > LIKE < Const > < Field > > < Const >
Шифр ‘Прометей’ Стоимость $500000
Логический план выполнения запроса