
- •Основные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Логическая и физическая независимость данных
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Модели «клиент-сервер» в технологи баз данных
- •Модель файлового сервера
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Модель сервера приложений
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •Нормальные формы и нормализация
- •Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных. Инфологическая модель данных «Сущность-связь»
- •Классификация сущностей
- •Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •Типы данных в субд oracle 9.2i
- •Структура языка sql
- •Оператор выбора select
- •Запросы с использованием единственной таблицы Выборка без использования параметра where
- •Выборка с использованием параметра where
- •Использование параметров group by и having
- •Запросы с использованием нескольких таблиц Запросы с использованием соединений
- •Последовательности
- •Создание и удаление последовательностей
- •Изменение последовательностей
- •.Использование последовательностей
- •Оператор ввода новых строк insert Вставка единственной записи в таблицу
- •Вставка множества записей
- •Оператор изменения значений полей update
- •Обновление единственной записи
- •Обновление множества записей
- •Обновление с подзапросом
- •Оператор удаления строк delete
- •Удаление единственной записи
- •Удаление множества записей
- •Удаление с вложенным подзапросом
- •Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления. Оператор create Создание таблицы
- •Создание первичного ключа
- •Создание уникального ключа
- •Создание домена
- •Создание внешнего ключа
- •Удаление ограничений целостности
- •Оператор drop
- •Представления
- •Создание и удаление представлений
- •Операции выборки из представлений
- •Обновляемые представления
- •Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •Объектные и системные привилегии
- •Операторы grant и revoke
- •Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •Операторы управления транзакциями
- •Журналы транзакций
- •Язык pl/sql, его структура, основные операторы.
- •Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
- •Процедуры, функции, пакеты.
- •Триггеры, их основные свойства и значение.
- •Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •Распределенные базы данных, фрагментация, тиражирование.
- •Средства защиты данных в субд.
- •Аутентификация/авторизация при помощи паролей.
- •Инкапсуляция передаваемой информации в специальных протоколах обмена.
- •Ограничение информационных потоков.
- •Классы безопасности
- •Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд. Промежуточное программное обеспечение (ппо) баз данных
- •Доступ к базам данных
- •Недостатки реляционных субд
- •Манифест систем объектно-ориентированных баз данных Обязательные свойства: золотые правила
- •Необязательные возможности Множественное наследование, проверка и вывод типов, распределенность, проектные транзакции (протяженные транзакции или вложенные транзакции), версии
- •Объектная модель данных
- •Объектно-ориентированные, объектно-реляционные бд, универсальные бд
- •Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •Роль grid-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Вставка множества записей
Вставка множества записей осуществляется посредством использования подзапросавнутри оператора INSERT:
INSERT INTO имя_таблицы оператор_SELECT;
В данном случае оператор SELECT формирует набор данных, который сразу же транслируется в указанную таблицу. В отличие от использования параметра VALUES в операторе INSERT, с помощью подзапроса можно за раз вставить любое количество записей. Данный вариант оператора INSERT используется тогда, когда уже существующие данные или результат вычисления выражений, основанных на уже существующих данных, необходимо добавить в другую таблицу. Пример использования команды приведен ниже:
-- копирование всех имен дилеров из таблицы
-- DEALERS в таблицу MANAGERS
INSERT INTO MANAGERS(Man_id, Name)
SELECT managers_seq.Nextval, Name FROM Dealers;
Оператор изменения значений полей update
Оператор UPDATE используется для изменения существующих строк таблиц.
UPDATE имя_таб SET поле1=зн1, [поле2=зн2, …][WHERE усл_фильтр_строк];
Параметр WHERE используется для отбора тех строк, в которых необходимо произвести изменения, описанные в параметре SET. Если параметр WHERE не будет указан, то изменению подвергнутся все строки указанной таблицы.
Обновление единственной записи
Для обновления единственной записи в таблице в условие фильтрации включают условное выражение с участием оператора сравнения на равенство с константой атрибутов, составляющих первичный или уникальный ключ. Поскольку атрибуты, входящие в состав первичного или уникального ключа, имеют уникальные значения в таблице, их использование гарантирует выполнение оператора UPDATE по отношению к одной единственной строке. Например:
-- изменение значения Procent в одной строке таблицы MANAGERS
UPDATE Managers SET Procent = 5 WHERE Man_id = 1;
Обновление множества записей
Для обновления множества записей в таблице условие фильтрации может включать любые атрибуты таблицы с использованием любых логических операторов. Например:
-- назначение размера комиссионных тем менеджерам,
-- у которых он не был указан
UPDATE Managers SET Procent = 5
WHERE Procent IS NULL;
Обновление с подзапросом
Иногда для составления условия отбора строк, в которых необходимо произвести какие-либо изменения, не хватает логических операторов. Для таких случаев синтаксис оператора UPDATE допускает использование подзапросов в параметре WHERE для формирования набора строк, которые предполагается подвергнуть изменению. Например:
-- понижение на 10% размер комиссионных у тех менеджеров,
-- чей размер комиссионных превышает средний уровень
UPDATE Managers SET Procent = Procent * 0.9
WHERE Procent > (SELECT AVG(Procent) FROM Managers);
Поскольку синтаксис оператора UPDATE не допускает одновременное указание нескольких таблиц после ключевого слова UPDATE, подзапросы в параметре WHERE также используются в тех случаях, когда необходимо составить условие фильтрации на основе данных другой таблицы или таблиц. Например:
-- понижение на 10% размер комиссионных у тех менеджеров,
-- которые не продали ни одного товара за последнюю неделю
UPDATE Managers SET Procent = Procent * 0.9
WHERE Man_id NOT IN
(SELECT DISTINCT Man_id FROM Outgoing
WHERE Out_date >= sysdate - 7);