Основы баз данных Лекция 3. Основы архитектуры СУБД Oracle Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н. 14-18 апреля 2008.

Презентация:



Advertisements
Похожие презентации
1.Доступ к словарю базы данных 1.v$ 2.dba_ 3.all_ 4.user_ 2.Просмотр системных view cистемные view - dict (dictionary) столбцы системных view – dict_columns.
Advertisements

СУБД ЭВОЛЮЦИЯ ТЕХНОЛОГИЙ В УПРАВЛЕНИИ ДАННЫМИ. литература Дейт К. Дж., Введение в системы баз данных, 2001 Гарсиа - Молина Г., Ульман Дж., Уидом Дж. Системы.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Администрирование информационных систем Лекция 4. Система управления базами данных.
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Файл Сервер ORACLE База данных Экземпляр Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных SGA База данных.
Основы DB2 Белькова Евгения, программист отдела тестирования, группа DB2 Tools.
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
Лекция 27 Лекция 27 Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных. Контроль параллельной.
Что Такое Progress ?. Progress Software Corporation l Основана в 1981 l Штаб-квартира в Bedford, USA l 1,100 сотрудников l Присутствие в 60+ странах l.
Администрирование информационных систем 8 семестр Администрирование СУБД Oracle Аврунев Олег Евгеньевич, зам. директора ЦИУ Лекция 1.
Репликация – это процесс создания и поддерживания копии объектов базы данных на удаленном сервере.
Репликация – это процесс создания и поддерживания копии объектов базы данных на удаленном сервере.
Дискретные и автономные транзакции (начиная с версии Oracle8i)
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Хранение таблиц По строкам По столбцам Строки нескольких таблиц группируются по общему атрибуту.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Администрирование информационных систем Лекция 5. СУБД ORACLE.
Транксрипт:

Основы баз данных Лекция 3. Основы архитектуры СУБД Oracle Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н апреля 2008

СУБД Oracle База данных и экземпляр базы данных, серверные процессы Объекты и понятия БД Структура базы данных Oracle Типы данных Программируемость Триггеры, индексы

Oracle занимает почти половину мирового рынка СУБД Высокая надежность VLDB 8 экзабайт Высокая производительность Надежная система защиты Различные архитектуры клиент/сервер, 3х-уровневая, кластер, GRID Многосерверные архитектуры Многоплатформенность Все типы данных Различные приложения (OLTP-Online Transaction Processing, DSS- Decision Support System, OLAP - Online Analytical Processing, Mining) Управляемость (EM)

Сетевые протоколы TCP/IP LU6.2 SPX/IPX OSI DECnet Другие Независимость от платформ Оконные менеджеры MS Windows X Motif Macintosh Character Mode Block Mode Другие Оборудование Compaq Sun HP IBM Mac Другие NCR Pyramid Sequent Sun Intel Операционные системы OS/390 TRU64 Solaris AIX HP Unix NT Linux Другие

Независимость от архитектуры Один Процессор Симметричная многопроцес-сорная архи-тектура (SMP) Слабо сцепленные процессоры (кластер) Массивно параллельный компьютер (MPP) Можно использовать любые вычислительные архитектуры.

Соглашения по стандартам Комитеты ANSI X3H2 X3H2.1 RDA SQL Access Group OMG Стандарты баз данных FIPS ANSI X Стандарты защиты данных Текущее состояние: NCSC TDI C2, B1 ITSEC F-C2/E3, F-B1/E3 Сетевые стандарты OSI DNSIX (MaxSix) Межоперабельность IDAPI, ODBC TSIG X/Open DCE DDE

Пользовательский процесс Серверный процесс PGA База данных и instance (экземпляр) Экземпляр SGA Разделяемый пул DBWRLGWR База данных Управляющие файлы Файлы данных Файлы журнала Файл паролей Архив журнальных файлов Файл параметров

Файлы операционной системы Существуют следующие основные группы файлов на диске, составляющие базу данных: 1.Файлы базы данных - *dbf 2.Управляющие файлы - control file 3.Журнальные файлы - redo & arch 4.Файл настроек oracle - init.ora 5.Файл паролей - orapw

System Global Area и процессы SQLPLUS> CONNECT / AS SYSDBA SQLPLUS> STARTUP PFILE=/DISK1/initU15.ora SQLPLUS> CONNECT / AS SYSDBA SQLPLUS> STARTUP PFILE=/DISK1/initU15.ora initU15.ora Экземпляр SGA Разделяемый пул Библиотечный кеш Журнальный буфер PMO N DBWR SMON LGWRCKPT ARCH Кеш буферов БД Кеш словря данных

Типы структур хранения

Серверные процессы Типовые процессы ckpt - процесс отвечающий за то, чтобы все изменения данных в памяти были записаны на диск; pmon - обеспечивает наблюдение за пользовательскими процессами и высвобождение ресурсов по их завершении; smon - обеспечивает дефрагментацию места в БД; reco - отвечает за распределенные транзакции; dbw0 - отвечает за сохранение измененных данных на диск; lgwr - отвечает за запись в redo log файлы. arc - отвечает за архивирование redo log файлов Процесс обеспечивающий подключение по сети: LISTENER В Oracle 11g процессов, поддерживающих экземпляр базы данных, больше

Startup – стартует экземпляр Shutdown – останавливает экземпляр Immediate Нельзя просто выключить

Журналирование и Rollback DB Block Buffers Log Buffer System Global Area Rollback Redo Redo Log Files Журналы используются только для восстановления БД (redo) Rollback отделены от Log Транзакции могут использовать > 1 журнала Rollback хранятся в Rollback Segments (Undo Tablespace) Rollback Segments используются для Undo (отката) и Multi-Version Read Consistency DB Log Log User

