- •Информационные системы, основные функции и области применения
- •Банк данных и его компоненты
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель
- •Классификация программ субд
- •Общие понятия реляционного подхода к организации бд Основные концепции и принципы
- •Индексирование
- •Отношения между таблицами
- •Управление реляционной базой данной. Реляционная алгебра. Реляционное исчисление.
- •Реляционное исчисление
- •Проектирование реляционных баз данных с использованием нормализации.
- •Первая нормальная форма таблицы
- •Вторая нормальная форма
- •Управление транзакциями
- •Транзакции и целостность бд
- •Изолированность пользователей
- •Сериализация транзакций
- •Методы сериализации транзакций
- •Синхронизационные захваты
- •Тупики распознавания и разрушения
- •Метод временных меток
- •Элементы языка sql Функции и основные возможности языка sql
- •Отличие sql от процедурных языков программирования
- •Интерактивный и встроенный sql
- •Составные части sql
- •Типы данных sql
- •Числовые типы данных:
- •Используемые термины и обозначения
- •Выборка данных с использование предложения select
- •Простейшие select-запросы
- •Преобразование вывода и встроенные функции
- •Числовые и символьные константы
- •Арифметические операции для преобразования числовых данных
- •Операция конкатенации строк
- •Агрегирование и групповые функции
- •Упорядочение выходных полей
- •Вложенные подзапросы
- •Формирование связанных подзапросов
- •Организация данных в InterBase
Метод временных меток
Альтернативный метод сериализации транзакций хорошо работающий в условиях редких конфликтов транзакций и не требующий построения графа ожидания транзакций основан на использовании временных меток. Основная идея метода состоит в следующем: если транзакция T1 началась раньше транзакции Т2, то система обеспечивает такой режим выполнения, как если бы T1 была целиком выполнена до начала Т2. Для этого каждой транзакции Т предписывается временная метка t соответствующая времени начала транзакции. При выполнении операции над объектом r транзакция Т помечает его своей временной меткой и типом операции (чтение, изменение).
Перед выполнением операции над объектом r транзакция Т1 выполняет следующие действия:
Проверяет не закончилась ли транзакция Т пометившая этот объект. Если Т закончилась транзакция Т1 помечает объект r и выполняет свою операцию.
Если транзакция Т не завершилась, то Т1 проверяет конфликтность операций. Если операции не конфликтны при объекте r остается или проставляется временная метка с меньшим значением и транзакция Т1 выполняет свою операцию.
Если операции Т1 и Т конфликтуют, то если t(T)>t(T1), т.е. транзакция Т1 является более молодой чем Т производится откат Т и Т1 продолжает работу.
Если же t(T)<t(T1) (Т старше Т1), то Т1 получается новую временную метку и начинается заново.
К недостатку метода временных меток относятся потенциально более частые откаты транзакций, чем в случае использования синхронизационных захватов. Это связано с тем, что конфликтность транзакций определяется более грубо. Кроме того в распределенных системах не просто вырабатывать глобальные временные метки с отношением полного порядка. Но в распределенных системах эти недостатки окупаются тем, что не нужно распознавать тупики т.к. построение графа ожидания транзакций в распределенных системах стоит очень дорого.
Элементы языка sql Функции и основные возможности языка sql
Неотъемлемая и важнейшая часть любой системы применяющей базы данных это языковые средства обеспечивающие возможность доступа и действия над данными определения их структур, способов использования и интерпретации. Язык SQL появился в 70-е год как одно из таких средств. Его прототип был разработан фирмой IBM и известен под названием SEQUEL. SQL вобрал в себя достоинство реляционной модели, в частности достоинства лежащего в его основе математического аппарата реляционной алгебры и реляционного исчисления используя при этом сравнительно небольшое число операторов и относительно простой синтаксис. Благодаря своим качествам язык SQL утвержденным в качестве стандарта языком работы с реляционными базами данных. Этот стандарт поддерживается всеми ведущими мировыми фирмами, действующими в сфере технологий баз данных. Использование стандартного языка позволило обеспечить высокую степень независимости разрабатываемых прикладных систем от конкретного типа СУБД существенно поднять уровень и унификацию инструментальных средств разработки приложений, работающих с реляционными базами данных. Большинство коммерческих реализаций SQL имеет некоторые большие или меньшие отличия от стандарта. Это уменьшает совместимость систем использующих различные диалекты SQL, но с другой стороны полезные расширения реализации языка обеспечивает его развитие и со временем включаются в новые редакции стандарта. Настоящее время, ни одна система не реализует стандарт SQL в полном объеме. Во всех диалектах языка имеются возможности не являющиеся стандартными. Таким образом, каждый диалект это надмножество некоторого подмножества стандарта SQL. Это затрудняет переносимость приложений разработанных для одних СУБД в другие.
