Основные понятия: база данных, система управления базами данных, экземпляр базы данных, архитектура клиент/сервер СУБД, архитектура СУБД ANSI-SPARC, СУБД и модель OSI/ISO, 12 правил Кодда, компоненты СУБД, основные функции поддерживаемые современными СУБД, классификация СУБД, основные тенденции технологий СУБД, наиболее распространенные СУБД.
БД –динамическое хранилище систематизированных данных.
СУБД – это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Архитектура ANSI—SPARCопределяет принцип, согласно которому рекомендуется строить системы управления базами данных. В согласовании с этим архитектура системы баз данных включает три уровня: наружный - уровень, на котором БД воспринимается юзером (зависит от средства доступа к БД);концептуальный - «промежуточный» меж внутренним и наружным; внутренний - это уровень более близкий к физическому хранению, таковой ее принимает операционная система и СУБД (но не физический уровень!). Наружный уровень - личный уровень юзера, который имеет некий язык доступа к БД - язык программирования, SQL, формы …
12 правил Кодда:
· правило 0: Основное правило (Foundation Rule): Реляционная СУБД должна быть способна полностью управлять базой данных, используя связи между данными: Чтобы быть реляционной системой управления базами данных (СУБД), система должна использовать исключительно свои реляционные возможности для управления базой данных.
· правило 1: Явное представление данных (The Information Rule): Информация должна быть представлена в виде данных, хранящихся в ячейках. Данные, хранящиеся в ячейках, должны быть атомарные. Порядок строк в реляционной таблице не должен влиять на смысл данных.
· правило 2: Гарантированный доступ к данным (Guaranteed Access Rule): Доступ к данным должен быть свободен от двусмысленности. К каждому элементу данных должен быть гарантирован доступ с помощью комбинации имени таблицы, первичного ключа строки и имени столбца.
· правило 3: Полная обработка неизвестных значений (Systematic Treatment of Null Values): Неизвестные значения NULL, отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций. Например, для числовых данных неизвестные значения не должны рассматриваться как нули, а для символьных данных — как пустые строки.
· правило 4: Доступ к словарю данных в терминах реляционной модели (Active On-Line Catalog Based on the Relational Model): Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств, тех же самых, которые используются для работы с реляционными таблицами, содержащими пользовательские данные.
· правило 5: Полнота подмножества языка (Comprehensive Data Sublanguage Rule):Система управления реляционными базами данных должна поддерживать хотя бы один реляционный язык, который
(а) имеет линейный синтаксис,
(б) может использоваться как интерактивно, так и в прикладных программах,
(в) поддерживает операции определения данных, определения представлений, манипулирования данными (интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback).
· правило 6: Возможность модификации представлений (View Updating Rule): Каждое представление должно поддерживать все операции манипулирования данными, которые поддерживают реляционные таблицы: операции выборки, вставки, модификации и удаления данных.
· правило 7: Наличие высокоуровневых операций управления данными (High-Level Insert, Update, and Delete): Операции вставки, модификации и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но по отношению к любому множеству строк.
· правило 8: Физическая независимость данных (Physical Data Independence): Приложения не должны зависеть от используемых способов хранения данных на носителях, от аппаратного обеспечения компьютеров, на которых находится реляционная база данных.
· правило 9: Логическая независимость данных (Logical Data Independence): Представление данных в приложении не должно зависеть от структуры реляционных таблиц. Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений.
· правило 10: Независимость контроля целостности (Integrity Independence): Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных.
· правило 11: Дистрибутивная независимость (Distribution Independence): База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияние на приложения. Перенос базы данных на другой компьютер не должен оказывать влияния на приложения.
· правило 12: Согласование языковых уровней (The Nonsubversion Rule): Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня.
Обычно современная СУБД содержит следующие компоненты:
· ядро, которое отвечает за управление данными во внешней и оперативной памяти, и журнализацию,
· процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,
· подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД
· а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
Основные функции СУБД:
· управление данными во внешней памяти (на дисках);
· управление данными в оперативной памяти с использованием дискового кэша;
· журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
· поддержка языков БД (язык определения данных, язык манипулирования данными).
Классификация СУБД:
По модели данных:
· Иерархические
· Сетевые
· Реляционные
· Объектно-ориентированные
· Объектно-реляционные
По степени распределённости:
· Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)
· Распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах).
По способу доступа к БД
· Файл-серверные
· Клиент-серверные
· Встраиваемые
Тенденции в мире систем управления базами данных:
· Реляционные системы
· Постреляционные системы
· Распределенные СУБД
· Системы БД с многоуровневой защитой
К наиболее распространенным типам СУБД относятся: MS SQL Server, Oracle, Informix, Sybase, DB2, MS Access и т. д.
Дистрибутивы (варианты поставки) СУБД Oracle. Архитектура клиент/сервер. Переменные окружения сервера (реестр) и клиента. Основные системные пользователи СУБД, системная роль DBA, специальные системные привилегии (SYSDBA и SYSOPER).
Oracle RDBMS: поставляется в пяти редакциях: EE, SE (не более 4х процессорных разъемов), SE1 (не более 2х процессорных разъемов), PE (один пользователь), Lite (для мобильных и встраиваемых устройств), XE (бесплатная ограниченная версия).
Основные системные пользователи Oracle:
SYS– генерируемый Oracle (предопределенный) привилегированный пользователь ранга администратора базы данных (АБД), который является владельцем ключевых ресурсов БД Oracle (модули Oracle, таблицы словаря БД, V$-представления словаря, ...).
INTERNAL– специальный привилегированный псевдоним для пользователя SYS, который используется, как правило, для запуска и остановки экземпляра БД Oracle.
SYSTEM- генерируемый Oracle (предопределенный) привилегированный пользователь, которому принадлежат ключевые ресурсы БД Oracle (представления словаря БД, репозиторий инструментов, ...).
SYSMAN-генерируемый Oracle (предопределенный) пользователь, который является владельцем всех ресурсов Enterprise Manager (EM).
Системная роль Администратора базы данных DBA –предопределенная роль, которая автоматически создаётся для каждой базы данных Oracle и содержит все системные привилегии, кроме SYSDBA и SYSOPER. Должна назначаться только администраторам, которым требуется полный доступ.
Специальные системные привилегии:
SYSDBA и SYSOPER - специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка экземпляра БД; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA и SYSOPER. Привилегии могут быть указаны при подключении (connect) пользователя к БД.
Архитектура БД под управлением СУБД Oracle: клиент/серверная архитектура, принципы (протоколы) взаимодействия клиента и сервера, абстрактная схема, основные области оперативной памяти, файлы СУБД Oracle, принципы, схема работы с выделенным сервером, схема работы с разделяемыми серверами (многопоточный режим),процессы Oracle (серверные и фоновые), слушатели и диспетчеры, параметры экземпляра Oracle, буферные пулы (DEFAULT, KEEP, RECYCLE).
Абстрактная схема СУБД Oracle
Области оперативной памяти:
-System Global Area-системная глобальная память: это разделяемая, общая область памяти, которая содержит данные и служебную информацию инстанции Oracle. Oracle выделяет SGA во время запуска инстанции и возвращает память обратно, когда инстанция завершает работу. Каждая инстанция имеет свою SGA.
Пользователи, подключенные к базе данных, работаю с одной, общей областью SGA.
· fixed sga-фиксированная часть sga
· buffer cache-буферный кэш
· log buffer-буферы журналов повтора
· shared pool-разделяемый пул
· java pool-пул для процедур и функций java
· large pool - пул для режима MTS
-Program Global AREA-программная глобальная память: буфер памяти, который содержит данные и управляющую информацию серверных процессов. PGA создается, когда запускаются серверные процессы. Информация, хранящаяся в PGA, зависит от конфигурации Oracle.
Cуществуют три обширных класса процессов:
• Серверные процессы. Эти процессы выполняют свои задачи в зависимости от запроса клиента. Мы уже до определенной степени ознакомились с выделенным и разделяемым сервером. Они относятся к серверным процессам.
• Фоновые процессы. Эти процессы запускаются при запуске базы данных и выполняют различные служебные задачи, такие как запись блоков на диски, поддержание оперативных журналов повторения, очистка после прерванных процессов, обслуживание AWR (Automatic Workload Repository — автоматический репозиторий рабочей нагрузки) и т.п.
1. LGWR – запись данных из журнального буфера в журнал изменений
2. ARCH – копирует файлы журнала при их заполнении
3. DBWR – запись грязных блоков из буфера БД на диск
• Подчиненные процессы. Эти процессы аналогичны фоновым, но выполняют дополнительную работу от имени либо фонового, либо серверного процесса.
Слушатель-серверный программный компонент, который управляет сетевым трафиком между БД и клиентом. Слушает порт 1521.
Параметры экземпляра Oracle:
· spfile-бинарный файл, который используется oracle при старте
· pfile-текстовый файл с параметрами, будет использоваться при старте, если не найден spfile
Буферные пулы:
· default – повторное применение буферов кэш, помещается в default в самый конец(стандартный буфер)
· keep – по возможности оставлять значения в оперативной памяти
· recycle – удалять, как только значения окажутся не нужны