Oracle_Лекция1.pptx
- Количество слайдов: 36
Введение в ORACLE Учебный центр информационных технологий «Информатика» 2013
Предмет изучения Познакомить слушателей с особенностями СУБД ORACLE Обучить навыкам создания основных объектов базы данных Познакомить с написанием программных единиц на PL/SQL
Содержание лекции № 1: Краткие сведения о СУБД ORACLE История создания и различные версии продукта Клиентская и серверная часть и их назначение Физический и логический уровень организации баз данных
Краткие сведения о СУБД ORACLE Одна из первых реляционных СУБД Первая коммерческая СУБД, поддерживающая язык SQL Наиболее развитая реализация «Клиент/Сервер» Сервер СУБД может располагаться на любой платформе “Открытость”основная концепция развития продукта
Клиенты Oracle в России
История создания 1977 – Ларри Эллисон, Боб Майнер и Эд Оутс основали компанию Software Development Laboratories (SDL) 1979 – SDL сменила имя на Relational Software, Inc. (RSI) и выпустила СУБД Oracle 1982 – RSI принимает решение о переименовании в Oracle
Первые версии продукта 1979– Oracle v. 2 Полная поддержка SQL 1983 – Oracle v. 3 Атомарная завершённость транзакций 1984 – Oracle v. 4 Реализована модель контроля доступа к базе данных 1985 – Oracle v. 5 Введена архитектура клиент/сервер 1986– Oracle 5. 1 Появилась поддержка распределённых запросов
1988 - Oracle v. 6 Введены генераторы последовательностей, блокировка на уровне строк 1992 – Oracle v. 7 PL/SQL стал средством описания процедур и триггеров, разделяемый SQL кэш на сервере и разделяемый пул процессов сервера, также было полностью реализованы декларативные ограничения референциальной целостности, были введены роли 1994 - Oracle v. 7. 1 Параллельное выполнение запросов, полная интеграция PL/SQL и SQL 1997 – Oracle v. 8 Поддержаны элементы объектно -ориентированного проектирования и программирования, секционирование 1998– Oracle v. 8 i Release 1 Java-машина в СУБД, хранимые процедуры java/PL/SQL 1998– Oracle v. 8 i Release 2 встраиваемая XML обработка на стороне СУБД 2000– Oracle v. 8 i Release 3 поддержка DES шифрования и SSL для HTTP соединений
2001 – Oracle v. 9 i Release 1 механизм создания репликаций Oracle Streams, стало возможно переименование столбцов и ограничений целостности, технология RAC 2002 – Oracle v. 9 i Release 2 хранение объектов в XML 2004 – Oracle v. 10 g Release 1 поддержка grid вычислений, табличные пространства с межплатформенной переносимостью 2005 – Oracle v. 10 g Release 2 Сжатие в утилитах Data Pump
Последние версии продукта 2007 – Oracle v. 11 g Release 1 Генерация нового значения последовательности в SQL коде, автоматически расширяемый диапазон секционирования, отслеживание изменений объекта 2009 – Oracle v. 11 g Release 2 Подмена данных на лету 2013 – Oracle v. 12 c Возможность использования PL/SQL в SQL, использование последовательностей в качестве значений по умолчанию
Полезные ссылки: http: //www. oracle. com/us/downloads/ind ex. html - для скачивания Oracle http: //docs. oracle. com/cd/E 11882_01/inde x. htm - документация по Oracle http: //www. devart. com/ru/dbforge/oracle/ studio/ - инструмент для разработки баз данных Oracle http: //tahiti. oracle. com/ - Описание нового функционала в Oracle с 9 -й версии
Клиентская и серверная часть и их назначение Клиентская часть Серверная часть Экземпляр базы данных Клиентское приложение SGA Фоновые процессы Клиент Oracle База данных
Соединение с экземпляром базы Пользователь данных ский процесс Пользовател ьский процесс Listener Пользователь SQL запрос Пользовател ьский процесс Shared server Диспетчер Серверны й процесс Соединение Dedicated server SGA Пользовательская сессия – соединение пользователя с базой данных
Кластерная технология ORACLE Сеть общего пользования Собственная сеть кластера Независимые компьютеры/ узлы кластера Разделяемые устройства хранения
Особенности RAC Oracle Clusterware производит мониторинг и управление кластерными базами данных и другими программными компонентами, обеспечивающими их функционал. При старте узла кластера Oracle Clusterware автоматически производит старт всех экземпляров СУБД Oracle, прослушивающих процессов (listeners) и служб Automatic Storage Management обеспечивает высокопроизводительные операции дискового ввода-вывода и простоту в управлении файловой системой и дисками. Использование приложением механизма быстрого оповещения приложения Fast Application Notification (FAN) позволяет ускорить реакцию приложения на сбои внутри кластера и улучшить качество распределения рабочей нагрузки между доступными вычислительными ресурсами. Real Application Clusters обеспечивает для СУБД Oracle еще большую доступность - RAC исключает ситуацию, когда выход из строя сервера или его программного обеспечения приводит к выходу из строя всей системы в целом. Real Application Clusters обеспечивает непрерывное обслуживание, как при сбоях, так и при выполнении запланированных сервисных работ. Oracle Real Application Clusters обладает инновационной технологией распределения нагрузок, которая обеспечивает наилучшую производительность приложений и их высокую доступность на заданной конфигурации
Физический и логический уровень организации базы данных Логический Схемы Физический База данных Табличные пространства Файлы данных Сегменты Экстенты Блоки данных Блоки операционно й системы
Архитектура хранения данных Управляющие файлы Файлы данных Файл параметров Оперативные файлы журналов повторного выполнения Файлы резервного копирования Архивные файлы журналов повторного выполнения Файлы паролей Alert log и трассировочные файлы
Как хранятся таблицы Колонки Таблица А Таблица Б Строки Сегмент Таблица Блоки Экстент
Блок базы данных Заголовок блока Свободное пространство Данные строки В таблице DBA_SEGMENT S содержится информация о количестве блоков каждого сегмента базы данных и месторасположении этих блоков
Схемы Схема (~пользователь)– это набор объектов различной логической структуры данных. Каждая схема принадлежит пользователю базы данных и имеет одинаковое с ним имя. Схема создаётся при создании пользователя. Каждый пользователь владеет одной схемой. Профиль – Каждому пользователю соответствует профиль, который содержит информацию об ограничениях на использование вычислительных ресурсов и политике безопасности пароля доступа. Одному пользователю может быть назначен только один профиль. Привилегия – это право выполнять конкретный тип предложений SQL, или право доступа к объекту другого пользователя. ORACLE имеет три вида привилегий: системные привилегии, объектные привилегии и ролевые привилегии. Каждая системная привилегия позволяет пользователю выполнять конкретную операцию в базе данных или определенный класс операций. Каждый тип объектов имеет различные привилегии, ассоциированные с ним. Роль – совокупность объектных и системных привилегий. Каждому пользователю могут соответствовать несколько ролей. Роль позволяет упростить задачи администратору в системах с большим числом пользователей. Информацию о всех пользователях, ролях и привилегиях можно посмотреть в таблицах – dba_users; Dba_roles; dba_role_privs; dba_sys_privs; dba_tab_privs;
Пример создания пользователя CREATE USER 1 IDENTIFIED BY qwerty DEFAULT TABLESPACE USERS QUOTA 10 M ON USERS; / GRANT CREATE SESSION, ALTER SESSION TO USER 1 / GRANT CREATE DATABASE LINK TO USER 1 / GRANT CREATE CLUSTER TO USER 1 / GRANT CREATE ANY TABLE, ALTER ANY TABLE, DROP ANY TABLE, DELETE ANY TABLE TO USER 1 / GRANT CREATE ANY VIEW, DROP ANY VIEW TO USER 1 / GRANT CREATE ANY SEQUENCE, ALTER ANY SEQUENCE, DROP ANY SEQUENCE, SELECT ANY SEQUENCE TO USER 1 / GRANT CREATE ANY SYNONYM, DROP ANY SYNONYM TO USER 1 / GRANT CREATE TRIGGER, ALTER ANY TRIGGER, DROP ANY TRIGGER TO USER 1 / GRANT CREATE ANY PROCEDURE, ALTER ANY PROCEDURE, DROP ANY PROCEDURE, EXECUTE ANY PROCEDURE TO USER 1 / GRANT CREATE ANY TYPE, ALTER ANY TYPE, DROP ANY TYPE TO USER 1;
Таблицы и представления Таблицы содержат данные и состоят из столбцов и строк. Для ссылки на строку таблицы можно использовать псевдостолбец ROWID, формируемый Oracle, который содержит уникальный адрес каждой строки. Представления – это образ данных, который показывает данные таблиц или других представлений. Представление само по себе не содержит данных. При работе с представлениями все изменения будут передаваться в соответствующие исходные таблицы. Представление при выборке данных выглядит как обычная таблица, но на самом деле это SQL – оператор сохраняемый в базе данных. Они позволяют ограничивать доступ к таблице выборкой только ее отдельных столбцов/строк и могут объединять несколько таблиц в одну структуру. Информацию обо всех таблицах и представлениях в базе данных можно посмотреть в таблицах – dba_tables; dba_views;
Индексы создаются на базе таблиц для ускорения поиска и чтения данных. Если строки таблицы не упорядочены, то значения индекса, созданного по одному или нескольким столбцам, упорядочены. Это позволяет быстрее производить поиск данных по индексу, избегая полного перебора всех строк. После нахождения нужного значения в индексе, искомая строка определяется по значению ROWID строки, хранимому в индексе. Индексы также служат для обеспечения целостности данных и позволяют гарантировать их уникальность.
Последовательности Последовательность (sequence) - это объект базы данных, аналогичный объекту "Счетчик" СУБД MS Access. Каждое следующее или текущее значение последовательности, с учетом заданного шага приращения получается, используя псевдостолбцы NEXTVAL или CURRVAL. Как правило, последовательности создаются для формирования значений столбца, который используется как первичный ключ. Пример создания последовательности CREATE SEQUENCE 1 START WITH 0 INCREMENT BY 10 MAXVALUE 100 MINVALUE 0;
Связи баз данных Для того чтобы предоставить доступ к удаленным базам данных в распределенной системе, необходимо установить в локальной базе данных связи баз данных. Связь баз данных (database link) обозначает однонаправленную линию связи между двумя базами данных Oracle. Частная связь баз данных (private database link) — это связь, которая создается в конкретной схеме базы данных. Применять частную связь баз данных для доступа к информации и объектам удаленной базы данных может только владелец частной связи и подпрограммы PL/SQL схемы (модули, процедуры, функции, триггеры и методы объектных типов). Таким образом, частные связи баз данных безопаснее, чем общие и глобальные связи. Общая связь баз данных (public database link) — это связь, создаваемая в домене PUBLIC базы данных. Применять общую связь баз данных для доступа к информации и объектам удаленной базы данных могут все пользователи, модули, методы базы данных и т. д. Применение общих связей упрощает процесс управления связями базы данных, когда доступ к удаленной базе данных Oracle нужен всем пользователям локальной базы данных. Глобальная связь баз данных (global database link) — это связь, управляемая сервером имен Oracle. При создании этого сервера для сети Net 8 автоматически строятся глобальные связи для каждой базы данных Oracle, имеющейся в сети, и сервер имен Oracle управляет этими связями. Применять глобальную связь баз данных для доступа к информации и объектам удаленной базы данных могут все пользователи и программы в любой базе данных. Когда в большой распределенной системе для работы с глобальными связями всех баз данных используется сервер имен Oracle, управление такими связями осуществляется централизовано и достаточно просто.
Cинонимы Синоним (synonym) определяет дополнительное имя, используемое для доступа к объекту. Синонимы могут быть общедоступные или индивидуальные, которые может применять только пользователь, владеющий объектом. Все общедоступные синонимы принадлежат схеме PUBLIC, объекты которой доступны всем зарегистрированным пользователям базы данных Oracle. К синониму могут обращаться все пользователи, но данные получат только пользователи имеющие привилегии на чтение на исходный объект. Пример создания синонима: CREATE OR REPLACE SYNONYM 1 FOR USER 1. TABLE 1@DBLINK 1;
Объектные типы – это пользовательский тип данных, который включает в себя данные и функции для работы с этими данными. Объектный тип в Oracle состоит из двух частей: спецификации и тела Позволяют использовать ООП в Oracle – Инкапсуляцию; Наследование и Полиморфизм Пример создания объектного типа: CREATE OR REPLACE TYPE USER_TYPE 1 AS OBJECT ( ); CREATE OR REPLACE TYPE BODY USER_TYPE 1 AS END;
Материализованные представления Материализованное представление - физический объект базы данных, содержащий результат выполнения запроса. Материализованные представления позволяют многократно ускорить выполнение запросов, обращающихся к большому количеству (сотням тысяч или миллионам) записей, позволяя за секунды (и даже доли секунд) выполнять запросы к терабайтам данных. Это достигается за счет прозрачного использования заранее вычисленных итоговых данных и результатов соединений таблиц. Предварительно вычисленные итоговые данные обычно имеют очень небольшой объем по сравнению с исходными данными. Целостность данных в материализованных представлениях поддерживается за счёт периодических синхронизаций или с использованием триггеров.
Триггеры Триггер - это блок инструкций PL/SQL, связанный с определенной таблицей и автоматически запускаемый Oracle при попытке выполнить один из следующих SQL-операторов: DELETE, INSERT или UPDATE. Существуют ещё системные триггеры, которые срабатывают на события самой БД. Триггеры используются для: Реализации сложных ограничений целостности данных, которые невозможно осуществить через описательные ограничения, установленные при создании таблиц. Организации всевозможных видов аудита. Оповещения других модулей о том, что делать в случае изменения информации содержащейся в БД. Для реализации так называемых "бизнес-правил“. Для организации каскадных воздействий на таблицы БД.
Триггер уровня таблицы уникальное имя триггера (задание параметров не требуется, поскольку триггер - процедура без параметров); • активизирующее действие - команда, которая вызывает запуск триггера, такими командами являются INSERT, DELETE, UPDATE; время активизации - выполнение триггера до (BEFORE) или после (AFTER) выполнения активизирующего действия; область действия - выполнение триггера либо один раз для каждого оператора модификации таблицы, либо для каждой строки (в последнем случае следует добавить фразу FOR EACH ROW); условие активизации - необязательное дополнительное условие, которое должно выполняться для запуска триггера (фраза WHEN); тело триггера - действия, выполняемые триггером (блок PL/SQL).
Процедуры, функции Хранимые процедуры/функции - это программы на PL/SQL, хранимые в самой базе данных и выполняющие определенные действия над ней. Хранимые процедуры могут использоваться наравне с инструкциями SQL, при работе с данной конкретной базой данных, а хранимые функции могут также использоваться в самих инструкциях SQL, в условиях отбора. Возможен вызов одной хранимой процедуры/функции из другой, или вызов хранимой процедуры из триггера.
Пакеты Пакет - это инкапсулированный набор хранимых процедур, функций, переменных, констант, курсоров , исключений (обработка ошибок), хранимых в базе данных вместе. Использование пакетов имеет ряд преимуществ: Более удобное управление полномочиями; Возможность изменения объектов пакета без изменения зависимых объектов схемы; Использование глобальных переменных и курсоров всеми процедурами и функциями пакета; возможность перегрузки (overloading) процедур и функций, имеющих одинаковые имена, но разные списки аргументов (по количеству и/или по типу).
Выполнение заданий по расписанию Для автоматизации выполнения различных операций используются плановые задания (job) выполняемые по расписанию (Schedule). Job может выполнять по заданному расписанию блок PL/SQL, хранимую процедура на PL/SQL или на Java, внешняя процедуру на С или даже команду ОС.
Рекомендуемая литература: Том Кайт Oracle для профессионалов
Контакты: Хайновская Наталья natalix 83@mail. ru
СПАСИБО ЗА ВНИМАНИЕ!
Oracle_Лекция1.pptx