- •Информация и данные
- •Основные понятия систем с базами данных
- •Пользователи информационной системы с БД
- •Требования к информационным системам с базами данных
- •Основные компоненты ИС с базами данных
- •Архитектура систем с базами данных. Понятие модели данных
- •Сущности и их свойства
- •Связи (отношения) между сущностями
- •Виды связей между сущностями
- •Еще о сущностях, их свойствах и связях между ними
- •Модели данных. Ранние подходы к организации баз данных
- •Основные понятия реляционной модели данных
- •Структуры данных реляционной модели. Реляционные отношения
- •Свойства отношений
- •Отсутствие в отношении одинаковых кортежей
- •Кортежи отношения не упорядочены (сверху вниз)
- •Атрибуты отношения не упорядочены (слева направо)
- •Значения всех атрибутов являются атомарными
- •Виды отношений
- •Реляционная база данных
- •Реляционная модель. Операции над данными
- •Реляционная алгебра
- •Пересечение отношений
- •Вычитание отношений
- •Декартово произведение отношений
- •Проекция
- •Выборка (ограничение)
- •Естественное соединение отношений
- •Деление
- •Реляционное исчисление
- •Примеры правильно построенных формул
- •Язык SQL
- •Отличие SQL от процедурных языков программирования
- •Формы и составные части SQL
- •Условия и терминология
- •Простейшие SELECT-запросы
- •Ограничения целостности в реляционной модели
- •Ограничения целостности уровня атрибута
- •Домены отношений
- •Отсутствующая информация или NULL-значения.
- •Ограничения целостности уровня кортежа
- •Ограничения целостности уровня отношения
- •Потенциальные, первичные, альтернативные ключи отношения
- •Потенциальные ключи и NULL-значения
- •Ограничения целостности уровня базы данных
- •Внешние ключи и NULL-значения
- •Правила ссылочной целостности
- •При обновлении кортежа в родительском отношении
- •При удалении кортежа в родительском отношении
- •При вставке кортежа в дочернее отношение
- •При обновлении кортежа в дочернем отношении
- •Средства обеспечения целостности данных в СУБД
- •Поддержка декларативных ограничений целостности в языке SQL
- •Проектирование базы данных
- •Функциональная зависимость
- •Нормализация отношений базы данных
- •Нормальные формы
- •Декомпозиция без потерь и функциональные зависимости
- •Первая и вторая нормальные формы.
- •Третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Итоговая схема процедуры нормализации
- •Структуры хранения данных и методы доступа
- •Хранение отношений и доступ к хранимым данным
- •Индексирование
- •Управление транзакциями и целостность баз данных
- •Транзакции и параллелизм
- •Проблемы, возникающие при параллельном выполнении транзакций
- •Проблема потери результатов обновления
- •Проблемы несовместимого анализа
- •Несовместимый анализ – неповторяемое считывание
- •Несовместимый анализ – фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Конфликты между транзакциями
- •Методы сериализации транзакций
- •Решение проблем параллелизма при помощи блокировок
- •Проблема потери результатов обновления
- •Проблема несовместимого анализа. Неповторяемое считывание
- •Фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Уровни изоляции. Объекты синхронизационных блокировок
- •Предикатные синхронизационные блокировки
- •Метод временных меток
- •Уровни изоляции.
- •Синтаксис операторов SQL, определяющих уровни изоляции
193
Таким образом, транзакция А, начавшаяся первой не задерживает выполнения конкурирующей транзакции В. При обнаружении конфликта (чтение транзакцией А измененного счета P3), транзакции А предоставляется своя версия данных, которая была на момент начала транзакции А.
14.11.Реализация изолированности транзакций средствами SQL
Уровни изоляции.
Стандарт языка SQL не предусматривает понятие блокировок для реализации сериализуемости смеси транзакций. Вместо этого вводится понятие уровней изоляции. Этот подход обеспечивает необходимые требования к изолированности транзакций, оставляя возможность производителям различных СУБД реализовывать эти требования своими способами (в частности, с использованием блокировок или выделением версий данных).
Стандарт SQL предусматривает 4 уровня изоляции.
•READ UNCOMMITTED – уровень незавершенного считывания.
•READ COMMITTED – уровень завершенного считывания.
•REPEATABLE READ – уровень повторяемого считывания.
•SERIALIZABLE – уровень способности к упорядочению.
Если все транзакции выполняются на уровне способности к упорядочению (принятом по умолчанию), то чередующееся выполнение любого множества параллельных транзакций может быть упорядочено. Если некоторые транзакции выполняются на более низких уровнях, то имеется множество способов нарушить способность к упорядочению. В стандарте SQL выделены три особых случая нарушения способности к упорядочению, фактически именно те, которые были описаны выше как проблемы параллелизма.
7)Неаккуратное считывание – «грязное» чтение, незафиксированная зависимость.
8)Неповторяемое считывание – частный случай несовместимого анализа.
9)Фиктивные элементы (фантомы) – частный случай несовместимого анализа.
Потеря результатов обновления стандартом SQL не допускается, т. е. На самом низком уровне изолированности транзакции должны работать так, чтобы не допустить потери результатов обновления.
194
Различные уровни изоляции определяются по возможности или исключению перечисленных особых случаев нарушения способности к упорядочению. Эти определения описываются следующей таблицей:
Уровень |
Потеря |
Неаккуратное |
Неповторяемое |
Фантомы |
результатов |
||||
изоляции |
обновления |
считывание |
считывание |
|
|
|
|
|
|
READ UNCOMMITTED |
Нет |
Да |
Да |
Да |
READ COMMITTED |
Нет |
Нет |
Да |
Да |
REPEATABLE READ |
Нет |
Нет |
Нет |
Да |
SERIALIZABLE |
Нет |
Нет |
Нет |
Нет |
Синтаксис операторов SQL, определяющих уровни изоляции
Уровень изоляции транзакции задается следующим оператором:
SET TRANSACTION {ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED
| REPEATABLE READ
| SERIALIZAABLE}
| {READ ONLY | READ WRITE}}, ...
Этот оператор определяет режим выполнения следующей транзакции, т. е. этот оператор не влияет на изменение режима той транзакции, в которой он подается. Обычно, выполнение оператора SET TRANSACTION выделяется как отдельная транзакция:
…(предыдущая транзакция выполняется со своим уровнем изоляции)
COMMIT;
SET TRANSACTION LEVEL REPEATABLE READ; COMMIT;
…(следующая транзакция выполняется с уровнем изоляции REPEATABLE READ)
Если задано предложение ISOLATION LEVEL, то за ним должно следовать один из параметров, определяющих уровень изоляции.
Кроме того, можно задать признаки READ ONLY или READ WRITE. Если указан признак READ ONLY, то предполагается, что транзакция будет только читать данные. При попытке записи для такой транзакции будет сгенерирована ошибка. Признак READ ONLY введен для того, чтобы дать производителям
195
СУБД возможность уменьшать количество блокировок путем использования других методов сериализации (например, метод выделения версий).
Оператор SET TRANSACTION должен удовлетворять следующим условиям:
1)Если предложение ISOLATION LEVEL отсутствует, то по умолчанию принимается уровень SERIALIZABLE.
2)Если задан признак READ WRITE, то параметр ISOLATION LEVEL не может принимать значение READ UNCOMMITTED.
3)Если параметр ISOLATION LEVEL определен как READ UNCOMMITTED,
то транзакция становится по умолчанию READ ONLY. В противном случае по умолчанию транзакция считается как READ WRITE.
15.Распределенные системы. Архитектура клиент-сервер
Из материала предыдущих разделов видно, что работающее с базой данных программное обеспечение должно выполнять следующие функции:
•управление информационными ресурсами базы данных, обеспечение целостности данных;
•обработка и интерпретация данных в соответствие с алгоритмами решения конкретных пользовательских задач (так называемая бизнеслогика прикладных задач);
•функции ввода и отображения информации (презентационная логика). Ранее, в «досетевую» эпоху компьютерных систем, сама база данных и все
работающее с ней программное обеспечение размещалось на одном «большом» компьютере – мэйнфрейме (main frame) и реализовывало все необходимые функции по управлению данными, выполнения бизнес-логики, вводу данных и их отображению на соответствующих терминальных устройствах (см. рис. 15.1). Пользователи работали с общей, расположенной на таком компьютере базой данных с помощью видео-терминалов (дисплеев) или других периферийных устройств ввода-вывода информации.
Рис. 15.1. ИС с базой данных на компьютере-мэйнфрейме
197
С появлением в восьмидесятые годы персональных ЭВМ наступил период массового использования локальных персональных информационных систем с базами данных. Каждая такая персональная система представляла собой, по сути, «маленький мэйнфрейм», реализующий все три группы функций информационной системы с собственной базой данных, используемой персонально одним пользователем. По сравнению с классическим многопользовательским мэйнфреймом такие информационные системы явились «шагом назад» с точки зрения соответствия требованиям к информационным системам с базами данных (см. Введение), в частности, их принципиальным недостатком было отсутствие интеграции данных, что приводило к дублированию данных и проблемам с обеспечением их актуальности, непротиворечивости и целостности.
Современные информационные системы, как правило, представляют собой компьютеры, объединенные в сети. Возможность оперативного обмена информацией между компьютерными системами в сетевой инфокоммуникационной среде позволяет совершенно по-новому ставить вопрос о распределении функций между такими системами. Причем, в этом случае возможны самые различные варианты такого распределения и построения архитектуры информационной системы.
Исходя из общего назначения информационной системы – предоставление пользователям определенных информационных услуг или сервисов – информационную систему с базой данных можно представить как систему с простой структурой, состоящей из двух частей – сервера (стороны, предоставляющей информационный сервис) и клиента (стороны, получающей этот сервис). В сетевой компьютерной среде функции сервера и клиента могут быть распределены самым различным образом: одни компьютеры могут выполнять роль сервера (серверов), другие клиентов, причем в разное время это распределение ролей может меняться, более того, в зависимости от рассматриваемых функций, клиент и сервер могут быть локализованы на одном и том же компьютере. Упомянутая выше мэйнфреймовая система может с этой точки зрения рассматриваться как такой частный случай.
Архитектура с файловым сервером
Простейшей сетевой реализацией системы, когда база данных и прикладное программное обеспечение расположены на разных компьютерах, является сетевая архитектура с файловым сервером.
В этом случае файлы базы данных хранятся на одном компьютере – файловом сервере, а работающее с данными прикладной программное обеспечение информационной системы на другом или других компьютерах – рабочих станциях (см. рисунок 15.2).
198
Рис. 15.2. Архитектура с файловым сервером
Все функции информационной системы, кроме функций управления файлами данных, а именно:
•функции по управлению информационными ресурсами базы данных, обеспечению целостности данных (логика базы данных);
•функции по обработке и интерпретации данных в соответствии с решаемой прикладной задачей (бизнес-логика);
•функции формирования экранных форм для ввода и отображения данных, обработка манипуляций мыши и клавиатуры (презентационная логика);
•а также мета-данные базы данных (информация о ее схеме, правилах обеспечения целостности данных и т.д., иными словами – «данные о
данных»); реализуются в данном случае соответствующим программным обеспечением,
располагающимся на компьютере (компьютерах) клиентской стороны. Достоинством такой системы по сравнению с мэйнфреймовой является
возможность использования общих данных, расположенных на одном общем компьютере-сервере, различными прикладными программами, расположенными на разных компьютерах – рабочих станциях. В этом случае также снижается нагрузка на компьютер, выполняющим функции сервера, так как он освобождается от реализации функций логики базы данных, бизнеслогики прикладных задач, наконец, функций по вводу и отображению данных с использованием современных средств графического интерфейса, и, следовательно, снижаются требования к аппаратным ресурсам компьютерасервера.
Представителями такого рода файл-серверных систем баз данных являются широко распространенные вплоть до настоящего времени программные комплексы: Dbase, FoxPro, Clipper, Clarion, Paradox и др.
199
Выполнение в системе файл-сервер информационного запроса пользователя, например, запроса на поиск и выборку записей базы данных, удовлетворяющих определенному условию, осуществляются путем обращения клиентской прикладной программы через сеть к операционной системе файлового сервера (ее подсистемы управления файлами), последовательному считыванию и передачу по сети на клиентскую сторону записей соответствующего файла базы данных, и, затем, обработки и интерпретации этих данных на клиентской стороне прикладной программой. Таким образом, для того, чтобы пользователь смог получить из базы данных несколько записей, удовлетворяющих заданному им условию, система должна будет предать по сети все записи соответствующего файла базы данных. Таким образом, очевидным недостатком систем с базами данных, построенных по архитектуре файлового сервера, является то, что сетевой трафик в этом случае оказывается перегруженным из-за необходимости передачи большого количества информации, оказывающейся в конечном итоге пользователю бесполезной. Не случайно, что при увеличении размеров базы данных, уже при небольшом числе рабочих станций-клиентов эффективность такого рода файл-серверных информационных систем становится совершенно не удовлетворительной.
Другим существенным недостатком файл-серверных систем с базами данных является низкий уровень возможности обеспечения в них безопасности данных (обеспечения их целостности, защищенности от несанкционированного доступа, от системных сбоев), так как для решения этих проблем могут быть использованы только низкоуровневые средства подсистемы управления файловыми ресурсами операционной системы файлового сервера. Обеспечить запрет операций нарушающих целостность данных на уровне концептуальной схемы базы данных (целостность первичных ключей, ссылочную целостность и т.д.) файловый сервер в принципе не может.
Средства манипуляции данными на самом файловом сервере в таких системах ограничиваются узким спектром файловых команд операционной системы.
200
Сервер базы данных
Современная архитектура клиент-сервер, позволяет строить, однако, гораздо более эффективные схемы взаимодействия в сети серверной и клиентской компонент информационной системы с базами данных. В системах, основанных на использовании так называемого сервера базы данных функции управления информационными ресурсами базы данных, включая исполнение информационных запросов, функции обеспечения целостности данных, разграничение доступа к данным и их защиту, возложены на специальные программные средства. Эту роль выполняет программный комплекс – система управления базой данных (СУБД), которая располагается на том же компьютере, что и файлы базы данных. В такой системе любой доступ к данным (поиск, выборка, ввод, модификация, удаление данных) возможен только через запросы к серверу базы данных (к СУБД), который уже сам взаимодействует с операционной системой сервера для получения доступа к файлам данных. Непосредственный доступ к файлам данных средствами операционной системы, минуя СУБД, блокируется.
На программное обеспечение клиентской стороны (рабочих станций) возлагаются в этом случае функции по реализации обработки и интерпретации данных в соответствии с алгоритмами бизнес-логики решения конкретных пользовательских задач и все интерфейсные функции ввода и отображения информации (презентационная логика).
Взаимодействие клиентской и серверной сторон осуществляется в этом случае путем формирования клиентом и передачи по сети серверу базы данных соответствующих информационных запросов (в современных системах на языке SQL). Эти запросы интерпретируются и выполняются программным обеспечением сервера базы данных (СУБД), который затем, если это необходимо, возвращает клиенту по сети результат исполнения запроса, то есть только полезную, затребованную информацию.
Схема взаимодействия клиента и сервера в рассматриваемом случае представлена на рисунке 15.3.
Рис. 15.3. Архитектура клиент-сервер с использованием сервера БД
201
Данную модель поддерживают большинство современных промышленных СУБД, таких как Oracle, DB2, Informix, Ingres, Sybase, MS SQL Server, из современных отечественных систем это СУБД Линтер фирмы Релэкс.
Представленная архитектура позволяет обеспечить эффективное использование сетевых коммуникаций при большом числе одновременно работающих с общим сервером базы данных клиентских рабочих станций, дает возможность использования одновременной параллельной обработки запросов к базе данных, тем самым, повышая производительность системы. Позволяет на качественно ином уровне решать вопросы управления доступа пользователей к данным, проблемы защиты данных, как от несанкционированного доступа, так
иот возможных аппаратно-программных сбоев системы. Позволяет реализовать в современных СУБД мощный комплекс декларативных средств контроля и обеспечения целостности данных.
Конфигурации аппаратных средств компьютеров используемых в качестве сервера базы данных и рабочих станций, их системное программное обеспечение может быть оптимизировано с учетом выполняемых ими специфических функций.
Говоря об оптимизации распределения функций между серверной и клиентскими компонентами информационной системы с базами данных, следует заметить, что приведенный выше вариант не является единственным. В частности, современные СУБД позволяют перекладывать на серверную сторону
ичасть бизнес-функций прикладных задач. Для этого в СУБД реализованы механизмы так называемых хранимых процедур и процедур обработки событий (триггеры) (см. рисунок 15.4).
Рис. 15.4. Использование активного сервера БД
202
Трехзвенная архитектура с сервером приложений
Развитием изложенной выше распределенной архитектуры информационных систем с базами данных является трехзвенная модель с сервером приложений. В этом случае в системе кроме сервера базы данных и клиентских компьютеров выделяется еще одна самостоятельная компонента, так называемый сервер приложений, который помещается между клиентскими подсистемами и сервером базы данных как это показано на рисунке 15.5.
Рис. 15.5. Архитектура с сервером приложений
На программное обеспечение сервера приложений с клиентского звена системы перекладываются функции, реализующие бизнес-логику решаемых системой прикладных задач.
Что дает такое перераспределение функций?
Освобождение программного обеспечения клиентского звена от реализации бизнес-логики приложений делает его более «легким», снижая требование к аппаратным средствам клиента, упрощая и унифицируя программные средства, с которыми работает конечный пользователь, вплоть до обеспечения возможности использования для доступа к данным стандартных web-браузеров. В связи с этим данное решение еще называют архитектурой с «тонким клиентом», в отличие от рассмотренной выше классической архитектуры клиент-север с гораздо более нагруженным клиентом, получившим название «толстого клиента».
Перевод бизнес-логики прикладной задачи на сервер приложений существенно облегчает проблемы, связанные с модернизацией и сопровождением прикладного программного обеспечения. Процесс обновления версий программ многочисленных «тонких клиентов» может теперь быть существенно упрощен, например, может осуществляться автоматически по корпоративной или даже глобальной сети.
Не вдаваясь в детали, можно отметить, что такая трехзвенная архитектура, включающая в себя сервер базы данных, сервер приложений и клиентские
203
рабочие места обладает существенно большей гибкостью и открытостью, повышает надежность и защищенность системы, ее переносимость и масштабируемость.
Представляет интерес сопоставить такую трехзвенную схему реализации распределенных систем с сервером приложений с рассмотренной в разделе 3 трехуровневой архитектуры модели ИС с базой данных. Нетрудно увидеть, что сервер базы данных реализует функции, задаваемые уровнем концептуального представления (модели) базы данных, а сервер приложений функции, задаваемые уровнем внешних представлений базы данных.
204
Рекомендуемая литература
1.К.Дейт. Введение в системы баз данных. 7-е издание: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2001. – 1072 с., ил.
2.Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++./Пер. с англ. - М.: «Издательство Бином», СПб.: «Невский диалект», 2001. – 558 с., ил.
3.Ульман Д. Основы реляционных баз данных / Джеффри Д. Ульман, Дженнифер Уидом; Пер. с англ.– М.: Лори, 2006 .— 374 с.
4.Т.С.Карпова. Базы данных: модели, разработка, реализация: учебник. –
СПб.: Питер, 2002. – 303 с.: ил.
5.С.М.Диго. Базы данных : проектирование и использование: учебник.– М.: Финансы и статистика, 2005 .— 590 с.: ил.
6.А.В.Кузин. Базы данных: учебное пособие.–М.: Academia, 2005.– 314 с.: ил.
7.А.Ю.Пушников. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/ Изд-е Башкирского ун-та. –
Уфа. 1999. – 108 с.
8.А.Ю.Пушников. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие/ Изд-е Башкирского ун-та. – Уфа. 1999. – 105 с.
9.И.Ф.Астахова, А.П.Толстобров, В.М.Мельников. SQL в примерах и задачах: Учебное пособие: Мн.: Новое знание, 2002. – 176 с.
10.М.Грабер. Введение в SQL. Пер. с англ. – М.: «ЛОРИ», 1996. – 380 с., ил.
11.С.Д.Кузнецов. SQL: Язык реляционных баз данных.– М.: Майор: Осипенко, 2001 .– 191 с.: ил.
12.В.А.РезниченкоH ,H Ф.И.АндонH .H Язык запросов SQL: учебный курс.— СПб:
Питер, 2006 .— 416 стр.
205
Предметный указатель
NULL-значения, 84 RowID, 150
агрегация, 35 Армстронг, 115, 130 архитектура ИС с БД
двухуровневая, 21 трехуровневая, 22
АСИД, 160 атрибут, 43 база данных, 11
компоненты ИС с БД, 16 пользователи ИС с БД, 12 проектирование, 112 реляционная, 50 система управления БД, 16, 20 словарь, 17
СУБД, 16, 20
схема, 17 требования к ИС с БД, 13
Бойс, 118, 131
внешнее представление данных, 21 внутреннее представление данных, 20, 22 датологический, 9 декомпозиция отношения, 124, 128, 129,
135, 146
без потерь, 119
домен, 44, 83
доступ к данным, 149 индексирование, 152 В+P -P дерево, 155 В-дерево, 154
ветвистость, 154 сбалансированность, 154
инвертированные списки, 153 индексный файл, 153 индексы, 153
кластеризация, 151 зависимости в реляционных отношениях
многозначная, 90, 139, 140, 146
проекции-соединения, 90, 145, 146
функциональная, 90, 113, 140, 146
детерминант, 114 зависимая часть, 114 замыкание, 115
неприводимая слева, 116, 117, 125, 127
правила Армстронга, 115, 130
транзитивная, 127 тривиальная, 115 фукционально полная, 116, 117
заголовок отношения, 45 иерархические базы данных, 40 инвертированные списки, 39 инфологическая модель, 24 инфологический, 9 кардинальное число, 43, 46 ключ
альтернативный, 92
внешний, 94, 96, 97 NULL-значения, 97
первичный, 92, 93 потенциальный, 90
NULL-значения, 93
родительский, 94 ключ отношения, 43
Кодд, 42, 118, 131
концептуальная модель, 21, 39 концептуальное представление данных, 21,
39
кортеж, 43, 45 модель
данных реляционная, 42
модель данных, 3, 19, 20, 21 модель инфологическая, 24 модель концептуальная, 21, 39 модель сущность-связь, 25 ER-диаграмма, 27, 31, 33
ER-модель, 25
нормализация отношений, 117 аномалии операций над отношениями,
123, 127, 135, 144
нормальные формы, 118 Бойса-Кодда (НФБК), 131
вторая (2НФ), 125, 147 первая (1НФ), 117, 122, 147
пятая (5НФ), 146
третья (3НФ), 129, 147 четвертая (4НФ), 141, 147, 148
процедура нормализации, 147 теорема Фейгина, 140 теорема Хеза, 121, 141
объекты, 25, 26 ограничение циклическое (3Д), 144
ограничения целостности, 19, 39, 81, 106 декларативная поддержка, 103
в языке SQL, 105
область действия (уровень), 83 атрибут, 83 база данных, 83
ссылочная целостность, 94, 95, 96, 100
внешний ключ, 94 правила, 98
кортеж, 83 отношение, 83
ограничение потенциальных ключей, 89, 112
ограничение целостности сущностей, 89
проверка, 82 процедурная поддержка, 103
средства обеспечения в СУБД, 103
оператор SELECT, 75
операции над данными, 19, 39 определение Риссанена, 142 отношение
cнимок (Snapshot), 49
абстрактное-конкретное, 26 базовое, 49 виды, 49 значение, 44 именованное, 49 как переменная, 44
ненормализованное, 48 нормализованное, 48 общее-частное, 26 представление (View), 49 производное, 49 промежуточный результат, 50 результат запроса, 49 реляционное, 43 свойства, 46 хранимое, 50
отсутствующая информация, 84 правильно построенная формула, 69 предикат, 67 предикатов исчисление, 67
предметная область, 9, 13, 25 представление данных
внешнее, 21 внутреннее, 20, 22 концептуальное, 21, 39
распределенные системы
206
архитектура клиент-сервер, 204, 207
активный сервер БД, 209 сервер БД, 208
сервер базы данных, 207 трехзвенная с сервером приложений,
209
файловый сервер, 204 бизнес-логика, 203, 205 логика базы данных, 205 мета-данные БД, 205 мэйнфрейм, 203
презентационная логика, 203, 205, 207 реляционная модель данных
операции над данными, 52 реляционная алгебра, 52, 71
замкнутость, 53 операции, 52
θ-соединение отношений, 58 выборка, 57 вычитание отношений, 55
декартово произведение, 56 деление отношений, 61 естественное соединение
отношений, 59 пересечение отношений, 54 эквисоединение, 59
полнота, 53 реляционное исчисление, 66, 71
основные понятия, 42 структуры данных, 42
Риссанен, 130
свойства, 25, 26, 33
свойства отношения, 46 связи, 33
бинарные, 30 виды, 29
между сущностями, 28 многие-к-одному, 30 многие-ко-многим, 30, 38 обязательные/необязательные, 31 одинарные, 30 один-к-одному, 30 один-ко-многим, 30 степень, 30, 31
сетевые базы данных, 40 система управления базой данных, 207 согласованное состояние БД, 81 степень отношения, 43, 46
структуры данных, 39, 40, 42, 44, 50
СУБД, 207
сущности, 25, 26, 33
тело отношения, 45 транзакции
буферизация журнала, 163 страниц БД, 163
восстановление данных, 162 жесткий сбой, 163, 169 мягкий сбой, 162, 166
контрольная точка, 164, 166 принципы, 162
протокол WAL, 164 протокол журнализации, 164
протокол управления буферизацией, 164
журнал, 162 команда COMMIT, 161
команда ROLLBACK, 161
определение, 160
откат, 161, 162, 165
параллелизм, 170 график запуска, 176
конкурирующие транзакции, 176 конфликты, 176 метод временных меток, 178, 197
метод выделения версий данных, 198 оптимистическая стратегия, 178 пессимистическая стратегия, 178 проблемы
неаккуратное считывание, 171, 183 незафиксированная зависимость,
171, 183
неповторяемое считывание, 170, 173, 176, 184
несовместимый анализ, 173 потеря обновления, 171, 182, 187 собственно несовместимый анализ,
170, 173, 175, 176, 186
транзакция-жертва, 187
тупики, 183, 187
граф ожидания транзакций, 188 уровни изоляции объектов БД, 190
фантомы, 174, 176, 185, 186, 189, 190, 193, 194, 200
фиктивные элементы, 174, 185, 186, 189, 190, 193, 194, 200
207
чтение, 171, 183
сериализация, 177, 197 синхронизационные захваты, 178, 179,
182
S-блокировки, 181, 191
X-блокировки, 180, 191
блокировки по намерению, 191 блокировки монопольного
доступа – IX, 191 блокировки с совместным или с
монопольным доступом – SIX, 192
блокировки совместного доступа
– IS, 191
приоритет блокировок, 193 протокол блокировок, 192 совместимость блокировок, 192
гранулированные блокировки, 191 двухфазный протокол, 179 матрица совместимости, 181 монопольные блокировки, 180, 191 предикатные, 195 разделяемые блокировки, 181, 191
уровни изолированности SQL, 200 неаккуратное считывание, 200 неповторяемое считывание, 200 фантомы, 201 фиктивные элементы, 200
свойства, 160 атомарность, 160 долговечность, 160 изолированность, 160, 176 согласованность, 160
управление транзакциями, 159 фиксация, 161
трехзначная (3VL) логика, 86
триггер, 104, 208
Фейгин, 147 хранение данных, 149
хранимая процедура, 103, 208 язык
SQL, 17, 73, 105, 200
баз данных реляционно полный, 72
манипулирования данными, 17 непроцедурный, 74 описания данных, 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
Содержание |
|
|
|
|||||||||||||||
ПредисловиеUT |
TU .............................................................................................................. |
|
|
|
|
|
|
|
|
|
|
|
3 |
|||||
ВведениеUT |
TU .................................................................................................................... |
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|||
1UT .TU |
ИнформацияUT |
и данныеTU ........................................................................................ |
9 |
|||||||||||||||
2UT .TU |
ОсновныеUT |
понятия систем с базами данныхTU................................................... |
11 |
|||||||||||||||
3UT .TU |
АрхитектураUT |
систем с базами данных. Понятие модели данныхTU................. |
19 |
|||||||||||||||
4UT .TU |
ИнфологическоеUT |
проектирование БД. Сущности, объекты, свойства, |
|
|||||||||||||||
|
связиTU ................................................................................................................... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
||
5UT .TU |
МоделиUT |
данных. Ранние подходы к организации баз данныхTU...................... |
39 |
|||||||||||||||
6UT .TU |
РеляционнаяUT |
модель данных. Основные понятия. Структуры данныхTU ....... |
42 |
|||||||||||||||
|
6UT .1.TU ОсновныеUT |
понятия реляционной модели данныхTU ................................. |
42 |
|||||||||||||||
|
6UT .2.TU |
СтруктурыUT |
данных реляционной модели. Реляционные |
|
||||||||||||||
|
|
отношенияTU.................................................................................................. |
|
|
|
|
|
44 |
||||||||||
|
6UT .3.TU |
СвойстваUT |
отношенийTU ................................................................................ |
46 |
||||||||||||||
|
6UT .4.TU |
ВидыUT |
отношенийTU |
....................................................................................... |
49 |
|||||||||||||
|
6UT .5.TU |
РеляционнаяUT |
база ........................................................................данныхTU |
50 |
||||||||||||||
7UT .TU |
РеляционнаяUT |
модель. Операции ...............................................над даннымиTU |
51 |
|||||||||||||||
|
7UT .1.TU |
РеляционнаяUT |
алгебра ................................................................................TU |
51 |
||||||||||||||
|
7UT .2.TU |
РеляционноеUT |
исчисление..........................................................................TU |
65 |
||||||||||||||
|
7UT .3.TU |
ОперацииUT |
над данными – реляционная алгебра и реляционное |
|
||||||||||||||
|
|
исчислениеTU |
................................................................................................. |
|
|
|
|
70 |
||||||||||
8UT .TU |
ЯзыкUT |
SQLTU ............................................................................................................ |
|
|
|
|
|
|
|
|
|
|
|
71 |
||||
|
8UT .1.TU |
ОтличиеUT |
SQL от процедурных ..................языков программированияTU |
72 |
||||||||||||||
|
8UT .2.TU |
ФормыUT |
и составные ...............................................................части SQLTU |
72 |
||||||||||||||
|
8UT .3.TU |
УсловияUT |
|
и терминология..........................................................................TU |
73 |
|||||||||||||
|
8UT .4.TU |
ВыборкаUT |
данных. ......................................................Оператор SELECTTU |
73 |
||||||||||||||
|
8UT .5.TU |
РеализацияUT |
|
операций реляционной алгебры средствами языка |
|
|||||||||||||
|
|
SQL. Реляционная .............................................................полнота SQLTU |
76 |
|||||||||||||||
9UT .TU |
ОграниченияUT |
|
целостности ........................................в реляционной моделиTU |
79 |
||||||||||||||
|
9UT .1.TU ОграниченияUT |
целостности ..........................................уровня атрибутаTU |
81 |
|||||||||||||||
|
9UT .2.TU ОграниченияUT |
целостности ............................................уровня кортежаTU |
86 |
|||||||||||||||
|
9UT .3.TU ОграниченияUT |
целостности .......................................уровня отношенияTU |
87 |
|||||||||||||||
|
9UT .4.TU ОграниченияUT |
целостности ....................................уровня базы данныхTU |
92 |
|||||||||||||||
|
9UT .5.TU |
СредстваUT |
обеспечения ..........................целостности данных в СУБДTU |
100 |
||||||||||||||
|
9UT .6.TU |
ПоддержкаUT |
|
декларативных ограничений целостности в языке |
|
|||||||||||||
|
|
SQLTU ........................................................................................................... |
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|||
10UT .TU ПроектированиеUT |
|
базы данных........................................................................TU |
109 |
|||||||||||||||
|
10UT .1.TU ФункциональнаяUT ............................................................... |
зависимость T U |
110 |
|||||||||||||||
|
10UT .2.TU НормализацияUT |
отношений ..............................................базы данныхTU |
113 |
|||||||||||||||
|
10UT .3.TU |
ДекомпозицияUT |
без ..............потерь и функциональные зависимостиTU |
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
10UT .4.TU ПерваяUT |
и вторая нормальные формы.TU ................................................... |
118 |
|||||||||||||||
10UT .5.TU ТретьяUT |
|
нормальная форма.TU ..................................................................... |
122 |
||||||||||||||
10UT .6.TU НормальнаяUT |
форма Бойса-КоддаTU ........................................................... |
127 |
|||||||||||||||
10UT .7.TU МногозначныеUT |
зависимости и четвертая нормальная формаTU ............ |
133 |
|||||||||||||||
10UT .8.TU ЗависимостиUT |
соединения и пятая нормальная формаTU ......................... |
138 |
|||||||||||||||
10UT .9.TU ИтоговаяUT |
|
схема процедуры нормализацииTU .......................................... |
143 |
||||||||||||||
11UT .TU СтруктурыUT |
хранения данных и методы доступаTU .......................................... |
144 |
|||||||||||||||
11UT .1.TU ХранениеUT |
отношений и доступ к хранимым даннымTU ......................... |
145 |
|||||||||||||||
11UT .2.TU ИндексированиеUT |
TU ...................................................................................... |
|
147 |
||||||||||||||
11UT .3.TU ИспользованиеUT |
при индексировании структур типа В-деревьевTU ....... |
149 |
|||||||||||||||
12UT .TU УправлениеUT |
|
транзакциями и целостность баз данныхTU ................................ |
154 |
||||||||||||||
13UT .TU ОткатUT |
транзакций и восстановление данных после сбоев. |
|
|||||||||||||||
Журнализация изменений базы данныхTU....................................................... |
157 |
||||||||||||||||
14UT .TU ТранзакцииUT |
и параллелизмTU ............................................................................. |
165 |
|||||||||||||||
14UT .1.TU ПроблемыUT |
, возникающие при параллельном выполнении |
|
|||||||||||||||
транзакцийTU |
............................................................................................... |
|
|
|
|
|
|
165 |
|||||||||
14UT .2.TU КонфликтыUT |
|
между транзакциямиTU.......................................................... |
169 |
||||||||||||||
14UT .3.TU МетодыUT |
сериализации транзакцийTU ........................................................ |
171 |
|||||||||||||||
14UT .4.TU СериализацияUT |
транзакций с использованием |
|
|||||||||||||||
синхронизационных ........................................захватов (блокировок)TU |
172 |
||||||||||||||||
14UT .5.TU РешениеUT |
проблем ................параллелизма при помощи блокировокTU |
175 |
|||||||||||||||
14UT .6.TU УровниUT |
изоляции ........... Объекты синхронизационных блокировокTU |
182 |
|||||||||||||||
14UT .7.TU ГранулированныеUT |
синхронизационные блокировки. Блокировки |
|
|||||||||||||||
по намерению..........................................................................................TU |
|
|
|
|
183 |
||||||||||||
14UT .8.TU ПредикатныеUT .................................. |
синхронизационные блокировкиTU |
188 |
|||||||||||||||
14UT .9.TU МетодUT |
|
временных ........................................................................метокTU |
190 |
||||||||||||||
14UT .10.TU МетодUT |
выделения .......................................................версий данныхTU |
191 |
|||||||||||||||
14UT .11.TU РеализацияUT ............ |
изолированности транзакций средствами SQLTU |
193 |
|||||||||||||||
15UT .TU РаспределенныеUT .............................. |
системы . Архитектура клиент - сервер T U |
196 |
|||||||||||||||
РекомендуемаяUT |
литература..................................................................................TU |
204 |
|||||||||||||||
ПредметныйUT |
указатель.........................................................................................TU |
|
|
|
205 |