Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

114

.pdf
Скачиваний:
26
Добавлен:
05.06.2015
Размер:
1.45 Mб
Скачать

VI БАЗЫ ДАННЫХ

Классификация баз данных

По способу установления связей между данными различают реляционные, иерархические и сетевые базы данных (БД).

Реляционная модель БД является удобной и наиболее привычной формой представления данных в виде таблицы. В математических дисциплинах таблице соответствует термин «отношение» (relation). Отсюда и произошло название модели — реляционная.

Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах, в которых каждая строка имеет один и тот же формат. Каждая строка в таблице представляет некоторый объект реального мира или соотношение между объектами. Пользователь модели сам должен для себя решить вопрос, обладают ли соответствующие сущности реального мира однородностью. Этим самым решается проблема пригодности модели для предполагаемого применения.

Иерархическая БД состоит из упорядоченного набора деревьев, более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.

Дерево — ориентированный граф (граф — пара множеств, одно из которых описывает множество вершин, а другое множество связей между ними), где все вершины, кроме корня, находятся в голове только одной дуги, корень не находится в голове ни одной из дуг и связан с вершиной дерева.

Тип дерева состоит из одного «корневого» типа записи и упорядоченного набора из нуля или более типов поддеревьев, каждое из которых является некоторым типом дерева. Тип дерева в целом представляет собой иерархически организованный набор типов записи.

81

Классификация баз данных

Между записями в иерархии могут быть определены связи: «один ко многим», или «один к одному», где запись, соответствующая элементу «один» указанной связи, определяется как исходная, а соответствующая элементу «много» — как порожденная.

В иерархических БД автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя. Следует отметить, что аналогичное поддержание целостности по ссылкам между записями, не входящими в одну иерархию, не поддерживается. Кроме того, в иерархических системах поддерживается некоторая форма представлений БД на основе ограничения иерархии.

Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков. Сетевая БД состоит из набора записей и набора связей между этими записями, а если говорить более точно, из набора экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи. Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка Р и типом записи потомка С должны выполняться следующие два условия:

+каждый экземпляр типа Р является предком только в одном экземпляре L;

+каждый экземпляр С является потомком не более, чем в одном экземпляре L.

82

Реляционные базы данных

Реляционные базы данных

Е.Ф. Кодд в 1970 г. сформулировал концепцию реляционной модели {relational model) баз данных. Ранее, до появления на рынке систем управления реляционных баз данных, доминирующее положение занимали иерархические и сетевые модели. Однако, начиная с 70-х гг., доминирующее положение на рынке занимает класс систем управления реляционными базами данных, типичными представителями которого являются программные продукты фирм Oracle, Sybase, Informix и Ingres.

Реляционная модель базы данных (БД) является удобной и наиболее привычной формой представления данных в виде таблицы. В математических дисциплинах таблице соответствует термин «отношение» (relation). Отсюда и произошло название модели — реляционная.

Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах, в которых каждая строка имеет один и тот же формат. Каждая строка в таблице представляет некоторый объект реального мира или соотношение между объектами.

Реляционная модель имеет два главных свойства: 1) базовые порции данных представляют собой отношения (relations); 2) операции над таблицами затрагивают только соотношения (relation closure).

Соотношение — это математическая концепция, описывающая, как соотносятся между собой элементы двух множеств.

Модель предъявляет к таблицам следующие требования: 1. Данные в ячейках таблицы должны быть структурно неделимыми. Каждая ячейка может содержать только одну порцию данных. Это свойство часто определяется как принцип информационной неделимости. Недопустимо, чтобы в ячейке таблицы реляционной модели содержалось более одной порции данных, что иногда называ-

ется информационным кодированием.

83

Реляционные базы данных

2.Данные в одном столбце должны быть одного типа.

3.Каждый столбец должен быть уникальным (недопустимы дублирования столбцов).

4.Столбцы размещаются в произвольном порядке.

5.Строки размещаются в таблице также в произвольном порядке.

6.Столбцы имеют уникальные наименования. Существуют два фундаментальных правила для ре-

ляционных БД: правило целостности объектов (entity integrity rule) и правило ссылочной целостности (referential integrity rule).

Основными понятиями реляционных БД являются: «первичный ключ», «внешний ключ», «тип данных», «домен», «схема отношения», «схема БД», «кортеж», «отношение».

