- •Ведение в реляционные субд. Понятие реляционной субд. Сущности Первичный и внешний ключ. Правила построения схемы бд.
- •2. Общая характеристика субд Access. Создание и редактирование базы данных средствами субд Access. Свойства реляционной таблицы. Отношения между таблицами.
- •3.Построение запросов в субд Access. Структура запроса. Условие на значение.Between, In, Like Многотабличные запросы, вычисляемые поля. Групповые операции.
- •4. Запросы с параметрами. Групповые операции. Вспомогательные запросы
- •5. Параметры объединения в запросах. Функция Nz. Параметры объединения в запросах. Перекрестные запросы. Запросы действия.
- •6.Реляционная модель. Операции реляционной алгебры.
- •7. Построение модели «Сущность-связь» Сущности и атрибуты. Категории сущностей. Ключи и индексы. Связи. Улучшение модели.
- •8. Структура стандарта sql Типы данных и операции sql. Агрегирующие функции. Примеры.
- •9 . Формирование запросов средствами sql. Вложенные запросы. Группировка данных. Соединение таблиц. Объединение запросов. Примеры.
- •3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
- •10. Модификация данных. Модификация объектов бд. Последовательности. Модификация и удаление таблиц. Примеры использования.
- •Создание таблиц. Ограничения Для создания таблиц базы данных используется оператор, который в простейшем случае описывается так:
- •11. Управление транзакциями. Представления. Управление транзакциями
- •Представления
- •12. .Общая концепция субд «Oracle».
- •13. Язык pl/sql. Основные типы данных и операторы.
- •Структура программы
- •Типы данных
- •14. Курсоры, их атрибуты. Использование цикла for. Курсоры
- •Атрибуты курсора
- •Использование цикла for для работы с курсорами
- •15. Обработка исключений. Пользовательские исключения. Возбуждение исключений.
- •16. Подпрограммы. Пакеты. Хранимые подпрограммы.
- •17. Триггеры Объявление, назначение и примеры использования. Модификация триггеров.
- •18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.
- •Разграничение доступа
- •19. Управление параллельной обработкой данных. Блокировки.
- •20. Функциональные зависимости. Нормализация отношений. Нормальные формы.
- •21. Основные этапы проектирования реляционной базы данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование.
- •22. Распределенные бд. Хранилища данных. Определение и назначение. Понятие репликации. Варианты архитектуры хд. Гиперкуб. Его назначение и реализация средствами рсубд.
16. Подпрограммы. Пакеты. Хранимые подпрограммы.
Подпрограммы – это блоки PL/SQL с именами, которые могут быть вызваны и могут принимать параметры. Имеются два типа подпрограмм: процедуры и функции. Обычно процедуры используются, если необходимо выполнить некоторое действие, а функции – если необходимо вычислить некоторое значение. Синтаксис объявления процедуры и функции следующий:PROCEDURE имяпроцедуры [(параметр [, параметр]…)] IS[локальныеобъявления]BEGIN
исполняемыеутверждения [EXCEPTIONобработчикиисключений ]END [имяпроцедуры];FUNCTION имяфункции [(параметр [, параметр]…)] RETURN типданных
IS[локальныеобъявления]BEGINисполняемыеутвержденияEND [имяфункции];
Описания параметров задаются следующим образом:
имяпараметра [IN | OUT [NOCOPY] | IN OUT [NOCOPY] ] типпараметра [:= | DEFAULT] выражение
Фразы IN (которая принимается по умолчанию), OUT и IN OUT означают соответственно входные, выходные и модифицируемые параметры. Желательно не использовать режимы OUT и IN OUT при написании функций, чтобы избежать побочных эффектов.
Тело подпрограммы должно содержать хотя бы один оператор (им может быть NULL). Для выхода из подпрограммы используется оператор RETURN [выражение]
Вызов подпрограммы может быть выполнен двумя способами:
-из другой подпрограммы или анонимного блока, например
DECLARE-- тела процедур BEGIN BirthdayPremium(20, 100); END;
-с помощью команды SQL* Plus EXECUTE
Хранимые подпрограммы Oracle предоставляет возможность хранить подпрограммы непосредственно в базе данных. Такие подпрограммы можно вызвать из других PS/SQL-блоков, из SQL-операторов, а также из клиентских приложений. Кроме того, подпрограммы хранятся в откомпилированном виде, что снижает время доступа к ним. Перед выполнением хранимой подпрограммы ORACLE устанавливает неявную точку сохранения. Если подпрограмма сбивается в результате необработанного исключения, ORACLE осуществляет откат к этой точке сохранения. Тем самым отменяется вся работа, проделанная подпрограммой.
Пакет – это набор программных объектов, хранимых в базе данных и использующих общие данные, курсоры и другие объекты. При ссылке на какой либо объект пакета он целиком загружается в память и становится доступным всем пользователям. Пакет состоит из двух частей: спецификации, или заголовка (package) и тела (package body). Спецификация пакета описывает его интерфейс, т.е., языковые конструкции, которые доступны всем пользователям пакета. Тело пакета полностью определяет курсоры и подпрограммы, тем самым реализуя спецификацию пакета. Кроме того, в тело пакета могут входить личные, или закрытые описания и подпрограммы, которые можно использовать только в подпрограммах, входящих в тело пакета. Модульность. Пакеты позволяют вам инкапсулировать логически связанные типы, объекты и подпрограммы в поименованный модуль PL/SQL. Каждый пакет легко понять, а интерфейсы между пакетами просты, ясны и хорошо определены. Это облегчает разработку приложений. Облегчение проектирования. Все, что надо изначально знать при проектировании приложения - это информация интерфейса для спецификации пакета. Вы можете кодировать и компилировать спецификацию пакета без его тела. Скрытие информации. Пакет скрывает определение личной подпрограммы, так что лишь этот пакет, а не использующие его приложения, будет затронут, если это определение изменится. Это упрощает сопровождение и развитие. Кроме того, скрывая детали реализации от пользователей, вы защищаете целостность вашей базы данных. Расширенная функциональность. Пакетированные общие переменные и курсоры продолжают существовать в течение всей сессии. Поэтому они могут совместно использоваться всеми процедурами, выполняющимися в данном окружении. Кроме того, через них можно передавать данные между транзакциями без необходимости записывать такие данные в базу данных. Улучшенная производительность. Когда вы вызываете пакетированную подпрограмму первый раз, в память загружается весь пакет. Поэтому последующие вызовы других подпрограмм этого пакета не требуют операций ввода-вывода.