- •Иерархия элементов реляционной модели и способов их представления на уровне хранения
- •Предложение 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-шлюзования и мсэ
Особенности обновления представлений
Рассмотренные выше операции DELETE, INSERT и UPDATE могут оперировать не только базовыми таблицами, но и представлениями.(НЕ ВСЕГДА!!!)
Безусловно обновляемыми являются представления, полученные из единственной базовой таблицы простым исключением некоторых ее строк и (или) столбцов, обычно называемые "представление-подмножество строк и столбцов". Таким является представление S1, полученное из базовой таблицы S.
Работая с ним, можно:
вставить (операция INSERT) новую строку, фактически вставляя соответствующую строку в базовую таблицу S (отсутствующие в S1 атрибуты означиваются как NULL;
удалить (операция DELETE) существующую строку из представления S1, фактически удаляя соответствующую строку из таблицы S;
обновить (операция UPDATE) какое-либо поле в существующей строке, фактически осуществляя то же самое изменение в соответствующем поле таблицы S.
Поддержка ограничений (ключей, ссылок) целостности средствами СУБД. Триггеры и хранимые процедуры.
Ограничения (constraints) логической целостности
Логическая целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения логической целостности:
целостность сущностей
целостность ссылок.
Целостность сущностей.
Каждый кортеж отношения должен отличатся от любого другого кортежа этого отношения набором ключевых атрибутов (любое отношение должно обладать первичным ключом).
Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений:
при добавлении записей в таблицу проверяется уникальность их первичных ключей
не допускается изменение значений атрибутов, входящих в первичный ключ
Объявление первичного ключа :
CREATE TABLE S
( Шифр CHAR (80) NOT NULL,
Дата DATATIME NOT NULL,
Стоимость MONEY,
Подрядчик CHAR (255),
PRIMARY KEY ( Шифр, Дата, Стоимость )
);
Примечания:
1. Допускается объявление одного и более атрибутов – UNIQUE, т.о. отношение может обладать несколькими ключами UNIQUE, но только одним PRIMARY KEY
2. Компонентам атрибутов PRIMARY KEY запрещается присваивать значения NULL, для компонентов UNIQUE – разрешено.
Целостность ссылок
Для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.
Объявление внешнего ключа:
CREATE TABLE V
( Подрядчик CHAR (255) PRIMARY KEY;
Поручитель CHAR (255)
);
CREATE TABLE S
( Шифр CHAR (80) NOT NULL,
Дата DATATIME NOT NULL,
Стоимость MONEY,
Подрядчик CHAR (255)
PRIMARY KEY ( Шифр, Дата, Стоимость )
FOREIGN KEY ( Подрядчик )
REFERENCES V ( Подрядчик )
);
Требование целостности по ссылкам означает в нашем примере, что в таблице V не может присутствовать кортеж со значением атрибута "Подрядчик", которое не встречается в таблице S.