Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ИБД_ уск_ПГС_2010.doc
Скачиваний:
25
Добавлен:
16.11.2018
Размер:
257.02 Кб
Скачать
      1. Компилятор языка бд

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

      1. Подсистема поддержки времени выполнения

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

      1. Утилиты

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

Модели данных

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

  • иерархические,

  • сетевые

  • реляционные.

Соответственно, речь идет об иерархических, сетевых, реляционных СУБД.

      1. Иерархическая модель

Иерархическая модель позволяет строить базы данных с иерархической древовидной структурой. Эта структура основана принципе подчиненности, а с точки зрения структур данных - на классическом однонаправленном ориентированном графе и определяется как дерево, образованное парными связями.

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

На самом нижнем уровне иерархии имеется несколько (конечное число) вершин, у которых нет подчиненных вершин, они называются терминалами.

Все вершины связаны одинаково: у каждой есть один «начальник» и несколько «подчиненных», то есть связь «один» (начальник) ко «многим» (подчиненным). Поэтому связи не нуждаются в именовании и описании – они одинаковые. Нужно именовать и описывать лишь вершины на каждом заданном уровне.

Основное достоинство иерархической модели - простота описания и понимания иерархических структур реального мира.

Пример предметной области, идеально отвечающей по структуре подчиненности иерархической модели – система управления армией («дивизионная модель»), родовидовые отношения в живой природе, генеалогические деревья поколений др.

      1. Сетевая модель.

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

Каждую связь и вершину нужно именовать и описывать в наборах, в которые она входит. Это структура, которая гораздо более сложна для понимания и программирования.