Логическая Физическая База данных Табличное пространство Файл данных Блок ОС Блок Oracle Сегмент Экстент Структура базы данных

В одной БД могут быть tablespaces с разными размерами блока Схема и пользователь Все объекты в схемах

Объекты и понятия БД Таблицы (partitions – секционирование таблиц) Индексы Индексные таблицы View Sequence Программные единицы (proc, func, pack) Триггеры Ограничения Синонимы Кластер Database link Rollback сегменты Временные сегменты Сегменты LOB Вложенные таблицы Массивы Пользовательские типы данных Материализованные view Иерархии Dimension Пользователи Привилегии Роли

Типы данных Oracle CHAR(N), NCHAR(N) VARCHAR2(N), NVARCHAR2(N) NUMBER(P,S) DATE RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Тип данных Встроенный Пользовательский Скалярный Ссылки Коллекция

Массивы и встроенные таблицы Массивы Массивы с переменной длиной: VARRAY Обеспечивают упорядоченные 1-to-many отношения Набор скалярных величин Доступны через PL/SQL Встроенные таблицы (Nested Tables) Обеспечивают неупорядоченные 1-to-many отношения Набор скалярных величин Доступ через SQL DML

Типы данных для хранения больших объектов LONG, LONG RAW Один столбец в таблице До 2 гигабайтов SELECT возвращает данные Внутреннее хранение данных Нет поддержки объектов Последовательный доступ LOB Несколько столбцов в таблице До 4 гигабайтов SELECT возвращает указатель Внутреннее или внешнее хранение данных Поддержка объектных типов Произвольный доступ

Новая функциональность для реализации объектных расширений Определение новых типов различными способами Возможность определения для новых типов: Специального индексирования Перегрузки операций Настройки оптимизатора Сервисных функций Data Cartridge Operators Optimizer Indexes Object Types Services

Триггер – хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события Триггер на уровне таблицы CREATE OR REPLACE TRIGGER tr2 AFTER UPDATE ON rayon BEGIN insert into info values ('table "rayon" has changed'); END; Триггер на уровне строки CREATE OR REPLACE TRIGGER tr1 AFTER UPDATE ON rayon FOR EACH ROW BEGIN insert into info values ('one string in table "rayon" has changed'); END;

Ограничения целостности DEPT DEPTNO DNAME 35 Accounting EMP EMPNO MGR DEPTNO PROJECT 5540 Smith PROJ PROJNO BUDGET DEPTNO Декларативный синтаксис Ссылочная целостность Каскадное удаление Enable/Disable Exception Reporting

Программируемость Database Triggers Определенные точки срабатывания Enable/Disable Create or Replace Множество триггеров одного типа Доступ к :old & :new значениям Хранятся в откомпилированном виде Before Statement Before Row After Row After Statement Implicit Operations

Новые типы событий Trigger Новые триггеры STARTUP SHUTDOWN SERVERERROR LOGON LOGOFF CREATE ALTER DROP Новый уровень триггеров База данных Схема CREATE TRIGGER register_open ON DATABASE STARTUP BEGIN … dbms_aq.enqueue(...); … END; CREATE TRIGGER register_open ON DATABASE STARTUP BEGIN … dbms_aq.enqueue(...); … END;

Программируемость Ship Check Status Status Cancel Хранимые процедуры Пакеты Функции Полномасштабный язык Return Cursor Exception Handlers SQL3 Syntax Persistent Variables Overloading Encapsulation Dependency Tracking Wrappers Server Side File I/O Application Partitioning PL/SQL и Java

PL/SQL Процедурный и непроцедурный язык Циклы, ветвления, обработка ошибок и т д Язык логики БД Расширение языка SQL Интерпретатор и компилятор Инструмент SQL Developer

Пример процедуры на PL/SQL begin for i in loop for i in loop insert into t values ( i ); insert into t values ( i ); if ( mod(i, 100) = 0) then if ( mod(i, 100) = 0) then commit; commit; end if; end if; end loop; end loop;end;/

Java VM Почему Java в БД ? ­ Производительность, масштабиру- емость, переносимость, управля- емость, безопасность The Oracle Java VM ­Масштабируемость: K байт/ сессия vs 3-6M на JDK ­Быстрее: скомпилированный код выполняется в 40 раз быстрее, чем интерпретируемый код ­Интегрирован с SQL, PL/SQL ­Стандартизация ­100% Java, JDK, standard API ­Servlet, JSP, EJB, JNDI Shared memory RDBMS libraries Class Loader Native Compiler JDK libraries, APIs Oracle Oracle : интегрированная виртуальная Java машина

Enterprise Java Engine Поддержка различных сервисов Java JNDI, JTA, Java Security, SSL, JMS, RMI/IIOP, Persistence Оптимизация производительности времени выполнения Bytecode Accelerator (компиляция) Web контейнеры Servlet, Java Server Pages Масштабируемый EJB контейнер (Entity EJB, XML descriptors) JDBC 2.0 драйверы

Индекс объект базы данных, создаваемый с целью повышения производительности выполнения запросов. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному значению путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет находить нужную строку по заданному значению. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск - например, балансированного дерева.

Индексация h(n) = [n /C] mod B Standard B-Tree Hash Cluster Bit Mapped B-Tree Cluster B-Tree индексы можно строить Online & in Parallel Hashing позволяет доступ к строке по хэш алгоритму Многотабличный кластер позволяет заранее соединить данные Bit Map индехы хороши для запросов к колонкам с низкой кардинальностью Индексы можно перестроить на базе существующих

Индексы Индексные таблицы Пользовательские индексы (R*Tree) Перестройка индекса на лету Индекс от функции