- •То, что выделено красным - не найдено Оглавление
- •Понятие базы данных. Модели данных
- •Элементы базы данных
- •Методы и способы доступа к данным
- •Механизм транзакций
- •Средства для работы с удаленными базами данных
- •Организация данных на машинных носителях
- •Физическое представление иерархических структур
- •Физическое представление сетевых структур
- •Архитектура файловой организации баз данных
- •Модели распределения данных по физическим носителям
- •Основные условия и требования к распределенной обработке данных
- •Базовые архитектуры распределенной обработки данных
- •Характеристика архитектуры «файловый сервер»
- •Характеристика архитектуры «выделенный сервер»
- •Характеристика архитектуры «активный сервер»
- •Характеристика архитектуры «сервер приложений»
- •Характеристика архитектуры «сервер базы данных»
- •Базовая технология сом
- •Организация доступа к данным
- •Характеристика технологий разработки многозвенных распределенных приложений
- •Характеристика технологии midas
- •Характеристика технологии corba
- •Общая характеристика серверов
- •Основные операции с таблицами баз данных
- •Навигационный доступ к данным
- •Доступ к данным с помощью запросов
- •Хранимые процедуры
- •Триггеры
- •Характеристика языка sql
- •Характеристика языка php
- •Характеристика сервера MySql
Механизм транзакций
Транзакция- неделимая последовательность операторов манипулирования данными, такая что либо результаты всех операций отражаются в БД, либо воздействие всех операторов игнорируется .
Модели транзакций :
Модель управляемого выполнения транзакций - начало транзакций задаётся явно, затем выполняются операторы транзакций и сообщается об успешном её выполнении. Если транзакция не была выполнена, то состояние БД возвращается к точке сохранения.
Автоматическое выполнение транзакций – транзакция автоматически выполняется пока : либо изменения внесенные в БД сохранятся, либо БД вернётся к началу транзакции. В любом случае новая транзакция начнётся после предыдущей.
Журнал изменений – сохранение во внешней памяти информацию обо всех изменениях БД.
Параллельное выполнение транзакций. При параллельной обработки данных система должна гарантировать, что пользователи не будут мешать друг другу. Средства обработки транзакций позволяют изолировать пользователей, так чтобы у каждого было ощущение, что он работает с БД один.
Проблемы:
Пропавшие обновления
Чтение грязных данных
Чтение не согласованных данных
Строки призраки
Сериализация транзакций - это механизм их выполнения по некоторому сериальному плану.
Обеспечение такого механизма является основной функцией компонента СУБД, ответственного за управление транзакциями. Система, в которой поддерживается сериализация транзакций обеспечивает реальную изолированность пользователей.
Захват и освобождение объекта. Для обеспечения сериализации транзакций применяются методы «захвата» и «освобождения» объектов. Транзакция «захватывает» объект, что приводит к его блокировке для других транзакций, и освобождает его только при своем завершении.
При этом захваты объектов несколькими транзакциями на чтение совместимы (разрешается читать один и тот же объект)
захват объекта на чтение одной транзакцией не совместим с захватом другой транзакцией того же объекта на запись
захваты одного объекта разными транзакциями на запись не совместимы.
Средства для работы с удаленными базами данных
Программа работы с удаленной базой данных состоит из двух частей:
Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удаленный компьютер, предоставляет доступ к данным.
Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) — языке структурированных запросов.
Организация данных на машинных носителях
По технологии хранения:
БД во вторичной памяти (традиционные)
БД в оперативной памяти (in-memory databases)
БД в третичной памяти (tertiary databases)
Организация данных во внешней памяти
Каждая БД, как известно, состоит из файлов. Файлы состоят из логических записей. Данные хранятся во внешней памяти на соответствующих носителях (магнитные ленты, диски, "винчестеры" и др.). Каждый файл представляется в виде одного или нескольких блоков (страниц) данных. В одном блоке может быть одна логическая запись, несколько записей (блокированные записи), часть ее (сегмент). В последнем случае сегменты одной записи хранятся в разных блоках. Адресные ссылки между сегментами позволяют выбрать запись целиком в оперативную память.
Обмен данными между внешней и оперативной памятью выполняется блоками, т.е. блок - минимальная единица обмена между оперативной памятью и внешним носителем. При чтении с внешнего носителя блок данных размещается в буферный участок памяти. Несколько буферов образуют буферный пул. Каждый байт в блоке пронумерован (0, 1, 2,...). Номер байта блока, с которого начинается запись, определяет относительный адрес записи файла в блоке.
В качестве адресов записей файла во внешней памяти используют: машинный адрес, относительный адрес, ключ записи. В качестве относительного адреса записи файла используют ее номер по порядку (внутрисистемный номер) в файле, либо комбинацию номера блока и относительного адреса в блоке, либо номер блока и значение ключа. Во многих системах при вводе записи ей присваивается уникальный системный идентификатор - ключ базы данных. Ключ БД не следует отождествлять с ключом записи. Последний задается и используется пользователем (прикладной программой).
Данные, которые присутствуют в физической БД, но отсутствуют в логической БД, называют прозрачными. Такие данные никогда не представляются пользователю (например, адресные ссылки, ключ БД, различные счетчики в т.п.). Данные, которые присутствуют в логической БД, но отсутствуют в физической БД, называются виртуальными (например, возраст).
Каждая физическая запись, соответствующая логической, состоит обычно из двух частей - служебной и информационной. Поля служебной (прозрачной) части используются СУБД для идентификации записи, задания ее типа, хранения признака логического удаления, для кодирования значений элементов, для установления структурных связей между записями. Никакие пользовательские программы не имеют доступа к служебной части записи.
Поля информационной части содержат значения элементов данных логической записи. При этом существует два основных способа размещения значений элементов в физической записи:
1. Размещение с заранее предписанных позиций предполагает, что значение элемента в каждом экземпляре записи появляется с одной и той же позиций, определенной в описании БД.
2. Размещение с разделителями позволяет не хранить в памяти незначащие символы. Здесь элементы отделяются друг от друга разделителями (специальными кодами, часто со смысловой нагрузкой, например, с указанием длины размещенного за ним значения). Если длина элементов варьируется, то память расходуется более экономно, но требуются дополнительные затраты времени м рас кодировку записи. Записи могут быть фиксированной и переменной длины.
Записи обычно размещаются в блоках плотно, без промежутков, последовательно одна за другой. В блоке часть памяти отводится также для служебной информации о блоке: относительные адреса свободных участков памяти, указатели на следующий блок и т.д.
Обычно блоки заполняются не полностью. Оставшаяся часть блока остается некоторое время незаполненной (зарезервированной). В дальнейшем эта область заполняется при увеличении (расширении) записей, хранящихся в блоке, или при поступлении в систему новых записей, которые в соответствии со значениями их ключей (или по другим условиям) надо поместить в одном блоке с уже хранящимися записями. По истечении некоторого времени блок заполняется полностью. Для хранения новых поступающих данных, которые должны были бы попасть в этот блок, выделяется дополнительный блок памяти в области переполнения. Записи, которые должны были размещаться в одном блоке, связываются специальными указателями в одну цепь. Файл периодически реорганизуется: при необходимости файлу добавляется требуемое количество блоков в основной внешней памяти и выполняется требуемая перекомпоновка записей, с целью освобождения области переполнения внешней памяти.