Первичный ключ — это столбец или некоторое подмножество столбцов, которое уникально, т.е. единственным образом определяет строки. Первичный ключ, который включает более одного столбца, называется множественным или комбинированным, или составным. Остальные ключи, которые также можно использовать в качестве первичных, называются потенциальными или альтернативными ключами.

Внешний ключ — это столбец или подмножество одной таблицы, который может служит в качестве первичного ключа для другой таблицы. Внешний ключ таблицы является ссылкой на первичный ключ другой таблицы. Правило целостности объектов утверждает, что первичный ключ не может быть полностью или частично пустым, т.е. иметь значение null. Правило ссылочной целостности гласит, что внешний ключ может быть либо пустым, либо соответствовать значению первичного ключа, на который он ссылается.

Понятие «тип данных» в реляционной модели данных полностью адекватно понятию «тип данных» в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых

84

Современные технологии, используемые в работе с данными

Современныетехнологии, используемые в работе с данными

Технология «Клиент-сервер» — технология, разделяющая приложение СУБД на две части: клиентскую (интерактивный графический интерфейс, расположенный на компьютере пользователя) и сервер, собственно осуществляющий управление данными, разделение информации, администрирование и безопасность, находящийся на выделенном компьютере. Взаимодействие «клиент — сервер» осуществляется следующим образом: клиентская часть приложения формирует запрос к серверу баз данных, на котором выполняются все команды, а результат исполнения запроса отправляется клиенту для просмотра и использования. Данная технология применяется, когда размеры баз данных велики, когда велики размеры вычислительной сети, и производительность при обработке данных, хранящихся не на компьютере пользователя.

OLE (Object Linking and Embedding — связывание и внедрение объектов) — стандарт, описывающий правила интеграции прикладных программ. Применяется для использования возможностей других приложений. OLE используется для определения и совместного использования объектов несколькими приложениями, которые поддерживают данную технологию.

OLE Automation (автоматизация OLE) — компонент OLE, позволяющий программным путем устанавливать свойства и задавать команды для объектов другого приложения. Позволяет без необходимости выхода или перехода в другое окно использовать возможности нужного приложения. Приложение, позволяющее другим прикладным программам использовать свои объекты, называется OLE-сервером. Приложение, которое может управлять объектами OLE-серверов, называется OLE-контроллер или OLE-клиент.

RAD (Rapid Application Development — быстрая разработка приложений) — подход к разработке приложений, предусматривающий широкое использование гото-

86

Современные технологии, используемые в работе с данными

вых компонентов и/или приложений и пакетов (в том числе от разных производителей).

ODBC (Open Database Connectivity — открытый доступ к базам данных) — технология, позволяющая использовать базы данных, созданные другим приложением при помощи SQL.

«SQL (Structured Query Language — язык структурированных запросов) — универсальный язык, предназначенный для создания и выполнения запросов, обработки данных как в собственной базе данных приложения, так и с базами данных, созданных другими приложениями, поддерживающими SQL. Также SQL применяется для управления реляционными базами данных.

VBA (Visual Basic for Applications — Visual Basic для приложений) — разновидность (диалект) объектно-ори- ентированного языка программирования Visual Basic, встраиваемая в программные пакеты.

87

Системы управления базами данных

Системы управления базами данных

Основные функции системы управления базами данных (СУБД):

1.Непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным

внекоторых случаях (обычно для этого используются индексы).

2.Управление буферами оперативной памяти. СУБД обычно работают с БД значительного размера; по крайней мере, этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.

3.Управление транзакциями. Транзакция — это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие «транзакции» необходимо для поддержания логической целостности БД.

4.Журнализация. Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два

88

Системы управления базами данных

возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Поддержание надежности хранения баз данных в БД требует избыточности хранения данных, причем та часть данных, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений БД. Журнал изменений — это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. Во всех случаях придерживаются стратегии «упреждающей» записи в журнал (так называемого протокола Write Ahead Log — WAL). Самая простая ситуация восстановления — индивидуальный откат транзакции.

5. Поддержка языков БД. Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

Логически в современной реляционной СУБД можно выделить внутреннюю часть — ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В некоторых системах эти части выделяются ЯЕНО, в других — нет, но логически такое разделение можно провести во всех СУБД.

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти,

89

Системы управления базами данных

управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра (по крайней мере, логически, хотя в некоторых системах эти компоненты выделяются явно), как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД является основной резидентной частью СУБД. При использовании архитектуры «клиент — сервер» ядро является основной составляющей серверной части системы.

Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую выполняемую программу.

В отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра.

90

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]