Типовая организация современных СУБД 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типовая организация современных СУБД



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

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

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

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

 

 

Иерархические модели данных.

 

 

Ядром любой базы данных является модель данных, которая определяет взаимосвязь данных на логическом уровне.

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

Модель данных — совокупность структур данных и операций их обработки

Иерархическая модель данных организует данные в структурные деревья, которые ставят данные, находящиеся на низших уровнях, в зависимость от данных, хранящихся на высших уровнях.

 

Структура модели

Дерево состоит из узлов, которые представляют интересующие нас объекты.

Связи между узлами называются дугами или ребрами. Связи определяют зависимости между объектами предметной области.

Самый верхний узел называется корневым узлом.

Корневой узел может иметь нуль или несколько дочерних узлов которые, в свою очередь, также могут иметь нуль или несколько дочерних узлов.

Все узлы дерева, за исключением корня, должны иметь родительский узел.

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

С практической точки зрения, каждый узел может быть представлен либо в виде некоторого типа записи (сущности), где каждая связь представляется встроенным указателем (или адресом), либо с помощью некоторого физического упорядочения записей.

 

В структуре дерева типы записей и их экземпляры обычно физически располагаются рядом друг с другом, причем, как правило, слева направо.

Методы доступа к типам записей внутри дерева:

• Прямой (нисходящий) порядок обхода дерева

Начинается с доступа к корню с последующей обработкой всего дерева с просмотром поддеревьев в порядке слева направо.

• Обратный (восходящий) порядок обхода дерева

Начинается с доступа к самым нижним узлам с постепенным восходящим переходом от одного поддерева к другому слева направо и с завершением обработки в корне.

 

 

Представление связей типа M:N

Объект недвижимости рекламируется в нескольких газетах, а в одной газете рекламируется сразу несколько объектов недвижимости.

Решение проблемы

Сохранение данных в двух местах:

Запись с описанием объекта недвижимости дублируется для каждой газеты, в которой рекламируется данный объект и наоборот.

 

 

Особенности иерархических систем

Модель реализуется с помощью древовидной структуры.

• Записи, связаны с помощью указателей или путем их физически смежного расположения.

• Доступ к данным осуществляется путем "перемещения" (навигации) от корня дерева к дочерним узлам (прямой обход) или наоборот (обратный обход).

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

• Автоматическая поддержка ссылочной целостности между записями, когда зависимые данные полностью участвует в связи со своим родителем.

• Невозможность хранения экземпляров записей, которые не имеют никаких родительских записей.

 

Недостатки иерархических систем

• При моделировании связей типа "многие ко многим" (M:N) или других, более сложных неиерархических связей данные дублируются (избыточность данных) и повышается уровень накладных расходов на их сопровождение.

• Отсутствие гибкости при изменении требований к данным и методам доступа.

• Проектирование могут выполнить только опытные специалисты-эксперты.

• Отсутствие единого стандарта для модели.

 

 

Сетевые модели данных.

 

Ядром любой базы данных является модель данных, которая определяет взаимосвязь данных на логическом уровне.

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

Модель данных — совокупность структур данных и операций их обработки

Сетевая модель данных состоит из набора типов записей и связей между этими типами записей.

Все связи указываются явно и хранятся в виде части БД.

Второе название модели — CODASYL присвоено в честь Конференции по языкам информационных систем (Conference on Data Systems Languages), установившей стандарт для модели.

В качестве основы определения модели можно использовать существующую теорию графов.

Термин "сетевая" подчеркивает тот факт, что компоненты этой модели данных могут иметь установленные между ними связи.

 

 

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 188; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.119.199 (0.012 с.)