Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемАнна Балашова
1 Основы баз данных Лекция 3. Основы архитектуры СУБД Oracle Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н апреля 2008
2 СУБД Oracle База данных и экземпляр базы данных, серверные процессы Объекты и понятия БД Структура базы данных Oracle Типы данных Программируемость Триггеры, индексы
3 Oracle занимает почти половину мирового рынка СУБД Высокая надежность VLDB 8 экзабайт Высокая производительность Надежная система защиты Различные архитектуры клиент/сервер, 3х-уровневая, кластер, GRID Многосерверные архитектуры Многоплатформенность Все типы данных Различные приложения (OLTP-Online Transaction Processing, DSS- Decision Support System, OLAP - Online Analytical Processing, Mining) Управляемость (EM)
4 Сетевые протоколы 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 Другие
5 Независимость от архитектуры Один Процессор Симметричная многопроцес-сорная архи-тектура (SMP) Слабо сцепленные процессоры (кластер) Массивно параллельный компьютер (MPP) Можно использовать любые вычислительные архитектуры.
6 Соглашения по стандартам Комитеты 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
7 Пользовательский процесс Серверный процесс PGA База данных и instance (экземпляр) Экземпляр SGA Разделяемый пул DBWRLGWR База данных Управляющие файлы Файлы данных Файлы журнала Файл паролей Архив журнальных файлов Файл параметров
8 Файлы операционной системы Существуют следующие основные группы файлов на диске, составляющие базу данных: 1.Файлы базы данных - *dbf 2.Управляющие файлы - control file 3.Журнальные файлы - redo & arch 4.Файл настроек oracle - init.ora 5.Файл паролей - orapw
9 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 Кеш буферов БД Кеш словря данных
10 Типы структур хранения
11 Серверные процессы Типовые процессы ckpt - процесс отвечающий за то, чтобы все изменения данных в памяти были записаны на диск; pmon - обеспечивает наблюдение за пользовательскими процессами и высвобождение ресурсов по их завершении; smon - обеспечивает дефрагментацию места в БД; reco - отвечает за распределенные транзакции; dbw0 - отвечает за сохранение измененных данных на диск; lgwr - отвечает за запись в redo log файлы. arc - отвечает за архивирование redo log файлов Процесс обеспечивающий подключение по сети: LISTENER В Oracle 11g процессов, поддерживающих экземпляр базы данных, больше
12 Startup – стартует экземпляр Shutdown – останавливает экземпляр Immediate Нельзя просто выключить
13 Журналирование и 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
14 Логическая Физическая База данных Табличное пространство Файл данных Блок ОС Блок Oracle Сегмент Экстент Структура базы данных
15 В одной БД могут быть tablespaces с разными размерами блока Схема и пользователь Все объекты в схемах
16 Объекты и понятия БД Таблицы (partitions – секционирование таблиц) Индексы Индексные таблицы View Sequence Программные единицы (proc, func, pack) Триггеры Ограничения Синонимы Кластер Database link Rollback сегменты Временные сегменты Сегменты LOB Вложенные таблицы Массивы Пользовательские типы данных Материализованные view Иерархии Dimension Пользователи Привилегии Роли
17 Типы данных 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 Тип данных Встроенный Пользовательский Скалярный Ссылки Коллекция
18 Массивы и встроенные таблицы Массивы Массивы с переменной длиной: VARRAY Обеспечивают упорядоченные 1-to-many отношения Набор скалярных величин Доступны через PL/SQL Встроенные таблицы (Nested Tables) Обеспечивают неупорядоченные 1-to-many отношения Набор скалярных величин Доступ через SQL DML
19 Типы данных для хранения больших объектов LONG, LONG RAW Один столбец в таблице До 2 гигабайтов SELECT возвращает данные Внутреннее хранение данных Нет поддержки объектов Последовательный доступ LOB Несколько столбцов в таблице До 4 гигабайтов SELECT возвращает указатель Внутреннее или внешнее хранение данных Поддержка объектных типов Произвольный доступ
20 Новая функциональность для реализации объектных расширений Определение новых типов различными способами Возможность определения для новых типов: Специального индексирования Перегрузки операций Настройки оптимизатора Сервисных функций Data Cartridge Operators Optimizer Indexes Object Types Services
21 Триггер – хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события Триггер на уровне таблицы 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;
22 Ограничения целостности DEPT DEPTNO DNAME 35 Accounting EMP EMPNO MGR DEPTNO PROJECT 5540 Smith PROJ PROJNO BUDGET DEPTNO Декларативный синтаксис Ссылочная целостность Каскадное удаление Enable/Disable Exception Reporting
23 Программируемость Database Triggers Определенные точки срабатывания Enable/Disable Create or Replace Множество триггеров одного типа Доступ к :old & :new значениям Хранятся в откомпилированном виде Before Statement Before Row After Row After Statement Implicit Operations
24 Новые типы событий 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;
25 Программируемость 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
26 PL/SQL Процедурный и непроцедурный язык Циклы, ветвления, обработка ошибок и т д Язык логики БД Расширение языка SQL Интерпретатор и компилятор Инструмент SQL Developer
27 Пример процедуры на 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;/
28 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 машина
29 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 драйверы
30 Индекс объект базы данных, создаваемый с целью повышения производительности выполнения запросов. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному значению путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет находить нужную строку по заданному значению. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск - например, балансированного дерева.
31 Индексация h(n) = [n /C] mod B Standard B-Tree Hash Cluster Bit Mapped B-Tree Cluster B-Tree индексы можно строить Online & in Parallel Hashing позволяет доступ к строке по хэш алгоритму Многотабличный кластер позволяет заранее соединить данные Bit Map индехы хороши для запросов к колонкам с низкой кардинальностью Индексы можно перестроить на базе существующих
32 Индексы Индексные таблицы Пользовательские индексы (R*Tree) Перестройка индекса на лету Индекс от функции
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.