- •Иерархия элементов реляционной модели и способов их представления на уровне хранения
- •Предложение 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-шлюзования и мсэ
Триггеры.
Хранимые процедуры – функциональные модули, которые содержат: логические операторы (IF ... THEN ... ELSE), операторы перехода по условию (SWITCH ... CASE ...), операторы циклов (FOR, WHILE, UNTIL) и операторы передачи управления в процедуры (CALL, RETURN) и хранятся на сервере.
Для каждой таблицы может быть назначена хранимая процедура без параметров, которая вызывается при выполнении оператора модификации этой таблицы (INSERT, UPDATE, DELETE). Такие хранимые процедуры получили название триггеров. Триггеры выполняются автоматически.
CREATE TRIGGER <имя_триггера>
ON <имя_таблицы>
FOR { INSERT | UPDATE | DELETE }
AS <SQL_оператор>
SQL в среде программирования. Обзор интерфейсов PL/pgSQL, ODBC, PHP.
С хема взаимодействия клиентского приложения с сервером базы данных в общем случае архитектуры «Клиент» - «Сервер» выглядит так:
Архитектура «Клиент» - «Агент» - «Сервер» с участием средств ОСПО:
Сетевой агент - программное средство ОСПО, устанавливаемое на клиентской стороне и выполняющее следующие функции:
прием запросов от клиентских приложений;
установление соответствия между <именем ЛМ> и <сетевым адресом узла ЛВС> посредством обращения к соответствующим сервисам ОСПО;
установление соединения (сетевого или локального) с сервером СУБД по защищенной магистрами обмена данными;
передачу запросов клиентских приложений серверу СУБД;
прием результатов обработки запросов;
передачу результатов обработки клиентскому приложению.
Сетевые средства сервера - программные средства, функционирующие в составе сервера СУБД и выполняющие следующие функции:
прием запросов подключений от сетевых агентов;
запуск потоков, обслуживающих клиентские запросы;
получение и передача клиентских запросов ядру СУБД ;
получение от ядра результатов выполнения запросов и передачу их сетевым агентам.
Любое клиентское приложение может быть подключено к бд одним из двух способов:
С использованием специализированной библиотеки доступа (db-dll);
С использованием odbc-драйвера (см. Далее).
Библиотека доступа (DB-DLL) - это, как правило, объектный файл, исходный код которого создан на универсальном языке типа C. Эта библиотека содержит набор функций, позволяющих пользовательскому приложению соединяться с базой данных, передавать запросы серверу и получать ответные данные.
Обзор интерфейсов PL/pgSQL
Состав SQL-операций:
CREATE TABLE people (…………..)
INSERT INTO people (……………)
Обзор интерфейсов стандарта ODBC (SQL/CLI)
ODBC (Open Database Connetcivity - открытый интерфейс к базам данных) представляет собой программный слой, унифицирующий интерфейс приложений с базами данных. За реализацию особенностей доступа к каждой отдельной СУБД отвечает специальный ODBC-драйвер, доступ к которому - стандартизован на уровне обращений к Менеджеру ODBC-драйверов. Пользовательское приложение этих особенностей не видит, т.к. взаимодействует с универсальным программным слоем более высокого уровня. Таким образом, приложение становится в значительной степени независимым от СУБД. Недостаток - увеличивается время обработки запросов (как следствие введения дополнительного программного слоя).
Компоненты архитектуры:
Прикладная программа, Менеджер драйверов, Драйвер, Источник данных
Интерфейсные группы:
Создание у себя окружения - SQLAllocEnv(…) передается указатель на указатель
Установить соединение с БД - SQLAllocConnect
Выполненить операции с данными SQLExecute перед PrepareExecdirect
Обработка результата операции
Разорвать соединение с БД (если больше ничего не надо делать)
Освободить перем. Окружение
Для Windows, драйвер ODBC регистрируется в реестре. Источник данных – говорит о том, что сущ. Такая БД.
Алгоритм использования ODBC в прикладных программах
Уровни соответствия SQL в ODBC:
Минимальный
DDL : CREATE / DROP TABLE
DML : «простые» выражения SELECT, INSERT, UPDATE, DELETE
Базовый (включает грамматику минимального уровня)
DDL : ALTER TABLE, CREATE / DROP INDEX, CREATE / DROP VIEW, GRANT / REVOKE
DML : «полные» формы SELECT, UPDATE, DELETE, функции агрегирования
Расширенный (включает грамматику базового уровня)
DML : внешние соединения, скалярные выражения, групповые операторы (транзакции), вызовы процедур
Реализация доступа к данным с использованием курсоров. Проблемы модификации данных в курсоре. Хранимые процедуры и функции.
Реализация доступа к данным с использованием курсоров
Основная проблема - SELECT, как правило, порождает таблицу с множеством строк и столбцов(результирующее множество), а включающий язык не обладает средствами, позволяющими оперировать одновременно более чем одной записью (строкой). По этим причинам необходимо обеспечить своего рода мост между уровнем множеств языка SQL и уровнем записей включающего языка. Такой мост обеспечивают курсоры. Курсор состоит, по существу, из некоторого рода указателя, который может использоваться для просмотра множества записей. Однако нередко программе требуются в каждый момент времени значения только из одной строки какой-либо таблицы, и для этого используется единичный SELECT, формат которого имеет вид:
SELECT [[ALL] | DISTINCT]{ * | элемент_select [,элемент_select] ...}