17236

Организация СУБД

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-06-30

51 KB

17 чел.

Лекция №2

Организация СУБД

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

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

2.1. Функции, структура и основные характеристики СУБД

К основным функциям СУБД принято относить следующие:

  •  управление данными во внешней памяти;
  •  управление буферами оперативной памяти;
  •  управление транзакциями;
  •  журнализация и восстановление БД после сбоев;
  •  поддержка языков БД.

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

Управление буферами оперативной памяти используется при обращении к любому элементу данных и определяет скоростью работы СУБД в целом.

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

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

Журнализация и восстановление БД после сбоя обеспечивает физическую целостность базы данных и полное или частичное восстановление данных.

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

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

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

Устно.

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

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

Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

В типовой структуре реляционной СУБД логически можно выделить

  •  ядро СУБД;
  •  компилятор языка БД;
  •  подсистему поддержки времени выполнения;
  •  набор утилит.

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

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

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

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

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

Утилиты программируются с использованием интерфейса ядра СУБД.

Производительность СУБД оценивается:

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

Устно.

2.2. Типы моделей данных

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

Базовыми моделями представления данных являются иерархическая, сетевая и реляционная.

Иерархическая модель данных представляет информационные отображения объектов реального мира – сущности и их связи в виде ориентированного графа или дерева. К основным понятиям иерархической структуры относятся уровень, элемент или узел и связь. Узел - это совокупность атрибутов, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и так далее уровнях. Количество деревьев в базе данных определяется числом корневых записей.

К каждой записи базы данных существует только один (иерархический) путь от корневой записи.

Примерами операторов манипулирования иерархически организованными данными могут быть следующие:

  •  найти указанное дерево БД;
  •  перейти от одного дерева к другому;
  •  перейти от одной записи к другой внутри дерева;
  •  перейти от одной записи к другой в порядке обхода иерархии;
  •  вставить новую запись в указанную позицию;
  •  удалить текущую запись.

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

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

Понятие реляционной модели данных (от английского relation - отношение) связано с разработками Е. Кодда. Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата реляционной алгебры и реляционного исчисления для обработки данных.

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

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

Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы - атрибутам отношений, доменам, полям.

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

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

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

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

В качестве операторов манипулирования данными в реляционных моделях используются операторы языка структурированных запросов SQL.


 

А также другие работы, которые могут Вас заинтересовать

23664. Представление знаний с использованием логики предикатов 337.5 KB
  S2: получает студент стипендию  сдает успешно сессию студент S3: сдает успешно сессию студент Задача которую надо решить состоит в том чтобы ответить на запрос получает ли студент стипендию Когда используется обычная система логического вывода то такой вопрос представляется в виде отрицания S:  получает студент стипендию и система должна отвергнуть это отрицание при помощи других предложений демонстрируя что данное допущение ведет к противоречию. ШАГ 1 Система на первом шаге применит правило к родительским...
23665. Практикум по извлечению и структурированию знаний в среде CLIPS 1.45 MB
  заместитель начальника службы энергонадзора ОАО Транссибнефть Практикум по извлечению и структурированию знаний в среде CLIPS по дисциплине Интеллектуальные информационные системы Авторсост. В качестве средства разработки экспертных систем описана среда CLIPS. Справочная информация по среде CLIPS дана в необходимом количестве для выполнения практических занятий и домашних заданий.
23666. Построение ЭС с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил 61.5 KB
  Пример: data 1 €œtwo€. Образец data YELLOW будет сопоставляться со всеми упорядоченными фактами содержащими в любом поле кроме первого символьное значение YELLOW. В частности он будет сопоставляться со следующими фактами: data YELLOW blue red green data YELLOW red data red YELLOW data YELLOW data YELLOW data YELLOW. Задано правило: defrule finddata data x y z = printout t x = x : y = y : z = z crlf и следующее множество фактов: data 1 blue data 1 blue red data 1 blue red 6.
23667. Изучение стратегий разрешения конфликтов в продукционных системах 43.5 KB
  При реализации прямого вывода в продукционных базах знаний машина логических выводов сопоставляет левые части антецеденты правил с базой данных и помещает правила антецеденты которых удовлетворяются в агенду конфликтное множество. Когда правило становится активным условия в его левой части удовлетворяются оно помещается в агенду в соответствии со следующими правилами: 1. Вновь активизируемые правила помещаются над всеми правилами с более низкой значимостью salience и ниже всех правил с более высокой значимостью. Если в результате...
23668. Реализация поиска в пространстве состояний 59 KB
  Каждое состояние в пространстве состояний определяется нахождением каждого персонажа объекта фермера farmer лисы fox козы goat и капусты cabbage на одном из двух берегов shore1 или shore2. Эти слоты могут принимать символьные значения shore1 и shore2. Таким образом для представления вершин ДП можно использовать неупорядоченный факт определяемый следующим шаблоном: deftemplate status slot farmerlocation type SYMBOL allowedsymbols shore1 shore2 slot foxlocation type SYMBOL allowedsymbols shore1...
23669. Задача о миссионерах и каннибалах 48.5 KB
  Каждое состояние в пространстве состояний данной задачи определяется числом миссионеров и каннибалов на каждом берегу shore1miss shore1cann shore2miss и shore2cann и местоположением лодки boatlocation на одном из берегов shore1 или shore2. Для представления вершин дерева поиска можно использовать неупорядоченный факт определяемый следующим шаблоном: deftemplate MAIN::status slot shore1miss type INTEGER range 0 VARIABLE slot shore1cann type INTEGER range 0 VARIABLE slot shore2miss type INTEGER...
23670. Поиск решения со сменой подцелей 33.5 KB
  В процессе работы необходимо реализовать в среде CLIPS программу решения задачи построения башни из блоков. Вводные замечания Задача построения башни из блоков кубиков заключается в последовательном выборе из неупорядоченной кучи блоков и постановки их друг на друга. Процесс решения задачи представляет собой чередование двух фаз: выбора блока из кучи и установки его в башню. При этом больший по размерам блок не может ставиться на меньший по размерам и следовательно на каждом шаге решения задачи необходимо выбирать из кучи самый большой...
23671. Системы искусственного интеллекта. Изучение базовых команд и конструкций CLIPS 91.5 KB
  Решение: defrule datainput initialfact = printout t crlf Vvedite chislo dnei do zacheta tseloe znachenie: bind days read assert days days printout t crlf Vvedite chislo nesdelannyh laboratornyh rabot v bind works read assert works works printout t crlf Vvedite temperaturu na ulitse: bind temper read assert temper temper printout t crlf Est\' li na ulitse osadki da 1 net 0: bind rain read assert rain rain printout t crlf Is there any white rabbit da 1 net...
23672. Разработка гибридных интеллектуальных систем в среде MatLab 174.5 KB
  Постановка задачи: С помощью адаптивной сети нечеткого вывода аппроксимировать функцию: y = 2x2 Ход работы: Исходные данные для обучения нейросети: Структура нейросети имеет вид: Процесс обучения нейронной сети: Результат обучения нейронной сети: Число эпох 40 Значение ошибки 11296 Просмотр поверхности соответствующей системы нечеткого вывода: Правила сгенерированной системы нечеткого вывода: Результаты аппроксимации с помощью сети: x y Y y y δy 04 032 0322 0002000 0006250 16 512 59 0780000 0152344 28 1568 152 0480000...