
- •Понятия баз данных (бд). Классификация. Информационные, программные, технические и организационные составляющие бд.
- •Системы управления базами данных (субд), классификация и критерии их выбора.
- •Интерфейсы доступа к бд.
- •Архитектуры баз данных. Архитектура клиент-сервер. Распределенные бд.
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Трехуровневая архитектура клиент-сервер. Модель сервера приложений
- •Способы задания и поддержания ограничений целостности в современных субд.
- •Транзакции и их роль в поддержании целостности данных. Методы реализации транзакций: языковые и системные средства.
- •Общая характеристика sql. Стандарты sql. Реализации sql в современных субд
- •Развитие реляционной модели. Объектно-реляционные и гибридные бд. Объектно-ориентированные бд.
- •Хранимые процедуры и триггеры
ТЭИС Подготовка к ГАЭ
Понятия баз данных (бд). Классификация. Информационные, программные, технические и организационные составляющие бд.
Основные понятия и определения теории баз данных
Под базой данных понимают совокупность разнообразных данных, организованных по определенным правилам.
Технология использования БД реализуется средствами систем управления базами данных (СУБД) состоящих из совокупности языковых и программных средств. СУБД предназначены для создания, хранения и организации доступа к БД. По масштабу применения СУБД разделяют на однопользовательские и многопользовательские.
Однопользовательские (персональные) СУБД осуществляют управление БД, работающей на одном компьютере. В качестве примера однопользовательских СУБД можно привести dBase, MS Access, Paradox и FoxPro.
Многопользовательские СУБД используются для управления БД информационных систем, функционирующих в многокомпьютерных системах, например, построенных на основе архитектуры "клиент-сервер". К многопользовательским СУБД относятся Microsoft SQL Sewer, Oracle, SyBase и ряд других.
Приложениями БД называют прикладные программы, которые решают различные функциональные задачи с привлечением средств СУБД.
Назначение СУБД
Дело в том, что в связи с информационным бумом возникла необходимость в создании систем, обеспечивающих доступ к очень большому объёму сложно структурированных данных.
Современные же информационные системы, использующиеся на крупных предприятиях, имеют дело с гигабайтными объёмами данных. Это не позволяет размещать их в постоянной и, тем более, в оперативной памяти каждого компьютера, на котором они нужны. Кроме того, эти данные являются разнородными, сильно связаны между собой и требуют разнообразных способов своего извлечения и представления пользователю. При работе со сложно структурированными данными также часто возникают проблемы их дублирования и самосогласованного изменения, а также низкой скорости доступа к данным. Подобные проблемы с большим трудом решаются встраиваемыми в приложения надстройками над файловой системой. Чтобы не повторять одни и те же способы хранения, выбора и модификации сложных данных в каждой библиотеке языков программирования (или, тем более, в каждом приложении), возникли СУБД.
СУБД являются посредниками между логической структурой данных, необходимых разным приложениям, и физическими хранилищами данных (обычно это файловая система персонального компьютера или сервера, хотя последнее время хранилища могут распределяться между многими серверами). Физическая структура данных (в частности, файловая) должна быть скрыта от программистов. СУБД должны хранить логическую структуру (метаданные), предотвращая несогласованные изменения данных, нарушающие эту структуру.
Таким образом, любая СУБД должна обеспечивать следующее:
компактное хранение данных (без дублирования);
оптимизацию доступа к данным;
логическую целостность (согласованность) данных;
универсальный интерфейс (язык или протокол), позволяющий задавать структуру данных, изменять и извлекать их неизвестному заранее алгоритму.
Возможности СУБД и их отличия от файловых систем
Четкое разделение физической (скрытой) и логической (открытой) структуры данных.
Среди основных функций СУБД была отмечена оптимизация запросов на выборку и изменение данных. Один из основных приёмов повышения скорости – буферизация данных в оперативной памяти. Оптимизации поиска данных также способствует их индексирование, то есть создание вспомогательных таблиц, сопоставляющих значению некоторой части искомых данных (входящей в условия запросов) физический(ие) адрес(а) блока(ов) данных, где хранится остальная часть. Помимо индексных таблиц, ради эффективности системам управления базами данных приходится поддерживать таблицы соответствия между смысловыми названиями логических объектов БД и их внутренними “адресами”.
Другой тип оптимизации возникает при необходимости устранить дублирование данных. Это нужно не только по причине экономии дискового пространства (каким бы быстрым ни был рост ёмкости устройств постоянной памяти, рост объемов хранимой информации его опережает), но и потому, что дублирующиеся данные приходится одновременно изменять, затрачивая на это много времени.
Механизм транзакций. Прежде всего, в СУБД, которые рассчитаны на одновременную работу многих пользователей (Oracle, MS SQL Server, IBM DB2, Informix, Sybase). С наличием большого числа пользователей разной квалификации связана также поддержка в этих СУБД привилегий, которые ограничивают доступ к данным и этим повышают надёжность БД. Аналогичные возможности ограничения прав доступа к данным существуют и на уровне современных файловых систем (ОС Windows NT или Unix).
Многопользовательские СУБД обычно реализуются на основе архитектуры “клиент-сервер”, в которой данные хранятся на сервере, а представляются и редактируются пользователем на компьютерах-клиентах, объединенных вместе с сервером в сеть на основе какого-либо протокола транспортного уровня. Сетевые технологии также используются в т.н. распределённых СУБД, которые работают с одной и той же базой данных одновременно на большом количестве серверов.
Таким образом, в число возможностей большинства современных СУБД входят:
буферизация данных в оперативной памяти;
индексация часто извлекаемых данных;
журнализация изменений и восстановление БД после сбоя;
фиксация и откат транзакций;
поддержка архитектур “клиент-сервер”, распределённых БД, Web;
возможность работы многих пользователей и ограничение их привилегий.
Методы доступа к данным. Для доступа к данным таблицы предусмотрено несколько методов.
Последовательный метод доступа заключается в просмотре всех записей таблицы в порядке очередности их вхождения. Этот метод является самым простым в организации и связан со значительными затратами времени на поиск, пропорциональными размеру таблицы.
Прямой метод доступа состоит в нахождении нужной записи таблицы с помощью ключа (или индекса), содержащего ссылку на эту запись. При использовании данного метода просмотр других записей не выполняется, а осуществляется прямой доступ к записи на основании ссылки (смещения относительно начала таблицы).
Индексно-последовательный метод доступа представляет собой объединение предыдущих методов, он используется при поиске группы записей. Применение данного метода возможно при наличии индекса, построенного по полям, значения которых должны быть найдены. При выборе данных последовательно перебираются индексы всех записей, удовлетворяющих заданным условиям, а по найденным индексам выбираются сами записи из таблицы (прямой доступ).
Последние два метода характеризуются более высокой скоростью доступа к данным, но их поддержка требует дополнительной памяти, выделяемой для хранения информации о ключах и индексах.
Указанные методы доступа реализуются средствами СУБД, и выбор того или иного метода определяется структурой БД. Например, если для поля имеется индекс, то при поиске записей по этому полю автоматически используется индексно-последовательный метод доступа, в противном случае - последовательный метод.
Для выполнения операций с таблицами из разрабатываемых приложений, помимо методов, СУБД также обеспечивают способы доступа к данным.
Навигационный способ доступа заключается в извлечении для обработки из БД каждой отдельной записи таблицы. В этом случае при необходимости обработать несколько записей запрос к БД будет выполняться многократно. Поэтому навигационный способ предпочтительно использовать в локальных БД. Например, в средах быстрой разработки приложений, таких как Delphi, данный способ доступа востребован компонентами-навигаторами для построчного редактирования записей.
Реляционный способ доступа состоит в обработке сразу всей группы записей, при этом выдается один запрос к БД на получение всей группы записей. Указанный способ доступа более подходит для работы с удаленными БД. Здесь запрос на получение группы записей (в частном случае это может быть запрос на получение и одной записи) выполняется с привлечением средств языка SQL.
Бизнес-правила. Бизнес-правила представляют собой механизмы управления БД, которые, собственно, и предназначены для поддержания БД в целостном состоянии, а также для выполнения ряда других действий, например, накапливания статистики обращений к БД, и не имеют отношения к бизнесу в прямом смысле этого слова.
В первую очередь, бизнес-правила реализуют ограничения БД, к которым относятся следующие:
задание допустимого диапазона значений;
установка значения по умолчанию;
требование уникальности значения;
запрет пустого значения;
ограничения ссылочной целостности и др.
Бизнес-правила можно реализовывать на физическом и программном уровне. В первом случае эти правила, например, ограничения ссылочной целостности для связанных таблиц, определяются при создании таблиц и вплетаются в структуру БД. В дальнейшей работе нельзя нарушить или обойти ограничение, заданное на физическом уровне.
При работе с удаленными БД в архитектуре "клиент-сервер" бизнес-правила можно распространить также на сервер.