- •Иерархия элементов реляционной модели и способов их представления на уровне хранения
- •Предложение 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-шлюзования и мсэ
Модификация структуры таблицы (атрибутов):
-
Добавление атрибута
ALTER TABLE <имя_таблицы> ADD (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] ,...)
Удаление атрибута
ALTER TABLE <имя_таблицы> DROP (<имя_столбца>,...)
Модификация типа данных атрибута
ALTER TABLE <имя_таблицы> MODIFY (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] ,...)
Предложения модификации данных средствами sql Предложение delete имеет формат
DELETE
FROM базовая таблица | представление
[WHERE фраза];
и позволяет удалить содержимое всех строк указанной таблицы (при отсутствии WHERE фразы) или тех ее строк, которые выделяются WHERE фразой.
Предложение INSERT имеет один из следующих форматов:
INSERT
Into {базовая таблица | представление} [(столбец [,столбец] ...)]
Values ({константа | переменная} [,{константа | переменная}] ...);
или
INSERT
Into {базовая таблица | представление} [(столбец [,столбец] ...)]
подзапрос;
Отличие заключается в том, что во втором случае сначала выполняется подзапрос(в памяти формируется рабочая таблица), а потом заполняется таблица.
Предложение UPDATE :
UPDATE (базовая таблица | представление}
SET столбец = значение [, столбец = значение] ...
[WHERE фраза]
При отсутствии WHERE фразы обновляются значения указанных столбцов во всех строках модифицируемой таблицы. WHERE фраза позволяет сократить число обновляемых строк, указывая условия их отбора.
Использование индексов и виртуальных таблиц.
Ddl: Операторы создания/удаления индексов.
Создание индекса (PgSQL):
CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...)
Наличие индекса по заданному атрибуту (совокупности атрибутов):
Существенно ускоряет процессы поиска и выборки кортежей, релевантных запросу
Усложняет / замедляет операции вставки и обновления атрибутов кортежей
Стандарт SQL намеренно не включает в конструкции ссылки на индексы. Решение о том, использовать или не использовать какой-либо индекс при обработке некоторого конкретного запроса принимается не пользователем, а планировщиком –оптимизатором запроса СУБД, который учитывает множество факторов - размер таблиц, тип используемых структур хранения данных, статистическое распределение данных в таблицах и индексах и т.д.
Примечание: Обязательно строить индексы для первичных ключей, поскольку по их значениям осуществляется доступ к данным при операциях соединения двух и более таблиц.
Удаление индекса:
DROP INDEX <имя_индекса>
DDL. Виртуальные таблицы (представления). Создание и уничтожение представлений.
Основные задачи:
1) Обеспечение независимости пользовательских программ от изменения логической структуры базы данных при ее расширении и (или) изменении столбцов.
2) Представления дают возможность различным пользователям по-разному видеть одни и те же данные (возможно, даже в одно и то же время).
3) От определенных пользователей могут быть скрыты некоторые данные, невидимые через предложенное им представление.
Создание / удаление представлений
Представление - это виртуальная таблица, которая не существует на уровне среды хранения СУБД, но для пользователя выглядит доступной при выполнении SQL-запросов определенных типов.
Синтаксис предложения CREATE VIEW:
CREATE VIEW < имя_представления >
[(столбец[,столбец] ...)]
( AS < SELECT-подзапрос >
[WITH CHECK OPTION] );
где подзапрос, следующий за AS и являющийся определением данного представления, не исполняется, а просто сохраняется в каталоге;
"WITH CHECK OPTION" (с проверкой) указывает, что для операций INSERT и UPDATE над этим представлением должна осуществляться проверка, обеспечивающая удовлетворение WHERE фразы подзапроса;
Пример: Cоздадим представление S1 из отношения S
CREATE VIEW S1
( AS SELECT Стоимость Подрядчик
FROM S
WHERE Стоимость > $100 000 );
Уничтожение ненужных представлений выполняется с помощью предложения DROP VIEW (уничтожить представление), имеющего следующий формат:
DROP VIEW < представление >;