be42aea1e139845757ac819bb1644d20.ppt
- Количество слайдов: 32
Основы баз данных Лекция 3. Основы архитектуры СУБД Oracle Желенкова Ольга Петровна, с. н. с. ОИ САО РАН, к. ф. -м. н. 14 -18 апреля 2008
• СУБД Oracle • База данных и экземпляр базы данных, серверные процессы • Объекты и понятия БД • Структура базы данных Oracle • Типы данных • Программируемость • Триггеры, индексы
Oracle занимает почти половину мирового рынка СУБД − − − − − Высокая надежность VLDB 8 экзабайт Высокая производительность Надежная система защиты Различные архитектуры клиент/сервер, 3 х-уровневая, кластер, GRID Многосерверные архитектуры Многоплатформенность Все типы данных Различные приложения (OLTP-Online Transaction Processing, DSSDecision Support System, OLAP - Online Analytical Processing, Mining) − Управляемость (EM)
Независимость от платформ Операционные системы Оконные менеджеры − MS Windows − X Motif − Macintosh − Character Mode − Block Mode − Другие Сетевые протоколы • • • TCP/IP LU 6. 2 SPX/IPX OSI DECnet Другие Оборудование • • • Compaq Sun HP IBM Mac Другие • • • • OS/390 TRU 64 Solaris AIX HP Unix NT Linux Другие NCR Pyramid Sequent Sun Intel
Независимость от архитектуры Один Процессор Симметричная многопроцес сорная архи тектура (SMP) Слабо сцепленные Массивно процессоры (кластер) параллельный Можно использовать любые вычислительные архитектуры. компьютер (MPP)
Соглашения по стандартам Стандарты баз данных • FIPS 127 2 • ANSI X 3 135. 1992 Стандарты защиты данных Текущее состояние: • NCSC TDI C 2, B 1 • ITSEC F C 2/E 3, F B 1/E 3 Сетевые стандарты • OSI • DNSIX (Max. Six) Комитеты • • ANSI X 3 H 2. 1 RDA SQL Access Group OMG Межоперабельность • IDAPI, ODBC • TSIG • X/Open • DCE • DDE
База данных и instance (экземпляр) Экземпляр SGA Серверный процесс Разделяемый пул PGA Пользовательский процесс DBWR Управляющие файлы Файл параметров Файл паролей LGWR Файлы журнала Файлы данных База данных Архив журнальных файлов
Файлы операционной системы Существуют следующие основные группы файлов на диске, составляющие базу данных: 1. 2. 3. 4. 5. Файлы базы данных *dbf Управляющие файлы control file Журнальные файлы redo & arch Файл настроек oracle init. ora Файл паролей orapw
System Global Area и процессы Экземпляр SGA Кеш буферов БД SMON Разделяемый пул Библиотечный кеш Журнальный буфер DBWR PMON init. U 15. ora SQLPLUS> CONNECT / AS SYSDBA SQLPLUS> STARTUP PFILE=/DISK 1/init. U 15. ora Кеш словря данных CKPT LGWR ARCH
Типы структур хранения
Серверные процессы • Типовые процессы ckpt - процесс отвечающий за то, чтобы все изменения данных в памяти были записаны на диск; pmon - обеспечивает наблюдение за пользовательскими процессами и высвобождение ресурсов по их завершении; smon - обеспечивает дефрагментацию места в БД; reco - отвечает за распределенные транзакции; dbw 0 - отвечает за сохранение измененных данных на диск; lgwr - отвечает за запись в redo log файлы. arc - отвечает за архивирование redo log файлов Процесс обеспечивающий подключение по сети: LISTENER В Oracle 11 g процессов, поддерживающих экземпляр базы данных, больше
• Startup – стартует экземпляр • Shutdown – останавливает экземпляр − Immediate − Нельзя просто выключить
Журналирование и Rollback System Global Area Журналы используются только для восстановления БД (redo) Rollback отделены от Log Транзакции могут использовать > 1 журнала Rollback хранятся в Rollback Segments (Undo Tablespace) Rollback Segments используются для Undo (отката) и Multi Version Read Consistency DB Block Buffers Rollback Log Buffer Redo Log User DB Log Redo Log Files
Структура базы данных База данных Табличное пространство Файл данных Сегмент Логическая Физическая Экстент Блок Oracle Блок ОС
• В одной БД могут быть tablespaces с разными размерами блока • Схема и пользователь • Все объекты в схемах
Объекты и понятия БД • Таблицы (partitions – секционирование таблиц) • Индексы • Индексные таблицы • Rollback сегменты • Временные сегменты • Сегменты LOB • Вложенные таблицы • View • Массивы • Пользовательские типы данных • Sequence • Материализованные view • Программные единицы (proc, func, pack) • Иерархии • Триггеры • Ограничения • Синонимы • Кластер • Database link • Dimension • Пользователи • Привилегии • Роли
Типы данных Oracle Тип данных Пользовательский Скалярный CHAR(N), NCHAR(N) VARCHAR 2(N), NVARCHAR 2(N) NUMBER(P, S) DATE RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID Встроенный Коллекция Ссылки VARRAY REF TABLE
Массивы и встроенные таблицы • Массивы − Массивы с переменной длиной: VARRAY − Обеспечивают упорядоченные 1 -to-many отношения − Набор скалярных величин − Доступны через PL/SQL • Встроенные таблицы (Nested Tables) − Обеспечивают неупорядоченные 1 -to-many отношения − Набор скалярных величин − Доступ через SQL DML
Типы данных для хранения больших объектов LONG, LONG RAW LOB Один столбец в таблице Несколько столбцов в таблице До 2 гигабайтов До 4 гигабайтов SELECT возвращает данные SELECT возвращает указатель Внутреннее хранение данных Внутреннее или внешнее хранение данных Нет поддержки объектов Поддержка объектных типов Последовательный доступ Произвольный доступ
Новая функциональность для реализации объектных расширений • Возможность определения для новых типов: − Специального индексирования − “Перегрузки“ операций − Настройки оптимизатора − Сервисных функций Object Types Indexes Operators Optimizer Services Data Cartridge • Определение новых типов различными способами
Три ггер – хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события Триггер на уровне таблицы CREATE OR REPLACE TRIGGER tr 2 AFTER UPDATE ON rayon BEGIN insert into info values ('table "rayon" has changed'); END; Триггер на уровне строки CREATE OR REPLACE TRIGGER tr 1 AFTER UPDATE ON rayon FOR EACH ROW BEGIN insert into info values ('one string in table "rayon" has changed'); END;
Ограничения целостности DEPTNO DNAME 35 Accounting Декларативный синтаксис Ссылочная целостность Каскадное удаление Enable/Disable Exception Reporting EMPNO MGR DEPTNO PROJECT 5540 Smith 35 108392 7935 5892 8100 PROJNO BUDGET DEPTNO 462340 225000. 00 54 942384 10000. 00 35 402933 35000. 00 28 108392 20509. 00 50
Программируемость Implicit Operations Database Triggers Определенные точки срабатывания Enable/Disable Create or Replace Множество триггеров одного типа Доступ к “: old” & “: new” значениям Хранятся в откомпилированном виде Before Statement Before Row After Statement
Новые типы событий Trigger • Новые триггеры − − − − STARTUP SHUTDOWN SERVERERROR LOGON LOGOFF CREATE ALTER DROP CREATE TRIGGER register_open ON DATABASE STARTUP BEGIN … • Новый уровень триггеров − База данных − Схема dbms_aq. enqueue(. . . ); … END;
Программируемость Хранимые процедуры Пакеты Функции Полномасштабный язык Return Cursor Exception Handlers SQL 3 Syntax Persistent Variables Overloading Encapsulation Dependency Tracking Wrappers Server Side File I/O PL/SQL и Java Cancel Ship Check Status Application Partitioning
PL/SQL • Процедурный и непроцедурный язык • Циклы, ветвления, обработка ошибок и т д • Язык логики БД • Расширение языка SQL • Интерпретатор и компилятор • Инструмент SQL Developer
Пример процедуры на PL/SQL / begin for i in 1. . 10 loop insert into t values ( i ); if ( mod(i, 100) = 0) then commit; end if; end loop; end;
Oracle : интегрированная виртуальная Java машина • Почему Java в БД ? Oracle Java VM JDK libraries, APIs Native Compiler Class Loader Shared memory RDBMS libraries Производительность, масштабиру емость, переносимость, управля емость, безопасность • The Oracle Java VM Масштабируемость: 50 150 K байт/ сессия vs 3 6 M на JDK Быстрее: скомпилированный код выполняется в 40 раз быстрее, чем интерпретируемый код Интегрирован с SQL, PL/SQL Стандартизация 100% Java, JDK , standard API Servlet , JSP , EJB , JNDI
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 драйверы
• Индекс — объект базы данных, создаваемый с целью повышения производительности выполнения запросов. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному значению путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет находить нужную строку по заданному значению. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск например, балансированного дерева.
Индексация Standard B Tree Hash Cluster B Tree Cluster Bit Mapped h(n) = [n /C] mod B 1011011 10110001 111101 001011 B Tree индексы можно строить Online & in Parallel Hashing позволяет доступ к строке по хэш алгоритму Многотабличный кластер позволяет заранее соединить данные Bit Map индехы хороши для запросов к колонкам с низкой кардинальностью Индексы можно перестроить на базе существующих
Индексы • Индексные таблицы • Пользовательские индексы (R*Tree) • Перестройка индекса на лету • Индекс от функции
be42aea1e139845757ac819bb1644d20.ppt