Содержание
- 2. Модель клиент — сервер Многие приложения для работы с базами данных создаются с использованием модели клиент
- 3. Язык PL/SQL PL/SQL (Procedural Language extensions to the Structured Query Language) – процедурные языковые расширения SQL
- 4. Лексические единицы При работе с PL/SQL допускается использование символов из определенного набора знаков. В этот набор
- 5. Идентификаторы Идентификаторы используются для именования переменных, курсоров, типов и подпрограмм. При выборе идентификаторов следует руководствоваться следующими
- 6. Типы данных Числовые Символьные Даты и времени Логический Составные типы: записи и коллекции Двоичные типы ROWID
- 7. Числовые типы Основные числовые типы: NUMBER, PLS_INTEGER, BINARY_INTEGER NUMBER – единственный числовой тип, непосредственно поддерживаемый ядром
- 8. Числовые подтипы Подтипы введены для достижения совместимости с типами ANSI, SQL, SQL/DS, DB2 и представляют собой
- 9. Символьные типы. Набор символов Набор символов – совокупность символов и соответствующий ей набор битовых последовательностей для
- 10. Набор символов С каждой БД ORACLE связаны два набора символов: Набор символов базы данных. Используется для
- 11. Строковые типы данных
- 12. Строковые подтипы VARCHAR2: CHAR VARYING, CHARACTER VARYING, STRING, VARCHAR CHAR: CHARACTER NCHAR: NATIONAL CHAR, NATIONAL CHARACTER
- 13. Дата и время DATE Год, месяц, день, часы, минуты, секунды. TIMESTAMP Дата и время с точностью
- 14. Дата и время Исходный тип данных – DATE. Используется для хранения значения даты или даты и
- 15. Дата и время Типы данных INTERVAL Момент – временная точка с некоторой точностью(до часа, до минуты)
- 16. Тип данных BOOLEAN Допустимые значения - TRUE, FALSE, NULL. СУБД ORACLE не поддерживает тип данных BOOLEAN.
- 17. Составные типы данных RECORD (запись) похожа на строку из таблицы базы данных, обрабатывается как единое целое.
- 18. Объявление данных Объявление переменных При объявлении переменной ей присваивается имя, задается тип и выделяется память для
- 19. Объявление с ограничениями Объявление с указанием ограничений допустимых значений. объявление без ограничений: для хранения переменной выделяется
- 20. Объявления с привязкой Устанавливается тип данных на основе типа уже определенной структуры данных. Виды привязки: Скалярная
- 21. Обработка исключений Системное исключение. Инициируется исполняемым ядром PL/SQL(NO_DATA_FOUND, TOO_MANY_ROWS, INVALID_NUMBER). Исключение, определяемое программистом. Определяется в коде
- 22. Обработка исключений Инициировать исключение. Остановить выполнение текущего блока PL/SQL путем уведомления исполняемого ядра об ошибке. Обработать
- 23. Обработка исключений Раздел обработки исключений EXCEPTION WHEN имя_искл_1 THEN операторы_обработчика_искл_1; . . . WHEN имя_искл_N THEN
- 24. Обработка исключений Связывание имени исключения с кодом ошибки Коды ошибок – от -20999 до -20000. SQLCODE
- 25. Обработка исключений Инициирование исключений Оператор RAISE RAISE имя_исключения; инициирование системных и объявленных в текущем блоке исключений
- 26. Блок PL/SQL Базовой единицей PL/SQL является блок (block). Все программы PL/SQL состоят из блоков, которые могут
- 27. Виды блоков Допустимы следующие виды блоков: Анонимные (непоименованный) блоки создаются, как правило, динамически и выполняются только
- 28. Блок PL/SQL Блоки могут быть вложены друг в друга. Самый "верхний" блок PL/SQL называется базовым и
- 29. Управляющие структуры PL/SQL Оператор CASE Простой. Поисковый. Простой Связывает одну или несколько последовательностей операторов с соответствующим
- 30. Управляющие структуры PL/SQL Оператор CASE Поисковый Выбирает для выполнения одну из последовательностей операторов в зависимости от
- 31. Управляющие структуры PL/SQL Оператор GOTO Оператор безусловного перехода GOTO имя_метки; … > Операторы_после_метки; За меткой должен
- 32. Управляющие структуры PL/SQL Структуры управления являются основой любого языка программирования, т. к. большинство реальных приложений должно
- 33. Условный оператор IF Три типа условного оператора if В языке PL/SQL предусмотрено три типа условного оператора
- 34. Пример DECLARE P1 NUMBER; P2 NUMBER; P_REZ VARCHAR2(7); BEGIN ….. IF P1 P_REZ := ‘YES’; ELSE
- 35. Циклы Циклы позволяют организовать многократное выполнение одного и того же участка программы до полного завершения обработки.
- 36. Конструкция LOOP-EXIT WHEN-END LOOP Оператор EXIT WHEN условие эквивалентен оператору : IF условие THEN EXIT; END
- 37. Конструкция WHILE-LOOP-END LOOP Пример: DECLARE V_Counter INTEGER BEGIN WHILE V_Counter INSERT INTO temp_table VALUES (V_Counter, ‘LOOP
- 38. Записи PL/SQL Записи (records) PL/SQL аналогичны структурам языка С. С помощью записи можно работать с несколькими
- 39. Курсоры Курсор - это указатель на контекстную область с помощью которого программа PL/SQL может управлять контекстной
- 40. Обработка явных курсоров Для обработки явного курсора в PL/SQL необходимо выполнить 4 шага: 1 ) Объявление
- 41. 3) Выбор результатов в переменные PL/SQL Производится считывание строк из курсора. Частью оператора FETCH является список
- 42. Курсорные атрибуты В PL/SQL существует 4 атрибута, которые применимы к курсорам: %FOUND – это логический атрибут.
- 43. Неявно объявляемые курсоры Оператор select указывается в теле блока, и PL/SQL берет на себя всю заботу
- 44. Пример явного(explicit) курсора DECLARE /*Выходные переменные для хранения результатов запроса */ N_z Студенты. N_зачетки %TYPE; F_Name
- 45. Пример неявного(implicit) курсора BEGIN UPDATE Хобби SET Риск= 10 WHERE Название_Хобби= ‘Бокс’; /* Если предыдущий оператор
- 46. Процедуры Создание процедуры Синтаксис оператора CREATE OR REPLACE PROCEDURE таков: CREATE [OR REPLACE] PROCEDURE имя_процедуры [(аргумент
- 47. Тело процедуры Тело (body) процедуры - это блок PL/SQL, содержащий раздел объявлений, выполняемый раздел и раздел
- 48. Ограничения на формальные параметры При вызове процедуры ей передаются значения фактических параметров, и внутри процедуры к
- 49. Значения параметров по умолчанию Как и переменные, формальные параметры процедуры или функции могут иметь значения по
- 50. Удаление процедур Процедуры и функции, как и таблицы, могут быть удалены. Синтаксис удаления процедуры выглядит следующим
- 51. Функции Создание функций Функции очень похожи на процедуры. Как те, так и другие принимают аргументы, которые
- 52. Функции и процедуры Как и для процедур, список аргументов функции необязателен. В этом случае ни при
- 53. Оператор RETURN Внутри тела функции оператор RETURN применяется для возврата управления программой и результата выполнения функции
- 54. Свойства функций Многие из свойств функций аналогичны свойствам процедур: Функции могут возвращать более одного значения при
- 55. CREATE OR REPLACE FUNCTION AlmostFull( p_Department classes.department%TYPE, p_Course classes.course%TYPE) RETURN BOOLEAN IS V_CurrentStudents NUMBER; V_MaxStudents NUMBER;
- 56. Модули Модуль - это конструкция PL/SQL, позволяющая хранить связанные объекты в одном месте. Модуль состоит из
- 57. Описание модуля CREATE [OR REPLACE] PACKAGE имя_модуля {IS |AS} описание_процедуры | описание_функции | объявление_переменной | определение_типа
- 58. Правила для заголовка модуля 1. Элементы модуля могут указываться в любом порядке. Однако, как и в
- 59. Модули и области действия Любой объект, объявленный в заголовке модуля, находится в области действия и видим
- 60. Инициализация модуля При вызове первый раз модуль конкретизируется (instrantiated). Это значит, что модуль считывается с диска
- 61. Пример модуля генерации случайных чисел CREATE OR REPLACE PACKAGE Random AS PROCEDURE ChangeSeed (p_NewSeed IN NUMBER);
- 62. FUNCTION Rand RETURN NUMBER IS /*Возвращает случайное число в диапазоне от 1 до 32767*/ BEGIN v_Seed
- 63. BEGIN /* Инициализация модуля. Инициализируем исходное значение текущим временем в секундах */ Random.ChangeSeed(TO_NUMBER (TO_CHAR(SYSDATE, ‘SSSS’))); END;
- 64. Триггеры Триггеры так же, как процедуры и функции, являются именованными блоками PL/SQL с разделом объявлений, выполняемым
- 65. Типы триггеров Тип триггера определяется тем, какое событие его активизирует: INSERT (ввод), UPDATE (обновление) или DELETE
- 66. Создание триггеров CREATE [OR REPLACE] TRIGGER имя_триггера {BEFOR | AFTER} активизирующее событие ON ссылка_на_таблицу [FOR EACH
- 67. Элементы триггера и имена триггеров Обязательными элементами триггера являются его имя, активизирующее событие и тело. Условие
- 68. Удаление и запрещение триггеров Триггеры, как и процедуры, и модули, и функции, можно удалять. Синтаксис таков:
- 69. Триггер никак не проверяет данные, которые уже были в таблице до того момента, когда он был
- 70. CREATE [OR REPLACE] TRIGGER classesAFstatement AFTER UPDATE ON classes BEGIN INSERT INTO temp_table (num_col, char_col) VALUES
- 71. CREATE [OR REPLACE] TRIGGER classesAFRow AFTER UPDATE ON classes FOR EACH ROW BEGIN INSERT INTO temp_table
- 72. Ограничения, налагаемые на триггеры Тело триггера является блоком PL/SQL. Любой оператор, выполнение которого разрешено в блоке
- 73. Использование :old и :new в строковых триггерах Строковый триггер срабатывает один раз для каждой строки, обрабатываемой
- 74. Использование :old и :new в строковых триггерах
- 75. Доступ к значениям столбцов Доступ к значениям столбцов в триггере осуществляется с помощью корреляционных имен: :NEW.имя_столбца
- 76. Примеры триггеров 1. Триггер BEFOR, срабатывающий на операторы INSERT и UPDATE, заполняющий поле ID в таблице
- 77. Триггеры INSTEAD OF(замещающие триггеры) Предназначены для выполнения операций вставки, обновления и удаления элементов представлений. Создание триггера
- 79. Объединяем всю информацию в одно представление: CREATE OR REPLACE VIEW delivery_info AS SELECT d.delivery_id, d.delivery_start, d.delivery.end,
- 80. курсор для получения идентификатора курьера по его имени: CURSOR cur_get_driver_id(cp_driver_name VARCHAR2) IS SELECT driver_id FROM driver
- 81. /* Получить идентификатор курьера по его имени. Если имя не найдено, создать новый идентификатор на последовательности.
- 82. Триггер INSTEAD OF UPDATE обновляет столбец delivery_end, если он содержит NULL CREATE OR REPLACE TRIGGER delvery_info_update
- 83. Триггер INSTEAD OF DELETE Следить, чтобы заполненные строки не удалялись. А затем самому удалить указанную строку
- 84. Недостатки реляционных СУБД Слабое представление сущностей реального мира. Семантическая перегрузка. Слабая поддержка ограничений целостности и корпоративных
- 85. Системы объектно-ориентированных баз данных Обязательные свойства Система объектно-ориентированных баз данных должна удовлетворять двум критериям: она должна
- 86. Преимущества и недостатки ООСУБД Преимущества Улучшенные возможности моделирования. Расширяемость. Устранение проблемы несоответствия. Более выразительный язык запросов.
- 87. Объектно-реляционные базы данных В настоящее время применяется множество объектно-ориентированных языков программирования, а том числе C++ и
- 88. В объектно-реляционной базе данных язык SQL (и PL/SQL) используется для манипулирования как реляционными, так и объектными
- 89. Достоинства и недостатки реляционной и объектной моделей Задачи, недоступные для реляционного подхода Реляционной моделью трудно описать
- 90. Задачи, недоступные обеим моделям Пусть мы собираем информацию о лицах в течение длительного периода времени. База
- 91. Реализация объектного подхода в ORACLE В целом объектная реализация в ORACLE традиционна для объектного подхода вообще.
- 92. Хранение объектов в столбцах реляционных таблиц Например, для описания некоторого абстрактного адреса создадим тип: CREATE OR
- 93. Создание таблицы объектов Кроме хранения объектов в полях реляционных таблиц существует возможность хранить объекты и в
- 94. Ссылки на объект Объекты, хранимые в объектных таблицах, имеют одно преимущество перед объектами, хранимыми как атрибут
- 95. Для демонстрации работы со ссылками на объект несколько изменим структуру таблицы DEPARTMENTS: ALTER TABLE DEPARTMENTS DROP
- 96. Примечание: функция DEREF применяется для явного раскрытия ссылки, то есть для получения объекта, который находится по
- 97. Конструкторы Каждый создаваемый объект автоматически имеет конструктор по умолчанию. Об этом заботится сама СУБД. Но программист
- 98. create or replace type some_typ IS OBJECT( name varchar2(30), CONSTRUCTOR FUNCTION some_typ RETURN SELF AS RESULT,
- 99. declare s1 some_typ; s2 some_typ; s3 some_typ; begin вызов конструктора по умолчанию s1:=some_typ('Pete'); dbms_output.put_line(s1.Name); вызов первого
- 100. Статические методы Методы класса являются статическими в том случае, если в их объявлении был указан параметр
- 101. set serveroutput on begin datetime.PrintDateTime; end; / Примечание: нельзя создать объект, состоящий только из статических методов.
- 102. Методы сравнения При выполнении операторов ORDER BY, GROUP BY, DISTINCT или операторов сравнения СУБД должна уметь
- 103. CREATE OR REPLACE TYPE datetime IS OBJECT( CurDateTime DATE, STATIC PROCEDURE PrintDateTime, ORDER MEMBER FUNCTION compare(other
- 104. set serveroutput on declare dt1 datetime:=datetime(sysdate); dt2 datetime:=datetime(sysdate+1); begin if dt1 dbms_output.put_line(dt1.CurDateTime || ‘ меньше, чем
- 105. Объектные представления В силу разных обстоятельств может оказаться удобной имитация объектов на основе данных, хранимых в
- 106. Особенности наследования объектов в ORACLE Реализация механизма наследования в СУБД ORACLE имеет свои особенности по сравнению
- 107. Для того чтобы указать, что новый объект должен унаследовать все свойства и методы супертипа (родительского объекта),
- 108. Абстрактные объекты Абстрактные объекты – это объекты, экземпляры которых нельзя создать (по аналогии с абстрактными классами
- 109. Пример иерархии объектов
- 110. -- создадим объект department_typ11 для хранения информации об отделе: CREATE OR REPLACE TYPE department_typ11 IS OBJECT(Dep_Id
- 111. -- создадим объект boss_typ, наследующий все свойства и методы объекта employee_typ11 (для простоты примера данный объект
- 112. Реализация полиморфизма в СУБД ORACLE Под полиморфизмом в ORACLE понимается возможность использования свойства подстановочности (substitutability) и
- 113. Рассмотрим, каким образом можно хранить данные о разных сотрудниках в одной таблице: -- добавление босса: INSERT
- 114. Расширение и сужение объектных типов Расширение и сужение, очень полезные при работе с объектами в иерархии
- 115. Функция TREAT ORACLE предоставляет специальную функцию TREAT, которая позволяет выполнять операцию сужения, она явно изменяет объявленный
- 116. -- выполним запрос: SELECT e.employee.Name FROM Employees e; -- не удастся выполнить следующий запрос, поскольку свойство
- 117. Оператор IS OF Для того чтобы отобрать объекты какой-то конкретной ветки иерархии объектов используют оператор IS
- 118. Параллельные архитектуры серверов баз данных Основные архитектурные направления: Симметричные многопроцессорные системы (SMP) - форма сильносвязанных многопроцессорных
- 119. Параллельные архитектуры серверов баз данных
- 120. Требования, определяющие качества современной СУБД масштабируемость; производительность; возможность смешанной загрузки разными типами задач; обеспечение постоянной доступности
- 121. Эволюция в области информационных систем направлена в сторону объединения задач: оперативной обработки транзакций (OLTP), поддержки принятия
- 122. Программное зеркалирование (software mirroring)
- 123. Тиражирование (replication) данных
- 124. Средства защиты информации Основные направления борьбы с потенциальными угрозами конфиденциальности и целостности данных: идентификация и проверка
- 125. Основные механизмы безопасности Идентификация и аутентификация при помощи паролей; управление доступом (системные привилегии, объектные привилегии); механизм
- 126. Инкапсуляция передаваемой информации в специальных протоколах обмена Инфраструктуры с открытыми ключами. Использование подобных методов основано на
- 127. Ограничение информационных потоков Firewalls Метод подразумевает создание между локальной и глобальной сетями специальных промежуточных серверов, которые
- 128. Журнал регистрационной информации используется для следующих целей: обнаружения необычных или подозрительных действий пользователей и идентификации лиц,
- 129. Метки безопасности Для реализации принудительного управления доступом с субъектами и объектами ассоциируются метки безопасности. Метка субъекта
- 130. Что будет результатом выполнения следующего кода? set serveroutput on declare a number:=10; b number:=0; begin a:=a/b;
- 131. Принудительное управление доступом основано на сопоставлении меток безопасности субъекта и объекта. Субъект может читать информацию из
- 132. Промежуточное программное обеспечение (ППО) баз данных ППО баз данных обеспечивает доступ к локальному или удаленному ресурсу
- 133. Шлюзы и концентраторы баз данных обеспечивают доступ на языке SQL к разнотипным источникам данных. Когда источники
- 134. Доступ к базам данных Системы прозрачного доступа к БД представляют собой наиболее развитый сектор рынка ППО.
- 135. SQL-шлюз выполняет синтаксический разбор такого запроса, анализирует и оптимизирует его и в конце концов выполняет преобразование
- 136. Архитектура ODBC(OPEN DATABASE CONNECTIVITY) Технология ODBC разрабатывалась как общий, независимый от источников данных, способ доступа к
- 137. Этапы процедуры запроса данных через ODBC API Этап 1 - установление соединения. Этот этап состоит в
- 138. Этап 3 - извлечение данных. Перед извлечением данных возвращается информация о результирующем наборе, в частности, число
- 139. Oracle8 Направления развития типов и структур данных: расширение набора встроенных типов данных; расширение спектра стандартных структур
- 140. Идентификаторы реляционных строк Каждая строка реляционной таблицы в СУБД Oracle8 имеет уникальный идентификатор. Этот идентификатор имеет
- 141. Коллекции Коллекции в Oracle8 представляют собой одномерные массивы с подвижными верхними границами и подразделяются на два
- 142. Методы, применимые к коллекциям EXISTS (проверяет, существует ли элемент коллекции с заданным номером); COUNT (выдает текущее
- 143. Вызов этих методов оформлен по-объектному принципу: за именем коллекции через точку следует имя метода, затем в
- 144. Oracle 9i СУБД Oracle9i быстро превратилась в СУБД для всех типов данных – от простых до
- 145. Можно создать новые типы данных, например,представляющие клиентов (customers), финансовые портфели (financial portfolios), фотографии и телефонные сети
- 146. Объектно-ориентированная разработка приложений Индустриальные стандарты для разработки объектно-ориентированных приложений: UML (Unified Modeling Language) – унифицированный язык
- 147. Объектные типы Корпорация Oracle расширила SQL, который позволяет пользователям: определять свои собственные типы (которые представляют их
- 148. Бизнес-объект может содержаться внутри другого бизнес-объекта; на него может ссылаться другой объект (используя REF); к нему
- 149. Синонимы типов Точно так, как можно создавать синонимы таблиц, представлений и других различных объектов схемы, можно
- 150. Поддерживаемые операции эволюции типов Операции над атрибутами типов: добавление атрибута для типа; удаление атрибута типа; модификация
- 151. Связывания для языков программирования Полная поддержка объектно-реляционной системы типов Oracle доступна в связываниях для ряда языков
- 152. Надежность и масштабируемость Real Application Cluster (RAC) Достижением Oracle 9i в области обеспечения высокой надежности и
- 153. Поддержка XML, дуализм XML/SQL Сервер Oracle поддерживает не только реляционную, объектную, многомерную модель данных, но и
- 154. Поддержка OLAP Реляционная модель удобна для представления данных в информационно-управляющих системах, однако для аналитических систем более
- 155. Механизм Oracle Streams В СУБД Oracle существует много различных вариантов передачи данных и сообщений о событиях
- 156. Oracle 10g Oracle первой предложила СУБД, предназначенную для корпоративных сетей нового типа - систем распределенных вычислений
- 157. Oracle Database 10g Oracle Database 10g предназначена для эффективного развертывания на базе различных типов оборудования, от
- 158. Oracle Application Server 10g Oracle Application Server 10g - это основанная на стандартах интегрированная программная платформа,
- 159. Oracle Enterprise Manager 10g Oracle Enterprise Manager 10g - это первое в отрасли программное обеспечение, разработанное
- 160. Oracle 11g Развитие СУБД Oracle как платформы для GRID вычислений Начиная с версии 10g компания Oracle
- 161. Все большую популярность приобретают многоядерные процессоры. Сейчас большинство новых серверов имеет двух – четырех ядерные процессоры
- 163. Система состоит из нескольких блоков: извлечение данных из исходных систем интеграция, преобразование и денормализация данных блок
- 164. После реализации такой линейки из 8+16=24 узлов выяснилось, что стоимость такой инфраструктуры, благодаря использованию дешевых элементов,
- 166. Хранилища данных (Data Warehouse) и оперативный анализ данных (On-Line Analytical Processing, OLAP) новые информационные технологии, которые
- 167. Хранилище данных (Data Warehouse) Создание хранилищ данных - процесс сбора, отсеивания и предварительной обработки данных с
- 168. Хранилище Данных предметно-ориентированный, интегрированный, зависимый от времени набор данных, предназначенный для поддержки принятия решений различными группами
- 169. Интегрированность означает, что, например, данные о клиентах, подразделениях и банковских продуктах, полученные из различных источников, хранятся
- 170. Предпосылки создания ХД Ужесточение конкуренции отсутствием высокодоходных финансовых инструментов и невысокой средней нормой прибыли Развитие систем
- 171. Требования к хранилищам данных Нацеленность на ключевые понятия, а не процессы; поддержка высокой скорости получения данных
- 172. Структура СППР с физических ХД При загрузке в ХД данные фильтруются. Во время загрузки данные очищаются
- 173. Отличия хранилищ данных от баз данных обычные базы данных предназначены для того, чтобы помочь пользователям выполнять
- 174. OLAP (On-Line Analytical Processing) Концепция OLAP была описана в 1993 году Эдгаром Коддом. OLAP - технология
- 175. Приложения OLAP Приложения с OLAP-функциональностью должны: предоставлять пользователю результаты анализа за приемлемое время, осуществлять логический и
- 176. Приложения OLAP Многомерность в OLAP-приложениях может быть разделена на три уровня: Многомерное представление данных - средства
- 177. Основные элементы хранилищ данных Оперативные источники данных разнородные источники данных, слабоструктурировнные Процедура загрузки данных экспоненциально зависит
- 178. Структура хранилищ данных типичная структура хранилища данных существенно отличается от структуры обычной реляционной СУБД – как
- 179. Организация Хранилища Данных Данные в ХД делятся на три основных категории: Детальные данные (переносимые из источников),
- 180. Обобщенная архитектура системы поддержки принятия решений
- 181. Исследования в области баз данных Сообщество разработчиков баз данных предлагает расширить спектр исследований, приступив к решению
- 183. Скачать презентацию